minutool 1.0.32 → 1.0.34

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
@@ -318,6 +318,18 @@ export declare const cleanNull: <T>(obj: T, recursive?: boolean) => T;
318
318
 
319
319
  export declare const COMMON_DPI = 96;
320
320
 
321
+ /**
322
+ * 组合多个清理函数为一个清理函数
323
+ * @param cleanups - 要组合的清理函数数组
324
+ * @returns 一个函数,调用时会依次执行所有传入的清理函数
325
+ * @example
326
+ * const cleanup1 = () => console.log('cleanup1');
327
+ * const cleanup2 = () => console.log('cleanup2');
328
+ * const combinedCleanup = composeCleanups(cleanup1, cleanup2);
329
+ * combinedCleanup(); // 会依次执行 cleanup1 和 cleanup2
330
+ */
331
+ export declare const composeCleanups: (...cleanups: Array<() => void>) => (() => void);
332
+
321
333
  export declare const convertMinutesToTimezoneOffsetStr: (offsetMinutes: number) => string;
322
334
 
323
335
  /**
package/dist/minutool.js CHANGED
@@ -367,19 +367,21 @@ const Vn = (e, t) => {
367
367
  n.initEvent(t.toLowerCase(), !1, !0), e.dispatchEvent(n);
368
368
  } else
369
369
  e.fireEvent("on" + t.toLowerCase());
370
- }, ao = (e) => {
370
+ }, ao = (...e) => () => {
371
+ e.forEach((t) => t());
372
+ }, so = (e) => {
371
373
  const t = b(e);
372
374
  t && (t.style.display = "none");
373
- }, so = (e) => {
375
+ }, co = (e) => {
374
376
  const t = b(e);
375
377
  t && (t.style.display = "");
376
- }, co = (e) => {
378
+ }, lo = (e) => {
377
379
  let t = b(e);
378
380
  return t && t.parentNode && t.parentNode.removeChild(t);
379
381
  }, B = "disabled", Ye = (e, t = "") => ae(e, t, !1), je = (e, t = "") => ae(e, t, !0), ae = (e, t = "", n = null) => {
380
382
  let o = b(e), r = n === null ? !o.classList.contains(B) : !n;
381
383
  r && ze(`.${B} {pointer-event:none !important;}`, "__element_lock_style__"), o.classList.toggle(B, r), o[r ? "setAttribute" : "removeAttribute"]("disabled", "disabled"), o[r ? "setAttribute" : "removeAttribute"]("data-disabled", "disabled"), t && o.classList.toggle(t, r);
382
- }, lo = (e, t, n) => {
384
+ }, po = (e, t, n) => {
383
385
  e = b(e);
384
386
  let o = !1;
385
387
  const r = [];
@@ -394,11 +396,11 @@ const Vn = (e, t) => {
394
396
  ), () => {
395
397
  r.forEach((i) => i());
396
398
  };
397
- }, po = (e, t) => {
399
+ }, uo = (e, t) => {
398
400
  Ye(e), t(() => {
399
401
  je(e);
400
402
  });
401
- }, uo = (e) => e.parentNode ? Array.prototype.indexOf.call(e.parentNode.children, e) : -1, se = (e, t = document) => {
403
+ }, fo = (e) => e.parentNode ? Array.prototype.indexOf.call(e.parentNode.children, e) : -1, se = (e, t = document) => {
402
404
  if (typeof e == "string")
403
405
  return e = e.trim(), e.indexOf(":scope") !== 0 && (e = ":scope " + e), Array.from(t.querySelectorAll(e));
404
406
  if (Array.isArray(e)) {
@@ -407,7 +409,7 @@ const Vn = (e, t) => {
407
409
  n.push(...se(o));
408
410
  }), n;
409
411
  } else return NodeList.prototype.isPrototypeOf(e) || HTMLCollection.prototype.isPrototypeOf(e) ? Array.from(e) : e instanceof HTMLElement ? [e] : e;
410
- }, b = (e, t = document) => typeof e == "string" ? t.querySelector(e) : e, fo = (e) => {
412
+ }, b = (e, t = document) => typeof e == "string" ? t.querySelector(e) : e, mo = (e) => {
411
413
  let t = document.getElementsByTagName("*"), n = [];
412
414
  for (n = []; e && e.nodeType === 1; e = e.parentNode)
413
415
  if (e.hasAttribute("id")) {
@@ -426,7 +428,7 @@ const Vn = (e, t) => {
426
428
  n.unshift(e.localName.toLowerCase() + "[" + o + "]");
427
429
  }
428
430
  return n.length ? "/" + n.join("/") : null;
429
- }, mo = (e, t, n = !0) => {
431
+ }, ho = (e, t, n = !0) => {
430
432
  const o = "ON_DOM_TREE_CHANGE_BIND_" + ke();
431
433
  let r = () => {
432
434
  se(`input:not([${o}]), textarea:not([${o}]), select:not([${o}])`, e).forEach((i) => {
@@ -451,7 +453,7 @@ const Vn = (e, t) => {
451
453
  }, s)) : (r = Date.now(), n(a));
452
454
  });
453
455
  a.observe(e, t);
454
- }, ho = (e, t = {
456
+ }, go = (e, t = {
455
457
  left: 0,
456
458
  top: 0,
457
459
  width: window.innerWidth,
@@ -459,23 +461,23 @@ const Vn = (e, t) => {
459
461
  }) => {
460
462
  let n = { left: e.left, top: e.top };
461
463
  return e.width > t.width || e.height > t.height || (e.width + e.left > t.width + t.left && (n.left = e.left - (e.width + e.left - (t.width + t.left))), e.height + e.top > t.height + t.top && (n.top = e.top - (e.height + e.top - (t.height + t.top))), e.left < t.left && (n.left = t.left), e.top < t.top && (n.top = t.top)), n;
462
- }, go = (e, t) => e.left <= t.left ? e.left + e.width >= t.left && (v(t.top, e.top, e.top + e.height) || v(t.top + t.height, e.top, e.top + e.height) || t.top >= e.top && t.height >= e.height) : t.left + t.width >= e.left && (v(e.top, t.top, t.top + t.height) || v(e.top + e.height, t.top, t.top + t.height) || e.top >= t.top && e.height >= t.height), wo = (e) => e ? !!(e.tabIndex >= 0 || e instanceof HTMLAnchorElement && e.href || e instanceof HTMLButtonElement && !e.disabled || e instanceof HTMLInputElement && !e.disabled || e instanceof HTMLTextAreaElement && !e.disabled) : !1;
464
+ }, wo = (e, t) => e.left <= t.left ? e.left + e.width >= t.left && (v(t.top, e.top, e.top + e.height) || v(t.top + t.height, e.top, e.top + e.height) || t.top >= e.top && t.height >= e.height) : t.left + t.width >= e.left && (v(e.top, t.top, t.top + t.height) || v(e.top + e.height, t.top, t.top + t.height) || e.top >= t.top && e.height >= t.height), xo = (e) => e ? !!(e.tabIndex >= 0 || e instanceof HTMLAnchorElement && e.href || e instanceof HTMLButtonElement && !e.disabled || e instanceof HTMLInputElement && !e.disabled || e instanceof HTMLTextAreaElement && !e.disabled) : !1;
463
465
  let E = {};
464
- const xo = (e, t = !1) => (!t && e in E || (E[e] = new Promise((n, o) => {
466
+ const vo = (e, t = !1) => (!t && e in E || (E[e] = new Promise((n, o) => {
465
467
  let r = document.createElement("link");
466
468
  r.rel = "stylesheet", r.href = e, r.onload = () => {
467
469
  n();
468
470
  }, r.onerror = () => {
469
471
  o();
470
472
  }, document.head.append(r);
471
- })), E[e]), vo = (e, t = !1) => (!t && e in E || (E[e] = new Promise((n, o) => {
473
+ })), E[e]), yo = (e, t = !1) => (!t && e in E || (E[e] = new Promise((n, o) => {
472
474
  let r = document.createElement("script");
473
475
  r.src = e, r.onload = () => {
474
476
  n();
475
477
  }, r.onerror = () => {
476
478
  o();
477
479
  }, document.head.append(r);
478
- })), E[e]), yo = (e) => {
480
+ })), E[e]), Eo = (e) => {
479
481
  let t = e.style.visibility, n = e.style.display, o, r;
480
482
  return e.style.visibility = "hidden", e.style.display = "block", o = e.clientWidth, r = e.clientHeight, e.style.visibility = t, e.style.display = n, { width: o, height: r };
481
483
  }, ze = (e, t = "", n = document) => {
@@ -483,14 +485,14 @@ const xo = (e, t = !1) => (!t && e in E || (E[e] = new Promise((n, o) => {
483
485
  return n.querySelector(`#${t}`);
484
486
  let o = n.createElement("style");
485
487
  return n.head.appendChild(o), o.innerHTML = e, t && (o.id = t), o;
486
- }, Eo = (e, t) => v(e.top, t.top, t.top + t.height) && v(e.left, t.left, t.left + t.width) && //左上角
487
- v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.left + t.width), Mo = (e) => Math.pow(10, -e), bo = (e, t) => {
488
+ }, Mo = (e, t) => v(e.top, t.top, t.top + t.height) && v(e.left, t.left, t.left + t.width) && //左上角
489
+ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.left + t.width), bo = (e) => Math.pow(10, -e), To = (e, t) => {
488
490
  try {
489
491
  return new URL(e, t).href;
490
492
  } catch {
491
493
  return e;
492
494
  }
493
- }, To = (e, t = null) => {
495
+ }, Ao = (e, t = null) => {
494
496
  const n = document.createElement("template");
495
497
  e = e.trim(), n.innerHTML = e;
496
498
  let o = [];
@@ -515,14 +517,14 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
515
517
  width: n.width,
516
518
  height: n.height
517
519
  };
518
- }, Ao = (e) => {
520
+ }, So = (e) => {
519
521
  let t = {};
520
522
  for (let n in e) {
521
523
  const o = e[n];
522
524
  o != null && (t[`--${n}`] = `${o}`);
523
525
  }
524
526
  return t;
525
- }, So = (e, t = null, {
527
+ }, Co = (e, t = null, {
526
528
  lockInView: n = !1,
527
529
  onStart: o,
528
530
  onEnd: r,
@@ -557,7 +559,7 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
557
559
  }, I = /* @__PURE__ */ new WeakMap(), Ge = (e) => {
558
560
  const t = I.get(e);
559
561
  t && (cancelAnimationFrame(t.raf), I.delete(e), e.style.scrollBehavior = t.prevBehavior);
560
- }, Co = (e, t, n = {}) => {
562
+ }, _o = (e, t, n = {}) => {
561
563
  const { duration: o = 380, axis: r = "scrollLeft", onEnd: i, easingFn: a = ye } = n;
562
564
  Ge(e);
563
565
  const s = e.style.scrollBehavior;
@@ -576,10 +578,10 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
576
578
  S < 1 && u ? u.raf = requestAnimationFrame(T) : (I.delete(e), f());
577
579
  };
