sky-ui-kit 0.1.3 → 0.1.5

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.
@@ -1,67 +1,67 @@
1
- import * as o from "element-plus";
2
- import { ElSelectV2 as E3, ElIcon as n1, ElDatePicker as S3, ElTree as G2, ElEmpty as A3, ElButton as W1, ElSelect as b3, ElOption as N1, ElCheckbox as b2, ElInput as F3, ElSlider as U3 } from "element-plus";
3
- import { defineComponent as K, ref as S, h as F2, isVNode as P3, computed as p, onMounted as Q1, watch as W, openBlock as g, createElementBlock as V, normalizeStyle as D1, createElementVNode as L, createBlock as q, unref as x, mergeProps as G3, useSlots as I3, nextTick as p1, onBeforeUnmount as h2, normalizeClass as A, createVNode as T, withCtx as O, toDisplayString as B, renderSlot as R1, withKeys as j1, withModifiers as o1, Fragment as R, renderList as r1, createCommentVNode as Y, withDirectives as Y1, vModelText as I2, Transition as O3, resolveDynamicComponent as K1, vShow as O2, createTextVNode as x1 } from "vue";
4
- import { VideoPause as W3, VideoPlay as N3, ArrowLeft as j3, ArrowRight as Y3, RefreshRight as W2, ArrowDown as Q3, DataAnalysis as N2, Pouring as R3, List as d2, TrendCharts as U2, Sunny as K3, WindPower as J3, Search as q3, Monitor as X3, LocationFilled as _3, Grid as $3, Operation as C4, Aim as e4, Setting as t4, Mouse as l4, DArrowRight as o4, DArrowLeft as n4 } from "@element-plus/icons-vue";
5
- import { motion as v2 } from "motion-v";
6
- function i(n) {
7
- return K({
1
+ import * as c from "element-plus";
2
+ import { ElSelectV2 as J2, ElIcon as h1, ElDatePicker as D2, ElTree as q2, ElEmpty as Q3, ElButton as o2, ElSelect as X2, ElOption as J1, ElCheckbox as N2, ElInput as $2, ElSlider as K3, ElMessage as H2 } from "element-plus";
3
+ import { defineComponent as a1, ref as E, h as W2, isVNode as J3, computed as g, onMounted as P1, watch as l1, openBlock as o, createElementBlock as L, normalizeStyle as H1, createElementVNode as t, createBlock as n1, unref as H, mergeProps as q3, useSlots as e3, nextTick as T1, onBeforeUnmount as I1, normalizeClass as W, createVNode as U, withCtx as R, toDisplayString as D, renderSlot as f1, withKeys as a2, withModifiers as D1, Fragment as t1, renderList as r1, createCommentVNode as Y, withDirectives as _1, vModelText as C3, Transition as X3, resolveDynamicComponent as s2, vShow as q1, createTextVNode as k1, inject as $3, shallowRef as e4, vModelSelect as C4 } from "vue";
4
+ import { VideoPause as t4, VideoPlay as l4, ArrowLeft as n4, ArrowRight as o4, RefreshRight as t3, ArrowDown as l3, DataAnalysis as k2, Pouring as a4, List as x2, TrendCharts as j2, Sunny as r4, WindPower as s4, Search as n3, Monitor as i4, LocationFilled as c4, Grid as d4, Operation as L4, Aim as v4, Setting as g4, Mouse as u4, DArrowRight as h4, DArrowLeft as p4, Close as w4, Calendar as M4, SortDown as f4, SortUp as V4, Timer as m4, View as R2, Hide as Y2, ArrowUp as Z4 } from "@element-plus/icons-vue";
5
+ import { motion as y2 } from "motion-v";
6
+ function v(n) {
7
+ return a1({
8
8
  name: n == null ? void 0 : n.name,
9
9
  inheritAttrs: !1,
10
- setup(v, { attrs: t, slots: h, expose: w }) {
11
- const c = S();
12
- return w(new Proxy({}, { get: (Z, f) => {
10
+ setup(f, { attrs: C, slots: d, expose: i }) {
11
+ const r = E();
12
+ return i(new Proxy({}, { get: (m, M) => {
13
13
  var u;
14
- return (u = c.value) == null ? void 0 : u[f];
15
- }, has: (Z, f) => f in (c.value || {}) })), () => F2("div", { class: "userssite-theme", style: "display: contents" }, [F2(n, {
16
- ...t,
17
- ref: c,
18
- ...i4(n, t),
19
- class: ["userssite-theme", t.class]
20
- }, h)]);
14
+ return (u = r.value) == null ? void 0 : u[M];
15
+ }, has: (m, M) => M in (r.value || {}) })), () => W2("div", { class: "userssite-theme", style: "display: contents" }, [W2(n, {
16
+ ...C,
17
+ ref: r,
18
+ ...D4(n, C),
19
+ class: ["userssite-theme", C.class]
20
+ }, d)]);
21
21
  }
22
22
  });
23
23
  }
24
- const _6 = i(o.ElAffix), $6 = i(o.ElIcon), C5 = i(o.ElAlert), e5 = i(o.ElForm), t5 = i(o.ElFormItem), l5 = o.ElPopper, o5 = i(o.ElTooltip), n5 = i(o.ElInput), r5 = i(o.ElAutocomplete), i5 = i(o.ElAvatar), s5 = i(o.ElAvatarGroup), a5 = i(o.ElBacktop), L5 = i(o.ElBadge), c5 = i(o.ElBreadcrumb), d5 = i(o.ElBreadcrumbItem), v5 = o.ElConfigProvider, h5 = i(o.ElButton), g5 = i(o.ElButtonGroup), w5 = i(o.ElTimePicker), p5 = i(o.ElTag), M5 = i(o.ElSelect), u5 = o.ElOption, V5 = o.ElOptionGroup, f5 = i(o.ElCalendar), Z5 = i(o.ElCard), m5 = i(o.ElCarousel), H5 = o.ElCarouselItem, x5 = i(o.ElCheckbox), D5 = i(o.ElCheckboxButton), y5 = i(o.ElCheckboxGroup), z5 = i(o.ElRadio), k5 = i(o.ElRadioButton), B5 = i(o.ElRadioGroup), T5 = i(o.ElCascaderPanel), E5 = i(o.ElCascader), S5 = i(o.ElCheckTag), A5 = i(o.ElRow), b5 = i(o.ElCol), F5 = o.ElCollapseTransition, U5 = i(o.ElCollapse), P5 = i(o.ElCollapseItem), G5 = i(o.ElColorPickerPanel), I5 = i(o.ElColorPicker), O5 = i(o.ElContainer), W5 = i(o.ElAside), N5 = i(o.ElFooter), j5 = i(o.ElHeader), Y5 = i(o.ElMain), Q5 = i(o.ElStatistic), R5 = i(o.ElCountdown), K5 = i(o.ElDatePickerPanel), J5 = i(o.ElDatePicker), q5 = i(o.ElDescriptions), X5 = i(o.ElDescriptionsItem), _5 = i(o.ElDialog), $5 = i(o.ElDivider), C8 = i(o.ElDrawer), e8 = i(o.ElDropdown), t8 = i(o.ElDropdownItem), l8 = i(o.ElDropdownMenu), o8 = i(o.ElEmpty), n8 = i(o.ElImageViewer), r8 = i(o.ElImage), i8 = i(o.ElInputNumber), s8 = i(o.ElInputTag), a8 = i(o.ElInputOtp), L8 = i(o.ElLink), c8 = i(o.ElMenu), d8 = o.ElMenuItem, v8 = o.ElMenuItemGroup, h8 = o.ElSubMenu, g8 = i(o.ElPageHeader), w8 = i(o.ElPagination), p8 = i(o.ElPopconfirm), M8 = i(o.ElProgress), u8 = i(o.ElRate), V8 = i(o.ElResult), f8 = i(o.ElSelectV2), Z8 = i(o.ElSkeleton), m8 = o.ElSkeletonItem, H8 = i(o.ElSlider), x8 = i(o.ElSpace), D8 = i(o.ElSteps), y8 = o.ElStep, z8 = i(o.ElSwitch), k8 = i(o.ElTable), B8 = o.ElTableColumn, T8 = i(o.ElTableV2), E8 = o.ElAutoResizer, S8 = i(o.ElTabs), A8 = o.ElTabPane, b8 = i(o.ElText), F8 = i(o.ElTimeSelect), U8 = i(o.ElTimeline), P8 = o.ElTimelineItem, G8 = i(o.ElTransfer), I8 = i(o.ElTree), O8 = i(o.ElTreeSelect), W8 = i(o.ElTreeV2), N8 = i(o.ElUpload), j8 = i(o.ElWatermark), Y8 = i(o.ElTour), Q8 = o.ElTourStep, R8 = i(o.ElAnchor), K8 = o.ElAnchorLink, J8 = i(o.ElSegmented), q8 = i(o.ElMention), X8 = i(o.ElSplitter), _8 = o.ElSplitterPanel, $8 = i(o.ElPopover), C9 = J1(o.ElMessage), e9 = J1(o.ElMessageBox), t9 = J1(o.ElNotification), r4 = {
25
- ...o.ElLoadingDirective,
26
- mounted(n, v, t, h) {
27
- var w, c;
28
- n.classList.add("userssite-theme"), (c = (w = o.ElLoadingDirective).mounted) == null || c.call(w, n, P2(n, v), t, h);
29
- },
30
- updated(n, v, t, h) {
31
- var w, c;
32
- (c = (w = o.ElLoadingDirective).updated) == null || c.call(w, n, P2(n, v), t, h);
24
+ const p9 = v(c.ElAffix), w9 = v(c.ElIcon), M9 = v(c.ElAlert), f9 = v(c.ElForm), V9 = v(c.ElFormItem), m9 = c.ElPopper, Z9 = v(c.ElTooltip), H4 = v(c.ElInput), H9 = v(c.ElAutocomplete), x9 = v(c.ElAvatar), y9 = v(c.ElAvatarGroup), D9 = v(c.ElBacktop), k9 = v(c.ElBadge), b9 = v(c.ElBreadcrumb), z9 = v(c.ElBreadcrumbItem), S9 = c.ElConfigProvider, r2 = v(c.ElButton), T9 = v(c.ElButtonGroup), B9 = v(c.ElTimePicker), A9 = v(c.ElTag), E9 = v(c.ElSelect), F9 = c.ElOption, _9 = c.ElOptionGroup, P9 = v(c.ElCalendar), U9 = v(c.ElCard), G9 = v(c.ElCarousel), I9 = c.ElCarouselItem, x4 = v(c.ElCheckbox), O9 = v(c.ElCheckboxButton), N9 = v(c.ElCheckboxGroup), W9 = v(c.ElRadio), j9 = v(c.ElRadioButton), R9 = v(c.ElRadioGroup), Y9 = v(c.ElCascaderPanel), Q9 = v(c.ElCascader), K9 = v(c.ElCheckTag), J9 = v(c.ElRow), q9 = v(c.ElCol), X9 = c.ElCollapseTransition, $9 = v(c.ElCollapse), e7 = v(c.ElCollapseItem), C7 = v(c.ElColorPickerPanel), t7 = v(c.ElColorPicker), l7 = v(c.ElContainer), n7 = v(c.ElAside), o7 = v(c.ElFooter), a7 = v(c.ElHeader), r7 = v(c.ElMain), s7 = v(c.ElStatistic), i7 = v(c.ElCountdown), c7 = v(c.ElDatePickerPanel), d7 = v(c.ElDatePicker), L7 = v(c.ElDescriptions), v7 = v(c.ElDescriptionsItem), g7 = v(c.ElDialog), u7 = v(c.ElDivider), h7 = v(c.ElDrawer), p7 = v(c.ElDropdown), w7 = v(c.ElDropdownItem), M7 = v(c.ElDropdownMenu), f7 = v(c.ElEmpty), V7 = v(c.ElImageViewer), m7 = v(c.ElImage), Z7 = v(c.ElInputNumber), H7 = v(c.ElInputTag), x7 = v(c.ElInputOtp), y7 = v(c.ElLink), D7 = v(c.ElMenu), k7 = c.ElMenuItem, b7 = c.ElMenuItemGroup, z7 = c.ElSubMenu, S7 = v(c.ElPageHeader), T7 = v(c.ElPagination), B7 = v(c.ElPopconfirm), A7 = v(c.ElProgress), E7 = v(c.ElRate), F7 = v(c.ElResult), _7 = v(c.ElSelectV2), P7 = v(c.ElSkeleton), U7 = c.ElSkeletonItem, G7 = v(c.ElSlider), I7 = v(c.ElSpace), O7 = v(c.ElSteps), N7 = c.ElStep, W7 = v(c.ElSwitch), j7 = v(c.ElTable), R7 = c.ElTableColumn, Y7 = v(c.ElTableV2), Q7 = c.ElAutoResizer, K7 = v(c.ElTabs), J7 = c.ElTabPane, q7 = v(c.ElText), X7 = v(c.ElTimeSelect), $7 = v(c.ElTimeline), e0 = c.ElTimelineItem, C0 = v(c.ElTransfer), t0 = v(c.ElTree), l0 = v(c.ElTreeSelect), n0 = v(c.ElTreeV2), o0 = v(c.ElUpload), a0 = v(c.ElWatermark), r0 = v(c.ElTour), s0 = c.ElTourStep, i0 = v(c.ElAnchor), c0 = c.ElAnchorLink, d0 = v(c.ElSegmented), L0 = v(c.ElMention), v0 = v(c.ElSplitter), g0 = c.ElSplitterPanel, u0 = v(c.ElPopover), h0 = i2(c.ElMessage), p0 = i2(c.ElMessageBox), w0 = i2(c.ElNotification), y4 = {
25
+ ...c.ElLoadingDirective,
26
+ mounted(n, f, C, d) {
27
+ var i, r;
28
+ n.classList.add("userssite-theme"), (r = (i = c.ElLoadingDirective).mounted) == null || r.call(i, n, Q2(n, f), C, d);
29
+ },
30
+ updated(n, f, C, d) {
31
+ var i, r;
32
+ (r = (i = c.ElLoadingDirective).updated) == null || r.call(i, n, Q2(n, f), C, d);
33
33
  }
34
34
  };
35
- function P2(n, v) {
36
- if (!v.value)
37
- return v;
38
- const t = typeof v.value == "object" ? v.value : Object.fromEntries(["text", "svg", "svgViewBox", "spinner", "background"].map((h) => [h, n.getAttribute("element-loading-" + h.replace(/[A-Z]/g, (w) => "-" + w.toLowerCase()))]));
39
- return { ...v, value: { ...t, customClass: ["userssite-theme", t.customClass || n.getAttribute("element-loading-custom-class") || ""].join(" ") } };
35
+ function Q2(n, f) {
36
+ if (!f.value)
37
+ return f;
38
+ const C = typeof f.value == "object" ? f.value : Object.fromEntries(["text", "svg", "svgViewBox", "spinner", "background"].map((d) => [d, n.getAttribute("element-loading-" + d.replace(/[A-Z]/g, (i) => "-" + i.toLowerCase()))]));
39
+ return { ...f, value: { ...C, customClass: ["userssite-theme", C.customClass || n.getAttribute("element-loading-custom-class") || ""].join(" ") } };
40
40
  }
41
- const l9 = o.ElInfiniteScroll, o9 = o.ElPopoverDirective, n9 = {
42
- service: J1(o.ElLoading.service),
43
- directive: r4
41
+ const M0 = c.ElInfiniteScroll, f0 = c.ElPopoverDirective, V0 = {
42
+ service: i2(c.ElLoading.service),
43
+ directive: y4
44
44
  };
45
- function i4(n, v) {
46
- const t = n.props || {}, h = {}, w = (c) => Array.isArray(t) ? t.includes(c) : c in t;
47
- w("teleported") && (h.teleported = v.teleported ?? !1);
48
- for (const c of ["popperClass", "modalClass"])
49
- w(c) && (h[c] = ["userssite-theme", v[c] || v[c.replace(/[A-Z]/g, (Z) => "-" + Z.toLowerCase())] || ""].join(" "));
50
- return h;
45
+ function D4(n, f) {
46
+ const C = n.props || {}, d = {}, i = (r) => Array.isArray(C) ? C.includes(r) : r in C;
47
+ i("teleported") && (d.teleported = f.teleported ?? !1);
48
+ for (const r of ["popperClass", "modalClass"])
49
+ i(r) && (d[r] = ["userssite-theme", f[r] || f[r.replace(/[A-Z]/g, (m) => "-" + m.toLowerCase())] || ""].join(" "));
50
+ return d;
51
51
  }
52
- function J1(n) {
53
- const v = (t) => ({ ...typeof t == "object" && t !== null && !P3(t) ? t : { message: t }, customClass: ["userssite-theme", (t == null ? void 0 : t.customClass) || ""].join(" ") });
52
+ function i2(n) {
53
+ const f = (C) => ({ ...typeof C == "object" && C !== null && !J3(C) ? C : { message: C }, customClass: ["userssite-theme", (C == null ? void 0 : C.customClass) || ""].join(" ") });
54
54
  return new Proxy(n, {
55
- apply(t, h, w) {
56
- return Reflect.apply(t, h, [v(w[0]), ...w.slice(1)]);
55
+ apply(C, d, i) {
56
+ return Reflect.apply(C, d, [f(i[0]), ...i.slice(1)]);
57
57
  },
58
- get(t, h) {
59
- const w = t[h];
60
- return ["success", "warning", "info", "error"].includes(String(h)) ? (c) => w(v(c)) : ["alert", "confirm", "prompt"].includes(String(h)) ? (c, Z, f) => typeof Z == "string" ? w(c, Z, v(f || {})) : w(c, v(Z || {})) : w;
58
+ get(C, d) {
59
+ const i = C[d];
60
+ return ["success", "warning", "info", "error"].includes(String(d)) ? (r) => i(f(r)) : ["alert", "confirm", "prompt"].includes(String(d)) ? (r, m, M) => typeof m == "string" ? i(r, m, f(M || {})) : i(r, f(m || {})) : i;
61
61
  }
62
62
  });
63
63
  }
64
- const s4 = [
64
+ const k4 = [
65
65
  {
66
66
  name: "3d",
67
67
  category: "通用与业务",
@@ -3259,51 +3259,51 @@ const s4 = [
3259
3259
  `
3260
3260
  }
3261
3261
  ];
3262
- function a4(n, v) {
3263
- var c;
3264
- const t = v ?? (typeof document > "u" ? void 0 : document);
3265
- if (!t)
3262
+ function b4(n, f) {
3263
+ var r;
3264
+ const C = f ?? (typeof document > "u" ? void 0 : document);
3265
+ if (!C)
3266
3266
  return;
3267
- const h = "http://www.w3.org/2000/svg";
3268
- let w = t.getElementById("sky-ui-kit-icon-sprite");
3269
- w || (w = t.createElementNS(h, "svg"), w.id = "sky-ui-kit-icon-sprite", w.setAttribute("aria-hidden", "true"), w.setAttribute("style", "position:absolute;width:0;height:0;overflow:hidden;pointer-events:none"), (t.body || t.documentElement).appendChild(w));
3270
- for (const Z of s4) {
3271
- if (n && !n.includes(Z.name))
3267
+ const d = "http://www.w3.org/2000/svg";
3268
+ let i = C.getElementById("sky-ui-kit-icon-sprite");
3269
+ i || (i = C.createElementNS(d, "svg"), i.id = "sky-ui-kit-icon-sprite", i.setAttribute("aria-hidden", "true"), i.setAttribute("style", "position:absolute;width:0;height:0;overflow:hidden;pointer-events:none"), (C.body || C.documentElement).appendChild(i));
3270
+ for (const m of k4) {
3271
+ if (n && !n.includes(m.name))
3272
3272
  continue;
3273
- const f = `sky-icon-${Z.name}`;
3274
- if (t.getElementById(f))
3273
+ const M = `sky-icon-${m.name}`;
3274
+ if (C.getElementById(M))
3275
3275
  continue;
3276
- const u = new (((c = t.defaultView) == null ? void 0 : c.DOMParser) ?? DOMParser)().parseFromString(Z.svg, "image/svg+xml"), s = u.documentElement;
3276
+ const u = new (((r = C.defaultView) == null ? void 0 : r.DOMParser) ?? DOMParser)().parseFromString(m.svg, "image/svg+xml"), s = u.documentElement;
3277
3277
  if (s.localName !== "svg" || u.querySelector("parsererror"))
3278
3278
  continue;
3279
- const a = t.createElementNS(h, "symbol");
3280
- a.id = f, a.setAttribute("viewBox", s.getAttribute("viewBox") || `0 0 ${s.getAttribute("width") || 24} ${s.getAttribute("height") || 24}`);
3281
- for (const y of ["fill", "stroke", "stroke-width", "fill-rule"])
3282
- s.hasAttribute(y) && a.setAttribute(y, s.getAttribute(y));
3283
- const m = /* @__PURE__ */ new Map();
3284
- s.querySelectorAll("[id]").forEach((y) => m.set(y.id, `${f}-${y.id}`)), s.querySelectorAll("*").forEach((y) => {
3285
- if (["script", "foreignObject", "style", "image", "animate", "set"].includes(y.localName)) {
3286
- y.remove();
3279
+ const w = C.createElementNS(d, "symbol");
3280
+ w.id = M, w.setAttribute("viewBox", s.getAttribute("viewBox") || `0 0 ${s.getAttribute("width") || 24} ${s.getAttribute("height") || 24}`);
3281
+ for (const T of ["fill", "stroke", "stroke-width", "fill-rule"])
3282
+ s.hasAttribute(T) && w.setAttribute(T, s.getAttribute(T));
3283
+ const x = /* @__PURE__ */ new Map();
3284
+ s.querySelectorAll("[id]").forEach((T) => x.set(T.id, `${M}-${T.id}`)), s.querySelectorAll("*").forEach((T) => {
3285
+ if (["script", "foreignObject", "style", "image", "animate", "set"].includes(T.localName)) {
3286
+ T.remove();
3287
3287
  return;
3288
3288
  }
3289
- for (const Q of Array.from(y.attributes)) {
3290
- if (/^on/i.test(Q.name) || Q.localName === "href" && !Q.value.startsWith("#")) {
3291
- y.removeAttributeNode(Q);
3289
+ for (const G of Array.from(T.attributes)) {
3290
+ if (/^on/i.test(G.name) || G.localName === "href" && !G.value.startsWith("#")) {
3291
+ T.removeAttributeNode(G);
3292
3292
  continue;
3293
3293
  }
3294
- let z = Q.value;
3295
- Q.name === "id" && (z = m.get(z) || z);
3296
- for (const [G, P] of m)
3297
- z = z.split(`url(#${G})`).join(`url(#${P})`), z === `#${G}` && (z = `#${P}`);
3298
- Q.value = z;
3294
+ let F = G.value;
3295
+ G.name === "id" && (F = x.get(F) || F);
3296
+ for (const [J, O] of x)
3297
+ F = F.split(`url(#${J})`).join(`url(#${O})`), F === `#${J}` && (F = `#${O}`);
3298
+ G.value = F;
3299
3299
  }
3300
3300
  });
3301
- for (const y of Array.from(s.childNodes))
3302
- a.appendChild(t.importNode(y, !0));
3303
- w.appendChild(a);
3301
+ for (const T of Array.from(s.childNodes))
3302
+ w.appendChild(C.importNode(T, !0));
3303
+ i.appendChild(w);
3304
3304
  }
3305
3305
  }
3306
- const L4 = ["role", "aria-label", "aria-hidden"], c4 = ["href"], d4 = /* @__PURE__ */ K({
3306
+ const z4 = ["role", "aria-label", "aria-hidden"], S4 = ["href"], T4 = /* @__PURE__ */ a1({
3307
3307
  __name: "SvgIcon",
3308
3308
  props: {
3309
3309
  name: {},
@@ -3314,31 +3314,31 @@ const L4 = ["role", "aria-label", "aria-hidden"], c4 = ["href"], d4 = /* @__PURE
3314
3314
  prefix: { default: "sky-icon-" }
3315
3315
  },
3316
3316
  setup(n) {
3317
- const v = n, t = S(), h = p(() => ({ width: typeof v.size == "number" ? `calc(var(--cp-font-1, 1px) * ${v.size})` : v.size, height: typeof v.size == "number" ? `calc(var(--cp-font-1, 1px) * ${v.size})` : v.size, color: v.color }));
3318
- function w() {
3319
- v.prefix === "sky-icon-" && t.value && a4([v.name], t.value.ownerDocument);
3317
+ const f = n, C = E(), d = g(() => ({ width: typeof f.size == "number" ? `calc(var(--cp-font-1, 1px) * ${f.size})` : f.size, height: typeof f.size == "number" ? `calc(var(--cp-font-1, 1px) * ${f.size})` : f.size, color: f.color }));
3318
+ function i() {
3319
+ f.prefix === "sky-icon-" && C.value && b4([f.name], C.value.ownerDocument);
3320
3320
  }
3321
- return Q1(w), W(() => [v.name, v.prefix], w, { flush: "post" }), (c, Z) => (g(), V("svg", {
3321
+ return P1(i), l1(() => [f.name, f.prefix], i, { flush: "post" }), (r, m) => (o(), L("svg", {
3322
3322
  ref_key: "element",
3323
- ref: t,
3323
+ ref: C,
3324
3324
  class: "sky-svg-icon",
3325
- style: D1(h.value),
3325
+ style: H1(d.value),
3326
3326
  role: n.decorative ? void 0 : "img",
3327
3327
  "aria-label": n.decorative ? void 0 : n.title || n.name,
3328
3328
  "aria-hidden": n.decorative ? "true" : void 0
3329
3329
  }, [
3330
- L("use", {
3330
+ t("use", {
3331
3331
  href: `#${n.prefix}${n.name}`
3332
- }, null, 8, c4)
3333
- ], 12, L4));
3332
+ }, null, 8, S4)
3333
+ ], 12, z4));
3334
3334
  }
3335
3335
  });
3336
- const c1 = (n, v) => {
3337
- const t = n.__vccOpts || n;
3338
- for (const [h, w] of v)
3339
- t[h] = w;
3340
- return t;
3341
- }, v4 = /* @__PURE__ */ c1(d4, [["__scopeId", "data-v-4a568193"]]), h4 = /* @__PURE__ */ K({
3336
+ const p1 = (n, f) => {
3337
+ const C = n.__vccOpts || n;
3338
+ for (const [d, i] of f)
3339
+ C[d] = i;
3340
+ return C;
3341
+ }, B4 = /* @__PURE__ */ p1(T4, [["__scopeId", "data-v-4a568193"]]), A4 = /* @__PURE__ */ a1({
3342
3342
  __name: "AppSelect",
3343
3343
  props: {
3344
3344
  modelValue: { type: [String, Number, Boolean, Object, Array, null], default: void 0 },
@@ -3348,49 +3348,49 @@ const c1 = (n, v) => {
3348
3348
  teleported: { type: Boolean, default: !1 }
3349
3349
  },
3350
3350
  emits: ["update:modelValue", "change"],
3351
- setup(n, { emit: v }) {
3352
- const t = n, h = v, w = p(() => t.options.map((u) => typeof u == "object" && u !== null ? {
3351
+ setup(n, { emit: f }) {
3352
+ const C = n, d = f, i = g(() => C.options.map((u) => typeof u == "object" && u !== null ? {
3353
3353
  label: u.label,
3354
3354
  value: u.value,
3355
3355
  disabled: u.disabled
3356
3356
  } : {
3357
3357
  label: String(u),
3358
3358
  value: u
3359
- })), c = p(() => ["userssite-app-select-popper", t.popperClass].filter(Boolean).join(" ")), Z = (u) => {
3360
- h("update:modelValue", u);
3361
- }, f = (u) => {
3362
- h("change", u);
3359
+ })), r = g(() => ["userssite-app-select-popper", C.popperClass].filter(Boolean).join(" ")), m = (u) => {
3360
+ d("update:modelValue", u);
3361
+ }, M = (u) => {
3362
+ d("change", u);
3363
3363
  };
3364
- return (u, s) => (g(), q(x(E3), G3(u.$attrs, {
3364
+ return (u, s) => (o(), n1(H(J2), q3(u.$attrs, {
3365
3365
  class: "userssite-app-select",
3366
3366
  "model-value": n.modelValue,
3367
- options: w.value,
3367
+ options: i.value,
3368
3368
  "no-data-text": n.emptyLabel,
3369
3369
  "no-match-text": n.emptyLabel,
3370
- "popper-class": c.value,
3370
+ "popper-class": r.value,
3371
3371
  teleported: n.teleported,
3372
- "onUpdate:modelValue": Z,
3373
- onChange: f
3372
+ "onUpdate:modelValue": m,
3373
+ onChange: M
3374
3374
  }), null, 16, ["model-value", "options", "no-data-text", "no-match-text", "popper-class", "teleported"]));
3375
3375
  }
3376
3376
  });
3377
- const g4 = { class: "timeline-controls" }, w4 = ["aria-label"], p4 = {
3377
+ const E4 = { class: "timeline-controls" }, F4 = ["aria-label"], _4 = {
3378
3378
  class: "timeline-button-group",
3379
3379
  role: "group",
3380
3380
  "aria-label": "时间步进"
3381
- }, M4 = {
3381
+ }, P4 = {
3382
3382
  key: 0,
3383
3383
  class: "timeline-date-slot"
3384
- }, u4 = { class: "timeline-body" }, V4 = ["aria-valuemax", "aria-valuenow", "aria-valuetext"], f4 = ["title", "disabled", "onClick"], Z4 = { class: "timeline-segment-label" }, m4 = {
3384
+ }, U4 = { class: "timeline-body" }, G4 = ["aria-valuemax", "aria-valuenow", "aria-valuetext"], I4 = ["title", "disabled", "onClick"], O4 = { class: "timeline-segment-label" }, N4 = {
3385
3385
  key: 1,
3386
3386
  class: "timeline-scale"
3387
- }, H4 = { class: "timeline-scale-item timeline-scale-window-start is-forecast" }, x4 = { class: "timeline-scale-item timeline-scale-window-end is-forecast" }, D4 = {
3387
+ }, W4 = { class: "timeline-scale-item timeline-scale-window-start is-forecast" }, j4 = { class: "timeline-scale-item timeline-scale-window-end is-forecast" }, R4 = {
3388
3388
  key: 0,
3389
3389
  class: "timeline-scale-item timeline-scale-observed"
3390
- }, y4 = {
3390
+ }, Y4 = {
3391
3391
  key: 2,
3392
3392
  class: "timeline-scale-item timeline-scale-forecast"
3393
- }, z4 = /* @__PURE__ */ K({
3393
+ }, Q4 = /* @__PURE__ */ a1({
3394
3394
  __name: "MapTimeline",
3395
3395
  props: {
3396
3396
  modelValue: { default: 0 },
@@ -3415,730 +3415,730 @@ const g4 = { class: "timeline-controls" }, w4 = ["aria-label"], p4 = {
3415
3415
  timeZone: {}
3416
3416
  },
3417
3417
  emits: ["update:modelValue", "update:startTime", "update:playing", "update:speed", "change", "play", "pause"],
3418
- setup(n, { emit: v }) {
3419
- const t = n, h = v, w = I3(), c = S(null), Z = /* @__PURE__ */ new Map(), f = S(t.playing), u = S(t.speed), s = S(0), a = S(null), m = S(t.startTime), y = S(""), Q = S("");
3420
- let z = null, G = null, P = 0, C1 = !1;
3421
- const M1 = p(() => !!w["date-select"]), b = p(() => e2(m.value)), _ = p(() => Math.max(1, t.interval)), y1 = p(() => P1(t.minTime)), z1 = p(() => P1(t.maxTime)), e1 = p(() => Math.max(1, Math.floor(Number(t.pageSize) || 24))), i1 = p(() => !Array.isArray(t.points) || !t.points.length ? [] : t.points.map((C, e) => {
3422
- const l = e2(C.time || C.value || t.startTime);
3418
+ setup(n, { emit: f }) {
3419
+ const C = n, d = f, i = e3(), r = E(null), m = /* @__PURE__ */ new Map(), M = E(C.playing), u = E(C.speed), s = E(0), w = E(null), x = E(C.startTime), T = E(""), G = E("");
3420
+ let F = null, J = null, O = 0, s1 = !1;
3421
+ const _ = g(() => !!i["date-select"]), Z = g(() => v2(x.value)), j = g(() => Math.max(1, C.interval)), I = g(() => C2(C.minTime)), o1 = g(() => C2(C.maxTime)), q = g(() => Math.max(1, Math.floor(Number(C.pageSize) || 24))), i1 = g(() => !Array.isArray(C.points) || !C.points.length ? [] : C.points.map((e, l) => {
3422
+ const a = v2(e.time || e.value || C.startTime);
3423
3423
  return {
3424
- index: typeof C.index == "number" ? C.index : e,
3425
- offset: typeof C.offset == "number" ? C.offset : e,
3426
- time: l,
3427
- value: C.value || l.toISOString(),
3428
- label: C.label || B1(l, t.unit),
3429
- kind: C.kind || "forecast",
3430
- disabled: !!C.disabled || t2(l)
3424
+ index: typeof e.index == "number" ? e.index : l,
3425
+ offset: typeof e.offset == "number" ? e.offset : l,
3426
+ time: a,
3427
+ value: e.value || a.toISOString(),
3428
+ label: e.label || Q1(a, C.unit),
3429
+ kind: e.kind || "forecast",
3430
+ disabled: !!e.disabled || g2(a)
3431
3431
  };
3432
- })), F = p(() => i1.value.length > 0), E1 = p(() => {
3432
+ })), Q = g(() => i1.value.length > 0), b1 = g(() => {
3433
3433
  if (!i1.value.length)
3434
3434
  return;
3435
- const C = i1.value.map((e) => e.time.getTime());
3435
+ const e = i1.value.map((l) => l.time.getTime());
3436
3436
  return {
3437
- min: new Date(Math.min(...C)),
3438
- max: new Date(Math.max(...C))
3437
+ min: new Date(Math.min(...e)),
3438
+ max: new Date(Math.max(...e))
3439
3439
  };
3440
- }), s1 = p(() => {
3441
- var C;
3442
- return P1(t.minTime) || ((C = E1.value) == null ? void 0 : C.min);
3443
- }), g1 = p(() => {
3444
- var C;
3445
- return P1(t.maxTime) || ((C = E1.value) == null ? void 0 : C.max) || b.value;
3446
- }), d1 = p(() => !F.value && (t.unit === "minute" && _.value === 60 || t.unit === "hour" && _.value === 1)), a1 = p(() => !F.value && t.unit === "day" && _.value >= 10 && _.value <= 11), t1 = p(() => !F.value && t.unit === "day" && !a1.value), w1 = p(() => !F.value && t.unit === "month"), $ = p(() => d1.value || t1.value || w1.value || a1.value), S1 = p(() => Math.min(Math.max(b.value.getHours(), 0), 23)), q1 = p(() => Math.min(Math.max(b.value.getDate() - 1, 0), o2(b.value) - 1)), A1 = p(() => Math.min(Math.max(b.value.getMonth(), 0), 11)), H = p(() => D2(b.value)), D = p(() => d1.value ? S1.value : t1.value ? q1.value : w1.value ? A1.value : a1.value ? H.value : 0), I = p(() => d1.value ? 24 : t1.value ? o2(b.value) : w1.value ? 12 : a1.value ? 3 : 0), J = p(() => Math.max(0, s.value) * e1.value), g2 = p(() => Math.max(1, Math.ceil(i1.value.length / e1.value))), U = p(() => F.value ? 0 : $.value ? D.value : typeof t.pastSteps == "number" ? Math.max(0, t.pastSteps) : Math.floor((Math.max(1, t.steps) - 1) / 2)), v1 = p(() => F.value ? Math.min(e1.value, i1.value.length) : $.value ? Math.max(0, I.value - D.value - 1) : typeof t.futureSteps == "number" ? Math.max(0, t.futureSteps) : Math.max(0, Math.max(1, t.steps) - U.value - 1)), f1 = p(() => !F.value && U.value > 0 && v1.value > 0), X1 = p(() => $.value ? I.value : Math.max(1, U.value + v1.value + (f1.value ? 1 : 0))), b1 = p(() => !F.value), k = p(() => {
3447
- if (F.value)
3448
- return i1.value.slice(J.value, J.value + e1.value);
3449
- if ($.value)
3450
- return Array.from({ length: I.value }, (e, l) => {
3451
- const r = v3(l), d = l <= D.value ? "observed" : "forecast";
3440
+ }), c1 = g(() => {
3441
+ var e;
3442
+ return C2(C.minTime) || ((e = b1.value) == null ? void 0 : e.min);
3443
+ }), g1 = g(() => {
3444
+ var e;
3445
+ return C2(C.maxTime) || ((e = b1.value) == null ? void 0 : e.max) || Z.value;
3446
+ }), d1 = g(() => !Q.value && (C.unit === "minute" && j.value === 60 || C.unit === "hour" && j.value === 1)), M1 = g(() => !Q.value && C.unit === "day" && j.value >= 10 && j.value <= 11), h = g(() => !Q.value && C.unit === "day" && !M1.value), k = g(() => !Q.value && C.unit === "month"), b = g(() => d1.value || h.value || k.value || M1.value), w1 = g(() => Math.min(Math.max(Z.value.getHours(), 0), 23)), X = g(() => Math.min(Math.max(Z.value.getDate() - 1, 0), h2(Z.value) - 1)), L1 = g(() => Math.min(Math.max(Z.value.getMonth(), 0), 11)), A = g(() => A2(Z.value)), P = g(() => d1.value ? w1.value : h.value ? X.value : k.value ? L1.value : M1.value ? A.value : 0), N = g(() => d1.value ? 24 : h.value ? h2(Z.value) : k.value ? 12 : M1.value ? 3 : 0), e1 = g(() => Math.max(0, s.value) * q.value), m1 = g(() => Math.max(1, Math.ceil(i1.value.length / q.value))), $ = g(() => Q.value ? 0 : b.value ? P.value : typeof C.pastSteps == "number" ? Math.max(0, C.pastSteps) : Math.floor((Math.max(1, C.steps) - 1) / 2)), x1 = g(() => Q.value ? Math.min(q.value, i1.value.length) : b.value ? Math.max(0, N.value - P.value - 1) : typeof C.futureSteps == "number" ? Math.max(0, C.futureSteps) : Math.max(0, Math.max(1, C.steps) - $.value - 1)), E1 = g(() => !Q.value && $.value > 0 && x1.value > 0), R1 = g(() => b.value ? N.value : Math.max(1, $.value + x1.value + (E1.value ? 1 : 0))), O1 = g(() => !Q.value), K = g(() => {
3447
+ if (Q.value)
3448
+ return i1.value.slice(e1.value, e1.value + q.value);
3449
+ if (b.value)
3450
+ return Array.from({ length: N.value }, (l, a) => {
3451
+ const p = b3(a), y = a <= P.value ? "observed" : "forecast";
3452
3452
  return {
3453
- index: l,
3454
- offset: l - D.value,
3455
- time: r,
3456
- value: r.toISOString(),
3457
- label: B1(r, t.unit),
3458
- kind: d,
3459
- disabled: t2(r)
3453
+ index: a,
3454
+ offset: a - P.value,
3455
+ time: p,
3456
+ value: p.toISOString(),
3457
+ label: Q1(p, C.unit),
3458
+ kind: y,
3459
+ disabled: g2(p)
3460
3460
  };
3461
3461
  });
3462
- const C = X1.value;
3463
- return Array.from({ length: C }, (e, l) => {
3464
- const r = r3(l), d = h1(b.value, _.value * r, t.unit), M = i3(l);
3462
+ const e = R1.value;
3463
+ return Array.from({ length: e }, (l, a) => {
3464
+ const p = m3(a), y = S1(Z.value, j.value * p, C.unit), S = Z3(a);
3465
3465
  return {
3466
- index: l,
3467
- offset: r,
3468
- time: d,
3469
- value: d.toISOString(),
3470
- label: B1(d, t.unit),
3471
- kind: M,
3472
- disabled: t2(d)
3466
+ index: a,
3467
+ offset: p,
3468
+ time: y,
3469
+ value: y.toISOString(),
3470
+ label: Q1(y, C.unit),
3471
+ kind: S,
3472
+ disabled: g2(y)
3473
3473
  };
3474
3474
  });
3475
- }), u1 = p(() => {
3476
- var e, l, r;
3477
- if (F.value) {
3478
- const d = k.value.findIndex((E) => E.index === t.modelValue), M = d >= 0 ? d : Math.min(Math.max(Number(t.modelValue) - J.value, 0), k.value.length - 1);
3479
- return (e = k.value[M]) != null && e.disabled ? l1(M) : M;
3475
+ }), B1 = g(() => {
3476
+ var l, a, p;
3477
+ if (Q.value) {
3478
+ const y = K.value.findIndex((C1) => C1.index === C.modelValue), S = y >= 0 ? y : Math.min(Math.max(Number(C.modelValue) - e1.value, 0), K.value.length - 1);
3479
+ return (l = K.value[S]) != null && l.disabled ? y1(S) : S;
3480
3480
  }
3481
- if ($.value) {
3482
- const d = Number(t.modelValue), M = Math.min(Math.max(Number.isFinite(d) ? d : D.value, 0), I.value - 1);
3483
- return (l = k.value[M]) != null && l.disabled ? l1(M) : M;
3481
+ if (b.value) {
3482
+ const y = Number(C.modelValue), S = Math.min(Math.max(Number.isFinite(y) ? y : P.value, 0), N.value - 1);
3483
+ return (a = K.value[S]) != null && a.disabled ? y1(S) : S;
3484
3484
  }
3485
- const C = Math.min(Math.max(t.modelValue, 0), k.value.length - 1);
3486
- return (r = k.value[C]) != null && r.disabled ? l1(C) : C;
3487
- }), w2 = p(() => Math.max(k.value.length - 1, 0)), V1 = p(() => Math.min(Math.max(Math.floor(u1.value), 0), w2.value)), F1 = p(() => Math.min(Math.max(u1.value, 0), w2.value)), Z1 = p(() => k.value[V1.value]), p2 = p(() => {
3488
- var C;
3489
- return ((C = Z1.value) == null ? void 0 : C.label) || "";
3490
- }), M2 = p(() => {
3491
- var C;
3492
- return ((C = Z1.value) == null ? void 0 : C.kind) || "forecast";
3493
- }), j2 = p(() => t.unit === "year" ? "year" : t.unit === "month" ? "month" : t.unit === "day" ? "date" : "datetime"), Y2 = p(() => t.unit === "year" ? "YYYY" : t.unit === "month" ? "YYYY-MM" : t.unit === "day" ? "MM-DD" : "YYYY-MM-DD HH:mm"), u2 = p(() => s.value === 0), V2 = p(() => t.showScale), Q2 = p(() => !!((y1.value || z1.value) && (typeof t.forecastCount == "number" && Number.isFinite(t.forecastCount) && t.forecastCount > 0 || F.value))), R2 = p(() => k2(y1.value)), K2 = p(() => k2(z1.value)), J2 = p(() => k.value.some((C) => C.kind === "observed")), q2 = p(() => k.value.some((C) => C.kind === "forecast")), _1 = p(() => t.showCurrentMarker && u2.value && U.value > 0 && v1.value > 0), X2 = p(() => {
3494
- var C;
3495
- return ((C = k.value.find((e) => e.kind === "observed")) == null ? void 0 : C.label) || "";
3496
- }), _2 = p(() => B1(b.value, t.unit)), $2 = p(() => {
3497
- var C;
3498
- return ((C = [...k.value].reverse().find((e) => e.kind === "forecast")) == null ? void 0 : C.label) || "";
3499
- }), C3 = p(() => {
3500
- var C;
3501
- return ((C = k.value[0]) == null ? void 0 : C.label) || "";
3502
- }), e3 = p(() => {
3503
- var C;
3504
- return ((C = k.value[k.value.length - 1]) == null ? void 0 : C.label) || "";
3505
- }), t3 = p(() => s.value < 0 ? "历史" : "预报"), $1 = p(() => s.value < 0 ? "is-observed" : "is-forecast"), k1 = p(() => Math.max(k.value.length, 1)), f2 = p(() => Q.value ? Q.value : $.value ? U1(D.value + 1) : U.value <= 0 ? "0%" : U.value >= k1.value ? "100%" : f1.value ? U1(U.value + 1) : U1(U.value)), l3 = p(() => y.value ? y.value : b1.value ? U1(F1.value + 1) : F1.value === 0 ? "0%" : F1.value >= k1.value - 1 ? "100%" : a3(F1.value)), o3 = p(() => ({
3506
- "is-start": !b1.value && V1.value === 0,
3507
- "is-end": V1.value >= k1.value - 1,
3508
- "is-observed": M2.value === "observed",
3509
- "is-forecast": M2.value === "forecast"
3510
- })), C2 = p(() => k.value.map((C, e) => ({
3511
- key: `${C.index}-${C.value}`,
3512
- startIndex: e,
3513
- kind: C.kind,
3514
- title: B1(C.time, t.unit),
3515
- label: p3(C),
3516
- disabled: !!C.disabled
3517
- }))), n3 = p(() => `repeat(${Math.max(C2.value.length, 1)}, minmax(0, 1fr))`);
3518
- function r3(C) {
3519
- const e = X1.value;
3520
- return U.value <= 0 ? s.value * e + C : s.value > 0 ? v1.value + (s.value - 1) * e + C + 1 : s.value < 0 ? -U.value + s.value * e + C : C < U.value ? C - U.value : f1.value && C === U.value ? 0 : C - U.value + (f1.value ? 0 : 1);
3485
+ const e = Math.min(Math.max(C.modelValue, 0), K.value.length - 1);
3486
+ return (p = K.value[e]) != null && p.disabled ? y1(e) : e;
3487
+ }), X1 = g(() => Math.max(K.value.length - 1, 0)), A1 = g(() => Math.min(Math.max(Math.floor(B1.value), 0), X1.value)), U1 = g(() => Math.min(Math.max(B1.value, 0), X1.value)), F1 = g(() => K.value[A1.value]), $1 = g(() => {
3488
+ var e;
3489
+ return ((e = F1.value) == null ? void 0 : e.label) || "";
3490
+ }), V = g(() => {
3491
+ var e;
3492
+ return ((e = F1.value) == null ? void 0 : e.kind) || "forecast";
3493
+ }), B = g(() => C.unit === "year" ? "year" : C.unit === "month" ? "month" : C.unit === "day" ? "date" : "datetime"), z = g(() => C.unit === "year" ? "YYYY" : C.unit === "month" ? "YYYY-MM" : C.unit === "day" ? "MM-DD" : "YYYY-MM-DD HH:mm"), V1 = g(() => s.value === 0), N1 = g(() => C.showScale), G1 = g(() => !!((I.value || o1.value) && (typeof C.forecastCount == "number" && Number.isFinite(C.forecastCount) && C.forecastCount > 0 || Q.value))), i3 = g(() => _2(I.value)), c3 = g(() => _2(o1.value)), d3 = g(() => K.value.some((e) => e.kind === "observed")), L3 = g(() => K.value.some((e) => e.kind === "forecast")), c2 = g(() => C.showCurrentMarker && V1.value && $.value > 0 && x1.value > 0), v3 = g(() => {
3494
+ var e;
3495
+ return ((e = K.value.find((l) => l.kind === "observed")) == null ? void 0 : e.label) || "";
3496
+ }), g3 = g(() => Q1(Z.value, C.unit)), u3 = g(() => {
3497
+ var e;
3498
+ return ((e = [...K.value].reverse().find((l) => l.kind === "forecast")) == null ? void 0 : e.label) || "";
3499
+ }), h3 = g(() => {
3500
+ var e;
3501
+ return ((e = K.value[0]) == null ? void 0 : e.label) || "";
3502
+ }), p3 = g(() => {
3503
+ var e;
3504
+ return ((e = K.value[K.value.length - 1]) == null ? void 0 : e.label) || "";
3505
+ }), w3 = g(() => s.value < 0 ? "历史" : "预报"), d2 = g(() => s.value < 0 ? "is-observed" : "is-forecast"), Y1 = g(() => Math.max(K.value.length, 1)), b2 = g(() => G.value ? G.value : b.value ? e2(P.value + 1) : $.value <= 0 ? "0%" : $.value >= Y1.value ? "100%" : E1.value ? e2($.value + 1) : e2($.value)), M3 = g(() => T.value ? T.value : O1.value ? e2(U1.value + 1) : U1.value === 0 ? "0%" : U1.value >= Y1.value - 1 ? "100%" : x3(U1.value)), f3 = g(() => ({
3506
+ "is-start": !O1.value && A1.value === 0,
3507
+ "is-end": A1.value >= Y1.value - 1,
3508
+ "is-observed": V.value === "observed",
3509
+ "is-forecast": V.value === "forecast"
3510
+ })), L2 = g(() => K.value.map((e, l) => ({
3511
+ key: `${e.index}-${e.value}`,
3512
+ startIndex: l,
3513
+ kind: e.kind,
3514
+ title: Q1(e.time, C.unit),
3515
+ label: B3(e),
3516
+ disabled: !!e.disabled
3517
+ }))), V3 = g(() => `repeat(${Math.max(L2.value.length, 1)}, minmax(0, 1fr))`);
3518
+ function m3(e) {
3519
+ const l = R1.value;
3520
+ return $.value <= 0 ? s.value * l + e : s.value > 0 ? x1.value + (s.value - 1) * l + e + 1 : s.value < 0 ? -$.value + s.value * l + e : e < $.value ? e - $.value : E1.value && e === $.value ? 0 : e - $.value + (E1.value ? 0 : 1);
3521
3521
  }
3522
- function i3(C) {
3523
- return s.value > 0 ? "forecast" : s.value < 0 ? "observed" : f1.value ? C <= U.value ? "observed" : "forecast" : C < U.value ? "observed" : "forecast";
3522
+ function Z3(e) {
3523
+ return s.value > 0 ? "forecast" : s.value < 0 ? "observed" : E1.value ? e <= $.value ? "observed" : "forecast" : e < $.value ? "observed" : "forecast";
3524
3524
  }
3525
- function s3(C) {
3526
- return `${Number(C.toFixed(6))}%`;
3525
+ function H3(e) {
3526
+ return `${Number(e.toFixed(6))}%`;
3527
3527
  }
3528
- function Z2(C, e) {
3529
- const l = s3(C), r = Number(e.toFixed(6));
3530
- return Math.abs(r) < 1e-6 ? l : r > 0 ? `calc(${l} + var(--timeline-segment-gap) * ${r})` : `calc(${l} - var(--timeline-segment-gap) * ${Math.abs(r)})`;
3528
+ function z2(e, l) {
3529
+ const a = H3(e), p = Number(l.toFixed(6));
3530
+ return Math.abs(p) < 1e-6 ? a : p > 0 ? `calc(${a} + var(--timeline-segment-gap) * ${p})` : `calc(${a} - var(--timeline-segment-gap) * ${Math.abs(p)})`;
3531
3531
  }
3532
- function a3(C) {
3533
- const e = k1.value, l = (C + 0.5) / e * 100, r = C - (C + 0.5) * (e - 1) / e;
3534
- return Z2(l, r);
3532
+ function x3(e) {
3533
+ const l = Y1.value, a = (e + 0.5) / l * 100, p = e - (e + 0.5) * (l - 1) / l;
3534
+ return z2(a, p);
3535
3535
  }
3536
- function U1(C) {
3537
- const e = k1.value, l = C / e * 100, r = C / e - 0.5;
3538
- return Z2(l, r);
3536
+ function e2(e) {
3537
+ const l = Y1.value, a = e / l * 100, p = e / l - 0.5;
3538
+ return z2(a, p);
3539
3539
  }
3540
- function L3(C, e) {
3541
- e instanceof HTMLElement ? (Z.set(C, e), m1()) : Z.delete(C);
3540
+ function y3(e, l) {
3541
+ l instanceof HTMLElement ? (m.set(e, l), W1()) : m.delete(e);
3542
3542
  }
3543
- function m2(C, e = "center") {
3544
- const l = c.value, r = Z.get(C);
3545
- if (!l || !r)
3543
+ function S2(e, l = "center") {
3544
+ const a = r.value, p = m.get(e);
3545
+ if (!a || !p)
3546
3546
  return "";
3547
- const d = l.getBoundingClientRect(), M = r.getBoundingClientRect();
3548
- if (!d.width)
3547
+ const y = a.getBoundingClientRect(), S = p.getBoundingClientRect();
3548
+ if (!y.width)
3549
3549
  return "";
3550
- const E = e === "end" ? M.right - d.left : M.left + M.width / 2 - d.left;
3551
- return `${Number(E.toFixed(3))}px`;
3550
+ const C1 = l === "end" ? S.right - y.left : S.left + S.width / 2 - y.left;
3551
+ return `${Number(C1.toFixed(3))}px`;
3552
3552
  }
3553
- function c3() {
3554
- y.value = F.value ? "" : m2(V1.value, b1.value ? "end" : "center"), Q.value = _1.value ? m2($.value ? D.value : U.value, b1.value ? "end" : "center") : "";
3553
+ function D3() {
3554
+ T.value = Q.value ? "" : S2(A1.value, O1.value ? "end" : "center"), G.value = c2.value ? S2(b.value ? P.value : $.value, O1.value ? "end" : "center") : "";
3555
3555
  }
3556
- function m1() {
3557
- P || (P = window.requestAnimationFrame(() => {
3558
- P = 0, c3();
3556
+ function W1() {
3557
+ O || (O = window.requestAnimationFrame(() => {
3558
+ O = 0, D3();
3559
3559
  }));
3560
3560
  }
3561
- function e2(C) {
3562
- const e = new Date(C);
3563
- return Number.isNaN(e.getTime()) ? /* @__PURE__ */ new Date() : e;
3561
+ function v2(e) {
3562
+ const l = new Date(e);
3563
+ return Number.isNaN(l.getTime()) ? /* @__PURE__ */ new Date() : l;
3564
3564
  }
3565
- function P1(C) {
3566
- if (C == null || C === "")
3565
+ function C2(e) {
3566
+ if (e == null || e === "")
3567
3567
  return null;
3568
- const e = new Date(C);
3569
- return Number.isNaN(e.getTime()) ? null : e;
3568
+ const l = new Date(e);
3569
+ return Number.isNaN(l.getTime()) ? null : l;
3570
3570
  }
3571
- function N(C, e = t.timeZone) {
3572
- if (!e)
3573
- return { year: C.getFullYear(), month: C.getMonth() + 1, day: C.getDate(), hour: C.getHours(), minute: C.getMinutes(), second: C.getSeconds() };
3574
- const l = new Intl.DateTimeFormat("en-US", { timeZone: e, year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", hourCycle: "h23" }).formatToParts(C), r = (d) => {
3575
- var M;
3576
- return Number(((M = l.find((E) => E.type === d)) == null ? void 0 : M.value) || 0);
3571
+ function v1(e, l = C.timeZone) {
3572
+ if (!l)
3573
+ return { year: e.getFullYear(), month: e.getMonth() + 1, day: e.getDate(), hour: e.getHours(), minute: e.getMinutes(), second: e.getSeconds() };
3574
+ const a = new Intl.DateTimeFormat("en-US", { timeZone: l, year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", hourCycle: "h23" }).formatToParts(e), p = (y) => {
3575
+ var S;
3576
+ return Number(((S = a.find((C1) => C1.type === y)) == null ? void 0 : S.value) || 0);
3577
3577
  };
3578
- return { year: r("year"), month: r("month"), day: r("day"), hour: r("hour"), minute: r("minute"), second: r("second") };
3578
+ return { year: p("year"), month: p("month"), day: p("day"), hour: p("hour"), minute: p("minute"), second: p("second") };
3579
3579
  }
3580
- function H2(C) {
3581
- if (!t.timeZone)
3582
- return new Date(C);
3583
- const e = N(C);
3584
- return new Date(e.year, e.month - 1, e.day, e.hour, e.minute, e.second);
3580
+ function T2(e) {
3581
+ if (!C.timeZone)
3582
+ return new Date(e);
3583
+ const l = v1(e);
3584
+ return new Date(l.year, l.month - 1, l.day, l.hour, l.minute, l.second);
3585
3585
  }
3586
- function d3(C) {
3587
- if (!t.timeZone)
3588
- return C;
3589
- const e = { year: C.getFullYear(), month: C.getMonth() + 1, day: C.getDate(), hour: C.getHours(), minute: C.getMinutes(), second: C.getSeconds() }, l = Date.UTC(e.year, e.month - 1, e.day, e.hour, e.minute, e.second);
3590
- let r = l;
3591
- for (let d = 0; d < 3; d += 1) {
3592
- const M = N(new Date(r));
3593
- r += l - Date.UTC(M.year, M.month - 1, M.day, M.hour, M.minute, M.second);
3586
+ function k3(e) {
3587
+ if (!C.timeZone)
3588
+ return e;
3589
+ const l = { year: e.getFullYear(), month: e.getMonth() + 1, day: e.getDate(), hour: e.getHours(), minute: e.getMinutes(), second: e.getSeconds() }, a = Date.UTC(l.year, l.month - 1, l.day, l.hour, l.minute, l.second);
3590
+ let p = a;
3591
+ for (let y = 0; y < 3; y += 1) {
3592
+ const S = v1(new Date(p));
3593
+ p += a - Date.UTC(S.year, S.month - 1, S.day, S.hour, S.minute, S.second);
3594
3594
  }
3595
- return new Date(r);
3595
+ return new Date(p);
3596
3596
  }
3597
- function t2(C) {
3598
- const e = y1.value, l = z1.value;
3599
- return !!(e && C.getTime() < e.getTime() || l && C.getTime() > l.getTime());
3597
+ function g2(e) {
3598
+ const l = I.value, a = o1.value;
3599
+ return !!(l && e.getTime() < l.getTime() || a && e.getTime() > a.getTime());
3600
3600
  }
3601
- function G1(C) {
3602
- const e = new Date(C);
3603
- return e.setHours(0, 0, 0, 0), e;
3601
+ function t2(e) {
3602
+ const l = new Date(e);
3603
+ return l.setHours(0, 0, 0, 0), l;
3604
3604
  }
3605
- function l2(C) {
3606
- const e = G1(C);
3607
- return e.setDate(1), e;
3605
+ function u2(e) {
3606
+ const l = t2(e);
3607
+ return l.setDate(1), l;
3608
3608
  }
3609
- function x2(C) {
3610
- const e = G1(C);
3611
- return e.setMonth(0, 1), e;
3609
+ function B2(e) {
3610
+ const l = t2(e);
3611
+ return l.setMonth(0, 1), l;
3612
3612
  }
3613
- function o2(C) {
3614
- return new Date(C.getFullYear(), C.getMonth() + 1, 0).getDate();
3613
+ function h2(e) {
3614
+ return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate();
3615
3615
  }
3616
- function D2(C) {
3617
- const e = C.getDate();
3618
- return e <= 10 ? 0 : e <= 20 ? 1 : 2;
3616
+ function A2(e) {
3617
+ const l = e.getDate();
3618
+ return l <= 10 ? 0 : l <= 20 ? 1 : 2;
3619
3619
  }
3620
- function y2(C) {
3621
- return C <= 0 ? 1 : C === 1 ? 11 : 21;
3620
+ function E2(e) {
3621
+ return e <= 0 ? 1 : e === 1 ? 11 : 21;
3622
3622
  }
3623
- function v3(C) {
3623
+ function b3(e) {
3624
3624
  if (d1.value)
3625
- return h1(G1(b.value), C, "hour");
3626
- if (t1.value)
3627
- return h1(l2(b.value), C, "day");
3628
- if (w1.value)
3629
- return h1(x2(b.value), C, "month");
3630
- if (a1.value) {
3631
- const e = l2(b.value);
3632
- return e.setDate(y2(C)), e;
3625
+ return S1(t2(Z.value), e, "hour");
3626
+ if (h.value)
3627
+ return S1(u2(Z.value), e, "day");
3628
+ if (k.value)
3629
+ return S1(B2(Z.value), e, "month");
3630
+ if (M1.value) {
3631
+ const l = u2(Z.value);
3632
+ return l.setDate(E2(e)), l;
3633
3633
  }
3634
- return h1(b.value, _.value * C, t.unit);
3634
+ return S1(Z.value, j.value * e, C.unit);
3635
3635
  }
3636
- function h3(C, e) {
3636
+ function z3(e, l) {
3637
3637
  if (d1.value) {
3638
- const l = G1(h1(b.value, C, "day"));
3639
- return h1(l, e, "hour");
3638
+ const a = t2(S1(Z.value, e, "day"));
3639
+ return S1(a, l, "hour");
3640
3640
  }
3641
- if (t1.value || a1.value) {
3642
- const l = l2(h1(b.value, C, "month"));
3643
- return l.setDate(a1.value ? y2(e) : e + 1), l;
3641
+ if (h.value || M1.value) {
3642
+ const a = u2(S1(Z.value, e, "month"));
3643
+ return a.setDate(M1.value ? E2(l) : l + 1), a;
3644
3644
  }
3645
- if (w1.value) {
3646
- const l = x2(h1(b.value, C, "year"));
3647
- return l.setMonth(e), l;
3645
+ if (k.value) {
3646
+ const a = B2(S1(Z.value, e, "year"));
3647
+ return a.setMonth(l), a;
3648
3648
  }
3649
- return h1(b.value, C, t.unit);
3649
+ return S1(Z.value, e, C.unit);
3650
3650
  }
3651
- function z2(C) {
3652
- return d1.value ? Math.min(Math.max(C.getHours(), 0), 23) : t1.value ? Math.min(Math.max(C.getDate() - 1, 0), o2(C) - 1) : w1.value ? Math.min(Math.max(C.getMonth(), 0), 11) : a1.value ? D2(C) : 0;
3651
+ function F2(e) {
3652
+ return d1.value ? Math.min(Math.max(e.getHours(), 0), 23) : h.value ? Math.min(Math.max(e.getDate() - 1, 0), h2(e) - 1) : k.value ? Math.min(Math.max(e.getMonth(), 0), 11) : M1.value ? A2(e) : 0;
3653
3653
  }
3654
- function g3(C) {
3655
- const e = e2(C);
3656
- m.value = C, a.value = e, s.value = 0, h("update:startTime", C);
3654
+ function S3(e) {
3655
+ const l = v2(e);
3656
+ x.value = e, w.value = l, s.value = 0, d("update:startTime", e);
3657
3657
  }
3658
- function h1(C, e, l) {
3659
- const r = new Date(C);
3660
- return l === "minute" && r.setMinutes(r.getMinutes() + e), l === "hour" && r.setHours(r.getHours() + e), l === "day" && r.setDate(r.getDate() + e), l === "month" && r.setMonth(r.getMonth() + e), l === "year" && r.setFullYear(r.getFullYear() + e), r;
3658
+ function S1(e, l, a) {
3659
+ const p = new Date(e);
3660
+ return a === "minute" && p.setMinutes(p.getMinutes() + l), a === "hour" && p.setHours(p.getHours() + l), a === "day" && p.setDate(p.getDate() + l), a === "month" && p.setMonth(p.getMonth() + l), a === "year" && p.setFullYear(p.getFullYear() + l), p;
3661
3661
  }
3662
- function X(C) {
3663
- return String(C).padStart(2, "0");
3662
+ function Z1(e) {
3663
+ return String(e).padStart(2, "0");
3664
3664
  }
3665
- function w3(C) {
3666
- return C <= 10 ? "上旬" : C <= 20 ? "中旬" : "下旬";
3665
+ function T3(e) {
3666
+ return e <= 10 ? "上旬" : e <= 20 ? "中旬" : "下旬";
3667
3667
  }
3668
- function p3(C) {
3669
- const e = C.time;
3670
- if (!(e instanceof Date) || Number.isNaN(e.getTime()))
3668
+ function B3(e) {
3669
+ const l = e.time;
3670
+ if (!(l instanceof Date) || Number.isNaN(l.getTime()))
3671
3671
  return "";
3672
- const l = N(e), r = X(l.month), d = X(l.day), M = X(l.hour), E = X(l.minute), c2 = String(C.label || "").match(/(?:^|\D)(\d{1,2})(上旬|中旬|下旬)/);
3673
- return c2 ? `${X(Number(c2[1]))}${c2[2]}` : t.unit === "minute" ? _.value === 60 && E === "00" ? M : `${M}:${E}` : t.unit === "hour" ? _.value >= 24 ? `${r}-${d}` : M : t.unit === "day" ? _.value >= 10 && _.value <= 11 ? `${r}${w3(l.day)}` : d : t.unit === "month" ? r : t.unit === "year" ? String(l.year) : C.label || "";
3672
+ const a = v1(l), p = Z1(a.month), y = Z1(a.day), S = Z1(a.hour), C1 = Z1(a.minute), Z2 = String(e.label || "").match(/(?:^|\D)(\d{1,2})(上旬|中旬|下旬)/);
3673
+ return Z2 ? `${Z1(Number(Z2[1]))}${Z2[2]}` : C.unit === "minute" ? j.value === 60 && C1 === "00" ? S : `${S}:${C1}` : C.unit === "hour" ? j.value >= 24 ? `${p}-${y}` : S : C.unit === "day" ? j.value >= 10 && j.value <= 11 ? `${p}${T3(a.day)}` : y : C.unit === "month" ? p : C.unit === "year" ? String(a.year) : e.label || "";
3674
3674
  }
3675
- function B1(C, e) {
3676
- const l = N(C), r = l.year, d = X(l.month), M = X(l.day), E = X(l.hour), L1 = X(l.minute);
3677
- return e === "year" ? `${r}` : e === "month" ? `${r}-${d}` : e === "day" ? `${r}-${d}-${M}` : e === "minute" ? `${d}-${M} ${E}:${L1}` : `${d}-${M} ${E}时`;
3675
+ function Q1(e, l) {
3676
+ const a = v1(e), p = a.year, y = Z1(a.month), S = Z1(a.day), C1 = Z1(a.hour), z1 = Z1(a.minute);
3677
+ return l === "year" ? `${p}` : l === "month" ? `${p}-${y}` : l === "day" ? `${p}-${y}-${S}` : l === "minute" ? `${y}-${S} ${C1}:${z1}` : `${y}-${S} ${C1}时`;
3678
3678
  }
3679
- function k2(C) {
3680
- if (!(C instanceof Date) || Number.isNaN(C.getTime()))
3679
+ function _2(e) {
3680
+ if (!(e instanceof Date) || Number.isNaN(e.getTime()))
3681
3681
  return "";
3682
- const e = N(C);
3683
- return `${e.year}-${X(e.month)}-${X(e.day)} ${X(e.hour)}:${X(e.minute)}:${X(e.second)}`;
3682
+ const l = v1(e);
3683
+ return `${l.year}-${Z1(l.month)}-${Z1(l.day)} ${Z1(l.hour)}:${Z1(l.minute)}:${Z1(l.second)}`;
3684
3684
  }
3685
- function M3(C, e, l) {
3686
- return l === "minute" ? (C.getTime() - e.getTime()) / 6e4 : l === "hour" ? (C.getTime() - e.getTime()) / 36e5 : l === "day" ? (C.getTime() - e.getTime()) / 864e5 : l === "month" ? (C.getFullYear() - e.getFullYear()) * 12 + C.getMonth() - e.getMonth() : C.getFullYear() - e.getFullYear();
3685
+ function A3(e, l, a) {
3686
+ return a === "minute" ? (e.getTime() - l.getTime()) / 6e4 : a === "hour" ? (e.getTime() - l.getTime()) / 36e5 : a === "day" ? (e.getTime() - l.getTime()) / 864e5 : a === "month" ? (e.getFullYear() - l.getFullYear()) * 12 + e.getMonth() - l.getMonth() : e.getFullYear() - l.getFullYear();
3687
3687
  }
3688
- function j(C) {
3689
- const e = Math.min(Math.max(C, 0), k.value.length - 1), l = k.value[e];
3690
- !l || l.disabled || (h("update:modelValue", F.value ? l.index : e), h("change", l));
3688
+ function u1(e) {
3689
+ const l = Math.min(Math.max(e, 0), K.value.length - 1), a = K.value[l];
3690
+ !a || a.disabled || (d("update:modelValue", Q.value ? a.index : l), d("change", a));
3691
3691
  }
3692
- function l1(C) {
3693
- return u3(C, 1);
3692
+ function y1(e) {
3693
+ return E3(e, 1);
3694
3694
  }
3695
- function u3(C, e) {
3696
- var M;
3697
- const l = Math.min(Math.max(C, 0), k.value.length - 1);
3698
- if (!((M = k.value[l]) != null && M.disabled))
3699
- return l;
3700
- const r = n2(l, e);
3701
- if (r !== null)
3702
- return r;
3703
- const d = n2(l, e > 0 ? -1 : 1);
3704
- return d !== null ? d : l;
3695
+ function E3(e, l) {
3696
+ var S;
3697
+ const a = Math.min(Math.max(e, 0), K.value.length - 1);
3698
+ if (!((S = K.value[a]) != null && S.disabled))
3699
+ return a;
3700
+ const p = p2(a, l);
3701
+ if (p !== null)
3702
+ return p;
3703
+ const y = p2(a, l > 0 ? -1 : 1);
3704
+ return y !== null ? y : a;
3705
3705
  }
3706
- function n2(C, e) {
3707
- var l;
3708
- if (e > 0) {
3709
- const r = k.value.findIndex((d, M) => M >= C && !d.disabled);
3710
- return r >= 0 ? r : null;
3706
+ function p2(e, l) {
3707
+ var a;
3708
+ if (l > 0) {
3709
+ const p = K.value.findIndex((y, S) => S >= e && !y.disabled);
3710
+ return p >= 0 ? p : null;
3711
3711
  }
3712
- for (let r = C; r >= 0; r -= 1)
3713
- if (!((l = k.value[r]) != null && l.disabled))
3714
- return r;
3712
+ for (let p = e; p >= 0; p -= 1)
3713
+ if (!((a = K.value[p]) != null && a.disabled))
3714
+ return p;
3715
3715
  return null;
3716
3716
  }
3717
- function I1(C, e) {
3718
- s.value = C, j(e);
3717
+ function l2(e, l) {
3718
+ s.value = e, u1(l);
3719
3719
  }
3720
- function B2(C, e) {
3721
- const l = h3(C, e), r = r2(l), d = r.getTime() === l.getTime() ? e : z2(r);
3722
- m.value = r, a.value = r, s.value = 0, h("update:startTime", r), j(d);
3720
+ function P2(e, l) {
3721
+ const a = z3(e, l), p = w2(a), y = p.getTime() === a.getTime() ? l : F2(p);
3722
+ x.value = p, w.value = p, s.value = 0, d("update:startTime", p), u1(y);
3723
3723
  }
3724
- function T2(C) {
3725
- const e = s.value + C, l = C > 0 ? 0 : k.value.length - 1;
3726
- I1(e, l);
3724
+ function U2(e) {
3725
+ const l = s.value + e, a = e > 0 ? 0 : K.value.length - 1;
3726
+ l2(l, a);
3727
3727
  }
3728
- function T1(C) {
3729
- const e = C >= 0 ? 1 : -1, r = n2(u1.value + C, e) ?? (e > 0 ? k.value.length : -1), d = k.value.length - 1;
3730
- if (r > d) {
3731
- if ($.value) {
3732
- t.loop ? B2(1, 0) : j(d);
3728
+ function K1(e) {
3729
+ const l = e >= 0 ? 1 : -1, p = p2(B1.value + e, l) ?? (l > 0 ? K.value.length : -1), y = K.value.length - 1;
3730
+ if (p > y) {
3731
+ if (b.value) {
3732
+ C.loop ? P2(1, 0) : u1(y);
3733
3733
  return;
3734
3734
  }
3735
- if (F.value) {
3736
- if (s.value < g2.value - 1) {
3737
- s.value += 1, j(l1(0));
3735
+ if (Q.value) {
3736
+ if (s.value < m1.value - 1) {
3737
+ s.value += 1, u1(y1(0));
3738
3738
  return;
3739
3739
  }
3740
- t.loop && (s.value = 0), j(l1(t.loop ? 0 : d));
3740
+ C.loop && (s.value = 0), u1(y1(C.loop ? 0 : y));
3741
3741
  return;
3742
3742
  }
3743
- if (!t.loop) {
3744
- j(d);
3743
+ if (!C.loop) {
3744
+ u1(y);
3745
3745
  return;
3746
3746
  }
3747
- T2(1);
3747
+ U2(1);
3748
3748
  return;
3749
3749
  }
3750
- if (r < 0) {
3751
- if ($.value) {
3752
- t.loop ? B2(-1, d) : j(0);
3750
+ if (p < 0) {
3751
+ if (b.value) {
3752
+ C.loop ? P2(-1, y) : u1(0);
3753
3753
  return;
3754
3754
  }
3755
- if (F.value) {
3755
+ if (Q.value) {
3756
3756
  if (s.value > 0) {
3757
- s.value -= 1, j(l1(k.value.length - 1));
3757
+ s.value -= 1, u1(y1(K.value.length - 1));
3758
3758
  return;
3759
3759
  }
3760
- t.loop && (s.value = g2.value - 1), j(l1(t.loop ? d : 0));
3760
+ C.loop && (s.value = m1.value - 1), u1(y1(C.loop ? y : 0));
3761
3761
  return;
3762
3762
  }
3763
- if (!t.loop) {
3764
- j(0);
3763
+ if (!C.loop) {
3764
+ u1(0);
3765
3765
  return;
3766
3766
  }
3767
- T2(-1);
3767
+ U2(-1);
3768
3768
  return;
3769
3769
  }
3770
- j(r);
3770
+ u1(p);
3771
3771
  }
3772
- function V3() {
3773
- if (F.value) {
3774
- s.value = 0, j(l1(0));
3772
+ function F3() {
3773
+ if (Q.value) {
3774
+ s.value = 0, u1(y1(0));
3775
3775
  return;
3776
3776
  }
3777
- if ($.value) {
3778
- s.value = 0, j(l1(D.value));
3777
+ if (b.value) {
3778
+ s.value = 0, u1(y1(P.value));
3779
3779
  return;
3780
3780
  }
3781
- const C = v1.value > 0 ? Math.min(U.value, k.value.length - 1) : 0;
3782
- I1(0, l1(C));
3781
+ const e = x1.value > 0 ? Math.min($.value, K.value.length - 1) : 0;
3782
+ l2(0, y1(e));
3783
3783
  }
3784
- function f3(C) {
3785
- const e = X1.value;
3786
- if (U.value <= 0) {
3787
- const d = Math.floor(C / e), M = C - d * e;
3788
- return { page: d, index: M };
3784
+ function _3(e) {
3785
+ const l = R1.value;
3786
+ if ($.value <= 0) {
3787
+ const y = Math.floor(e / l), S = e - y * l;
3788
+ return { page: y, index: S };
3789
3789
  }
3790
- if (C === 0)
3790
+ if (e === 0)
3791
3791
  return {
3792
3792
  page: 0,
3793
- index: v1.value > 0 ? Math.min(U.value, e - 1) : Math.max(U.value - 1, 0)
3793
+ index: x1.value > 0 ? Math.min($.value, l - 1) : Math.max($.value - 1, 0)
3794
3794
  };
3795
- if (C >= 1 && C <= v1.value)
3796
- return { page: 0, index: U.value + C + (f1.value ? 0 : -1) };
3797
- if (C <= -1 && C >= -U.value)
3798
- return { page: 0, index: U.value + C };
3799
- if (C > v1.value) {
3800
- const d = Math.ceil((C - v1.value) / e), M = v1.value + (d - 1) * e + 1;
3801
- return { page: d, index: C - M };
3795
+ if (e >= 1 && e <= x1.value)
3796
+ return { page: 0, index: $.value + e + (E1.value ? 0 : -1) };
3797
+ if (e <= -1 && e >= -$.value)
3798
+ return { page: 0, index: $.value + e };
3799
+ if (e > x1.value) {
3800
+ const y = Math.ceil((e - x1.value) / l), S = x1.value + (y - 1) * l + 1;
3801
+ return { page: y, index: e - S };
3802
3802
  }
3803
- const l = -Math.ceil((-U.value - C) / e), r = -U.value + l * e;
3804
- return { page: l, index: C - r };
3803
+ const a = -Math.ceil((-$.value - e) / l), p = -$.value + a * l;
3804
+ return { page: a, index: e - p };
3805
3805
  }
3806
- function Z3(C) {
3807
- if (F.value) {
3808
- let r = 0, d = Number.POSITIVE_INFINITY;
3809
- i1.value.forEach((M, E) => {
3810
- const L1 = Math.abs(M.time.getTime() - C.getTime());
3811
- L1 < d && (d = L1, r = E);
3812
- }), s.value = Math.floor(r / e1.value), j(r - J.value);
3806
+ function P3(e) {
3807
+ if (Q.value) {
3808
+ let p = 0, y = Number.POSITIVE_INFINITY;
3809
+ i1.value.forEach((S, C1) => {
3810
+ const z1 = Math.abs(S.time.getTime() - e.getTime());
3811
+ z1 < y && (y = z1, p = C1);
3812
+ }), s.value = Math.floor(p / q.value), u1(p - e1.value);
3813
3813
  return;
3814
3814
  }
3815
- if ($.value) {
3816
- m.value = C, s.value = 0, h("update:startTime", C), I1(0, z2(C)), a.value = C;
3815
+ if (b.value) {
3816
+ x.value = e, s.value = 0, d("update:startTime", e), l2(0, F2(e)), w.value = e;
3817
3817
  return;
3818
3818
  }
3819
- const e = Math.round(M3(C, b.value, t.unit) / _.value), l = f3(e);
3820
- I1(l.page, l.index);
3819
+ const l = Math.round(A3(e, Z.value, C.unit) / j.value), a = _3(l);
3820
+ l2(a.page, a.index);
3821
3821
  }
3822
- function r2(C) {
3823
- const e = s1.value, l = g1.value;
3824
- return e && C.getTime() < e.getTime() ? new Date(e) : l && C.getTime() > l.getTime() ? new Date(l) : C;
3822
+ function w2(e) {
3823
+ const l = c1.value, a = g1.value;
3824
+ return l && e.getTime() < l.getTime() ? new Date(l) : a && e.getTime() > a.getTime() ? new Date(a) : e;
3825
3825
  }
3826
- function m3(C) {
3827
- const e = i2(C), l = s1.value ? N(s1.value) : null, r = g1.value ? N(g1.value) : null, d = (M) => Date.UTC(M.year, M.month - 1, M.day);
3828
- return !!(l && d(e) < d(l) || r && d(e) > d(r));
3826
+ function U3(e) {
3827
+ const l = M2(e), a = c1.value ? v1(c1.value) : null, p = g1.value ? v1(g1.value) : null, y = (S) => Date.UTC(S.year, S.month - 1, S.day);
3828
+ return !!(a && y(l) < y(a) || p && y(l) > y(p));
3829
3829
  }
3830
- function i2(C) {
3831
- return t.timeZone ? { year: C.getFullYear(), month: C.getMonth() + 1, day: C.getDate(), hour: C.getHours(), minute: C.getMinutes(), second: C.getSeconds() } : N(C);
3830
+ function M2(e) {
3831
+ return C.timeZone ? { year: e.getFullYear(), month: e.getMonth() + 1, day: e.getDate(), hour: e.getHours(), minute: e.getMinutes(), second: e.getSeconds() } : v1(e);
3832
3832
  }
3833
- function H1(C, e) {
3834
- const l = i2(C), r = N(e);
3835
- return l.year === r.year && l.month === r.month && l.day === r.day;
3833
+ function j1(e, l) {
3834
+ const a = M2(e), p = v1(l);
3835
+ return a.year === p.year && a.month === p.month && a.day === p.day;
3836
3836
  }
3837
- function H3() {
3838
- const C = a.value || s1.value || b.value;
3839
- i2(C);
3840
- const e = /* @__PURE__ */ new Set(), l = s1.value, r = g1.value;
3841
- return l && H1(C, l) && Array.from({ length: 24 }, (d, M) => M).filter((d) => d < N(l).hour).forEach((d) => e.add(d)), r && H1(C, r) && Array.from({ length: 24 }, (d, M) => M).filter((d) => d > N(r).hour).forEach((d) => e.add(d)), Array.from(e).sort((d, M) => d - M);
3837
+ function G3() {
3838
+ const e = w.value || c1.value || Z.value;
3839
+ M2(e);
3840
+ const l = /* @__PURE__ */ new Set(), a = c1.value, p = g1.value;
3841
+ return a && j1(e, a) && Array.from({ length: 24 }, (y, S) => S).filter((y) => y < v1(a).hour).forEach((y) => l.add(y)), p && j1(e, p) && Array.from({ length: 24 }, (y, S) => S).filter((y) => y > v1(p).hour).forEach((y) => l.add(y)), Array.from(l).sort((y, S) => y - S);
3842
3842
  }
3843
- function x3(C) {
3844
- const e = a.value || s1.value || b.value, l = /* @__PURE__ */ new Set(), r = s1.value, d = g1.value;
3845
- return r && H1(e, r) && C === N(r).hour && Array.from({ length: 60 }, (M, E) => E).filter((M) => M < N(r).minute).forEach((M) => l.add(M)), d && H1(e, d) && C === N(d).hour && Array.from({ length: 60 }, (M, E) => E).filter((M) => M > N(d).minute).forEach((M) => l.add(M)), Array.from(l).sort((M, E) => M - E);
3843
+ function I3(e) {
3844
+ const l = w.value || c1.value || Z.value, a = /* @__PURE__ */ new Set(), p = c1.value, y = g1.value;
3845
+ return p && j1(l, p) && e === v1(p).hour && Array.from({ length: 60 }, (S, C1) => C1).filter((S) => S < v1(p).minute).forEach((S) => a.add(S)), y && j1(l, y) && e === v1(y).hour && Array.from({ length: 60 }, (S, C1) => C1).filter((S) => S > v1(y).minute).forEach((S) => a.add(S)), Array.from(a).sort((S, C1) => S - C1);
3846
3846
  }
3847
- function D3(C, e) {
3848
- const l = a.value || s1.value || b.value, r = /* @__PURE__ */ new Set(), d = s1.value, M = g1.value;
3849
- return d && H1(l, d) && C === N(d).hour && e === N(d).minute && Array.from({ length: 60 }, (E, L1) => L1).filter((E) => E < N(d).second).forEach((E) => r.add(E)), M && H1(l, M) && C === N(M).hour && e === N(M).minute && Array.from({ length: 60 }, (E, L1) => L1).filter((E) => E > N(M).second).forEach((E) => r.add(E)), Array.from(r).sort((E, L1) => E - L1);
3847
+ function O3(e, l) {
3848
+ const a = w.value || c1.value || Z.value, p = /* @__PURE__ */ new Set(), y = c1.value, S = g1.value;
3849
+ return y && j1(a, y) && e === v1(y).hour && l === v1(y).minute && Array.from({ length: 60 }, (C1, z1) => z1).filter((C1) => C1 < v1(y).second).forEach((C1) => p.add(C1)), S && j1(a, S) && e === v1(S).hour && l === v1(S).minute && Array.from({ length: 60 }, (C1, z1) => z1).filter((C1) => C1 > v1(S).second).forEach((C1) => p.add(C1)), Array.from(p).sort((C1, z1) => C1 - z1);
3850
3850
  }
3851
- function E2() {
3852
- Z1.value && (a.value = H2(r2(Z1.value.time)));
3851
+ function G2() {
3852
+ F1.value && (w.value = T2(w2(F1.value.time)));
3853
3853
  }
3854
- function S2(C) {
3855
- const e = C ? new Date(C) : null;
3856
- if (!e || Number.isNaN(e.getTime()))
3854
+ function I2(e) {
3855
+ const l = e ? new Date(e) : null;
3856
+ if (!l || Number.isNaN(l.getTime()))
3857
3857
  return;
3858
- const l = d3(e), r = r2(l);
3859
- a.value = H2(r), Z3(r);
3858
+ const a = k3(l), p = w2(a);
3859
+ w.value = T2(p), P3(p);
3860
3860
  }
3861
- function s2() {
3862
- z && (window.clearInterval(z), z = null);
3861
+ function f2() {
3862
+ F && (window.clearInterval(F), F = null);
3863
3863
  }
3864
- function O1() {
3865
- s2(), !(!f.value || !t.internalPlayback) && (z = window.setInterval(() => T1(1), Math.max(240, 1200 / u.value)));
3864
+ function n2() {
3865
+ f2(), !(!M.value || !C.internalPlayback) && (F = window.setInterval(() => K1(1), Math.max(240, 1200 / u.value)));
3866
3866
  }
3867
- function y3() {
3868
- f.value = !0, h("update:playing", !0), h("play"), O1();
3867
+ function N3() {
3868
+ M.value = !0, d("update:playing", !0), d("play"), n2();
3869
3869
  }
3870
- function z3() {
3871
- f.value = !1, h("update:playing", !1), h("pause"), s2();
3870
+ function W3() {
3871
+ M.value = !1, d("update:playing", !1), d("pause"), f2();
3872
3872
  }
3873
- function k3() {
3874
- if (f.value) {
3875
- z3();
3873
+ function j3() {
3874
+ if (M.value) {
3875
+ W3();
3876
3876
  return;
3877
3877
  }
3878
- y3();
3878
+ N3();
3879
3879
  }
3880
- function B3() {
3881
- const C = t.speeds.length ? t.speeds : [1], e = C.findIndex((r) => r === u.value), l = C[(e + 1) % C.length];
3882
- u.value = l, h("update:speed", l), O1();
3880
+ function R3() {
3881
+ const e = C.speeds.length ? C.speeds : [1], l = e.findIndex((p) => p === u.value), a = e[(l + 1) % e.length];
3882
+ u.value = a, d("update:speed", a), n2();
3883
3883
  }
3884
- function A2(C) {
3885
- var r;
3886
- const e = (r = c.value) == null ? void 0 : r.getBoundingClientRect();
3887
- if (!e)
3888
- return u1.value;
3889
- const l = Math.min(Math.max((C - e.left) / e.width, 0), 1);
3890
- return Math.min(Math.floor(l * k.value.length), k.value.length - 1);
3884
+ function O2(e) {
3885
+ var p;
3886
+ const l = (p = r.value) == null ? void 0 : p.getBoundingClientRect();
3887
+ if (!l)
3888
+ return B1.value;
3889
+ const a = Math.min(Math.max((e - l.left) / l.width, 0), 1);
3890
+ return Math.min(Math.floor(a * K.value.length), K.value.length - 1);
3891
3891
  }
3892
- function T3(C) {
3893
- var e;
3894
- C1 = !0, (e = c.value) == null || e.setPointerCapture(C.pointerId), j(A2(C.clientX)), window.addEventListener("pointermove", a2), window.addEventListener("pointerup", L2);
3892
+ function Y3(e) {
3893
+ var l;
3894
+ s1 = !0, (l = r.value) == null || l.setPointerCapture(e.pointerId), u1(O2(e.clientX)), window.addEventListener("pointermove", V2), window.addEventListener("pointerup", m2);
3895
3895
  }
3896
- function a2(C) {
3897
- C1 && j(A2(C.clientX));
3896
+ function V2(e) {
3897
+ s1 && u1(O2(e.clientX));
3898
3898
  }
3899
- function L2() {
3900
- C1 = !1, window.removeEventListener("pointermove", a2), window.removeEventListener("pointerup", L2);
3899
+ function m2() {
3900
+ s1 = !1, window.removeEventListener("pointermove", V2), window.removeEventListener("pointerup", m2);
3901
3901
  }
3902
- return W(() => t.playing, (C) => {
3903
- f.value = C, O1();
3904
- }), W(() => t.speed, (C) => {
3905
- u.value = C, O1();
3906
- }), W(() => [t.steps, t.pastSteps, t.futureSteps], () => {
3907
- u1.value > k.value.length - 1 && j(k.value.length - 1), p1(m1);
3908
- }), W(
3909
- () => [t.modelValue, F.value, e1.value, i1.value.length],
3902
+ return l1(() => C.playing, (e) => {
3903
+ M.value = e, n2();
3904
+ }), l1(() => C.speed, (e) => {
3905
+ u.value = e, n2();
3906
+ }), l1(() => [C.steps, C.pastSteps, C.futureSteps], () => {
3907
+ B1.value > K.value.length - 1 && u1(K.value.length - 1), T1(W1);
3908
+ }), l1(
3909
+ () => [C.modelValue, Q.value, q.value, i1.value.length],
3910
3910
  () => {
3911
- if (!F.value)
3911
+ if (!Q.value)
3912
3912
  return;
3913
- const C = Math.min(Math.max(Number(t.modelValue) || 0, 0), i1.value.length - 1);
3914
- s.value = Math.floor(C / e1.value);
3913
+ const e = Math.min(Math.max(Number(C.modelValue) || 0, 0), i1.value.length - 1);
3914
+ s.value = Math.floor(e / q.value);
3915
3915
  },
3916
3916
  { immediate: !0 }
3917
- ), W(() => t.startTime, (C) => {
3918
- m.value = C, s.value = 0, p1(m1);
3919
- }), W(Z1, E2, { immediate: !0 }), W(() => [t.minTime, t.maxTime], E2), W(
3917
+ ), l1(() => C.startTime, (e) => {
3918
+ x.value = e, s.value = 0, T1(W1);
3919
+ }), l1(F1, G2, { immediate: !0 }), l1(() => [C.minTime, C.maxTime], G2), l1(
3920
3920
  () => [
3921
- V1.value,
3922
- S1.value,
3923
- k.value.length,
3924
- C2.value.map((C) => C.key).join("|")
3921
+ A1.value,
3922
+ w1.value,
3923
+ K.value.length,
3924
+ L2.value.map((e) => e.key).join("|")
3925
3925
  ],
3926
3926
  () => {
3927
- p1(m1);
3927
+ T1(W1);
3928
3928
  },
3929
3929
  { immediate: !0 }
3930
- ), Q1(() => {
3931
- typeof ResizeObserver < "u" && c.value && (G = new ResizeObserver(m1), G.observe(c.value)), p1(m1);
3932
- }), h2(() => {
3933
- s2(), P && (window.cancelAnimationFrame(P), P = 0), G == null || G.disconnect(), G = null, window.removeEventListener("pointermove", a2), window.removeEventListener("pointerup", L2);
3934
- }), (C, e) => (g(), V("section", {
3935
- class: A(["map-timeline", {
3936
- "is-playing": f.value,
3937
- "is-external-points": F.value,
3938
- "is-scale-hidden": !V2.value
3930
+ ), P1(() => {
3931
+ typeof ResizeObserver < "u" && r.value && (J = new ResizeObserver(W1), J.observe(r.value)), T1(W1);
3932
+ }), I1(() => {
3933
+ f2(), O && (window.cancelAnimationFrame(O), O = 0), J == null || J.disconnect(), J = null, window.removeEventListener("pointermove", V2), window.removeEventListener("pointerup", m2);
3934
+ }), (e, l) => (o(), L("section", {
3935
+ class: W(["map-timeline", {
3936
+ "is-playing": M.value,
3937
+ "is-external-points": Q.value,
3938
+ "is-scale-hidden": !N1.value
3939
3939
  }])
3940
3940
  }, [
3941
- L("div", g4, [
3942
- L("button", {
3941
+ t("div", E4, [
3942
+ t("button", {
3943
3943
  class: "control-button is-primary",
3944
3944
  type: "button",
3945
- "aria-label": f.value ? "暂停" : "播放",
3946
- onClick: k3
3945
+ "aria-label": M.value ? "暂停" : "播放",
3946
+ onClick: j3
3947
3947
  }, [
3948
- T(x(n1), null, {
3949
- default: O(() => [
3950
- f.value ? (g(), q(x(W3), { key: 0 })) : (g(), q(x(N3), { key: 1 }))
3948
+ U(H(h1), null, {
3949
+ default: R(() => [
3950
+ M.value ? (o(), n1(H(t4), { key: 0 })) : (o(), n1(H(l4), { key: 1 }))
3951
3951
  ]),
3952
3952
  _: 1
3953
3953
  })
3954
- ], 8, w4),
3955
- L("div", p4, [
3956
- L("button", {
3954
+ ], 8, F4),
3955
+ t("div", _4, [
3956
+ t("button", {
3957
3957
  class: "control-button",
3958
3958
  type: "button",
3959
3959
  "aria-label": "上一帧",
3960
- onClick: e[0] || (e[0] = (l) => T1(-1))
3960
+ onClick: l[0] || (l[0] = (a) => K1(-1))
3961
3961
  }, [
3962
- T(x(n1), null, {
3963
- default: O(() => [
3964
- T(x(j3))
3962
+ U(H(h1), null, {
3963
+ default: R(() => [
3964
+ U(H(n4))
3965
3965
  ]),
3966
3966
  _: 1
3967
3967
  })
3968
3968
  ]),
3969
- L("button", {
3969
+ t("button", {
3970
3970
  class: "control-button",
3971
3971
  type: "button",
3972
3972
  "aria-label": "下一帧",
3973
- onClick: e[1] || (e[1] = (l) => T1(1))
3973
+ onClick: l[1] || (l[1] = (a) => K1(1))
3974
3974
  }, [
3975
- T(x(n1), null, {
3976
- default: O(() => [
3977
- T(x(Y3))
3975
+ U(H(h1), null, {
3976
+ default: R(() => [
3977
+ U(H(o4))
3978
3978
  ]),
3979
3979
  _: 1
3980
3980
  })
3981
3981
  ])
3982
3982
  ]),
3983
- L("button", {
3983
+ t("button", {
3984
3984
  class: "speed-button",
3985
3985
  type: "button",
3986
3986
  title: "播放速度",
3987
- onClick: B3
3988
- }, B(u.value) + "x", 1),
3989
- L("button", {
3987
+ onClick: R3
3988
+ }, D(u.value) + "x", 1),
3989
+ t("button", {
3990
3990
  class: "control-button",
3991
3991
  type: "button",
3992
3992
  title: "回到初始时窗",
3993
3993
  "aria-label": "回到初始时窗",
3994
- onClick: V3
3994
+ onClick: F3
3995
3995
  }, [
3996
- T(x(n1), null, {
3997
- default: O(() => [
3998
- T(x(W2))
3996
+ U(H(h1), null, {
3997
+ default: R(() => [
3998
+ U(H(t3))
3999
3999
  ]),
4000
4000
  _: 1
4001
4001
  })
4002
4002
  ]),
4003
- M1.value ? (g(), V("div", M4, [
4004
- R1(C.$slots, "date-select", {
4005
- startTime: b.value,
4006
- activePoint: Z1.value,
4007
- activeIndex: u1.value,
4008
- value: a.value,
4009
- setStartTime: g3,
4010
- jumpToTime: S2
4003
+ _.value ? (o(), L("div", P4, [
4004
+ f1(e.$slots, "date-select", {
4005
+ startTime: Z.value,
4006
+ activePoint: F1.value,
4007
+ activeIndex: B1.value,
4008
+ value: w.value,
4009
+ setStartTime: S3,
4010
+ jumpToTime: I2
4011
4011
  }, void 0, !0)
4012
- ])) : (g(), q(x(S3), {
4012
+ ])) : (o(), n1(H(D2), {
4013
4013
  key: 1,
4014
- modelValue: a.value,
4015
- "onUpdate:modelValue": e[2] || (e[2] = (l) => a.value = l),
4014
+ modelValue: w.value,
4015
+ "onUpdate:modelValue": l[2] || (l[2] = (a) => w.value = a),
4016
4016
  class: "timeline-jump-picker",
4017
- type: j2.value,
4018
- format: Y2.value,
4017
+ type: B.value,
4018
+ format: z.value,
4019
4019
  clearable: !1,
4020
4020
  editable: !1,
4021
- "disabled-date": m3,
4022
- "disabled-hours": H3,
4023
- "disabled-minutes": x3,
4024
- "disabled-seconds": D3,
4021
+ "disabled-date": U3,
4022
+ "disabled-hours": G3,
4023
+ "disabled-minutes": I3,
4024
+ "disabled-seconds": O3,
4025
4025
  title: "跳转到指定时间",
4026
4026
  "aria-label": "跳转到指定时间",
4027
- onChange: S2,
4027
+ onChange: I2,
4028
4028
  style: { "--el-date-editor-width": "calc(var(--cp-font-1) * 140)" }
4029
4029
  }, null, 8, ["modelValue", "type", "format"]))
4030
4030
  ]),
4031
- L("div", u4, [
4032
- L("div", {
4031
+ t("div", U4, [
4032
+ t("div", {
4033
4033
  ref_key: "trackRef",
4034
- ref: c,
4034
+ ref: r,
4035
4035
  class: "timeline-track",
4036
4036
  role: "slider",
4037
4037
  tabindex: "0",
4038
4038
  "aria-valuemin": 0,
4039
- "aria-valuemax": k.value.length - 1,
4040
- "aria-valuenow": u1.value,
4041
- "aria-valuetext": p2.value,
4042
- onPointerdown: T3,
4039
+ "aria-valuemax": K.value.length - 1,
4040
+ "aria-valuenow": B1.value,
4041
+ "aria-valuetext": $1.value,
4042
+ onPointerdown: Y3,
4043
4043
  onKeydown: [
4044
- e[4] || (e[4] = j1(o1((l) => T1(-1), ["prevent"]), ["left"])),
4045
- e[5] || (e[5] = j1(o1((l) => T1(1), ["prevent"]), ["right"])),
4046
- e[6] || (e[6] = j1(o1((l) => j(l1(0)), ["prevent"]), ["home"])),
4047
- e[7] || (e[7] = j1(o1((l) => j(l1(k.value.length - 1)), ["prevent"]), ["end"]))
4044
+ l[4] || (l[4] = a2(D1((a) => K1(-1), ["prevent"]), ["left"])),
4045
+ l[5] || (l[5] = a2(D1((a) => K1(1), ["prevent"]), ["right"])),
4046
+ l[6] || (l[6] = a2(D1((a) => u1(y1(0)), ["prevent"]), ["home"])),
4047
+ l[7] || (l[7] = a2(D1((a) => u1(y1(K.value.length - 1)), ["prevent"]), ["end"]))
4048
4048
  ]
4049
4049
  }, [
4050
- L("div", {
4051
- class: A(["active-time-popover", o3.value]),
4052
- style: D1({ left: l3.value })
4050
+ t("div", {
4051
+ class: W(["active-time-popover", f3.value]),
4052
+ style: H1({ left: M3.value })
4053
4053
  }, [
4054
- L("span", null, B(p2.value), 1)
4054
+ t("span", null, D($1.value), 1)
4055
4055
  ], 6),
4056
- L("div", {
4056
+ t("div", {
4057
4057
  class: "timeline-segments",
4058
- style: D1({ gridTemplateColumns: n3.value })
4058
+ style: H1({ gridTemplateColumns: V3.value })
4059
4059
  }, [
4060
- (g(!0), V(R, null, r1(C2.value, (l) => (g(), V("button", {
4061
- key: l.key,
4060
+ (o(!0), L(t1, null, r1(L2.value, (a) => (o(), L("button", {
4061
+ key: a.key,
4062
4062
  ref_for: !0,
4063
- ref: (r) => L3(l.startIndex, r),
4064
- class: A(["timeline-segment", {
4065
- "is-observed": l.kind === "observed",
4066
- "is-forecast": l.kind === "forecast",
4067
- "is-current": l.startIndex === V1.value,
4068
- "is-passed": l.startIndex <= V1.value,
4069
- "is-disabled": l.disabled
4063
+ ref: (p) => y3(a.startIndex, p),
4064
+ class: W(["timeline-segment", {
4065
+ "is-observed": a.kind === "observed",
4066
+ "is-forecast": a.kind === "forecast",
4067
+ "is-current": a.startIndex === A1.value,
4068
+ "is-passed": a.startIndex <= A1.value,
4069
+ "is-disabled": a.disabled
4070
4070
  }]),
4071
4071
  type: "button",
4072
- title: l.title,
4073
- disabled: l.disabled,
4074
- onPointerdown: e[3] || (e[3] = o1(() => {
4072
+ title: a.title,
4073
+ disabled: a.disabled,
4074
+ onPointerdown: l[3] || (l[3] = D1(() => {
4075
4075
  }, ["stop"])),
4076
- onClick: o1((r) => j(l.startIndex), ["stop"])
4076
+ onClick: D1((p) => u1(a.startIndex), ["stop"])
4077
4077
  }, [
4078
- L("span", Z4, B(l.label), 1)
4079
- ], 42, f4))), 128))
4078
+ t("span", O4, D(a.label), 1)
4079
+ ], 42, I4))), 128))
4080
4080
  ], 4),
4081
- _1.value ? (g(), V("div", {
4081
+ c2.value ? (o(), L("div", {
4082
4082
  key: 0,
4083
4083
  class: "now-divider",
4084
- style: D1({ left: f2.value })
4084
+ style: H1({ left: b2.value })
4085
4085
  }, null, 4)) : Y("", !0),
4086
- V2.value ? (g(), V("div", m4, [
4087
- Q2.value ? (g(), V(R, { key: 0 }, [
4088
- L("span", H4, [
4089
- e[8] || (e[8] = L("span", { class: "footer-kind is-forecast" }, "预报开始", -1)),
4090
- L("span", null, B(R2.value), 1)
4086
+ N1.value ? (o(), L("div", N4, [
4087
+ G1.value ? (o(), L(t1, { key: 0 }, [
4088
+ t("span", W4, [
4089
+ l[8] || (l[8] = t("span", { class: "footer-kind is-forecast" }, "预报开始", -1)),
4090
+ t("span", null, D(i3.value), 1)
4091
4091
  ]),
4092
- L("span", x4, [
4093
- L("span", null, B(K2.value), 1),
4094
- e[9] || (e[9] = L("span", { class: "footer-kind is-forecast" }, "预报结束", -1))
4092
+ t("span", j4, [
4093
+ t("span", null, D(c3.value), 1),
4094
+ l[9] || (l[9] = t("span", { class: "footer-kind is-forecast" }, "预报结束", -1))
4095
4095
  ])
4096
- ], 64)) : u2.value ? (g(), V(R, { key: 1 }, [
4097
- J2.value ? (g(), V("span", D4, [
4098
- e[10] || (e[10] = L("span", { class: "footer-kind is-observed" }, "实况", -1)),
4099
- L("span", null, B(X2.value), 1)
4096
+ ], 64)) : V1.value ? (o(), L(t1, { key: 1 }, [
4097
+ d3.value ? (o(), L("span", R4, [
4098
+ l[10] || (l[10] = t("span", { class: "footer-kind is-observed" }, "实况", -1)),
4099
+ t("span", null, D(v3.value), 1)
4100
4100
  ])) : Y("", !0),
4101
- _1.value ? (g(), V("span", {
4101
+ c2.value ? (o(), L("span", {
4102
4102
  key: 1,
4103
4103
  class: "timeline-scale-item timeline-scale-now",
4104
- style: D1({ left: f2.value })
4104
+ style: H1({ left: b2.value })
4105
4105
  }, [
4106
- e[11] || (e[11] = L("span", { class: "footer-kind is-current" }, "当前", -1)),
4107
- L("span", null, B(_2.value), 1)
4106
+ l[11] || (l[11] = t("span", { class: "footer-kind is-current" }, "当前", -1)),
4107
+ t("span", null, D(g3.value), 1)
4108
4108
  ], 4)) : Y("", !0),
4109
- q2.value ? (g(), V("span", y4, [
4110
- e[12] || (e[12] = L("span", { class: "footer-kind is-forecast" }, "预报", -1)),
4111
- L("span", null, B($2.value), 1)
4109
+ L3.value ? (o(), L("span", Y4, [
4110
+ l[12] || (l[12] = t("span", { class: "footer-kind is-forecast" }, "预报", -1)),
4111
+ t("span", null, D(u3.value), 1)
4112
4112
  ])) : Y("", !0)
4113
- ], 64)) : (g(), V(R, { key: 2 }, [
4114
- L("span", {
4115
- class: A(["timeline-scale-item timeline-scale-window-start", $1.value])
4113
+ ], 64)) : (o(), L(t1, { key: 2 }, [
4114
+ t("span", {
4115
+ class: W(["timeline-scale-item timeline-scale-window-start", d2.value])
4116
4116
  }, [
4117
- L("span", {
4118
- class: A(["footer-kind", $1.value])
4119
- }, B(t3.value), 3),
4120
- L("span", null, B(C3.value), 1)
4117
+ t("span", {
4118
+ class: W(["footer-kind", d2.value])
4119
+ }, D(w3.value), 3),
4120
+ t("span", null, D(h3.value), 1)
4121
4121
  ], 2),
4122
- L("span", {
4123
- class: A(["timeline-scale-item timeline-scale-window-end", $1.value])
4122
+ t("span", {
4123
+ class: W(["timeline-scale-item timeline-scale-window-end", d2.value])
4124
4124
  }, [
4125
- L("span", null, B(e3.value), 1)
4125
+ t("span", null, D(p3.value), 1)
4126
4126
  ], 2)
4127
4127
  ], 64))
4128
4128
  ])) : Y("", !0)
4129
- ], 40, V4)
4129
+ ], 40, G4)
4130
4130
  ])
4131
4131
  ], 2));
4132
4132
  }
4133
4133
  });
4134
- const k4 = /* @__PURE__ */ c1(z4, [["__scopeId", "data-v-c0137427"]]), B4 = { class: "tree-trigger__type" }, T4 = { class: "tree-trigger__content" }, E4 = ["placeholder"], S4 = {
4134
+ const K4 = /* @__PURE__ */ p1(Q4, [["__scopeId", "data-v-c0137427"]]), J4 = { class: "tree-trigger__type" }, q4 = { class: "tree-trigger__content" }, X4 = ["placeholder"], $4 = {
4135
4135
  key: 0,
4136
4136
  class: "tree-tabs",
4137
4137
  role: "tablist"
4138
- }, A4 = ["aria-selected", "onClick"], b4 = { class: "tree-tab__label" }, F4 = { class: "tree-body" }, U4 = { class: "tree-node__label" }, P4 = {
4138
+ }, e6 = ["aria-selected", "onClick"], C6 = { class: "tree-tab__label" }, t6 = { class: "tree-body" }, l6 = { class: "tree-node__label" }, n6 = {
4139
4139
  key: 0,
4140
4140
  class: "tree-node__tag"
4141
- }, G4 = 72, I4 = /* @__PURE__ */ K({
4141
+ }, o6 = 72, a6 = /* @__PURE__ */ a1({
4142
4142
  __name: "TreeSelectPanel",
4143
4143
  props: {
4144
4144
  modelValue: { default: null },
@@ -4155,215 +4155,215 @@ const k4 = /* @__PURE__ */ c1(z4, [["__scopeId", "data-v-c0137427"]]), B4 = { cl
4155
4155
  dark: { type: Boolean, default: !1 }
4156
4156
  },
4157
4157
  emits: ["update:modelValue", "change", "select"],
4158
- setup(n, { emit: v }) {
4159
- const t = n, h = v, w = S(!1), c = S(""), Z = S(""), f = S(""), u = S(null), s = S();
4160
- let a = null;
4161
- const m = {
4158
+ setup(n, { emit: f }) {
4159
+ const C = n, d = f, i = E(!1), r = E(""), m = E(""), M = E(""), u = E(null), s = E();
4160
+ let w = null;
4161
+ const x = {
4162
4162
  type: "spring",
4163
4163
  stiffness: 520,
4164
4164
  damping: 38,
4165
4165
  mass: 0.7
4166
- }, y = { y: -1 }, Q = { opacity: 0, y: -6, scale: 0.98 }, z = { opacity: 1, y: 0, scale: 1 }, G = {
4166
+ }, T = { y: -1 }, G = { opacity: 0, y: -6, scale: 0.98 }, F = { opacity: 1, y: 0, scale: 1 }, J = {
4167
4167
  type: "spring",
4168
4168
  stiffness: 480,
4169
4169
  damping: 34,
4170
4170
  mass: 0.7
4171
- }, P = {
4171
+ }, O = {
4172
4172
  type: "spring",
4173
4173
  stiffness: 520,
4174
4174
  damping: 42,
4175
4175
  mass: 0.6
4176
- }, C1 = p(() => t.categories), M1 = p(() => C1.value.find((H) => H.type === f.value) || C1.value[0]), b = p(() => {
4177
- var H;
4178
- return ((H = M1.value) == null ? void 0 : H.children) || [];
4179
- }), _ = p(() => {
4180
- var H;
4181
- return ((H = M1.value) == null ? void 0 : H.label) || t.fallbackTypeLabel;
4182
- }), y1 = p(() => !!(c.value || t.modelValue !== null)), z1 = p(() => typeof t.popoverWidth == "number" ? `${t.popoverWidth}px` : t.popoverWidth), e1 = p(() => {
4183
- for (const H of C1.value) {
4184
- const D = A1(H.children, t.modelValue);
4185
- if (D)
4186
- return D.label;
4176
+ }, s1 = g(() => C.categories), _ = g(() => s1.value.find((A) => A.type === M.value) || s1.value[0]), Z = g(() => {
4177
+ var A;
4178
+ return ((A = _.value) == null ? void 0 : A.children) || [];
4179
+ }), j = g(() => {
4180
+ var A;
4181
+ return ((A = _.value) == null ? void 0 : A.label) || C.fallbackTypeLabel;
4182
+ }), I = g(() => !!(r.value || C.modelValue !== null)), o1 = g(() => typeof C.popoverWidth == "number" ? `${C.popoverWidth}px` : C.popoverWidth), q = g(() => {
4183
+ for (const A of s1.value) {
4184
+ const P = L1(A.children, C.modelValue);
4185
+ if (P)
4186
+ return P.label;
4187
4187
  }
4188
4188
  return "";
4189
4189
  }), i1 = {
4190
4190
  label: "label",
4191
4191
  children: "children",
4192
4192
  disabled: "disabled"
4193
- }, F = () => {
4194
- t1(), w.value = !0;
4195
- }, E1 = () => {
4196
- F(), c.value === e1.value && (Z.value = "");
4197
- }, s1 = () => {
4198
- Z.value = c.value, F();
4193
+ }, Q = () => {
4194
+ h(), i.value = !0;
4195
+ }, b1 = () => {
4196
+ Q(), r.value === q.value && (m.value = "");
4197
+ }, c1 = () => {
4198
+ m.value = r.value, Q();
4199
4199
  }, g1 = () => {
4200
- c.value = "", Z.value = "", h("update:modelValue", null), F(), p1(() => {
4201
- var H;
4202
- return (H = s.value) == null ? void 0 : H.filter("");
4200
+ r.value = "", m.value = "", d("update:modelValue", null), Q(), T1(() => {
4201
+ var A;
4202
+ return (A = s.value) == null ? void 0 : A.filter("");
4203
4203
  });
4204
4204
  }, d1 = () => {
4205
- t1(), w.value = !1;
4206
- }, a1 = (H) => {
4207
- var I;
4208
- const D = H.target;
4209
- D && ((I = u.value) != null && I.contains(D)) || d1();
4210
- }, t1 = () => {
4211
- a && (window.clearTimeout(a), a = null);
4212
- }, w1 = () => t1(), $ = () => {
4213
- t1(), a = window.setTimeout(() => {
4214
- d1(), a = null;
4205
+ h(), i.value = !1;
4206
+ }, M1 = (A) => {
4207
+ var N;
4208
+ const P = A.target;
4209
+ P && ((N = u.value) != null && N.contains(P)) || d1();
4210
+ }, h = () => {
4211
+ w && (window.clearTimeout(w), w = null);
4212
+ }, k = () => h(), b = () => {
4213
+ h(), w = window.setTimeout(() => {
4214
+ d1(), w = null;
4215
4215
  }, 120);
4216
- }, S1 = (H) => {
4217
- H.disabled || !M1.value || (h("update:modelValue", H.id), h("select", H, M1.value), h("change", { node: H, category: M1.value }), c.value = H.label, Z.value = "", p1(() => {
4218
- var D;
4219
- return (D = s.value) == null ? void 0 : D.filter("");
4220
- }), t.closeOnSelect && d1());
4221
- }, q1 = (H, D) => H ? String(D.label ?? "").toLowerCase().includes(H.trim().toLowerCase()) : !0, A1 = (H, D) => {
4222
- if (D == null)
4216
+ }, w1 = (A) => {
4217
+ A.disabled || !_.value || (d("update:modelValue", A.id), d("select", A, _.value), d("change", { node: A, category: _.value }), r.value = A.label, m.value = "", T1(() => {
4218
+ var P;
4219
+ return (P = s.value) == null ? void 0 : P.filter("");
4220
+ }), C.closeOnSelect && d1());
4221
+ }, X = (A, P) => A ? String(P.label ?? "").toLowerCase().includes(A.trim().toLowerCase()) : !0, L1 = (A, P) => {
4222
+ if (P == null)
4223
4223
  return null;
4224
- for (const I of H) {
4225
- if (I.id === D)
4226
- return I;
4227
- const J = A1(I.children || [], D);
4228
- if (J)
4229
- return J;
4224
+ for (const N of A) {
4225
+ if (N.id === P)
4226
+ return N;
4227
+ const e1 = L1(N.children || [], P);
4228
+ if (e1)
4229
+ return e1;
4230
4230
  }
4231
4231
  return null;
4232
4232
  };
4233
- return W(C1, (H) => {
4234
- if (!H.length) {
4235
- f.value = "";
4233
+ return l1(s1, (A) => {
4234
+ if (!A.length) {
4235
+ M.value = "";
4236
4236
  return;
4237
4237
  }
4238
- const D = H.some((J) => J.type === t.defaultActiveType) ? t.defaultActiveType : H[0].type, I = H.some((J) => J.type === f.value);
4239
- f.value = I ? f.value : D;
4240
- }, { immediate: !0 }), W(() => t.defaultActiveType, (H) => {
4241
- H && C1.value.some((D) => D.type === H) && (f.value = H);
4242
- }), W(Z, (H) => {
4243
- var D;
4244
- (D = s.value) == null || D.filter(H);
4245
- }), W(f, () => {
4246
- p1(() => {
4247
- var H;
4248
- return (H = s.value) == null ? void 0 : H.filter(Z.value);
4238
+ const P = A.some((e1) => e1.type === C.defaultActiveType) ? C.defaultActiveType : A[0].type, N = A.some((e1) => e1.type === M.value);
4239
+ M.value = N ? M.value : P;
4240
+ }, { immediate: !0 }), l1(() => C.defaultActiveType, (A) => {
4241
+ A && s1.value.some((P) => P.type === A) && (M.value = A);
4242
+ }), l1(m, (A) => {
4243
+ var P;
4244
+ (P = s.value) == null || P.filter(A);
4245
+ }), l1(M, () => {
4246
+ T1(() => {
4247
+ var A;
4248
+ return (A = s.value) == null ? void 0 : A.filter(m.value);
4249
4249
  });
4250
- }), W(e1, (H) => {
4251
- w.value || (c.value = H, Z.value = "");
4252
- }, { immediate: !0 }), W(w, (H) => {
4253
- if (H) {
4254
- c.value === e1.value && (Z.value = "", p1(() => {
4255
- var D;
4256
- return (D = s.value) == null ? void 0 : D.filter("");
4250
+ }), l1(q, (A) => {
4251
+ i.value || (r.value = A, m.value = "");
4252
+ }, { immediate: !0 }), l1(i, (A) => {
4253
+ if (A) {
4254
+ r.value === q.value && (m.value = "", T1(() => {
4255
+ var P;
4256
+ return (P = s.value) == null ? void 0 : P.filter("");
4257
4257
  }));
4258
4258
  return;
4259
4259
  }
4260
- c.value = e1.value, Z.value = "";
4261
- }), Q1(() => {
4262
- document.addEventListener("pointerdown", a1);
4263
- }), h2(() => {
4264
- t1(), document.removeEventListener("pointerdown", a1);
4265
- }), (H, D) => (g(), V("div", {
4260
+ r.value = q.value, m.value = "";
4261
+ }), P1(() => {
4262
+ document.addEventListener("pointerdown", M1);
4263
+ }), I1(() => {
4264
+ h(), document.removeEventListener("pointerdown", M1);
4265
+ }), (A, P) => (o(), L("div", {
4266
4266
  ref_key: "selectRef",
4267
4267
  ref: u,
4268
- class: A(["tree-select", { "is-dark": n.dark }]),
4269
- onMouseenter: w1,
4270
- onMouseleave: $
4268
+ class: W(["tree-select", { "is-dark": n.dark }]),
4269
+ onMouseenter: k,
4270
+ onMouseleave: b
4271
4271
  }, [
4272
- T(x(v2).div, {
4272
+ U(H(y2).div, {
4273
4273
  class: "tree-trigger",
4274
4274
  role: "combobox",
4275
4275
  tabindex: "0",
4276
- "aria-expanded": w.value,
4277
- "while-hover": y,
4278
- transition: m,
4279
- onClick: o1(F, ["stop"])
4276
+ "aria-expanded": i.value,
4277
+ "while-hover": T,
4278
+ transition: x,
4279
+ onClick: D1(Q, ["stop"])
4280
4280
  }, {
4281
- default: O(() => [
4282
- L("span", B4, B(_.value), 1),
4283
- L("span", T4, [
4284
- Y1(L("input", {
4285
- "onUpdate:modelValue": D[0] || (D[0] = (I) => c.value = I),
4281
+ default: R(() => [
4282
+ t("span", J4, D(j.value), 1),
4283
+ t("span", q4, [
4284
+ _1(t("input", {
4285
+ "onUpdate:modelValue": P[0] || (P[0] = (N) => r.value = N),
4286
4286
  class: "tree-trigger__input",
4287
4287
  placeholder: n.placeholder,
4288
- onFocus: E1,
4289
- onClick: o1(F, ["stop"]),
4290
- onInput: s1
4291
- }, null, 40, E4), [
4292
- [I2, c.value]
4288
+ onFocus: b1,
4289
+ onClick: D1(Q, ["stop"]),
4290
+ onInput: c1
4291
+ }, null, 40, X4), [
4292
+ [C3, r.value]
4293
4293
  ]),
4294
- y1.value ? (g(), V("button", {
4294
+ I.value ? (o(), L("button", {
4295
4295
  key: 0,
4296
4296
  class: "tree-trigger__clear",
4297
4297
  type: "button",
4298
4298
  "aria-label": "清空",
4299
- onClick: o1(g1, ["stop"])
4299
+ onClick: D1(g1, ["stop"])
4300
4300
  })) : Y("", !0),
4301
- L("span", {
4302
- class: A(["tree-trigger__arrow", { "is-open": w.value }])
4301
+ t("span", {
4302
+ class: W(["tree-trigger__arrow", { "is-open": i.value }])
4303
4303
  }, null, 2)
4304
4304
  ])
4305
4305
  ]),
4306
4306
  _: 1
4307
4307
  }, 8, ["aria-expanded"]),
4308
- T(O3, { name: "tree-panel-fade" }, {
4309
- default: O(() => [
4310
- w.value ? (g(), q(x(v2).section, {
4308
+ U(X3, { name: "tree-panel-fade" }, {
4309
+ default: R(() => [
4310
+ i.value ? (o(), n1(H(y2).section, {
4311
4311
  key: 0,
4312
4312
  class: "tree-panel",
4313
- style: D1({ width: z1.value }),
4314
- initial: Q,
4315
- animate: z,
4316
- transition: G,
4317
- onClick: D[1] || (D[1] = o1(() => {
4313
+ style: H1({ width: o1.value }),
4314
+ initial: G,
4315
+ animate: F,
4316
+ transition: J,
4317
+ onClick: P[1] || (P[1] = D1(() => {
4318
4318
  }, ["stop"]))
4319
4319
  }, {
4320
- default: O(() => [
4321
- C1.value.length > 1 ? (g(), V("div", S4, [
4322
- (g(!0), V(R, null, r1(C1.value, (I) => (g(), V("button", {
4323
- key: I.type,
4324
- class: A(["tree-tab", { "is-active": I.type === f.value }]),
4320
+ default: R(() => [
4321
+ s1.value.length > 1 ? (o(), L("div", $4, [
4322
+ (o(!0), L(t1, null, r1(s1.value, (N) => (o(), L("button", {
4323
+ key: N.type,
4324
+ class: W(["tree-tab", { "is-active": N.type === M.value }]),
4325
4325
  type: "button",
4326
4326
  role: "tab",
4327
- "aria-selected": I.type === f.value,
4328
- onClick: (J) => f.value = I.type
4327
+ "aria-selected": N.type === M.value,
4328
+ onClick: (e1) => M.value = N.type
4329
4329
  }, [
4330
- I.type === f.value ? (g(), q(x(v2).span, {
4330
+ N.type === M.value ? (o(), n1(H(y2).span, {
4331
4331
  key: 0,
4332
4332
  class: "tree-tab__active",
4333
4333
  "layout-id": "tree-select-active-tab",
4334
- transition: P
4334
+ transition: O
4335
4335
  })) : Y("", !0),
4336
- L("span", b4, B(I.label), 1)
4337
- ], 10, A4))), 128))
4336
+ t("span", C6, D(N.label), 1)
4337
+ ], 10, e6))), 128))
4338
4338
  ])) : Y("", !0),
4339
- L("div", F4, [
4340
- b.value.length ? (g(), q(x(G2), {
4339
+ t("div", t6, [
4340
+ Z.value.length ? (o(), n1(H(q2), {
4341
4341
  key: 0,
4342
4342
  ref_key: "treeRef",
4343
4343
  ref: s,
4344
- data: b.value,
4344
+ data: Z.value,
4345
4345
  "node-key": "id",
4346
4346
  props: i1,
4347
- "filter-node-method": q1,
4347
+ "filter-node-method": X,
4348
4348
  "expand-on-click-node": !1,
4349
4349
  "default-expand-all": n.defaultExpandAll,
4350
4350
  "highlight-current": "",
4351
- onNodeClick: S1
4351
+ onNodeClick: w1
4352
4352
  }, {
4353
- default: O(({ node: I, data: J }) => [
4354
- L("button", {
4355
- class: A(["tree-node", { "is-selected": J.id === n.modelValue }]),
4353
+ default: R(({ node: N, data: e1 }) => [
4354
+ t("button", {
4355
+ class: W(["tree-node", { "is-selected": e1.id === n.modelValue }]),
4356
4356
  type: "button"
4357
4357
  }, [
4358
- L("span", U4, B(I.label), 1),
4359
- J.tag ? (g(), V("span", P4, B(J.tag), 1)) : Y("", !0)
4358
+ t("span", l6, D(N.label), 1),
4359
+ e1.tag ? (o(), L("span", n6, D(e1.tag), 1)) : Y("", !0)
4360
4360
  ], 2)
4361
4361
  ]),
4362
4362
  _: 1
4363
- }, 8, ["data", "default-expand-all"])) : (g(), q(x(A3), {
4363
+ }, 8, ["data", "default-expand-all"])) : (o(), n1(H(Q3), {
4364
4364
  key: 1,
4365
4365
  class: "tree-empty",
4366
- "image-size": G4,
4366
+ "image-size": o6,
4367
4367
  description: n.emptyText
4368
4368
  }, null, 8, ["description"]))
4369
4369
  ])
@@ -4376,7 +4376,7 @@ const k4 = /* @__PURE__ */ c1(z4, [["__scopeId", "data-v-c0137427"]]), B4 = { cl
4376
4376
  ], 34));
4377
4377
  }
4378
4378
  });
4379
- const O4 = /* @__PURE__ */ c1(I4, [["__scopeId", "data-v-bb2a715c"]]), W4 = ["aria-label"], N4 = ["onClick"], j4 = /* @__PURE__ */ K({
4379
+ const r6 = /* @__PURE__ */ p1(a6, [["__scopeId", "data-v-bb2a715c"]]), s6 = ["aria-label"], i6 = ["onClick"], c6 = /* @__PURE__ */ a1({
4380
4380
  __name: "TimeRangeQuickSelect",
4381
4381
  props: {
4382
4382
  modelValue: {},
@@ -4384,34 +4384,34 @@ const O4 = /* @__PURE__ */ c1(I4, [["__scopeId", "data-v-bb2a715c"]]), W4 = ["ar
4384
4384
  ariaLabel: { default: "时间范围快捷选择" }
4385
4385
  },
4386
4386
  emits: ["update:modelValue", "change"],
4387
- setup(n, { emit: v }) {
4388
- const t = v;
4389
- function h(w) {
4390
- t("update:modelValue", w.key), t("change", w);
4387
+ setup(n, { emit: f }) {
4388
+ const C = f;
4389
+ function d(i) {
4390
+ C("update:modelValue", i.key), C("change", i);
4391
4391
  }
4392
- return (w, c) => (g(), V("div", {
4392
+ return (i, r) => (o(), L("div", {
4393
4393
  class: "time-range-quick-select",
4394
4394
  role: "group",
4395
4395
  "aria-label": n.ariaLabel
4396
4396
  }, [
4397
- (g(!0), V(R, null, r1(n.options, (Z) => (g(), V("button", {
4398
- key: Z.key,
4397
+ (o(!0), L(t1, null, r1(n.options, (m) => (o(), L("button", {
4398
+ key: m.key,
4399
4399
  type: "button",
4400
- class: A(["time-range-quick-select__button", { "is-active": n.modelValue === Z.key }]),
4401
- onClick: (f) => h(Z)
4402
- }, B(Z.label), 11, N4))), 128))
4403
- ], 8, W4));
4400
+ class: W(["time-range-quick-select__button", { "is-active": n.modelValue === m.key }]),
4401
+ onClick: (M) => d(m)
4402
+ }, D(m.label), 11, i6))), 128))
4403
+ ], 8, s6));
4404
4404
  }
4405
4405
  });
4406
- const Y4 = /* @__PURE__ */ c1(j4, [["__scopeId", "data-v-d0145980"]]), Q4 = {
4406
+ const d6 = /* @__PURE__ */ p1(c6, [["__scopeId", "data-v-d0145980"]]), L6 = {
4407
4407
  key: 0,
4408
4408
  class: "project-menu primary-nav",
4409
4409
  "aria-label": "横向菜单样式"
4410
- }, R4 = { class: "primary-nav-scroll" }, K4 = ["onClick", "disabled", "aria-disabled", "aria-current"], J4 = {
4410
+ }, v6 = { class: "primary-nav-scroll" }, g6 = ["onClick", "disabled", "aria-disabled", "aria-current"], u6 = {
4411
4411
  key: 1,
4412
4412
  class: "project-menu vertical-menu",
4413
4413
  "aria-label": "纵向菜单样式"
4414
- }, q4 = ["aria-expanded", "onClick"], X4 = { class: "menu-list" }, _4 = ["onClick", "disabled", "aria-disabled", "aria-current"], $4 = { class: "menu-label" }, C6 = /* @__PURE__ */ K({
4414
+ }, h6 = ["aria-expanded", "onClick"], p6 = { class: "menu-list" }, w6 = ["onClick", "disabled", "aria-disabled", "aria-current"], M6 = { class: "menu-label" }, f6 = /* @__PURE__ */ a1({
4415
4415
  __name: "ProjectMenu",
4416
4416
  props: {
4417
4417
  direction: { default: "horizontal" },
@@ -4420,83 +4420,83 @@ const Y4 = /* @__PURE__ */ c1(j4, [["__scopeId", "data-v-d0145980"]]), Q4 = {
4420
4420
  groups: { default: () => [] }
4421
4421
  },
4422
4422
  emits: ["update:active", "select"],
4423
- setup(n, { emit: v }) {
4424
- const t = n, h = v, w = S(t.active), c = S([]);
4425
- W(() => t.active, (u) => w.value = u);
4426
- function Z(u) {
4427
- u.disabled || (w.value = u.key, h("update:active", u.key), h("select", u));
4423
+ setup(n, { emit: f }) {
4424
+ const C = n, d = f, i = E(C.active), r = E([]);
4425
+ l1(() => C.active, (u) => i.value = u);
4426
+ function m(u) {
4427
+ u.disabled || (i.value = u.key, d("update:active", u.key), d("select", u));
4428
4428
  }
4429
- function f(u) {
4430
- c.value = c.value.includes(u) ? c.value.filter((s) => s !== u) : [...c.value, u];
4429
+ function M(u) {
4430
+ r.value = r.value.includes(u) ? r.value.filter((s) => s !== u) : [...r.value, u];
4431
4431
  }
4432
- return (u, s) => n.direction === "horizontal" ? (g(), V("nav", Q4, [
4433
- L("div", R4, [
4434
- (g(!0), V(R, null, r1(n.items, (a) => (g(), V("button", {
4432
+ return (u, s) => n.direction === "horizontal" ? (o(), L("nav", L6, [
4433
+ t("div", v6, [
4434
+ (o(!0), L(t1, null, r1(n.items, (w) => (o(), L("button", {
4435
4435
  type: "button",
4436
- onClick: (m) => Z(a),
4437
- disabled: a.disabled,
4438
- key: a.key,
4439
- class: A(["primary-nav-link", { active: w.value === a.key, "is-disabled": a.disabled }]),
4440
- "aria-disabled": a.disabled || void 0,
4441
- "aria-current": w.value === a.key ? "page" : void 0
4442
- }, B(a.label), 11, K4))), 128))
4436
+ onClick: (x) => m(w),
4437
+ disabled: w.disabled,
4438
+ key: w.key,
4439
+ class: W(["primary-nav-link", { active: i.value === w.key, "is-disabled": w.disabled }]),
4440
+ "aria-disabled": w.disabled || void 0,
4441
+ "aria-current": i.value === w.key ? "page" : void 0
4442
+ }, D(w.label), 11, g6))), 128))
4443
4443
  ])
4444
- ])) : (g(), V("nav", J4, [
4445
- (g(!0), V(R, null, r1(n.groups, (a) => (g(), V("section", {
4446
- key: a.label,
4444
+ ])) : (o(), L("nav", u6, [
4445
+ (o(!0), L(t1, null, r1(n.groups, (w) => (o(), L("section", {
4446
+ key: w.label,
4447
4447
  class: "menu-section"
4448
4448
  }, [
4449
- L("button", {
4449
+ t("button", {
4450
4450
  type: "button",
4451
4451
  class: "section-title",
4452
- "aria-expanded": !c.value.includes(a.label),
4453
- onClick: (m) => f(a.label)
4452
+ "aria-expanded": !r.value.includes(w.label),
4453
+ onClick: (x) => M(w.label)
4454
4454
  }, [
4455
- L("span", null, B(a.label), 1),
4456
- T(x(n1), {
4457
- class: A(["section-arrow", { open: !c.value.includes(a.label) }])
4455
+ t("span", null, D(w.label), 1),
4456
+ U(H(h1), {
4457
+ class: W(["section-arrow", { open: !r.value.includes(w.label) }])
4458
4458
  }, {
4459
- default: O(() => [
4460
- T(x(Q3))
4459
+ default: R(() => [
4460
+ U(H(l3))
4461
4461
  ]),
4462
4462
  _: 1
4463
4463
  }, 8, ["class"])
4464
- ], 8, q4),
4465
- Y1(L("ul", X4, [
4466
- (g(!0), V(R, null, r1(a.items, (m) => (g(), V("li", {
4467
- key: m.key
4464
+ ], 8, h6),
4465
+ _1(t("ul", p6, [
4466
+ (o(!0), L(t1, null, r1(w.items, (x) => (o(), L("li", {
4467
+ key: x.key
4468
4468
  }, [
4469
- L("button", {
4469
+ t("button", {
4470
4470
  type: "button",
4471
- onClick: (y) => Z(m),
4472
- disabled: m.disabled,
4473
- class: A(["menu-link", { active: w.value === m.key, "is-disabled": m.disabled }]),
4474
- "aria-disabled": m.disabled || void 0,
4475
- "aria-current": w.value === m.key ? "page" : void 0
4471
+ onClick: (T) => m(x),
4472
+ disabled: x.disabled,
4473
+ class: W(["menu-link", { active: i.value === x.key, "is-disabled": x.disabled }]),
4474
+ "aria-disabled": x.disabled || void 0,
4475
+ "aria-current": i.value === x.key ? "page" : void 0
4476
4476
  }, [
4477
- T(x(n1), { class: "menu-icon" }, {
4478
- default: O(() => [
4479
- (g(), q(K1(m.icon || x(N2))))
4477
+ U(H(h1), { class: "menu-icon" }, {
4478
+ default: R(() => [
4479
+ (o(), n1(s2(x.icon || H(k2))))
4480
4480
  ]),
4481
4481
  _: 2
4482
4482
  }, 1024),
4483
- L("span", $4, B(m.label), 1)
4484
- ], 10, _4)
4483
+ t("span", M6, D(x.label), 1)
4484
+ ], 10, w6)
4485
4485
  ]))), 128))
4486
4486
  ], 512), [
4487
- [O2, !c.value.includes(a.label)]
4487
+ [q1, !r.value.includes(w.label)]
4488
4488
  ])
4489
4489
  ]))), 128))
4490
4490
  ]));
4491
4491
  }
4492
4492
  });
4493
- const e6 = /* @__PURE__ */ c1(C6, [["__scopeId", "data-v-58cb5430"]]), t6 = { class: "tree-tools" }, l6 = { class: "tool-row" }, o6 = ["aria-expanded"], n6 = {
4493
+ const V6 = /* @__PURE__ */ p1(f6, [["__scopeId", "data-v-58cb5430"]]), m6 = { class: "tree-tools" }, Z6 = { class: "tool-row" }, H6 = ["aria-expanded"], x6 = {
4494
4494
  key: 0,
4495
4495
  class: "tree-search"
4496
- }, r6 = { class: "tree-scroll" }, i6 = ["aria-expanded"], s6 = { class: "node-orb node-orb--parent" }, a6 = { class: "node-label node-label--parent" }, L6 = { class: "child-list" }, c6 = ["onClick", "aria-current", "aria-pressed"], d6 = {
4496
+ }, y6 = { class: "tree-scroll" }, D6 = ["aria-expanded"], k6 = { class: "node-orb node-orb--parent" }, b6 = { class: "node-label node-label--parent" }, z6 = { class: "child-list" }, S6 = ["onClick", "aria-current", "aria-pressed"], T6 = {
4497
4497
  key: 0,
4498
4498
  class: "empty-menu"
4499
- }, v6 = /* @__PURE__ */ K({
4499
+ }, B6 = /* @__PURE__ */ a1({
4500
4500
  __name: "MapSideMenu",
4501
4501
  props: {
4502
4502
  flat: { type: Boolean, default: !1 },
@@ -4507,137 +4507,137 @@ const e6 = /* @__PURE__ */ c1(C6, [["__scopeId", "data-v-58cb5430"]]), t6 = { cl
4507
4507
  dark: { type: Boolean, default: !1 },
4508
4508
  compact: { type: Boolean, default: !1 },
4509
4509
  items: { default: () => [
4510
- { key: "rain", label: "降水", icon: R3 },
4511
- { key: "reservoir-level", label: "水库水位", icon: d2 },
4512
- { key: "reservoir-flow", label: "水库径流", icon: U2 },
4513
- { key: "river-level", label: "河道水位", icon: d2 },
4514
- { key: "river-flow", label: "河道径流", icon: U2 },
4515
- { key: "temperature", label: "气温", icon: K3 },
4516
- { key: "wind", label: "风速", icon: J3 }
4510
+ { key: "rain", label: "降水", icon: a4 },
4511
+ { key: "reservoir-level", label: "水库水位", icon: x2 },
4512
+ { key: "reservoir-flow", label: "水库径流", icon: j2 },
4513
+ { key: "river-level", label: "河道水位", icon: x2 },
4514
+ { key: "river-flow", label: "河道径流", icon: j2 },
4515
+ { key: "temperature", label: "气温", icon: r4 },
4516
+ { key: "wind", label: "风速", icon: s4 }
4517
4517
  ] }
4518
4518
  },
4519
4519
  emits: ["update:active", "update:activeKeys", "change", "update:compact", "select"],
4520
- setup(n, { emit: v }) {
4521
- const t = n, h = v, w = S(t.active), c = S([...t.activeKeys]);
4522
- W(() => t.activeKeys, (z) => c.value = [...z], { deep: !0 });
4523
- const Z = S(t.compact), f = S(!0), u = S(!1), s = S("");
4524
- W(() => t.active, (z) => w.value = z), W(() => t.compact, (z) => Z.value = z);
4525
- const a = p(() => t.items.filter((z) => z.label.toLowerCase().includes(s.value.trim().toLowerCase())));
4526
- function m(z) {
4527
- return t.multiple ? c.value.includes(z) : w.value === z;
4520
+ setup(n, { emit: f }) {
4521
+ const C = n, d = f, i = E(C.active), r = E([...C.activeKeys]);
4522
+ l1(() => C.activeKeys, (F) => r.value = [...F], { deep: !0 });
4523
+ const m = E(C.compact), M = E(!0), u = E(!1), s = E("");
4524
+ l1(() => C.active, (F) => i.value = F), l1(() => C.compact, (F) => m.value = F);
4525
+ const w = g(() => C.items.filter((F) => F.label.toLowerCase().includes(s.value.trim().toLowerCase())));
4526
+ function x(F) {
4527
+ return C.multiple ? r.value.includes(F) : i.value === F;
4528
4528
  }
4529
- function y(z) {
4530
- if (t.multiple) {
4531
- const G = c.value.includes(z.key) ? c.value.filter((P) => P !== z.key) : [.../* @__PURE__ */ new Set([...c.value, z.key])];
4532
- c.value = G, h("update:activeKeys", [...G]), h("change", [...G]);
4529
+ function T(F) {
4530
+ if (C.multiple) {
4531
+ const J = r.value.includes(F.key) ? r.value.filter((O) => O !== F.key) : [.../* @__PURE__ */ new Set([...r.value, F.key])];
4532
+ r.value = J, d("update:activeKeys", [...J]), d("change", [...J]);
4533
4533
  } else
4534
- w.value = z.key, h("update:active", z.key), h("change", [z.key]);
4535
- h("select", z);
4534
+ i.value = F.key, d("update:active", F.key), d("change", [F.key]);
4535
+ d("select", F);
4536
4536
  }
4537
- function Q() {
4538
- Z.value = !Z.value, h("update:compact", Z.value);
4537
+ function G() {
4538
+ m.value = !m.value, d("update:compact", m.value);
4539
4539
  }
4540
- return (z, G) => (g(), V("nav", {
4541
- class: A(["map-side-menu has-tools", { "is-flat": n.flat, "is-dark": n.dark, "is-labels-hidden": Z.value, "is-searching": u.value }]),
4540
+ return (F, J) => (o(), L("nav", {
4541
+ class: W(["map-side-menu has-tools", { "is-flat": n.flat, "is-dark": n.dark, "is-labels-hidden": m.value, "is-searching": u.value }]),
4542
4542
  "aria-label": "地图胶囊菜单样式"
4543
4543
  }, [
4544
- L("div", t6, [
4545
- L("div", l6, [
4546
- L("button", {
4544
+ t("div", m6, [
4545
+ t("div", Z6, [
4546
+ t("button", {
4547
4547
  type: "button",
4548
4548
  class: "tool-toggle",
4549
4549
  "aria-expanded": u.value,
4550
- onClick: G[0] || (G[0] = (P) => u.value = !u.value)
4550
+ onClick: J[0] || (J[0] = (O) => u.value = !u.value)
4551
4551
  }, [
4552
- T(x(n1), null, {
4553
- default: O(() => [
4554
- T(x(q3))
4552
+ U(H(h1), null, {
4553
+ default: R(() => [
4554
+ U(H(n3))
4555
4555
  ]),
4556
4556
  _: 1
4557
4557
  }),
4558
- G[3] || (G[3] = L("span", null, "搜索菜单", -1))
4559
- ], 8, o6),
4560
- L("button", {
4558
+ J[3] || (J[3] = t("span", null, "搜索菜单", -1))
4559
+ ], 8, H6),
4560
+ t("button", {
4561
4561
  type: "button",
4562
4562
  class: "tool-toggle label-toggle",
4563
4563
  "aria-label": "切换图标模式",
4564
- onClick: Q
4564
+ onClick: G
4565
4565
  }, [
4566
- T(x(n1), null, {
4567
- default: O(() => [
4568
- T(x(X3))
4566
+ U(H(h1), null, {
4567
+ default: R(() => [
4568
+ U(H(i4))
4569
4569
  ]),
4570
4570
  _: 1
4571
4571
  })
4572
4572
  ])
4573
4573
  ]),
4574
- u.value ? (g(), V("label", n6, [
4575
- Y1(L("input", {
4576
- "onUpdate:modelValue": G[1] || (G[1] = (P) => s.value = P),
4574
+ u.value ? (o(), L("label", x6, [
4575
+ _1(t("input", {
4576
+ "onUpdate:modelValue": J[1] || (J[1] = (O) => s.value = O),
4577
4577
  placeholder: "搜索菜单项"
4578
4578
  }, null, 512), [
4579
- [I2, s.value]
4579
+ [C3, s.value]
4580
4580
  ])
4581
4581
  ])) : Y("", !0)
4582
4582
  ]),
4583
- L("div", r6, [
4584
- L("section", {
4585
- class: A(["tree-section", { "is-open": f.value }])
4583
+ t("div", y6, [
4584
+ t("section", {
4585
+ class: W(["tree-section", { "is-open": M.value }])
4586
4586
  }, [
4587
- n.flat ? Y("", !0) : (g(), V("button", {
4587
+ n.flat ? Y("", !0) : (o(), L("button", {
4588
4588
  key: 0,
4589
4589
  type: "button",
4590
4590
  class: "tree-node tree-node--parent active",
4591
- "aria-expanded": f.value,
4592
- onClick: G[2] || (G[2] = (P) => f.value = !f.value)
4591
+ "aria-expanded": M.value,
4592
+ onClick: J[2] || (J[2] = (O) => M.value = !M.value)
4593
4593
  }, [
4594
- L("span", s6, [
4595
- T(x(n1), null, {
4596
- default: O(() => [
4597
- T(x(_3))
4594
+ t("span", k6, [
4595
+ U(H(h1), null, {
4596
+ default: R(() => [
4597
+ U(H(c4))
4598
4598
  ]),
4599
4599
  _: 1
4600
4600
  })
4601
4601
  ]),
4602
- L("span", a6, B(n.title), 1)
4603
- ], 8, i6)),
4604
- Y1(L("div", L6, [
4605
- (g(!0), V(R, null, r1(a.value, (P) => (g(), V("button", {
4602
+ t("span", b6, D(n.title), 1)
4603
+ ], 8, D6)),
4604
+ _1(t("div", z6, [
4605
+ (o(!0), L(t1, null, r1(w.value, (O) => (o(), L("button", {
4606
4606
  type: "button",
4607
- onClick: (C1) => y(P),
4608
- key: P.key,
4609
- class: A(["tree-node", [n.flat ? "tree-node--parent" : "tree-node--child", { active: m(P.key) }]]),
4610
- "aria-current": !n.multiple && m(P.key) ? "page" : void 0,
4611
- "aria-pressed": n.multiple ? m(P.key) : void 0
4607
+ onClick: (s1) => T(O),
4608
+ key: O.key,
4609
+ class: W(["tree-node", [n.flat ? "tree-node--parent" : "tree-node--child", { active: x(O.key) }]]),
4610
+ "aria-current": !n.multiple && x(O.key) ? "page" : void 0,
4611
+ "aria-pressed": n.multiple ? x(O.key) : void 0
4612
4612
  }, [
4613
- L("span", {
4614
- class: A(["node-orb", n.flat ? "node-orb--parent" : "node-orb--child"])
4613
+ t("span", {
4614
+ class: W(["node-orb", n.flat ? "node-orb--parent" : "node-orb--child"])
4615
4615
  }, [
4616
- T(x(n1), null, {
4617
- default: O(() => [
4618
- (g(), q(K1(P.icon || x(d2))))
4616
+ U(H(h1), null, {
4617
+ default: R(() => [
4618
+ (o(), n1(s2(O.icon || H(x2))))
4619
4619
  ]),
4620
4620
  _: 2
4621
4621
  }, 1024)
4622
4622
  ], 2),
4623
- L("span", {
4624
- class: A(["node-label", n.flat ? "node-label--parent" : "node-label--child"])
4625
- }, B(P.label), 3)
4626
- ], 10, c6))), 128)),
4627
- a.value.length ? Y("", !0) : (g(), V("span", d6, "未找到匹配菜单"))
4623
+ t("span", {
4624
+ class: W(["node-label", n.flat ? "node-label--parent" : "node-label--child"])
4625
+ }, D(O.label), 3)
4626
+ ], 10, S6))), 128)),
4627
+ w.value.length ? Y("", !0) : (o(), L("span", T6, "未找到匹配菜单"))
4628
4628
  ], 512), [
4629
- [O2, n.flat || f.value]
4629
+ [q1, n.flat || M.value]
4630
4630
  ])
4631
4631
  ], 2)
4632
4632
  ])
4633
4633
  ], 2));
4634
4634
  }
4635
4635
  });
4636
- const h6 = /* @__PURE__ */ c1(v6, [["__scopeId", "data-v-32ee36c8"]]), g6 = {
4636
+ const A6 = /* @__PURE__ */ p1(B6, [["__scopeId", "data-v-32ee36c8"]]), E6 = {
4637
4637
  class: "map-toolbar__buttons",
4638
4638
  role: "group",
4639
4639
  "aria-label": "地图工具样式"
4640
- }, w6 = ["onClick", "title", "aria-label"], p6 = /* @__PURE__ */ K({
4640
+ }, F6 = ["onClick", "title", "aria-label"], _6 = /* @__PURE__ */ a1({
4641
4641
  __name: "MapTools",
4642
4642
  props: {
4643
4643
  active: { default: "layers" },
@@ -4646,44 +4646,47 @@ const h6 = /* @__PURE__ */ c1(v6, [["__scopeId", "data-v-32ee36c8"]]), g6 = {
4646
4646
  items: {}
4647
4647
  },
4648
4648
  emits: ["update:active", "tool-click", "context-change"],
4649
- setup(n, { emit: v }) {
4650
- const t = n, h = [
4651
- { key: "layers", label: "图层", icon: $3 },
4652
- { key: "module", label: "模块操作", icon: C4 },
4653
- { key: "refresh", label: "刷新", icon: W2 },
4654
- { key: "locate", label: "定位", icon: e4 },
4655
- { key: "settings", label: "地图设置", icon: t4 },
4656
- { key: "analysis", label: "空间分析", icon: N2 },
4657
- { key: "context", label: "右键菜单", icon: l4 }
4658
- ], w = p(() => t.items ?? h), c = v, Z = S(t.active), f = S(!1);
4659
- W(() => t.active, (s) => Z.value = s);
4649
+ setup(n, { emit: f }) {
4650
+ const C = n, d = [
4651
+ { key: "layers", label: "图层", icon: d4 },
4652
+ { key: "module", label: "模块操作", icon: L4 },
4653
+ { key: "refresh", label: "刷新", icon: t3 },
4654
+ { key: "locate", label: "定位", icon: v4 },
4655
+ { key: "settings", label: "地图设置", icon: g4 },
4656
+ { key: "analysis", label: "空间分析", icon: k2 },
4657
+ { key: "context", label: "右键菜单", icon: u4 }
4658
+ ], i = g(() => C.items ?? d), r = f, m = E(C.active), M = E(!1);
4659
+ l1(() => C.active, (s) => m.value = s);
4660
4660
  function u(s) {
4661
- s === "context" ? (f.value = !f.value, c("context-change", f.value)) : s !== "refresh" && s !== "locate" && (Z.value = Z.value === s ? "" : s, c("update:active", Z.value)), c("tool-click", s);
4661
+ s === "context" ? (M.value = !M.value, r("context-change", M.value)) : s !== "refresh" && s !== "locate" && (m.value = m.value === s ? "" : s, r("update:active", m.value)), r("tool-click", s);
4662
4662
  }
4663
- return (s, a) => (g(), V("div", {
4664
- class: A(["map-toolbar", { horizontal: n.horizontal }])
4663
+ return (s, w) => (o(), L("div", {
4664
+ class: W(["map-toolbar", { horizontal: n.horizontal }])
4665
4665
  }, [
4666
- L("div", g6, [
4667
- (g(!0), V(R, null, r1(w.value, (m) => (g(), V("button", {
4666
+ t("div", E6, [
4667
+ f1(s.$slots, "before", {}, void 0, !0),
4668
+ (o(!0), L(t1, null, r1(i.value, (x) => (o(), L("button", {
4668
4669
  type: "button",
4669
- onClick: (y) => u(m.key),
4670
- key: m.key,
4671
- class: A(["tool-button", { "is-active": m.key === "context" ? f.value : Z.value === m.key }]),
4672
- title: m.label,
4673
- "aria-label": m.label
4670
+ onClick: (T) => u(x.key),
4671
+ key: x.key,
4672
+ class: W(["tool-button", { "is-active": x.key === "context" ? M.value : m.value === x.key }]),
4673
+ title: x.label,
4674
+ "aria-label": x.label
4674
4675
  }, [
4675
- T(x(n1), null, {
4676
- default: O(() => [
4677
- (g(), q(K1(n.icons[m.key] || m.icon)))
4676
+ U(H(h1), null, {
4677
+ default: R(() => [
4678
+ (o(), n1(s2(n.icons[x.key] || x.icon)))
4678
4679
  ]),
4679
4680
  _: 2
4680
4681
  }, 1024)
4681
- ], 10, w6))), 128))
4682
- ])
4682
+ ], 10, F6))), 128)),
4683
+ f1(s.$slots, "after", {}, void 0, !0)
4684
+ ]),
4685
+ f1(s.$slots, "panel", {}, void 0, !0)
4683
4686
  ], 2));
4684
4687
  }
4685
4688
  });
4686
- const M6 = /* @__PURE__ */ c1(p6, [["__scopeId", "data-v-fb28ec7d"]]), u6 = { key: 0 }, V6 = /* @__PURE__ */ K({
4689
+ const P6 = /* @__PURE__ */ p1(_6, [["__scopeId", "data-v-97e8947c"]]), U6 = { key: 0 }, G6 = /* @__PURE__ */ a1({
4687
4690
  __name: "AtlasMapTitle",
4688
4691
  props: {
4689
4692
  title: {},
@@ -4691,15 +4694,15 @@ const M6 = /* @__PURE__ */ c1(p6, [["__scopeId", "data-v-fb28ec7d"]]), u6 = { ke
4691
4694
  rightOpen: { type: Boolean, default: !1 }
4692
4695
  },
4693
4696
  setup(n) {
4694
- return (v, t) => (g(), V("div", {
4695
- class: A(["atlas-map-title", { "is-right-open": n.rightOpen }])
4697
+ return (f, C) => (o(), L("div", {
4698
+ class: W(["atlas-map-title", { "is-right-open": n.rightOpen }])
4696
4699
  }, [
4697
- L("h2", null, B(n.title), 1),
4698
- n.subtitle ? (g(), V("p", u6, B(n.subtitle), 1)) : Y("", !0)
4700
+ t("h2", null, D(n.title), 1),
4701
+ n.subtitle ? (o(), L("p", U6, D(n.subtitle), 1)) : Y("", !0)
4699
4702
  ], 2));
4700
4703
  }
4701
4704
  });
4702
- const f6 = /* @__PURE__ */ c1(V6, [["__scopeId", "data-v-3eb3cdeb"]]), Z6 = ["title", "aria-label"], m6 = /* @__PURE__ */ K({
4705
+ const I6 = /* @__PURE__ */ p1(G6, [["__scopeId", "data-v-3eb3cdeb"]]), O6 = ["title", "aria-label"], N6 = /* @__PURE__ */ a1({
4703
4706
  __name: "AtlasRightToggleButton",
4704
4707
  props: {
4705
4708
  open: { type: Boolean, default: !1 },
@@ -4708,23 +4711,23 @@ const f6 = /* @__PURE__ */ c1(V6, [["__scopeId", "data-v-3eb3cdeb"]]), Z6 = ["ti
4708
4711
  },
4709
4712
  emits: ["toggle"],
4710
4713
  setup(n) {
4711
- return (v, t) => (g(), V("button", {
4714
+ return (f, C) => (o(), L("button", {
4712
4715
  type: "button",
4713
- class: A(["atlas-right-toggle-button", { "is-open": n.open }]),
4716
+ class: W(["atlas-right-toggle-button", { "is-open": n.open }]),
4714
4717
  title: n.open ? n.closeTitle : n.openTitle,
4715
4718
  "aria-label": n.open ? n.closeTitle : n.openTitle,
4716
- onClick: t[0] || (t[0] = (h) => v.$emit("toggle"))
4719
+ onClick: C[0] || (C[0] = (d) => f.$emit("toggle"))
4717
4720
  }, [
4718
- T(x(n1), null, {
4719
- default: O(() => [
4720
- n.open ? (g(), q(x(o4), { key: 0 })) : (g(), q(x(n4), { key: 1 }))
4721
+ U(H(h1), null, {
4722
+ default: R(() => [
4723
+ n.open ? (o(), n1(H(h4), { key: 0 })) : (o(), n1(H(p4), { key: 1 }))
4721
4724
  ]),
4722
4725
  _: 1
4723
4726
  })
4724
- ], 10, Z6));
4727
+ ], 10, O6));
4725
4728
  }
4726
4729
  });
4727
- const H6 = /* @__PURE__ */ c1(m6, [["__scopeId", "data-v-dde1443b"]]), x6 = { class: "process-data-table" }, D6 = { key: 0 }, y6 = { class: "process-data-table__scroll" }, z6 = { key: 0 }, k6 = { class: "process-data-table__pages" }, B6 = ["disabled"], T6 = ["disabled"], E6 = /* @__PURE__ */ K({
4730
+ const W6 = /* @__PURE__ */ p1(N6, [["__scopeId", "data-v-dde1443b"]]), j6 = { class: "process-data-table" }, R6 = { key: 0 }, Y6 = { class: "process-data-table__scroll" }, Q6 = { key: 0 }, K6 = { class: "process-data-table__pages" }, J6 = ["disabled"], q6 = ["disabled"], X6 = /* @__PURE__ */ a1({
4728
4731
  __name: "ProcessDataTable",
4729
4732
  props: {
4730
4733
  times: {},
@@ -4732,75 +4735,75 @@ const H6 = /* @__PURE__ */ c1(m6, [["__scopeId", "data-v-dde1443b"]]), x6 = { cl
4732
4735
  loading: { type: Boolean }
4733
4736
  },
4734
4737
  setup(n) {
4735
- const v = n, t = S(0), h = p(() => t.value * 100), w = p(() => Math.max(1, Math.ceil(v.times.length / 100))), c = p(() => v.times.slice(h.value, h.value + 100));
4736
- return W(() => v.times, () => {
4737
- t.value = 0;
4738
- }), (Z, f) => (g(), V("div", x6, [
4739
- n.loading ? (g(), V("p", D6, "查询中…")) : (g(), V(R, { key: 1 }, [
4740
- L("div", y6, [
4741
- L("table", null, [
4742
- L("thead", null, [
4743
- L("tr", null, [
4744
- f[2] || (f[2] = L("th", null, "时间", -1)),
4745
- (g(!0), V(R, null, r1(n.series, (u, s) => (g(), V("th", { key: s }, B(u.name), 1))), 128))
4738
+ const f = n, C = E(0), d = g(() => C.value * 100), i = g(() => Math.max(1, Math.ceil(f.times.length / 100))), r = g(() => f.times.slice(d.value, d.value + 100));
4739
+ return l1(() => f.times, () => {
4740
+ C.value = 0;
4741
+ }), (m, M) => (o(), L("div", j6, [
4742
+ n.loading ? (o(), L("p", R6, "查询中…")) : (o(), L(t1, { key: 1 }, [
4743
+ t("div", Y6, [
4744
+ t("table", null, [
4745
+ t("thead", null, [
4746
+ t("tr", null, [
4747
+ M[2] || (M[2] = t("th", null, "时间", -1)),
4748
+ (o(!0), L(t1, null, r1(n.series, (u, s) => (o(), L("th", { key: s }, D(u.name), 1))), 128))
4746
4749
  ])
4747
4750
  ]),
4748
- L("tbody", null, [
4749
- (g(!0), V(R, null, r1(c.value, (u, s) => (g(), V("tr", { key: u }, [
4750
- L("th", null, B(u), 1),
4751
- (g(!0), V(R, null, r1(n.series, (a, m) => (g(), V("td", { key: m }, B(a.data[h.value + s] ?? "—"), 1))), 128))
4751
+ t("tbody", null, [
4752
+ (o(!0), L(t1, null, r1(r.value, (u, s) => (o(), L("tr", { key: u }, [
4753
+ t("th", null, D(u), 1),
4754
+ (o(!0), L(t1, null, r1(n.series, (w, x) => (o(), L("td", { key: x }, D(w.data[d.value + s] ?? "—"), 1))), 128))
4752
4755
  ]))), 128))
4753
4756
  ])
4754
4757
  ]),
4755
- n.times.length ? Y("", !0) : (g(), V("p", z6, "暂无数据"))
4758
+ n.times.length ? Y("", !0) : (o(), L("p", Q6, "暂无数据"))
4756
4759
  ]),
4757
- L("div", k6, [
4758
- L("button", {
4760
+ t("div", K6, [
4761
+ t("button", {
4759
4762
  type: "button",
4760
- disabled: t.value === 0,
4761
- onClick: f[0] || (f[0] = (u) => t.value--)
4762
- }, "上一页", 8, B6),
4763
- L("span", null, B(t.value + 1) + " / " + B(w.value) + " · 共 " + B(n.times.length) + " 条", 1),
4764
- L("button", {
4763
+ disabled: C.value === 0,
4764
+ onClick: M[0] || (M[0] = (u) => C.value--)
4765
+ }, "上一页", 8, J6),
4766
+ t("span", null, D(C.value + 1) + " / " + D(i.value) + " · 共 " + D(n.times.length) + " 条", 1),
4767
+ t("button", {
4765
4768
  type: "button",
4766
- disabled: t.value + 1 >= w.value,
4767
- onClick: f[1] || (f[1] = (u) => t.value++)
4768
- }, "下一页", 8, T6)
4769
+ disabled: C.value + 1 >= i.value,
4770
+ onClick: M[1] || (M[1] = (u) => C.value++)
4771
+ }, "下一页", 8, q6)
4769
4772
  ])
4770
4773
  ], 64))
4771
4774
  ]));
4772
4775
  }
4773
4776
  });
4774
- const S6 = /* @__PURE__ */ c1(E6, [["__scopeId", "data-v-c7c380b1"]]), A6 = /* @__PURE__ */ K({
4777
+ const o3 = /* @__PURE__ */ p1(X6, [["__scopeId", "data-v-c7c380b1"]]), $6 = /* @__PURE__ */ a1({
4775
4778
  __name: "WorkbenchShell",
4776
4779
  props: {
4777
4780
  collapsed: { type: Boolean, default: !1 }
4778
4781
  },
4779
4782
  setup(n) {
4780
- return (v, t) => (g(), V("div", {
4781
- class: A(["sky-workbench app-shell", { "sidebar-hidden": n.collapsed }])
4783
+ return (f, C) => (o(), L("div", {
4784
+ class: W(["sky-workbench app-shell", { "sidebar-hidden": n.collapsed }])
4782
4785
  }, [
4783
- R1(v.$slots, "default")
4786
+ f1(f.$slots, "default")
4784
4787
  ], 2));
4785
4788
  }
4786
4789
  });
4787
- const b6 = /* @__PURE__ */ K({
4790
+ const e5 = /* @__PURE__ */ a1({
4788
4791
  __name: "WorkbenchPanel",
4789
4792
  props: {
4790
4793
  as: { default: "section" },
4791
4794
  floating: { type: Boolean, default: !0 }
4792
4795
  },
4793
4796
  setup(n) {
4794
- return (v, t) => (g(), q(K1(n.as), {
4795
- class: A(["sky-workbench-panel", { floating: n.floating }])
4797
+ return (f, C) => (o(), n1(s2(n.as), {
4798
+ class: W(["sky-workbench-panel", { floating: n.floating }])
4796
4799
  }, {
4797
- default: O(() => [
4798
- R1(v.$slots, "default")
4800
+ default: R(() => [
4801
+ f1(f.$slots, "default")
4799
4802
  ]),
4800
4803
  _: 3
4801
4804
  }, 8, ["class"]));
4802
4805
  }
4803
- }), F6 = { class: "metric" }, U6 = { key: 0 }, P6 = /* @__PURE__ */ K({
4806
+ }), C5 = { class: "metric" }, t5 = { key: 0 }, l5 = /* @__PURE__ */ a1({
4804
4807
  __name: "MetricCard",
4805
4808
  props: {
4806
4809
  label: {},
@@ -4810,62 +4813,63 @@ const b6 = /* @__PURE__ */ K({
4810
4813
  compact: { type: Boolean, default: !1 }
4811
4814
  },
4812
4815
  setup(n) {
4813
- return (v, t) => (g(), V("div", F6, [
4814
- v.$slots.icon ? (g(), V("span", {
4816
+ return (f, C) => (o(), L("div", C5, [
4817
+ f.$slots.icon ? (o(), L("span", {
4815
4818
  key: 0,
4816
- class: A(["metric-icon", n.tone])
4819
+ class: W(["metric-icon", n.tone])
4817
4820
  }, [
4818
- R1(v.$slots, "icon")
4821
+ f1(f.$slots, "icon")
4819
4822
  ], 2)) : Y("", !0),
4820
- L("div", null, [
4821
- L("span", null, B(n.label), 1),
4822
- L("strong", {
4823
- class: A({ "batch-number": n.compact })
4823
+ t("div", null, [
4824
+ t("span", null, D(n.label), 1),
4825
+ t("strong", {
4826
+ class: W({ "batch-number": n.compact })
4824
4827
  }, [
4825
- x1(B(n.value), 1),
4826
- n.unit ? (g(), V("small", U6, B(n.unit), 1)) : Y("", !0)
4828
+ k1(D(n.value), 1),
4829
+ n.unit ? (o(), L("small", t5, D(n.unit), 1)) : Y("", !0)
4827
4830
  ], 2)
4828
4831
  ])
4829
4832
  ]));
4830
4833
  }
4831
- }), G6 = ["aria-label"], I6 = /* @__PURE__ */ K({
4834
+ }), n5 = ["aria-label"], o5 = /* @__PURE__ */ a1({
4832
4835
  __name: "ProcessChart",
4833
4836
  props: {
4834
4837
  rows: {},
4835
4838
  engine: {},
4836
4839
  kind: { default: "rain" },
4837
- unit: { default: "" }
4840
+ unit: { default: "" },
4841
+ label: {}
4838
4842
  },
4839
4843
  setup(n) {
4840
- const v = n, t = S();
4841
- let h, w, c;
4842
- function Z() {
4843
- if (!h || !t.value)
4844
+ const f = n, C = E();
4845
+ let d, i, r;
4846
+ function m() {
4847
+ if (!d || !C.value)
4844
4848
  return;
4845
- const f = getComputedStyle(t.value), u = (y, Q) => f.getPropertyValue(y).trim() || Q, s = u("--userssite-color-primary", "#1677ff"), a = u("--userssite-color-muted", "#75869b"), m = u("--userssite-color-border", "#e3eaf3");
4846
- h.setOption({
4849
+ const M = getComputedStyle(C.value), u = (T, G) => M.getPropertyValue(T).trim() || G, s = u("--userssite-color-primary", "#1677ff"), w = u("--userssite-color-muted", "#75869b"), x = u("--userssite-color-border", "#e3eaf3");
4850
+ d.setOption({
4847
4851
  animation: !1,
4848
4852
  grid: { left: 48, right: 24, top: 28, bottom: 42 },
4849
- tooltip: { trigger: "axis", backgroundColor: u("--userssite-color-panel", "#fff"), borderColor: m, textStyle: { color: u("--userssite-color-text", "#1f2937") }, valueFormatter: (y) => y === null ? "缺测" : `${y} ${v.unit}` },
4850
- xAxis: { type: "category", data: v.rows.map((y) => y.time), axisLabel: { color: a, hideOverlap: !0, formatter: (y) => y.replace("T", " ").slice(5, 16) }, axisLine: { lineStyle: { color: m } }, axisTick: { show: !1 } },
4851
- yAxis: { type: "value", name: v.unit, nameTextStyle: { color: a }, splitLine: { lineStyle: { color: m, type: "dashed" } }, axisLabel: { color: a } },
4853
+ tooltip: { trigger: "axis", backgroundColor: u("--userssite-color-panel", "#fff"), borderColor: x, textStyle: { color: u("--userssite-color-text", "#1f2937") }, valueFormatter: (T) => T === null ? "缺测" : `${T} ${f.unit}` },
4854
+ xAxis: { type: "category", data: f.rows.map((T) => T.time), axisLabel: { color: w, hideOverlap: !0, formatter: (T) => T.replace("T", " ").slice(5, 16) }, axisLine: { lineStyle: { color: x } }, axisTick: { show: !1 } },
4855
+ yAxis: { type: "value", name: f.unit, nameTextStyle: { color: w }, splitLine: { lineStyle: { color: x, type: "dashed" } }, axisLabel: { color: w } },
4852
4856
  dataZoom: [{ type: "inside" }],
4853
- series: [{ type: v.kind === "rain" ? "bar" : "line", data: v.rows.map((y) => y.value), showSymbol: !1, connectNulls: !1, barMaxWidth: 12, itemStyle: { color: s, borderRadius: [3, 3, 0, 0] }, lineStyle: { width: 2.5, color: s }, areaStyle: v.kind === "rain" ? void 0 : { color: s, opacity: 0.08 } }]
4857
+ series: [{ type: f.kind === "rain" ? "bar" : "line", data: f.rows.map((T) => T.value), showSymbol: !1, connectNulls: !1, barMaxWidth: 12, itemStyle: { color: s, borderRadius: [3, 3, 0, 0] }, lineStyle: { width: 2.5, color: s }, areaStyle: f.kind === "rain" ? void 0 : { color: s, opacity: 0.08 } }]
4854
4858
  }, !0);
4855
4859
  }
4856
- return Q1(() => {
4857
- t.value && (h = v.engine.init(t.value), w = new ResizeObserver(() => h == null ? void 0 : h.resize()), w.observe(t.value), c = new MutationObserver(Z), c.observe(document.documentElement, { attributes: !0, attributeFilter: ["class", "style"] }), Z());
4858
- }), W(() => [v.rows, v.kind, v.unit], Z, { deep: !0 }), h2(() => {
4859
- w == null || w.disconnect(), c == null || c.disconnect(), h == null || h.dispose();
4860
- }), (f, u) => (g(), V("div", {
4860
+ return P1(() => {
4861
+ C.value && (d = f.engine.init(C.value), i = new ResizeObserver(() => d == null ? void 0 : d.resize()), i.observe(C.value), r = new MutationObserver(m), r.observe(document.documentElement, { attributes: !0, attributeFilter: ["class", "style"] }), m());
4862
+ }), l1(() => [f.rows, f.kind, f.unit], m, { deep: !0 }), I1(() => {
4863
+ i == null || i.disconnect(), r == null || r.disconnect(), d == null || d.dispose();
4864
+ }), (M, u) => (o(), L("div", {
4861
4865
  ref_key: "element",
4862
- ref: t,
4866
+ ref: C,
4863
4867
  class: "chart-canvas",
4864
4868
  role: "img",
4865
- "aria-label": `${n.kind === "rain" ? "降雨" : "流量"}过程图,共 ${n.rows.length} 条记录,单位 ${n.unit}`
4866
- }, null, 8, G6));
4869
+ "aria-label": `${n.label || (n.kind === "rain" ? "降雨" : n.kind === "flow" ? "流量" : "数据")}过程图,共 ${n.rows.length} 条记录,单位 ${n.unit}`
4870
+ }, null, 8, n5));
4867
4871
  }
4868
- }), O6 = { class: "sky-layer-control" }, W6 = { class: "sky-layer-section" }, N6 = { class: "sky-layer-section" }, j6 = { class: "sky-layer-heading" }, Y6 = { class: "sky-layer-row" }, Q6 = /* @__PURE__ */ K({
4872
+ }), a5 = { class: "sky-layer-control" }, r5 = { class: "sky-layer-section" }, s5 = { class: "sky-layer-section" }, i5 = { class: "sky-layer-heading" }, c5 = { class: "sky-layer-row" }, d5 = /* @__PURE__ */ a1({
4869
4873
  __name: "MapLayerControl",
4870
4874
  props: {
4871
4875
  nodes: {},
@@ -4873,128 +4877,128 @@ const b6 = /* @__PURE__ */ K({
4873
4877
  annotation: { type: Boolean, default: !0 }
4874
4878
  },
4875
4879
  emits: ["update:basemap", "update:annotation", "visibility", "opacity", "move", "remove", "locate", "close"],
4876
- setup(n, { emit: v }) {
4877
- const t = v, h = S(), w = S(""), c = S(!1), Z = (u, s) => !u || String(s.name).includes(u);
4878
- function f(u, s, a) {
4879
- t("move", u.data.id, s.data.id, a);
4880
+ setup(n, { emit: f }) {
4881
+ const C = f, d = E(), i = E(""), r = E(!1), m = (u, s) => !u || String(s.name).includes(u);
4882
+ function M(u, s, w) {
4883
+ C("move", u.data.id, s.data.id, w);
4880
4884
  }
4881
- return (u, s) => (g(), V("section", O6, [
4882
- L("header", null, [
4883
- s[7] || (s[7] = L("strong", null, "图层控制", -1)),
4884
- T(x(W1), {
4885
+ return (u, s) => (o(), L("section", a5, [
4886
+ t("header", null, [
4887
+ s[7] || (s[7] = t("strong", null, "图层控制", -1)),
4888
+ U(H(o2), {
4885
4889
  text: "",
4886
4890
  "aria-label": "关闭图层面板",
4887
- onClick: s[0] || (s[0] = (a) => t("close"))
4891
+ onClick: s[0] || (s[0] = (w) => C("close"))
4888
4892
  }, {
4889
- default: O(() => [...s[6] || (s[6] = [
4890
- x1("×", -1)
4893
+ default: R(() => [...s[6] || (s[6] = [
4894
+ k1("×", -1)
4891
4895
  ])]),
4892
4896
  _: 1
4893
4897
  })
4894
4898
  ]),
4895
- L("div", W6, [
4896
- s[9] || (s[9] = L("strong", null, "底图", -1)),
4897
- T(x(b3), {
4899
+ t("div", r5, [
4900
+ s[9] || (s[9] = t("strong", null, "底图", -1)),
4901
+ U(H(X2), {
4898
4902
  "model-value": n.basemap,
4899
4903
  "aria-label": "底图类型",
4900
- "onUpdate:modelValue": s[1] || (s[1] = (a) => t("update:basemap", a))
4904
+ "onUpdate:modelValue": s[1] || (s[1] = (w) => C("update:basemap", w))
4901
4905
  }, {
4902
- default: O(() => [
4903
- T(x(N1), {
4906
+ default: R(() => [
4907
+ U(H(J1), {
4904
4908
  label: "天地图影像",
4905
4909
  value: "imagery"
4906
4910
  }),
4907
- T(x(N1), {
4911
+ U(H(J1), {
4908
4912
  label: "天地图矢量",
4909
4913
  value: "street"
4910
4914
  }),
4911
- T(x(N1), {
4915
+ U(H(J1), {
4912
4916
  label: "天地图地形",
4913
4917
  value: "terrain"
4914
4918
  }),
4915
- T(x(N1), {
4919
+ U(H(J1), {
4916
4920
  label: "无底图",
4917
4921
  value: "none"
4918
4922
  })
4919
4923
  ]),
4920
4924
  _: 1
4921
4925
  }, 8, ["model-value"]),
4922
- T(x(b2), {
4926
+ U(H(N2), {
4923
4927
  "model-value": n.annotation,
4924
- "onUpdate:modelValue": s[2] || (s[2] = (a) => t("update:annotation", !!a))
4928
+ "onUpdate:modelValue": s[2] || (s[2] = (w) => C("update:annotation", !!w))
4925
4929
  }, {
4926
- default: O(() => [...s[8] || (s[8] = [
4927
- x1("地名注记", -1)
4930
+ default: R(() => [...s[8] || (s[8] = [
4931
+ k1("地名注记", -1)
4928
4932
  ])]),
4929
4933
  _: 1
4930
4934
  }, 8, ["model-value"])
4931
4935
  ]),
4932
- L("div", N6, [
4933
- L("div", j6, [
4934
- s[10] || (s[10] = L("strong", null, "参考与业务图层", -1)),
4935
- T(x(W1), {
4936
+ t("div", s5, [
4937
+ t("div", i5, [
4938
+ s[10] || (s[10] = t("strong", null, "参考与业务图层", -1)),
4939
+ U(H(o2), {
4936
4940
  text: "",
4937
- type: c.value ? "primary" : "default",
4938
- onClick: s[3] || (s[3] = (a) => c.value = !c.value)
4941
+ type: r.value ? "primary" : "default",
4942
+ onClick: s[3] || (s[3] = (w) => r.value = !r.value)
4939
4943
  }, {
4940
- default: O(() => [
4941
- x1(B(c.value ? "完成排序" : "拖拽排序"), 1)
4944
+ default: R(() => [
4945
+ k1(D(r.value ? "完成排序" : "拖拽排序"), 1)
4942
4946
  ]),
4943
4947
  _: 1
4944
4948
  }, 8, ["type"])
4945
4949
  ]),
4946
- T(x(F3), {
4947
- modelValue: w.value,
4948
- "onUpdate:modelValue": s[4] || (s[4] = (a) => w.value = a),
4950
+ U(H($2), {
4951
+ modelValue: i.value,
4952
+ "onUpdate:modelValue": s[4] || (s[4] = (w) => i.value = w),
4949
4953
  placeholder: "搜索图层",
4950
4954
  clearable: "",
4951
- onInput: s[5] || (s[5] = (a) => {
4952
- var m;
4953
- return (m = h.value) == null ? void 0 : m.filter(w.value);
4955
+ onInput: s[5] || (s[5] = (w) => {
4956
+ var x;
4957
+ return (x = d.value) == null ? void 0 : x.filter(i.value);
4954
4958
  })
4955
4959
  }, null, 8, ["modelValue"]),
4956
- T(x(G2), {
4960
+ U(H(q2), {
4957
4961
  ref_key: "tree",
4958
- ref: h,
4962
+ ref: d,
4959
4963
  data: n.nodes,
4960
4964
  "node-key": "id",
4961
4965
  props: { label: "name", children: "children" },
4962
4966
  "default-expand-all": "",
4963
- "filter-node-method": Z,
4964
- draggable: c.value,
4965
- "allow-drag": (a) => !a.data.disabled,
4966
- "allow-drop": (a, m, y) => y !== "inner" && !m.data.disabled,
4967
- onNodeDrop: f
4967
+ "filter-node-method": m,
4968
+ draggable: r.value,
4969
+ "allow-drag": (w) => !w.data.disabled,
4970
+ "allow-drop": (w, x, T) => T !== "inner" && !x.data.disabled,
4971
+ onNodeDrop: M
4968
4972
  }, {
4969
- default: O(({ data: a }) => [
4970
- L("div", Y6, [
4971
- T(x(b2), {
4972
- "model-value": !!a.visible,
4973
- disabled: a.disabled,
4974
- "aria-label": a.name,
4975
- "onUpdate:modelValue": (m) => t("visibility", a, !!m)
4973
+ default: R(({ data: w }) => [
4974
+ t("div", c5, [
4975
+ U(H(N2), {
4976
+ "model-value": !!w.visible,
4977
+ disabled: w.disabled,
4978
+ "aria-label": w.name,
4979
+ "onUpdate:modelValue": (x) => C("visibility", w, !!x)
4976
4980
  }, null, 8, ["model-value", "disabled", "aria-label", "onUpdate:modelValue"]),
4977
- L("span", null, B(a.name), 1),
4978
- a.children ? Y("", !0) : (g(), V(R, { key: 0 }, [
4979
- T(x(W1), {
4981
+ t("span", null, D(w.name), 1),
4982
+ w.children ? Y("", !0) : (o(), L(t1, { key: 0 }, [
4983
+ U(H(o2), {
4980
4984
  text: "",
4981
- disabled: a.disabled,
4982
- "aria-label": "定位" + a.name,
4983
- onClick: o1((m) => t("locate", a), ["stop"])
4985
+ disabled: w.disabled,
4986
+ "aria-label": "定位" + w.name,
4987
+ onClick: D1((x) => C("locate", w), ["stop"])
4984
4988
  }, {
4985
- default: O(() => [...s[11] || (s[11] = [
4986
- x1("⌖", -1)
4989
+ default: R(() => [...s[11] || (s[11] = [
4990
+ k1("⌖", -1)
4987
4991
  ])]),
4988
4992
  _: 1
4989
4993
  }, 8, ["disabled", "aria-label", "onClick"]),
4990
- a.removable ? (g(), q(x(W1), {
4994
+ w.removable ? (o(), n1(H(o2), {
4991
4995
  key: 0,
4992
4996
  text: "",
4993
- "aria-label": "移除" + a.name,
4994
- onClick: o1((m) => t("remove", a), ["stop"])
4997
+ "aria-label": "移除" + w.name,
4998
+ onClick: D1((x) => C("remove", w), ["stop"])
4995
4999
  }, {
4996
- default: O(() => [...s[12] || (s[12] = [
4997
- x1("×", -1)
5000
+ default: R(() => [...s[12] || (s[12] = [
5001
+ k1("×", -1)
4998
5002
  ])]),
4999
5003
  _: 1
5000
5004
  }, 8, ["aria-label", "onClick"])) : Y("", !0)
@@ -5003,158 +5007,1662 @@ const b6 = /* @__PURE__ */ K({
5003
5007
  ]),
5004
5008
  _: 1
5005
5009
  }, 8, ["data", "draggable", "allow-drag", "allow-drop"]),
5006
- (g(!0), V(R, null, r1(n.nodes.filter((a) => !a.children && !a.disabled), (a) => (g(), V("div", {
5007
- key: a.id,
5010
+ (o(!0), L(t1, null, r1(n.nodes.filter((w) => !w.children && !w.disabled), (w) => (o(), L("div", {
5011
+ key: w.id,
5008
5012
  class: "sky-layer-opacity"
5009
5013
  }, [
5010
- L("span", null, B(a.name) + "透明度", 1),
5011
- T(x(U3), {
5012
- "model-value": a.opacity ?? 100,
5013
- "aria-label": a.name + "透明度",
5014
- "onUpdate:modelValue": (m) => t("opacity", a, Number(m))
5014
+ t("span", null, D(w.name) + "透明度", 1),
5015
+ U(H(K3), {
5016
+ "model-value": w.opacity ?? 100,
5017
+ "aria-label": w.name + "透明度",
5018
+ "onUpdate:modelValue": (x) => C("opacity", w, Number(x))
5015
5019
  }, null, 8, ["model-value", "aria-label", "onUpdate:modelValue"])
5016
5020
  ]))), 128))
5017
5021
  ]),
5018
- s[13] || (s[13] = L("footer", null, "图层顺序由上到下 · 分组支持整体显隐", -1))
5022
+ s[13] || (s[13] = t("footer", null, "图层顺序由上到下 · 分组支持整体显隐", -1))
5019
5023
  ]));
5020
5024
  }
5021
5025
  });
5022
- const R6 = /* @__PURE__ */ c1(Q6, [["__scopeId", "data-v-4ecd4fde"]]), r9 = v4, i9 = i(h4), s9 = i(k4), a9 = i(O4), L9 = i(Y4), c9 = i(e6), d9 = i(h6), v9 = i(M6), h9 = i(f6), g9 = i(H6), w9 = i(S6), p9 = i(A6), M9 = i(b6), u9 = i(P6), V9 = i(I6), f9 = i(R6);
5026
+ const L5 = /* @__PURE__ */ p1(d5, [["__scopeId", "data-v-4ecd4fde"]]), v5 = {
5027
+ key: 0,
5028
+ class: "sky-template-layout__top"
5029
+ }, g5 = {
5030
+ key: 1,
5031
+ class: "sky-template-layout__toolbar"
5032
+ }, u5 = { class: "sky-template-layout__right" }, h5 = {
5033
+ key: 2,
5034
+ class: "sky-template-layout__legend"
5035
+ }, p5 = { class: "sky-template-layout__content" }, w5 = /* @__PURE__ */ a1({
5036
+ __name: "TemplateLayout",
5037
+ props: {
5038
+ rightOpen: { type: Boolean, default: !1 },
5039
+ rightPanelEnabled: { type: Boolean, default: !0 },
5040
+ rightPanelWidth: { default: "" },
5041
+ toolbarTop: { default: "" },
5042
+ contentTop: { default: "" },
5043
+ edge: { default: "" },
5044
+ variant: { default: "workbench" }
5045
+ },
5046
+ setup(n) {
5047
+ const f = n, C = e3(), d = g(() => f.rightOpen && f.rightPanelEnabled && !!C.right), i = E(null), r = E(0);
5048
+ let m;
5049
+ return P1(() => {
5050
+ m = new ResizeObserver(() => {
5051
+ var M;
5052
+ r.value = ((M = i.value) == null ? void 0 : M.getBoundingClientRect().height) || 0;
5053
+ }), i.value && m.observe(i.value);
5054
+ }), l1(i, (M, u) => {
5055
+ u && (m == null || m.unobserve(u)), M ? m == null || m.observe(M) : r.value = 0;
5056
+ }), I1(() => m == null ? void 0 : m.disconnect()), (M, u) => (o(), L("div", {
5057
+ class: W(["sky-template-layout", { "is-right-open": d.value, "sky-template-layout--atlas": n.variant === "atlas" }]),
5058
+ style: H1({ ...n.contentTop ? { top: n.contentTop } : {}, ...n.edge ? { "--template-edge": n.edge, "--template-right-top": n.edge, "--template-right-bottom": n.edge } : {}, ...n.rightPanelWidth ? { "--template-panel-width": n.rightPanelWidth } : {}, ...n.toolbarTop ? { "--template-toolbar-top": n.toolbarTop } : {}, "--template-timeline-height": `${r.value}px` })
5059
+ }, [
5060
+ M.$slots.top ? (o(), L("section", v5, [
5061
+ f1(M.$slots, "top", {}, void 0, !0)
5062
+ ])) : Y("", !0),
5063
+ M.$slots.toolbar ? (o(), L("section", g5, [
5064
+ f1(M.$slots, "toolbar", {}, void 0, !0)
5065
+ ])) : Y("", !0),
5066
+ _1(t("section", u5, [
5067
+ f1(M.$slots, "right", {}, void 0, !0)
5068
+ ], 512), [
5069
+ [q1, d.value]
5070
+ ]),
5071
+ M.$slots.legend ? (o(), L("section", h5, [
5072
+ f1(M.$slots, "legend", {}, void 0, !0)
5073
+ ])) : Y("", !0),
5074
+ M.$slots.timeline ? (o(), L("section", {
5075
+ key: 3,
5076
+ ref_key: "timeline",
5077
+ ref: i,
5078
+ class: "sky-template-layout__timeline"
5079
+ }, [
5080
+ f1(M.$slots, "timeline", {}, void 0, !0)
5081
+ ], 512)) : Y("", !0),
5082
+ t("div", p5, [
5083
+ f1(M.$slots, "content", {}, void 0, !0),
5084
+ f1(M.$slots, "default", {}, void 0, !0)
5085
+ ])
5086
+ ], 6));
5087
+ }
5088
+ });
5089
+ const M5 = /* @__PURE__ */ p1(w5, [["__scopeId", "data-v-eb5d129a"]]), f5 = { class: "atlas-ranking-panel" }, V5 = /* @__PURE__ */ a1({
5090
+ name: "AtlasRankingPanel",
5091
+ __name: "AtlasRankingPanel",
5092
+ setup(n) {
5093
+ return (f, C) => (o(), L("section", f5, [
5094
+ f1(f.$slots, "default", {}, void 0, !0)
5095
+ ]));
5096
+ }
5097
+ });
5098
+ const a3 = /* @__PURE__ */ p1(V5, [["__scopeId", "data-v-51c665ea"]]), m5 = { class: "rainfall-ranking__header" }, Z5 = { class: "rainfall-ranking__tools" }, H5 = { class: "rainfall-ranking__tool-actions" }, x5 = ["title", "aria-label"], y5 = {
5099
+ key: 0,
5100
+ class: "rainfall-ranking__source"
5101
+ }, D5 = {
5102
+ key: 1,
5103
+ class: "rainfall-ranking__date"
5104
+ }, k5 = {
5105
+ key: 2,
5106
+ class: "rainfall-ranking__quick-list"
5107
+ }, b5 = ["onClick"], z5 = {
5108
+ class: "rainfall-ranking__levels",
5109
+ "aria-label": "雨量等级统计"
5110
+ }, S5 = ["onClick"], T5 = { class: "level-chip__color" }, B5 = {
5111
+ class: "rainfall-ranking__thead",
5112
+ role: "row"
5113
+ }, A5 = ["onClick"], E5 = { class: "rainfall-ranking__rank" }, F5 = { class: "rainfall-ranking__station" }, _5 = ["title"], P5 = { class: "rainfall-ranking__region" }, U5 = ["title"], G5 = {
5114
+ key: 1,
5115
+ class: "rainfall-ranking__empty"
5116
+ }, K2 = 8, I5 = /* @__PURE__ */ a1({
5117
+ __name: "RainfallRankingTable",
5118
+ props: {
5119
+ rows: { default: () => [] },
5120
+ period: { default: "24h" },
5121
+ unit: { default: "mm" },
5122
+ dataSource: { default: () => [] },
5123
+ dataSourceOptions: { default: () => [] },
5124
+ dataSourceLoading: { type: Boolean, default: !1 },
5125
+ rainfallLevels: { default: () => [
5126
+ { key: "extremeStorm", label: "≥250", min: 250, color: "rgba(129, 0, 64, 1)", textColor: "#ffffff" },
5127
+ { key: "hardStorm", label: "100~250", min: 100, color: "rgba(244, 5, 237, 1)", textColor: "#ffffff" },
5128
+ { key: "storm", label: "50~100", min: 50, color: "rgba(2, 1, 252, 1)", textColor: "#ffffff" },
5129
+ { key: "heavy", label: "25~50", min: 25, color: "rgba(100, 184, 245, 1)", textColor: "#ffffff" },
5130
+ { key: "moderate", label: "10~25", min: 10, color: "rgba(61, 185, 63, 1)", textColor: "#ffffff" },
5131
+ { key: "light", label: "0.5~10", min: 0.5, color: "rgba(164, 243, 143, 1)", textColor: "#1f2937" },
5132
+ { key: "none", label: "0~0.5", min: 0, color: "#ffffff", textColor: "#334155" }
5133
+ ] },
5134
+ visibleLevelKeys: { default: () => ["none", "light", "moderate", "heavy", "storm", "hardStorm", "extremeStorm"] },
5135
+ loading: { type: Boolean, default: !1 }
5136
+ },
5137
+ emits: ["close", "locate", "rangeChange", "sourceChange", "levelVisibilityChange"],
5138
+ setup(n, { emit: f }) {
5139
+ const C = n, d = f, i = (V) => {
5140
+ const B = V.getFullYear(), z = `${V.getMonth() + 1}`.padStart(2, "0"), V1 = `${V.getDate()}`.padStart(2, "0"), N1 = `${V.getHours()}`.padStart(2, "0"), G1 = `${V.getMinutes()}`.padStart(2, "0");
5141
+ return `${B}-${z}-${V1} ${N1}:${G1}`;
5142
+ }, r = (V) => V.map((B) => B.slice(5)).join("~"), m = (V) => {
5143
+ const B = /* @__PURE__ */ new Date(), z = new Date(B);
5144
+ return V.unit === "current" ? (z.setHours(8, 0, 0, 0), B.getTime() < z.getTime() && z.setDate(z.getDate() - 1), [i(z), i(B)]) : (V.unit === "hour" && z.setHours(z.getHours() - V.amount), V.unit === "day" && z.setDate(z.getDate() - V.amount), V.unit === "month" && z.setMonth(z.getMonth() - V.amount), [i(z), i(B)]);
5145
+ }, M = E(""), u = E("desc"), s = E(null), w = E([...C.dataSource]), x = E([...C.dataSource]), T = E(null), G = E(0), F = E(0), J = E(1), O = E(!1), s1 = E(!0), _ = E(!0), Z = E("24h");
5146
+ let j;
5147
+ const I = [
5148
+ { key: "current", label: "今日", amount: 0, unit: "current", type: "1" },
5149
+ { key: "1h", label: "近1小时", amount: 1, unit: "hour", type: "2" },
5150
+ { key: "24h", label: "近24小时", amount: 24, unit: "hour", type: "2" },
5151
+ { key: "3d", label: "近3天", amount: 3, unit: "day", type: "2" },
5152
+ { key: "7d", label: "近7天", amount: 7, unit: "day", type: "2" },
5153
+ { key: "1m", label: "近一个月", amount: 1, unit: "month", type: "2" }
5154
+ ], o1 = I.find((V) => V.key === Z.value) ?? I[0], q = E(m(o1));
5155
+ l1(
5156
+ () => C.dataSource,
5157
+ (V) => {
5158
+ w.value = [...V], x.value = [...V];
5159
+ }
5160
+ );
5161
+ const i1 = g(() => C.rainfallLevels), Q = g(() => new Set(C.visibleLevelKeys)), b1 = g(() => {
5162
+ const V = M.value.trim();
5163
+ return V ? C.rows.filter((B) => {
5164
+ var z, V1;
5165
+ return B.stationName.includes(V) || ((z = B.region) == null ? void 0 : z.includes(V)) || ((V1 = B.dataSourceName) == null ? void 0 : V1.includes(V));
5166
+ }) : C.rows;
5167
+ }), c1 = g(() => [...b1.value].filter((V) => Q.value.has(N(V.rainfall).key)).sort((V, B) => u.value === "desc" ? B.rainfall - V.rainfall : V.rainfall - B.rainfall)), g1 = g(() => 54 * J.value), d1 = g(() => 30 * J.value), M1 = g(() => 6 * J.value), h = g(() => Math.max(0, g1.value - M1.value)), k = g(() => ({
5168
+ "--rainfall-row-height": `${g1.value}px`,
5169
+ "--rainfall-row-card-height": `${h.value}px`,
5170
+ "--rainfall-row-gap": `${M1.value}px`,
5171
+ "--rainfall-head-height": `${d1.value}px`
5172
+ })), b = g(() => Math.max(0, G.value - d1.value)), w1 = g(() => {
5173
+ const V = Math.max(0, F.value - d1.value), B = Math.floor(V / g1.value);
5174
+ return Math.max(0, B - K2);
5175
+ }), X = g(() => {
5176
+ const V = Math.max(0, F.value - d1.value), B = Math.ceil((V + b.value) / g1.value);
5177
+ return Math.min(c1.value.length, B + K2);
5178
+ }), L1 = g(() => c1.value.slice(w1.value, X.value).map((V, B) => {
5179
+ const z = w1.value + B;
5180
+ return {
5181
+ row: V,
5182
+ index: z,
5183
+ top: z * g1.value
5184
+ };
5185
+ })), A = g(() => c1.value.length * g1.value), P = g(() => i1.value.map((V) => ({
5186
+ ...V,
5187
+ count: C.rows.filter((B) => N(B.rainfall).key === V.key).length
5188
+ })));
5189
+ l1(c1, () => {
5190
+ T1(() => {
5191
+ const V = T.value;
5192
+ if (!V)
5193
+ return;
5194
+ const B = Math.max(0, A.value + d1.value - G.value);
5195
+ V.scrollTop > B && (V.scrollTop = B), F.value = V.scrollTop;
5196
+ });
5197
+ });
5198
+ function N(V) {
5199
+ return i1.value.find((B) => V >= B.min) ?? i1.value[i1.value.length - 1];
5200
+ }
5201
+ function e1(V) {
5202
+ return V.id ?? V.stationName;
5203
+ }
5204
+ function m1(V) {
5205
+ const B = Number.isInteger(V) ? V.toFixed(0) : V.toFixed(1);
5206
+ if (B.length <= 5)
5207
+ return B;
5208
+ const z = Math.round(V).toFixed(0);
5209
+ return z.length <= 5 ? z : z.slice(0, 5);
5210
+ }
5211
+ function $(V) {
5212
+ const B = `${V}`, z = /[\u4e00-\u9fff]/.test(B) ? 5 : 8, V1 = Array.from(B);
5213
+ return V1.length > z ? `${V1.slice(0, z).join("")}...` : B;
5214
+ }
5215
+ function x1(V) {
5216
+ return V.dataSourceName ? `${V.stationName} / ${V.dataSourceName}` : V.stationName;
5217
+ }
5218
+ function E1() {
5219
+ u.value = u.value === "desc" ? "asc" : "desc";
5220
+ }
5221
+ function R1() {
5222
+ O.value = !O.value, O.value && (s1.value = !1);
5223
+ }
5224
+ function O1() {
5225
+ s1.value = !s1.value, s1.value && (O.value = !1);
5226
+ }
5227
+ function K(V) {
5228
+ d("levelVisibilityChange", V, !Q.value.has(V));
5229
+ }
5230
+ function B1(V) {
5231
+ Z.value = V.key, q.value = m(V), V.type == "1" ? d("rangeChange", { label: r(q.value), range: q.value }) : d("rangeChange", { label: V.label, range: q.value });
5232
+ }
5233
+ function X1(V) {
5234
+ if (!V || V.length !== 2)
5235
+ return;
5236
+ Z.value = null;
5237
+ const B = [V[0], V[1]];
5238
+ d("rangeChange", { label: r(B), range: B });
5239
+ }
5240
+ function A1(V) {
5241
+ const B = new Set(x.value), z = new Set(V), V1 = V.filter((G1) => !B.has(G1)), N1 = x.value.filter((G1) => !z.has(G1));
5242
+ x.value = [...V], d("sourceChange", V, {
5243
+ selectedSources: [...V],
5244
+ addedSources: V1,
5245
+ removedSources: N1
5246
+ });
5247
+ }
5248
+ function U1() {
5249
+ const V = T.value;
5250
+ if (!V) {
5251
+ G.value = 0;
5252
+ return;
5253
+ }
5254
+ const B = Number.parseFloat(getComputedStyle(V).getPropertyValue("--cp-font-1"));
5255
+ G.value = V.clientHeight, J.value = Number.isFinite(B) && B > 0 ? B : 1;
5256
+ }
5257
+ function F1(V) {
5258
+ F.value = V.currentTarget.scrollTop;
5259
+ }
5260
+ function $1(V) {
5261
+ s.value = e1(V), d("locate", V);
5262
+ }
5263
+ return P1(() => {
5264
+ T1(() => {
5265
+ U1(), T.value && (j = new ResizeObserver(U1), j.observe(T.value));
5266
+ });
5267
+ }), I1(() => {
5268
+ j == null || j.disconnect();
5269
+ }), (V, B) => (o(), n1(a3, {
5270
+ class: "rainfall-ranking",
5271
+ "aria-label": "降水排行"
5272
+ }, {
5273
+ default: R(() => [
5274
+ t("header", m5, [
5275
+ B[5] || (B[5] = t("div", { class: "rainfall-ranking__heading" }, [
5276
+ t("h3", null, "降水排行")
5277
+ ], -1)),
5278
+ t("button", {
5279
+ type: "button",
5280
+ class: "rainfall-ranking__close",
5281
+ title: "关闭",
5282
+ "aria-label": "关闭降水排行",
5283
+ onClick: B[0] || (B[0] = (z) => d("close"))
5284
+ }, [
5285
+ U(H(h1), null, {
5286
+ default: R(() => [
5287
+ U(H(w4))
5288
+ ]),
5289
+ _: 1
5290
+ })
5291
+ ])
5292
+ ]),
5293
+ t("div", Z5, [
5294
+ U(H($2), {
5295
+ modelValue: M.value,
5296
+ "onUpdate:modelValue": B[1] || (B[1] = (z) => M.value = z),
5297
+ clearable: "",
5298
+ placeholder: "请输入测站名称",
5299
+ "suffix-icon": H(n3)
5300
+ }, null, 8, ["modelValue", "suffix-icon"]),
5301
+ t("div", H5, [
5302
+ t("button", {
5303
+ type: "button",
5304
+ class: W(["tool-icon-button", { "is-open": O.value }]),
5305
+ title: "时间范围",
5306
+ "aria-label": "时间范围",
5307
+ onClick: R1
5308
+ }, [
5309
+ U(H(h1), null, {
5310
+ default: R(() => [
5311
+ U(H(M4))
5312
+ ]),
5313
+ _: 1
5314
+ })
5315
+ ], 2),
5316
+ t("button", {
5317
+ type: "button",
5318
+ class: W(["tool-icon-button", { "is-open": s1.value }]),
5319
+ title: "数据来源",
5320
+ "aria-label": "数据来源",
5321
+ onClick: O1
5322
+ }, [
5323
+ U(H(h1), null, {
5324
+ default: R(() => [
5325
+ U(H(k2))
5326
+ ]),
5327
+ _: 1
5328
+ })
5329
+ ], 2),
5330
+ t("button", {
5331
+ type: "button",
5332
+ class: "tool-icon-button sort-button",
5333
+ title: u.value === "desc" ? "切换为雨量升序" : "切换为雨量降序",
5334
+ "aria-label": u.value === "desc" ? "切换为雨量升序" : "切换为雨量降序",
5335
+ onClick: E1
5336
+ }, [
5337
+ U(H(h1), null, {
5338
+ default: R(() => [
5339
+ u.value === "desc" ? (o(), n1(H(f4), { key: 0 })) : (o(), n1(H(V4), { key: 1 }))
5340
+ ]),
5341
+ _: 1
5342
+ })
5343
+ ], 8, x5)
5344
+ ])
5345
+ ]),
5346
+ s1.value ? (o(), L("div", y5, [
5347
+ B[6] || (B[6] = t("span", null, "数据来源:", -1)),
5348
+ U(H(X2), {
5349
+ modelValue: w.value,
5350
+ "onUpdate:modelValue": B[2] || (B[2] = (z) => w.value = z),
5351
+ class: "rainfall-ranking__source-select",
5352
+ multiple: "",
5353
+ "collapse-tags": "",
5354
+ "collapse-tags-tooltip": "",
5355
+ "max-collapse-tags": 1,
5356
+ placeholder: "请选择数据来源",
5357
+ loading: n.dataSourceLoading,
5358
+ teleported: !1,
5359
+ onChange: A1
5360
+ }, {
5361
+ default: R(() => [
5362
+ (o(!0), L(t1, null, r1(n.dataSourceOptions, (z) => (o(), n1(H(J1), {
5363
+ key: z.value,
5364
+ label: z.label,
5365
+ value: z.value
5366
+ }, null, 8, ["label", "value"]))), 128))
5367
+ ]),
5368
+ _: 1
5369
+ }, 8, ["modelValue", "loading"])
5370
+ ])) : Y("", !0),
5371
+ O.value ? (o(), L("div", D5, [
5372
+ t("button", {
5373
+ type: "button",
5374
+ class: W(["quick-query-button", { "is-open": _.value }]),
5375
+ title: "快捷查询",
5376
+ "aria-label": "快捷查询",
5377
+ onClick: B[3] || (B[3] = (z) => _.value = !_.value)
5378
+ }, [
5379
+ U(H(h1), null, {
5380
+ default: R(() => [
5381
+ U(H(m4))
5382
+ ]),
5383
+ _: 1
5384
+ })
5385
+ ], 2),
5386
+ U(H(D2), {
5387
+ modelValue: q.value,
5388
+ "onUpdate:modelValue": B[4] || (B[4] = (z) => q.value = z),
5389
+ class: "rainfall-ranking__date-picker",
5390
+ type: "datetimerange",
5391
+ format: "MM-DD HH:mm",
5392
+ "value-format": "YYYY-MM-DD HH:mm",
5393
+ "range-separator": "到",
5394
+ "start-placeholder": "开始日期",
5395
+ "end-placeholder": "结束日期",
5396
+ clearable: !1,
5397
+ editable: !1,
5398
+ onChange: X1,
5399
+ style: { "--el-date-editor-width": "100%" }
5400
+ }, null, 8, ["modelValue"])
5401
+ ])) : Y("", !0),
5402
+ O.value && _.value ? (o(), L("div", k5, [
5403
+ (o(), L(t1, null, r1(I, (z) => t("button", {
5404
+ key: z.key,
5405
+ type: "button",
5406
+ class: W(["quick-range-chip", { "is-active": Z.value === z.key }]),
5407
+ onClick: (V1) => B1(z)
5408
+ }, D(z.label), 11, b5)), 64))
5409
+ ])) : Y("", !0),
5410
+ t("div", z5, [
5411
+ (o(!0), L(t1, null, r1(P.value, (z) => (o(), L("button", {
5412
+ key: z.key,
5413
+ type: "button",
5414
+ class: W(["level-chip", { "is-active": Q.value.has(z.key), "is-hidden-level": !Q.value.has(z.key), "is-empty-level": z.key === "none" }]),
5415
+ style: H1({ "--level-color": z.color == "#ffffff" ? "#ccc" : z.color, "--level-text": z.textColor }),
5416
+ onClick: (V1) => K(z.key)
5417
+ }, [
5418
+ t("span", T5, D(z.count), 1)
5419
+ ], 14, S5))), 128))
5420
+ ]),
5421
+ t("div", {
5422
+ ref_key: "tableRef",
5423
+ ref: T,
5424
+ class: "rainfall-ranking__table",
5425
+ style: H1(k.value),
5426
+ role: "table",
5427
+ "aria-label": "测站降水排行表",
5428
+ onScroll: F1
5429
+ }, [
5430
+ t("div", B5, [
5431
+ B[7] || (B[7] = t("span", null, "序号", -1)),
5432
+ B[8] || (B[8] = t("span", null, "测站", -1)),
5433
+ B[9] || (B[9] = t("span", null, "行政区", -1)),
5434
+ t("span", null, "雨量(" + D(n.unit) + ")", 1)
5435
+ ]),
5436
+ c1.value.length ? (o(), L("div", {
5437
+ key: 0,
5438
+ class: "rainfall-ranking__virtual-list",
5439
+ style: H1({ height: `${A.value}px` })
5440
+ }, [
5441
+ (o(!0), L(t1, null, r1(L1.value, (z) => (o(), L("div", {
5442
+ key: `${e1(z.row)}-${z.index}`,
5443
+ class: "rainfall-ranking__virtual-item",
5444
+ style: H1({ transform: `translateY(${z.top}px)` })
5445
+ }, [
5446
+ t("button", {
5447
+ type: "button",
5448
+ class: W(["rainfall-ranking__row", {
5449
+ "is-selected": s.value === e1(z.row),
5450
+ "is-empty-level": N(z.row.rainfall).key === "none"
5451
+ }]),
5452
+ style: H1({ "--level-color": N(z.row.rainfall).color }),
5453
+ onClick: (V1) => $1(z.row)
5454
+ }, [
5455
+ t("span", E5, D(z.index + 1), 1),
5456
+ t("span", F5, [
5457
+ t("strong", {
5458
+ title: x1(z.row)
5459
+ }, D($(z.row.stationName)), 9, _5)
5460
+ ]),
5461
+ t("span", P5, D(z.row.region || "-"), 1),
5462
+ t("span", {
5463
+ class: "rainfall-ranking__value",
5464
+ title: `${z.row.rainfall}${n.unit}`
5465
+ }, D(m1(z.row.rainfall)), 9, U5)
5466
+ ], 14, A5)
5467
+ ], 4))), 128))
5468
+ ], 4)) : Y("", !0),
5469
+ c1.value.length ? Y("", !0) : (o(), L("div", G5, D(n.loading ? "正在加载测站降水" : "暂无匹配测站"), 1))
5470
+ ], 36)
5471
+ ]),
5472
+ _: 1
5473
+ }));
5474
+ }
5475
+ });
5476
+ const O5 = /* @__PURE__ */ p1(I5, [["__scopeId", "data-v-42106266"]]), N5 = { class: "atlas-process-chart" }, W5 = {
5477
+ key: 0,
5478
+ class: "atlas-process-chart__state"
5479
+ }, j5 = {
5480
+ key: 1,
5481
+ class: "atlas-process-chart__state"
5482
+ }, R5 = /* @__PURE__ */ a1({
5483
+ __name: "AtlasProcessChart",
5484
+ props: {
5485
+ option: { default: null },
5486
+ loading: { type: Boolean, default: !1 },
5487
+ empty: { type: Boolean, default: !1 },
5488
+ loadingText: { default: "加载中..." },
5489
+ emptyText: { default: "暂无过程线数据" }
5490
+ },
5491
+ setup(n) {
5492
+ const f = $3("sky-chart-engine"), C = n, d = E(null);
5493
+ let i = null, r = null;
5494
+ function m() {
5495
+ !d.value || !C.option || !f || (i = i || f.init(d.value), i.setOption(C.option, !0));
5496
+ }
5497
+ return l1(() => C.option, m, { deep: !0 }), P1(() => {
5498
+ m(), d.value && "ResizeObserver" in window && (r = new ResizeObserver(() => i == null ? void 0 : i.resize()), r.observe(d.value));
5499
+ }), I1(() => {
5500
+ r == null || r.disconnect(), i == null || i.dispose(), i = null;
5501
+ }), (M, u) => (o(), L("div", N5, [
5502
+ t("div", {
5503
+ ref_key: "chartRef",
5504
+ ref: d,
5505
+ class: "atlas-process-chart__canvas"
5506
+ }, null, 512),
5507
+ n.loading ? (o(), L("div", W5, D(n.loadingText), 1)) : n.empty ? (o(), L("div", j5, D(n.emptyText), 1)) : Y("", !0)
5508
+ ]));
5509
+ }
5510
+ });
5511
+ const r3 = /* @__PURE__ */ p1(R5, [["__scopeId", "data-v-1c6ea469"]]), Y5 = { class: "atlas-process-panel" }, s3 = /* @__PURE__ */ a1({
5512
+ name: "AtlasProcessPanel",
5513
+ __name: "AtlasProcessPanel",
5514
+ setup(n) {
5515
+ return (f, C) => (o(), L("section", Y5, [
5516
+ f1(f.$slots, "default")
5517
+ ]));
5518
+ }
5519
+ }), Q5 = { class: "rainfall-process__header" }, K5 = { class: "rainfall-process__heading" }, J5 = { class: "rainfall-process__summary" }, q5 = { class: "rainfall-process__actions" }, X5 = { class: "rainfall-process__query" }, $5 = ["disabled"], e8 = { class: "rainfall-process__quick" }, C8 = ["onClick"], t8 = ["disabled"], l8 = { class: "rainfall-process__body" }, n8 = /* @__PURE__ */ a1({
5520
+ __name: "RainfallProcessChart",
5521
+ props: {
5522
+ stations: { default: () => [] },
5523
+ selectedStations: { default: () => [] },
5524
+ rowsByStation: { default: () => ({}) },
5525
+ range: {},
5526
+ loading: { type: Boolean, default: !1 }
5527
+ },
5528
+ emits: ["close", "query"],
5529
+ setup(n, { emit: f }) {
5530
+ const C = n, d = f, i = E([C.range[0], C.range[1]]), r = E([]), m = E(""), M = [
5531
+ { key: "current", label: "今日" },
5532
+ { key: "24h", label: "近24小时" },
5533
+ { key: "7d", label: "近7天" },
5534
+ { key: "1m", label: "近一个月" },
5535
+ { key: "3m", label: "近三个月" }
5536
+ ], u = g(() => new Map(C.stations.map((h) => [_(h), h]))), s = g(() => C.stations.map((h) => ({
5537
+ label: j(h),
5538
+ value: _(h)
5539
+ }))), w = g(() => r.value.map((h) => u.value.get(h)).filter((h) => !!h)), x = g(() => {
5540
+ const h = w.value;
5541
+ return h.length ? h.length === 1 ? Z(h[0]) : `${Z(h[0])}等${h.length}站` : "请选择测站";
5542
+ }), T = g(() => i.value.length === 2 && r.value.length > 0), G = g(() => {
5543
+ const h = /* @__PURE__ */ new Set();
5544
+ return w.value.forEach((k) => {
5545
+ I(k).forEach((b) => {
5546
+ b.dt && h.add(b.dt);
5547
+ });
5548
+ }), Array.from(h).sort();
5549
+ }), F = g(() => {
5550
+ const h = G.value;
5551
+ return w.value.flatMap((k) => {
5552
+ const b = I(k);
5553
+ if (!b.length)
5554
+ return [];
5555
+ const w1 = new Map(b.map((P) => [P.dt, P]));
5556
+ let X = 0;
5557
+ const L1 = [], A = [];
5558
+ return h.forEach((P) => {
5559
+ const N = w1.get(P), e1 = (N == null ? void 0 : N.drp) == null || String(N.drp).trim() === "" ? NaN : Number(N.drp), m1 = Number.isFinite(e1) && e1 > -999 ? e1 : null;
5560
+ X += m1 ?? 0, L1.push(m1 === null ? null : Number(m1.toFixed(1))), A.push(Number(X.toFixed(1)));
5561
+ }), [{
5562
+ station: k,
5563
+ rainfallName: `${Z(k)}降水`,
5564
+ totalName: `${Z(k)}累计降水`,
5565
+ rainfallData: L1,
5566
+ totalData: A,
5567
+ latestTotal: Number(X.toFixed(1))
5568
+ }];
5569
+ });
5570
+ }), J = g(() => {
5571
+ if (!F.value.length)
5572
+ return "累计 - mm";
5573
+ const h = Math.max(...F.value.map((k) => k.latestTotal));
5574
+ return `${F.value.length}站 最高累计 ${h.toFixed(1)} mm`;
5575
+ }), O = E(!1), s1 = g(() => c1());
5576
+ function _(h) {
5577
+ return `${h.id ?? h.stationName}`;
5578
+ }
5579
+ function Z(h) {
5580
+ return h.dataSourceName ? `${h.stationName}/${h.dataSourceName}` : h.stationName;
5581
+ }
5582
+ function j(h) {
5583
+ return `${Z(h)}(${h.sourceCode ?? h.id ?? "-"})`;
5584
+ }
5585
+ function I(h) {
5586
+ return C.rowsByStation[_(h)] ?? [];
5587
+ }
5588
+ function o1(h) {
5589
+ return `${h}`.padStart(2, "0");
5590
+ }
5591
+ function q(h) {
5592
+ return [
5593
+ h.getFullYear(),
5594
+ o1(h.getMonth() + 1),
5595
+ o1(h.getDate())
5596
+ ].join("-") + ` ${o1(h.getHours())}:${o1(h.getMinutes())}:${o1(h.getSeconds())}`;
5597
+ }
5598
+ function i1() {
5599
+ const h = /* @__PURE__ */ new Date(), k = new Date(h);
5600
+ return k.setHours(8, 0, 0, 0), h.getTime() < k.getTime() && k.setDate(k.getDate() - 1), [q(k), q(h)];
5601
+ }
5602
+ function Q(h) {
5603
+ if (h === "current")
5604
+ return i1();
5605
+ const k = /* @__PURE__ */ new Date(), b = new Date(k);
5606
+ return h === "24h" && b.setHours(b.getHours() - 24), h === "7d" && b.setDate(b.getDate() - 7), h === "1m" && b.setMonth(b.getMonth() - 1), h === "3m" && b.setMonth(b.getMonth() - 3), [q(b), q(k)];
5607
+ }
5608
+ function b1(h) {
5609
+ if (!h)
5610
+ return "";
5611
+ const k = h.match(/^(\d{4}-\d{2}-\d{2})[ T](\d{2})(?::?(\d{2}))?/);
5612
+ return k ? `${k[1]} ${k[2]}:${k[3] ?? "00"}` : h.length <= 16 ? h : h.slice(0, 16);
5613
+ }
5614
+ function c1() {
5615
+ const h = G.value.map((X) => b1(X)), k = F.value.flatMap((X) => [X.rainfallName, X.totalName]), b = ["#5470c6", "#73c06b", "#fac858", "#ee6666", "#5bc0de", "#2ca25f", "#ff884d", "#9b59b6", "#e056c5", "#4f7bd9"], w1 = F.value.flatMap((X, L1) => {
5616
+ const A = b[L1 % b.length], P = b[(L1 + 1) % b.length];
5617
+ return [
5618
+ {
5619
+ name: X.rainfallName,
5620
+ type: "bar",
5621
+ data: X.rainfallData,
5622
+ barMaxWidth: 22,
5623
+ itemStyle: {
5624
+ color: A,
5625
+ borderRadius: [2, 2, 0, 0]
5626
+ }
5627
+ },
5628
+ {
5629
+ name: X.totalName,
5630
+ type: "line",
5631
+ data: X.totalData,
5632
+ smooth: !0,
5633
+ showSymbol: !0,
5634
+ symbol: "circle",
5635
+ symbolSize: 5,
5636
+ lineStyle: {
5637
+ width: 2,
5638
+ color: P
5639
+ },
5640
+ itemStyle: {
5641
+ color: "#ffffff",
5642
+ borderColor: P,
5643
+ borderWidth: 2
5644
+ }
5645
+ }
5646
+ ];
5647
+ });
5648
+ return {
5649
+ animationDuration: 260,
5650
+ color: b,
5651
+ grid: {
5652
+ top: 60,
5653
+ right: 44,
5654
+ bottom: 30,
5655
+ left: 52,
5656
+ containLabel: !1
5657
+ },
5658
+ legend: {
5659
+ type: "scroll",
5660
+ top: 4,
5661
+ left: 16,
5662
+ right: 16,
5663
+ itemWidth: 24,
5664
+ itemHeight: 10,
5665
+ pageIconColor: "#1677ff",
5666
+ pageIconInactiveColor: "#cbd5e1",
5667
+ pageTextStyle: { color: "#64748b" },
5668
+ textStyle: {
5669
+ color: "#334155",
5670
+ fontSize: 12
5671
+ },
5672
+ data: k
5673
+ },
5674
+ tooltip: {
5675
+ trigger: "axis",
5676
+ confine: !0,
5677
+ axisPointer: {
5678
+ type: "cross",
5679
+ lineStyle: {
5680
+ color: "#94a3b8",
5681
+ type: "dashed"
5682
+ }
5683
+ },
5684
+ borderColor: "#dbe3ef",
5685
+ backgroundColor: "rgba(255, 255, 255, 0.96)",
5686
+ textStyle: {
5687
+ color: "#1f2937"
5688
+ },
5689
+ formatter: (X) => {
5690
+ var N;
5691
+ const L1 = Array.isArray(X) ? X : [X], A = ((N = L1[0]) == null ? void 0 : N.axisValueLabel) ?? "", P = L1.map((e1) => {
5692
+ const m1 = Number(e1.value), $ = Number.isFinite(m1) ? m1.toFixed(1) : "-";
5693
+ return `${e1.marker}${e1.seriesName}:<b>${$}</b> mm`;
5694
+ });
5695
+ return [A, ...P].join("<br/>");
5696
+ }
5697
+ },
5698
+ xAxis: {
5699
+ type: "category",
5700
+ boundaryGap: !0,
5701
+ data: h,
5702
+ axisLine: { lineStyle: { color: "#94a3b8" } },
5703
+ axisTick: { alignWithLabel: !0, lineStyle: { color: "#cbd5e1" } },
5704
+ axisLabel: {
5705
+ color: "#64748b",
5706
+ hideOverlap: !0,
5707
+ formatter: (X) => b1(X).replace(" ", `
5708
+ `)
5709
+ }
5710
+ },
5711
+ yAxis: {
5712
+ type: "value",
5713
+ name: "降水(mm)",
5714
+ min: 0,
5715
+ nameTextStyle: {
5716
+ color: "#64748b",
5717
+ padding: [0, 0, 0, 8]
5718
+ },
5719
+ axisLabel: { color: "#64748b" },
5720
+ splitLine: { lineStyle: { color: "#dbe3ef" } }
5721
+ },
5722
+ series: w1
5723
+ };
5724
+ }
5725
+ function g1(h) {
5726
+ T.value && (h || (m.value = ""), d("query", {
5727
+ stationIds: [...r.value],
5728
+ range: [i.value[0], i.value[1]],
5729
+ quickKey: h
5730
+ }));
5731
+ }
5732
+ function d1(h) {
5733
+ m.value = h, i.value = Q(h), g1(h);
5734
+ }
5735
+ function M1() {
5736
+ if (!F.value.length)
5737
+ return;
5738
+ const h = ["时间"];
5739
+ F.value.forEach((A) => {
5740
+ h.push(`${Z(A.station)}降水(mm)`, `${Z(A.station)}累计降水(mm)`);
5741
+ });
5742
+ const k = G.value.map((A, P) => {
5743
+ const N = [A];
5744
+ return F.value.forEach((e1) => {
5745
+ const m1 = e1.rainfallData[P], $ = e1.totalData[P];
5746
+ N.push(m1 === null ? "" : m1.toFixed(1), Number.isFinite($) ? $.toFixed(1) : "");
5747
+ }), N;
5748
+ }), b = `\uFEFF${[h, ...k].map((A) => A.map((P) => `"${`${P}`.replace(/"/g, '""')}"`).join(",")).join(`
5749
+ `)}`, w1 = new Blob([b], { type: "text/csv;charset=utf-8" }), X = URL.createObjectURL(w1), L1 = document.createElement("a");
5750
+ L1.href = X, L1.download = `${x.value}-降水过程线.csv`, document.body.appendChild(L1), L1.click(), document.body.removeChild(L1), URL.revokeObjectURL(X);
5751
+ }
5752
+ return l1(() => C.range, (h) => {
5753
+ i.value = [h[0], h[1]];
5754
+ }, { deep: !0 }), l1(() => C.selectedStations, (h) => {
5755
+ r.value = h.map((k) => _(k));
5756
+ }, { deep: !0, immediate: !0 }), (h, k) => (o(), n1(s3, { class: "rainfall-process" }, {
5757
+ default: R(() => [
5758
+ k[6] || (k[6] = t("div", { class: "rainfall-process__handle" }, null, -1)),
5759
+ t("header", Q5, [
5760
+ t("div", K5, [
5761
+ k[5] || (k[5] = t("strong", null, "过程线", -1)),
5762
+ t("span", null, D(x.value), 1)
5763
+ ]),
5764
+ t("div", J5, [
5765
+ t("span", null, D(i.value[0]) + " - " + D(i.value[1]), 1),
5766
+ t("strong", null, D(J.value), 1)
5767
+ ]),
5768
+ t("div", q5, [
5769
+ t("button", {
5770
+ type: "button",
5771
+ class: "rainfall-process__export",
5772
+ onClick: k[0] || (k[0] = (b) => O.value = !O.value)
5773
+ }, D(O.value ? "过程线" : "数据表"), 1),
5774
+ t("button", {
5775
+ type: "button",
5776
+ class: "rainfall-process__icon",
5777
+ title: "关闭",
5778
+ "aria-label": "关闭",
5779
+ onClick: k[1] || (k[1] = (b) => h.$emit("close"))
5780
+ }, " × ")
5781
+ ])
5782
+ ]),
5783
+ t("div", X5, [
5784
+ U(H(D2), {
5785
+ modelValue: i.value,
5786
+ "onUpdate:modelValue": k[2] || (k[2] = (b) => i.value = b),
5787
+ class: "rainfall-process__range",
5788
+ type: "datetimerange",
5789
+ "value-format": "YYYY-MM-DD HH:mm:ss",
5790
+ format: "YYYY-MM-DD HH:mm",
5791
+ "range-separator": "-",
5792
+ "start-placeholder": "开始时间",
5793
+ "end-placeholder": "结束时间",
5794
+ clearable: !1
5795
+ }, null, 8, ["modelValue"]),
5796
+ U(H(J2), {
5797
+ modelValue: r.value,
5798
+ "onUpdate:modelValue": k[3] || (k[3] = (b) => r.value = b),
5799
+ class: "rainfall-process__station-select",
5800
+ options: s.value,
5801
+ multiple: "",
5802
+ filterable: "",
5803
+ clearable: "",
5804
+ "default-first-option": "",
5805
+ "collapse-tags": "",
5806
+ "collapse-tags-tooltip": "",
5807
+ "max-collapse-tags": 1,
5808
+ "reserve-keyword": !1,
5809
+ teleported: !1,
5810
+ "no-match-text": "暂无匹配测站",
5811
+ placeholder: "请选择测站"
5812
+ }, null, 8, ["modelValue", "options"]),
5813
+ t("button", {
5814
+ type: "button",
5815
+ class: "rainfall-process__primary",
5816
+ disabled: !T.value || n.loading,
5817
+ onClick: k[4] || (k[4] = (b) => g1())
5818
+ }, " 查询 ", 8, $5),
5819
+ t("div", e8, [
5820
+ (o(), L(t1, null, r1(M, (b) => t("button", {
5821
+ key: b.key,
5822
+ type: "button",
5823
+ class: W({ "is-active": m.value === b.key }),
5824
+ onClick: (w1) => d1(b.key)
5825
+ }, D(b.label), 11, C8)), 64))
5826
+ ]),
5827
+ t("button", {
5828
+ type: "button",
5829
+ class: "rainfall-process__export",
5830
+ disabled: !F.value.length,
5831
+ onClick: M1
5832
+ }, " 导出 ", 8, t8)
5833
+ ]),
5834
+ t("div", l8, [
5835
+ O.value ? (o(), n1(o3, {
5836
+ key: 0,
5837
+ times: G.value,
5838
+ series: F.value.flatMap((b) => [{ name: b.rainfallName, data: b.rainfallData }, { name: b.totalName, data: b.totalData }]),
5839
+ loading: n.loading
5840
+ }, null, 8, ["times", "series", "loading"])) : (o(), n1(r3, {
5841
+ key: 1,
5842
+ option: s1.value,
5843
+ loading: n.loading,
5844
+ empty: !F.value.length
5845
+ }, null, 8, ["option", "loading", "empty"]))
5846
+ ])
5847
+ ]),
5848
+ _: 1
5849
+ }));
5850
+ }
5851
+ });
5852
+ const o8 = /* @__PURE__ */ p1(n8, [["__scopeId", "data-v-51213268"]]), a8 = ["aria-label"], r8 = { class: "map-value-legend__header" }, s8 = { class: "map-value-legend__title" }, i8 = { class: "map-value-legend__actions" }, c8 = {
5853
+ key: 0,
5854
+ class: "map-value-legend__unit"
5855
+ }, d8 = ["title", "aria-label", "aria-pressed"], L8 = ["title", "aria-label", "aria-expanded"], v8 = {
5856
+ key: 0,
5857
+ class: "map-value-legend__gradient"
5858
+ }, g8 = { class: "map-value-legend__ticks" }, u8 = {
5859
+ key: 1,
5860
+ class: "map-value-legend__list"
5861
+ }, h8 = ["title", "aria-pressed", "onClick"], p8 = { class: "map-value-legend__label" }, w8 = {
5862
+ key: 0,
5863
+ class: "map-value-legend__count"
5864
+ }, M8 = /* @__PURE__ */ a1({
5865
+ __name: "MapValueLegend",
5866
+ props: {
5867
+ title: {},
5868
+ layerName: { default: "" },
5869
+ unit: { default: "" },
5870
+ variant: { default: "list" },
5871
+ items: { default: () => [] },
5872
+ gradientStops: { default: () => [] },
5873
+ tickLabels: { default: () => [] },
5874
+ allVisible: { type: Boolean, default: !0 },
5875
+ toggleable: { type: Boolean, default: !0 }
5876
+ },
5877
+ emits: ["toggle", "toggleAll"],
5878
+ setup(n, { emit: f }) {
5879
+ const C = n, d = f, i = e4(!1), r = g(() => C.items.some((x) => x.count !== void 0)), m = g(() => C.variant === "list" ? C.items.length > 0 : C.gradientStops.length > 0 && C.tickLabels.length > 0), M = g(() => [...C.gradientStops].map((x) => ({
5880
+ offset: Math.max(0, Math.min(1, Number(x.offset) || 0)),
5881
+ color: x.color || "transparent"
5882
+ })).sort((x, T) => T.offset - x.offset)), u = g(() => M.value.length ? `linear-gradient(180deg, ${M.value.map((T) => {
5883
+ const G = (1 - T.offset) * 100;
5884
+ return `${T.color} ${G.toFixed(2)}%`;
5885
+ }).join(", ")})` : "linear-gradient(180deg, var(--userssite-surface-control), var(--userssite-color-hover))");
5886
+ function s(x) {
5887
+ return x.visible !== !1;
5888
+ }
5889
+ function w(x) {
5890
+ C.toggleable && d("toggle", x.key, !s(x), C.layerName);
5891
+ }
5892
+ return (x, T) => m.value ? (o(), L("section", {
5893
+ key: 0,
5894
+ class: W(["map-value-legend", { "is-collapsed": i.value, "has-counts": r.value, "is-toggleable": n.toggleable }]),
5895
+ "aria-label": `${n.title}图例`
5896
+ }, [
5897
+ t("header", r8, [
5898
+ t("div", s8, [
5899
+ T[2] || (T[2] = t("span", { class: "map-value-legend__mark" }, null, -1)),
5900
+ t("strong", null, D(n.title), 1)
5901
+ ]),
5902
+ t("div", i8, [
5903
+ n.unit && !i.value ? (o(), L("span", c8, D(n.unit), 1)) : Y("", !0),
5904
+ n.toggleable ? (o(), L("button", {
5905
+ key: 1,
5906
+ type: "button",
5907
+ class: "map-value-legend__visibility",
5908
+ title: n.allVisible ? `隐藏${n.title}` : `显示${n.title}`,
5909
+ "aria-label": n.allVisible ? `隐藏${n.title}` : `显示${n.title}`,
5910
+ "aria-pressed": n.allVisible,
5911
+ onClick: T[0] || (T[0] = (G) => d("toggleAll", !n.allVisible, n.layerName))
5912
+ }, [
5913
+ U(H(h1), null, {
5914
+ default: R(() => [
5915
+ n.allVisible ? (o(), n1(H(R2), { key: 0 })) : (o(), n1(H(Y2), { key: 1 }))
5916
+ ]),
5917
+ _: 1
5918
+ })
5919
+ ], 8, d8)) : Y("", !0),
5920
+ t("button", {
5921
+ type: "button",
5922
+ class: "map-value-legend__collapse",
5923
+ title: i.value ? "展开图例" : "折叠图例",
5924
+ "aria-label": i.value ? "展开图例" : "折叠图例",
5925
+ "aria-expanded": !i.value,
5926
+ onClick: T[1] || (T[1] = (G) => i.value = !i.value)
5927
+ }, [
5928
+ U(H(h1), null, {
5929
+ default: R(() => [
5930
+ i.value ? (o(), n1(H(Z4), { key: 0 })) : (o(), n1(H(l3), { key: 1 }))
5931
+ ]),
5932
+ _: 1
5933
+ })
5934
+ ], 8, L8)
5935
+ ])
5936
+ ]),
5937
+ n.variant === "gradient" ? _1((o(), L("div", v8, [
5938
+ t("div", {
5939
+ class: "map-value-legend__gradient-bar",
5940
+ style: H1({ background: u.value })
5941
+ }, null, 4),
5942
+ t("ul", g8, [
5943
+ (o(!0), L(t1, null, r1(n.tickLabels, (G) => (o(), L("li", { key: G }, D(G), 1))), 128))
5944
+ ])
5945
+ ], 512)), [
5946
+ [q1, !i.value]
5947
+ ]) : _1((o(), L("div", u8, [
5948
+ (o(!0), L(t1, null, r1(n.items, (G) => (o(), L("button", {
5949
+ key: G.key,
5950
+ type: "button",
5951
+ class: W(["map-value-legend__item", { "is-hidden": !s(G), "is-empty": G.empty, "is-readonly": !n.toggleable }]),
5952
+ style: H1({ "--legend-color": G.color }),
5953
+ title: n.toggleable ? s(G) ? `隐藏${G.label}` : `显示${G.label}` : G.label,
5954
+ "aria-pressed": s(G),
5955
+ onClick: (F) => w(G)
5956
+ }, [
5957
+ T[3] || (T[3] = t("span", { class: "map-value-legend__color" }, null, -1)),
5958
+ t("span", p8, D(G.label), 1),
5959
+ r.value ? (o(), L("span", w8, D(G.count ?? ""), 1)) : Y("", !0),
5960
+ n.toggleable ? (o(), n1(H(h1), {
5961
+ key: 1,
5962
+ class: "map-value-legend__icon"
5963
+ }, {
5964
+ default: R(() => [
5965
+ s(G) ? (o(), n1(H(R2), { key: 0 })) : (o(), n1(H(Y2), { key: 1 }))
5966
+ ]),
5967
+ _: 2
5968
+ }, 1024)) : Y("", !0)
5969
+ ], 14, h8))), 128))
5970
+ ], 512)), [
5971
+ [q1, !i.value]
5972
+ ])
5973
+ ], 10, a8)) : Y("", !0);
5974
+ }
5975
+ });
5976
+ const f8 = /* @__PURE__ */ p1(M8, [["__scopeId", "data-v-6e9fad01"]]), V8 = { class: "sky-station-comparison" }, m8 = { class: "sky-station-comparison__list" }, Z8 = /* @__PURE__ */ a1({
5977
+ __name: "StationComparisonPanel",
5978
+ props: {
5979
+ rows: {},
5980
+ selected: {}
5981
+ },
5982
+ emits: ["update:selected", "compare", "locate", "close"],
5983
+ setup(n, { emit: f }) {
5984
+ const C = n, d = f, i = E(""), r = g(() => C.rows.filter((M) => M.label.includes(i.value)));
5985
+ function m(M, u) {
5986
+ d("update:selected", u ? [.../* @__PURE__ */ new Set([...C.selected, M])] : C.selected.filter((s) => s !== M));
5987
+ }
5988
+ return (M, u) => (o(), L("section", V8, [
5989
+ t("header", null, [
5990
+ u[5] || (u[5] = t("strong", null, "测站操作", -1)),
5991
+ U(H(r2), {
5992
+ text: "",
5993
+ onClick: u[0] || (u[0] = (s) => d("close"))
5994
+ }, {
5995
+ default: R(() => [...u[4] || (u[4] = [
5996
+ k1("关闭", -1)
5997
+ ])]),
5998
+ _: 1
5999
+ })
6000
+ ]),
6001
+ U(H(H4), {
6002
+ modelValue: i.value,
6003
+ "onUpdate:modelValue": u[1] || (u[1] = (s) => i.value = s),
6004
+ placeholder: "搜索测站"
6005
+ }, null, 8, ["modelValue"]),
6006
+ t("div", m8, [
6007
+ (o(!0), L(t1, null, r1(r.value, (s) => (o(), L("div", {
6008
+ key: s.id
6009
+ }, [
6010
+ U(H(x4), {
6011
+ "model-value": n.selected.includes(s.id),
6012
+ "onUpdate:modelValue": (w) => m(s.id, !!w)
6013
+ }, {
6014
+ default: R(() => [
6015
+ k1(D(s.label), 1)
6016
+ ]),
6017
+ _: 2
6018
+ }, 1032, ["model-value", "onUpdate:modelValue"]),
6019
+ U(H(r2), {
6020
+ text: "",
6021
+ onClick: (w) => d("locate", s.id)
6022
+ }, {
6023
+ default: R(() => [...u[6] || (u[6] = [
6024
+ k1("定位", -1)
6025
+ ])]),
6026
+ _: 1
6027
+ }, 8, ["onClick"])
6028
+ ]))), 128))
6029
+ ]),
6030
+ t("footer", null, [
6031
+ t("span", null, "已选 " + D(n.selected.length) + " 站", 1),
6032
+ U(H(r2), {
6033
+ onClick: u[2] || (u[2] = (s) => d("update:selected", []))
6034
+ }, {
6035
+ default: R(() => [...u[7] || (u[7] = [
6036
+ k1("清空", -1)
6037
+ ])]),
6038
+ _: 1
6039
+ }),
6040
+ U(H(r2), {
6041
+ type: "primary",
6042
+ disabled: !n.selected.length,
6043
+ onClick: u[3] || (u[3] = (s) => d("compare"))
6044
+ }, {
6045
+ default: R(() => [...u[8] || (u[8] = [
6046
+ k1("过程对比", -1)
6047
+ ])]),
6048
+ _: 1
6049
+ }, 8, ["disabled"])
6050
+ ])
6051
+ ]));
6052
+ }
6053
+ });
6054
+ const H8 = /* @__PURE__ */ p1(Z8, [["__scopeId", "data-v-b313b653"]]), x8 = { class: "map-operation-panel" }, y8 = { class: "map-operation-panel__header" }, D8 = { class: "map-operation-panel__group" }, k8 = { class: "map-operation-panel__grid" }, b8 = ["onClick"], z8 = {
6055
+ "aria-hidden": "true",
6056
+ width: "18",
6057
+ height: "18",
6058
+ viewBox: "0 0 24 24",
6059
+ fill: "none",
6060
+ stroke: "currentColor",
6061
+ "stroke-width": "1.7",
6062
+ "stroke-linejoin": "round"
6063
+ }, S8 = ["d"], T8 = { class: "map-operation-panel__group" }, B8 = { class: "map-operation-panel__grid" }, A8 = ["onClick"], E8 = { class: "map-operation-panel__group" }, F8 = { class: "map-operation-panel__grid" }, _8 = ["disabled"], P8 = ["disabled"], U8 = ["disabled"], G8 = { class: "map-operation-panel__group" }, I8 = { class: "map-operation-panel__grid" }, O8 = ["disabled"], N8 = ["disabled"], W8 = ["disabled"], j8 = { class: "map-operation-panel__hint" }, R8 = { class: "map-operation-panel__footer" }, Y8 = /* @__PURE__ */ a1({
6064
+ __name: "MapOperationPanel",
6065
+ props: {
6066
+ tools: {},
6067
+ drawTools: {}
6068
+ },
6069
+ setup(n) {
6070
+ const f = n, C = f.tools, d = f.drawTools, r = E({
6071
+ activeMode: null,
6072
+ featureCount: 0,
6073
+ importedFeatureCount: 0,
6074
+ importedFileName: "",
6075
+ isImporting: !1,
6076
+ draftPointCount: 0,
6077
+ lastMeasureText: "",
6078
+ selectedFeatureCount: 0,
6079
+ canUndo: !1,
6080
+ canRedo: !1
6081
+ }), m = E(null), M = E(null);
6082
+ let u;
6083
+ const s = [
6084
+ { mode: "distance", label: "距离" },
6085
+ { mode: "area", label: "面积" }
6086
+ ], w = g(() => {
6087
+ var h;
6088
+ return r.value.isImporting ? "正在解析并加载 GIS 文件" : r.value.activeMode === "select" ? r.value.selectedFeatureCount ? "已选中图形,可拖动编辑" : "点击图形进行选择和编辑" : r.value.activeMode ? `正在${((h = [...d, ...s].find((b) => b.mode === r.value.activeMode)) == null ? void 0 : h.label) || r.value.activeMode},已添加 ${r.value.draftPointCount} 个点` : r.value.lastMeasureText ? `上次测量:${r.value.lastMeasureText}` : "绘制、测量、导出、截图";
6089
+ }), x = g(() => r.value.isImporting ? "文件加载中,请稍候…" : r.value.importedFeatureCount ? `已加载 ${r.value.importedFileName},共 ${r.value.importedFeatureCount} 个要素。` : "支持点击上传,也可将文件直接拖入地图区域。");
6090
+ function T(h) {
6091
+ C.startDraw(h);
6092
+ }
6093
+ function G(h) {
6094
+ C.startMeasure(h);
6095
+ }
6096
+ function F() {
6097
+ C.startSelect();
6098
+ }
6099
+ function J() {
6100
+ C.finishDraft();
6101
+ }
6102
+ function O() {
6103
+ C.undoDraftPoint();
6104
+ }
6105
+ function s1() {
6106
+ C.redo();
6107
+ }
6108
+ function _() {
6109
+ C.deleteSelected();
6110
+ }
6111
+ function Z() {
6112
+ C.stopActiveMode();
6113
+ }
6114
+ function j() {
6115
+ C.clearAll();
6116
+ }
6117
+ function I() {
6118
+ C.fitToFeatures();
6119
+ }
6120
+ function o1() {
6121
+ C.zoomIn();
6122
+ }
6123
+ function q() {
6124
+ C.zoomOut();
6125
+ }
6126
+ function i1() {
6127
+ C.resetNorth();
6128
+ }
6129
+ function Q() {
6130
+ C.downloadScreenshot();
6131
+ }
6132
+ function b1() {
6133
+ C.downloadGeoJson();
6134
+ }
6135
+ function c1() {
6136
+ var h;
6137
+ (h = m.value) == null || h.click();
6138
+ }
6139
+ function g1() {
6140
+ var h;
6141
+ (h = M.value) == null || h.click();
6142
+ }
6143
+ async function d1(h) {
6144
+ var w1;
6145
+ const k = h.target, b = (w1 = k.files) == null ? void 0 : w1[0];
6146
+ if (k.value = "", !!b)
6147
+ try {
6148
+ const X = await C.importGisFile(b);
6149
+ H2.success(`已加载 ${X.layerName},共 ${X.geojson.features.length} 个要素`);
6150
+ } catch (X) {
6151
+ H2.error(X instanceof Error ? X.message : "GIS 文件加载失败");
6152
+ }
6153
+ }
6154
+ function M1() {
6155
+ C.removeImportedData(), H2.success("已移除导入的 GIS 数据");
6156
+ }
6157
+ return P1(() => {
6158
+ u = C.subscribe((h) => {
6159
+ r.value = h;
6160
+ });
6161
+ }), I1(() => {
6162
+ u == null || u();
6163
+ }), (h, k) => (o(), L("section", x8, [
6164
+ t("header", y8, [
6165
+ t("div", null, [
6166
+ k[0] || (k[0] = t("strong", null, "地图工具", -1)),
6167
+ t("span", null, D(w.value), 1)
6168
+ ]),
6169
+ t("button", {
6170
+ type: "button",
6171
+ class: "map-operation-panel__ghost",
6172
+ onClick: Z
6173
+ }, "停止")
6174
+ ]),
6175
+ t("div", D8, [
6176
+ k[1] || (k[1] = t("h4", null, "绘制", -1)),
6177
+ t("div", k8, [
6178
+ t("button", {
6179
+ type: "button",
6180
+ class: W(["map-operation-panel__button", { "is-active": r.value.activeMode === "select" }]),
6181
+ onClick: F
6182
+ }, " 选择/编辑 ", 2),
6183
+ (o(!0), L(t1, null, r1(H(d), (b) => (o(), L("button", {
6184
+ key: b.mode,
6185
+ type: "button",
6186
+ class: W(["map-operation-panel__button", { "is-active": r.value.activeMode === b.mode }]),
6187
+ onClick: (w1) => T(b.mode)
6188
+ }, [
6189
+ (o(), L("svg", z8, [
6190
+ t("path", {
6191
+ d: b.iconPath
6192
+ }, null, 8, S8)
6193
+ ])),
6194
+ k1(" " + D(b.label), 1)
6195
+ ], 10, b8))), 128))
6196
+ ]),
6197
+ k[2] || (k[2] = t("p", { class: "map-operation-panel__hint" }, " 双击或 Enter 完成,Esc 取消当前图形;完成后可直接拖动图形或控制点。 ", -1))
6198
+ ]),
6199
+ t("div", T8, [
6200
+ k[3] || (k[3] = t("h4", null, "测量", -1)),
6201
+ t("div", B8, [
6202
+ (o(), L(t1, null, r1(s, (b) => t("button", {
6203
+ key: b.mode,
6204
+ type: "button",
6205
+ class: W(["map-operation-panel__button", { "is-active": r.value.activeMode === b.mode }]),
6206
+ onClick: (w1) => G(b.mode)
6207
+ }, D(b.label), 11, A8)), 64))
6208
+ ]),
6209
+ k[4] || (k[4] = t("p", { class: "map-operation-panel__hint" }, " 单击添加测量点,双击或点击“完成”结束测量。 ", -1))
6210
+ ]),
6211
+ t("div", E8, [
6212
+ k[5] || (k[5] = t("h4", null, "操作", -1)),
6213
+ t("div", F8, [
6214
+ t("button", {
6215
+ type: "button",
6216
+ class: "map-operation-panel__button",
6217
+ onClick: J
6218
+ }, "完成"),
6219
+ t("button", {
6220
+ type: "button",
6221
+ class: "map-operation-panel__button",
6222
+ disabled: !r.value.canUndo && !r.value.draftPointCount,
6223
+ onClick: O
6224
+ }, "撤销", 8, _8),
6225
+ t("button", {
6226
+ type: "button",
6227
+ class: "map-operation-panel__button",
6228
+ disabled: !r.value.canRedo,
6229
+ onClick: s1
6230
+ }, "重做", 8, P8),
6231
+ t("button", {
6232
+ type: "button",
6233
+ class: "map-operation-panel__button is-danger",
6234
+ disabled: !r.value.selectedFeatureCount,
6235
+ onClick: _
6236
+ }, "删除选中", 8, U8),
6237
+ t("button", {
6238
+ type: "button",
6239
+ class: "map-operation-panel__button",
6240
+ onClick: I
6241
+ }, "缩放到图形"),
6242
+ t("button", {
6243
+ type: "button",
6244
+ class: "map-operation-panel__button is-danger",
6245
+ onClick: j
6246
+ }, "清空")
6247
+ ])
6248
+ ]),
6249
+ t("div", { class: "map-operation-panel__group" }, [
6250
+ k[6] || (k[6] = t("h4", null, "地图", -1)),
6251
+ t("div", { class: "map-operation-panel__grid" }, [
6252
+ t("button", {
6253
+ type: "button",
6254
+ class: "map-operation-panel__button",
6255
+ onClick: o1
6256
+ }, "放大"),
6257
+ t("button", {
6258
+ type: "button",
6259
+ class: "map-operation-panel__button",
6260
+ onClick: q
6261
+ }, "缩小"),
6262
+ t("button", {
6263
+ type: "button",
6264
+ class: "map-operation-panel__button",
6265
+ onClick: i1
6266
+ }, "正北"),
6267
+ t("button", {
6268
+ type: "button",
6269
+ class: "map-operation-panel__button",
6270
+ onClick: Q
6271
+ }, "截图")
6272
+ ])
6273
+ ]),
6274
+ t("div", G8, [
6275
+ k[7] || (k[7] = t("h4", null, "数据导入", -1)),
6276
+ t("input", {
6277
+ ref_key: "shpInputRef",
6278
+ ref: m,
6279
+ class: "map-operation-panel__file-input",
6280
+ type: "file",
6281
+ accept: ".zip,application/zip",
6282
+ onChange: d1
6283
+ }, null, 544),
6284
+ t("input", {
6285
+ ref_key: "geoJsonInputRef",
6286
+ ref: M,
6287
+ class: "map-operation-panel__file-input",
6288
+ type: "file",
6289
+ accept: ".geojson,.json,application/geo+json,application/json",
6290
+ onChange: d1
6291
+ }, null, 544),
6292
+ t("div", I8, [
6293
+ t("button", {
6294
+ type: "button",
6295
+ class: "map-operation-panel__button",
6296
+ disabled: r.value.isImporting,
6297
+ onClick: c1
6298
+ }, " 上传 Shp(zip) ", 8, O8),
6299
+ t("button", {
6300
+ type: "button",
6301
+ class: "map-operation-panel__button",
6302
+ disabled: r.value.isImporting,
6303
+ onClick: g1
6304
+ }, " 上传 GeoJSON ", 8, N8),
6305
+ t("button", {
6306
+ type: "button",
6307
+ class: "map-operation-panel__button is-danger map-operation-panel__button--wide",
6308
+ disabled: !r.value.importedFeatureCount || r.value.isImporting,
6309
+ onClick: M1
6310
+ }, " 移除导入数据 ", 8, W8)
6311
+ ]),
6312
+ t("p", j8, D(x.value), 1)
6313
+ ]),
6314
+ t("footer", R8, [
6315
+ t("button", {
6316
+ type: "button",
6317
+ class: "map-operation-panel__primary",
6318
+ onClick: b1
6319
+ }, " 导出 GeoJSON "),
6320
+ t("span", null, D(r.value.featureCount + r.value.importedFeatureCount) + " 个图形", 1)
6321
+ ])
6322
+ ]));
6323
+ }
6324
+ });
6325
+ const Q8 = /* @__PURE__ */ p1(Y8, [["__scopeId", "data-v-72353892"]]), K8 = {
6326
+ key: 0,
6327
+ class: "space-analysis-panel"
6328
+ }, J8 = { class: "space-analysis-panel__header" }, q8 = { class: "space-analysis-panel__status" }, X8 = {
6329
+ key: 0,
6330
+ class: "space-analysis-panel__sources"
6331
+ }, $8 = ["onClick"], e9 = { class: "space-analysis-panel__details" }, C9 = {
6332
+ key: 1,
6333
+ class: "space-analysis-panel__group"
6334
+ }, t9 = ["value"], l9 = {
6335
+ key: 2,
6336
+ class: "space-analysis-panel__group"
6337
+ }, n9 = { class: "space-analysis-panel__context" }, o9 = { class: "space-analysis-panel__group" }, a9 = {
6338
+ key: 0,
6339
+ class: "space-analysis-panel__hint"
6340
+ }, r9 = {
6341
+ key: 1,
6342
+ class: "space-analysis-panel__actions"
6343
+ }, s9 = ["disabled", "onClick"], i9 = {
6344
+ key: 3,
6345
+ class: "space-analysis-panel__result"
6346
+ }, c9 = {
6347
+ key: 4,
6348
+ class: "space-analysis-panel__result is-error"
6349
+ }, d9 = /* @__PURE__ */ a1({
6350
+ __name: "SpaceAnalysisPanel",
6351
+ props: {
6352
+ selectionStore: {},
6353
+ provider: {}
6354
+ },
6355
+ setup(n) {
6356
+ const f = n, C = f.selectionStore, d = g(() => C.currentSelection), i = g(() => f.provider), r = E(""), m = E(""), M = E(""), u = E(0), s = g(() => Object.values(C.selections).filter((_) => !!_).sort((_, Z) => Z.updatedAt - _.updatedAt)), w = g(() => {
6357
+ var _;
6358
+ return ((_ = i.value) == null ? void 0 : _.getContext()) || [];
6359
+ }), x = g(() => {
6360
+ var _;
6361
+ return (((_ = d.value) == null ? void 0 : _.geojson.features) || []).map((Z, j) => {
6362
+ var q, i1, Q;
6363
+ const I = ((q = Z.geometry) == null ? void 0 : q.type) || "未知图形", o1 = ((i1 = Z.properties) == null ? void 0 : i1.title) || ((Q = Z.properties) == null ? void 0 : Q.label);
6364
+ return {
6365
+ index: j,
6366
+ label: `${j + 1}. ${String(o1 || J[I] || I)}`
6367
+ };
6368
+ });
6369
+ }), T = g(() => {
6370
+ var I, o1, q;
6371
+ const _ = d.value;
6372
+ if (!_ || _.featureCount <= 1)
6373
+ return _;
6374
+ const Z = _.geojson.features[u.value];
6375
+ if (!Z)
6376
+ return _;
6377
+ const j = (I = Z.geometry) == null ? void 0 : I.type;
6378
+ return {
6379
+ ..._,
6380
+ name: String(((o1 = Z.properties) == null ? void 0 : o1.title) || ((q = Z.properties) == null ? void 0 : q.label) || _.name),
6381
+ geojson: {
6382
+ type: "FeatureCollection",
6383
+ features: [Z]
6384
+ },
6385
+ geometryTypes: j ? [j] : [],
6386
+ featureCount: 1
6387
+ };
6388
+ }), G = g(() => !i.value || !T.value ? [] : i.value.actions.map((_) => {
6389
+ var I, o1;
6390
+ const j = ((I = T.value) == null ? void 0 : I.geometryTypes.some((q) => _.geometryTypes.includes(q))) ? ((o1 = _.getDisabledReason) == null ? void 0 : o1.call(_, T.value)) || "" : "当前图形类型不支持此分析";
6391
+ return { action: _, disabledReason: j };
6392
+ })), F = g(() => r.value ? "分析中" : i.value ? "可分析" : "待接入"), J = {
6393
+ Point: "点",
6394
+ MultiPoint: "多点",
6395
+ LineString: "线",
6396
+ MultiLineString: "多线",
6397
+ Polygon: "面",
6398
+ MultiPolygon: "多面"
6399
+ }, O = g(() => {
6400
+ var Z;
6401
+ const _ = ((Z = d.value) == null ? void 0 : Z.geometryTypes) || [];
6402
+ return _.length ? _.map((j) => J[j] || j).join("、") : "未知";
6403
+ });
6404
+ async function s1(_) {
6405
+ if (!(!T.value || r.value)) {
6406
+ r.value = _.id, m.value = "", M.value = "";
6407
+ try {
6408
+ const Z = await _.run(T.value);
6409
+ m.value = (Z == null ? void 0 : Z.message) || "分析完成,结果已更新。";
6410
+ } catch (Z) {
6411
+ M.value = Z instanceof Error ? Z.message : "空间分析失败,请稍后重试。";
6412
+ } finally {
6413
+ r.value = "";
6414
+ }
6415
+ }
6416
+ }
6417
+ return l1(
6418
+ () => {
6419
+ var _, Z;
6420
+ return [(_ = d.value) == null ? void 0 : _.updatedAt, (Z = i.value) == null ? void 0 : Z.id];
6421
+ },
6422
+ () => {
6423
+ var j;
6424
+ const _ = ((j = d.value) == null ? void 0 : j.geojson.features) || [], Z = _.findIndex((I) => {
6425
+ var o1;
6426
+ return ((o1 = I.properties) == null ? void 0 : o1.selected) === !0;
6427
+ });
6428
+ u.value = Z >= 0 ? Z : Math.max(0, _.length - 1), m.value = "", M.value = "";
6429
+ },
6430
+ { immediate: !0 }
6431
+ ), (_, Z) => {
6432
+ var j;
6433
+ return d.value ? (o(), L("section", K8, [
6434
+ t("header", J8, [
6435
+ t("div", null, [
6436
+ Z[1] || (Z[1] = t("strong", null, "空间分析", -1)),
6437
+ t("span", null, D(((j = i.value) == null ? void 0 : j.label) || "当前模块暂未接入分析能力"), 1)
6438
+ ]),
6439
+ t("span", q8, D(F.value), 1)
6440
+ ]),
6441
+ s.value.length > 1 ? (o(), L("div", X8, [
6442
+ (o(!0), L(t1, null, r1(s.value, (I) => (o(), L("button", {
6443
+ key: I.source,
6444
+ type: "button",
6445
+ class: W({ "is-active": I.source === d.value.source }),
6446
+ onClick: (o1) => H(C).setCurrentSource(I.source)
6447
+ }, D(I.sourceLabel), 11, $8))), 128))
6448
+ ])) : Y("", !0),
6449
+ t("dl", e9, [
6450
+ t("div", null, [
6451
+ Z[2] || (Z[2] = t("dt", null, "来源", -1)),
6452
+ t("dd", null, D(d.value.sourceLabel), 1)
6453
+ ]),
6454
+ t("div", null, [
6455
+ Z[3] || (Z[3] = t("dt", null, "名称", -1)),
6456
+ t("dd", null, D(d.value.name), 1)
6457
+ ]),
6458
+ t("div", null, [
6459
+ Z[4] || (Z[4] = t("dt", null, "图形", -1)),
6460
+ t("dd", null, D(O.value), 1)
6461
+ ]),
6462
+ t("div", null, [
6463
+ Z[5] || (Z[5] = t("dt", null, "数量", -1)),
6464
+ t("dd", null, D(d.value.featureCount) + " 个", 1)
6465
+ ])
6466
+ ]),
6467
+ x.value.length > 1 ? (o(), L("div", C9, [
6468
+ Z[6] || (Z[6] = t("h4", null, "分析对象", -1)),
6469
+ _1(t("select", {
6470
+ "onUpdate:modelValue": Z[0] || (Z[0] = (I) => u.value = I),
6471
+ class: "space-analysis-panel__select"
6472
+ }, [
6473
+ (o(!0), L(t1, null, r1(x.value, (I) => (o(), L("option", {
6474
+ key: I.index,
6475
+ value: I.index
6476
+ }, D(I.label), 9, t9))), 128))
6477
+ ], 512), [
6478
+ [
6479
+ C4,
6480
+ u.value,
6481
+ void 0,
6482
+ { number: !0 }
6483
+ ]
6484
+ ])
6485
+ ])) : Y("", !0),
6486
+ w.value.length ? (o(), L("div", l9, [
6487
+ Z[7] || (Z[7] = t("h4", null, "当前业务", -1)),
6488
+ t("dl", n9, [
6489
+ (o(!0), L(t1, null, r1(w.value, (I) => (o(), L("div", {
6490
+ key: I.label
6491
+ }, [
6492
+ t("dt", null, D(I.label), 1),
6493
+ t("dd", null, D(I.value), 1)
6494
+ ]))), 128))
6495
+ ])
6496
+ ])) : Y("", !0),
6497
+ t("div", o9, [
6498
+ Z[8] || (Z[8] = t("h4", null, "可用分析", -1)),
6499
+ i.value ? (o(), L("div", r9, [
6500
+ (o(!0), L(t1, null, r1(G.value, (I) => (o(), L("button", {
6501
+ key: I.action.id,
6502
+ type: "button",
6503
+ disabled: !!I.disabledReason || !!r.value,
6504
+ onClick: (o1) => s1(I.action)
6505
+ }, [
6506
+ t("span", null, [
6507
+ t("strong", null, D(I.action.label), 1),
6508
+ t("small", null, D(I.disabledReason || I.action.description), 1)
6509
+ ]),
6510
+ t("em", null, D(r.value === I.action.id ? "分析中" : I.disabledReason ? "不可用" : "执行"), 1)
6511
+ ], 8, s9))), 128))
6512
+ ])) : (o(), L("p", a9, " 当前模块尚未接入空间分析,GIS 数据会继续保留。 "))
6513
+ ]),
6514
+ m.value ? (o(), L("p", i9, D(m.value), 1)) : Y("", !0),
6515
+ M.value ? (o(), L("p", c9, D(M.value), 1)) : Y("", !0)
6516
+ ])) : Y("", !0);
6517
+ };
6518
+ }
6519
+ });
6520
+ const L9 = /* @__PURE__ */ p1(d9, [["__scopeId", "data-v-79d28485"]]), m0 = B4, Z0 = v(A4), H0 = v(K4), x0 = v(r6), y0 = v(d6), D0 = v(V6), k0 = v(A6), b0 = v(P6), z0 = v(I6), S0 = v(W6), T0 = v(o3), B0 = v($6), A0 = v(e5), E0 = v(l5), F0 = v(o5), _0 = v(L5), P0 = v(M5), U0 = v(O5), G0 = v(o8), I0 = v(f8), O0 = v(a3), N0 = v(s3), W0 = v(r3), j0 = v(H8), R0 = v(Q8), Y0 = v(L9);
5023
6521
  export {
5024
- i9 as AppSelect,
5025
- h9 as AtlasMapTitle,
5026
- g9 as AtlasRightToggleButton,
5027
- f9 as MapLayerControl,
5028
- d9 as MapSideMenu,
5029
- s9 as MapTimeline,
5030
- v9 as MapTools,
5031
- u9 as MetricCard,
5032
- V9 as ProcessChart,
5033
- w9 as ProcessDataTable,
5034
- c9 as ProjectMenu,
5035
- r9 as SvgIcon,
5036
- L9 as TimeRangeQuickSelect,
5037
- a9 as TreeSelectPanel,
5038
- _6 as UiAffix,
5039
- C5 as UiAlert,
5040
- R8 as UiAnchor,
5041
- K8 as UiAnchorLink,
5042
- W5 as UiAside,
5043
- E8 as UiAutoResizer,
5044
- r5 as UiAutocomplete,
5045
- i5 as UiAvatar,
5046
- s5 as UiAvatarGroup,
5047
- a5 as UiBacktop,
5048
- L5 as UiBadge,
5049
- c5 as UiBreadcrumb,
5050
- d5 as UiBreadcrumbItem,
5051
- h5 as UiButton,
5052
- g5 as UiButtonGroup,
5053
- f5 as UiCalendar,
5054
- Z5 as UiCard,
5055
- m5 as UiCarousel,
5056
- H5 as UiCarouselItem,
5057
- E5 as UiCascader,
5058
- T5 as UiCascaderPanel,
5059
- S5 as UiCheckTag,
5060
- x5 as UiCheckbox,
5061
- D5 as UiCheckboxButton,
5062
- y5 as UiCheckboxGroup,
5063
- b5 as UiCol,
5064
- U5 as UiCollapse,
5065
- P5 as UiCollapseItem,
5066
- F5 as UiCollapseTransition,
5067
- I5 as UiColorPicker,
5068
- G5 as UiColorPickerPanel,
5069
- v5 as UiConfigProvider,
5070
- O5 as UiContainer,
5071
- R5 as UiCountdown,
5072
- J5 as UiDatePicker,
5073
- K5 as UiDatePickerPanel,
5074
- q5 as UiDescriptions,
5075
- X5 as UiDescriptionsItem,
5076
- _5 as UiDialog,
5077
- $5 as UiDivider,
5078
- C8 as UiDrawer,
5079
- e8 as UiDropdown,
5080
- t8 as UiDropdownItem,
5081
- l8 as UiDropdownMenu,
5082
- o8 as UiEmpty,
5083
- N5 as UiFooter,
5084
- e5 as UiForm,
5085
- t5 as UiFormItem,
5086
- j5 as UiHeader,
5087
- $6 as UiIcon,
5088
- r8 as UiImage,
5089
- n8 as UiImageViewer,
5090
- n5 as UiInput,
5091
- i8 as UiInputNumber,
5092
- a8 as UiInputOtp,
5093
- s8 as UiInputTag,
5094
- L8 as UiLink,
5095
- n9 as UiLoading,
5096
- Y5 as UiMain,
5097
- q8 as UiMention,
5098
- c8 as UiMenu,
5099
- d8 as UiMenuItem,
5100
- v8 as UiMenuItemGroup,
5101
- C9 as UiMessage,
5102
- e9 as UiMessageBox,
5103
- t9 as UiNotification,
5104
- u5 as UiOption,
5105
- V5 as UiOptionGroup,
5106
- g8 as UiPageHeader,
5107
- w8 as UiPagination,
5108
- p8 as UiPopconfirm,
5109
- $8 as UiPopover,
5110
- l5 as UiPopper,
5111
- M8 as UiProgress,
5112
- z5 as UiRadio,
5113
- k5 as UiRadioButton,
5114
- B5 as UiRadioGroup,
5115
- u8 as UiRate,
5116
- V8 as UiResult,
5117
- A5 as UiRow,
5118
- J8 as UiSegmented,
5119
- M5 as UiSelect,
5120
- f8 as UiSelectV2,
5121
- Z8 as UiSkeleton,
5122
- m8 as UiSkeletonItem,
5123
- H8 as UiSlider,
5124
- x8 as UiSpace,
5125
- X8 as UiSplitter,
5126
- _8 as UiSplitterPanel,
5127
- Q5 as UiStatistic,
5128
- y8 as UiStep,
5129
- D8 as UiSteps,
5130
- h8 as UiSubMenu,
5131
- z8 as UiSwitch,
5132
- A8 as UiTabPane,
5133
- k8 as UiTable,
5134
- B8 as UiTableColumn,
5135
- T8 as UiTableV2,
5136
- S8 as UiTabs,
5137
- p5 as UiTag,
5138
- b8 as UiText,
5139
- w5 as UiTimePicker,
5140
- F8 as UiTimeSelect,
5141
- U8 as UiTimeline,
5142
- P8 as UiTimelineItem,
5143
- o5 as UiTooltip,
5144
- Y8 as UiTour,
5145
- Q8 as UiTourStep,
5146
- G8 as UiTransfer,
5147
- I8 as UiTree,
5148
- O8 as UiTreeSelect,
5149
- W8 as UiTreeV2,
5150
- N8 as UiUpload,
5151
- j8 as UiWatermark,
5152
- M9 as WorkbenchPanel,
5153
- p9 as WorkbenchShell,
5154
- s4 as projectIcons,
5155
- a4 as registerProjectIcons,
5156
- i as themed,
5157
- l9 as vUiInfiniteScroll,
5158
- r4 as vUiLoading,
5159
- o9 as vUiPopover
6522
+ Z0 as AppSelect,
6523
+ z0 as AtlasMapTitle,
6524
+ W0 as AtlasProcessChart,
6525
+ N0 as AtlasProcessPanel,
6526
+ O0 as AtlasRankingPanel,
6527
+ S0 as AtlasRightToggleButton,
6528
+ _0 as MapLayerControl,
6529
+ R0 as MapOperationPanel,
6530
+ k0 as MapSideMenu,
6531
+ H0 as MapTimeline,
6532
+ b0 as MapTools,
6533
+ I0 as MapValueLegend,
6534
+ E0 as MetricCard,
6535
+ F0 as ProcessChart,
6536
+ T0 as ProcessDataTable,
6537
+ D0 as ProjectMenu,
6538
+ G0 as RainfallProcessChart,
6539
+ U0 as RainfallRankingTable,
6540
+ Y0 as SpaceAnalysisPanel,
6541
+ j0 as StationComparisonPanel,
6542
+ m0 as SvgIcon,
6543
+ P0 as TemplateLayout,
6544
+ y0 as TimeRangeQuickSelect,
6545
+ x0 as TreeSelectPanel,
6546
+ p9 as UiAffix,
6547
+ M9 as UiAlert,
6548
+ i0 as UiAnchor,
6549
+ c0 as UiAnchorLink,
6550
+ n7 as UiAside,
6551
+ Q7 as UiAutoResizer,
6552
+ H9 as UiAutocomplete,
6553
+ x9 as UiAvatar,
6554
+ y9 as UiAvatarGroup,
6555
+ D9 as UiBacktop,
6556
+ k9 as UiBadge,
6557
+ b9 as UiBreadcrumb,
6558
+ z9 as UiBreadcrumbItem,
6559
+ r2 as UiButton,
6560
+ T9 as UiButtonGroup,
6561
+ P9 as UiCalendar,
6562
+ U9 as UiCard,
6563
+ G9 as UiCarousel,
6564
+ I9 as UiCarouselItem,
6565
+ Q9 as UiCascader,
6566
+ Y9 as UiCascaderPanel,
6567
+ K9 as UiCheckTag,
6568
+ x4 as UiCheckbox,
6569
+ O9 as UiCheckboxButton,
6570
+ N9 as UiCheckboxGroup,
6571
+ q9 as UiCol,
6572
+ $9 as UiCollapse,
6573
+ e7 as UiCollapseItem,
6574
+ X9 as UiCollapseTransition,
6575
+ t7 as UiColorPicker,
6576
+ C7 as UiColorPickerPanel,
6577
+ S9 as UiConfigProvider,
6578
+ l7 as UiContainer,
6579
+ i7 as UiCountdown,
6580
+ d7 as UiDatePicker,
6581
+ c7 as UiDatePickerPanel,
6582
+ L7 as UiDescriptions,
6583
+ v7 as UiDescriptionsItem,
6584
+ g7 as UiDialog,
6585
+ u7 as UiDivider,
6586
+ h7 as UiDrawer,
6587
+ p7 as UiDropdown,
6588
+ w7 as UiDropdownItem,
6589
+ M7 as UiDropdownMenu,
6590
+ f7 as UiEmpty,
6591
+ o7 as UiFooter,
6592
+ f9 as UiForm,
6593
+ V9 as UiFormItem,
6594
+ a7 as UiHeader,
6595
+ w9 as UiIcon,
6596
+ m7 as UiImage,
6597
+ V7 as UiImageViewer,
6598
+ H4 as UiInput,
6599
+ Z7 as UiInputNumber,
6600
+ x7 as UiInputOtp,
6601
+ H7 as UiInputTag,
6602
+ y7 as UiLink,
6603
+ V0 as UiLoading,
6604
+ r7 as UiMain,
6605
+ L0 as UiMention,
6606
+ D7 as UiMenu,
6607
+ k7 as UiMenuItem,
6608
+ b7 as UiMenuItemGroup,
6609
+ h0 as UiMessage,
6610
+ p0 as UiMessageBox,
6611
+ w0 as UiNotification,
6612
+ F9 as UiOption,
6613
+ _9 as UiOptionGroup,
6614
+ S7 as UiPageHeader,
6615
+ T7 as UiPagination,
6616
+ B7 as UiPopconfirm,
6617
+ u0 as UiPopover,
6618
+ m9 as UiPopper,
6619
+ A7 as UiProgress,
6620
+ W9 as UiRadio,
6621
+ j9 as UiRadioButton,
6622
+ R9 as UiRadioGroup,
6623
+ E7 as UiRate,
6624
+ F7 as UiResult,
6625
+ J9 as UiRow,
6626
+ d0 as UiSegmented,
6627
+ E9 as UiSelect,
6628
+ _7 as UiSelectV2,
6629
+ P7 as UiSkeleton,
6630
+ U7 as UiSkeletonItem,
6631
+ G7 as UiSlider,
6632
+ I7 as UiSpace,
6633
+ v0 as UiSplitter,
6634
+ g0 as UiSplitterPanel,
6635
+ s7 as UiStatistic,
6636
+ N7 as UiStep,
6637
+ O7 as UiSteps,
6638
+ z7 as UiSubMenu,
6639
+ W7 as UiSwitch,
6640
+ J7 as UiTabPane,
6641
+ j7 as UiTable,
6642
+ R7 as UiTableColumn,
6643
+ Y7 as UiTableV2,
6644
+ K7 as UiTabs,
6645
+ A9 as UiTag,
6646
+ q7 as UiText,
6647
+ B9 as UiTimePicker,
6648
+ X7 as UiTimeSelect,
6649
+ $7 as UiTimeline,
6650
+ e0 as UiTimelineItem,
6651
+ Z9 as UiTooltip,
6652
+ r0 as UiTour,
6653
+ s0 as UiTourStep,
6654
+ C0 as UiTransfer,
6655
+ t0 as UiTree,
6656
+ l0 as UiTreeSelect,
6657
+ n0 as UiTreeV2,
6658
+ o0 as UiUpload,
6659
+ a0 as UiWatermark,
6660
+ A0 as WorkbenchPanel,
6661
+ B0 as WorkbenchShell,
6662
+ k4 as projectIcons,
6663
+ b4 as registerProjectIcons,
6664
+ v as themed,
6665
+ M0 as vUiInfiniteScroll,
6666
+ y4 as vUiLoading,
6667
+ f0 as vUiPopover
5160
6668
  };