minutool 1.0.21 → 1.0.22

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.d.ts CHANGED
@@ -12,9 +12,16 @@ export declare const abortableFetch: (url: string, fetchOption?: RequestOption)
12
12
 
13
13
  /**
14
14
  * 可中止的 Fetch 请求
15
+ * 完全独立定义,避免与 Promise 类型混淆
15
16
  */
16
- export declare interface AbortablePromise<T> extends Promise<T> {
17
+ export declare interface AbortablePromise<T> extends PromiseLike<T> {
17
18
  abort: () => void;
19
+ abortSilently: () => void;
20
+ aborted: boolean;
21
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): AbortablePromise<TResult1 | TResult2>;
22
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): AbortablePromise<T | TResult>;
23
+ finally(onfinally?: (() => void) | undefined | null): AbortablePromise<T>;
24
+ readonly [Symbol.toStringTag]: "Promise";
18
25
  }
19
26
 
20
27
  export declare class AbortError extends Error {
@@ -92,6 +99,16 @@ export declare const arraySortByKey: <T extends Record<string, any>>(obj: T) =>
92
99
  */
93
100
  export declare const arrayTrimTail: (arr: any[]) => any[];
94
101
 
102
+ /**
103
+ * 类型断言辅助函数:明确告诉 TypeScript 某个值是 AbortablePromise
104
+ * 用于解决 TypeScript 类型推导在某些情况下无法识别 AbortablePromise 的问题
105
+ * @param promise - 实际上是 AbortablePromise 的对象
106
+ * @returns 带有正确类型的 AbortablePromise
107
+ * @example
108
+ * const req = asAbortable(abortableFetch('/api').then(res => res.json()));
109
+ */
110
+ export declare const asAbortable: <T>(promise: any) => AbortablePromise<T>;
111
+
95
112
  /**
96
113
  * Base64 解码
97
114
  * @param {string} text - Base64 编码的字符串
@@ -132,43 +149,43 @@ export declare const between: (val: number, min: number, max: number, includeEqu
132
149
  /**
133
150
  * 绑定点击事件,并返回一个解绑函数
134
151
  * @param element - 要绑定事件的元素
135
- * @param callback - 事件回调函数
152
+ * @param payload - 事件回调函数
136
153
  * @returns 解绑函数
137
154
  */
138
- export declare const bindClick: (element: HTMLElement | string, callback: (event: Event) => void) => () => void;
155
+ export declare const bindClick: (element: HTMLElement | string, payload: (event: Event) => void) => () => void;
139
156
 
140
157
  /**
141
158
  * 绑定DOM事件,并返回一个解绑函数
142
159
  * @param element - 要绑定事件的元素
143
160
  * @param eventName - 事件名称
144
- * @param callback - 事件回调函数
161
+ * @param payload - 事件回调函数
145
162
  * @returns 解绑函数
146
163
  */
147
- export declare const bindDomEvent: (element: HTMLElement | string, eventName: string, callback: (event: Event) => void) => () => void;
164
+ export declare const bindDomEvent: (element: HTMLElement | string, eventName: string, payload: (event: Event) => void) => () => void;
148
165
 
149
166
  /**
150
167
  * 绑定双击事件,并返回一个解绑函数
151
168
  * @param element - 要绑定事件的元素
152
- * @param callback - 事件回调函数
169
+ * @param payload - 事件回调函数
153
170
  * @returns 解绑函数
154
171
  */
155
- export declare const bindDoubleClick: (element: HTMLElement | string, callback: (event: Event) => void) => () => void;
172
+ export declare const bindDoubleClick: (element: HTMLElement | string, payload: (event: Event) => void) => () => void;
156
173
 
157
174
  /**
158
175
  * 绑定键盘按键按下事件,并返回一个解绑函数
159
176
  * @param element - 要绑定事件的元素
160
- * @param callback - 事件回调函数
177
+ * @param payload - 事件回调函数
161
178
  * @returns 解绑函数
162
179
  */
163
- export declare const bindKeyDown: (element: HTMLElement | string, callback: (event: Event) => void) => () => void;
180
+ export declare const bindKeyDown: (element: HTMLElement | string, payload: (event: Event) => void) => () => void;
164
181
 
165
182
  /**
166
183
  * 绑定键盘按键抬起事件,并返回一个解绑函数
167
184
  * @param element - 要绑定事件的元素
168
- * @param callback - 事件回调函数
185
+ * @param payload - 事件回调函数
169
186
  * @returns 解绑函数
170
187
  */
171
- export declare const bindKeyUp: (element: HTMLElement | string, callback: (event: Event) => void) => () => void;
188
+ export declare const bindKeyUp: (element: HTMLElement | string, payload: (event: Event) => void) => () => void;
172
189
 
173
190
  /**
174
191
  * 绑定对象移动事件
@@ -600,7 +617,7 @@ export declare const getDomDimension: (dom: HTMLElement) => {
600
617
  * @example
601
618
  * getJson('/api/users').then(data => console.log(data))
602
619
  */
603
- export declare const getJson: (url: string, data?: any, option?: RequestOption) => Promise<any>;
620
+ export declare const getJson: (url: string, data?: any, option?: RequestOption) => AbortablePromise<any>;
604
621
 
605
622
  /**
606
623
  * 获取节点的 XPath
@@ -1391,14 +1408,14 @@ export declare const onDocReady: (handler: () => void) => void;
1391
1408
 
1392
1409
  /**
1393
1410
  * 监听节点树变更
1394
- * @param {HTMLElement} dom - 要监听的 DOM 节点
1395
- * @param {Function} callback - 回调函数
1396
- * @param {boolean} [includeElementChanged=true] - 是否包含表单元素的值变更
1411
+ * @param dom - 要监听的 DOM 节点
1412
+ * @param payload - 回调函数
1413
+ * @param includeElementChanged - 是否包含表单元素的值变更
1397
1414
  * @returns {void}
1398
1415
  * @example
1399
1416
  * onDomTreeChange(container, () => console.log('changed'))
1400
1417
  */
1401
- export declare const onDomTreeChange: (dom: HTMLElement, callback: () => void, includeElementChanged?: boolean) => void;
1418
+ export declare const onDomTreeChange: (dom: HTMLElement, payload: () => void, includeElementChanged?: boolean) => void;
1402
1419
 
1403
1420
  export declare const ONE_DAY: number;
1404
1421
 
@@ -1459,7 +1476,7 @@ export declare const parseUnit: (value: string | number, defaultUnit?: string) =
1459
1476
  * @example
1460
1477
  * postFiles('/api/upload', {avatar: fileObject})
1461
1478
  */
1462
- export declare const postFiles: (url: string, fileMap: Record<string, File>, data?: any, option?: RequestOption) => Promise<any>;
1479
+ export declare const postFiles: (url: string, fileMap: Record<string, File>, data?: any, option?: RequestOption) => AbortablePromise<any>;
1463
1480
 
1464
1481
  /**
1465
1482
  * 发送 POST 请求并获取 JSON 响应
@@ -1470,7 +1487,7 @@ export declare const postFiles: (url: string, fileMap: Record<string, File>, dat
1470
1487
  * @example
1471
1488
  * postJson('/api/users', {name: 'John'}).then(data => console.log(data))
1472
1489
  */
1473
- export declare const postJson: (url: string, data?: any, option?: RequestOption) => Promise<any>;
1490
+ export declare const postJson: (url: string, data?: any, option?: RequestOption) => AbortablePromise<any>;
1474
1491
 
1475
1492
  /**
1476
1493
  * 精度位数转小数表示法
package/dist/minutool.js CHANGED
@@ -59,13 +59,13 @@ const pt = (e, t) => {
59
59
  throw e.mozRequestFullScreen && e.mozRequestFullScreen(), e.msRequestFullScreen && e.msRequestFullScreen(), "Browser no allow full screen";
60
60
  }, me = () => document.exitFullscreen(), yt = (e) => new Promise((t, n) => {
61
61
  de() ? me().then(t).catch(n) : fe(e).then(t).catch(n);
62
- }), de = () => !!document.fullscreenElement, Et = (e) => {
62
+ }), de = () => !!document.fullscreenElement, bt = (e) => {
63
63
  const t = navigator.language || navigator.userLanguage;
64
64
  if (e.includes(t))
65
65
  return t;
66
66
  const n = t.split("-")[0], o = e.find((r) => r.startsWith(n));
67
67
  return o || e[0];
68
- }, bt = () => navigator.userAgent.toLowerCase().indexOf("firefox") > -1, Tt = (1 + Math.sqrt(5)) / 2 - 1, Q = 96, Mt = (e, t = Q) => e / 25.4 * t, At = (e) => Math.round(e * 56.6929), St = (e) => e * 2.83464566929, Ct = (e) => e / 2.83464566929, _t = (e, t = Q) => 25.4 * e / t, Nt = (e, t, n) => Math.min(Math.max(e, t), n), w = (e, t, n, o = !0) => o ? e >= t && e <= n : e > t && e < n, Dt = (e, t) => Math.floor(Math.random() * (t + 1 - e)) + e, ge = (e, t = 2) => {
68
+ }, Et = () => navigator.userAgent.toLowerCase().indexOf("firefox") > -1, Tt = (1 + Math.sqrt(5)) / 2 - 1, Q = 96, Mt = (e, t = Q) => e / 25.4 * t, At = (e) => Math.round(e * 56.6929), St = (e) => e * 2.83464566929, Ct = (e) => e / 2.83464566929, _t = (e, t = Q) => 25.4 * e / t, Nt = (e, t, n) => Math.min(Math.max(e, t), n), w = (e, t, n, o = !0) => o ? e >= t && e <= n : e > t && e < n, Dt = (e, t) => Math.floor(Math.random() * (t + 1 - e)) + e, ge = (e, t = 2) => {
69
69
  let n = Math.pow(10, t);
70
70
  return Math.round(e * n) / n;
71
71
  }, C = (e) => typeof e == "number" ? isFinite(e) : typeof e != "string" ? !1 : /^[+-]?(\d+\.?\d*|\.\d+)$/.test(e), Ot = (...e) => {
@@ -194,10 +194,10 @@ const P = (e) => (e + "").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,
194
194
  return e.replace(/[-_\s+]/g, " ").split(" ").forEach((o, r) => {
195
195
  n.push(r === 0 && !t ? o : he(o));
196
196
  }), n.join("");
197
- }, j = 0, q = 1, Ee = 2, Yt = (e, t = "", n = j) => {
197
+ }, j = 0, q = 1, be = 2, Yt = (e, t = "", n = j) => {
198
198
  if (t.length) {
199
199
  let o = new RegExp("^[" + P(t) + "]+"), r = new RegExp("[" + P(t) + "]+$");
200
- return n === q ? e.replace(o, "") : n === Ee ? e.replace(r, "") : e.replace(o, "").replace(r, "");
200
+ return n === q ? e.replace(o, "") : n === be ? e.replace(r, "") : e.replace(o, "").replace(r, "");
201
201
  } else
202
202
  return n === j ? e.trim() : n === q ? e.trimStart() : e.trimEnd();
203
203
  }, jt = (e, t) => {
@@ -223,7 +223,7 @@ const P = (e) => (e + "").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,
223
223
  for (e = X(e); c < e.length; )
224
224
  n = e.charCodeAt(c++), o = e.charCodeAt(c++), r = e.charCodeAt(c++), i = n >> 2, p = (n & 3) << 4 | o >> 4, a = (o & 15) << 2 | r >> 6, s = r & 63, isNaN(o) ? a = s = 64 : isNaN(r) && (s = 64), t = t + v.charAt(i) + v.charAt(p) + v.charAt(a) + v.charAt(s);
225
225
  return t;
226
- }, be = async (e) => await Te(e), Te = (e) => new Promise((t, n) => {
226
+ }, Ee = async (e) => await Te(e), Te = (e) => new Promise((t, n) => {
227
227
  const o = new FileReader();
228
228
  o.readAsDataURL(e), o.onload = () => t(o.result), o.onerror = (r) => n(r);
229
229
  }), Vt = (e, t, n, o = "/", r) => {
@@ -327,7 +327,7 @@ const cn = (e, t) => {
327
327
  }), fn = (e, t) => M(e, "click", t), mn = (e, t) => M(e, "keyup", t), dn = (e, t) => M(e, "keydown", t), gn = (e, t) => M(e, "dblclick", t), M = (e, t, n) => {
328
328
  const o = (i) => {
329
329
  n(i);
330
- }, r = b(e);
330
+ }, r = E(e);
331
331
  if (!r)
332
332
  throw new Error(`Element not found for selector: ${e}`);
333
333
  return r.addEventListener(t, o), () => {
@@ -340,19 +340,19 @@ const cn = (e, t) => {
340
340
  } else
341
341
  e.fireEvent("on" + t.toLowerCase());
342
342
  }, xn = (e) => {
343
- const t = b(e);
343
+ const t = E(e);
344
344
  t && (t.style.display = "none");
345
345
  }, wn = (e) => {
346
- const t = b(e);
346
+ const t = E(e);
347
347
  t && (t.style.display = "");
348
348
  }, vn = (e) => {
349
- let t = b(e);
349
+ let t = E(e);
350
350
  return t && t.parentNode && t.parentNode.removeChild(t);
351
351
  }, I = "disabled", Re = (e, t = "") => Z(e, t, !1), Le = (e, t = "") => Z(e, t, !0), Z = (e, t = "", n = null) => {
352
- let o = b(e), r = n === null ? !o.classList.contains(I) : !n;
352
+ let o = E(e), r = n === null ? !o.classList.contains(I) : !n;
353
353
  r && ke(`.${I} {pointer-event:none !important;}`, "__element_lock_style__"), o.classList.toggle(I, r), o[r ? "setAttribute" : "removeAttribute"]("disabled", "disabled"), o[r ? "setAttribute" : "removeAttribute"]("data-disabled", "disabled"), t && o.classList.toggle(t, r);
354
354
  }, yn = (e, t, n) => {
355
- e = b(e);
355
+ e = E(e);
356
356
  let o = !1;
357
357
  const r = [];
358
358
  return r.push(M(e, "mouseenter", () => {
@@ -362,11 +362,11 @@ const cn = (e, t) => {
362
362
  })), () => {
363
363
  r.forEach((i) => i());
364
364
  };
365
- }, En = (e, t) => {
365
+ }, bn = (e, t) => {
366
366
  Re(e), t(() => {
367
367
  Le(e);
368
368
  });
369
- }, bn = (e) => e.parentNode ? Array.prototype.indexOf.call(e.parentNode.children, e) : -1, ee = (e, t = document) => {
369
+ }, En = (e) => e.parentNode ? Array.prototype.indexOf.call(e.parentNode.children, e) : -1, ee = (e, t = document) => {
370
370
  if (typeof e == "string")
371
371
  return e = e.trim(), e.indexOf(":scope") !== 0 && (e = ":scope " + e), Array.from(t.querySelectorAll(e));
372
372
  if (Array.isArray(e)) {
@@ -375,7 +375,7 @@ const cn = (e, t) => {
375
375
  n.push(...ee(o));
376
376
  }), n;
377
377
  } else return NodeList.prototype.isPrototypeOf(e) || HTMLCollection.prototype.isPrototypeOf(e) ? Array.from(e) : e instanceof HTMLElement ? [e] : e;
378
- }, b = (e, t = document) => typeof e == "string" ? t.querySelector(e) : e, Tn = (e) => {
378
+ }, E = (e, t = document) => typeof e == "string" ? t.querySelector(e) : e, Tn = (e) => {
379
379
  let t = document.getElementsByTagName("*"), n = [];
380
380
  for (n = []; e && e.nodeType === 1; e = e.parentNode)
381
381
  if (e.hasAttribute("id")) {
@@ -492,8 +492,8 @@ w(e.top + e.height, t.top, t.top + t.height) && w(e.left + e.width, t.left, t.le
492
492
  return t;
493
493
  };
494
494
  function Pn(e, t = null) {
495
- const n = b(e);
496
- t = b(t || n);
495
+ const n = E(e);
496
+ t = E(t || n);
497
497
  const o = n.style.position, r = n.style.left, i = n.style.top, p = n.style.transform;
498
498
  let a = !1, s = 0, c = 0;
499
499
  const l = (h) => {
@@ -726,7 +726,7 @@ const Gn = (e) => (A || (A = document.createElement("div")), e = e.replace(/<scr
726
726
  r.open("GET", e, !0), r.responseType = "blob", r.onload = function() {
727
727
  if (this.status === 200) {
728
728
  let i = this.response;
729
- be(i).then((p) => {
729
+ Ee(i).then((p) => {
730
730
  t && K(e, p), n(p);
731
731
  }).catch((p) => {
732
732
  o(p);
@@ -737,14 +737,14 @@ const Gn = (e) => (A || (A = document.createElement("div")), e = e.replace(/<scr
737
737
  }, r.onabort = function() {
738
738
  o("Request abort");
739
739
  }, r.send();
740
- }), E = (e, t) => {
740
+ }), b = (e, t) => {
741
741
  let n = (e & 65535) + (t & 65535);
742
742
  return (e >> 16) + (t >> 16) + (n >> 16) << 16 | n & 65535;
743
- }, Ye = (e, t) => e << t | e >>> 32 - t, O = (e, t, n, o, r, i) => E(Ye(E(E(t, e), E(o, i)), r), n), u = (e, t, n, o, r, i, p) => O(t & n | ~t & o, e, t, r, i, p), f = (e, t, n, o, r, i, p) => O(t & o | n & ~o, e, t, r, i, p), m = (e, t, n, o, r, i, p) => O(t ^ n ^ o, e, t, r, i, p), d = (e, t, n, o, r, i, p) => O(n ^ (t | ~o), e, t, r, i, p), D = (e, t) => {
743
+ }, Ye = (e, t) => e << t | e >>> 32 - t, O = (e, t, n, o, r, i) => b(Ye(b(b(t, e), b(o, i)), r), n), u = (e, t, n, o, r, i, p) => O(t & n | ~t & o, e, t, r, i, p), f = (e, t, n, o, r, i, p) => O(t & o | n & ~o, e, t, r, i, p), m = (e, t, n, o, r, i, p) => O(t ^ n ^ o, e, t, r, i, p), d = (e, t, n, o, r, i, p) => O(n ^ (t | ~o), e, t, r, i, p), D = (e, t) => {
744
744
  e[t >> 5] |= 128 << t % 32, e[(t + 64 >>> 9 << 4) + 14] = t;
745
745
  let n, o, r, i, p, a = 1732584193, s = -271733879, c = -1732584194, l = 271733878;
746
746
  for (n = 0; n < e.length; n += 16)
747
- o = a, r = s, i = c, p = l, a = u(a, s, c, l, e[n], 7, -680876936), l = u(l, a, s, c, e[n + 1], 12, -389564586), c = u(c, l, a, s, e[n + 2], 17, 606105819), s = u(s, c, l, a, e[n + 3], 22, -1044525330), a = u(a, s, c, l, e[n + 4], 7, -176418897), l = u(l, a, s, c, e[n + 5], 12, 1200080426), c = u(c, l, a, s, e[n + 6], 17, -1473231341), s = u(s, c, l, a, e[n + 7], 22, -45705983), a = u(a, s, c, l, e[n + 8], 7, 1770035416), l = u(l, a, s, c, e[n + 9], 12, -1958414417), c = u(c, l, a, s, e[n + 10], 17, -42063), s = u(s, c, l, a, e[n + 11], 22, -1990404162), a = u(a, s, c, l, e[n + 12], 7, 1804603682), l = u(l, a, s, c, e[n + 13], 12, -40341101), c = u(c, l, a, s, e[n + 14], 17, -1502002290), s = u(s, c, l, a, e[n + 15], 22, 1236535329), a = f(a, s, c, l, e[n + 1], 5, -165796510), l = f(l, a, s, c, e[n + 6], 9, -1069501632), c = f(c, l, a, s, e[n + 11], 14, 643717713), s = f(s, c, l, a, e[n], 20, -373897302), a = f(a, s, c, l, e[n + 5], 5, -701558691), l = f(l, a, s, c, e[n + 10], 9, 38016083), c = f(c, l, a, s, e[n + 15], 14, -660478335), s = f(s, c, l, a, e[n + 4], 20, -405537848), a = f(a, s, c, l, e[n + 9], 5, 568446438), l = f(l, a, s, c, e[n + 14], 9, -1019803690), c = f(c, l, a, s, e[n + 3], 14, -187363961), s = f(s, c, l, a, e[n + 8], 20, 1163531501), a = f(a, s, c, l, e[n + 13], 5, -1444681467), l = f(l, a, s, c, e[n + 2], 9, -51403784), c = f(c, l, a, s, e[n + 7], 14, 1735328473), s = f(s, c, l, a, e[n + 12], 20, -1926607734), a = m(a, s, c, l, e[n + 5], 4, -378558), l = m(l, a, s, c, e[n + 8], 11, -2022574463), c = m(c, l, a, s, e[n + 11], 16, 1839030562), s = m(s, c, l, a, e[n + 14], 23, -35309556), a = m(a, s, c, l, e[n + 1], 4, -1530992060), l = m(l, a, s, c, e[n + 4], 11, 1272893353), c = m(c, l, a, s, e[n + 7], 16, -155497632), s = m(s, c, l, a, e[n + 10], 23, -1094730640), a = m(a, s, c, l, e[n + 13], 4, 681279174), l = m(l, a, s, c, e[n], 11, -358537222), c = m(c, l, a, s, e[n + 3], 16, -722521979), s = m(s, c, l, a, e[n + 6], 23, 76029189), a = m(a, s, c, l, e[n + 9], 4, -640364487), l = m(l, a, s, c, e[n + 12], 11, -421815835), c = m(c, l, a, s, e[n + 15], 16, 530742520), s = m(s, c, l, a, e[n + 2], 23, -995338651), a = d(a, s, c, l, e[n], 6, -198630844), l = d(l, a, s, c, e[n + 7], 10, 1126891415), c = d(c, l, a, s, e[n + 14], 15, -1416354905), s = d(s, c, l, a, e[n + 5], 21, -57434055), a = d(a, s, c, l, e[n + 12], 6, 1700485571), l = d(l, a, s, c, e[n + 3], 10, -1894986606), c = d(c, l, a, s, e[n + 10], 15, -1051523), s = d(s, c, l, a, e[n + 1], 21, -2054922799), a = d(a, s, c, l, e[n + 8], 6, 1873313359), l = d(l, a, s, c, e[n + 15], 10, -30611744), c = d(c, l, a, s, e[n + 6], 15, -1560198380), s = d(s, c, l, a, e[n + 13], 21, 1309151649), a = d(a, s, c, l, e[n + 4], 6, -145523070), l = d(l, a, s, c, e[n + 11], 10, -1120210379), c = d(c, l, a, s, e[n + 2], 15, 718787259), s = d(s, c, l, a, e[n + 9], 21, -343485551), a = E(a, o), s = E(s, r), c = E(c, i), l = E(l, p);
747
+ o = a, r = s, i = c, p = l, a = u(a, s, c, l, e[n], 7, -680876936), l = u(l, a, s, c, e[n + 1], 12, -389564586), c = u(c, l, a, s, e[n + 2], 17, 606105819), s = u(s, c, l, a, e[n + 3], 22, -1044525330), a = u(a, s, c, l, e[n + 4], 7, -176418897), l = u(l, a, s, c, e[n + 5], 12, 1200080426), c = u(c, l, a, s, e[n + 6], 17, -1473231341), s = u(s, c, l, a, e[n + 7], 22, -45705983), a = u(a, s, c, l, e[n + 8], 7, 1770035416), l = u(l, a, s, c, e[n + 9], 12, -1958414417), c = u(c, l, a, s, e[n + 10], 17, -42063), s = u(s, c, l, a, e[n + 11], 22, -1990404162), a = u(a, s, c, l, e[n + 12], 7, 1804603682), l = u(l, a, s, c, e[n + 13], 12, -40341101), c = u(c, l, a, s, e[n + 14], 17, -1502002290), s = u(s, c, l, a, e[n + 15], 22, 1236535329), a = f(a, s, c, l, e[n + 1], 5, -165796510), l = f(l, a, s, c, e[n + 6], 9, -1069501632), c = f(c, l, a, s, e[n + 11], 14, 643717713), s = f(s, c, l, a, e[n], 20, -373897302), a = f(a, s, c, l, e[n + 5], 5, -701558691), l = f(l, a, s, c, e[n + 10], 9, 38016083), c = f(c, l, a, s, e[n + 15], 14, -660478335), s = f(s, c, l, a, e[n + 4], 20, -405537848), a = f(a, s, c, l, e[n + 9], 5, 568446438), l = f(l, a, s, c, e[n + 14], 9, -1019803690), c = f(c, l, a, s, e[n + 3], 14, -187363961), s = f(s, c, l, a, e[n + 8], 20, 1163531501), a = f(a, s, c, l, e[n + 13], 5, -1444681467), l = f(l, a, s, c, e[n + 2], 9, -51403784), c = f(c, l, a, s, e[n + 7], 14, 1735328473), s = f(s, c, l, a, e[n + 12], 20, -1926607734), a = m(a, s, c, l, e[n + 5], 4, -378558), l = m(l, a, s, c, e[n + 8], 11, -2022574463), c = m(c, l, a, s, e[n + 11], 16, 1839030562), s = m(s, c, l, a, e[n + 14], 23, -35309556), a = m(a, s, c, l, e[n + 1], 4, -1530992060), l = m(l, a, s, c, e[n + 4], 11, 1272893353), c = m(c, l, a, s, e[n + 7], 16, -155497632), s = m(s, c, l, a, e[n + 10], 23, -1094730640), a = m(a, s, c, l, e[n + 13], 4, 681279174), l = m(l, a, s, c, e[n], 11, -358537222), c = m(c, l, a, s, e[n + 3], 16, -722521979), s = m(s, c, l, a, e[n + 6], 23, 76029189), a = m(a, s, c, l, e[n + 9], 4, -640364487), l = m(l, a, s, c, e[n + 12], 11, -421815835), c = m(c, l, a, s, e[n + 15], 16, 530742520), s = m(s, c, l, a, e[n + 2], 23, -995338651), a = d(a, s, c, l, e[n], 6, -198630844), l = d(l, a, s, c, e[n + 7], 10, 1126891415), c = d(c, l, a, s, e[n + 14], 15, -1416354905), s = d(s, c, l, a, e[n + 5], 21, -57434055), a = d(a, s, c, l, e[n + 12], 6, 1700485571), l = d(l, a, s, c, e[n + 3], 10, -1894986606), c = d(c, l, a, s, e[n + 10], 15, -1051523), s = d(s, c, l, a, e[n + 1], 21, -2054922799), a = d(a, s, c, l, e[n + 8], 6, 1873313359), l = d(l, a, s, c, e[n + 15], 10, -30611744), c = d(c, l, a, s, e[n + 6], 15, -1560198380), s = d(s, c, l, a, e[n + 13], 21, 1309151649), a = d(a, s, c, l, e[n + 4], 6, -145523070), l = d(l, a, s, c, e[n + 11], 10, -1120210379), c = d(c, l, a, s, e[n + 2], 15, 718787259), s = d(s, c, l, a, e[n + 9], 21, -343485551), a = b(a, o), s = b(s, r), c = b(c, i), l = b(l, p);
748
748
  return [a, s, c, l];
749
749
  }, ne = (e) => {
750
750
  let t, n = "", o = e.length * 32;
@@ -1109,7 +1109,9 @@ const Qe = (e, t = {}) => {
1109
1109
  }, s.finally = function(g) {
1110
1110
  return i(T(g));
1111
1111
  }, s.abort = (g) => {
1112
- r(), n.abort(new Je(g || "request aborted."));
1112
+ r(), s.aborted = !0, n.abort(new Je(g || "request aborted."));
1113
+ }, s.abortSilently = () => {
1114
+ r(), s.aborted = !0, n.abort();
1113
1115
  }, s;
1114
1116
  }, p = fetch(e, {
1115
1117
  ...t,
@@ -1118,7 +1120,7 @@ const Qe = (e, t = {}) => {
1118
1120
  throw r(), a;
1119
1121
  });
1120
1122
  return i(p);
1121
- }, Xe = (e, t, n) => {
1123
+ }, ao = (e) => e, Xe = (e, t, n) => {
1122
1124
  if (t == null) return;
1123
1125
  const o = e.replace(/([A-Z])/g, "-$1").replace(/^-/, "").toLowerCase();
1124
1126
  n.set(o, String(t));
@@ -1164,7 +1166,7 @@ const Qe = (e, t = {}) => {
1164
1166
  default:
1165
1167
  return se(e);
1166
1168
  }
1167
- }, ao = (e, t = null, n = {}) => B(e, t, { ...n, ContentType: S, Accept: S }).then((o) => o.json()), so = (e, t = null, n = {}) => B(e, t, { ...n, method: "POST", ContentType: S, Accept: S }).then((o) => o.json()), co = (e, t, n = null, o = {}) => {
1169
+ }, so = (e, t = null, n = {}) => B(e, t, { ...n, ContentType: S, Accept: S }).then((o) => o.json()), co = (e, t = null, n = {}) => B(e, t, { ...n, method: "POST", ContentType: S, Accept: S }).then((o) => o.json()), lo = (e, t, n = null, o = {}) => {
1168
1170
  const r = new FormData();
1169
1171
  if (Object.keys(t).forEach((i) => {
1170
1172
  r.append(i, t[i], t[i].name);
@@ -1185,23 +1187,23 @@ function V(e) {
1185
1187
  }
1186
1188
  return e;
1187
1189
  }
1188
- function lo(e) {
1190
+ function po(e) {
1189
1191
  return Object.keys(e).length === 0;
1190
1192
  }
1191
- const po = (e, t) => {
1193
+ const uo = (e, t) => {
1192
1194
  let n = {};
1193
1195
  for (let o in e)
1194
1196
  t[o] !== void 0 ? n[t[o]] = e[o] : n[o] = e[o];
1195
1197
  return n;
1196
- }, uo = (e) => Object.entries(e).map(([t, n]) => [/^\d+$/.test(t) ? Number(t) : t, n]), fo = (e) => {
1198
+ }, fo = (e) => Object.entries(e).map(([t, n]) => [/^\d+$/.test(t) ? Number(t) : t, n]), mo = (e) => {
1197
1199
  const t = {};
1198
1200
  for (const [n, o] of e) {
1199
1201
  const r = typeof n == "string" && /^\d+$/.test(n) ? Number(n) : n;
1200
1202
  t[r] = o;
1201
1203
  }
1202
1204
  return t;
1203
- }, mo = (e) => Object.fromEntries(Object.entries(e).map(([t, n]) => [n, t]));
1204
- function go(e, t, n) {
1205
+ }, go = (e) => Object.fromEntries(Object.entries(e).map(([t, n]) => [n, t]));
1206
+ function ho(e, t, n) {
1205
1207
  const o = t.split(".");
1206
1208
  let r = e;
1207
1209
  for (const i of o) {
@@ -1211,7 +1213,7 @@ function go(e, t, n) {
1211
1213
  }
1212
1214
  return r !== void 0 ? r : n;
1213
1215
  }
1214
- function ho(e, t, n) {
1216
+ function xo(e, t, n) {
1215
1217
  const o = t.split("."), r = o.pop();
1216
1218
  let i = e;
1217
1219
  for (const p of o)
@@ -1231,7 +1233,7 @@ const ot = (e, t = !1) => {
1231
1233
  for (const n in e)
1232
1234
  e[n] === null ? delete e[n] : t && typeof e[n] == "object" && ot(e[n], !0);
1233
1235
  return e;
1234
- }, xo = (/* @__PURE__ */ new Date()).getFullYear(), wo = (/* @__PURE__ */ new Date()).getMonth() + 1, vo = (/* @__PURE__ */ new Date()).getDate(), yo = 60 * 1e3, Eo = 60 * 60 * 1e3, _ = 24 * 60 * 60 * 1e3, bo = 7 * _, To = 30 * _, Mo = 31 * _, Ao = 365 * _, So = 366 * _, Co = 0, _o = 1, No = 2, Do = 3, Oo = 4, Ro = 5, Lo = 6, rt = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], it = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], at = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], st = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], Io = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], ko = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], Po = ["日", "一", "二", "三", "四", "五", "六"], Fo = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], Ho = (e, t, n) => {
1236
+ }, wo = (/* @__PURE__ */ new Date()).getFullYear(), vo = (/* @__PURE__ */ new Date()).getMonth() + 1, yo = (/* @__PURE__ */ new Date()).getDate(), bo = 60 * 1e3, Eo = 60 * 60 * 1e3, _ = 24 * 60 * 60 * 1e3, To = 7 * _, Mo = 30 * _, Ao = 31 * _, So = 365 * _, Co = 366 * _, _o = 0, No = 1, Do = 2, Oo = 3, Ro = 4, Lo = 5, Io = 6, rt = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], it = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], at = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], st = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], ko = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], Po = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], Fo = ["日", "一", "二", "三", "四", "五", "六"], Ho = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], $o = (e, t, n) => {
1235
1237
  let o = () => {
1236
1238
  if (t && t(e), e-- > 0) {
1237
1239
  setTimeout(o, 1e3);
@@ -1240,17 +1242,17 @@ const ot = (e, t = !1) => {
1240
1242
  n && n();
1241
1243
  };
1242
1244
  o();
1243
- }, $o = (e) => {
1245
+ }, Uo = (e) => {
1244
1246
  if (!e || e < 10)
1245
1247
  return "刚刚";
1246
1248
  e = Math.floor(e / 1e3);
1247
1249
  const t = Math.floor(e / 3600), n = Math.floor(e % 3600 / 60), o = e % 60;
1248
1250
  let r = "";
1249
1251
  return t > 0 && (r += t + "小时"), (n > 0 || t > 0) && (r += n + "分钟"), r += o + "秒前", r;
1250
- }, Uo = (e, t = !1) => {
1252
+ }, Bo = (e, t = !1) => {
1251
1253
  const n = new Date(e);
1252
1254
  return new Date(n.getTime() - n.getTimezoneOffset() * 6e4).toISOString().slice(0, t ? 19 : 16);
1253
- }, Bo = (e, t, n) => e <= 0 ? 1 / 0 : (Date.now() - n) / e * (t - e), J = {
1255
+ }, Yo = (e, t, n) => e <= 0 ? 1 / 0 : (Date.now() - n) / e * (t - e), J = {
1254
1256
  d: (e) => {
1255
1257
  let t = e.getDate();
1256
1258
  return (t < 10 ? "0" : "") + t;
@@ -1390,23 +1392,23 @@ const ot = (e, t = !1) => {
1390
1392
  }, lt = (e) => {
1391
1393
  const t = Math.floor(e / 60), n = Math.abs(e % 60);
1392
1394
  return `${t >= 0 ? "+" : "-"}${String(Math.abs(t)).padStart(2, "0")}:${String(n).padStart(2, "0")}`;
1393
- }, Yo = (e) => {
1395
+ }, jo = (e) => {
1394
1396
  const t = ct(e);
1395
1397
  return lt(t);
1396
- }, jo = (e) => ce("W", e);
1398
+ }, qo = (e) => ce("W", e);
1397
1399
  export {
1398
1400
  Je as AbortError,
1399
1401
  te as BLOCK_TAGS,
1400
1402
  Wt as Base64Encode,
1401
1403
  xt as COMMON_DPI,
1402
- vo as DATE_NOW,
1403
- Ro as DAY_FRIDAY,
1404
- _o as DAY_MONDAY,
1405
- Lo as DAY_SATURDAY,
1406
- Co as DAY_SUNDAY,
1407
- Oo as DAY_THURSDAY,
1408
- No as DAY_TUESDAY,
1409
- Do as DAY_WEDNESDAY,
1404
+ yo as DATE_NOW,
1405
+ Lo as DAY_FRIDAY,
1406
+ No as DAY_MONDAY,
1407
+ Io as DAY_SATURDAY,
1408
+ _o as DAY_SUNDAY,
1409
+ Ro as DAY_THURSDAY,
1410
+ Do as DAY_TUESDAY,
1411
+ Oo as DAY_WEDNESDAY,
1410
1412
  Tt as GOLDEN_RATIO,
1411
1413
  no as MIME_BINARY_DEFAULT,
1412
1414
  io as MIME_EXTENSION_MAP,
@@ -1415,19 +1417,19 @@ export {
1415
1417
  S as MIME_JSON,
1416
1418
  We as MIME_MULTIPART,
1417
1419
  oo as MIME_TEXT,
1418
- Io as MONTH_NAMES_CN,
1420
+ ko as MONTH_NAMES_CN,
1419
1421
  at as MONTH_NAMES_EN,
1420
- ko as MONTH_NAMES_SHORT_CN,
1422
+ Po as MONTH_NAMES_SHORT_CN,
1421
1423
  st as MONTH_NAMES_SHORT_EN,
1422
- wo as MONTH_NOW,
1424
+ vo as MONTH_NOW,
1423
1425
  _ as ONE_DAY,
1424
1426
  Eo as ONE_HOUR,
1425
- yo as ONE_MINUTE,
1426
- To as ONE_MONTH30,
1427
- Mo as ONE_MONTH31,
1428
- bo as ONE_WEEK,
1429
- Ao as ONE_YEAR365,
1430
- So as ONE_YEAR366,
1427
+ bo as ONE_MINUTE,
1428
+ Mo as ONE_MONTH30,
1429
+ Ao as ONE_MONTH31,
1430
+ To as ONE_WEEK,
1431
+ So as ONE_YEAR365,
1432
+ Co as ONE_YEAR366,
1431
1433
  Un as PAIR_TAGS,
1432
1434
  Fe as REMOVABLE_TAGS,
1433
1435
  ue as SCREEN_DPI,
@@ -1435,12 +1437,12 @@ export {
1435
1437
  Q as STAND_DPI,
1436
1438
  j as TRIM_BOTH,
1437
1439
  q as TRIM_LEFT,
1438
- Ee as TRIM_RIGHT,
1439
- Fo as WEEK_DAY_NAMES_CN,
1440
+ be as TRIM_RIGHT,
1441
+ Ho as WEEK_DAY_NAMES_CN,
1440
1442
  rt as WEEK_DAY_NAMES_EN,
1441
- Po as WEEK_DAY_NAMES_SHORT_CN,
1443
+ Fo as WEEK_DAY_NAMES_SHORT_CN,
1442
1444
  it as WEEK_DAY_NAMES_SHORT_EN,
1443
- xo as YEAR_NOW,
1445
+ wo as YEAR_NOW,
1444
1446
  Qe as abortableFetch,
1445
1447
  gt as arrayChunk,
1446
1448
  pt as arrayColumn,
@@ -1449,6 +1451,7 @@ export {
1449
1451
  ut as arrayIndex,
1450
1452
  dt as arraySortByKey,
1451
1453
  ht as arrayTrimTail,
1454
+ ao as asAbortable,
1452
1455
  Gt as base64Decode,
1453
1456
  Kt as base64UrlSafeEncode,
1454
1457
  w as between,
@@ -1458,16 +1461,16 @@ export {
1458
1461
  dn as bindKeyDown,
1459
1462
  mn as bindKeyUp,
1460
1463
  Pn as bindNodeMove,
1461
- be as blobToBase64,
1464
+ Ee as blobToBase64,
1462
1465
  z as blobToDataUri,
1463
1466
  Kn as buildHtmlHidden,
1464
1467
  kn as buildStyleVars,
1465
- Bo as calcRemainingMSecs,
1468
+ Yo as calcRemainingMSecs,
1466
1469
  Pt as camelCase,
1467
1470
  he as capitalize,
1468
1471
  ot as cleanNull,
1469
1472
  lt as convertMinutesToTimezoneOffsetStr,
1470
- Ho as countDown,
1473
+ $o as countDown,
1471
1474
  In as createDomByHtml,
1472
1475
  qn as cssSelectorEscape,
1473
1476
  It as cutString,
@@ -1476,7 +1479,7 @@ export {
1476
1479
  V as deepClone,
1477
1480
  R as deleteCookie,
1478
1481
  Qt as deleteCookieAllPaths,
1479
- Et as detectLanguage,
1482
+ bt as detectLanguage,
1480
1483
  Ot as detectedPrecision,
1481
1484
  Rt as digitCount,
1482
1485
  Re as disabled,
@@ -1492,7 +1495,7 @@ export {
1492
1495
  kt as extract,
1493
1496
  Hn as fileToBase64DataUri,
1494
1497
  ee as findAll,
1495
- b as findOne,
1498
+ E as findOne,
1496
1499
  Ln as fixBaseUrl,
1497
1500
  xe as floatVal,
1498
1501
  ce as formatDate,
@@ -1500,12 +1503,12 @@ export {
1500
1503
  Pe as getBoundingClientRect,
1501
1504
  Jt as getCookie,
1502
1505
  Dn as getDomDimension,
1503
- ao as getJson,
1506
+ so as getJson,
1504
1507
  Tn as getNodeXPath,
1505
1508
  ct as getTimezoneOffsetMinutes,
1506
- Yo as getTimezoneOffsetStr,
1509
+ jo as getTimezoneOffsetStr,
1507
1510
  $t as getUTF8StrLen,
1508
- jo as getWeekNumber,
1511
+ qo as getWeekNumber,
1509
1512
  Ae as guid,
1510
1513
  xn as hide,
1511
1514
  Qn as highlightText,
@@ -1514,8 +1517,8 @@ export {
1514
1517
  ke as insertStyleSheet,
1515
1518
  et as isBodyInit,
1516
1519
  qt as isChinese,
1517
- lo as isEmptyObject,
1518
- bt as isFirefox,
1520
+ po as isEmptyObject,
1521
+ Et as isFirefox,
1519
1522
  Cn as isFocusable,
1520
1523
  rn as isFunction,
1521
1524
  de as isInFullScreen,
@@ -1532,23 +1535,23 @@ export {
1532
1535
  Nt as limit,
1533
1536
  _n as loadCss,
1534
1537
  Nn as loadScript,
1535
- En as lockElementInteraction,
1538
+ bn as lockElementInteraction,
1536
1539
  Vn as markdown2Html,
1537
1540
  to as md5,
1538
1541
  St as mmToPt,
1539
1542
  Mt as mmToPx,
1540
1543
  At as mmToTwip,
1541
- $o as msToHMS,
1544
+ Uo as msToHMS,
1542
1545
  Ie as mutationEffective,
1543
- bn as nodeIndex,
1546
+ En as nodeIndex,
1544
1547
  se as objToQuery,
1545
- uo as objectEntries,
1546
- fo as objectFromEntries,
1547
- go as objectGet,
1548
- po as objectKeyReplace,
1548
+ fo as objectEntries,
1549
+ mo as objectFromEntries,
1550
+ ho as objectGet,
1551
+ uo as objectKeyReplace,
1549
1552
  nt as objectMerge,
1550
- ho as objectSet,
1551
- mo as objectSwitchKV,
1553
+ xo as objectSet,
1554
+ go as objectSwitchKV,
1552
1555
  Oe as offEvent,
1553
1556
  pn as onDocReady,
1554
1557
  Mn as onDomTreeChange,
@@ -1556,8 +1559,8 @@ export {
1556
1559
  cn as onEvents,
1557
1560
  yn as onHover,
1558
1561
  k as parseUnit,
1559
- co as postFiles,
1560
- so as postJson,
1562
+ lo as postFiles,
1563
+ co as postJson,
1561
1564
  Rn as precisionToStep,
1562
1565
  sn as printStack,
1563
1566
  Ct as ptToMm,
@@ -1588,7 +1591,7 @@ export {
1588
1591
  jn as text2Html,
1589
1592
  Xt as throttle,
1590
1593
  Zt as throttleEffect,
1591
- Uo as timestampToDateTimeLocal,
1594
+ Bo as timestampToDateTimeLocal,
1592
1595
  Z as toggleDisabled,
1593
1596
  yt as toggleFullScreen,
1594
1597
  hn as triggerDomEvent,