578
580
  I.set(e, { raf: requestAnimationFrame(T), prevBehavior: s });
579
- }, _o = (e) => e.replace(/[\\/:*?"<>|]/g, "_").replace(/[\0-\x1F]/g, "_").replace(/\s+/g, " ").replace(/^\.+/, "").replace(/\.+$/, "").trim(), J = (e) => new Promise((t, n) => {
581
+ }, Oo = (e) => e.replace(/[\\/:*?"<>|]/g, "_").replace(/[\0-\x1F]/g, "_").replace(/\s+/g, " ").replace(/^\.+/, "").replace(/\.+$/, "").trim(), J = (e) => new Promise((t, n) => {
580
582
  const o = new FileReader();
581
583
  o.onload = () => t(o.result), o.onerror = (r) => n(r), o.readAsDataURL(e);
582
- }), X = {}, Z = (e, t = null) => t !== null ? (X[e] = t, null) : X[e] || null, Oo = async (e) => {
584
+ }), X = {}, Z = (e, t = null) => t !== null ? (X[e] = t, null) : X[e] || null, Io = async (e) => {
583
585
  if (!e)
584
586
  return null;
585
587
  if (typeof e == "string" && e.startsWith("data:"))
@@ -596,7 +598,7 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
596
598
  } catch (t) {
597
599
  return console.warn("file2Base64DataURL failed:", t), null;
598
600
  }
