delta-comic-core 0.3.3 → 0.4.0

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/bundle.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, customRef, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, hasInjectionContext, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeUnmount, onBeforeUpdate, onDeactivated, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, renderList, renderSlot, resolveDynamicComponent, shallowReactive, shallowReadonly, shallowRef, toDisplayString, toRef, toValue, unref, useCssVars, useModel, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives, withModifiers } from "vue";
2
2
  import { onBeforeRouteLeave, useRoute, useRouter } from "vue-router";
3
3
  import { defineStore } from "pinia";
4
- import { NButton, NEmpty, NIcon, NIconWrapper, NProgress, NResult, NVirtualList } from "naive-ui";
5
4
  import axios, { getAdapter, isAxiosError, isCancel } from "axios";
6
5
  import { delay, isError, isString, isUndefined } from "es-toolkit";
6
+ import { NButton, NEmpty, NIcon, NIconWrapper, NProgress, NResult, NVirtualList } from "naive-ui";
7
7
  import { AnimatePresence, motion } from "motion-v";
8
8
  import { Icon, Loading } from "vant";
9
- var __create = Object.create, __defProp = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __getOwnPropNames = Object.getOwnPropertyNames, __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty, __commonJSMin = (e, n) => () => (n || e((n = { exports: {} }).exports, n), n.exports), __export = (e) => {
10
- let n = {};
11
- for (var r in e) __defProp(n, r, {
12
- get: e[r],
9
+ var __create = Object.create, __defProp = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __getOwnPropNames = Object.getOwnPropertyNames, __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty, __commonJSMin = (e, n) => () => (n || e((n = { exports: {} }).exports, n), n.exports), __export = (e, n) => {
10
+ let r = {};
11
+ for (var i in e) __defProp(r, i, {
12
+ get: e[i],
13
13
  enumerable: !0
14
14
  });
15
- return n;
15
+ return n && __defProp(r, Symbol.toStringTag, { value: "Module" }), r;
16
16
  }, __copyProps = (e, n, r, i) => {
17
17
  if (n && typeof n == "object" || typeof n == "function") for (var a = __getOwnPropNames(n), o = 0, s = a.length, c; o < s; o++) c = a[o], !__hasOwnProp.call(e, c) && c !== r && __defProp(e, c, {
18
18
  get: ((e) => n[e]).bind(null, c),
@@ -1081,13 +1081,13 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1081
1081
  }), W();
1082
1082
  };
1083
1083
  isHidden(i) ? nextTick().then(r) : r();
1084
- }, J = () => K(s.active), Tl, El = (n) => {
1085
- !e.touchable || n.touches.length > 1 || (l.start(n), c = !1, Tl = Date.now(), H(), k());
1086
- }, Dl = (r) => {
1084
+ }, J = () => K(s.active), Dl, Ol = (n) => {
1085
+ !e.touchable || n.touches.length > 1 || (l.start(n), c = !1, Dl = Date.now(), H(), k());
1086
+ }, kl = (r) => {
1087
1087
  e.touchable && s.swiping && (l.move(r), S.value && (!e.loop && (s.active === 0 && h.value > 0 || s.active === p.value - 1 && h.value < 0) || (preventDefault(r, e.stopPropagation), O({ offset: h.value }), c ||= (n("dragStart", { index: b.value }), !0))));
1088
- }, Ol = () => {
1088
+ }, Al = () => {
1089
1089
  if (!e.touchable || !s.swiping) return;
1090
- let r = Date.now() - Tl, i = h.value / r;
1090
+ let r = Date.now() - Dl, i = h.value / r;
1091
1091
  if ((Math.abs(i) > .25 || Math.abs(h.value) > m.value / 2) && S.value) {
1092
1092
  let n = e.vertical ? l.offsetY.value : l.offsetX.value, r = 0;
1093
1093
  r = e.loop ? n > 0 ? h.value > 0 ? -1 : 1 : 0 : -Math[h.value > 0 ? "ceil" : "floor"](h.value / m.value), O({
@@ -1096,7 +1096,7 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1096
1096
  });
1097
1097
  } else h.value && O({ pace: 0 });
1098
1098
  c = !1, s.swiping = !1, n("dragEnd", { index: b.value }), W();
1099
- }, kl = (n, r = {}) => {
1099
+ }, jl = (n, r = {}) => {
1100
1100
  k(), l.reset(), doubleRaf(() => {
1101
1101
  let i;
1102
1102
  i = e.loop && n === p.value ? s.active === 0 ? 0 : n : n % p.value, r.immediate ? doubleRaf(() => {
@@ -1106,25 +1106,25 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1106
1106
  emitChange: !0
1107
1107
  });
1108
1108
  });
1109
- }, Al = (n, r) => {
1109
+ }, Ml = (n, r) => {
1110
1110
  let i = r === b.value;
1111
1111
  return createVNode("i", {
1112
1112
  style: i ? { backgroundColor: e.indicatorColor } : void 0,
1113
1113
  class: bem$7("indicator", { active: i })
1114
1114
  }, null);
1115
- }, jl = () => {
1115
+ }, Nl = () => {
1116
1116
  if (r.indicator) return r.indicator({
1117
1117
  active: b.value,
1118
1118
  total: p.value
1119
1119
  });
1120
- if (e.showIndicators && p.value > 1) return createVNode("div", { class: bem$7("indicators", { vertical: e.vertical }) }, [Array(p.value).fill("").map(Al)]);
1120
+ if (e.showIndicators && p.value > 1) return createVNode("div", { class: bem$7("indicators", { vertical: e.vertical }) }, [Array(p.value).fill("").map(Ml)]);
1121
1121
  };
1122
1122
  return useExpose({
1123
1123
  prev: A,
1124
1124
  next: z,
1125
1125
  state: s,
1126
1126
  resize: J,
1127
- swipeTo: kl
1127
+ swipeTo: jl
1128
1128
  }), f({
1129
1129
  size: m,
1130
1130
  props: e,
@@ -1137,17 +1137,17 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1137
1137
  () => e.height
1138
1138
  ], J), watch(usePageVisibility(), (e) => {
1139
1139
  e === "visible" ? W() : H();
1140
- }), onMounted(K), onActivated(() => K(s.active)), onPopupReopen(() => K(s.active)), onDeactivated(H), onBeforeUnmount(H), useEventListener("touchmove", Dl, { target: o }), () => createVNode("div", {
1140
+ }), onMounted(K), onActivated(() => K(s.active)), onPopupReopen(() => K(s.active)), onDeactivated(H), onBeforeUnmount(H), useEventListener("touchmove", kl, { target: o }), () => createVNode("div", {
1141
1141
  ref: i,
1142
1142
  class: bem$7()
1143
1143
  }, [createVNode("div", {
1144
1144
  ref: o,
1145
1145
  style: C.value,
1146
1146
  class: bem$7("track", { vertical: e.vertical }),
1147
- onTouchstartPassive: El,
1148
- onTouchend: Ol,
1149
- onTouchcancel: Ol
1150
- }, [r.default?.call(r)]), jl()]);
1147
+ onTouchstartPassive: Ol,
1148
+ onTouchend: Al,
1149
+ onTouchcancel: Al
1150
+ }, [r.default?.call(r)]), Nl()]);
1151
1151
  }
1152
1152
  })), [name$7, bem$6] = createNamespace("tabs"), stdin_default$5 = defineComponent({
1153
1153
  name: name$7,
@@ -1247,14 +1247,14 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1247
1247
  }
1248
1248
  C.lineStyle = c;
1249
1249
  });
1250
- }, wl = (e) => {
1250
+ }, El = (e) => {
1251
1251
  let n = e < C.currentIndex ? -1 : 1;
1252
1252
  for (; e >= 0 && e < b.length;) {
1253
1253
  if (!b[e].disabled) return e;
1254
1254
  e += n;
1255
1255
  }
1256
1256
  }, V = (r, i) => {
1257
- let a = wl(r);
1257
+ let a = El(r);
1258
1258
  if (!isDef$1(a)) return;
1259
1259
  let o = b[a], c = O(o, a), l = C.currentIndex !== null;
1260
1260
  C.currentIndex !== a && (C.currentIndex = a, i || z(), B()), c !== e.active && (n("update:active", c), l && n("change", c, o.title)), s && !e.scrollspy && setRootScrollTop(Math.ceil(getElementTop(u.value) - A.value));
@@ -1286,24 +1286,24 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1286
1286
  });
1287
1287
  }, J = (e) => {
1288
1288
  s = e.isFixed, n("scroll", e);
1289
- }, Tl = (e) => {
1289
+ }, Dl = (e) => {
1290
1290
  nextTick(() => {
1291
1291
  H(e), W(!0);
1292
1292
  });
1293
- }, El = () => {
1293
+ }, Ol = () => {
1294
1294
  for (let e = 0; e < b.length; e++) {
1295
1295
  let { top: n } = useRect(b[e].$el);
1296
1296
  if (n > M.value) return e === 0 ? 0 : e - 1;
1297
1297
  }
1298
1298
  return b.length - 1;
1299
- }, Dl = () => {
1300
- e.scrollspy && !o && V(El());
1301
- }, Ol = () => {
1299
+ }, kl = () => {
1300
+ e.scrollspy && !o && V(Ol());
1301
+ }, Al = () => {
1302
1302
  if (e.type === "line" && b.length) return createVNode("div", {
1303
1303
  class: bem$5("line"),
1304
1304
  style: C.lineStyle
1305
1305
  }, null);
1306
- }, kl = () => {
1306
+ }, jl = () => {
1307
1307
  let { type: n, border: i, sticky: a } = e, o = [createVNode("div", {
1308
1308
  ref: a ? void 0 : p,
1309
1309
  class: [bem$5("wrap"), { [BORDER_TOP_BOTTOM]: n === "line" && i }]
@@ -1319,11 +1319,11 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1319
1319
  }, [
1320
1320
  r["nav-left"]?.call(r),
1321
1321
  b.map((e) => e.renderTitle(K)),
1322
- Ol(),
1322
+ Al(),
1323
1323
  r["nav-right"]?.call(r)
1324
1324
  ])]), r["nav-bottom"]?.call(r)];
1325
1325
  return a ? createVNode("div", { ref: p }, [o]) : o;
