nhanh-pure-function 3.0.1 → 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,210 +1,107 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".nhanh-pure-function{--nhanh: 2233}.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 it = Object.defineProperty;
3
- var tt = (n) => {
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 at = Object.defineProperty;
3
+ var et = (n) => {
4
4
  throw TypeError(n);
5
5
  };
6
- var st = (n, t, e) => t in n ? it(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
7
- var F = (n, t, e) => st(n, typeof t != "symbol" ? t + "" : t, e), et = (n, t, e) => t.has(n) || tt("Cannot " + e);
8
- var a = (n, t, e) => (et(n, t, "read from private field"), e ? e.call(n) : t.get(n)), h = (n, t, e) => t.has(n) ? tt("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), f = (n, t, e, r) => (et(n, t, "write to private field"), r ? r.call(n, e) : t.set(n, e), e);
9
- function vt(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 bt(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 y = (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 = y(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 = y(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 = y(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 _t(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 Mt(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 Et(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 Ft(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 ct {
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(ct, "keys", /* @__PURE__ */ new Map());
206
- const at = {
207
- /* 常见扩展名映射 */
104
+ const ut = {
208
105
  ".mp3": "audio/mpeg",
209
106
  ".mp4": "video/mp4",
210
107
  ".m4a": "audio/mp4",
@@ -266,8 +163,7 @@ const at = {
266
163
  ".otf": "font/otf",
267
164
  ".eot": "application/vnd.ms-fontobject",
268
165
  ".map": "application/json"
269
- // 可根据需要继续扩展
270
- }, K = {
166
+ }, Q = {
271
167
  image: [
272
168
  ".jpg",
273
169
  ".jpeg",
@@ -447,7 +343,7 @@ const at = {
447
343
  ".awk",
448
344
  ".php"
449
345
  ]
450
- }, nt = [
346
+ }, it = [
451
347
  "",
452
348
  "万",
453
349
  "亿",
@@ -461,130 +357,306 @@ const at = {
461
357
  "正",
462
358
  "载",
463
359
  "极"
464
- ];
465
- function Ct(n) {
466
- return n.charAt(0).toUpperCase() + n.slice(1);
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
+ }
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();
467
458
  }
468
- function Lt(n, t, e = 2) {
469
- 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) + "%";
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
+ };
470
536
  }
471
537
  function Tt(n) {
472
- const e = n.toString().split("."), r = e[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
473
- return e.length > 1 ? r + "." + e[1] : r;
538
+ return n.charAt(0).toUpperCase() + n.slice(1);
539
+ }
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) + "%";
474
542
  }
475
- function Pt(n, t) {
476
- const e = {
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;
546
+ }
547
+ function Rt(n, e) {
548
+ const t = {
477
549
  join: !0,
478
550
  suffix: "",
479
551
  decimalPlaces: 2
480
- }, { join: r, suffix: o, decimalPlaces: i } = {
481
- ...e,
482
- ...t || {}
483
- }, s = Number(n);
484
- if (isNaN(s)) return r ? `0${o}` : [0, o];
485
- 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)));
486
- return r ? `${g}${nt[l]}${o}` : [g, nt[l] + o];
487
- }
488
- function Ut(n) {
489
- const t = ["B", "KB", "MB", "GB", "TB", "PB"];
490
- 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;
491
563
  for (; n > 1024; )
492
- n /= 1024, e++;
493
- return `${Math.round(n * 100) / 100} ${t[e]}`;
564
+ n /= 1024, t++;
565
+ return `${Math.round(n * 100) / 100} ${e[t]}`;
494
566
  }
495
- function Rt(n, t = "YYYY-MM-DD hh:mm:ss", e = !0) {
496
- const r = new Date(n);
497
- 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()))
498
570
  return console.error("Invalid date"), "";
499
571
  const o = {
500
- YYYY: (i) => i.getFullYear(),
501
- MM: (i) => i.getMonth() + 1,
572
+ YYYY: (r) => r.getFullYear(),
573
+ MM: (r) => r.getMonth() + 1,
502
574
  // Adjust for 0-based month
503
- DD: (i) => i.getDate(),
504
- hh: (i) => i.getHours(),
505
- mm: (i) => i.getMinutes(),
506
- ss: (i) => i.getSeconds(),
507
- 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()
508
580
  };
509
- return t.replace(/YYYY|MM|DD|hh|mm|ss|ms/g, (i) => {
510
- const s = o[i](r);
511
- 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);
512
584
  });
513
585
  }
514
- function J(n, t = "file") {
515
- if (!n || (n = String(n).trim(), n === "")) return t;
516
- const e = n.split("/");
517
- 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];
518
590
  }
519
- function jt(n, t) {
520
- 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;
521
593
  }
522
- function It(n, t, e = ",") {
523
- const r = new RegExp(
524
- `(^|${e})${t}(${e}|$)`,
594
+ function kt(n, e, t = ",") {
595
+ const i = new RegExp(
596
+ `(^|${t})${e}(${t}|$)`,
525
597
  "g"
526
598
  );
527
- return n.replace(r, function(o, i, s) {
528
- return i === s ? e : "";
599
+ return n.replace(i, function(o, r, c) {
600
+ return r === c ? t : "";
529
601
  });
530
602
  }
531
- function At(n) {
603
+ function Dt(n) {
532
604
  return !(n === null || typeof n != "object" || Array.isArray(n));
533
605
  }
534
- function lt(n, t = 2) {
535
- if (Array.isArray(n) && n.length >= t) {
536
- for (let r = 0; r < n.length; r++)
537
- 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;
538
610
  } else return !1;
539
611
  return !0;
540
612
  }
541
- function St(n, t = 1, e = 2) {
542
- if (Array.isArray(n) && n.length >= t) {
613
+ function Ot(n, e = 1, t = 2) {
614
+ if (Array.isArray(n) && n.length >= e) {
543
615
  for (let o = 0; o < n.length; o++)
544
- if (!lt(n[o], e)) return !1;
616
+ if (!mt(n[o], t)) return !1;
545
617
  } else return !1;
546
618
  return !0;
547
619
  }
548
- function kt(n, t, e) {
549
- return Math.abs(n - t) <= e;
620
+ function zt(n, e, t) {
621
+ return Math.abs(n - e) <= t;
550
622
  }
551
- function Dt(n, t) {
552
- let e = !1;
553
- const { x: r, y: o } = n, i = t.length;
554
- for (let s = 0, c = i - 1; s < i; c = s++) {
555
- const u = t[s].x, l = t[s].y, m = t[c].x, d = t[c].y;
556
- 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);
557
629
  }
558
- return e;
630
+ return t;
559
631
  }
560
- function zt(n, t, e, r) {
561
- 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 = [
562
- [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],
563
635
  // 左上
564
- [i, s],
636
+ [r, c],
565
637
  // 右上
566
- [i, c],
638
+ [r, s],
567
639
  // 右下
568
- [o, c]
640
+ [o, s]
569
641
  // 左下
570
- ], l = r[1] - e[1], m = e[0] - r[0], d = r[0] * e[1] - e[0] * r[1];
571
- if (l === 0 && m === 0) {
572
- const [T, k] = e;
573
- 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;
574
646
  }
575
- const g = 1e-10;
576
- let y = !1, E = !1;
577
- for (const [T, k] of u) {
578
- const H = l * T + m * k + d;
579
- if (Math.abs(H) < g || (H > g ? y = !0 : E = !0, y && 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))
580
652
  return !0;
581
653
  }
582
- return y && E;
654
+ return y && w;
583
655
  }
584
- function rt(n) {
585
- 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();
586
658
  }
587
- function Ot(n) {
659
+ function qt(n) {
588
660
  return [
589
661
  "https:",
590
662
  // HTTPS协议,用于安全地浏览网页
@@ -606,51 +678,51 @@ function Ot(n) {
606
678
  // Remote Desktop Protocol,用于安全的远程桌面连接
607
679
  "vpn:"
608
680
  // VPN协议,用于创建安全的网络连接
609
- ].some((e) => n.startsWith(e));
681
+ ].some((t) => n.startsWith(t));
610
682
  }
611
- function Nt(n) {
612
- return new Promise((t, e) => {
683
+ function $t(n) {
684
+ return new Promise((e, t) => {
613
685
  if (typeof n != "string" || n.trim() === "" || !n.includes("://")) {
614
- e(new Error("Invalid URL: Must be a non-empty string"));
686
+ t(new Error("Invalid URL: Must be a non-empty string"));
615
687
  return;
616
688
  }
617
689
  try {
618
690
  new XMLHttpRequest().open("HEAD", n, !0);
619
- } catch (i) {
620
- e(new Error(`Invalid URL format: ${i.message}`));
691
+ } catch (r) {
692
+ t(new Error(`Invalid URL format: ${r.message}`));
621
693
  return;
622
694
  }
623
- const r = new XMLHttpRequest();
624
- r.open("HEAD", n, !0);
625
- const o = (i) => {
626
- 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}`));
627
699
  };
628
- r.onreadystatechange = function() {
629
- 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}`)));
630
- }, 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;
631
703
  try {
632
- r.send();
633
- } catch (i) {
634
- e(new Error(`Request send failed: ${i.message}`));
704
+ i.send();
705
+ } catch (r) {
706
+ t(new Error(`Request send failed: ${r.message}`));
635
707
  }
636
708
  });
637
709
  }
638
- const P = class P {
710
+ const T = class T {
639
711
  constructor() {
640
- if (new.target === P)
712
+ if (new.target === T)
641
713
  throw new Error("请直接使用静态方法,而不是实例化此类");
642
714
  }
643
- static check(t, e) {
644
- if (!t || typeof t != "string")
645
- return console.error("Invalid URL provided"), e ? !1 : "unknown";
646
- const r = J(t).toLowerCase();
647
- if (e) {
648
- if (!K.hasOwnProperty(e))
649
- return console.error(`Unknown file type: ${e}`), "unknown";
650
- const o = K[e];
651
- 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);
652
724
  }
653
- return P._detectFileType(r);
725
+ return T._detectFileType(i);
654
726
  }
655
727
  /**
656
728
  * 静态方法,用于解析地址信息
@@ -660,10 +732,10 @@ const P = class P {
660
732
  * @param {string} url - 以逗号分隔的URL字符串,每个URL代表一个资源的位置
661
733
  * @returns {Array} - 包含每个URL及其相关信息(名称和类型)的对象数组
662
734
  */
663
- static parseAddresses(t) {
664
- return !t || typeof t != "string" ? (console.error("Invalid URL provided"), []) : t.split(",").map((e) => {
665
- const r = J(e), o = this.check(e);
666
- 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 };
667
739
  });
668
740
  }
669
741
  /**
@@ -672,13 +744,13 @@ const P = class P {
672
744
  * @param {string} [accept] - 可接受的 MIME 类型模式(如 "image/*, text/plain")
673
745
  * @returns {boolean} - 如果类型匹配,则返回 true,否则返回 false
674
746
  */
675
- static matchesMimeType(t, e) {
676
- if (!e) return !0;
677
- if (typeof t != "string" || typeof e != "string") return !1;
678
- const r = P._normalizeType(t), o = e.split(",").map((c) => P._normalizeType(c.trim())), [i, s = "*"] = r.split("/");
679
- return o.some((c) => {
680
- const [u, l = "*"] = c.split("/");
681
- 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);
682
754
  });
683
755
  }
684
756
  /**
@@ -689,8 +761,8 @@ const P = class P {
689
761
  * @param {string} type - 文件类型或MIME类型字符串
690
762
  * @returns {string} 标准化的MIME类型字符串,如果无法识别则返回原始输入
691
763
  */
692
- static _normalizeType(t) {
693
- return t.startsWith(".") && !t.includes("/") ? at[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}/*`;
694
766
  }
695
767
  /**
696
768
  * 检查URL是否具有任何指定的文件扩展名
@@ -698,201 +770,283 @@ const P = class P {
698
770
  * @param {string[]} validExtensions - 有效文件扩展名的数组
699
771
  * @returns {boolean} - 如果URL具有任何指定的文件扩展名,则返回true,否则返回false
700
772
  */
701
- static _checkExtension(t, e) {
702
- return e.some((r) => t.endsWith(r));
773
+ static _checkExtension(e, t) {
774
+ return t.some((i) => e.endsWith(i));
703
775
  }
704
776
  /**
705
777
  * 检测文件URL的类型
706
778
  * @param {string} url - 文件的URL
707
779
  * @returns {string} - 如果URL与任何已知类型匹配,则返回文件类型,否则返回"unknown"
708
780
  */
709
- static _detectFileType(t) {
710
- for (const [e, r] of P.cachedEntries)
711
- if (r.some((o) => t.endsWith(o)))
712
- 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;
713
785
  return "unknown";
714
786
  }
715
787
  };
716
788
  // 缓存文件扩展名的条目,以提高性能
717
- F(P, "cachedEntries", Object.entries(K));
718
- let ot = P;
719
- function qt(n) {
789
+ C(T, "cachedEntries", Object.entries(Q));
790
+ let rt = T;
791
+ function Yt(n) {
720
792
  if (typeof n != "function")
721
793
  return console.error("非函数:", n);
722
- const t = function(e) {
723
- e.didTimeout || e.timeRemaining() <= 0 ? requestIdleCallback(t) : n();
794
+ const e = function(t) {
795
+ t.didTimeout || t.timeRemaining() <= 0 ? requestIdleCallback(e) : n();
724
796
  };
725
- requestIdleCallback(t);
726
- }
727
- function Yt(n, t) {
728
- const e = +/* @__PURE__ */ new Date();
729
- return new Promise((r, o) => {
730
- const i = () => {
731
- if (+/* @__PURE__ */ new Date() - e >= t) return o("超时");
732
- if (n()) return r("完成");
733
- 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);
734
806
  };
735
- i();
807
+ r();
736
808
  });
737
809
  }
738
- function Q(n, t, e = [], r = +/* @__PURE__ */ new Date()) {
739
- if (r < +/* @__PURE__ */ new Date() - 50) {
810
+ function ot(n, e, t = [], i = +/* @__PURE__ */ new Date()) {
811
+ if (i < +/* @__PURE__ */ new Date() - 50) {
740
812
  console.error("_MergeObjects 合并异常:疑似死循环");
741
813
  return;
742
814
  }
743
- const o = rt(n), i = rt(t);
744
- if (o != i) return t;
815
+ const o = tt(n), r = tt(e);
816
+ if (o != r) return e;
745
817
  if (o == "object" || o == "array") {
746
- if (e.some(([s, c]) => s == n && c == t)) return n;
747
- if (e.push([n, t]), o == "object") {
748
- for (const s in t)
749
- if (Object.prototype.hasOwnProperty.call(t, s)) {
750
- const c = t[s], u = n[s], l = Q(
751
- u,
752
- c,
753
- e,
754
- 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
755
827
  );
756
- n[s] = l;
828
+ n[c] = l;
757
829
  }
758
830
  return n;
759
831
  } else if (o == "array")
760
- return t.forEach((s, c) => {
761
- const u = s, l = n[c], m = Q(
832
+ return e.forEach((c, s) => {
833
+ const a = c, l = n[s], h = ot(
762
834
  l,
763
- u,
764
- e,
765
- r
835
+ a,
836
+ t,
837
+ i
766
838
  );
767
- n[c] = m;
839
+ n[s] = h;
768
840
  }), n;
769
- } else return t;
841
+ } else return e;
770
842
  }
771
- function $t(n = "") {
772
- return n + "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(t) {
773
- const e = Math.random() * 16 | 0;
774
- 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);
775
847
  });
776
848
  }
777
- function ut(n, t) {
778
- let e;
779
- return function(...r) {
780
- clearTimeout(e), e = setTimeout(() => {
781
- n(...r), e = void 0;
782
- }, 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);
783
855
  };
784
856
  }
785
- function Xt(n, t) {
786
- let e = -1 / 0;
787
- return function(...r) {
857
+ function Wt(n, e) {
858
+ let t = -1 / 0;
859
+ return function(...i) {
788
860
  const o = performance.now();
789
- if (o - e > t) {
790
- e = o;
861
+ if (o - t > e) {
862
+ t = o;
791
863
  try {
792
- n(...r);
793
- } catch (i) {
794
- console.error("Throttled function execution failed:", i);
864
+ n(...i);
865
+ } catch (r) {
866
+ console.error("Throttled function execution failed:", r);
795
867
  }
796
868
  }
797
869
  };
798
870
  }
799
- function Bt(n, t, e) {
800
- if (!n || !t) return n;
801
- const r = t.split(".");
802
- 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);
803
875
  }
804
- function Ht(n, t) {
805
- if (!n || !t) return n;
806
- const e = t.split(".");
807
- 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);
808
880
  }
809
- function Wt(n, t, e) {
810
- if (!n || !t) return n;
811
- const r = t.split(".");
812
- 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);
813
885
  }
814
- function Vt(n) {
815
- 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)));
816
888
  }
817
- function Gt(n) {
818
- const t = window.structuredClone, e = (r) => r === null || typeof r != "object" ? r : Q(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
+ };
819
973
  try {
820
- return t ? t(n) : e(n);
821
- } catch (r) {
822
- 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);
823
977
  }
824
978
  }
825
- function Zt(n, t, e = 30) {
979
+ function Jt(n, e, t = 30) {
826
980
  if (typeof n != "function")
827
981
  return console.error("第一个参数必须是一个函数。");
828
- if (!Array.isArray(t))
982
+ if (!Array.isArray(e))
829
983
  return console.error("第二个参数必须是一个数组。");
830
- let r = [], o = 0;
831
- const i = (s, c) => {
832
- for (const [u, l] of c)
833
- if (s >= u)
984
+ let i = [], o = 0;
985
+ const r = (c, s) => {
986
+ for (const [a, l] of s)
987
+ if (c >= a)
834
988
  return l;
835
989
  return "black";
836
990
  };
837
- return function(...s) {
838
- const c = performance.now(), u = n(...s), l = performance.now() - c;
839
- r.push(l), r.length > e && r.shift(), o = r.reduce((g, y) => g + y, 0) / r.length || 0;
840
- 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);
841
995
  return console.log(
842
996
  `%c单次耗时:${l.toFixed(2)}ms
843
- %c平均耗时(${r.length}次):${o.toFixed(2)}ms`,
844
- `color: ${m}; padding: 2px 0;`,
997
+ %c平均耗时(${i.length}次):${o.toFixed(2)}ms`,
998
+ `color: ${h}; padding: 2px 0;`,
845
999
  `color: ${d}; padding: 2px 0;`
846
- ), u;
1000
+ ), a;
847
1001
  };
848
1002
  }
849
- function Kt(n) {
850
- const t = Date.now();
851
- let e = performance.now();
852
- for (; Date.now() - t < n; ) {
853
- 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);
854
1008
  try {
855
- const r = e.toString().substring(0, 8);
856
- history.replaceState(null, "", `#${r}`);
1009
+ const i = t.toString().substring(0, 8);
1010
+ history.replaceState(null, "", `#${i}`);
857
1011
  } catch {
858
1012
  }
859
1013
  }
860
- return Date.now() - t;
1014
+ return Date.now() - e;
861
1015
  }
862
- function Jt(n) {
863
- const t = ut(n, 100);
864
- let e = 0, r = 0;
1016
+ function ee(n) {
1017
+ const e = dt(n, 100);
1018
+ let t = 0, i = 0;
865
1019
  return function(o) {
866
- const i = o.target;
867
- if (!i || !(i instanceof Element)) return;
1020
+ const r = o.target;
1021
+ if (!r || !(r instanceof Element)) return;
868
1022
  const {
869
- scrollTop: s,
870
- scrollHeight: c,
871
- clientHeight: u,
1023
+ scrollTop: c,
1024
+ scrollHeight: s,
1025
+ clientHeight: a,
872
1026
  scrollLeft: l,
873
- scrollWidth: m,
1027
+ scrollWidth: h,
874
1028
  clientWidth: d
875
- } = i;
876
- function g() {
877
- if (e == s) return;
878
- const E = e > s;
879
- if (e = s, E) return;
880
- 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");
881
1035
  }
882
1036
  function y() {
883
- if (r == l) return;
884
- const E = r > l;
885
- if (r = l, E) return;
886
- m - l - d <= 1 && t("horizontal");
1037
+ if (i == l) return;
1038
+ const w = i > l;
1039
+ if (i = l, w) return;
1040
+ h - l - d <= 1 && e("horizontal");
887
1041
  }
888
- g(), y();
1042
+ p(), y();
889
1043
  };
890
1044
  }
891
- function Qt(n, t, e) {
892
- 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) {
893
1047
  const l = [];
894
- for (const m in u)
895
- 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]);
896
1050
  return l;
897
1051
  }({
898
1052
  naiveUI: [
@@ -903,38 +1057,38 @@ function Qt(n, t, e) {
903
1057
  ElementPlus: [".el-popper"],
904
1058
  Element: [".el-popper"]
905
1059
  });
906
- function s() {
907
- t(), document.removeEventListener("mousedown", c);
1060
+ function c() {
1061
+ e(), document.removeEventListener("mousedown", s);
908
1062
  }
909
- function c(u) {
910
- if (r) {
911
- const d = r(u);
1063
+ function s(a) {
1064
+ if (i) {
1065
+ const d = i(a);
912
1066
  if (d) return;
913
- if (d === !1) return s();
1067
+ if (d === !1) return c();
914
1068
  }
915
- const l = u.target;
1069
+ const l = a.target;
916
1070
  if (!(l instanceof Element) || !l.isConnected) return;
917
- n.concat(i).some((d) => !!(l != null && l.closest(d))) || s();
1071
+ n.concat(r).some((d) => !!(l != null && l.closest(d))) || c();
918
1072
  }
919
1073
  requestAnimationFrame(
920
- () => document.addEventListener("mousedown", c)
1074
+ () => document.addEventListener("mousedown", s)
921
1075
  );
922
1076
  }
923
- var v, j, I, z, O, C, L, U, N;
924
- class te {
1077
+ var b, R, j, O, z, F, L, A, N;
1078
+ class ie {
925
1079
  constructor() {
926
- h(this, v);
927
- h(this, j, !1);
928
- h(this, I, {});
929
- h(this, z, 0);
930
- h(this, O, 0);
931
- h(this, C, 0);
932
- h(this, L, 0);
933
- h(this, U);
934
- 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);
935
1089
  }
936
- init(t, e) {
937
- f(this, v, 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, {
938
1092
  mousedown: this.mousedown.bind(this),
939
1093
  mousemove: this.mousemove.bind(this),
940
1094
  mouseup: this.mouseup.bind(this)
@@ -943,47 +1097,47 @@ class te {
943
1097
  finish() {
944
1098
  this.bindOrUnbindEvent("unbind");
945
1099
  }
946
- bindOrUnbindEvent(t) {
947
- const e = t === "bind" ? "addEventListener" : "removeEventListener";
948
- if (!a(this, v)) return console.error("No DOM");
949
- a(this, v)[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);
950
1104
  }
951
1105
  alterLocation() {
952
- if (!a(this, v)) return console.error("No DOM");
953
- 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, v).style.setProperty("--top", a(this, C) + "px"), a(this, v).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");
954
1108
  }
955
- mousedown(t) {
956
- if (!a(this, v)) return console.error("No DOM");
957
- if (a(this, N) && t.target != a(this, N)) return;
958
- document.body.classList.add("no-select"), f(this, j, !0);
959
- const e = a(this, v).getBoundingClientRect(), { pageX: r, pageY: o } = t;
960
- 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);
961
1115
  }
962
- mousemove(t) {
963
- const { pageX: e, pageY: r } = t;
964
- 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());
965
1119
  }
966
1120
  mouseup() {
967
- 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"));
968
1122
  }
969
1123
  }
970
- v = 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();
971
- var b, A, S, q, Y, _, M, x, $, X;
972
- class ee {
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 {
973
1127
  constructor() {
974
- h(this, b);
975
- h(this, A, !1);
976
- h(this, S, {});
977
- h(this, q, 0);
978
- h(this, Y, 0);
979
- h(this, _, 0);
980
- h(this, M, 0);
981
- h(this, x);
982
- h(this, $);
983
- 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);
984
1138
  }
985
- init(t, e = {}) {
986
- f(this, b, t), f(this, x, e.limit), f(this, $, 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, {
987
1141
  mousedown: this.mousedown.bind(this),
988
1142
  mousemove: this.mousemove.bind(this),
989
1143
  mouseup: this.mouseup.bind(this)
@@ -992,331 +1146,349 @@ class ee {
992
1146
  finish() {
993
1147
  this.bindOrUnbindEvent("unbind");
994
1148
  }
995
- bindOrUnbindEvent(t) {
996
- const e = t === "bind" ? "addEventListener" : "removeEventListener";
997
- if (!a(this, b)) return console.error("No DOM");
998
- 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);
999
1153
  }
1000
1154
  updateValue() {
1001
- const t = {
1002
- top: a(this, _),
1003
- left: a(this, M),
1155
+ const e = {
1156
+ top: u(this, E),
1157
+ left: u(this, M),
1004
1158
  percentage: { top: 0, left: 0 }
1005
1159
  };
1006
- if (a(this, x)) {
1007
- const e = (r) => a(this, x) ? (t[r] - a(this, x).min[r]) / (a(this, x).max[r] - a(this, x).min[r]) : 0;
1008
- t.percentage = {
1009
- top: e("top") || 0,
1010
- 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
1011
1165
  };
1012
1166
  }
1013
- return t;
1167
+ return e;
1014
1168
  }
1015
1169
  alterLocation() {
1016
- if (!a(this, b)) return console.error("No DOM");
1017
- 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, $) && a(this, $).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");
1018
1172
  }
1019
- mousedown(t) {
1020
- if (!a(this, b)) return console.error("No DOM");
1021
- document.body.classList.add("no-select"), f(this, A, !0);
1022
- const e = a(this, b).getBoundingClientRect();
1023
- f(this, Y, e.y), f(this, q, e.x);
1024
- const { pageX: r, pageY: o } = t;
1025
- f(this, _, o - a(this, Y)), 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();
1026
1180
  }
1027
- mousemove(t) {
1028
- const { pageX: e, pageY: r } = t;
1029
- a(this, A) && (f(this, _, r - a(this, Y)), 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());
1030
1184
  }
1031
1185
  mouseup() {
1032
- 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()));
1033
1187
  }
1034
1188
  }
1035
- b = new WeakMap(), A = new WeakMap(), S = new WeakMap(), q = new WeakMap(), Y = new WeakMap(), _ = new WeakMap(), M = new WeakMap(), x = new WeakMap(), $ = new WeakMap(), X = new WeakMap();
1036
- function mt(n) {
1037
- const t = n || document.documentElement;
1038
- return t.requestFullscreen ? t.requestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : t.msRequestFullscreen ? t.msRequestFullscreen() : Promise.reject("No Fullscreen API");
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();
1190
+ function K(n) {
1191
+ if (typeof n == "string") {
1192
+ const e = document.querySelector(n);
1193
+ if (!e) throw new Error(`Element "${n}" not found`);
1194
+ return e;
1195
+ } else
1196
+ return n || document.documentElement;
1197
+ }
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");
1039
1201
  }
1040
- function ft() {
1202
+ function pt() {
1041
1203
  const n = document;
1042
1204
  return document.exitFullscreen ? document.exitFullscreen() : n.mozCancelFullScreen ? n.mozCancelFullScreen() : n.webkitExitFullscreen ? n.webkitExitFullscreen() : n.msExitFullscreen ? n.msExitFullscreen() : Promise.reject("No ExitFullscreen API");
1043
1205
  }
1044
- function dt(n) {
1045
- const t = document, e = document.fullscreenElement || t.webkitFullscreenElement || t.mozFullScreenElement || t.msFullscreenElement;
1046
- return n ? n == e : document.documentElement == e || screen.width == window.innerWidth && screen.height == window.innerHeight;
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;
1047
1209
  }
1048
- function ne(n) {
1049
- return function() {
1050
- dt(n) ? ft() : mt(n);
1210
+ function oe(n) {
1211
+ return n = K(n), function() {
1212
+ ct(n) ? pt() : ft(n);
1213
+ };
1214
+ }
1215
+ function se(n, e) {
1216
+ const t = K(e), i = () => {
1217
+ n(ct(t));
1218
+ };
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);
1051
1221
  };
1052
1222
  }
1053
- function re(n, t) {
1223
+ function ce(n, e) {
1054
1224
  if (typeof n == "number") return n;
1055
1225
  if (/px/.test(n)) return Number(n.replace(/px/, "")) || 0;
1056
- const e = document.createElement("div");
1057
- e.style.width = n, t = t || document.body, t.appendChild(e);
1058
- const r = e.getBoundingClientRect().width;
1059
- 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;
1060
1230
  }
1061
- function oe(n, t) {
1231
+ function ae(n, e) {
1062
1232
  if (!n) return;
1063
- let e, r;
1064
- if (typeof t == "string") {
1065
- const i = document.querySelector(t);
1066
- if (!i) return;
1067
- const s = i.getBoundingClientRect();
1068
- e = s.width, r = s.height;
1069
- } else if (Array.isArray(t))
1070
- 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];
1071
1241
  else {
1072
- const i = t.getBoundingClientRect();
1073
- e = i.width, r = i.height;
1242
+ const r = e.getBoundingClientRect();
1243
+ t = r.width, i = r.height;
1074
1244
  }
1075
- const o = e / r;
1076
- 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];
1077
1247
  }
1078
- function ie(n, t = 5e3) {
1079
- return new Promise((e, r) => {
1248
+ function le(n, e = 5e3) {
1249
+ return new Promise((t, i) => {
1080
1250
  const o = new Image();
1081
1251
  o.src = n;
1082
- const i = setTimeout(() => {
1083
- r(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1084
- }, t);
1252
+ const r = setTimeout(() => {
1253
+ i(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1254
+ }, e);
1085
1255
  o.onload = () => {
1086
- clearTimeout(i);
1087
- const s = o.naturalWidth, c = o.naturalHeight, u = s / c;
1088
- e([o, u]);
1256
+ clearTimeout(r);
1257
+ const c = o.naturalWidth, s = o.naturalHeight, a = c / s;
1258
+ t([o, a]);
1089
1259
  }, o.onerror = () => {
1090
- clearTimeout(i), r(new Error("图片加载失败"));
1260
+ clearTimeout(r), i(new Error("图片加载失败"));
1091
1261
  }, o.crossOrigin = "Anonymous";
1092
1262
  });
1093
1263
  }
1094
- function se(n) {
1095
- return new Promise((t, e) => {
1096
- fetch(n).then((r) => t(r.text())).catch((r) => {
1097
- 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);
1098
1268
  });
1099
1269
  });
1100
1270
  }
1101
- function ht(n, t) {
1102
- return new Promise((e, r) => {
1271
+ function gt(n, e) {
1272
+ return new Promise((t, i) => {
1103
1273
  try {
1104
- t = t || J(n, "downloaded_file"), fetch(n).then((o) => (o.ok || r(`文件下载失败,状态码: ${o.status}`), o.blob())).then((o) => {
1105
- const i = URL.createObjectURL(o), s = document.createElement("a");
1106
- s.href = i, s.download = decodeURIComponent(t), document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(i), e(o);
1107
- }).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);
1108
1278
  } catch (o) {
1109
- r(o);
1279
+ i(o);
1110
1280
  }
1111
1281
  });
1112
1282
  }
1113
- function ce(n, t, e) {
1114
- if (!e) {
1115
- let i = t.replace(/^[^.]+./, "");
1116
- 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 };
1117
1287
  }
1118
- const r = new Blob(n, e), o = URL.createObjectURL(r);
1119
- ht(o, t);
1120
- }
1121
- const pt = Math.PI / 2, G = Math.PI / 180, Z = 6378137, gt = 85.05112878;
1122
- function ae(n, t) {
1123
- const e = Math.max(Math.min(n, 180), -180), r = Math.max(Math.min(t, gt), -85.05112878), o = e * G * Z, i = r * G, s = Math.log(Math.tan(Math.PI / 4 + i / 2)) * Z;
1124
- return [o, s];
1125
- }
1126
- function le(n, t) {
1127
- const e = n / Z / G, r = (2 * Math.atan(Math.exp(t / Z)) - pt) / G;
1128
- return [e, r];
1129
- }
1130
- function ue(n, t, e) {
1131
- const [r, o] = n, [i, s] = t, [c, u] = e, l = (c - i) ** 2 + (u - s) ** 2;
1132
- if (l === 0) return Math.sqrt((r - i) ** 2 + (o - s) ** 2);
1133
- let m = ((r - i) * (c - i) + (o - s) * (u - s)) / l;
1134
- return m = Math.max(0, Math.min(1, m)), Math.sqrt(
1135
- (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
1136
1306
  );
1137
1307
  }
1138
- function me(n, t, e, r, o, i = 1, s = 1) {
1139
- 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;
1140
1310
  return [
1141
- [c, u],
1142
- [l, m]
1311
+ [s, a],
1312
+ [l, h]
1143
1313
  ];
1144
1314
  }
1145
- function fe(n, t, e, r) {
1146
- return Math.sqrt(Math.pow(e - n, 2) + Math.pow(r - t, 2));
1315
+ function ge(n, e, t, i) {
1316
+ return Math.hypot(Math.abs(t - n), Math.abs(i - e));
1147
1317
  }
1148
- function de(n, t, e, r) {
1149
- const o = (n + e) / 2, i = (t + r) / 2;
1150
- 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 };
1151
1321
  }
1152
- function he(n, t, e, r) {
1153
- const [o, i] = n, [s, c] = t;
1154
- let u = 1 / 0;
1155
- if (s !== 0) {
1156
- const l = s > 0 ? (e - o) / s : -o / s;
1157
- l > 0 && (u = Math.min(u, l));
1158
- }
1322
+ function xe(n, e, t, i) {
1323
+ const [o, r] = n, [c, s] = e;
1324
+ let a = 1 / 0;
1159
1325
  if (c !== 0) {
1160
- const l = c > 0 ? (r - i) / c : -i / c;
1161
- 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));
1162
1332
  }
1163
- return u === 1 / 0 ? n : [o + s * u, i + c * u];
1333
+ return a === 1 / 0 ? n : [o + c * a, r + s * a];
1164
1334
  }
1165
1335
  class D {
1166
- constructor(t, e) {
1167
- F(this, "resolve");
1168
- F(this, "reject");
1169
- 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;
1170
1340
  }
1171
- run(t) {
1172
- var e, r;
1173
- return t instanceof Promise ? t.then((o) => {
1174
- var i;
1175
- 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;
1176
1346
  }).catch((o) => {
1177
- var i;
1178
- return (i = this.reject) == null || i.call(this), Promise.reject(o);
1179
- }) : 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;
1180
1350
  }
1181
1351
  }
1182
- class xt extends D {
1183
- constructor(t) {
1184
- super(), this.resolve = t;
1352
+ class yt extends D {
1353
+ constructor(e) {
1354
+ super(), this.resolve = e;
1185
1355
  }
1186
- warning(...t) {
1187
- const e = () => {
1188
- var r, o;
1189
- 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);
1190
1360
  };
1191
- return new D(this.resolve, e);
1361
+ return new D(this.resolve, t);
1192
1362
  }
1193
- error(...t) {
1194
- const e = () => {
1195
- var r, o;
1196
- 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);
1197
1367
  };
1198
- return new D(this.resolve, e);
1368
+ return new D(this.resolve, t);
1199
1369
  }
1200
1370
  }
1201
- class wt extends D {
1202
- constructor(t) {
1203
- super(), this.reject = t;
1371
+ class vt extends D {
1372
+ constructor(e) {
1373
+ super(), this.reject = e;
1204
1374
  }
1205
- info(...t) {
1206
- const e = () => {
1207
- var r, o;
1208
- 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);
1209
1379
  };
1210
- return new D(e, this.reject);
1380
+ return new D(t, this.reject);
1211
1381
  }
1212
- success(...t) {
1213
- const e = () => {
1214
- var r, o;
1215
- 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);
1216
1386
  };
1217
- return new D(e, this.reject);
1387
+ return new D(t, this.reject);
1218
1388
  }
1219
1389
  }
1220
- const p = class p {
1390
+ const g = class g {
1221
1391
  /**
1222
1392
  * 构造函数
1223
1393
  * @throws 如果尝试实例化该类,则抛出错误,因为应该使用静态方法
1224
1394
  */
1225
1395
  constructor() {
1226
- if (new.target === p)
1396
+ if (new.target === g)
1227
1397
  throw new Error("请直接使用静态方法,而不是实例化此类");
1228
1398
  }
1229
- static register(t, e) {
1230
- if (typeof e != "function")
1399
+ static register(e, t) {
1400
+ if (typeof t != "function")
1231
1401
  return console.error("TipHandler must be a function");
1232
- p.tips[t] = e;
1402
+ g.tips[e] = t;
1233
1403
  }
1234
- static resolveTip(t) {
1235
- return function(...e) {
1236
- const r = () => {
1237
- var o, i;
1238
- 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);
1239
1409
  };
1240
- return new xt(r);
1410
+ return new yt(i);
1241
1411
  };
1242
1412
  }
1243
- static rejectTip(t) {
1244
- return function(...e) {
1245
- const r = () => {
1246
- var o, i;
1247
- 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);
1248
1418
  };
1249
- return new wt(r);
1419
+ return new vt(i);
1250
1420
  };
1251
1421
  }
1252
1422
  };
1253
- F(p, "tips", {
1423
+ C(g, "tips", {
1254
1424
  info: void 0,
1255
1425
  success: void 0,
1256
1426
  warning: void 0,
1257
1427
  error: void 0
1258
- }), F(p, "info", p.resolveTip("info")), F(p, "success", p.resolveTip("success")), F(p, "warning", p.rejectTip("warning")), F(p, "error", p.rejectTip("error"));
1259
- 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;
1260
1430
  export {
1261
- bt as _Animate_CreateOscillator,
1262
- _t as _Animate_NumericTransition,
1263
- vt as _Animate_Schedule,
1264
- Mt as _Blob_ConvertDataToImageUrl,
1265
- Ft as _Browser_CopyToClipboard,
1266
- Et as _Browser_GetFrameRate,
1267
- ct as _Browser_KeyedWindowManager,
1268
- oe as _Element_CalculateCanvasSize,
1269
- Qt as _Element_CloseOnOutsideClick,
1270
- te as _Element_Drag,
1271
- mt as _Element_EnterFullscreen,
1272
- ft as _Element_ExitFullscreen,
1273
- ne as _Element_Fullscreen,
1274
- re as _Element_GetOtherSizeInPixels,
1275
- dt as _Element_IsFullscreen,
1276
- ie as _Element_LoadImage,
1277
- ee as _Element_LocalDrag,
1278
- Jt as _Element_ScrollEndListener,
1279
- ce as _File_CreateAndDownload,
1280
- ht as _File_Download,
1281
- se as _File_Read,
1282
- jt as _Format_CamelCase,
1283
- Ct as _Format_CapitalizeFirstLetter,
1284
- It as _Format_ExcludeSubstring,
1285
- Ut as _Format_FileSize,
1431
+ Et as _Animate_CreateOscillator,
1432
+ Mt as _Animate_NumericTransition,
1433
+ _t as _Animate_Schedule,
1434
+ Ct as _Blob_ConvertDataToImageUrl,
1435
+ Lt as _Browser_CopyToClipboard,
1436
+ Ft as _Browser_GetFrameRate,
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,
1286
1458
  J as _Format_HrefName,
1287
- Tt as _Format_NumberWithCommas,
1288
- Pt as _Format_NumberWithUnit,
1289
- Lt as _Format_Percentage,
1290
- Rt as _Format_Timestamp,
1291
- fe as _Math_CalculateDistance2D,
1292
- me as _Math_GetArcPoints,
1293
- he as _Math_GetBoundaryIntersection,
1294
- de as _Math_GetMidpoint,
1295
- ae as _Math_LngLatToPlane,
1296
- le as _Math_PlaneToLngLat,
1297
- ue as _Math_PointToLineDistance,
1298
- B as _Tip,
1299
- Gt as _Utility_Clone,
1300
- ut as _Utility_Debounce,
1301
- qt as _Utility_ExecuteWhenIdle,
1302
- $t as _Utility_GenerateUUID,
1303
- Ht as _Utility_GetTargetByPath,
1304
- Bt as _Utility_InitTargetByPath,
1305
- Q as _Utility_MergeObjects,
1306
- Vt as _Utility_RotateList,
1307
- Wt as _Utility_SetTargetByPath,
1308
- Kt as _Utility_Sleep,
1309
- Xt as _Utility_Throttle,
1310
- Zt as _Utility_TimeConsumption,
1311
- Yt as _Utility_WaitForCondition,
1312
- Nt as _Valid_CheckConnectionWithXHR,
1313
- rt as _Valid_DataType,
1314
- zt as _Valid_DoesInfiniteLineIntersectRectangle,
1315
- ot as _Valid_FileTypeChecker,
1316
- St as _Valid_Is2DNumberArray,
1317
- kt as _Valid_IsInMargin,
1318
- lt as _Valid_IsNumberArray,
1319
- At as _Valid_IsObject,
1320
- Dt as _Valid_IsPointInPolygon,
1321
- Ot as _Valid_IsSecureContext
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,
1469
+ fe as _Math_PointToLineDistance,
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,
1490
+ mt as _Valid_IsNumberArray,
1491
+ Dt as _Valid_IsObject,
1492
+ Nt as _Valid_IsPointInPolygon,
1493
+ qt as _Valid_IsSecureContext
1322
1494
  };