599
- }, Io = (e, t) => {
601
+ }, Do = (e, t) => {
600
602
  const n = document.createElement("a");
601
603
  n.rel = "noopener noreferrer", n.href = e, n.download = t, document.body.appendChild(n), n.click(), document.body.removeChild(n);
602
604
  }, ce = [
@@ -634,7 +636,7 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
634
636
  "TFOOT",
635
637
  "UL",
636
638
  "VIDEO"
637
- ], Do = [
639
+ ], No = [
638
640
  "A",
639
641
  "ABBR",
640
642
  "ACRONYM",
@@ -667,7 +669,7 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
667
669
  "TT",
668
670
  "U",
669
671
  "VAR"
670
- ].concat(...ce), No = ["AREA", "BASE", "BR", "COL", "EMBED", "HR", "IMG", "INPUT", "LINK", "META", "PARAM", "SOURCE", "TRACK", "WBR"], Ke = ["STYLE", "COMMENT", "SELECT", "OPTION", "SCRIPT", "TITLE", "HEAD", "BUTTON", "META", "LINK", "PARAM", "SOURCE"], Lo = (e, t = {}) => {
672
+ ].concat(...ce), Lo = ["AREA", "BASE", "BR", "COL", "EMBED", "HR", "IMG", "INPUT", "LINK", "META", "PARAM", "SOURCE", "TRACK", "WBR"], Ke = ["STYLE", "COMMENT", "SELECT", "OPTION", "SCRIPT", "TITLE", "HEAD", "BUTTON", "META", "LINK", "PARAM", "SOURCE"], Ro = (e, t = {}) => {
671
673
  t.keepLineBreak = t.keepLineBreak !== !1;
672
674
  const n = t.imgReplacer !== void 0 ? t.imgReplacer : "[Image]";
673
675
  e = e.replace(/<img[^>]*src=["']([^"']*)["'][^>]*alt=["']([^"']*)["'][^>]*>/gi, function(i, a, s) {
@@ -700,12 +702,12 @@ v(e.top + e.height, t.top, t.top + t.height) && v(e.left + e.width, t.left, t.le
700
702
  }), e = e.replace(/&#(\d+);/g, function(i, a) {
701
703
  return String.fromCharCode(parseInt(a));
702
704
  }), e = e.replace(/&amp;/gi, "&"), t.keepLineBreak || (e = e.replace(/\n+/g, " ")), e = e.trim(), e;
703
- }, Ro = (e) => Ve(e, 0, !1).replace(/\n/g, "<br/>"), ko = (e) => window.CSS && CSS.escape ? CSS.escape(e) : e.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&"), Po = (e) => {
705
+ }, ko = (e) => Ve(e, 0, !1).replace(/\n/g, "<br/>"), Po = (e) => window.CSS && CSS.escape ? CSS.escape(e) : e.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&"), Fo = (e) => {
704
706
  let t = e.split(";");