1326
- }, Al = () => {
1326
+ }, Ml = () => {
1327
1327
  B(), nextTick(() => {
1328
1328
  var e;
1329
1329
  z(!0), (e = m.value?.swipeRef.value) == null || e.resize();
@@ -1334,20 +1334,20 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1334
1334
  e.duration,
1335
1335
  e.lineWidth,
1336
1336
  e.lineHeight
1337
- ], B), watch(windowWidth, Al), watch(() => e.active, (e) => {
1337
+ ], B), watch(windowWidth, Ml), watch(() => e.active, (e) => {
1338
1338
  e !== k.value && H(e);
1339
1339
  }), watch(() => b.length, () => {
1340
1340
  C.inited && (H(e.active), B(), nextTick(() => {
1341
1341
  z(!0);
1342
1342
  }));
1343
1343
  }), useExpose({
1344
- resize: Al,
1345
- scrollTo: Tl
1344
+ resize: Ml,
1345
+ scrollTo: Dl
1346
1346
  }), onActivated(B), onPopupReopen(B), onMountedOrActivated(() => {
1347
1347
  H(e.active, !0), nextTick(() => {
1348
1348
  C.inited = !0, p.value && (i = useRect(p.value).height), z(!0);
1349
1349
  });
1350
- }), useVisibilityChange(u, B), useEventListener("scroll", Dl, {
1350
+ }), useVisibilityChange(u, B), useEventListener("scroll", kl, {
1351
1351
  target: g,
1352
1352
  passive: !0
1353
1353
  }), S({
@@ -1366,7 +1366,7 @@ var [name$9, bem$8] = createNamespace("sticky"), Sticky = withInstall(defineComp
1366
1366
  container: u.value,
1367
1367
  offsetTop: A.value,
1368
1368
  onScroll: J
1369
- }, { default: () => [kl()] }) : kl() : null, createVNode(stdin_default$5, {
1369
+ }, { default: () => [jl()] }) : jl() : null, createVNode(stdin_default$5, {
1370
1370
  ref: m,
1371
1371
  count: b.length,
1372
1372
  inited: C.inited,
@@ -2198,7 +2198,7 @@ var loading_default = /* @__PURE__ */ ((e, n) => {
2198
2198
  }
2199
2199
  }), [["__scopeId", "data-v-088ceaed"]]);
2200
2200
  const useGlobalVar = (e, n) => (window.$api.__core_lib__ ??= {})[n] ??= e;
2201
- var layout_exports = /* @__PURE__ */ __export({ useZIndex: () => useZIndex }), allLayers = useGlobalVar(shallowReactive([]), "utils/layers");
2201
+ var layout_exports = /* @__PURE__ */ __export({ useZIndex: () => useZIndex }, 1), allLayers = useGlobalVar(shallowReactive([]), "utils/layers");
2202
2202
  const useZIndex = (e) => {
2203
2203
  let n = Symbol("layer"), r = watch(toRef(e), (e) => {
2204
2204
  e ? allLayers.push(n) : remove(allLayers, (e) => e === n);
@@ -2311,11 +2311,11 @@ function useThrottleFn(e, n = 200, r = !1, i = !0, a = !1) {
2311
2311
  return createFilterWrapper(throttleFilter(n, r, i, a), e);
2312
2312
  }
2313
2313
  function watchWithFilter(e, n, r = {}) {
2314
- let { eventFilter: i = bypassFilter,...a } = r;
2314
+ let { eventFilter: i = bypassFilter, ...a } = r;
2315
2315
  return watch(e, createFilterWrapper(i, n), a);
2316
2316
  }
2317
2317
  function watchPausable(e, n, r = {}) {
2318
- let { eventFilter: i, initialState: a = "active",...o } = r, { eventFilter: s, pause: c, resume: l, isActive: u } = pausableFilter(i, { initialState: a });
2318
+ let { eventFilter: i, initialState: a = "active", ...o } = r, { eventFilter: s, pause: c, resume: l, isActive: u } = pausableFilter(i, { initialState: a });
2319
2319
  return {
2320
2320
  stop: watchWithFilter(e, n, {
2321
2321
  ...o,
@@ -2450,24 +2450,22 @@ function unrefElement(e) {
2450
2450
  return n?.$el ?? n;
2451
2451
  }
2452
2452
  function useEventListener$1(...e) {
2453
- let n = [], r = () => {
2454
- n.forEach((e) => e()), n.length = 0;
2455
- }, i = (e, n, r, i) => (e.addEventListener(n, r, i), () => e.removeEventListener(n, r, i)), o = computed(() => {
2453
+ let n = (e, n, r, i) => (e.addEventListener(n, r, i), () => e.removeEventListener(n, r, i)), r = computed(() => {
2456
2454
  let n = toArray(toValue(e[0])).filter((e) => e != null);
2457
2455
  return n.every((e) => typeof e != "string") ? n : void 0;
2458
- }), s = watchImmediate(() => [
2459
- o.value?.map((e) => unrefElement(e)) ?? [defaultWindow].filter((e) => e != null),
2460
- toArray(toValue(o.value ? e[1] : e[0])),
2461
- toArray(unref(o.value ? e[2] : e[1])),
2462
- toValue(o.value ? e[3] : e[2])
2463
- ], ([e, a, o, s]) => {
2464
- if (r(), !e?.length || !a?.length || !o?.length) return;
2465
- let c = isObject(s) ? { ...s } : s;
2466
- n.push(...e.flatMap((e) => a.flatMap((n) => o.map((r) => i(e, n, r, c)))));
2456
+ });
2457
+ return watchImmediate(() => [
2458
+ r.value?.map((e) => unrefElement(e)) ?? [defaultWindow].filter((e) => e != null),
2459
+ toArray(toValue(r.value ? e[1] : e[0])),
2460
+ toArray(unref(r.value ? e[2] : e[1])),
2461
+ toValue(r.value ? e[3] : e[2])
2462
+ ], ([e, r, i, a], o, s) => {
2463
+ if (!e?.length || !r?.length || !i?.length) return;
2464
+ let c = isObject(a) ? { ...a } : a, l = e.flatMap((e) => r.flatMap((r) => i.map((i) => n(e, r, i, c))));
2465
+ s(() => {
2466
+ l.forEach((e) => e());
2467
+ });
2467
2468
  }, { flush: "post" });
2468
- return tryOnScopeDispose(r), () => {
2469
- s(), r();
2470
- };
2471
2469
  }
2472
2470
  function useMounted() {
2473
2471
  let e = shallowRef(!1), n = getCurrentInstance();
@@ -2481,7 +2479,7 @@ function useSupported(e) {
2481
2479
  return computed(() => (n.value, !!e()));
2482
2480
  }
2483
2481
  function useMutationObserver(e, n, r = {}) {
2484
- let { window: i = defaultWindow,...o } = r, s, c = /* @__PURE__ */ useSupported(() => i && "MutationObserver" in i), l = () => {
2482
+ let { window: i = defaultWindow, ...o } = r, s, c = /* @__PURE__ */ useSupported(() => i && "MutationObserver" in i), l = () => {
2485
2483
  s &&= (s.disconnect(), void 0);
2486
2484
  }, u = watch(computed(() => {
2487
2485
  let n = toArray(toValue(e)).map(unrefElement).filter(notNullish);
@@ -2701,7 +2699,7 @@ function useStorage(e, n, r, i = {}) {
2701
2699
  return g;
2702
2700
  }
2703
2701
  function useResizeObserver(e, n, r = {}) {
2704
- let { window: i = defaultWindow,...o } = r, s, c = /* @__PURE__ */ useSupported(() => i && "ResizeObserver" in i), l = () => {
2702
+ let { window: i = defaultWindow, ...o } = r, s, c = /* @__PURE__ */ useSupported(() => i && "ResizeObserver" in i), l = () => {
2705
2703
  s &&= (s.disconnect(), void 0);
2706
2704
  }, u = watch(computed(() => {
2707
2705
  let n = toValue(e);
@@ -2777,7 +2775,7 @@ function useScroll(e, n = {}) {
2777
2775
  }, D = useDebounceFn(E, r + i), O = (e) => {
2778
2776
  var n;
2779
2777
  if (!f) return;
2780
- let r = (e == null || (n = e.document) == null ? void 0 : n.documentElement) || e?.documentElement || unrefElement(e), { display: i, flexDirection: a, direction: o } = getComputedStyle(r), s = o === "rtl" ? -1 : 1, l = r.scrollLeft;
2778
+ let r = (e == null || (n = e.document) == null ? void 0 : n.documentElement) || e?.documentElement || unrefElement(e), { display: i, flexDirection: a, direction: o } = f.getComputedStyle(r), s = o === "rtl" ? -1 : 1, l = r.scrollLeft;
2781
2779
  w.left = l < h.value, w.right = l > h.value;
2782
2780
  let u = Math.abs(l * s) <= (c.left || 0), d = Math.abs(l * s) + r.clientWidth >= r.scrollWidth - (c.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
2783
2781
  i === "flex" && a === "row-reverse" ? (C.left = d, C.right = u) : (C.left = u, C.right = d), h.value = l;
@@ -2915,7 +2913,7 @@ var floatPopup_default = /* @__PURE__ */ defineComponent({
2915
2913
  })]);
2916
2914
  };
2917
2915
  }
2918
- }), image_exports = /* @__PURE__ */ __export({ showImagePreview: () => showImagePreview });
2916
+ }), image_exports = /* @__PURE__ */ __export({ showImagePreview: () => showImagePreview }, 1);
2919
2917
  const showImagePreview = (e, n = {}) => {
2920
2918
  let r = shallowRef(!0), [, , i] = useZIndex(r), o = window.$api.showImagePreview({
2921
2919
  images: e,
@@ -2949,161 +2947,6 @@ var _useTemp = useGlobalVar(defineStore("core:temp", (e) => {
2949
2947
  };
2950
2948
  }), "store/temp");
2951
2949
  const useTemp = () => _useTemp(window.$api.piniaInstance);
2952
- var image_default = /* @__PURE__ */ defineComponent({
2953
- __name: "image",
2954
- props: {
2955
- src: {},
2956
- alt: {},
2957
- previewable: { type: Boolean },
2958
- retryMax: { default: 6 },
2959
- round: { type: Boolean },
2960
- fit: {},
2961
- class: {},
2962
- hideLoading: { type: Boolean },
2963
- hideError: { type: Boolean },
2964
- inline: { type: Boolean },
2965
- style: { type: [
2966
- Boolean,
2967
- null,
2968
- String,
2969
- Object,
2970
- Array
2971
- ] },
2972
- imgProp: {},
2973
- useList: {},
2974
- fetchpriority: { default: "auto" },
2975
- fallback: {}
2976
- },
2977
- emits: [
2978
- "load",
2979
- "click",
2980
- "error"
2981
- ],
2982
- setup(n, { expose: r, emit: i }) {
2983
- let u = n, f = computedAsync(async () => {
2984
- try {
2985
- return u.src ? isString$1(u.src) ? u.src : await u.src.getUrl() : "";
2986
- } catch (e) {
2987
- console.error(e);
2988
- }
2989
- return "";
2990
- }, ""), p = i, m = 0, h = async () => {
2991
- if (m++, m > u.retryMax) return v.error.add(f.value), p("error");
2992
- y.value = !1, await nextTick(), y.value = !0;
2993
- }, g = useTemp().$apply("imageState", () => ({
2994
- loaded: /* @__PURE__ */ new Set(),
2995
- error: /* @__PURE__ */ new Set()
2996
- })), v = u.useList ?? g, y = shallowRef(!0), b = () => {
2997
- m = 0, h();
2998
- };
2999
- watch(f, b);
3000
- let S = computed(() => v.loaded.has(f.value)), C = computedAsync(async () => {
3001
- try {
3002
- return u.fallback ? isString$1(u.fallback) ? u.fallback : await u.fallback.getUrl() : "";
3003
- } catch (e) {
3004
- console.error(e);
3005
- }
3006
- return "";
3007
- }, ""), w = (e) => {
3008
- p("click"), u.previewable && (e.stopPropagation(), showImagePreview([f.value], { closeable: !0 }));
3009
- }, k = (...e) => {
3010
- p("load", ...e), v.loaded.add(f.value);
3011
- }, j = useTemplateRef("img");
3012
- r({
3013
- isLoaded: S,
3014
- imageEl: computed(() => j.value?.imageRef),
3015
- imageIns: j
3016
- });
3017
- let M = window.$api.NImage;
3018
- return (r, i) => {
3019
- let a = Icon$1;
3020
- return openBlock(), createElementBlock(Fragment, null, [
3021
- y.value ? withDirectives((openBlock(), createBlock(unref(M), mergeProps({
3022
- key: 0,
3023
- onError: h
3024
- }, u, {
3025
- "object-fit": n.fit,
3026
- "preview-disabled": "",
3027
- alt: n.alt,
3028
- ref_key: "img",
3029
- ref: j,
3030
- "img-props": {
3031
- ...n.imgProp ?? {},
3032
- class: "w-full",
3033
- fetchpriority: u.fetchpriority
3034
- },
3035
- class: [
3036
- { "!rounded-full": !!n.round },
3037
- n.inline ? "inline-flex" : "flex",
3038
- u.class
3039
- ],
3040
- style: n.style,
3041
- onLoad: k,
3042
- onClick: w,
3043
- src: unref(f)
3044
- }), null, 16, [
3045
- "object-fit",
3046
- "alt",
3047
- "img-props",
3048
- "class",
3049
- "style",
3050
- "src"
3051
- ])), [[vShow, !unref(v).error.has(unref(f)) && unref(v).loaded.has(unref(f))]]) : createCommentVNode("", !0),
3052
- !unref(v).loaded.has(unref(f)) && !unref(v).error.has(unref(f)) && !n.hideLoading ? (openBlock(), createElementBlock("div", {
3053
- key: 1,
3054
- class: normalizeClass(["justify-center items-center", [
3055
- { "!rounded-full": !!n.round },
3056
- n.inline ? "inline-flex" : "flex",
3057
- u.class
3058
- ]]),
3059
- style: normalizeStyle(n.style),
3060
- onClick: i[0] ||= (e) => p("click")
3061
- }, [r.$slots.loading ? renderSlot(r.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(loading_default, { key: 1 }))], 6)) : createCommentVNode("", !0),
3062
- unref(v).error.has(unref(f)) && !n.hideError ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [n.fallback ? (openBlock(), createBlock(unref(M), mergeProps({
3063
- key: 0,
3064
- onError: h
3065
- }, u, {
3066
- "object-fit": n.fit,
3067
- "preview-disabled": "",
3068
- alt: n.alt,
3069
- "img-props": {
3070
- ...n.imgProp ?? {},
3071
- class: "w-full",
3072
- fetchpriority: u.fetchpriority
3073
- },
3074
- class: [
3075
- { "!rounded-full": !!n.round },
3076
- n.inline ? "inline-flex" : "flex",
3077
- u.class
3078
- ],
3079
- style: n.style,
3080
- src: unref(C)
3081
- }), null, 16, [
3082
- "object-fit",
3083
- "alt",
3084
- "img-props",
3085
- "class",
3086
- "style",
3087
- "src"
3088
- ])) : (openBlock(), createElementBlock("div", {
3089
- key: 1,
3090
- class: normalizeClass(["justify-center items-center flex-col", [
3091
- { "!rounded-full": !!n.round },
3092
- n.inline ? "inline-flex" : "flex",
3093
- u.class
3094
- ]]),
3095
- onClick: i[1] ||= withModifiers(() => {
3096
- unref(v).error.delete(unref(f)), b();
3097
- }, ["stop"])
3098
- }, [r.$slots.loading ? renderSlot(r.$slots, "loading", { key: 0 }) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(a, {
3099
- name: "warning-o",
3100
- size: "2.5rem",
3101
- color: "var(--van-text-color-2)"
3102
- }), i[2] ||= createElementVNode("div", { class: "text-sm text-(--van-text-color-2)" }, "点击重试", -1)], 64))], 2))], 64)) : createCommentVNode("", !0)
3103
- ], 64);
3104
- };
3105
- }
3106
- });
3107
2950
  function mitt_default(e) {
3108
2951
  return {
3109
2952
  all: e ||= /* @__PURE__ */ new Map(),
@@ -3128,7 +2971,7 @@ function mitt_default(e) {
3128
2971
  var eventBus_exports = /* @__PURE__ */ __export({
3129
2972
  SharedFunction: () => SharedFunction,
3130
2973
  eventBus: () => eventBus
3131
- });
2974
+ }, 1);
3132
2975
  const eventBus = useGlobalVar(mitt_default(), "utils/eventBus");
3133
2976
  var SharedFunction = class {
3134
2977
  static sharedFunctions = useGlobalVar(/* @__PURE__ */ new Map(), "utils/SharedFunction/sharedFunctions");
@@ -3179,7 +3022,7 @@ var SharedFunction = class {
3179
3022
  requestErrorResult: () => requestErrorResult,
3180
3023
  requestType: () => requestType,
3181
3024
  utilInterceptors: () => utilInterceptors
3182
- }), SmartAbortController = class {
3025
+ }, 1), SmartAbortController = class {
3183
3026
  _controller = new AbortController();
3184
3027
  mitt = mitt_default();
3185
3028
  get signal() {
@@ -3280,7 +3123,7 @@ var data_exports = /* @__PURE__ */ __export({
3280
3123
  Stream: () => Stream,
3281
3124
  Struct: () => Struct,
3282
3125
  callbackToPromise: () => callbackToPromise
3283
- }), Struct = class {
3126
+ }, 1), Struct = class {
3284
3127
  toJSON() {
3285
3128
  return JSON.parse(JSON.stringify(this.$$raw));
3286
3129
  }
@@ -3533,1211 +3376,154 @@ const callbackToPromise = (e) => {
3533
3376
  let { resolve: n, promise: r } = Promise.withResolvers();
3534
3377
  return e(n), r;
3535
3378
  };
3536
- var _hoisted_1$5 = {
3537
- xmlns: "http://www.w3.org/2000/svg",
3538
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
3539
- viewBox: "0 0 1024 1024"
3540
- }, ReloadOutlined_default = defineComponent({
3541
- name: "ReloadOutlined",
3542
- render: function(e, n) {
3543
- return openBlock(), createElementBlock("svg", _hoisted_1$5, n[0] ||= [createElementVNode("path", {
3544
- d: "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92C290 92 102.3 279.5 102 511.5C101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1c1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9c-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27c-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4c31.6-31.6 68.4-56.4 109.3-73.8c42.3-17.9 87.4-27 133.8-27c46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z",
3545
- fill: "currentColor"
3546
- }, null, -1)]);
3379
+ var resource_exports = /* @__PURE__ */ __export({ Resource: () => Resource }, 1), Resource = class e extends Struct {
3380
+ static processInstances = useGlobalVar(SourcedKeyMap.create(), "uni/resource/processInstances");
3381
+ static fork = useGlobalVar(SourcedKeyMap.create(), "uni/resource/fork");
3382
+ static precedenceFork = useGlobalVar(SourcedKeyMap.create(), "uni/resource/precedenceFork");
3383
+ static is(e) {
3384
+ return e instanceof this;
3547
3385
  }
3548
- }), _hoisted_1$4 = {
3549
- xmlns: "http://www.w3.org/2000/svg",
3550
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
3551
- viewBox: "0 0 24 24"
3552
- }, DoneRound_default = defineComponent({
3553
- name: "DoneRound",
3554
- render: function(e, n) {
3555
- return openBlock(), createElementBlock("svg", _hoisted_1$4, n[0] ||= [createElementVNode("path", {
3556
- d: "M9 16.2l-3.5-3.5a.984.984 0 0 0-1.4 0a.984.984 0 0 0 0 1.4l4.19 4.19c.39.39 1.02.39 1.41 0L20.3 7.7a.984.984 0 0 0 0-1.4a.984.984 0 0 0-1.4 0L9 16.2z",
3557
- fill: "currentColor"
3558
- }, null, -1)]);
3386
+ static create(e) {
3387
+ return new this(e);
3559
3388
  }
3560
- }), _hoisted_1$3 = {
3561
- xmlns: "http://www.w3.org/2000/svg",
3562
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
3563
- viewBox: "0 0 24 24"
3564
- }, FileDownloadRound_default = defineComponent({
3565
- name: "FileDownloadRound",
3566
- render: function(e, n) {
3567
- return openBlock(), createElementBlock("svg", _hoisted_1$3, n[0] ||= [createElementVNode("path", {
3568
- d: "M16.59 9H15V4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v5H7.41c-.89 0-1.34 1.08-.71 1.71l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.63-.63.19-1.71-.7-1.71zM5 19c0 .55.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1z",
3569
- fill: "currentColor"
3570
- }, null, -1)]);
3389
+ constructor(e) {
3390
+ super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.pathname = e.pathname, this.type = e.type, this.processSteps = (e.processSteps ?? []).map((e) => isString$1(e) ? {
3391
+ referenceName: e,
3392
+ ignoreExit: !1
3393
+ } : e);
3571
3394
  }
3572
- }), _hoisted_1$2 = {
3573
- xmlns: "http://www.w3.org/2000/svg",
3574
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
3575
- viewBox: "0 0 24 24"
3576
- }, WifiTetheringErrorRound_default = defineComponent({
3577
- name: "WifiTetheringErrorRound",
3578
- render: function(e, n) {
3579
- return openBlock(), createElementBlock("svg", _hoisted_1$2, n[0] ||= [createElementVNode("path", {
3580
- d: "M10.66 7.14c-2.24.48-4.04 2.3-4.52 4.54c-.37 1.75.02 3.38.89 4.66c.34.51 1.08.55 1.51.11c.35-.35.37-.88.1-1.28c-.5-.76-.75-1.71-.61-2.73c.23-1.74 1.67-3.17 3.41-3.4A4.003 4.003 0 0 1 16 13c0 .8-.24 1.54-.64 2.16c-.27.41-.25.95.1 1.29c.43.43 1.17.4 1.51-.11C17.62 15.4 18 14.25 18 13c0-3.75-3.45-6.7-7.34-5.86zm-.41-3.99c-4.05.69-7.19 3.69-8.03 7.72c-.66 3.17.2 6.16 1.97 8.38c.37.46 1.07.49 1.49.07c.36-.36.39-.93.07-1.32a8.004 8.004 0 0 1-1.66-6.28c.55-3.47 3.42-6.24 6.92-6.65c2.76-.33 5.27.74 6.93 2.59c.2.21.47.34.76.34c.85 0 1.34-1.01.77-1.65c-2.19-2.45-5.56-3.82-9.22-3.2zM12 11c-1.1 0-2 .9-2 2c0 .55.23 1.05.59 1.41c.36.36.86.59 1.41.59s1.05-.23 1.41-.59c.36-.36.59-.86.59-1.41c0-1.1-.9-2-2-2zm9-1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4c0-.55.45-1 1-1zm0 8c.55 0 1 .45 1 1s-.45 1-1 1s-1-.45-1-1s.45-1 1-1z",
3581
- fill: "currentColor"
3582
- }, null, -1)]);
3395
+ type;
3396
+ pathname;
3397
+ processSteps;
3398
+ $$meta;
3399
+ $$plugin;
3400
+ async getUrl() {
3401
+ let n = this.pathname;
3402
+ for (let r of this.processSteps) {
3403
+ let i = e.processInstances.get([this.$$plugin, r.referenceName]);
3404
+ if (!i) {
3405
+ console.warn(`[Resource.getUrl] process not found, fullname: [${this.$$plugin}, ${r.referenceName}]`);
3406
+ continue;
3407
+ }
3408
+ let a = await i(n, this);
3409
+ if (n = a[0], !(r.ignoreExit || !a[1])) break;
3410
+ }
3411
+ return URL.canParse(n) ? n : `${this.getThisFork()}/${n}`;
3412
+ }
3413
+ omittedForks = shallowReactive(/* @__PURE__ */ new Set());
3414
+ getThisFork() {
3415
+ let n = new Set(e.fork.get([this.$$plugin, this.type])?.urls ?? []);
3416
+ if (this.omittedForks.size == 0) var r = e.precedenceFork.get([this.$$plugin, this.type]);
3417
+ else var r = Array.from(n.difference(this.omittedForks).values())[0];
3418
+ if (!r) throw Error(`[Resource.getThisFork] fork not found, type: [${this.$$plugin}, ${this.type}]`);
3419
+ return r;
3420
+ }
3421
+ localChangeFork() {
3422
+ let n = new Set(e.fork.get([this.$$plugin, this.type])?.urls ?? []);
3423
+ this.omittedForks.add(this.getThisFork());
3424
+ let r = n.difference(this.omittedForks).size != 0;
3425
+ return r && this.omittedForks.clear(), r;
3426
+ }
3427
+ }, image_exports$1 = /* @__PURE__ */ __export({ Image: () => Image$1 }, 1), Image$1 = class extends Resource {
3428
+ static is(e) {
3429
+ return e instanceof this;
3583
3430
  }
3584
- }), _hoisted_1$1 = { class: "relative size-full overflow-hidden" }, _hoisted_2 = { key: 2 }, _hoisted_3 = {
3585
- key: 3,
3586
- class: "!size-full"
3587
- }, _hoisted_4 = {
3588
- key: 4,
3589
- class: "flex items-center gap-3 justify-around"
3590
- }, _hoisted_5 = { class: "flex gap-2 flex-col justify-center text-white" }, _hoisted_6 = { class: "text-xs text-wrap" }, content_default = /* @__PURE__ */ defineComponent({
3591
- __name: "content",
3592
- props: {
3593
- retriable: { type: Boolean },
3594
- hideError: { type: Boolean },
3595
- hideEmpty: { type: Boolean },
3596
- hideLoading: { type: Boolean },
3597
- source: {},
3598
- class: {},
3599
- classError: {},
3600
- classEmpty: {},
3601
- classLoading: {},
3602
- style: { type: [
3603
- Boolean,
3604
- null,
3605
- String,
3606
- Object,
3607
- Array
3608
- ] },
3609
- styleError: { type: [
3610
- Boolean,
3611
- null,
3612
- String,
3613
- Object,
3614
- Array
3615
- ] },
3616
- styleEmpty: { type: [
3617
- Boolean,
3618
- null,
3619
- String,
3620
- Object,
3621
- Array
3622
- ] },
3623
- styleLoading: { type: [
3624
- Boolean,
3625
- null,
3626
- String,
3627
- Object,
3628
- Array
3629
- ] }
3630
- },
3631
- emits: ["retry", "resetRetry"],
3632
- setup(e, { expose: n }) {
3633
- let i = e, f = computed(() => Stream.isStream(i.source) ? {
3634
- isLoading: i.source.isRequesting.value,
3635
- isError: i.source.error.value,
3636
- errorCause: i.source.error.value?.message,
3637
- isEmpty: i.source.isEmpty.value,
3638
- data: i.source.data.value,
3639
- isNoResult: i.source.isNoData.value
3640
- } : PromiseContent.isPromiseContent(i.source) ? {
3641
- isLoading: i.source.isLoading.value,
3642
- isError: i.source.isError.value,
3643
- errorCause: i.source.errorCause.value?.message,
3644
- isEmpty: i.source.isEmpty.value,
3645
- data: i.source.data.value,
3646
- isNoResult: i.source.isEmpty.value
3647
- } : {
3648
- isLoading: !1,
3649
- isError: !1,
3650
- errorCause: void 0,
3651
- isEmpty: isEmpty(i.source),
3652
- data: i.source,
3653
- isNoResult: isEmpty(i.source)
3654
- }), p = {
3655
- isLoadingNoData: {
3656
- opacity: 1,
3657
- translateY: 0,
3658
- width: "2.5rem",
3659
- height: "2.5rem",
3660
- paddingBlock: "2px",
3661
- paddingInline: "2px",
3662
- left: "50%",
3663
- top: "8px",
3664
- translateX: "-50%",
3665
- backgroundColor: "var(--van-background-2)",
3666
- borderRadius: "100%"
3667
- },
3668
- isErrorNoData: {
3669
- opacity: 1,
3670
- translateY: "-50%",
3671
- width: "70%",
3672
- minHeight: i.retriable ? "22rem" : "20rem",
3673
- paddingBlock: "2px",
3674
- paddingInline: "2px",
3675
- left: "50%",
3676
- top: "50%",
3677
- translateX: "-50%",
3678
- backgroundColor: "var(--van-background-2)",
3679
- borderRadius: "4px"
3431
+ static create(e, n) {
3432
+ return new this(e, n);
3433
+ }
3434
+ constructor(e, n) {
3435
+ this.aspect = n, "forkNamespace" in e ? super({
3436
+ $$plugin: e.$$plugin,
3437
+ $$meta: e.$$meta,
3438
+ pathname: e.path,
3439
+ type: e.forkNamespace,
3440
+ processSteps: e.processSteps
3441
+ }) : super(e);
3442
+ }
3443
+ }, require_dayjs_min = /* @__PURE__ */ __commonJSMin(((e, n) => {
3444
+ (function(r, i) {
3445
+ typeof e == "object" && n !== void 0 ? n.exports = i() : typeof define == "function" && define.amd ? define(i) : (r = typeof globalThis < "u" ? globalThis : r || self).dayjs = i();
3446
+ })(e, (function() {
3447
+ var e = 1e3, n = 6e4, r = 36e5, i = "millisecond", a = "second", o = "minute", s = "hour", c = "day", l = "week", u = "month", d = "quarter", f = "year", p = "date", m = "Invalid Date", h = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, g = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, v = {
3448
+ name: "en",
3449
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
3450
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
3451
+ ordinal: function(e) {
3452
+ var n = [
3453
+ "th",
3454
+ "st",
3455
+ "nd",
3456
+ "rd"
3457
+ ], r = e % 100;
3458
+ return "[" + e + (n[(r - 20) % 10] || n[r] || n[0]) + "]";
3459
+ }
3460
+ }, y = function(e, n, r) {
3461
+ var i = String(e);
3462
+ return !i || i.length >= n ? e : "" + Array(n + 1 - i.length).join(r) + e;
3463
+ }, b = {
3464
+ s: y,
3465
+ z: function(e) {
3466
+ var n = -e.utcOffset(), r = Math.abs(n), i = Math.floor(r / 60), a = r % 60;
3467
+ return (n <= 0 ? "+" : "-") + y(i, 2, "0") + ":" + y(a, 2, "0");
3680
3468
  },
3681
- isLoadingData: {
3682
- opacity: .7,
3683
- translateY: "0%",
3684
- width: "4rem",
3685
- height: "1.3rem",
3686
- paddingBlock: "2px",
3687
- paddingInline: "8px",
3688
- left: "4px",
3689
- top: "calc(100% - 8px - 1rem)",
3690
- translateX: "0%",
3691
- backgroundColor: "var(--p-color)",
3692
- borderRadius: "1.3rem"
3469
+ m: function e(n, r) {
3470
+ if (n.date() < r.date()) return -e(r, n);
3471
+ var i = 12 * (r.year() - n.year()) + (r.month() - n.month()), a = n.clone().add(i, u), o = r - a < 0, s = n.clone().add(i + (o ? -1 : 1), u);
3472
+ return +(-(i + (r - a) / (o ? a - s : s - a)) || 0);
3693
3473
  },
3694
- isErrorData: {
3695
- opacity: .7,
3696
- translateY: "0%",
3697
- width: "fit-content",
3698
- height: "4rem",
3699
- paddingBlock: "2px",
3700
- paddingInline: "8px",
3701
- left: "4px",
3702
- top: "calc(100% - 8px - 4rem)",
3703
- translateX: "0%",
3704
- backgroundColor: "var(--p-color)",
3705
- borderRadius: "4px"
3474
+ a: function(e) {
3475
+ return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
3706
3476
  },
3707
- isEmpty: {
3708
- opacity: 1,
3709
- translateY: "-50%",
3710
- width: "90%",
3711
- height: "10rem",
3712
- paddingBlock: "2px",
3713
- paddingInline: "2px",
3714
- left: "50%",
3715
- top: "50%",
3716
- translateX: "-50%",
3717
- backgroundColor: "var(--van-background-2)",
3718
- borderRadius: "4px"
3477
+ p: function(e) {
3478
+ return {
3479
+ M: u,
3480
+ y: f,
3481
+ w: l,
3482
+ d: c,
3483
+ D: p,
3484
+ h: s,
3485
+ m: o,
3486
+ s: a,
3487
+ ms: i,
3488
+ Q: d
3489
+ }[e] || String(e || "").toLowerCase().replace(/s$/, "");
3719
3490
  },
3720
- done: {
3721
- width: "4rem",
3722
- height: "1.3rem",
3723
- opacity: 0,
3724
- translateY: "100%",
3725
- paddingBlock: "0px",
3726
- paddingInline: "0px",
3727
- left: "4px",
3728
- top: "calc(100% - 8px - 1rem)",
3729
- translateX: "0%",
3730
- backgroundColor: "var(--p-color)",
3731
- borderRadius: "4px"
3491
+ u: function(e) {
3492
+ return e === void 0;
3732
3493
  }
3733
- }, m = computed(() => !i.hideLoading && f.value.isLoading ? f.value.isEmpty ? "isLoadingNoData" : "isLoadingData" : !i.hideError && f.value.isError ? f.value.isEmpty ? "isErrorNoData" : "isErrorData" : !i.hideEmpty && f.value.isNoResult ? "isEmpty" : "done"), h = useTemplateRef("cont");
3734
- return n({ cont: h }), (n, a) => {
3735
- let g = Loading$1, v = NEmpty, y = NButton, b = NIcon, S = NResult, C = AnimatePresence;
3736
- return openBlock(), createElementBlock("div", _hoisted_1$1, [createElementVNode("div", {
3737
- class: normalizeClass(["relative size-full", [i.class]]),
3738
- ref_key: "cont",
3739
- ref: h
3740
- }, [f.value.isEmpty ? createCommentVNode("", !0) : renderSlot(n.$slots, "default", {
3741
- key: 0,
3742
- data: f.value.data
3743
- })], 2), createVNode(C, null, {
3744
- default: withCtx(() => [createVNode(unref(motion).div, {
3745
- initial: {
3746
- opacity: 0,
3747
- translateY: "-100%",
3748
- left: "50%",
3749
- translateX: "-50%"
3750
- },
3751
- variants: p,
3752
- animate: m.value,
3753
- class: "shadow flex justify-center items-center scale-100 absolute whitespace-nowrap"
3754
- }, {
3755
- default: withCtx(() => [createVNode(Transition, { name: "van-fade" }, {
3756
- default: withCtx(() => [m.value === "isLoadingNoData" ? (openBlock(), createBlock(g, {
3757
- key: 0,
3758
- size: "25px",
3759
- color: "var(--p-color)"
3760
- })) : m.value === "isLoadingData" ? (openBlock(), createBlock(loading_default, {
3761
- key: 1,
3762
- size: "10px",
3763
- color: "white"
3764
- }, {
3765
- default: withCtx(() => [...a[2] ||= [createTextVNode("加载中", -1)]]),
3766
- _: 1
3767
- })) : m.value === "isEmpty" ? (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(v, {
3768
- description: "无结果",
3769
- class: normalizeClass(["w-full !justify-center", [e.classEmpty]]),
3770
- style: normalizeStyle([e.style, e.styleEmpty])
3771
- }, null, 8, ["class", "style"])])) : m.value === "isErrorNoData" ? (openBlock(), createElementBlock("div", _hoisted_3, [createVNode(S, {
3772
- class: normalizeClass(["!items-center !justify-center flex flex-col !size-full *:w-full text-wrap", [e.classError]]),
3773
- status: "error",
3774
- title: "网络错误",
3775
- style: normalizeStyle([e.style, e.styleError]),
3776
- description: f.value.errorCause ?? "未知原因"
3777
- }, {
3778
- footer: withCtx(() => [e.retriable ? (openBlock(), createBlock(y, {
3779
- key: 0,
3780
- onClick: a[0] ||= (e) => n.$emit("resetRetry"),
3781
- type: "primary"
3782
- }, {
3783
- default: withCtx(() => [...a[3] ||= [createTextVNode("重试", -1)]]),
3784
- _: 1
3785
- })) : createCommentVNode("", !0)]),
3786
- icon: withCtx(() => [createVNode(b, {
3787
- size: "10rem",
3788
- color: "var(--nui-error-color)"
3789
- }, {
3790
- default: withCtx(() => [createVNode(unref(WifiTetheringErrorRound_default))]),
3791
- _: 1
3792
- })]),
3793
- _: 1
3794
- }, 8, [
3795
- "class",
3796
- "style",
3797
- "description"
3798
- ])])) : m.value === "isErrorData" ? (openBlock(), createElementBlock("div", _hoisted_4, [
3799
- createVNode(b, {
3800
- size: "3rem",
3801
- color: "white"
3802
- }, {
3803
- default: withCtx(() => [createVNode(unref(WifiTetheringErrorRound_default))]),
3804
- _: 1
3805
- }),
3806
- createElementVNode("div", _hoisted_5, [a[4] ||= createElementVNode("div", { class: "text-sm" }, "网络错误", -1), createElementVNode("div", _hoisted_6, toDisplayString(f.value.errorCause ?? "未知原因"), 1)]),
3807
- createVNode(y, {
3808
- circle: "",
3809
- type: "error",
3810
- size: "large",
3811
- onClick: a[1] ||= (e) => n.$emit("retry")
3812
- }, {
3813
- icon: withCtx(() => [createVNode(b, { color: "white" }, {
3814
- default: withCtx(() => [createVNode(unref(ReloadOutlined_default))]),
3815
- _: 1
3816
- })]),
3817
- _: 1
3818
- })
3819
- ])) : createCommentVNode("", !0)]),
3820
- _: 1
3821
- })]),
3822
- _: 1
3823
- }, 8, ["animate"])]),
3824
- _: 1
3825
- })]);
3826
- };
3827
- }
3828
- }), var_default = /* @__PURE__ */ defineComponent({
3829
- __name: "var",
3830
- props: { value: {} },
3831
- setup(e) {
3832
- let n = e;
3833
- return (e, r) => renderSlot(e.$slots, "default", { value: n.value });
3834
- }
3835
- }), list_default = /* @__PURE__ */ defineComponent({
3836
- __name: "list",
3837
- props: {
3838
- source: {},
3839
- itemHeight: {},
3840
- listProp: {},
3841
- goBottom: { type: Boolean },
3842
- itemResizable: { type: Boolean },
3843
- dataProcessor: {},
3844
- unReloadable: { type: Boolean },
3845
- style: { type: [
3846
- Boolean,
3847
- null,
3848
- String,
3849
- Object,
3850
- Array
3851
- ] },
3852
- class: {}
3853
- },
3854
- emits: [
3855
- "next",
3856
- "reset",
3857
- "retry"
3858
- ],
3859
- setup(e, { expose: n, emit: r }) {
3860
- let i = e, s = r, c = (e) => i.dataProcessor?.(e) ?? e, l = computed(() => ({
3861
- ...Stream.isStream(i.source) ? {
3862
- data: c(i.source.data.value),
3863
- isDone: i.source.isDone.value,
3864
- isRequesting: i.source.isRequesting.value,
3865
- isError: !!i.source.error.value,
3866
- length: c(i.source.data.value).length,
3867
- isEmpty: i.source.isEmpty.value,
3868
- source: i.source
3869
- } : isArray(i.source) ? {
3870
- data: c(i.source),
3871
- isDone: !0,
3872
- isRequesting: !1,
3873
- isError: !1,
3874
- length: c(i.source).length,
3875
- isEmpty: isEmpty(i.source),
3876
- source: i.source
3877
- } : {
3878
- data: c(i.source.data.data.value ?? []),
3879
- isDone: i.source.isEnd,
3880
- isRequesting: i.source.data.isLoading.value,
3881
- isError: i.source.data.isError.value,
3882
- length: c(i.source.data.data.value ?? []).length,
3883
- isEmpty: i.source.data.isEmpty.value,
3884
- source: i.source.data
3885
- },
3886
- next: () => Stream.isStream(i.source) ? i.source.next() : callbackToPromise((e) => s("next", e)),
3887
- retry: () => Stream.isStream(i.source) ? i.source.retry() : callbackToPromise((e) => s("retry", e)),
3888
- reset: () => Stream.isStream(i.source) ? i.source.reset() : s("reset")
3889
- }));
3890
- watch(() => l.value.data, () => {
3891
- i.goBottom && u.value?.scrollTo({
3892
- position: "bottom",
3893
- behavior: "instant"
3494
+ }, S = "en", C = {};
3495
+ C[S] = v;
3496
+ var w = "$isDayjsObject", E = function(e) {
3497
+ return e instanceof A || !(!e || !e[w]);
3498
+ }, D = function e(n, r, i) {
3499
+ var a;
3500
+ if (!n) return S;
3501
+ if (typeof n == "string") {
3502
+ var o = n.toLowerCase();
3503
+ C[o] && (a = o), r && (C[o] = r, a = o);
3504
+ var s = n.split("-");
3505
+ if (!a && s.length > 1) return e(s[0]);
3506
+ } else {
3507
+ var c = n.name;
3508
+ C[c] = n, a = c;
3509
+ }
3510
+ return !i && a && (S = a), a || !i && S;
3511
+ }, O = function(e, n) {
3512
+ if (E(e)) return e.clone();
3513
+ var r = typeof n == "object" ? n : {};
3514
+ return r.date = e, r.args = arguments, new A(r);
3515
+ }, k = b;
3516
+ k.l = D, k.i = E, k.w = function(e, n) {
3517
+ return O(e, {
3518
+ locale: n.$L,
3519
+ utc: n.$u,
3520
+ x: n.$x,
3521
+ $offset: n.$offset
3894
3522
  });
3895
- }, {
3896
- flush: "post",
3897
- deep: !0,
3898
- immediate: !0
3899
- }), watch(l, (e) => {
3900
- e.isRequesting || ceil(window.innerHeight / i.itemHeight) + 2 > e.length && !e.isDone && (e.isError ? e.retry() : e.next());
3901
- }, { immediate: !0 });
3902
- let u = useTemplateRef("vList"), { y: f } = useScroll(() => u.value?.getScrollContainer()), p = debounce(async () => {
3903
- let e = u.value?.virtualListInstRef?.itemsElRef?.querySelector(" .v-vl-visible-items");
3904
- if (!e) return;
3905
- let { itemHeight: n } = i, { data: r, isDone: a, isError: o, isRequesting: s, retry: c, next: d, length: p } = l.value;
3906
- r && !s && !a && n * (p - 2) < f.value + (e?.children?.length ?? window.innerHeight / n) * n && (o ? c() : d());
3907
- }, 200), m = shallowRef(!1), h = shallowRef(!1), g = async () => {
3908
- l.value.reset(), console.log("reset done"), await l.value.next(), h.value = !1;
3909
- };
3910
- return n({
3911
- scrollTop: f,
3912
- listInstance: u
3913
- }), (n, r) => {
3914
- let a = NVirtualList, s = PullRefresh;
3915
- return openBlock(), createBlock(s, {
3916
- modelValue: h.value,
3917
- "onUpdate:modelValue": r[1] ||= (e) => h.value = e,
3918
- class: normalizeClass(["relative", i.class]),
3919
- onRefresh: g,
3920
- disabled: e.unReloadable || (unref(Stream).isStream(e.source) ? !1 : unref(isArray)(e.source) ? !0 : e.source.reloadable ?? !0) || l.value.isError || l.value.isRequesting || !!unref(f) && !m.value,
3921
- onChange: r[2] ||= ({ distance: e }) => m.value = !!e,
3922
- style: normalizeStyle(e.style)
3923
- }, {
3924
- default: withCtx(() => [createVNode(content_default, {
3925
- retriable: "",
3926
- source: unref(Stream).isStream(e.source) || unref(isArray)(e.source) ? e.source : e.source.data,
3927
- "class-loading": "mt-2 !h-[24px]",
3928
- "class-empty": "!h-full",
3929
- "class-error": "!h-full",
3930
- onResetRetry: g,
3931
- "hide-loading": m.value && l.value.isRequesting,
3932
- onRetry: r[0] ||= (e) => l.value.retry()
3933
- }, {
3934
- default: withCtx(() => [createVNode(var_default, { value: l.value.data }, {
3935
- default: withCtx(({ value: r }) => [createVNode(a, mergeProps(e.listProp ?? {}, {
3936
- "item-resizable": e.itemResizable,
3937
- "item-size": e.itemHeight,
3938
- onScroll: unref(p),
3939
- class: ["overflow-x-hidden h-full", [m.value ? "overflow-y-hidden" : "overflow-y-auto"]],
3940
- items: r,
3941
- ref_key: "vList",
3942
- ref: u
3943
- }), {
3944
- default: withCtx(({ item: i }) => [renderSlot(n.$slots, "default", {
3945
- height: e.itemHeight,
3946
- data: {
3947
- item: i,
3948
- index: r.indexOf(i)
3949
- }
3950
- })]),
3951
- _: 2
3952
- }, 1040, [
3953
- "item-resizable",
3954
- "item-size",
3955
- "onScroll",
3956
- "items",
3957
- "class"
3958
- ])]),
3959
- _: 3
3960
- }, 8, ["value"])]),
3961
- _: 3
3962
- }, 8, ["source", "hide-loading"])]),
3963
- _: 3
3964
- }, 8, [
3965
- "modelValue",
3966
- "class",
3967
- "disabled",
3968
- "style"
3969
- ]);
3970
- };
3971
- }
3972
- }), popup_default = /* @__PURE__ */ defineComponent({
3973
- __name: "popup",
3974
- props: /* @__PURE__ */ mergeModels({
3975
- show: { type: Boolean },
3976
- zIndex: {},
3977
- overlay: { type: Boolean },
3978
- duration: {},
3979
- teleport: {},
3980
- lockScroll: { type: Boolean },
3981
- lazyRender: { type: Boolean },
3982
- beforeClose: {},
3983
- overlayProps: {},
3984
- overlayStyle: {},
3985
- overlayClass: {},
3986
- transitionAppear: { type: Boolean },
3987
- closeOnClickOverlay: { type: Boolean },
3988
- round: { type: Boolean },
3989
- position: { default: "center" },
3990
- closeIcon: {},
3991
- closeable: { type: Boolean },
3992
- transition: {},
3993
- iconPrefix: {},
3994
- closeOnPopstate: { type: Boolean },
3995
- closeIconPosition: {},
3996
- destroyOnClose: { type: Boolean },
3997
- safeAreaInsetTop: { type: Boolean },
3998
- safeAreaInsetBottom: { type: Boolean },
3999
- noBorder: {
4000
- type: Boolean,
4001
- default: !1
4002
- },
4003
- useTrulyShow: { type: Boolean },
4004
- style: { type: [
4005
- Boolean,
4006
- null,
4007
- String,
4008
- Object,
4009
- Array
4010
- ] }
4011
- }, {
4012
- show: {
4013
- type: Boolean,
4014
- required: !0
4015
- },
4016
- showModifiers: {}
4017
- }),
4018
- emits: /* @__PURE__ */ mergeModels(["closed"], ["update:show"]),
4019
- setup(e, { expose: n }) {
4020
- let r = useRouter(), i = e, c = useModel(e, "show"), l = shallowRef(c.value), [u, d] = useZIndex(computed(() => i.useTrulyShow ? l.value : c.value)), f = noop$1;
4021
- return watch(c, (e) => {
4022
- e ? f = r.beforeEach(() => {
4023
- if (console.log("popup:\n", "isLast:", d.value, "show:", c.value), d.value) return c.value ? c.value = !1 : void 0;
4024
- }) : f();
4025
- }, { immediate: !0 }), n({
4026
- zIndex: u,
4027
- trulyShow: l
4028
- }), (n, r) => {
4029
- let a = Popup;
4030
- return openBlock(), createBlock(a, mergeProps(i, {
4031
- show: c.value,
4032
- "onUpdate:show": r[0] ||= (e) => c.value = e,
4033
- "z-index": unref(u),
4034
- teleport: "#popups",
4035
- onOpen: r[1] ||= (e) => l.value = !0,
4036
- onClosed: r[2] ||= () => {
4037
- l.value = !1, n.$emit("closed");
4038
- },
4039
- class: ["max-h-screen !overflow-y-auto overflow-hidden", !e.noBorder && "border-0 border-t border-solid border-(--van-border-color)"],
4040
- overlay: "",
4041
- "close-on-click-overlay": ""
4042
- }), {
4043
- default: withCtx(() => [l.value ? renderSlot(n.$slots, "default", { key: 0 }) : createCommentVNode("", !0)]),
4044
- _: 3
4045
- }, 16, [
4046
- "show",
4047
- "z-index",
4048
- "class"
4049
- ]);
4050
3523
  };
4051
- }
4052
- }), routerTab_default = /* @__PURE__ */ defineComponent({
4053
- __name: "routerTab",
4054
- props: {
4055
- items: {},
4056
- routerBase: {}
4057
- },
4058
- setup(n) {
4059
- let r = n, i = useRoute(), a = ref(decodeURI(i.path.replaceAll(r.routerBase + "/", "").split("/")[0])), s = useRouter(), l = useTemplateRef("tab"), u = async (e) => {
4060
- let n = "?", i = r.items.find((n) => n.name == e);
4061
- for (let e in i.queries ?? {}) if (Object.prototype.hasOwnProperty.call(i.queries ?? {}, e)) {
4062
- let r = (i.queries ?? {})[e];
4063
- n += `${e}=${r}&`;
4064
- }
4065
- return n = n.replace(/&$/, ""), await s.force.replace(`${r.routerBase}/${e.split("/").map(encodeURI).join("/")}${n}`), !0;
4066
- };
4067
- watch(() => r.items, (e) => {
4068
- e.find((e) => e.name.startsWith(a.value)) || console.log(a.value, e);
4069
- });
4070
- let d = s.afterEach((e) => {
4071
- if (e.path.startsWith(r.routerBase)) {
4072
- let n = e.path.replaceAll(r.routerBase + "/", "").split("/")[0];
4073
- n !== a.value && (a.value = n);
4074
- }
4075
- });
4076
- return onUnmounted(() => {
4077
- d();
4078
- }), (r, i) => {
4079
- let s = Tab, d = Tabs;
4080
- return openBlock(), createBlock(d, {
4081
- ref_key: "tab",
4082
- ref: l,
4083
- shrink: "",
4084
- active: a.value,
4085
- "onUpdate:active": i[0] ||= (e) => a.value = e,
4086
- beforeChange: u,
4087
- class: "w-full"
4088
- }, {
4089
- "nav-left": withCtx(() => [renderSlot(r.$slots, "left")]),
4090
- "nav-right": withCtx(() => [renderSlot(r.$slots, "right")]),
4091
- "nav-bottom": withCtx(() => [renderSlot(r.$slots, "bottom")]),
4092
- default: withCtx(() => [(openBlock(!0), createElementBlock(Fragment, null, renderList(n.items, (e) => (openBlock(), createBlock(s, {
4093
- title: e.title,
4094
- onClick: (n) => a.value = e.name,
4095
- name: e.name
4096
- }, null, 8, [
4097
- "title",
4098
- "onClick",
4099
- "name"
4100
- ]))), 256))]),
4101
- _: 3
4102
- }, 8, ["active"]);
4103
- };
4104
- }
4105
- }), text_default = /* @__PURE__ */ defineComponent({
4106
- __name: "text",
4107
- props: {
4108
- text: { default: "" },
4109
- ellipsis: {}
4110
- },
4111
- setup(n) {
4112
- let r = n, i = computed(() => r.text.replace(/(http(s?):\/\/)?([\w-]+\.)+(\.?[a-z]+)+(:\d+)?(\/[\w-.\/?%&=]*)?/gi, (e) => `\u1145[[${e}]]\u1145`).split("ᅅ").filter(Boolean).map((e) => /\[\[[^\[\]]+\]\]/g.test(e) ? {
4113
- value: e.substring(2, e.length - 2),
4114
- mode: "link"
4115
- } : {
4116
- value: e,
4117
- mode: "text"
4118
- }));
4119
- return (r, a) => {
4120
- let l = NButton;
4121
- return openBlock(), createElementBlock("div", {
4122
- class: normalizeClass([[unref(isNumber)(n.ellipsis) && "overflow-ellipsis overflow-hidden"], "whitespace-pre-wrap text-(--van-text-color)"]),
4123
- style: normalizeStyle([unref(isNumber)(n.ellipsis) && `line-break: anywhere;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: ${n.ellipsis};`])
4124
- }, [renderSlot(r.$slots, "default"), (openBlock(!0), createElementBlock(Fragment, null, renderList(i.value, (n) => (openBlock(), createElementBlock(Fragment, null, [n.mode === "link" ? (openBlock(), createBlock(l, {
4125
- key: 0,
4126
- tag: "a",
4127
- class: "underline",
4128
- onClick: a[0] ||= withModifiers(() => {}, ["stop"]),
4129
- text: "",
4130
- type: "primary",
4131
- target: "_blank",
4132
- href: /http(s?):\/\/.+/.test(n.value) ? n.value : `https://${n.value}`
4133
- }, {
4134
- default: withCtx(() => [createTextVNode(toDisplayString(n.value), 1)]),
4135
- _: 2
4136
- }, 1032, ["href"])) : n.mode === "text" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(n.value), 1)], 64)) : createCommentVNode("", !0)], 64))), 256))], 6);
4137
- };
4138
- }
4139
- }), _hoisted_1 = { class: "mt-1 text-(--van-text-color-2) text-xs" }, toggleIcon_default = /* @__PURE__ */ defineComponent({
4140
- __name: "toggleIcon",
4141
- props: /* @__PURE__ */ mergeModels({
4142
- icon: {},
4143
- size: {},
4144
- disChanged: { type: Boolean },
4145
- rowMode: { type: Boolean },
4146
- padding: { type: Boolean }
4147
- }, {
4148
- modelValue: {
4149
- type: Boolean,
4150
- default: !1
4151
- },
4152
- modelModifiers: {}
4153
- }),
4154
- emits: /* @__PURE__ */ mergeModels([
4155
- "change",
4156
- "click",
4157
- "longClick"
4158
- ], ["update:modelValue"]),
4159
- setup(e, { emit: n }) {
4160
- let r = e, i = n, a = useModel(e, "modelValue");
4161
- watch(a, (e) => i("change", e));
4162
- let s = () => {
4163
- i("click", !a.value), r.disChanged || (a.value = !a.value);
4164
- }, u = useTemplateRef("htmlRefHook");
4165
- return onLongPress(u, () => {
4166
- i("longClick");
4167
- }, { modifiers: { prevent: !0 } }), (n, r) => {
4168
- let i = NIcon;
4169
- return openBlock(), createElementBlock("div", {
4170
- class: normalizeClass(["flex items-center justify-center **:!transition-colors", [e.rowMode || "flex-col", e.padding && "px-4"]]),
4171
- onClick: withModifiers(s, ["stop"]),
4172
- ref_key: "htmlRefHook",
4173
- ref: u
4174
- }, [createVNode(i, {
4175
- size: e.size,
4176
- color: a.value ? "var(--p-color)" : "var(--van-gray-7)"
4177
- }, {
4178
- default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(e.icon)))]),
4179
- _: 1
4180
- }, 8, ["size", "color"]), createElementVNode("span", _hoisted_1, [renderSlot(n.$slots, "default")])], 2);
4181
- };
4182
- }
4183
- }), Z = Object.defineProperty, ee = Object.defineProperties, te = Object.getOwnPropertyDescriptors, I = Object.getOwnPropertySymbols, P = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable, N = (e, n, r) => n in e ? Z(e, n, {
4184
- enumerable: !0,
4185
- configurable: !0,
4186
- writable: !0,
4187
- value: r
4188
- }) : e[n] = r, T = (e, n) => {
4189
- for (var r in n ||= {}) P.call(n, r) && N(e, r, n[r]);
4190
- if (I) for (var r of I(n)) G.call(n, r) && N(e, r, n[r]);
4191
- return e;
4192
- }, _$1 = (e, n) => ee(e, te(n)), L = (e, n) => {
4193
- var r = {};
4194
- for (var i in e) P.call(e, i) && n.indexOf(i) < 0 && (r[i] = e[i]);
4195
- if (e != null && I) for (var i of I(e)) n.indexOf(i) < 0 && G.call(e, i) && (r[i] = e[i]);
4196
- return r;
4197
- };
4198
- function F(e) {
4199
- return getCurrentScope() ? (onScopeDispose(e), !0) : !1;
4200
- }
4201
- var fe = typeof window < "u" && typeof document < "u";
4202
- typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
4203
- var pe = (e) => e != null, ve = Object.prototype.toString, he = (e) => ve.call(e) === "[object Object]";
4204
- function R(e) {
4205
- return Array.isArray(e) ? e : [e];
4206
- }
4207
- function me(e) {
4208
- return getCurrentInstance();
4209
- }
4210
- function Q(e, n = !0, r) {
4211
- me() ? onMounted(e, r) : n ? e() : nextTick(e);
4212
- }
4213
- function ge(e, n, r) {
4214
- return watch(e, n, _$1(T({}, r), { immediate: !0 }));
4215
- }
4216
- var $ = fe ? window : void 0;
4217
- function x(e) {
4218
- let n = toValue(e);
4219
- return n?.$el ?? n;
4220
- }
4221
- function q(...e) {
4222
- let n = [], r = () => {
4223
- n.forEach((e) => e()), n.length = 0;
4224
- }, i = (e, n, r, i) => (e.addEventListener(n, r, i), () => e.removeEventListener(n, r, i)), o = computed(() => {
4225
- let n = R(toValue(e[0])).filter((e) => e != null);
4226
- return n.every((e) => typeof e != "string") ? n : void 0;
4227
- }), s = ge(() => [
4228
- o.value?.map((e) => x(e)) ?? [$].filter((e) => e != null),
4229
- R(toValue(o.value ? e[1] : e[0])),
4230
- R(unref(o.value ? e[2] : e[1])),
4231
- toValue(o.value ? e[3] : e[2])
4232
- ], ([e, a, o, s]) => {
4233
- if (r(), !(e != null && e.length) || !(a != null && a.length) || !(o != null && o.length)) return;
4234
- let c = he(s) ? T({}, s) : s;
4235
- n.push(...e.flatMap((e) => a.flatMap((n) => o.map((r) => i(e, n, r, c)))));
4236
- }, { flush: "post" });
4237
- return F(r), () => {
4238
- s(), r();
4239
- };
4240
- }
4241
- /* @__NO_SIDE_EFFECTS__ */
4242
- function be() {
4243
- let e = shallowRef(!1), n = getCurrentInstance();
4244
- return n && onMounted(() => {
4245
- e.value = !0;
4246
- }, n), e;
4247
- }
4248
- /* @__NO_SIDE_EFFECTS__ */
4249
- function X(e) {
4250
- let n = /* @__PURE__ */ be();
4251
- return computed(() => (n.value, !!e()));
4252
- }
4253
- function we(e, n, r = {}) {
4254
- let i = r, { window: o = $ } = i, s = L(i, ["window"]), c, l = /* @__PURE__ */ X(() => o && "MutationObserver" in o), u = () => {
4255
- c &&= (c.disconnect(), void 0);
4256
- }, d = computed(() => {
4257
- let n = R(toValue(e)).map(x).filter(pe);
4258
- return new Set(n);
4259
- }), f = watch(() => d.value, (e) => {
4260
- u(), l.value && e.size && (c = new MutationObserver(n), e.forEach((e) => c.observe(e, s)));
4261
- }, {
4262
- immediate: !0,
4263
- flush: "post"
4264
- }), p = () => c?.takeRecords(), m = () => {
4265
- f(), u();
4266
- };
4267
- return F(m), {
4268
- isSupported: l,
4269
- stop: m,
4270
- takeRecords: p
4271
- };
4272
- }
4273
- function Y(e, n, r = {}) {
4274
- let i = r, { window: o = $ } = i, s = L(i, ["window"]), c, l = /* @__PURE__ */ X(() => o && "ResizeObserver" in o), u = () => {
4275
- c &&= (c.disconnect(), void 0);
4276
- }, d = watch(computed(() => {
4277
- let n = toValue(e);
4278
- return Array.isArray(n) ? n.map((e) => x(e)) : [x(n)];
4279
- }), (e) => {
4280
- if (u(), l.value && o) {
4281
- c = new ResizeObserver(n);
4282
- for (let n of e) n && c.observe(n, s);
4283
- }
4284
- }, {
4285
- immediate: !0,
4286
- flush: "post"
4287
- }), f = () => {
4288
- u(), d();
4289
- };
4290
- return F(f), {
4291
- isSupported: l,
4292
- stop: f
4293
- };
4294
- }
4295
- function xe(e, n = {}) {
4296
- let { reset: r = !0, windowResize: i = !0, windowScroll: a = !0, immediate: o = !0, updateTiming: s = "sync" } = n, c = shallowRef(0), l = shallowRef(0), u = shallowRef(0), d = shallowRef(0), f = shallowRef(0), p = shallowRef(0), m = shallowRef(0), h = shallowRef(0);
4297
- function g() {
4298
- let n = x(e);
4299
- if (!n) {
4300
- r && (c.value = 0, l.value = 0, u.value = 0, d.value = 0, f.value = 0, p.value = 0, m.value = 0, h.value = 0);
4301
- return;
4302
- }
4303
- let i = n.getBoundingClientRect();
4304
- c.value = i.height, l.value = i.bottom, u.value = i.left, d.value = i.right, f.value = i.top, p.value = i.width, m.value = i.x, h.value = i.y;
4305
- }
4306
- function v() {
4307
- s === "sync" ? g() : s === "next-frame" && requestAnimationFrame(() => g());
4308
- }
4309
- return Y(e, v), watch(() => x(e), (e) => !e && v()), we(e, v, { attributeFilter: ["style", "class"] }), a && q("scroll", v, {
4310
- capture: !0,
4311
- passive: !0
4312
- }), i && q("resize", v, { passive: !0 }), Q(() => {
4313
- o && v();
4314
- }), {
4315
- height: c,
4316
- bottom: l,
4317
- left: u,
4318
- right: d,
4319
- top: f,
4320
- width: p,
4321
- x: m,
4322
- y: h,
4323
- update: v
4324
- };
4325
- }
4326
- function ye(e, n = {
4327
- width: 0,
4328
- height: 0
4329
- }, r = {}) {
4330
- let { window: i = $, box: o = "content-box" } = r, s = computed(() => (x(e)?.namespaceURI)?.includes("svg")), c = shallowRef(n.width), l = shallowRef(n.height), { stop: u } = Y(e, ([n]) => {
4331
- let r = o === "border-box" ? n.borderBoxSize : o === "content-box" ? n.contentBoxSize : n.devicePixelContentBoxSize;
4332
- if (i && s.value) {
4333
- let n = x(e);
4334
- if (n) {
4335
- let e = n.getBoundingClientRect();
4336
- c.value = e.width, l.value = e.height;
4337
- }
4338
- } else if (r) {
4339
- let e = R(r);
4340
- c.value = e.reduce((e, { inlineSize: n }) => e + n, 0), l.value = e.reduce((e, { blockSize: n }) => e + n, 0);
4341
- } else c.value = n.contentRect.width, l.value = n.contentRect.height;
4342
- }, r);
4343
- Q(() => {
4344
- let r = x(e);
4345
- r && (c.value = "offsetWidth" in r ? r.offsetWidth : n.width, l.value = "offsetHeight" in r ? r.offsetHeight : n.height);
4346
- });
4347
- let d = watch(() => x(e), (e) => {
4348
- c.value = e ? n.width : 0, l.value = e ? n.height : 0;
4349
- });
4350
- function f() {
4351
- u(), d();
4352
- }
4353
- return {
4354
- width: c,
4355
- height: l,
4356
- stop: f
4357
- };
4358
- }
4359
- var Ce = ["data-index"], U = /* @__PURE__ */ defineComponent({
4360
- name: "VirtualWaterfall",
4361
- __name: "virtual-waterfall",
4362
- props: {
4363
- virtual: {
4364
- type: Boolean,
4365
- default: !0
4366
- },
4367
- rowKey: { default: "id" },
4368
- enableCache: {
4369
- type: Boolean,
4370
- default: !0
4371
- },
4372
- gap: { default: 15 },
4373
- padding: { default: 15 },
4374
- preloadScreenCount: { default: () => [0, 0] },
4375
- itemMinWidth: { default: 220 },
4376
- maxColumnCount: { default: 10 },
4377
- minColumnCount: { default: 2 },
4378
- items: { default: () => [] },
4379
- calcItemHeight: {
4380
- type: Function,
4381
- default: (e, n) => 250
4382
- }
4383
- },
4384
- setup(n, { expose: r }) {
4385
- let i = n, o = ref(), { width: s } = ye(o), { top: l } = xe(o);
4386
- onMounted(() => {
4387
- s.value === 0 && (s.value = Number.parseInt(window.getComputedStyle(o.value).width));
4388
- });
4389
- function u(e) {
4390
- return Object.prototype.toString.call(e) === "[object Number]";
4391
- }
4392
- let d = computed(() => {
4393
- if (!s.value) return 0;
4394
- let e = s.value;
4395
- if (e >= i.itemMinWidth * 2) {
4396
- let n = Math.floor(e / i.itemMinWidth);
4397
- return i.maxColumnCount && n > i.maxColumnCount ? i.maxColumnCount : n;
4398
- }
4399
- return i.minColumnCount;
4400
- }), f = ref(Array(d.value).fill(0)), p = computed(() => {
4401
- if (!s.value || d.value <= 0) return 0;
4402
- let e = (d.value - 1) * i.gap;
4403
- return Math.ceil((s.value - e) / d.value);
4404
- }), m = shallowRef([]);
4405
- r({ withItemSpaces: (e) => {
4406
- e(readonly(m).value);
4407
- } }), watchEffect(() => {
4408
- let e = i.items.length;
4409
- if (!d.value || !e) {
4410
- m.value = [];
4411
- return;
4412
- }
4413
- let n = Array(e), r = 0, a = i.enableCache && m.value.length && e > m.value.length;
4414
- a ? r = m.value.length : f.value = Array(d.value).fill(0);
4415
- for (let o = 0; o < e; o++) {
4416
- if (a && o < r) {
4417
- n[o] = m.value[o];
4418
- continue;
4419
- }
4420
- let e = g(), s = i.calcItemHeight(i.items[o], p.value), c = f.value[e], l = (p.value + i.gap) * e, u = {
4421
- index: o,
4422
- item: i.items[o],
4423
- column: e,
4424
- top: c,
4425
- left: l,
4426
- bottom: c + s,
4427
- height: s
4428
- };
4429
- f.value[e] += s + i.gap, n[o] = u;
4430
- }
4431
- m.value = n;
4432
- });
4433
- let h = computed(() => {
4434
- let e = m.value.length;
4435
- if (!e) return [];
4436
- if (!i.virtual) return m.value;
4437
- let n = o.value.parentElement.offsetTop, r = -l.value + n, [a, s] = i.preloadScreenCount, c = o.value.parentElement.clientHeight, u = r - a * c, d = r + (s + 1) * c, f = [];
4438
- for (let n = 0; n < e; n++) {
4439
- let e = m.value[n], r = e.top, i = e.bottom;
4440
- (r >= u && r <= d || i >= u && i <= d || r < u && i > d) && f.push(e);
4441
- }
4442
- return f;
4443
- }), g = () => f.value.indexOf(Math.min(...f.value));
4444
- return (n, r) => (openBlock(), createElementBlock("div", {
4445
- ref_key: "content",
4446
- ref: o,
4447
- style: normalizeStyle({
4448
- position: "relative",
4449
- willChange: "height",
4450
- height: `${Math.max(...f.value)}px`,
4451
- padding: `${u(n.padding) ? n.padding + "px" : n.padding}`
4452
- })
4453
- }, [(openBlock(!0), createElementBlock(Fragment, null, renderList(h.value, (e) => (openBlock(), createElementBlock("div", {
4454
- key: e.item[n.rowKey] ?? e.index,
4455
- style: normalizeStyle({
4456
- position: "absolute",
4457
- contentVisibility: "auto",
4458
- width: `${p.value}px`,
4459
- height: `${e.height}px`,
4460
- transform: `translate(${e.left}px, ${e.top}px)`,
4461
- containIntrinsicSize: `${p.value}px ${e.height}px`
4462
- }),
4463
- "data-index": e.index
4464
- }, [renderSlot(n.$slots, "default", {
4465
- item: e.item,
4466
- index: e.index
4467
- })], 12, Ce))), 128))], 4));
4468
- }
4469
- }), waterfall_default = /* @__PURE__ */ defineComponent({
4470
- __name: "waterfall",
4471
- props: {
4472
- source: {},
4473
- style: { type: [
4474
- Boolean,
4475
- null,
4476
- String,
4477
- Object,
4478
- Array
4479
- ] },
4480
- class: {},
4481
- col: { default: 2 },
4482
- padding: { default: 4 },
4483
- gap: { default: 4 },
4484
- minHeight: { default: 0 },
4485
- dataProcessor: {},
4486
- unReloadable: { type: Boolean }
4487
- },
4488
- emits: [
4489
- "next",
4490
- "reset",
4491
- "retry",
4492
- "col"
4493
- ],
4494
- setup(e, { expose: n, emit: r }) {
4495
- let i = e, c = r, l = (e) => i.dataProcessor?.(e) ?? e, u = computed(() => isArray(i.col) ? i.col : [i.col, i.col]), f = computed(() => ({
4496
- ...Stream.isStream(i.source) ? {
4497
- data: l(i.source.data.value),
4498
- isDone: i.source.isDone.value,
4499
- isRequesting: i.source.isRequesting.value,
4500
- isError: !!i.source.error.value,
4501
- length: l(i.source.data.value).length,
4502
- isEmpty: i.source.isEmpty.value,
4503
- source: i.source
4504
- } : {
4505
- data: l(i.source.data.data.value ?? []),
4506
- isDone: i.source.isEnd,
4507
- isRequesting: i.source.data.isLoading.value,
4508
- isError: i.source.data.isError.value,
4509
- length: l(i.source.data.data.value ?? []).length,
4510
- isEmpty: i.source.data.isEmpty.value,
4511
- source: i.source.data
4512
- },
4513
- next: () => Stream.isStream(i.source) ? i.source.next() : callbackToPromise((e) => c("next", e)),
4514
- retry: () => Stream.isStream(i.source) ? i.source.retry() : callbackToPromise((e) => c("retry", e)),
4515
- reset: () => Stream.isStream(i.source) ? i.source.reset() : c("reset")
4516
- })), p = shallowRef(!1), m = shallowRef(!1), h = async () => {
4517
- f.value.reset(), console.log("reset done"), await f.value.next(), m.value = !1;
4518
- }, g = useTemplateRef("content"), v = computed(() => g.value?.cont), { y } = useScroll(v);
4519
- useEventListener("scroll", () => {
4520
- let { isDone: e, isError: n, isRequesting: r, retry: i, next: a } = f.value;
4521
- if (r || e) return;
4522
- let o = v.value;
4523
- if (!o) return;
4524
- let s = o.scrollHeight, c = o.scrollTop, l = o.clientHeight;
4525
- s - c - l <= 100 && (n ? i() : a());
4526
- }, { target: v }), watch(() => i.source, () => {
4527
- let { isError: e, retry: n, next: r, isEmpty: i } = f.value;
4528
- i && (e ? n() : r());
4529
- }, {
4530
- deep: 1,
4531
- immediate: !0
4532
- });
4533
- let b = useTemplateRef("waterfallEl"), S = useTemp().$apply("waterfall", () => ({ top: 0 })), C = S.top++, w = useTemp().$applyRaw(`waterfall:${C}`, () => shallowReactive(/* @__PURE__ */ new Map())), E = [], k = new MutationObserver(([e]) => {
4534
- for (let e of E) e();
4535
- if (!(e.target instanceof HTMLDivElement) || !f.value.data) return;
4536
- let n = [...e.target.children];
4537
- for (let e of n) {
4538
- let n = Number(e.dataset.index), r = f.value.data[n], a = () => {
4539
- let n = e.firstElementChild?.getBoundingClientRect();
4540
- w.set(r, n?.height ?? i.minHeight);
4541
- }, o = useResizeObserver(e.firstElementChild, a);
4542
- a(), E.push(() => o.stop());
4543
- }
4544
- });
4545
- watch(b, (e) => {
4546
- if (!e) return k.disconnect();
4547
- k.observe(e.$el, { childList: !0 });
4548
- }), onUnmounted(() => {
4549
- k.disconnect();
4550
- for (let e of E) e();
4551
- });
4552
- let j = shallowRef(!0);
4553
- return n({
4554
- scrollTop: y,
4555
- scrollParent: v,
4556
- async reloadList() {
4557
- j.value = !1, w.clear(), await nextTick(), j.value = !0;
4558
- }
4559
- }), (n, r) => {
4560
- let a = PullRefresh;
4561
- return j.value ? (openBlock(), createBlock(a, {
4562
- key: 0,
4563
- modelValue: m.value,
4564
- "onUpdate:modelValue": r[1] ||= (e) => m.value = e,
4565
- class: normalizeClass(["relative h-full", i.class]),
4566
- disabled: e.unReloadable || f.value.isRequesting || !!unref(y) && !p.value,
4567
- onRefresh: h,
4568
- onChange: r[2] ||= ({ distance: e }) => p.value = !!e,
4569
- style: normalizeStyle(e.style)
4570
- }, {
4571
- default: withCtx(() => [createVNode(content_default, {
4572
- retriable: "",
4573
- source: unref(Stream).isStream(e.source) ? e.source : e.source.data,
4574
- "class-loading": "mt-2 !h-[24px]",
4575
- "class-empty": "!h-full",
4576
- "class-error": "!h-full",
4577
- class: "h-full overflow-auto w-full",
4578
- onRetry: r[0] ||= (e) => f.value.retry(),
4579
- onResetRetry: h,
4580
- "hide-loading": p.value && f.value.isRequesting,
4581
- ref_key: "content",
4582
- ref: g
4583
- }, {
4584
- default: withCtx(() => [createVNode(unref(U), {
4585
- items: f.value.data,
4586
- gap: e.gap,
4587
- padding: e.padding,
4588
- "preload-screen-count": [0, 1],
4589
- ref_key: "waterfallEl",
4590
- ref: b,
4591
- "calc-item-height": (n) => unref(w).get(n) ?? e.minHeight,
4592
- class: "waterfall",
4593
- "min-column-count": u.value[0],
4594
- "max-column-count": u.value[1]
4595
- }, {
4596
- default: withCtx(({ item: r, index: i }) => [renderSlot(n.$slots, "default", {
4597
- item: r,
4598
- index: i,
4599
- height: unref(w).get(r),
4600
- length: f.value.length,
4601
- minHeight: e.minHeight
4602
- })]),
4603
- _: 3
4604
- }, 8, [
4605
- "items",
4606
- "gap",
4607
- "padding",
4608
- "calc-item-height",
4609
- "min-column-count",
4610
- "max-column-count"
4611
- ])]),
4612
- _: 3
4613
- }, 8, ["source", "hide-loading"])]),
4614
- _: 3
4615
- }, 8, [
4616
- "modelValue",
4617
- "class",
4618
- "disabled",
4619
- "style"
4620
- ])) : createCommentVNode("", !0);
4621
- };
4622
- }
4623
- }), image_exports$1 = /* @__PURE__ */ __export({ Image: () => Image$1 }), Image$1 = class e extends Struct {
4624
- static processInstances = useGlobalVar(SourcedKeyMap.create(), "uni/image/processInstances");
4625
- static fork = useGlobalVar(SourcedKeyMap.create(), "uni/image/fork");
4626
- static activeFork = useGlobalVar(SourcedKeyMap.create(), "uni/image/activeFork");
4627
- static is(e) {
4628
- return e instanceof this;
4629
- }
4630
- static create(e, n) {
4631
- return new this(e, n);
4632
- }
4633
- constructor(e, n) {
4634
- super(e), this.aspect = n, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.path = e.path, this.forkNamespace = e.forkNamespace, this.processSteps = (e.processSteps ?? []).map((e) => isString$1(e) ? {
4635
- referenceName: e,
4636
- ignoreExit: !1
4637
- } : e);
4638
- }
4639
- forkNamespace;
4640
- path;
4641
- processSteps;
4642
- $$meta;
4643
- $$plugin;
4644
- async getUrl() {
4645
- let n = this.path;
4646
- for (let r of this.processSteps) {
4647
- let i = `${this.$$plugin}:${r.referenceName}`, a = e.processInstances.get(i);
4648
- if (!a) {
4649
- console.warn(`[Image.getUrl] process not found, fullname: "${i}"`);
4650
- continue;
4651
- }
4652
- let o = await a(n, this);
4653
- if (n = o[0], !(r.ignoreExit || !o[1])) break;
4654
- }
4655
- return URL.canParse(n) ? n : `${e.activeFork.get([this.$$plugin, this.forkNamespace])}/${n}`;
4656
- }
4657
- }, require_dayjs_min = /* @__PURE__ */ __commonJSMin(((e, n) => {
4658
- (function(r, i) {
4659
- typeof e == "object" && n !== void 0 ? n.exports = i() : typeof define == "function" && define.amd ? define(i) : (r = typeof globalThis < "u" ? globalThis : r || self).dayjs = i();
4660
- })(e, (function() {
4661
- var e = 1e3, n = 6e4, r = 36e5, i = "millisecond", a = "second", o = "minute", s = "hour", c = "day", l = "week", u = "month", d = "quarter", f = "year", p = "date", m = "Invalid Date", h = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, g = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, v = {
4662
- name: "en",
4663
- weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
4664
- months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
4665
- ordinal: function(e) {
4666
- var n = [
4667
- "th",
4668
- "st",
4669
- "nd",
4670
- "rd"
4671
- ], r = e % 100;
4672
- return "[" + e + (n[(r - 20) % 10] || n[r] || n[0]) + "]";
4673
- }
4674
- }, y = function(e, n, r) {
4675
- var i = String(e);
4676
- return !i || i.length >= n ? e : "" + Array(n + 1 - i.length).join(r) + e;
4677
- }, b = {
4678
- s: y,
4679
- z: function(e) {
4680
- var n = -e.utcOffset(), r = Math.abs(n), i = Math.floor(r / 60), a = r % 60;
4681
- return (n <= 0 ? "+" : "-") + y(i, 2, "0") + ":" + y(a, 2, "0");
4682
- },
4683
- m: function e(n, r) {
4684
- if (n.date() < r.date()) return -e(r, n);
4685
- var i = 12 * (r.year() - n.year()) + (r.month() - n.month()), a = n.clone().add(i, u), o = r - a < 0, s = n.clone().add(i + (o ? -1 : 1), u);
4686
- return +(-(i + (r - a) / (o ? a - s : s - a)) || 0);
4687
- },
4688
- a: function(e) {
4689
- return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
4690
- },
4691
- p: function(e) {
4692
- return {
4693
- M: u,
4694
- y: f,
4695
- w: l,
4696
- d: c,
4697
- D: p,
4698
- h: s,
4699
- m: o,
4700
- s: a,
4701
- ms: i,
4702
- Q: d
4703
- }[e] || String(e || "").toLowerCase().replace(/s$/, "");
4704
- },
4705
- u: function(e) {
4706
- return e === void 0;
4707
- }
4708
- }, S = "en", C = {};
4709
- C[S] = v;
4710
- var w = "$isDayjsObject", E = function(e) {
4711
- return e instanceof A || !(!e || !e[w]);
4712
- }, D = function e(n, r, i) {
4713
- var a;
4714
- if (!n) return S;
4715
- if (typeof n == "string") {
4716
- var o = n.toLowerCase();
4717
- C[o] && (a = o), r && (C[o] = r, a = o);
4718
- var s = n.split("-");
4719
- if (!a && s.length > 1) return e(s[0]);
4720
- } else {
4721
- var c = n.name;
4722
- C[c] = n, a = c;
4723
- }
4724
- return !i && a && (S = a), a || !i && S;
4725
- }, O = function(e, n) {
4726
- if (E(e)) return e.clone();
4727
- var r = typeof n == "object" ? n : {};
4728
- return r.date = e, r.args = arguments, new A(r);
4729
- }, k = b;
4730
- k.l = D, k.i = E, k.w = function(e, n) {
4731
- return O(e, {
4732
- locale: n.$L,
4733
- utc: n.$u,
4734
- x: n.$x,
4735
- $offset: n.$offset
4736
- });
4737
- };
4738
- var A = function() {
4739
- function v(e) {
4740
- this.$L = D(e.locale, null, !0), this.parse(e), this.$x = this.$x || e.x || {}, this[w] = !0;
3524
+ var A = function() {
3525
+ function v(e) {
3526
+ this.$L = D(e.locale, null, !0), this.parse(e), this.$x = this.$x || e.x || {}, this[w] = !0;
4741
3527
  }
4742
3528
  var y = v.prototype;
4743
3529
  return y.parse = function(e) {
@@ -4952,7 +3738,7 @@ var Ce = ["data-index"], U = /* @__PURE__ */ defineComponent({
4952
3738
  ContentImagePage: () => ContentImagePage,
4953
3739
  ContentPage: () => ContentPage,
4954
3740
  ContentVideoPage: () => ContentVideoPage
4955
- }), ContentPage = class {
3741
+ }, 1), ContentPage = class {
4956
3742
  static viewLayout = useGlobalVar(SourcedKeyMap.create(), "uni/contentPage/viewLayout");
4957
3743
  static share = useGlobalVar(SourcedKeyMap.create(), "uni/contentPage/share");
4958
3744
  static shareToken = useGlobalVar(SourcedKeyMap.create(), "uni/contentPage/shareToken");
@@ -4960,131 +3746,1388 @@ var Ce = ["data-index"], U = /* @__PURE__ */ defineComponent({
4960
3746
  static addTabbar(e, ...n) {
4961
3747
  this.tabbar.set(e, (this.tabbar.get(e) ?? []).concat(n));
4962
3748
  }
4963
- static categories = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/tabbar");
4964
- static addCategories(e, ...n) {
4965
- this.categories.set(e, (this.categories.get(e) ?? []).concat(n));
3749
+ static categories = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/tabbar");
3750
+ static addCategories(e, ...n) {
3751
+ this.categories.set(e, (this.categories.get(e) ?? []).concat(n));
3752
+ }
3753
+ static contentPage = useGlobalVar(SourcedKeyMap.create(), "uni/contentPage/contentPage");
3754
+ static barcode = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/barcode");
3755
+ static addBarcode(e, n) {
3756
+ let r = this.barcode.get(e) ?? [];
3757
+ return r.push(n), this.barcode.set(e, r), e;
3758
+ }
3759
+ static levelboard = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/levelboard");
3760
+ static addLevelboard(e, n) {
3761
+ let r = this.levelboard.get(e) ?? [];
3762
+ return r.push(n), this.levelboard.set(e, r), e;
3763
+ }
3764
+ static topButton = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/topButton");
3765
+ static addTopButton(e, n) {
3766
+ let r = this.topButton.get(e) ?? [];
3767
+ return r.push(n), this.topButton.set(e, r), e;
3768
+ }
3769
+ static mainLists = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/mainLists");
3770
+ static addMainList(e, n) {
3771
+ let r = this.mainLists.get(e) ?? [];
3772
+ return r.push(n), this.mainLists.set(e, r), e;
3773
+ }
3774
+ constructor(e, n, r) {
3775
+ this.id = n, this.ep = r, this.preload.value = e;
3776
+ }
3777
+ pid = PromiseContent.withResolvers();
3778
+ preload = shallowRef(void 0);
3779
+ detail = PromiseContent.withResolvers();
3780
+ union = computed(() => this.detail.content.data.value ?? this.preload.value);
3781
+ recommends = PromiseContent.withResolvers();
3782
+ eps = PromiseContent.withResolvers();
3783
+ }, ContentImagePage = class extends ContentPage {
3784
+ images = PromiseContent.withResolvers();
3785
+ }, ContentVideoPage = class extends ContentPage {
3786
+ videos = PromiseContent.withResolvers();
3787
+ }, ep_exports = /* @__PURE__ */ __export({ Ep: () => Ep }, 1), Ep = class extends Struct {
3788
+ name;
3789
+ index;
3790
+ $$plugin;
3791
+ $$meta;
3792
+ constructor(e) {
3793
+ super(e), this.name = e.name, this.index = e.index, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta;
3794
+ }
3795
+ }, item_exports = /* @__PURE__ */ __export({ Item: () => Item }, 1), Item = class extends Struct {
3796
+ static itemTranslator = SourcedKeyMap.create();
3797
+ static create(e) {
3798
+ let n = this.itemTranslator.get(e.contentType);
3799
+ if (!n) throw Error(`can not found itemTranslator contentType:"${ContentPage.contentPage.toString(e.contentType)}"`);
3800
+ return n(e);
3801
+ }
3802
+ static authorIcon = SourcedKeyMap.create();
3803
+ static itemCard = useGlobalVar(SourcedKeyMap.create(), "uni/item/itemCard");
3804
+ static is(e) {
3805
+ return e instanceof this;
3806
+ }
3807
+ cover;
3808
+ get $cover() {
3809
+ return Image$1.create(this.cover);
3810
+ }
3811
+ title;
3812
+ id;
3813
+ categories;
3814
+ author;
3815
+ viewNumber;
3816
+ likeNumber;
3817
+ commentNumber;
3818
+ isLiked;
3819
+ description;
3820
+ updateTime;
3821
+ get $updateTime() {
3822
+ return (0, import_dayjs_min$2.default)(this.updateTime);
3823
+ }
3824
+ contentType;
3825
+ length;
3826
+ epLength;
3827
+ $$plugin;
3828
+ $$meta;
3829
+ thisEp;
3830
+ customIsSafe;
3831
+ get $thisEp() {
3832
+ return new Ep(this.thisEp);
3833
+ }
3834
+ constructor(e) {
3835
+ super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.thisEp = e.thisEp, this.updateTime = e.updateTime, this.cover = e.cover, this.title = e.title, this.id = e.id, this.categories = e.categories, this.author = e.author, this.viewNumber = e.viewNumber, this.likeNumber = e.likeNumber, this.commentNumber = e.commentNumber, this.isLiked = e.isLiked, this.customIsAI = e.customIsAI, this.contentType = ContentPage.contentPage.toJSON(e.contentType), this.length = e.length, this.epLength = e.epLength, this.description = e.description, this.commentSendable = e.commentSendable, this.customIsSafe = e.customIsSafe;
3836
+ }
3837
+ commentSendable;
3838
+ customIsAI;
3839
+ get $isAi() {
3840
+ let e = (e) => /(^|[\((\[\s【])ai[】\))\]\s]?/gi.test(e);
3841
+ return this.customIsAI || e(this.title) || this.author.some((n) => e(`${n.label}\u1145${n.description}`));
3842
+ }
3843
+ }, comment_exports = /* @__PURE__ */ __export({ Comment: () => Comment }, 1), import_dayjs_min$1 = /* @__PURE__ */ __toESM(require_dayjs_min(), 1), Comment = class extends Struct {
3844
+ static commentRow = SourcedKeyMap.create();
3845
+ constructor(e) {
3846
+ super(e), this.content = e.content, this.time = e.time, this.id = e.id, this.childrenCount = e.childrenCount, this.likeCount = e.likeCount, this.isLiked = e.isLiked, this.reported = e.reported, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.isTop = e.isTop;
3847
+ }
3848
+ content;
3849
+ time;
3850
+ $time() {
3851
+ return (0, import_dayjs_min$1.default)(this.time);
3852
+ }
3853
+ id;
3854
+ childrenCount;
3855
+ likeCount;
3856
+ isTop;
3857
+ isLiked;
3858
+ reported;
3859
+ $$plugin;
3860
+ $$meta;
3861
+ }, user_exports = /* @__PURE__ */ __export({ User: () => User }, 1), User = class {
3862
+ static userBase = shallowReactive(/* @__PURE__ */ new Map());
3863
+ static userEditorBase = shallowReactive(/* @__PURE__ */ new Map());
3864
+ static subscribes = shallowReactive(SourcedKeyMap.create());
3865
+ static authorActions = shallowReactive(SourcedKeyMap.create());
3866
+ constructor(e) {
3867
+ e.avatar && (this.avatar = Image$1.create(e.avatar)), this.name = e.name, this.id = e.id, this.$$plugin = e.$$plugin;
3868
+ }
3869
+ avatar;
3870
+ name;
3871
+ id;
3872
+ $$plugin;
3873
+ };
3874
+ let uni;
3875
+ (function(e) {
3876
+ e.user = user_exports, e.comment = comment_exports, e.content = content_exports, e.image = image_exports$1, e.item = item_exports, e.ep = ep_exports, e.resource = resource_exports;
3877
+ })(uni ||= {});
3878
+ var image_default = /* @__PURE__ */ defineComponent({
3879
+ __name: "image",
3880
+ props: {
3881
+ src: {},
3882
+ alt: {},
3883
+ previewable: { type: Boolean },
3884
+ retryMax: { default: 2 },
3885
+ round: { type: Boolean },
3886
+ fit: {},
3887
+ class: {},
3888
+ hideLoading: { type: Boolean },
3889
+ hideError: { type: Boolean },
3890
+ inline: { type: Boolean },
3891
+ style: { type: [
3892
+ Boolean,
3893
+ null,
3894
+ String,
3895
+ Object,
3896
+ Array
3897
+ ] },
3898
+ imgProp: {},
3899
+ useList: {},
3900
+ fetchpriority: { default: "auto" },
3901
+ fallback: {}
3902
+ },
3903
+ emits: [
3904
+ "load",
3905
+ "click",
3906
+ "error"
3907
+ ],
3908
+ setup(n, { expose: r, emit: i }) {
3909
+ let u = n, f = computedAsync(async () => {
3910
+ try {
3911
+ return u.src ? isString$1(u.src) ? u.src : await u.src.getUrl() : "";
3912
+ } catch (e) {
3913
+ console.error(e);
3914
+ }
3915
+ return "";
3916
+ }, ""), p = i, m = 0, h = !1, g = async () => {
3917
+ if (h) return y.error.add(f.value), p("error");
3918
+ if (m++, b.value = !1, m > u.retryMax) {
3919
+ if (!uni.resource.Resource.is(u.src)) {
3920
+ h = !0, g();
3921
+ return;
3922
+ }
3923
+ if (!u.src.localChangeFork()) {
3924
+ h = !0, g();
3925
+ return;
3926
+ }
3927
+ m = 0;
3928
+ }
3929
+ await nextTick(), b.value = !0;
3930
+ }, v = useTemp().$apply("imageState", () => ({
3931
+ loaded: /* @__PURE__ */ new Set(),
3932
+ error: /* @__PURE__ */ new Set()
3933
+ })), y = u.useList ?? v, b = shallowRef(!0), S = () => {
3934
+ h = !1, m = 0, g();
3935
+ };
3936
+ watch(f, S);
3937
+ let C = computed(() => y.loaded.has(f.value)), w = computedAsync(async () => {
3938
+ try {
3939
+ return u.fallback ? isString$1(u.fallback) ? u.fallback : await u.fallback.getUrl() : "";
3940
+ } catch (e) {
3941
+ console.error(e);
3942
+ }
3943
+ return "";
3944
+ }, ""), k = (e) => {
3945
+ p("click"), u.previewable && (e.stopPropagation(), showImagePreview([f.value], { closeable: !0 }));
3946
+ }, j = (...e) => {
3947
+ p("load", ...e), y.loaded.add(f.value);
3948
+ }, M = useTemplateRef("img");
3949
+ r({
3950
+ isLoaded: C,
3951
+ imageEl: computed(() => M.value?.imageRef),
3952
+ imageIns: M
3953
+ });
3954
+ let z = window.$api.NImage;
3955
+ return (r, i) => {
3956
+ let a = Icon$1;
3957
+ return openBlock(), createElementBlock(Fragment, null, [
3958
+ b.value ? withDirectives((openBlock(), createBlock(unref(z), mergeProps({
3959
+ key: 0,
3960
+ onError: g
3961
+ }, u, {
3962
+ "object-fit": n.fit,
3963
+ "preview-disabled": "",
3964
+ alt: n.alt,
3965
+ ref_key: "img",
3966
+ ref: M,
3967
+ "img-props": {
3968
+ ...n.imgProp ?? {},
3969
+ class: "w-full",
3970
+ fetchpriority: u.fetchpriority
3971
+ },
3972
+ class: [
3973
+ { "rounded-full!": !!n.round },
3974
+ n.inline ? "inline-flex" : "flex",
3975
+ u.class
3976
+ ],
3977
+ style: n.style,
3978
+ onLoad: j,
3979
+ onClick: k,
3980
+ src: unref(f)
3981
+ }), null, 16, [
3982
+ "object-fit",
3983
+ "alt",
3984
+ "img-props",
3985
+ "class",
3986
+ "style",
3987
+ "src"
3988
+ ])), [[vShow, !unref(y).error.has(unref(f)) && unref(y).loaded.has(unref(f))]]) : createCommentVNode("", !0),
3989
+ !unref(y).loaded.has(unref(f)) && !unref(y).error.has(unref(f)) && !n.hideLoading ? (openBlock(), createElementBlock("div", {
3990
+ key: 1,
3991
+ class: normalizeClass(["justify-center items-center", [
3992
+ { "rounded-full!": !!n.round },
3993
+ n.inline ? "inline-flex" : "flex",
3994
+ u.class
3995
+ ]]),
3996
+ style: normalizeStyle(n.style),
3997
+ onClick: i[0] ||= (e) => p("click")
3998
+ }, [r.$slots.loading ? renderSlot(r.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(loading_default, { key: 1 }))], 6)) : createCommentVNode("", !0),
3999
+ unref(y).error.has(unref(f)) && !n.hideError ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [n.fallback ? (openBlock(), createBlock(unref(z), mergeProps({
4000
+ key: 0,
4001
+ onError: g
4002
+ }, u, {
4003
+ "object-fit": n.fit,
4004
+ "preview-disabled": "",
4005
+ alt: n.alt,
4006
+ "img-props": {
4007
+ ...n.imgProp ?? {},
4008
+ class: "w-full",
4009
+ fetchpriority: u.fetchpriority
4010
+ },
4011
+ class: [
4012
+ { "rounded-full!": !!n.round },
4013
+ n.inline ? "inline-flex" : "flex",
4014
+ u.class
4015
+ ],
4016
+ style: n.style,
4017
+ src: unref(w)
4018
+ }), null, 16, [
4019
+ "object-fit",
4020
+ "alt",
4021
+ "img-props",
4022
+ "class",
4023
+ "style",
4024
+ "src"
4025
+ ])) : (openBlock(), createElementBlock("div", {
4026
+ key: 1,
4027
+ class: normalizeClass(["justify-center items-center flex-col", [
4028
+ { "rounded-full!": !!n.round },
4029
+ n.inline ? "inline-flex" : "flex",
4030
+ u.class
4031
+ ]]),
4032
+ onClick: i[1] ||= withModifiers(() => {
4033
+ unref(y).error.delete(unref(f)), S();
4034
+ }, ["stop"])
4035
+ }, [r.$slots.loading ? renderSlot(r.$slots, "loading", { key: 0 }) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(a, {
4036
+ name: "warning-o",
4037
+ size: "2.5rem",
4038
+ color: "var(--van-text-color-2)"
4039
+ }), i[2] ||= createElementVNode("div", { class: "text-sm text-(--van-text-color-2)" }, "点击重试", -1)], 64))], 2))], 64)) : createCommentVNode("", !0)
4040
+ ], 64);
4041
+ };
4042
+ }
4043
+ }), _hoisted_1$5 = {
4044
+ xmlns: "http://www.w3.org/2000/svg",
4045
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
4046
+ viewBox: "0 0 1024 1024"
4047
+ }, ReloadOutlined_default = defineComponent({
4048
+ name: "ReloadOutlined",
4049
+ render: function(e, n) {
4050
+ return openBlock(), createElementBlock("svg", _hoisted_1$5, n[0] ||= [createElementVNode("path", {
4051
+ d: "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92C290 92 102.3 279.5 102 511.5C101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1c1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9c-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27c-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4c31.6-31.6 68.4-56.4 109.3-73.8c42.3-17.9 87.4-27 133.8-27c46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z",
4052
+ fill: "currentColor"
4053
+ }, null, -1)]);
4966
4054
  }
4967
- static contentPage = useGlobalVar(SourcedKeyMap.create(), "uni/contentPage/contentPage");
4968
- static levelboard = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/levelboard");
4969
- static addLevelboard(e, n) {
4970
- let r = this.levelboard.get(e) ?? [];
4971
- return r.push(n), this.levelboard.set(e, r), e;
4055
+ }), _hoisted_1$4 = {
4056
+ xmlns: "http://www.w3.org/2000/svg",
4057
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
4058
+ viewBox: "0 0 24 24"
4059
+ }, DoneRound_default = defineComponent({
4060
+ name: "DoneRound",
4061
+ render: function(e, n) {
4062
+ return openBlock(), createElementBlock("svg", _hoisted_1$4, n[0] ||= [createElementVNode("path", {
4063
+ d: "M9 16.2l-3.5-3.5a.984.984 0 0 0-1.4 0a.984.984 0 0 0 0 1.4l4.19 4.19c.39.39 1.02.39 1.41 0L20.3 7.7a.984.984 0 0 0 0-1.4a.984.984 0 0 0-1.4 0L9 16.2z",
4064
+ fill: "currentColor"
4065
+ }, null, -1)]);
4972
4066
  }
4973
- static topButton = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/topButton");
4974
- static addTopButton(e, n) {
4975
- let r = this.topButton.get(e) ?? [];
4976
- return r.push(n), this.topButton.set(e, r), e;
4067
+ }), _hoisted_1$3 = {
4068
+ xmlns: "http://www.w3.org/2000/svg",
4069
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
4070
+ viewBox: "0 0 24 24"
4071
+ }, FileDownloadRound_default = defineComponent({
4072
+ name: "FileDownloadRound",
4073
+ render: function(e, n) {
4074
+ return openBlock(), createElementBlock("svg", _hoisted_1$3, n[0] ||= [createElementVNode("path", {
4075
+ d: "M16.59 9H15V4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v5H7.41c-.89 0-1.34 1.08-.71 1.71l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.63-.63.19-1.71-.7-1.71zM5 19c0 .55.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1z",
4076
+ fill: "currentColor"
4077
+ }, null, -1)]);
4977
4078
  }
4978
- static mainLists = useGlobalVar(shallowReactive(/* @__PURE__ */ new Map()), "uni/contentPage/mainLists");
4979
- static addMainList(e, n) {
4980
- let r = this.mainLists.get(e) ?? [];
4981
- return r.push(n), this.mainLists.set(e, r), e;
4079
+ }), _hoisted_1$2 = {
4080
+ xmlns: "http://www.w3.org/2000/svg",
4081
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
4082
+ viewBox: "0 0 24 24"
4083
+ }, WifiTetheringErrorRound_default = defineComponent({
4084
+ name: "WifiTetheringErrorRound",
4085
+ render: function(e, n) {
4086
+ return openBlock(), createElementBlock("svg", _hoisted_1$2, n[0] ||= [createElementVNode("path", {
4087
+ d: "M10.66 7.14c-2.24.48-4.04 2.3-4.52 4.54c-.37 1.75.02 3.38.89 4.66c.34.51 1.08.55 1.51.11c.35-.35.37-.88.1-1.28c-.5-.76-.75-1.71-.61-2.73c.23-1.74 1.67-3.17 3.41-3.4A4.003 4.003 0 0 1 16 13c0 .8-.24 1.54-.64 2.16c-.27.41-.25.95.1 1.29c.43.43 1.17.4 1.51-.11C17.62 15.4 18 14.25 18 13c0-3.75-3.45-6.7-7.34-5.86zm-.41-3.99c-4.05.69-7.19 3.69-8.03 7.72c-.66 3.17.2 6.16 1.97 8.38c.37.46 1.07.49 1.49.07c.36-.36.39-.93.07-1.32a8.004 8.004 0 0 1-1.66-6.28c.55-3.47 3.42-6.24 6.92-6.65c2.76-.33 5.27.74 6.93 2.59c.2.21.47.34.76.34c.85 0 1.34-1.01.77-1.65c-2.19-2.45-5.56-3.82-9.22-3.2zM12 11c-1.1 0-2 .9-2 2c0 .55.23 1.05.59 1.41c.36.36.86.59 1.41.59s1.05-.23 1.41-.59c.36-.36.59-.86.59-1.41c0-1.1-.9-2-2-2zm9-1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4c0-.55.45-1 1-1zm0 8c.55 0 1 .45 1 1s-.45 1-1 1s-1-.45-1-1s.45-1 1-1z",
4088
+ fill: "currentColor"
4089
+ }, null, -1)]);
4982
4090
  }
4983
- constructor(e, n, r) {
4984
- this.id = n, this.ep = r, this.preload.value = e;
4091
+ }), _hoisted_1$1 = { class: "relative size-full overflow-hidden" }, _hoisted_2 = { key: 2 }, _hoisted_3 = {
4092
+ key: 3,
4093
+ class: "size-full"
4094
+ }, _hoisted_4 = {
4095
+ key: 4,
4096
+ class: "flex items-center gap-3 justify-around"
4097
+ }, _hoisted_5 = { class: "flex gap-2 flex-col justify-center text-white" }, _hoisted_6 = { class: "text-xs text-wrap" }, content_default = /* @__PURE__ */ defineComponent({
4098
+ __name: "content",
4099
+ props: {
4100
+ retriable: { type: Boolean },
4101
+ hideError: { type: Boolean },
4102
+ hideEmpty: { type: Boolean },
4103
+ hideLoading: { type: Boolean },
4104
+ source: {},
4105
+ class: {},
4106
+ classError: {},
4107
+ classEmpty: {},
4108
+ classLoading: {},
4109
+ style: { type: [
4110
+ Boolean,
4111
+ null,
4112
+ String,
4113
+ Object,
4114
+ Array
4115
+ ] },
4116
+ styleError: { type: [
4117
+ Boolean,
4118
+ null,
4119
+ String,
4120
+ Object,
4121
+ Array
4122
+ ] },
4123
+ styleEmpty: { type: [
4124
+ Boolean,
4125
+ null,
4126
+ String,
4127
+ Object,
4128
+ Array
4129
+ ] },
4130
+ styleLoading: { type: [
4131
+ Boolean,
4132
+ null,
4133
+ String,
4134
+ Object,
4135
+ Array
4136
+ ] }
4137
+ },
4138
+ emits: ["retry", "resetRetry"],
4139
+ setup(e, { expose: n }) {
4140
+ let i = e, f = computed(() => Stream.isStream(i.source) ? {
4141
+ isLoading: i.source.isRequesting.value,
4142
+ isError: i.source.error.value,
4143
+ errorCause: i.source.error.value?.message,
4144
+ isEmpty: i.source.isEmpty.value,
4145
+ data: i.source.data.value,
4146
+ isNoResult: i.source.isNoData.value
4147
+ } : PromiseContent.isPromiseContent(i.source) ? {
4148
+ isLoading: i.source.isLoading.value,
4149
+ isError: i.source.isError.value,
4150
+ errorCause: i.source.errorCause.value?.message,
4151
+ isEmpty: i.source.isEmpty.value,
4152
+ data: i.source.data.value,
4153
+ isNoResult: i.source.isEmpty.value
4154
+ } : {
4155
+ isLoading: !1,
4156
+ isError: !1,
4157
+ errorCause: void 0,
4158
+ isEmpty: isEmpty(i.source),
4159
+ data: i.source,
4160
+ isNoResult: isEmpty(i.source)
4161
+ }), p = {
4162
+ isLoadingNoData: {
4163
+ opacity: 1,
4164
+ translateY: 0,
4165
+ width: "2.5rem",
4166
+ height: "2.5rem",
4167
+ paddingBlock: "2px",
4168
+ paddingInline: "2px",
4169
+ left: "50%",
4170
+ top: "8px",
4171
+ translateX: "-50%",
4172
+ backgroundColor: "var(--van-background-2)",
4173
+ borderRadius: "100%"
4174
+ },
4175
+ isErrorNoData: {
4176
+ opacity: 1,
4177
+ translateY: "-50%",
4178
+ width: "70%",
4179
+ minHeight: i.retriable ? "22rem" : "20rem",
4180
+ paddingBlock: "2px",
4181
+ paddingInline: "2px",
4182
+ left: "50%",
4183
+ top: "50%",
4184
+ translateX: "-50%",
4185
+ backgroundColor: "var(--van-background-2)",
4186
+ borderRadius: "4px"
4187
+ },
4188
+ isLoadingData: {
4189
+ opacity: .7,
4190
+ translateY: "0%",
4191
+ width: "4rem",
4192
+ height: "1.3rem",
4193
+ paddingBlock: "2px",
4194
+ paddingInline: "8px",
4195
+ left: "4px",
4196
+ top: "calc(100% - 8px - 1rem)",
4197
+ translateX: "0%",
4198
+ backgroundColor: "var(--p-color)",
4199
+ borderRadius: "1.3rem"
4200
+ },
4201
+ isErrorData: {
4202
+ opacity: .7,
4203
+ translateY: "0%",
4204
+ width: "fit-content",
4205
+ height: "4rem",
4206
+ paddingBlock: "2px",
4207
+ paddingInline: "8px",
4208
+ left: "4px",
4209
+ top: "calc(100% - 8px - 4rem)",
4210
+ translateX: "0%",
4211
+ backgroundColor: "var(--p-color)",
4212
+ borderRadius: "4px"
4213
+ },
4214
+ isEmpty: {
4215
+ opacity: 1,
4216
+ translateY: "-50%",
4217
+ width: "90%",
4218
+ height: "10rem",
4219
+ paddingBlock: "2px",
4220
+ paddingInline: "2px",
4221
+ left: "50%",
4222
+ top: "50%",
4223
+ translateX: "-50%",
4224
+ backgroundColor: "var(--van-background-2)",
4225
+ borderRadius: "4px"
4226
+ },
4227
+ done: {
4228
+ width: "4rem",
4229
+ height: "1.3rem",
4230
+ opacity: 0,
4231
+ translateY: "100%",
4232
+ paddingBlock: "0px",
4233
+ paddingInline: "0px",
4234
+ left: "4px",
4235
+ top: "calc(100% - 8px - 1rem)",
4236
+ translateX: "0%",
4237
+ backgroundColor: "var(--p-color)",
4238
+ borderRadius: "4px"
4239
+ }
4240
+ }, m = computed(() => !i.hideLoading && f.value.isLoading ? f.value.isEmpty ? "isLoadingNoData" : "isLoadingData" : !i.hideError && f.value.isError ? f.value.isEmpty ? "isErrorNoData" : "isErrorData" : !i.hideEmpty && f.value.isNoResult ? "isEmpty" : "done"), h = useTemplateRef("cont");
4241
+ return n({ cont: h }), (n, a) => {
4242
+ let g = Loading$1, v = NEmpty, y = NButton, b = NIcon, S = NResult, C = AnimatePresence;
4243
+ return openBlock(), createElementBlock("div", _hoisted_1$1, [createElementVNode("div", {
4244
+ class: normalizeClass(["relative size-full", [i.class]]),
4245
+ ref_key: "cont",
4246
+ ref: h
4247
+ }, [f.value.isEmpty ? createCommentVNode("", !0) : renderSlot(n.$slots, "default", {
4248
+ key: 0,
4249
+ data: f.value.data
4250
+ })], 2), createVNode(C, null, {
4251
+ default: withCtx(() => [createVNode(unref(motion).div, {
4252
+ initial: {
4253
+ opacity: 0,
4254
+ translateY: "-100%",
4255
+ left: "50%",
4256
+ translateX: "-50%"
4257
+ },
4258
+ variants: p,
4259
+ animate: m.value,
4260
+ class: "shadow flex justify-center items-center scale-100 absolute whitespace-nowrap"
4261
+ }, {
4262
+ default: withCtx(() => [createVNode(Transition, { name: "van-fade" }, {
4263
+ default: withCtx(() => [m.value === "isLoadingNoData" ? (openBlock(), createBlock(g, {
4264
+ key: 0,
4265
+ size: "25px",
4266
+ color: "var(--p-color)"
4267
+ })) : m.value === "isLoadingData" ? (openBlock(), createBlock(loading_default, {
4268
+ key: 1,
4269
+ size: "10px",
4270
+ color: "white"
4271
+ }, {
4272
+ default: withCtx(() => [...a[2] ||= [createTextVNode("加载中", -1)]]),
4273
+ _: 1
4274
+ })) : m.value === "isEmpty" ? (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(v, {
4275
+ description: "无结果",
4276
+ class: normalizeClass(["w-full justify-center!", [e.classEmpty]]),
4277
+ style: normalizeStyle([e.style, e.styleEmpty])
4278
+ }, null, 8, ["class", "style"])])) : m.value === "isErrorNoData" ? (openBlock(), createElementBlock("div", _hoisted_3, [createVNode(S, {
4279
+ class: normalizeClass(["items-center! justify-center! flex flex-col size-full! *:w-full text-wrap", [e.classError]]),
4280
+ status: "error",
4281
+ title: "网络错误",
4282
+ style: normalizeStyle([e.style, e.styleError]),
4283
+ description: f.value.errorCause ?? "未知原因"
4284
+ }, {
4285
+ footer: withCtx(() => [e.retriable ? (openBlock(), createBlock(y, {
4286
+ key: 0,
4287
+ onClick: a[0] ||= (e) => n.$emit("resetRetry"),
4288
+ type: "primary"
4289
+ }, {
4290
+ default: withCtx(() => [...a[3] ||= [createTextVNode("重试", -1)]]),
4291
+ _: 1
4292
+ })) : createCommentVNode("", !0)]),
4293
+ icon: withCtx(() => [createVNode(b, {
4294
+ size: "10rem",
4295
+ color: "var(--nui-error-color)"
4296
+ }, {
4297
+ default: withCtx(() => [createVNode(unref(WifiTetheringErrorRound_default))]),
4298
+ _: 1
4299
+ })]),
4300
+ _: 1
4301
+ }, 8, [
4302
+ "class",
4303
+ "style",
4304
+ "description"
4305
+ ])])) : m.value === "isErrorData" ? (openBlock(), createElementBlock("div", _hoisted_4, [
4306
+ createVNode(b, {
4307
+ size: "3rem",
4308
+ color: "white"
4309
+ }, {
4310
+ default: withCtx(() => [createVNode(unref(WifiTetheringErrorRound_default))]),
4311
+ _: 1
4312
+ }),
4313
+ createElementVNode("div", _hoisted_5, [a[4] ||= createElementVNode("div", { class: "text-sm" }, "网络错误", -1), createElementVNode("div", _hoisted_6, toDisplayString(f.value.errorCause ?? "未知原因"), 1)]),
4314
+ createVNode(y, {
4315
+ circle: "",
4316
+ type: "error",
4317
+ size: "large",
4318
+ onClick: a[1] ||= (e) => n.$emit("retry")
4319
+ }, {
4320
+ icon: withCtx(() => [createVNode(b, { color: "white" }, {
4321
+ default: withCtx(() => [createVNode(unref(ReloadOutlined_default))]),
4322
+ _: 1
4323
+ })]),
4324
+ _: 1
4325
+ })
4326
+ ])) : createCommentVNode("", !0)]),
4327
+ _: 1
4328
+ })]),
4329
+ _: 1
4330
+ }, 8, ["animate"])]),
4331
+ _: 1
4332
+ })]);
4333
+ };
4985
4334
  }
4986
- pid = PromiseContent.withResolvers();
4987
- preload = shallowRef(void 0);
4988
- detail = PromiseContent.withResolvers();
4989
- union = computed(() => this.detail.content.data.value ?? this.preload.value);
4990
- recommends = PromiseContent.withResolvers();
4991
- eps = PromiseContent.withResolvers();
4992
- }, ContentImagePage = class extends ContentPage {
4993
- images = PromiseContent.withResolvers();
4994
- }, ContentVideoPage = class extends ContentPage {
4995
- videos = PromiseContent.withResolvers();
4996
- }, ep_exports = /* @__PURE__ */ __export({ Ep: () => Ep }), Ep = class extends Struct {
4997
- name;
4998
- index;
4999
- $$plugin;
5000
- $$meta;
5001
- constructor(e) {
5002
- super(e), this.name = e.name, this.index = e.index, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta;
4335
+ }), var_default = /* @__PURE__ */ defineComponent({
4336
+ __name: "var",
4337
+ props: { value: {} },
4338
+ setup(e) {
4339
+ let n = e;
4340
+ return (e, r) => renderSlot(e.$slots, "default", { value: n.value });
5003
4341
  }
5004
- }, item_exports = /* @__PURE__ */ __export({ Item: () => Item }), Item = class extends Struct {
5005
- static itemTranslator = SourcedKeyMap.create();
5006
- static create(e) {
5007
- let n = this.itemTranslator.get(e.contentType);
5008
- if (!n) throw Error(`can not found itemTranslator contentType:"${ContentPage.contentPage.toString(e.contentType)}"`);
5009
- return n(e);
4342
+ }), list_default = /* @__PURE__ */ defineComponent({
4343
+ __name: "list",
4344
+ props: {
4345
+ source: {},
4346
+ itemHeight: {},
4347
+ listProp: {},
4348
+ goBottom: { type: Boolean },
4349
+ itemResizable: { type: Boolean },
4350
+ dataProcessor: {},
4351
+ unReloadable: { type: Boolean },
4352
+ style: { type: [
4353
+ Boolean,
4354
+ null,
4355
+ String,
4356
+ Object,
4357
+ Array
4358
+ ] },
4359
+ class: {}
4360
+ },
4361
+ emits: [
4362
+ "next",
4363
+ "reset",
4364
+ "retry"
4365
+ ],
4366
+ setup(e, { expose: n, emit: r }) {
4367
+ let i = e, s = r, c = (e) => i.dataProcessor?.(e) ?? e, l = computed(() => ({
4368
+ ...Stream.isStream(i.source) ? {
4369
+ data: c(i.source.data.value),
4370
+ isDone: i.source.isDone.value,
4371
+ isRequesting: i.source.isRequesting.value,
4372
+ isError: !!i.source.error.value,
4373
+ length: c(i.source.data.value).length,
4374
+ isEmpty: i.source.isEmpty.value,
4375
+ source: i.source
4376
+ } : isArray(i.source) ? {
4377
+ data: c(i.source),
4378
+ isDone: !0,
4379
+ isRequesting: !1,
4380
+ isError: !1,
4381
+ length: c(i.source).length,
4382
+ isEmpty: isEmpty(i.source),
4383
+ source: i.source
4384
+ } : {
4385
+ data: c(i.source.data.data.value ?? []),
4386
+ isDone: i.source.isEnd,
4387
+ isRequesting: i.source.data.isLoading.value,
4388
+ isError: i.source.data.isError.value,
4389
+ length: c(i.source.data.data.value ?? []).length,
4390
+ isEmpty: i.source.data.isEmpty.value,
4391
+ source: i.source.data
4392
+ },
4393
+ next: () => Stream.isStream(i.source) ? i.source.next() : callbackToPromise((e) => s("next", e)),
4394
+ retry: () => Stream.isStream(i.source) ? i.source.retry() : callbackToPromise((e) => s("retry", e)),
4395
+ reset: () => Stream.isStream(i.source) ? i.source.reset() : s("reset")
4396
+ }));
4397
+ watch(() => l.value.data, () => {
4398
+ i.goBottom && u.value?.scrollTo({
4399
+ position: "bottom",
4400
+ behavior: "instant"
4401
+ });
4402
+ }, {
4403
+ flush: "post",
4404
+ deep: !0,
4405
+ immediate: !0
4406
+ }), watch(l, (e) => {
4407
+ e.isRequesting || ceil(window.innerHeight / i.itemHeight) + 2 > e.length && !e.isDone && (e.isError ? e.retry() : e.next());
4408
+ }, { immediate: !0 });
4409
+ let u = useTemplateRef("vList"), { y: f } = useScroll(() => u.value?.getScrollContainer()), p = debounce(async () => {
4410
+ let e = u.value?.virtualListInstRef?.itemsElRef?.querySelector(" .v-vl-visible-items");
4411
+ if (!e) return;
4412
+ let { itemHeight: n } = i, { data: r, isDone: a, isError: o, isRequesting: s, retry: c, next: d, length: p } = l.value;
4413
+ r && !s && !a && n * (p - 2) < f.value + (e?.children?.length ?? window.innerHeight / n) * n && (o ? c() : d());
4414
+ }, 200), m = shallowRef(!1), h = shallowRef(!1), g = async () => {
4415
+ l.value.reset(), console.log("reset done"), await l.value.next(), h.value = !1;
4416
+ };
4417
+ return n({
4418
+ scrollTop: f,
4419
+ listInstance: u
4420
+ }), (n, r) => {
4421
+ let a = NVirtualList, s = PullRefresh;
4422
+ return openBlock(), createBlock(s, {
4423
+ modelValue: h.value,
4424
+ "onUpdate:modelValue": r[1] ||= (e) => h.value = e,
4425
+ class: normalizeClass(["relative", i.class]),
4426
+ onRefresh: g,
4427
+ disabled: e.unReloadable || (unref(Stream).isStream(e.source) ? !1 : unref(isArray)(e.source) ? !0 : e.source.reloadable ?? !0) || l.value.isError || l.value.isRequesting || !!unref(f) && !m.value,
4428
+ onChange: r[2] ||= ({ distance: e }) => m.value = !!e,
4429
+ style: normalizeStyle(e.style)
4430
+ }, {
4431
+ default: withCtx(() => [createVNode(content_default, {
4432
+ retriable: "",
4433
+ source: unref(Stream).isStream(e.source) || unref(isArray)(e.source) ? e.source : e.source.data,
4434
+ "class-loading": "mt-2 !h-[24px]",
4435
+ "class-empty": "!h-full",
4436
+ "class-error": "!h-full",
4437
+ onResetRetry: g,
4438
+ "hide-loading": m.value && l.value.isRequesting,
4439
+ onRetry: r[0] ||= (e) => l.value.retry()
4440
+ }, {
4441
+ default: withCtx(() => [createVNode(var_default, { value: l.value.data }, {
4442
+ default: withCtx(({ value: r }) => [createVNode(a, mergeProps(e.listProp ?? {}, {
4443
+ "item-resizable": e.itemResizable,
4444
+ "item-size": e.itemHeight,
4445
+ onScroll: unref(p),
4446
+ class: ["overflow-x-hidden h-full", [m.value ? "overflow-y-hidden" : "overflow-y-auto"]],
4447
+ items: r,
4448
+ ref_key: "vList",
4449
+ ref: u
4450
+ }), {
4451
+ default: withCtx(({ item: i }) => [renderSlot(n.$slots, "default", {
4452
+ height: e.itemHeight,
4453
+ data: {
4454
+ item: i,
4455
+ index: r.indexOf(i)
4456
+ }
4457
+ })]),
4458
+ _: 2
4459
+ }, 1040, [
4460
+ "item-resizable",
4461
+ "item-size",
4462
+ "onScroll",
4463
+ "items",
4464
+ "class"
4465
+ ])]),
4466
+ _: 3
4467
+ }, 8, ["value"])]),
4468
+ _: 3
4469
+ }, 8, ["source", "hide-loading"])]),
4470
+ _: 3
4471
+ }, 8, [
4472
+ "modelValue",
4473
+ "class",
4474
+ "disabled",
4475
+ "style"
4476
+ ]);
4477
+ };
5010
4478
  }
5011
- static authorIcon = SourcedKeyMap.create();
5012
- static itemCard = useGlobalVar(SourcedKeyMap.create(), "uni/item/itemCard");
5013
- static is(e) {
5014
- return e instanceof this;
4479
+ }), popup_default = /* @__PURE__ */ defineComponent({
4480
+ __name: "popup",
4481
+ props: /* @__PURE__ */ mergeModels({
4482
+ show: { type: Boolean },
4483
+ zIndex: {},
4484
+ overlay: { type: Boolean },
4485
+ duration: {},
4486
+ teleport: {},
4487
+ lockScroll: { type: Boolean },
4488
+ lazyRender: { type: Boolean },
4489
+ beforeClose: {},
4490
+ overlayProps: {},
4491
+ overlayStyle: {},
4492
+ overlayClass: {},
4493
+ transitionAppear: { type: Boolean },
4494
+ closeOnClickOverlay: { type: Boolean },
4495
+ round: { type: Boolean },
4496
+ position: { default: "center" },
4497
+ closeIcon: {},
4498
+ closeable: { type: Boolean },
4499
+ transition: {},
4500
+ iconPrefix: {},
4501
+ closeOnPopstate: { type: Boolean },
4502
+ closeIconPosition: {},
4503
+ destroyOnClose: { type: Boolean },
4504
+ safeAreaInsetTop: { type: Boolean },
4505
+ safeAreaInsetBottom: { type: Boolean },
4506
+ noBorder: {
4507
+ type: Boolean,
4508
+ default: !1
4509
+ },
4510
+ useTrulyShow: { type: Boolean },
4511
+ style: { type: [
4512
+ Boolean,
4513
+ null,
4514
+ String,
4515
+ Object,
4516
+ Array
4517
+ ] }
4518
+ }, {
4519
+ show: {
4520
+ type: Boolean,
4521
+ required: !0
4522
+ },
4523
+ showModifiers: {}
4524
+ }),
4525
+ emits: /* @__PURE__ */ mergeModels(["closed"], ["update:show"]),
4526
+ setup(e, { expose: n }) {
4527
+ let r = useRouter(), i = e, c = useModel(e, "show"), l = shallowRef(c.value), [u, d] = useZIndex(computed(() => i.useTrulyShow ? l.value : c.value)), f = noop$1;
4528
+ return watch(c, (e) => {
4529
+ e ? f = r.beforeEach(() => {
4530
+ if (console.log("popup:\n", "isLast:", d.value, "show:", c.value), d.value) return c.value ? c.value = !1 : void 0;
4531
+ }) : f();
4532
+ }, { immediate: !0 }), n({
4533
+ zIndex: u,
4534
+ trulyShow: l
4535
+ }), (n, r) => {
4536
+ let a = Popup;
4537
+ return openBlock(), createBlock(a, mergeProps(i, {
4538
+ show: c.value,
4539
+ "onUpdate:show": r[0] ||= (e) => c.value = e,
4540
+ "z-index": unref(u),
4541
+ teleport: "#popups",
4542
+ onOpen: r[1] ||= (e) => l.value = !0,
4543
+ onClosed: r[2] ||= () => {
4544
+ l.value = !1, n.$emit("closed");
4545
+ },
4546
+ class: ["max-h-screen !overflow-y-auto overflow-hidden", !e.noBorder && "border-0 border-t border-solid border-(--van-border-color)"],
4547
+ overlay: "",
4548
+ "close-on-click-overlay": ""
4549
+ }), {
4550
+ default: withCtx(() => [l.value ? renderSlot(n.$slots, "default", { key: 0 }) : createCommentVNode("", !0)]),
4551
+ _: 3
4552
+ }, 16, [
4553
+ "show",
4554
+ "z-index",
4555
+ "class"
4556
+ ]);
4557
+ };
5015
4558
  }
5016
- cover;
5017
- get $cover() {
5018
- return Image$1.create(this.cover);
4559
+ }), routerTab_default = /* @__PURE__ */ defineComponent({
4560
+ __name: "routerTab",
4561
+ props: {
4562
+ items: {},
4563
+ routerBase: {}
4564
+ },
4565
+ setup(n) {
4566
+ let r = n, i = useRoute(), a = ref(decodeURI(i.path.replaceAll(r.routerBase + "/", "").split("/")[0])), s = useRouter(), l = useTemplateRef("tab"), u = async (e) => {
4567
+ let n = "?", i = r.items.find((n) => n.name == e);
4568
+ for (let e in i.queries ?? {}) if (Object.prototype.hasOwnProperty.call(i.queries ?? {}, e)) {
4569
+ let r = (i.queries ?? {})[e];
4570
+ n += `${e}=${r}&`;
4571
+ }
4572
+ return n = n.replace(/&$/, ""), await s.force.replace(`${r.routerBase}/${e.split("/").map(encodeURI).join("/")}${n}`), !0;
4573
+ };
4574
+ watch(() => r.items, (e) => {
4575
+ e.find((e) => e.name.startsWith(a.value)) || console.log(a.value, e);
4576
+ });
4577
+ let d = s.afterEach((e) => {
4578
+ if (e.path.startsWith(r.routerBase)) {
4579
+ let n = e.path.replaceAll(r.routerBase + "/", "").split("/")[0];
4580
+ n !== a.value && (a.value = n);
4581
+ }
4582
+ });
4583
+ return onUnmounted(() => {
4584
+ d();
4585
+ }), (r, i) => {
4586
+ let s = Tab, d = Tabs;
4587
+ return openBlock(), createBlock(d, {
4588
+ ref_key: "tab",
4589
+ ref: l,
4590
+ shrink: "",
4591
+ active: a.value,
4592
+ "onUpdate:active": i[0] ||= (e) => a.value = e,
4593
+ beforeChange: u,
4594
+ class: "w-full"
4595
+ }, {
4596
+ "nav-left": withCtx(() => [renderSlot(r.$slots, "left")]),
4597
+ "nav-right": withCtx(() => [renderSlot(r.$slots, "right")]),
4598
+ "nav-bottom": withCtx(() => [renderSlot(r.$slots, "bottom")]),
4599
+ default: withCtx(() => [(openBlock(!0), createElementBlock(Fragment, null, renderList(n.items, (e) => (openBlock(), createBlock(s, {
4600
+ title: e.title,
4601
+ onClick: (n) => a.value = e.name,
4602
+ name: e.name
4603
+ }, null, 8, [
4604
+ "title",
4605
+ "onClick",
4606
+ "name"
4607
+ ]))), 256))]),
4608
+ _: 3
4609
+ }, 8, ["active"]);
4610
+ };
5019
4611
  }
5020
- title;
5021
- id;
5022
- categories;
5023
- author;
5024
- viewNumber;
5025
- likeNumber;
5026
- commentNumber;
5027
- isLiked;
5028
- description;
5029
- updateTime;
5030
- get $updateTime() {
5031
- return (0, import_dayjs_min$2.default)(this.updateTime);
4612
+ }), text_default = /* @__PURE__ */ defineComponent({
4613
+ __name: "text",
4614
+ props: {
4615
+ text: { default: "" },
4616
+ ellipsis: {}
4617
+ },
4618
+ setup(n) {
4619
+ let r = n, i = computed(() => r.text.replace(/(http(s?):\/\/)?([\w-]+\.)+(\.?[a-z]+)+(:\d+)?(\/[\w-.\/?%&=]*)?/gi, (e) => `\u1145[[${e}]]\u1145`).split("ᅅ").filter(Boolean).map((e) => /\[\[[^\[\]]+\]\]/g.test(e) ? {
4620
+ value: e.substring(2, e.length - 2),
4621
+ mode: "link"
4622
+ } : {
4623
+ value: e,
4624
+ mode: "text"
4625
+ }));
4626
+ return (r, a) => {
4627
+ let l = NButton;
4628
+ return openBlock(), createElementBlock("div", {
4629
+ class: normalizeClass([[unref(isNumber)(n.ellipsis) && "overflow-ellipsis overflow-hidden"], "whitespace-pre-wrap text-(--van-text-color)"]),
4630
+ style: normalizeStyle([unref(isNumber)(n.ellipsis) && `line-break: anywhere;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: ${n.ellipsis};`])
4631
+ }, [renderSlot(r.$slots, "default"), (openBlock(!0), createElementBlock(Fragment, null, renderList(i.value, (n) => (openBlock(), createElementBlock(Fragment, null, [n.mode === "link" ? (openBlock(), createBlock(l, {
4632
+ key: 0,
4633
+ tag: "a",
4634
+ class: "underline",
4635
+ onClick: a[0] ||= withModifiers(() => {}, ["stop"]),
4636
+ text: "",
4637
+ type: "primary",
4638
+ target: "_blank",
4639
+ href: /http(s?):\/\/.+/.test(n.value) ? n.value : `https://${n.value}`
4640
+ }, {
4641
+ default: withCtx(() => [createTextVNode(toDisplayString(n.value), 1)]),
4642
+ _: 2
4643
+ }, 1032, ["href"])) : n.mode === "text" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(n.value), 1)], 64)) : createCommentVNode("", !0)], 64))), 256))], 6);
4644
+ };
5032
4645
  }
5033
- contentType;
5034
- length;
5035
- epLength;
5036
- $$plugin;
5037
- $$meta;
5038
- thisEp;
5039
- customIsSafe;
5040
- get $thisEp() {
5041
- return new Ep(this.thisEp);
4646
+ }), _hoisted_1 = { class: "mt-1 text-(--van-text-color-2) text-xs" }, toggleIcon_default = /* @__PURE__ */ defineComponent({
4647
+ __name: "toggleIcon",
4648
+ props: /* @__PURE__ */ mergeModels({
4649
+ icon: {},
4650
+ size: {},
4651
+ disChanged: { type: Boolean },
4652
+ rowMode: { type: Boolean },
4653
+ padding: { type: Boolean }
4654
+ }, {
4655
+ modelValue: {
4656
+ type: Boolean,
4657
+ default: !1
4658
+ },
4659
+ modelModifiers: {}
4660
+ }),
4661
+ emits: /* @__PURE__ */ mergeModels([
4662
+ "change",
4663
+ "click",
4664
+ "longClick"
4665
+ ], ["update:modelValue"]),
4666
+ setup(e, { emit: n }) {
4667
+ let r = e, i = n, a = useModel(e, "modelValue");
4668
+ watch(a, (e) => i("change", e));
4669
+ let s = () => {
4670
+ i("click", !a.value), r.disChanged || (a.value = !a.value);
4671
+ }, u = useTemplateRef("htmlRefHook");
4672
+ return onLongPress(u, () => {
4673
+ i("longClick");
4674
+ }, { modifiers: { prevent: !0 } }), (n, r) => {
4675
+ let i = NIcon;
4676
+ return openBlock(), createElementBlock("div", {
4677
+ class: normalizeClass(["flex items-center justify-center **:!transition-colors", [e.rowMode || "flex-col", e.padding && "px-4"]]),
4678
+ onClick: withModifiers(s, ["stop"]),
4679
+ ref_key: "htmlRefHook",
4680
+ ref: u
4681
+ }, [createVNode(i, {
4682
+ size: e.size,
4683
+ color: a.value ? "var(--p-color)" : "var(--van-gray-7)"
4684
+ }, {
4685
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(e.icon)))]),
4686
+ _: 1
4687
+ }, 8, ["size", "color"]), createElementVNode("span", _hoisted_1, [renderSlot(n.$slots, "default")])], 2);
4688
+ };
5042
4689
  }
5043
- constructor(e) {
5044
- super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.thisEp = e.thisEp, this.updateTime = e.updateTime, this.cover = e.cover, this.title = e.title, this.id = e.id, this.categories = e.categories, this.author = e.author, this.viewNumber = e.viewNumber, this.likeNumber = e.likeNumber, this.commentNumber = e.commentNumber, this.isLiked = e.isLiked, this.customIsAI = e.customIsAI, this.contentType = ContentPage.contentPage.toJSON(e.contentType), this.length = e.length, this.epLength = e.epLength, this.description = e.description, this.commentSendable = e.commentSendable, this.customIsSafe = e.customIsSafe;
4690
+ }), Z = Object.defineProperty, ee = Object.defineProperties, te = Object.getOwnPropertyDescriptors, I = Object.getOwnPropertySymbols, P = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable, N = (e, n, r) => n in e ? Z(e, n, {
4691
+ enumerable: !0,
4692
+ configurable: !0,
4693
+ writable: !0,
4694
+ value: r
4695
+ }) : e[n] = r, T = (e, n) => {
4696
+ for (var r in n ||= {}) P.call(n, r) && N(e, r, n[r]);
4697
+ if (I) for (var r of I(n)) G.call(n, r) && N(e, r, n[r]);
4698
+ return e;
4699
+ }, _$1 = (e, n) => ee(e, te(n)), L = (e, n) => {
4700
+ var r = {};
4701
+ for (var i in e) P.call(e, i) && n.indexOf(i) < 0 && (r[i] = e[i]);
4702
+ if (e != null && I) for (var i of I(e)) n.indexOf(i) < 0 && G.call(e, i) && (r[i] = e[i]);
4703
+ return r;
4704
+ };
4705
+ function F(e) {
4706
+ return getCurrentScope() ? (onScopeDispose(e), !0) : !1;
4707
+ }
4708
+ var fe = typeof window < "u" && typeof document < "u";
4709
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
4710
+ var pe = (e) => e != null, ve = Object.prototype.toString, he = (e) => ve.call(e) === "[object Object]";
4711
+ function R(e) {
4712
+ return Array.isArray(e) ? e : [e];
4713
+ }
4714
+ function me(e) {
4715
+ return getCurrentInstance();
4716
+ }
4717
+ function Q(e, n = !0, r) {
4718
+ me() ? onMounted(e, r) : n ? e() : nextTick(e);
4719
+ }
4720
+ function ge(e, n, r) {
4721
+ return watch(e, n, _$1(T({}, r), { immediate: !0 }));
4722
+ }
4723
+ var $ = fe ? window : void 0;
4724
+ function x(e) {
4725
+ let n = toValue(e);
4726
+ return n?.$el ?? n;
4727
+ }
4728
+ function q(...e) {
4729
+ let n = [], r = () => {
4730
+ n.forEach((e) => e()), n.length = 0;
4731
+ }, i = (e, n, r, i) => (e.addEventListener(n, r, i), () => e.removeEventListener(n, r, i)), o = computed(() => {
4732
+ let n = R(toValue(e[0])).filter((e) => e != null);
4733
+ return n.every((e) => typeof e != "string") ? n : void 0;
4734
+ }), s = ge(() => [
4735
+ o.value?.map((e) => x(e)) ?? [$].filter((e) => e != null),
4736
+ R(toValue(o.value ? e[1] : e[0])),
4737
+ R(unref(o.value ? e[2] : e[1])),
4738
+ toValue(o.value ? e[3] : e[2])
4739
+ ], ([e, a, o, s]) => {
4740
+ if (r(), !(e != null && e.length) || !(a != null && a.length) || !(o != null && o.length)) return;
4741
+ let c = he(s) ? T({}, s) : s;
4742
+ n.push(...e.flatMap((e) => a.flatMap((n) => o.map((r) => i(e, n, r, c)))));
4743
+ }, { flush: "post" });
4744
+ return F(r), () => {
4745
+ s(), r();
4746
+ };
4747
+ }
4748
+ /* @__NO_SIDE_EFFECTS__ */
4749
+ function be() {
4750
+ let e = shallowRef(!1), n = getCurrentInstance();
4751
+ return n && onMounted(() => {
4752
+ e.value = !0;
4753
+ }, n), e;
4754
+ }
4755
+ /* @__NO_SIDE_EFFECTS__ */
4756
+ function X(e) {
4757
+ let n = /* @__PURE__ */ be();
4758
+ return computed(() => (n.value, !!e()));
4759
+ }
4760
+ function we(e, n, r = {}) {
4761
+ let i = r, { window: o = $ } = i, s = L(i, ["window"]), c, l = /* @__PURE__ */ X(() => o && "MutationObserver" in o), u = () => {
4762
+ c &&= (c.disconnect(), void 0);
4763
+ }, d = computed(() => {
4764
+ let n = R(toValue(e)).map(x).filter(pe);
4765
+ return new Set(n);
4766
+ }), f = watch(() => d.value, (e) => {
4767
+ u(), l.value && e.size && (c = new MutationObserver(n), e.forEach((e) => c.observe(e, s)));
4768
+ }, {
4769
+ immediate: !0,
4770
+ flush: "post"
4771
+ }), p = () => c?.takeRecords(), m = () => {
4772
+ f(), u();
4773
+ };
4774
+ return F(m), {
4775
+ isSupported: l,
4776
+ stop: m,
4777
+ takeRecords: p
4778
+ };
4779
+ }
4780
+ function Y(e, n, r = {}) {
4781
+ let i = r, { window: o = $ } = i, s = L(i, ["window"]), c, l = /* @__PURE__ */ X(() => o && "ResizeObserver" in o), u = () => {
4782
+ c &&= (c.disconnect(), void 0);
4783
+ }, d = watch(computed(() => {
4784
+ let n = toValue(e);
4785
+ return Array.isArray(n) ? n.map((e) => x(e)) : [x(n)];
4786
+ }), (e) => {
4787
+ if (u(), l.value && o) {
4788
+ c = new ResizeObserver(n);
4789
+ for (let n of e) n && c.observe(n, s);
4790
+ }
4791
+ }, {
4792
+ immediate: !0,
4793
+ flush: "post"
4794
+ }), f = () => {
4795
+ u(), d();
4796
+ };
4797
+ return F(f), {
4798
+ isSupported: l,
4799
+ stop: f
4800
+ };
4801
+ }
4802
+ function xe(e, n = {}) {
4803
+ let { reset: r = !0, windowResize: i = !0, windowScroll: a = !0, immediate: o = !0, updateTiming: s = "sync" } = n, c = shallowRef(0), l = shallowRef(0), u = shallowRef(0), d = shallowRef(0), f = shallowRef(0), p = shallowRef(0), m = shallowRef(0), h = shallowRef(0);
4804
+ function g() {
4805
+ let n = x(e);
4806
+ if (!n) {
4807
+ r && (c.value = 0, l.value = 0, u.value = 0, d.value = 0, f.value = 0, p.value = 0, m.value = 0, h.value = 0);
4808
+ return;
4809
+ }
4810
+ let i = n.getBoundingClientRect();
4811
+ c.value = i.height, l.value = i.bottom, u.value = i.left, d.value = i.right, f.value = i.top, p.value = i.width, m.value = i.x, h.value = i.y;
5045
4812
  }
5046
- commentSendable;
5047
- customIsAI;
5048
- get $isAi() {
5049
- let e = (e) => /(^|[\((\[\s【])ai[】\))\]\s]?/gi.test(e);
5050
- return this.customIsAI || e(this.title) || this.author.some((n) => e(`${n.label}\u1145${n.description}`));
4813
+ function v() {
4814
+ s === "sync" ? g() : s === "next-frame" && requestAnimationFrame(() => g());
5051
4815
  }
5052
- }, comment_exports = /* @__PURE__ */ __export({ Comment: () => Comment }), import_dayjs_min$1 = /* @__PURE__ */ __toESM(require_dayjs_min(), 1), Comment = class extends Struct {
5053
- static commentRow = SourcedKeyMap.create();
5054
- constructor(e) {
5055
- super(e), this.content = e.content, this.time = e.time, this.id = e.id, this.childrenCount = e.childrenCount, this.likeCount = e.likeCount, this.isLiked = e.isLiked, this.reported = e.reported, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.isTop = e.isTop;
4816
+ return Y(e, v), watch(() => x(e), (e) => !e && v()), we(e, v, { attributeFilter: ["style", "class"] }), a && q("scroll", v, {
4817
+ capture: !0,
4818
+ passive: !0
4819
+ }), i && q("resize", v, { passive: !0 }), Q(() => {
4820
+ o && v();
4821
+ }), {
4822
+ height: c,
4823
+ bottom: l,
4824
+ left: u,
4825
+ right: d,
4826
+ top: f,
4827
+ width: p,
4828
+ x: m,
4829
+ y: h,
4830
+ update: v
4831
+ };
4832
+ }
4833
+ function ye(e, n = {
4834
+ width: 0,
4835
+ height: 0
4836
+ }, r = {}) {
4837
+ let { window: i = $, box: o = "content-box" } = r, s = computed(() => (x(e)?.namespaceURI)?.includes("svg")), c = shallowRef(n.width), l = shallowRef(n.height), { stop: u } = Y(e, ([n]) => {
4838
+ let r = o === "border-box" ? n.borderBoxSize : o === "content-box" ? n.contentBoxSize : n.devicePixelContentBoxSize;
4839
+ if (i && s.value) {
4840
+ let n = x(e);
4841
+ if (n) {
4842
+ let e = n.getBoundingClientRect();
4843
+ c.value = e.width, l.value = e.height;
4844
+ }
4845
+ } else if (r) {
4846
+ let e = R(r);
4847
+ c.value = e.reduce((e, { inlineSize: n }) => e + n, 0), l.value = e.reduce((e, { blockSize: n }) => e + n, 0);
4848
+ } else c.value = n.contentRect.width, l.value = n.contentRect.height;
4849
+ }, r);
4850
+ Q(() => {
4851
+ let r = x(e);
4852
+ r && (c.value = "offsetWidth" in r ? r.offsetWidth : n.width, l.value = "offsetHeight" in r ? r.offsetHeight : n.height);
4853
+ });
4854
+ let d = watch(() => x(e), (e) => {
4855
+ c.value = e ? n.width : 0, l.value = e ? n.height : 0;
4856
+ });
4857
+ function f() {
4858
+ u(), d();
5056
4859
  }
5057
- content;
5058
- time;
5059
- $time() {
5060
- return (0, import_dayjs_min$1.default)(this.time);
4860
+ return {
4861
+ width: c,
4862
+ height: l,
4863
+ stop: f
4864
+ };
4865
+ }
4866
+ var Ce = ["data-index"], U = /* @__PURE__ */ defineComponent({
4867
+ name: "VirtualWaterfall",
4868
+ __name: "virtual-waterfall",
4869
+ props: {
4870
+ virtual: {
4871
+ type: Boolean,
4872
+ default: !0
4873
+ },
4874
+ rowKey: { default: "id" },
4875
+ enableCache: {
4876
+ type: Boolean,
4877
+ default: !0
4878
+ },
4879
+ gap: { default: 15 },
4880
+ padding: { default: 15 },
4881
+ preloadScreenCount: { default: () => [0, 0] },
4882
+ itemMinWidth: { default: 220 },
4883
+ maxColumnCount: { default: 10 },
4884
+ minColumnCount: { default: 2 },
4885
+ items: { default: () => [] },
4886
+ calcItemHeight: {
4887
+ type: Function,
4888
+ default: (e, n) => 250
4889
+ }
4890
+ },
4891
+ setup(n, { expose: r }) {
4892
+ let i = n, o = ref(), { width: s } = ye(o), { top: l } = xe(o);
4893
+ onMounted(() => {
4894
+ s.value === 0 && (s.value = Number.parseInt(window.getComputedStyle(o.value).width));
4895
+ });
4896
+ function u(e) {
4897
+ return Object.prototype.toString.call(e) === "[object Number]";
4898
+ }
4899
+ let d = computed(() => {
4900
+ if (!s.value) return 0;
4901
+ let e = s.value;
4902
+ if (e >= i.itemMinWidth * 2) {
4903
+ let n = Math.floor(e / i.itemMinWidth);
4904
+ return i.maxColumnCount && n > i.maxColumnCount ? i.maxColumnCount : n;
4905
+ }
4906
+ return i.minColumnCount;
4907
+ }), f = ref(Array(d.value).fill(0)), p = computed(() => {
4908
+ if (!s.value || d.value <= 0) return 0;
4909
+ let e = (d.value - 1) * i.gap;
4910
+ return Math.ceil((s.value - e) / d.value);
4911
+ }), m = shallowRef([]);
4912
+ r({ withItemSpaces: (e) => {
4913
+ e(readonly(m).value);
4914
+ } }), watchEffect(() => {
4915
+ let e = i.items.length;
4916
+ if (!d.value || !e) {
4917
+ m.value = [];
4918
+ return;
4919
+ }
4920
+ let n = Array(e), r = 0, a = i.enableCache && m.value.length && e > m.value.length;
4921
+ a ? r = m.value.length : f.value = Array(d.value).fill(0);
4922
+ for (let o = 0; o < e; o++) {
4923
+ if (a && o < r) {
4924
+ n[o] = m.value[o];
4925
+ continue;
4926
+ }
4927
+ let e = g(), s = i.calcItemHeight(i.items[o], p.value), c = f.value[e], l = (p.value + i.gap) * e, u = {
4928
+ index: o,
4929
+ item: i.items[o],
4930
+ column: e,
4931
+ top: c,
4932
+ left: l,
4933
+ bottom: c + s,
4934
+ height: s
4935
+ };
4936
+ f.value[e] += s + i.gap, n[o] = u;
4937
+ }
4938
+ m.value = n;
4939
+ });
4940
+ let h = computed(() => {
4941
+ let e = m.value.length;
4942
+ if (!e) return [];
4943
+ if (!i.virtual) return m.value;
4944
+ let n = o.value.parentElement.offsetTop, r = -l.value + n, [a, s] = i.preloadScreenCount, c = o.value.parentElement.clientHeight, u = r - a * c, d = r + (s + 1) * c, f = [];
4945
+ for (let n = 0; n < e; n++) {
4946
+ let e = m.value[n], r = e.top, i = e.bottom;
4947
+ (r >= u && r <= d || i >= u && i <= d || r < u && i > d) && f.push(e);
4948
+ }
4949
+ return f;
4950
+ }), g = () => f.value.indexOf(Math.min(...f.value));
4951
+ return (n, r) => (openBlock(), createElementBlock("div", {
4952
+ ref_key: "content",
4953
+ ref: o,
4954
+ style: normalizeStyle({
4955
+ position: "relative",
4956
+ willChange: "height",
4957
+ height: `${Math.max(...f.value)}px`,
4958
+ padding: `${u(n.padding) ? n.padding + "px" : n.padding}`
4959
+ })
4960
+ }, [(openBlock(!0), createElementBlock(Fragment, null, renderList(h.value, (e) => (openBlock(), createElementBlock("div", {
4961
+ key: e.item[n.rowKey] ?? e.index,
4962
+ style: normalizeStyle({
4963
+ position: "absolute",
4964
+ contentVisibility: "auto",
4965
+ width: `${p.value}px`,
4966
+ height: `${e.height}px`,
4967
+ transform: `translate(${e.left}px, ${e.top}px)`,
4968
+ containIntrinsicSize: `${p.value}px ${e.height}px`
4969
+ }),
4970
+ "data-index": e.index
4971
+ }, [renderSlot(n.$slots, "default", {
4972
+ item: e.item,
4973
+ index: e.index
4974
+ })], 12, Ce))), 128))], 4));
5061
4975
  }
5062
- id;
5063
- childrenCount;
5064
- likeCount;
5065
- isTop;
5066
- isLiked;
5067
- reported;
5068
- $$plugin;
5069
- $$meta;
5070
- }, user_exports = /* @__PURE__ */ __export({ User: () => User }), User = class {
5071
- static userBase = shallowReactive(/* @__PURE__ */ new Map());
5072
- static userEditorBase = shallowReactive(/* @__PURE__ */ new Map());
5073
- static subscribes = shallowReactive(SourcedKeyMap.create());
5074
- static authorActions = shallowReactive(SourcedKeyMap.create());
5075
- constructor(e) {
5076
- e.avatar && (this.avatar = Image$1.create(e.avatar)), this.name = e.name, this.id = e.id, this.$$plugin = e.$$plugin;
4976
+ }), waterfall_default = /* @__PURE__ */ defineComponent({
4977
+ __name: "waterfall",
4978
+ props: {
4979
+ source: {},
4980
+ style: { type: [
4981
+ Boolean,
4982
+ null,
4983
+ String,
4984
+ Object,
4985
+ Array
4986
+ ] },
4987
+ class: {},
4988
+ col: { default: 2 },
4989
+ padding: { default: 4 },
4990
+ gap: { default: 4 },
4991
+ minHeight: { default: 0 },
4992
+ dataProcessor: {},
4993
+ unReloadable: { type: Boolean }
4994
+ },
4995
+ emits: [
4996
+ "next",
4997
+ "reset",
4998
+ "retry",
4999
+ "col"
5000
+ ],
5001
+ setup(e, { expose: n, emit: r }) {
5002
+ let i = e, c = r, l = (e) => i.dataProcessor?.(e) ?? e, u = computed(() => isArray(i.col) ? i.col : [i.col, i.col]), f = computed(() => ({
5003
+ ...Stream.isStream(i.source) ? {
5004
+ data: l(i.source.data.value),
5005
+ isDone: i.source.isDone.value,
5006
+ isRequesting: i.source.isRequesting.value,
5007
+ isError: !!i.source.error.value,
5008
+ length: l(i.source.data.value).length,
5009
+ isEmpty: i.source.isEmpty.value,
5010
+ source: i.source
5011
+ } : {
5012
+ data: l(i.source.data.data.value ?? []),
5013
+ isDone: i.source.isEnd,
5014
+ isRequesting: i.source.data.isLoading.value,
5015
+ isError: i.source.data.isError.value,
5016
+ length: l(i.source.data.data.value ?? []).length,
5017
+ isEmpty: i.source.data.isEmpty.value,
5018
+ source: i.source.data
5019
+ },
5020
+ next: () => Stream.isStream(i.source) ? i.source.next() : callbackToPromise((e) => c("next", e)),
5021
+ retry: () => Stream.isStream(i.source) ? i.source.retry() : callbackToPromise((e) => c("retry", e)),
5022
+ reset: () => Stream.isStream(i.source) ? i.source.reset() : c("reset")
5023
+ })), p = shallowRef(!1), m = shallowRef(!1), h = async () => {
5024
+ f.value.reset(), console.log("reset done"), await f.value.next(), m.value = !1;
5025
+ }, g = useTemplateRef("content"), v = computed(() => g.value?.cont), { y } = useScroll(v);
5026
+ useEventListener("scroll", () => {
5027
+ let { isDone: e, isError: n, isRequesting: r, retry: i, next: a } = f.value;
5028
+ if (r || e) return;
5029
+ let o = v.value;
5030
+ if (!o) return;
5031
+ let s = o.scrollHeight, c = o.scrollTop, l = o.clientHeight;
5032
+ s - c - l <= 100 && (n ? i() : a());
5033
+ }, { target: v }), watch(() => i.source, () => {
5034
+ let { isError: e, retry: n, next: r, isEmpty: i } = f.value;
5035
+ i && (e ? n() : r());
5036
+ }, {
5037
+ deep: 1,
5038
+ immediate: !0
5039
+ });
5040
+ let b = useTemplateRef("waterfallEl"), S = useTemp().$apply("waterfall", () => ({ top: 0 })), C = S.top++, w = useTemp().$applyRaw(`waterfall:${C}`, () => shallowReactive(/* @__PURE__ */ new Map())), E = [], k = new MutationObserver(([e]) => {
5041
+ for (let e of E) e();
5042
+ if (!(e.target instanceof HTMLDivElement) || !f.value.data) return;
5043
+ let n = [...e.target.children];
5044
+ for (let e of n) {
5045
+ let n = Number(e.dataset.index), r = f.value.data[n], a = () => {
5046
+ let n = e.firstElementChild?.getBoundingClientRect();
5047
+ w.set(r, n?.height ?? i.minHeight);
5048
+ }, o = useResizeObserver(e.firstElementChild, a);
5049
+ a(), E.push(() => o.stop());
5050
+ }
5051
+ });
5052
+ watch(b, (e) => {
5053
+ if (!e) return k.disconnect();
5054
+ k.observe(e.$el, { childList: !0 });
5055
+ }), onUnmounted(() => {
5056
+ k.disconnect();
5057
+ for (let e of E) e();
5058
+ });
5059
+ let j = shallowRef(!0);
5060
+ return n({
5061
+ scrollTop: y,
5062
+ scrollParent: v,
5063
+ async reloadList() {
5064
+ j.value = !1, w.clear(), await nextTick(), j.value = !0;
5065
+ }
5066
+ }), (n, r) => {
5067
+ let a = PullRefresh;
5068
+ return j.value ? (openBlock(), createBlock(a, {
5069
+ key: 0,
5070
+ modelValue: m.value,
5071
+ "onUpdate:modelValue": r[1] ||= (e) => m.value = e,
5072
+ class: normalizeClass(["relative h-full", i.class]),
5073
+ disabled: e.unReloadable || f.value.isRequesting || !!unref(y) && !p.value,
5074
+ onRefresh: h,
5075
+ onChange: r[2] ||= ({ distance: e }) => p.value = !!e,
5076
+ style: normalizeStyle(e.style)
5077
+ }, {
5078
+ default: withCtx(() => [createVNode(content_default, {
5079
+ retriable: "",
5080
+ source: unref(Stream).isStream(e.source) ? e.source : e.source.data,
5081
+ "class-loading": "mt-2 !h-[24px]",
5082
+ "class-empty": "!h-full",
5083
+ "class-error": "!h-full",
5084
+ class: "h-full overflow-auto w-full",
5085
+ onRetry: r[0] ||= (e) => f.value.retry(),
5086
+ onResetRetry: h,
5087
+ "hide-loading": p.value && f.value.isRequesting,
5088
+ ref_key: "content",
5089
+ ref: g
5090
+ }, {
5091
+ default: withCtx(() => [createVNode(unref(U), {
5092
+ items: f.value.data,
5093
+ gap: e.gap,
5094
+ padding: e.padding,
5095
+ "preload-screen-count": [0, 1],
5096
+ ref_key: "waterfallEl",
5097
+ ref: b,
5098
+ "calc-item-height": (n) => unref(w).get(n) ?? e.minHeight,
5099
+ class: "waterfall",
5100
+ "min-column-count": u.value[0],
5101
+ "max-column-count": u.value[1]
5102
+ }, {
5103
+ default: withCtx(({ item: r, index: i }) => [renderSlot(n.$slots, "default", {
5104
+ item: r,
5105
+ index: i,
5106
+ height: unref(w).get(r),
5107
+ length: f.value.length,
5108
+ minHeight: e.minHeight
5109
+ })]),
5110
+ _: 3
5111
+ }, 8, [
5112
+ "items",
5113
+ "gap",
5114
+ "padding",
5115
+ "calc-item-height",
5116
+ "min-column-count",
5117
+ "max-column-count"
5118
+ ])]),
5119
+ _: 3
5120
+ }, 8, ["source", "hide-loading"])]),
5121
+ _: 3
5122
+ }, 8, [
5123
+ "modelValue",
5124
+ "class",
5125
+ "disabled",
5126
+ "style"
5127
+ ])) : createCommentVNode("", !0);
5128
+ };
5077
5129
  }
5078
- avatar;
5079
- name;
5080
- id;
5081
- $$plugin;
5082
- };
5083
- let uni;
5084
- (function(e) {
5085
- e.user = user_exports, e.comment = comment_exports, e.content = content_exports, e.image = image_exports$1, e.item = item_exports, e.ep = ep_exports;
5086
- })(uni ||= {});
5087
- var translate_exports = /* @__PURE__ */ __export({ createDateString: () => createDateString }), import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min(), 1);
5130
+ }), translate_exports = /* @__PURE__ */ __export({ createDateString: () => createDateString }, 1), import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min(), 1);
5088
5131
  const createDateString = (e = (0, import_dayjs_min.default)()) => {
5089
5132
  let n = (0, import_dayjs_min.default)(), r = e.isSame(n, "year"), i = r && e.isSame(n, "month"), a = i && e.date() === n.date(), o = i && e.date() === n.date() - 1, s = "";
5090
5133
  return r || (s += "YYYY年 "), a ? s += "今天 " : o ? s += "昨天 " : s += "M月D日 ", s += "HH:mm", e.format(s);
@@ -5093,7 +5136,7 @@ var message_exports = /* @__PURE__ */ __export({
5093
5136
  createDialog: () => createDialog,
5094
5137
  createDownloadMessage: () => createDownloadMessage,
5095
5138
  createLoadingMessage: () => createLoadingMessage
5096
- });
5139
+ }, 1);
5097
5140
  function _isSlot(e) {
5098
5141
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
5099
5142
  }
@@ -5369,10 +5412,10 @@ const appConfig = new ConfigPointer("core", {
5369
5412
  if (isFunction(e)) var n = e(window.$$safe$$);
5370
5413
  else var n = e;
5371
5414
  console.log("[definePlugin] new plugin defining...", n);
5372
- let { name: r, content: i, image: a, search: o, user: s, subscribe: c, share: l } = n;
5415
+ let { name: r, content: i, resource: a, search: o, user: s, subscribe: c, share: l } = n;
5373
5416
  if (i) for (let [e, { commentRow: n, contentPage: r, itemCard: a, layout: o, itemTranslator: s }] of Object.entries(i)) o && ContentPage.viewLayout.set(e, o), a && Item.itemCard.set(e, a), r && ContentPage.contentPage.set(e, r), n && Comment.commentRow.set(e, n), s && Item.itemTranslator.set(e, s);
5374
5417
  if (a) {
5375
- if (a.forks) for (let [e, n] of Object.entries(a.forks)) Image$1.fork.set([r, e], n);
5418
+ if (a.types) for (let e of a.types) Image$1.fork.set([r, e.type], e);
5376
5419
  if (a.process) for (let [e, n] of Object.entries(a.process)) Image$1.processInstances.set([r, e], n);
5377
5420
  }
5378
5421
  if (o) {
@@ -5383,6 +5426,7 @@ const appConfig = new ConfigPointer("core", {
5383
5426
  for (let e of o.hotPage.levelBoard ?? []) ContentPage.addLevelboard(r, e);
5384
5427
  for (let e of o.hotPage.topButton ?? []) ContentPage.addTopButton(r, e);
5385
5428
  }
5429
+ if (o.barcode) for (let e of o.barcode ?? []) ContentPage.addBarcode(r, e);
5386
5430
  }
5387
5431
  if (s) {
5388
5432
  if (s.edit && User.userEditorBase.set(r, s.edit), s.authorActions) for (let [e, n] of Object.entries(s.authorActions)) User.authorActions.set([r, e], n);
@@ -5411,12 +5455,15 @@ const appConfig = new ConfigPointer("core", {
5411
5455
  }),
5412
5456
  version: {
5413
5457
  plugin: e.version.split("/")[0],
5414
- supportCore: e.version.split("/")[1]
5458
+ supportCore: (() => {
5459
+ let n = e.version.split("/")[1];
5460
+ return e.version.split("/")[2] ? n.replaceAll(">=", "^") : n;
5461
+ })()
5415
5462
  }
5416
5463
  }), declareDependType = (e) => Symbol.for(`expose:${e}`), requireDepend = (e) => _pluginExposes.get(e), _pluginExposes = /* @__PURE__ */ new Map(), coreModule = declareDependType("core"), _ = void 0;
5417
5464
  var package_default = {
5418
5465
  name: "delta-comic-core",
5419
- version: "0.3.3",
5466
+ version: "0.4.0",
5420
5467
  description: "我曾亲眼见证神的熟视无睹.",
5421
5468
  homepage: "https://github.com/wenxig/delta-comic-core",
5422
5469
  repository: {
@@ -5427,16 +5474,18 @@ var package_default = {
5427
5474
  type: "module",
5428
5475
  scripts: { build: "vite build && pnpm pack --out ./dist/pack.tgz" },
5429
5476
  dependencies: {
5430
- "@capacitor/status-bar": "^7.0.3",
5477
+ "@capacitor/status-bar": "^8.0.0",
5431
5478
  "@lhlyu/vue-virtual-waterfall": "^1.0.8",
5432
5479
  "@vant/use": "^1.6.0",
5433
5480
  "@vicons/antd": "^0.13.0",
5434
5481
  "@vicons/material": "^0.13.0",
5435
- "@vueuse/core": "14.0.0",
5436
- dayjs: "^1.11.18",
5482
+ "@vueuse/core": "14.1.0",
5483
+ dayjs: "^1.11.19",
5437
5484
  mitt: "^3.0.1",
5438
5485
  "tailwindcss-safe-area-capacitor": "^0.5.1",
5439
- vidstack: "^1.12.13"
5486
+ vidstack: "^1.12.13",
5487
+ "vite-plugin-external": "^6.2.2",
5488
+ "vite-plugin-monkey": "^7.1.8"
5440
5489
  },
5441
5490
  peerDependencies: {
5442
5491
  axios: "^1.12.2",
@@ -5450,18 +5499,18 @@ var package_default = {
5450
5499
  "vue-router": "4.6.3"
5451
5500
  },
5452
5501
  devDependencies: {
5453
- "@tailwindcss/vite": "^4.1.14",
5502
+ "@tailwindcss/vite": "^4.1.18",
5454
5503
  "@types/crypto-js": "^4.2.2",
5455
- "@types/node": "^24.8.1",
5456
- "@vitejs/plugin-vue": "^6.0.1",
5457
- "@vitejs/plugin-vue-jsx": "^5.1.1",
5458
- browserslist: "^4.26.3",
5504
+ "@types/node": "^25.0.3",
5505
+ "@vitejs/plugin-vue": "^6.0.3",
5506
+ "@vitejs/plugin-vue-jsx": "^5.1.2",
5507
+ browserslist: "^4.28.1",
5459
5508
  lightningcss: "^1.30.2",
5460
- tailwindcss: "^4.1.14",
5509
+ tailwindcss: "^4.1.18",
5461
5510
  "unplugin-vue-components": "30.0.0",
5462
- vite: "npm:rolldown-vite@^7.1.20",
5511
+ vite: "npm:rolldown-vite@^7.1.17",
5463
5512
  "vite-plugin-dts": "^4.5.4",
5464
- "vue-component-type-helpers": "^3.1.1"
5513
+ "vue-component-type-helpers": "^3.2.1"
5465
5514
  },
5466
5515
  files: ["dist"],
5467
5516
  main: "./dist/bundle.js",