705
707
  return t.pop(), t.map((n) => String.fromCharCode(n[2] === "x" ? parseInt(n.slice(3), 16) : parseInt(n.slice(2)))).join("");
706
708
  };
707
709
  let O;
708
- const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim, ""), e = e.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim, ""), O.innerHTML = e, e = O.textContent || "", O.textContent = "", e), Ho = (e) => {
710
+ const Ho = (e) => (O || (O = document.createElement("div")), e = e.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim, ""), e = e.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim, ""), O.innerHTML = e, e = O.textContent || "", O.textContent = "", e), Bo = (e) => {
709
711
  let t = "";
710
712
  for (let n in e) {
711
713
  let o = e[n] === null ? "" : e[n];
@@ -715,8 +717,8 @@ const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<scr
715
717
  }, Ve = (e, t = 2, n = !0) => {
716
718
  let o = String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
717
719
  return n && (o = o.replace(/[\r\n]/g, "<br/>")), t && (o = o.replace(/\t/g, "&nbsp;".repeat(t))), o = o.replace(/\s/g, "&nbsp;"), o;
718
- }, Bo = (e) => String(e).replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/<br.*>/, `
719
- `), $o = (e) => {
720
+ }, $o = (e) => String(e).replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/<br.*>/, `
721
+ `), Uo = (e) => {
720
722
  if (!e)
721
723
  return "";
722
724
  let t = e;
@@ -735,10 +737,10 @@ const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<scr
735
737
  }), r += "</table>", r;
736
738
  }), t = t.replace(/^\s*-\s+(.*)/gim, "<li>$1</li>"), t = t.replace(/(<li>.*<\/li>)/gims, "<ul>$1</ul>"), t = t.replace(/\n/g, "<br />"), t.trim();
737
739
  }, ee = (e, t = "") => (t = t ? "&#13;" : `
738
- `, ("" + e).replace(/&/g, "&amp;").replace(/'/g, "&apos;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\r\n/g, t).replace(/[\r\n]/g, t)), Uo = (e, t) => {
740
+ `, ("" + e).replace(/&/g, "&amp;").replace(/'/g, "&apos;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\r\n/g, t).replace(/[\r\n]/g, t)), Yo = (e, t) => {
739
741
  let n = e.split("");
740
742
  return t = t || 0, n.map((o) => `&#${t ? "x" + o.charCodeAt(0).toString(16) : o.charCodeAt(0)};`).join("");
741
- }, Yo = (e, t, n = '<span class="matched">%s</span>') => t ? e.replace(new RegExp(Y(t), "ig"), (o) => n.replace("%s", o)) : e, jo = (e) => {
743
+ }, jo = (e, t, n = '<span class="matched">%s</span>') => t ? e.replace(new RegExp(Y(t), "ig"), (o) => n.replace("%s", o)) : e, qo = (e) => {
742
744
  if (!e.src)
743
745
  return null;
744
746
  if (e.src.indexOf("data:") === 0)
@@ -757,7 +759,7 @@ const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<scr
757
759
  }, r.onerror = (i) => {
758
760
  n(new Error("Failed to load SVG into Image:" + i));
759
761
  }, r.src = o;
760
- }), qo = (e, t = null, n = null) => (t = t || "image/png", new Promise((o, r) => {
762
+ }), zo = (e, t = null, n = null) => (t = t || "image/png", new Promise((o, r) => {
761
763
  const i = N(n) ? Ce(n) : 1;
762
764
  Je(e).then((a) => {
763
765
  const [s, c] = Xe(e), l = document.createElement("canvas");
@@ -781,7 +783,7 @@ const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<scr
781
783
  t = i.width, n = i.height;
782
784
  }
783
785
  return [t, n];
784
- }, zo = (e, t = !1) => new Promise((n, o) => {
786
+ }, Wo = (e, t = !1) => new Promise((n, o) => {
785
787
  if (t) {
786
788
  const i = Z(e);
787
789
  if (i)
@@ -834,7 +836,7 @@ const Fo = (e) => (O || (O = document.createElement("div")), e = e.replace(/<scr
834
836
  for (r = 0; r < e.length; r += 1)
835
837
  o = e.charCodeAt(r), n += t.charAt(o >>> 4 & 15) + t.charAt(o & 15);
836
838
  return n;
837
- }, q = (e) => unescape(encodeURIComponent(e)), ue = (e) => et(q(e)), nt = (e) => pe(ue(e)), fe = (e, t) => tt(q(e), q(t)), ot = (e, t) => pe(fe(e, t)), Wo = (e, t, n) => t ? n ? fe(t, e) : ot(t, e) : n ? ue(e) : nt(e), Go = "application/octet-stream", D = "application/json", rt = "application/x-www-form-urlencoded", it = "multipart/form-data", Ko = "text/plain", Vo = "text/html", Qo = {
839
+ }, q = (e) => unescape(encodeURIComponent(e)), ue = (e) => et(q(e)), nt = (e) => pe(ue(e)), fe = (e, t) => tt(q(e), q(t)), ot = (e, t) => pe(fe(e, t)), Go = (e, t, n) => t ? n ? fe(t, e) : ot(t, e) : n ? ue(e) : nt(e), Ko = "application/octet-stream", D = "application/json", rt = "application/x-www-form-urlencoded", it = "multipart/form-data", Vo = "text/plain", Qo = "text/html", Jo = {
838
840
  323: "text/h323",
839
841
  accdb: "application/msaccess",
840
842
  accde: "application/msaccess",
@@ -1251,7 +1253,7 @@ const ct = (e, t = {}) => {
1251
1253
  default:
1252
1254
  return de(e);
1253
1255
  }
1254
- }, Jo = (e, t = null, n = {}) => G(e, t, { ...n, ContentType: D, Accept: D }).then((o) => o.json()), Xo = (e, t = null, n = {}) => G(e, t, { ...n, method: "POST", ContentType: D, Accept: D }).then((o) => o.json()), Zo = (e, t, n = null, o = {}) => {
1256
+ }, Xo = (e, t = null, n = {}) => G(e, t, { ...n, ContentType: D, Accept: D }).then((o) => o.json()), Zo = (e, t = null, n = {}) => G(e, t, { ...n, method: "POST", ContentType: D, Accept: D }).then((o) => o.json()), er = (e, t, n = null, o = {}) => {
1255
1257
  const r = new FormData();
1256
1258
  if (Object.keys(t).forEach((i) => {
1257
1259
  r.append(i, t[i], t[i].name);
@@ -1270,19 +1272,19 @@ const ct = (e, t = {}) => {
1270
1272
  return t;
1271
1273
  }
1272
1274
  return e;
1273
- }, er = (e) => Object.keys(e).length === 0, tr = (e, t) => {
1275
+ }, tr = (e) => Object.keys(e).length === 0, nr = (e, t) => {
1274
1276
  let n = {};
1275
1277
  for (let o in e)
1276
1278
  t[o] !== void 0 ? n[t[o]] = e[o] : n[o] = e[o];
1277
1279
  return n;
1278
- }, nr = (e) => Object.entries(e).map(([t, n]) => [/^\d+$/.test(t) ? Number(t) : t, n]), or = (e) => {
1280
+ }, or = (e) => Object.entries(e).map(([t, n]) => [/^\d+$/.test(t) ? Number(t) : t, n]), rr = (e) => {
1279
1281
  const t = {};
1280
1282
  for (const [n, o] of e) {
1281
1283
  const r = typeof n == "string" && /^\d+$/.test(n) ? Number(n) : n;
1282
1284
  t[r] = o;
1283
1285
  }
1284
1286
  return t;
1285
- }, rr = (e) => Object.fromEntries(Object.entries(e).map(([t, n]) => [n, t])), ir = (e, t, n) => {
1287
+ }, ir = (e) => Object.fromEntries(Object.entries(e).map(([t, n]) => [n, t])), ar = (e, t, n) => {
1286
1288
  const o = t.split(".");
1287
1289
  let r = e;
1288
1290
  for (const i of o) {
@@ -1291,7 +1293,7 @@ const ct = (e, t = {}) => {
1291
1293
  r = r[i];
1292
1294
  }
1293
1295
  return r !== void 0 ? r : n;
1294
- }, ar = (e, t, n) => {
1296
+ }, sr = (e, t, n) => {
1295
1297
  const o = t.split("."), r = o.pop();
1296
1298
  let i = e;
1297
1299
  for (const a of o)
@@ -1310,7 +1312,7 @@ const ct = (e, t = {}) => {
1310
1312
  for (const o in n)
1311
1313
  n[o] === null ? delete n[o] : t && typeof n[o] == "object" && dt(n[o], !0);
1312
1314
  return e;
1313
- }, sr = (/* @__PURE__ */ new Date()).getFullYear(), cr = (/* @__PURE__ */ new Date()).getMonth() + 1, lr = (/* @__PURE__ */ new Date()).getDate(), pr = 60 * 1e3, ur = 60 * 60 * 1e3, L = 24 * 60 * 60 * 1e3, fr = 7 * L, mr = 30 * L, dr = 31 * L, hr = 365 * L, gr = 366 * L, wr = 0, xr = 1, vr = 2, yr = 3, Er = 4, Mr = 5, br = 6, ht = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], gt = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], wt = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], xt = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], Tr = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], Ar = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], Sr = ["日", "一", "二", "三", "四", "五", "六"], Cr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], _r = (e, t, n) => {
1315
+ }, cr = (/* @__PURE__ */ new Date()).getFullYear(), lr = (/* @__PURE__ */ new Date()).getMonth() + 1, pr = (/* @__PURE__ */ new Date()).getDate(), ur = 60 * 1e3, fr = 60 * 60 * 1e3, L = 24 * 60 * 60 * 1e3, mr = 7 * L, dr = 30 * L, hr = 31 * L, gr = 365 * L, wr = 366 * L, xr = 0, vr = 1, yr = 2, Er = 3, Mr = 4, br = 5, Tr = 6, ht = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], gt = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], wt = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], xt = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], Ar = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], Sr = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], Cr = ["日", "一", "二", "三", "四", "五", "六"], _r = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], Or = (e, t, n) => {
1314
1316
  let o = () => {
1315
1317
  if (t && t(e), e-- > 0) {
1316
1318
  setTimeout(o, 1e3);
@@ -1319,17 +1321,17 @@ const ct = (e, t = {}) => {
1319
1321
  n && n();
1320
1322
  };
1321
1323
  o();
1322
- }, Or = (e) => {
1324
+ }, Ir = (e) => {
1323
1325
  if (!e || e < 10)
1324
1326
  return "刚刚";
1325
1327
  e = Math.floor(e / 1e3);
1326
1328
  const t = Math.floor(e / 3600), n = Math.floor(e % 3600 / 60), o = e % 60;
1327
1329
  let r = "";
1328
1330
  return t > 0 && (r += t + "小时"), (n > 0 || t > 0) && (r += n + "分钟"), r += o + "秒前", r;
1329
- }, Ir = (e, t = !1) => {
1331
+ }, Dr = (e, t = !1) => {
1330
1332
  const n = new Date(e);
1331
1333
  return new Date(n.getTime() - n.getTimezoneOffset() * 6e4).toISOString().slice(0, t ? 19 : 16);
1332
- }, Dr = (e, t, n) => e <= 0 ? 1 / 0 : (Date.now() - n) / e * (t - e), oe = {
1334
+ }, Nr = (e, t, n) => e <= 0 ? 1 / 0 : (Date.now() - n) / e * (t - e), oe = {
1333
1335
  d: (e) => {
1334
1336
  let t = e.getDate();
1335
1337
  return (t < 10 ? "0" : "") + t;
@@ -1469,57 +1471,57 @@ const ct = (e, t = {}) => {
1469
1471
  }, yt = (e) => {
1470
1472
  const t = Math.floor(e / 60), n = Math.abs(e % 60);
1471
1473
  return `${t >= 0 ? "+" : "-"}${String(Math.abs(t)).padStart(2, "0")}:${String(n).padStart(2, "0")}`;
1472
- }, Nr = (e) => {
1474
+ }, Lr = (e) => {
1473
1475
  const t = vt(e);
1474
1476
  return yt(t);
1475
- }, Lr = (e) => he("W", e);
1477
+ }, Rr = (e) => he("W", e);
1476
1478
  export {
1477
1479
  st as AbortError,
1478
1480
  ce as BLOCK_TAGS,
1479
1481
  Pn as Base64Encode,
1480
1482
  rn as COMMON_DPI,
1481
- lr as DATE_NOW,
1482
- Mr as DAY_FRIDAY,
1483
- xr as DAY_MONDAY,
1484
- br as DAY_SATURDAY,
1485
- wr as DAY_SUNDAY,
1486
- Er as DAY_THURSDAY,
1487
- vr as DAY_TUESDAY,
1488
- yr as DAY_WEDNESDAY,
1483
+ pr as DATE_NOW,
1484
+ br as DAY_FRIDAY,
1485
+ vr as DAY_MONDAY,
1486
+ Tr as DAY_SATURDAY,
1487
+ xr as DAY_SUNDAY,
1488
+ Mr as DAY_THURSDAY,
1489
+ yr as DAY_TUESDAY,
1490
+ Er as DAY_WEDNESDAY,
1489
1491
  un as GOLDEN_RATIO,
1490
- Go as MIME_BINARY_DEFAULT,
1491
- Qo as MIME_EXTENSION_MAP,
1492
+ Ko as MIME_BINARY_DEFAULT,
1493
+ Jo as MIME_EXTENSION_MAP,
1492
1494
  rt as MIME_FORM,
1493
- Vo as MIME_HTML,
1495
+ Qo as MIME_HTML,
1494
1496
  D as MIME_JSON,
1495
1497
  it as MIME_MULTIPART,
1496
- Ko as MIME_TEXT,
1497
- Tr as MONTH_NAMES_CN,
1498
+ Vo as MIME_TEXT,
1499
+ Ar as MONTH_NAMES_CN,
1498
1500
  wt as MONTH_NAMES_EN,
1499
- Ar as MONTH_NAMES_SHORT_CN,
1501
+ Sr as MONTH_NAMES_SHORT_CN,
1500
1502
  xt as MONTH_NAMES_SHORT_EN,
1501
- cr as MONTH_NOW,
1503
+ lr as MONTH_NOW,
1502
1504
  L as ONE_DAY,
1503
- ur as ONE_HOUR,
1504
- pr as ONE_MINUTE,
1505
- mr as ONE_MONTH30,
1506
- dr as ONE_MONTH31,
1507
- fr as ONE_WEEK,
1508
- hr as ONE_YEAR365,
1509
- gr as ONE_YEAR366,
1510
- Do as PAIR_TAGS,
1505
+ fr as ONE_HOUR,
1506
+ ur as ONE_MINUTE,
1507
+ dr as ONE_MONTH30,
1508
+ hr as ONE_MONTH31,
1509
+ mr as ONE_WEEK,
1510
+ gr as ONE_YEAR365,
1511
+ wr as ONE_YEAR366,
1512
+ No as PAIR_TAGS,
1511
1513
  Ke as REMOVABLE_TAGS,
1512
1514
  Ee as SCREEN_DPI,
1513
- No as SELF_CLOSING_TAGS,
1515
+ Lo as SELF_CLOSING_TAGS,
1514
1516
  re as STAND_DPI,
1515
1517
  V as TRIM_BOTH,
1516
1518
  Q as TRIM_LEFT,
1517
1519
  De as TRIM_RIGHT,
1518
- Cr as WEEK_DAY_NAMES_CN,
1520
+ _r as WEEK_DAY_NAMES_CN,
1519
1521
  ht as WEEK_DAY_NAMES_EN,
1520
- Sr as WEEK_DAY_NAMES_SHORT_CN,
1522
+ Cr as WEEK_DAY_NAMES_SHORT_CN,
1521
1523
  gt as WEEK_DAY_NAMES_SHORT_EN,
1522
- sr as YEAR_NOW,
1524
+ cr as YEAR_NOW,
1523
1525
  ct as abortableFetch,
1524
1526
  nn as arrayChunk,
1525
1527
  Jt as arrayColumn,
@@ -1537,25 +1539,26 @@ export {
1537
1539
  oo as bindInputDebounce,
1538
1540
  to as bindKeyDown,
1539
1541
  eo as bindKeyUp,
1540
- So as bindNodeMove,
1542
+ Co as bindNodeMove,
1541
1543
  ro as bindStorageEvent,
1542
1544
  Ne as blobToBase64,
1543
1545
  J as blobToDataUri,
1544
- Ho as buildHtmlHidden,
1545
- Ao as buildStyleVars,
1546
- Dr as calcRemainingMSecs,
1546
+ Bo as buildHtmlHidden,
1547
+ So as buildStyleVars,
1548
+ Nr as calcRemainingMSecs,
1547
1549
  Tn as camelCase,
1548
1550
  Ge as cancelScrollAnimation,
1549
1551
  Se as capitalize,
1550
1552
  Et as clamp01,
1551
1553
  dt as cleanNull,
1554
+ ao as composeCleanups,
1552
1555
  yt as convertMinutesToTimezoneOffsetStr,
1553
- _r as countDown,
1554
- To as createDomByHtml,
1555
- ko as cssSelectorEscape,
1556
+ Or as countDown,
1557
+ Ao as createDomByHtml,
1558
+ Po as cssSelectorEscape,
1556
1559
  Mn as cutString,
1557
1560
  Yn as debounce,
1558
- Fo as decodeHTMLEntities,
1561
+ Ho as decodeHTMLEntities,
1559
1562
  ne as deepClone,
1560
1563
  F as deleteCookie,
1561
1564
  Bn as deleteCookieAllPaths,
@@ -1564,7 +1567,7 @@ export {
1564
1567
  yn as digitCount,
1565
1568
  Ye as disabled,
1566
1569
  Qn as dispatchEvent,
1567
- Io as downloadFile,
1570
+ Do as downloadFile,
1568
1571
  jt as easeInBack,
1569
1572
  Vt as easeInBounce,
1570
1573
  $t as easeInCirc,
@@ -1598,39 +1601,39 @@ export {
1598
1601
  Mt as easeValue,
1599
1602
  je as enabled,
1600
1603
  Me as enterFullScreen,
1601
- Po as entityToString,
1604
+ Fo as entityToString,
1602
1605
  ee as escapeAttr,
1603
1606
  Ve as escapeHtml,
1604
1607
  Xn as eventDelegate,
1605
1608
  be as exitFullScreen,
1606
1609
  bn as extract,
1607
- Oo as fileToBase64DataUri,
1610
+ Io as fileToBase64DataUri,
1608
1611
  se as findAll,
1609
1612
  b as findOne,
1610
- bo as fixBaseUrl,
1613
+ To as fixBaseUrl,
1611
1614
  Ce as floatVal,
1612
1615
  he as formatDate,
1613
1616
  Ln as formatSize,
1614
1617
  We as getBoundingClientRect,
1615
1618
  Hn as getCookie,
1616
- yo as getDomDimension,
1617
- Jo as getJson,
1618
- fo as getNodeXPath,
1619
+ Eo as getDomDimension,
1620
+ Xo as getJson,
1621
+ mo as getNodeXPath,
1619
1622
  vt as getTimezoneOffsetMinutes,
1620
- Nr as getTimezoneOffsetStr,
1623
+ Lr as getTimezoneOffsetStr,
1621
1624
  Cn as getUTF8StrLen,
1622
- Lr as getWeekNumber,
1625
+ Rr as getWeekNumber,
1623
1626
  ke as guid,
1624
- ao as hide,
1625
- Yo as highlightText,
1626
- Lo as html2Text,
1627
- jo as imgToBase64,
1627
+ so as hide,
1628
+ jo as highlightText,
1629
+ Ro as html2Text,
1630
+ qo as imgToBase64,
1628
1631
  ze as insertStyleSheet,
1629
1632
  ut as isBodyInit,
1630
1633
  Nn as isChinese,
1631
- er as isEmptyObject,
1634
+ tr as isEmptyObject,
1632
1635
  pn as isFirefox,
1633
- wo as isFocusable,
1636
+ xo as isFocusable,
1634
1637
  Wn as isFunction,
1635
1638
  Te as isInFullScreen,
1636
1639
  Gn as isJSON,
@@ -1642,39 +1645,39 @@ export {
1642
1645
  jn as isPromise,
1643
1646
  Pe as isUrl,
1644
1647
  An as kebabCase,
1645
- ho as keepRectInContainer,
1648
+ go as keepRectInContainer,
1646
1649
  ve as lerp,
1647
1650
  wn as limit,
1648
1651
  xe as linear,
1649
- xo as loadCss,
1650
- vo as loadScript,
1651
- po as lockElementInteraction,
1652
- $o as markdown2Html,
1653
- Wo as md5,
1652
+ vo as loadCss,
1653
+ yo as loadScript,
1654
+ uo as lockElementInteraction,
1655
+ Uo as markdown2Html,
1656
+ Go as md5,
1654
1657
  dn as mmToPt,
1655
1658
  fn as mmToPx,
1656
1659
  mn as mmToTwip,
1657
- Or as msToHMS,
1660
+ Ir as msToHMS,
1658
1661
  qe as mutationEffective,
1659
- uo as nodeIndex,
1662
+ fo as nodeIndex,
1660
1663
  de as objToQuery,
1661
- nr as objectEntries,
1662
- or as objectFromEntries,
1663
- ir as objectGet,
1664
- tr as objectKeyReplace,
1664
+ or as objectEntries,
1665
+ rr as objectFromEntries,
1666
+ ar as objectGet,
1667
+ nr as objectKeyReplace,
1665
1668
  mt as objectMerge,
1666
- ar as objectSet,
1667
- rr as objectSwitchKV,
1669
+ sr as objectSet,
1670
+ ir as objectSwitchKV,
1668
1671
  Ue as offEvent,
1669
1672
  Jn as onDocReady,
1670
- mo as onDomTreeChange,
1673
+ ho as onDomTreeChange,
1671
1674
  $e as onEvent,
1672
1675
  Vn as onEvents,
1673
- lo as onHover,
1676
+ po as onHover,
1674
1677
  U as parseUnit,
1675
- Zo as postFiles,
1676
- Xo as postJson,
1677
- Mo as precisionToStep,
1678
+ er as postFiles,
1679
+ Zo as postJson,
1680
+ bo as precisionToStep,
1678
1681
  Kn as printStack,
1679
1682
  hn as ptToMm,
1680
1683
  gn as pxToMm,
@@ -1683,35 +1686,35 @@ export {
1683
1686
  xn as randomInt,
1684
1687
  Ie as randomString,
1685
1688
  _n as randomWords,
1686
- go as rectAssoc,
1687
- Eo as rectInLayout,
1689
+ wo as rectAssoc,
1690
+ Mo as rectInLayout,
1688
1691
  Y as regQuote,
1689
- co as remove,
1692
+ lo as remove,
1690
1693
  G as request,
1691
1694
  Ae as round,
1692
- _o as sanitizeFileName,
1693
- Co as scrollToAnimated,
1695
+ Oo as sanitizeFileName,
1696
+ _o as scrollToAnimated,
1694
1697
  Fn as setCookie,
1695
- so as show,
1696
- zo as srcToBase64,
1698
+ co as show,
1699
+ Wo as srcToBase64,
1697
1700
  Dn as strChunk,
1698
1701
  On as strToPascalCase,
1699
- Uo as stringToEntity,
1702
+ Yo as stringToEntity,
1700
1703
  En as stripSlashes,
1701
1704
  Xe as svgGetDimension,
1702
1705
  Je as svgToImg,
1703
- qo as svgToImgData,
1706
+ zo as svgToImgData,
1704
1707
  Qe as svgToSrc,
1705
- Ro as text2Html,
1708
+ ko as text2Html,
1706
1709
  $n as throttle,
1707
1710
  Un as throttleEffect,
1708
- Ir as timestampToDateTimeLocal,
1711
+ Dr as timestampToDateTimeLocal,
1709
1712
  ae as toggleDisabled,
1710
1713
  cn as toggleFullScreen,
1711
1714
  io as triggerDomEvent,
1712
1715
  In as trim,
1713
1716
  Sn as truncate,
1714
- Bo as unescapeHtml,
1717
+ $o as unescapeHtml,
1715
1718
  K as unitConvert,
1716
1719
  Z as urlB64DataCache,
1717
1720
  _e as utf8Decode,