@opengis/bi 1.2.28 → 1.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bi.js +1 -1
- package/dist/bi.umd.cjs +2 -2
- package/dist/{import-file-CeeuNrOS.js → import-file-C1s2X9Kt.js} +133 -133
- package/dist/{vs-funnel-bar-D0j-vBjL.js → vs-funnel-bar-BuV_pQBq.js} +1 -1
- package/dist/{vs-list-BlFV_Syw.js → vs-list-uhEudqNr.js} +1 -1
- package/dist/{vs-map-cluster-CtwhYhfw.js → vs-map-cluster-CeJxLtZx.js} +2 -2
- package/dist/{vs-map-DnGaeJ0j.js → vs-map-qs7P1yfP.js} +2 -2
- package/dist/{vs-number-poGPfqSn.js → vs-number-BNnFUzs3.js} +1 -1
- package/dist/{vs-table-D3hPaMk1.js → vs-table-BEvWIkoj.js} +1 -1
- package/dist/{vs-text-Bs5tYckh.js → vs-text-CPMz7TWB.js} +1 -1
- package/package.json +75 -75
- package/server/routes/dashboard/controllers/dashboard.list.js +36 -16
- package/server/routes/dashboard/controllers/utils/yaml.js +11 -11
- package/server/routes/edit/controllers/widget.edit.js +22 -13
- package/server/routes/map/controllers/cluster.js +125 -125
- package/server/routes/map/controllers/clusterVtile.js +166 -166
- package/server/routes/map/controllers/geojson.js +127 -127
- package/server/routes/map/controllers/map.js +69 -69
- package/server/routes/map/controllers/utils/downloadClusterData.js +44 -44
- package/server/routes/map/controllers/vtile.js +183 -183
- package/utils.js +12 -12
|
@@ -28,7 +28,7 @@ const Vt = (s) => s === "";
|
|
|
28
28
|
* This source code is licensed under the ISC license.
|
|
29
29
|
* See the LICENSE file in the root directory of this source tree.
|
|
30
30
|
*/
|
|
31
|
-
const
|
|
31
|
+
const _s = (...s) => s.filter((e, t, a) => !!e && e.trim() !== "" && a.indexOf(e) === t).join(" ").trim();
|
|
32
32
|
/**
|
|
33
33
|
* @license lucide-vue-next v0.577.0 - ISC
|
|
34
34
|
*
|
|
@@ -42,7 +42,7 @@ const Lt = (s) => s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
|
42
42
|
* This source code is licensed under the ISC license.
|
|
43
43
|
* See the LICENSE file in the root directory of this source tree.
|
|
44
44
|
*/
|
|
45
|
-
const
|
|
45
|
+
const $s = (s) => s.replace(
|
|
46
46
|
/^([A-Z])|[\s-_]+(\w)/g,
|
|
47
47
|
(e, t, a) => a ? a.toUpperCase() : t.toLowerCase()
|
|
48
48
|
);
|
|
@@ -53,7 +53,7 @@ const _s = (s) => s.replace(
|
|
|
53
53
|
* See the LICENSE file in the root directory of this source tree.
|
|
54
54
|
*/
|
|
55
55
|
const Ds = (s) => {
|
|
56
|
-
const e =
|
|
56
|
+
const e = $s(s);
|
|
57
57
|
return e.charAt(0).toUpperCase() + e.slice(1);
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
@@ -98,7 +98,7 @@ const Cs = ({
|
|
|
98
98
|
height: n,
|
|
99
99
|
stroke: o,
|
|
100
100
|
"stroke-width": Vt(t) || Vt(a) || t === !0 || a === !0 ? Number(r || i || ze["stroke-width"]) * 24 / Number(n) : r || i || ze["stroke-width"],
|
|
101
|
-
class:
|
|
101
|
+
class: _s(
|
|
102
102
|
"lucide",
|
|
103
103
|
l.class,
|
|
104
104
|
...s ? [`lucide-${Lt(Ds(s))}-icon`, `lucide-${Lt(s)}`] : ["lucide-icon"]
|
|
@@ -410,10 +410,10 @@ const Bs = ee("x", [
|
|
|
410
410
|
t("update:is-enabled", a);
|
|
411
411
|
};
|
|
412
412
|
return (i, n) => (h(), x("div", qs, [
|
|
413
|
-
|
|
413
|
+
i.leftLabel ? (h(), x("div", {
|
|
414
414
|
key: 0,
|
|
415
415
|
class: se(["transition-colors", { "text-blue-500": !a.value }])
|
|
416
|
-
}, W(
|
|
416
|
+
}, W(i.leftLabel), 3)) : F("", !0),
|
|
417
417
|
et(c("input", {
|
|
418
418
|
"onUpdate:modelValue": n[0] || (n[0] = (o) => a.value = o),
|
|
419
419
|
type: "checkbox",
|
|
@@ -422,10 +422,10 @@ const Bs = ee("x", [
|
|
|
422
422
|
}, null, 544), [
|
|
423
423
|
[ps, a.value]
|
|
424
424
|
]),
|
|
425
|
-
|
|
425
|
+
i.rightLabel ? (h(), x("div", {
|
|
426
426
|
key: 1,
|
|
427
427
|
class: se(["transition-colors", { "text-blue-500": a.value }])
|
|
428
|
-
}, W(
|
|
428
|
+
}, W(i.rightLabel), 3)) : F("", !0)
|
|
429
429
|
]));
|
|
430
430
|
}
|
|
431
431
|
}), Q = (s, e) => {
|
|
@@ -443,8 +443,8 @@ function Hs(s, e) {
|
|
|
443
443
|
}
|
|
444
444
|
const Zs = /* @__PURE__ */ Q(Us, [["render", Hs]]), Nt = {
|
|
445
445
|
"bi-bar": M(() => Promise.resolve().then(() => ei)),
|
|
446
|
-
"bi-number": M(() => import("./vs-number-
|
|
447
|
-
"bi-text": M(() => import("./vs-text-
|
|
446
|
+
"bi-number": M(() => import("./vs-number-BNnFUzs3.js")),
|
|
447
|
+
"bi-text": M(() => import("./vs-text-CPMz7TWB.js")),
|
|
448
448
|
"bi-listbar": M(() => Promise.resolve().then(() => Ki)),
|
|
449
449
|
"bi-pie": M(() => Promise.resolve().then(() => ci)),
|
|
450
450
|
"bi-donut": M(() => Promise.resolve().then(() => ni)),
|
|
@@ -452,10 +452,10 @@ const Zs = /* @__PURE__ */ Q(Us, [["render", Hs]]), Nt = {
|
|
|
452
452
|
"bi-stat": M(() => Promise.resolve().then(() => Ri)),
|
|
453
453
|
"bi-pivot": M(() => Promise.resolve().then(() => bo)),
|
|
454
454
|
"bi-progress": M(() => Promise.resolve().then(() => Mi)),
|
|
455
|
-
"bi-funnel": M(() => import("./vs-funnel-bar-
|
|
456
|
-
"bi-map": M(() => import("./vs-map-
|
|
457
|
-
"bi-cluster": M(() => import("./vs-map-cluster-
|
|
458
|
-
"bi-table": M(() => import("./vs-table-
|
|
455
|
+
"bi-funnel": M(() => import("./vs-funnel-bar-BuV_pQBq.js")),
|
|
456
|
+
"bi-map": M(() => import("./vs-map-qs7P1yfP.js")),
|
|
457
|
+
"bi-cluster": M(() => import("./vs-map-cluster-CeJxLtZx.js")),
|
|
458
|
+
"bi-table": M(() => import("./vs-table-BEvWIkoj.js"))
|
|
459
459
|
};
|
|
460
460
|
let Yt = "/api";
|
|
461
461
|
function He(s) {
|
|
@@ -524,7 +524,7 @@ const H = {
|
|
|
524
524
|
setup(s, { emit: e }) {
|
|
525
525
|
const t = s, a = e, r = T(null), i = T(null), n = T(null), o = T({}), l = T([]), d = A(() => {
|
|
526
526
|
var m, w;
|
|
527
|
-
const y = (m = t.dashboardWidgets) == null ? void 0 : m.find((
|
|
527
|
+
const y = (m = t.dashboardWidgets) == null ? void 0 : m.find(($) => $.name === t.widget);
|
|
528
528
|
return ((w = y == null ? void 0 : y.data) == null ? void 0 : w.title) ?? (y == null ? void 0 : y.title) ?? "";
|
|
529
529
|
}), u = A(() => {
|
|
530
530
|
var m;
|
|
@@ -545,18 +545,18 @@ const H = {
|
|
|
545
545
|
return y && y in Nt ? Nt[y] : null;
|
|
546
546
|
});
|
|
547
547
|
function g(y, m) {
|
|
548
|
-
var w,
|
|
549
|
-
(
|
|
548
|
+
var w, $;
|
|
549
|
+
($ = (w = i.value) == null ? void 0 : w.changeStyle) == null || $.call(w, y, m);
|
|
550
550
|
}
|
|
551
551
|
function k(y, m) {
|
|
552
|
-
const w = l.value.find((
|
|
552
|
+
const w = l.value.find(($) => $.name === m);
|
|
553
553
|
w ? w.option = y : l.value.push({ name: m, option: y }), C();
|
|
554
554
|
}
|
|
555
555
|
function C() {
|
|
556
556
|
var m, w;
|
|
557
557
|
let y = `/bi-data?dashboard=${t.dashboard}&widget=${t.widget}`;
|
|
558
|
-
l.value.forEach((
|
|
559
|
-
y += `&${
|
|
558
|
+
l.value.forEach(($) => {
|
|
559
|
+
y += `&${$.name}=${$.option}`;
|
|
560
560
|
}), (w = (m = i.value) == null ? void 0 : m.getDataFromURL) == null || w.call(m, y);
|
|
561
561
|
}
|
|
562
562
|
function S() {
|
|
@@ -591,7 +591,7 @@ const H = {
|
|
|
591
591
|
},
|
|
592
592
|
{ deep: !0 }
|
|
593
593
|
), (y, m) => {
|
|
594
|
-
var w, _
|
|
594
|
+
var w, $, _;
|
|
595
595
|
return h(), x("div", {
|
|
596
596
|
ref_key: "widgetRef",
|
|
597
597
|
ref: r,
|
|
@@ -605,7 +605,7 @@ const H = {
|
|
|
605
605
|
]),
|
|
606
606
|
c("div", ea, [
|
|
607
607
|
(w = v.value) != null && w.length ? (h(), x("span", ta, [
|
|
608
|
-
(h(!0), x(U, null, Z((
|
|
608
|
+
(h(!0), x(U, null, Z(($ = v.value) == null ? void 0 : $.filter(
|
|
609
609
|
(f) => (f == null ? void 0 : f.options) && (f == null ? void 0 : f.name) !== "export"
|
|
610
610
|
), (f) => {
|
|
611
611
|
var D, z;
|
|
@@ -626,7 +626,7 @@ const H = {
|
|
|
626
626
|
}, null, 8, ["left-label", "model-value", "onUpdate:isEnabled"])) : F("", !0)
|
|
627
627
|
]);
|
|
628
628
|
}), 128)),
|
|
629
|
-
(
|
|
629
|
+
(_ = v.value) != null && _.some((f) => (f == null ? void 0 : f.name) === "export") ? (h(), x("button", {
|
|
630
630
|
key: 0,
|
|
631
631
|
type: "button",
|
|
632
632
|
class: "h-[32px] w-[32px] rounded-lg hover:bg-gray-100 duration-100 flex items-center justify-center",
|
|
@@ -654,10 +654,10 @@ const H = {
|
|
|
654
654
|
"onUpdate:currentWidget": m[0] || (m[0] = (f) => n.value = f),
|
|
655
655
|
"widget-data": o.value,
|
|
656
656
|
"onUpdate:widgetData": m[1] || (m[1] = (f) => o.value = f),
|
|
657
|
-
dashboard:
|
|
657
|
+
dashboard: y.dashboard,
|
|
658
658
|
title: d.value,
|
|
659
|
-
widget:
|
|
660
|
-
"prefetched-data":
|
|
659
|
+
widget: y.widget,
|
|
660
|
+
"prefetched-data": y.prefetchedData
|
|
661
661
|
}, null, 40, ["current-widget", "widget-data", "dashboard", "title", "widget", "prefetched-data"])) : (h(), N(Zs, {
|
|
662
662
|
key: 1,
|
|
663
663
|
class: "w-full h-full"
|
|
@@ -678,8 +678,8 @@ const H = {
|
|
|
678
678
|
c("div", aa, [
|
|
679
679
|
t[0] || (t[0] = fs('<svg class="w-48 mx-auto" viewBox="0 0 178 90" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs></svg>', 1)),
|
|
680
680
|
c("div", ra, [
|
|
681
|
-
c("p", na, W(
|
|
682
|
-
c("p", ia, W(
|
|
681
|
+
c("p", na, W(e.title), 1),
|
|
682
|
+
c("p", ia, W(e.text), 1)
|
|
683
683
|
])
|
|
684
684
|
])
|
|
685
685
|
])
|
|
@@ -742,7 +742,7 @@ function ya(s, e, t, a, r, i) {
|
|
|
742
742
|
const wa = /* @__PURE__ */ Q(pa, [["render", ya]]), va = {
|
|
743
743
|
key: 0,
|
|
744
744
|
class: "text-gray-400 shrink-0"
|
|
745
|
-
}, ka = ["onClick"],
|
|
745
|
+
}, ka = ["onClick"], _a = ["onClick"], $a = {
|
|
746
746
|
key: 4,
|
|
747
747
|
class: "text-gray-900 font-medium truncate"
|
|
748
748
|
}, Jt = {
|
|
@@ -787,7 +787,7 @@ const wa = /* @__PURE__ */ Q(pa, [["render", ya]]), va = {
|
|
|
787
787
|
key: 3,
|
|
788
788
|
class: "hover:text-gray-900 transition-colors cursor-pointer",
|
|
789
789
|
onClick: (u) => r(l.to)
|
|
790
|
-
}, W(l.label), 9,
|
|
790
|
+
}, W(l.label), 9, _a)) : (h(), x("span", $a, W(l.label), 1))
|
|
791
791
|
], 64))), 128))
|
|
792
792
|
], 2);
|
|
793
793
|
};
|
|
@@ -1239,8 +1239,8 @@ const Sa = {
|
|
|
1239
1239
|
},
|
|
1240
1240
|
emits: ["update-dashboard"],
|
|
1241
1241
|
setup(s, { expose: e, emit: t }) {
|
|
1242
|
-
var w, _,
|
|
1243
|
-
const a = M(() => import("@opengis/form")), { $notify: r } = me().proxy, i = t, n = s, o = T(null), l = A(() => n.dashboardId || o.value), d = ((w = n.data) == null ? void 0 : w.type) || ((
|
|
1242
|
+
var w, $, _, f;
|
|
1243
|
+
const a = M(() => import("@opengis/form")), { $notify: r } = me().proxy, i = t, n = s, o = T(null), l = A(() => n.dashboardId || o.value), d = ((w = n.data) == null ? void 0 : w.type) || ((_ = ($ = n.data) == null ? void 0 : $.data) == null ? void 0 : _.type), p = {
|
|
1244
1244
|
pie: { label: !1, legend: !0, tooltip: !0 },
|
|
1245
1245
|
donut: { label: !1, legend: !0, tooltip: !0 },
|
|
1246
1246
|
bar: { label: !1, legend: !1, tooltip: !0 },
|
|
@@ -1604,12 +1604,12 @@ ${p}` : p;
|
|
|
1604
1604
|
`, 1)[0], b = !p.trim(), g = 0;
|
|
1605
1605
|
if (this.options.pedantic ? (g = 2, u = p.trimStart()) : b ? g = t[1].length + 1 : (g = t[2].search(/[^ ]/), g = g > 4 ? 1 : g, u = p.slice(g), g += t[1].length), b && /^[ \t]*$/.test(v) && (d += v + `
|
|
1606
1606
|
`, e = e.substring(v.length + 1), l = !0), !l) {
|
|
1607
|
-
const S = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), y = new RegExp(`^ {0,${Math.min(3, g - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), m = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:\`\`\`|~~~)`), w = new RegExp(`^ {0,${Math.min(3, g - 1)}}#`),
|
|
1607
|
+
const S = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), y = new RegExp(`^ {0,${Math.min(3, g - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), m = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:\`\`\`|~~~)`), w = new RegExp(`^ {0,${Math.min(3, g - 1)}}#`), $ = new RegExp(`^ {0,${Math.min(3, g - 1)}}<(?:[a-z].*>|!--)`, "i");
|
|
1608
1608
|
for (; e; ) {
|
|
1609
|
-
const
|
|
1609
|
+
const _ = e.split(`
|
|
1610
1610
|
`, 1)[0];
|
|
1611
1611
|
let f;
|
|
1612
|
-
if (v =
|
|
1612
|
+
if (v = _, this.options.pedantic ? (v = v.replace(/^ {1,4}(?=( {4})*[^ ])/g, " "), f = v) : f = v.replace(/\t/g, " "), m.test(v) || w.test(v) || $.test(v) || S.test(v) || y.test(v))
|
|
1613
1613
|
break;
|
|
1614
1614
|
if (f.search(/[^ ]/) >= g || !v.trim())
|
|
1615
1615
|
u += `
|
|
@@ -1620,8 +1620,8 @@ ${p}` : p;
|
|
|
1620
1620
|
u += `
|
|
1621
1621
|
` + v;
|
|
1622
1622
|
}
|
|
1623
|
-
!b && !v.trim() && (b = !0), d +=
|
|
1624
|
-
`, e = e.substring(
|
|
1623
|
+
!b && !v.trim() && (b = !0), d += _ + `
|
|
1624
|
+
`, e = e.substring(_.length + 1), p = f.slice(g);
|
|
1625
1625
|
}
|
|
1626
1626
|
}
|
|
1627
1627
|
i.loose || (o ? i.loose = !0 : /\n[ \t]*\n[ \t]*$/.test(d) && (o = !0));
|
|
@@ -2814,7 +2814,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
2814
2814
|
},
|
|
2815
2815
|
emits: ["update-dashboard"],
|
|
2816
2816
|
setup(s, { expose: e, emit: t }) {
|
|
2817
|
-
var _,
|
|
2817
|
+
var $, _, f, D, z, V, q, Y, ie, ce, ve, ke, _e, $e, De, G, ue, Ce, ct, ut, ht, pt, ft, gt, mt, bt, xt, yt, wt, vt, kt, _t, $t, Dt, Ct, zt, Tt, It;
|
|
2818
2818
|
const a = M(() => import("@opengis/form")), { $notify: r } = me().proxy, i = t, n = s, o = typeof window < "u" ? new URLSearchParams(window.top.location.search) : null, l = T((o == null ? void 0 : o.get("dashboard")) || null), d = T([]), u = A(() => {
|
|
2819
2819
|
const R = n.columns ?? [];
|
|
2820
2820
|
return R.length ? R : d.value;
|
|
@@ -2937,18 +2937,18 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
2937
2937
|
hidden: !0
|
|
2938
2938
|
}
|
|
2939
2939
|
})), y = T({
|
|
2940
|
-
x: ((
|
|
2940
|
+
x: ((_ = ($ = n.data) == null ? void 0 : $.data) == null ? void 0 : _.x) || ((f = n.data) == null ? void 0 : f.x) || null,
|
|
2941
2941
|
metric: ((z = (D = n.data) == null ? void 0 : D.data) == null ? void 0 : z.metric) || ((V = n.data) == null ? void 0 : V.metric) || null,
|
|
2942
2942
|
columns: ((Y = (q = n.data) == null ? void 0 : q.data) == null ? void 0 : Y.columns) || ((ie = n.data) == null ? void 0 : ie.columns) || null,
|
|
2943
2943
|
granularity: ((ve = (ce = n.data) == null ? void 0 : ce.data) == null ? void 0 : ve.granularity) || ((ke = n.data) == null ? void 0 : ke.granularity) || null,
|
|
2944
|
-
type: ((
|
|
2944
|
+
type: (($e = (_e = n.data) == null ? void 0 : _e.data) == null ? void 0 : $e.type) || ((De = n.data) == null ? void 0 : De.type) || null,
|
|
2945
2945
|
groupby: ((ue = (G = n.data) == null ? void 0 : G.data) == null ? void 0 : ue.groupby) || n.data.groupby || null,
|
|
2946
2946
|
fx: ((ct = (Ce = n.data) == null ? void 0 : Ce.data) == null ? void 0 : ct.fx) || ((ut = n.data) == null ? void 0 : ut.fx) || null,
|
|
2947
2947
|
query: ((pt = (ht = n.data) == null ? void 0 : ht.data) == null ? void 0 : pt.query) || ((ft = n.data) == null ? void 0 : ft.query) || null,
|
|
2948
2948
|
y_type: ((mt = (gt = n.data) == null ? void 0 : gt.data) == null ? void 0 : mt.y_type) || ((bt = n.data) == null ? void 0 : bt.y_type) || null,
|
|
2949
2949
|
tableSQL: ((yt = (xt = n.data) == null ? void 0 : xt.data) == null ? void 0 : yt.tableSQL) || ((wt = n.data) == null ? void 0 : wt.tableSQL) || null,
|
|
2950
|
-
cls: ((kt = (vt = n.data) == null ? void 0 : vt.data) == null ? void 0 : kt.cls) || ((
|
|
2951
|
-
text: ((Dt = (
|
|
2950
|
+
cls: ((kt = (vt = n.data) == null ? void 0 : vt.data) == null ? void 0 : kt.cls) || ((_t = n.data) == null ? void 0 : _t.cls) || null,
|
|
2951
|
+
text: ((Dt = ($t = n.data) == null ? void 0 : $t.data) == null ? void 0 : Dt.text) || ((Ct = n.data) == null ? void 0 : Ct.text) || null,
|
|
2952
2952
|
table: ((Tt = (zt = n.data) == null ? void 0 : zt.data) == null ? void 0 : Tt.table) || ((It = n.data) == null ? void 0 : It.table) || null
|
|
2953
2953
|
}), m = async () => {
|
|
2954
2954
|
try {
|
|
@@ -3005,7 +3005,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3005
3005
|
}, null, 8, ["schema", "values"]))
|
|
3006
3006
|
]));
|
|
3007
3007
|
}
|
|
3008
|
-
}, kr = { class: "space-y-4" },
|
|
3008
|
+
}, kr = { class: "space-y-4" }, _r = {
|
|
3009
3009
|
__name: "vs-editor-form-yaml",
|
|
3010
3010
|
props: {
|
|
3011
3011
|
yamlValue: { type: null, default: () => "" },
|
|
@@ -3018,10 +3018,10 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3018
3018
|
const a = typeof window < "u" ? window.echarts : null, r = M(
|
|
3019
3019
|
() => import("@opengis/form").then((g) => g.VsInputMonaco)
|
|
3020
3020
|
), i = T(null), n = A(() => d.dashboardId || i.value), { $notify: o } = me().proxy, l = t, d = s, u = (g, { dimensions: k, source: C }) => {
|
|
3021
|
-
const S = g.getOption(), { data: y, ...m } = (S == null ? void 0 : S.series)[0], [, ...w] = k || [],
|
|
3021
|
+
const S = g.getOption(), { data: y, ...m } = (S == null ? void 0 : S.series)[0], [, ...w] = k || [], $ = w.map((_, f) => ({
|
|
3022
3022
|
...(S == null ? void 0 : S.series[f]) || {},
|
|
3023
3023
|
data: C.map((D) => D[f + 1]),
|
|
3024
|
-
name:
|
|
3024
|
+
name: _
|
|
3025
3025
|
}));
|
|
3026
3026
|
g == null || g.setOption(
|
|
3027
3027
|
{
|
|
@@ -3030,7 +3030,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3030
3030
|
dimensions: k,
|
|
3031
3031
|
source: C
|
|
3032
3032
|
},
|
|
3033
|
-
series:
|
|
3033
|
+
series: $,
|
|
3034
3034
|
xAxis: { type: "category" },
|
|
3035
3035
|
yAxis: {}
|
|
3036
3036
|
},
|
|
@@ -3080,7 +3080,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3080
3080
|
}, null, 8, ["modelValue"])
|
|
3081
3081
|
]));
|
|
3082
3082
|
}
|
|
3083
|
-
},
|
|
3083
|
+
}, $r = { class: "pt-[10px]" }, Dr = {
|
|
3084
3084
|
__name: "vs-editor-form-controls",
|
|
3085
3085
|
props: {
|
|
3086
3086
|
widgetName: { type: String },
|
|
@@ -3128,7 +3128,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3128
3128
|
n.value = p.get("dashboard");
|
|
3129
3129
|
}), (p, v) => {
|
|
3130
3130
|
const b = K("VsButton");
|
|
3131
|
-
return h(), x("div",
|
|
3131
|
+
return h(), x("div", $r, [
|
|
3132
3132
|
I(b, {
|
|
3133
3133
|
class: "ml-[10px] mb-[10px]",
|
|
3134
3134
|
type: "plain",
|
|
@@ -3150,7 +3150,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3150
3150
|
}, Ft = {
|
|
3151
3151
|
"vs-editor-form-style": Pa,
|
|
3152
3152
|
"vs-editor-form-data": vr,
|
|
3153
|
-
"vs-editor-form-yaml":
|
|
3153
|
+
"vs-editor-form-yaml": _r,
|
|
3154
3154
|
"vs-editor-form-controls": Dr
|
|
3155
3155
|
}, Cr = {
|
|
3156
3156
|
key: 0,
|
|
@@ -3215,8 +3215,8 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3215
3215
|
}),
|
|
3216
3216
|
emits: /* @__PURE__ */ Be(["update-data"], ["update:selectedWidget"]),
|
|
3217
3217
|
setup(s, { emit: e }) {
|
|
3218
|
-
var w,
|
|
3219
|
-
const t = M(() => import("@opengis/form")), a = (
|
|
3218
|
+
var w, $;
|
|
3219
|
+
const t = M(() => import("@opengis/form")), a = ($ = (w = me()) == null ? void 0 : w.proxy) == null ? void 0 : $.$notify, r = we(), i = e, n = T(null), o = s, l = T(!1), d = T(!0), u = T(!1), p = T({}), v = Gt(s, "selectedWidget"), b = [
|
|
3220
3220
|
"table",
|
|
3221
3221
|
"text",
|
|
3222
3222
|
"number",
|
|
@@ -3237,30 +3237,30 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3237
3237
|
title: "Успішно!",
|
|
3238
3238
|
message: "Віджет успішно видалено"
|
|
3239
3239
|
});
|
|
3240
|
-
} catch (
|
|
3241
|
-
console.error(
|
|
3240
|
+
} catch (_) {
|
|
3241
|
+
console.error(_), a({
|
|
3242
3242
|
type: "error",
|
|
3243
3243
|
title: "Помилка!",
|
|
3244
3244
|
message: "При спробі видалити віджет виникла помилка"
|
|
3245
3245
|
});
|
|
3246
3246
|
}
|
|
3247
3247
|
}, C = A(() => {
|
|
3248
|
-
const
|
|
3248
|
+
const _ = [
|
|
3249
3249
|
{ id: "data", label: "Дані" },
|
|
3250
3250
|
{ id: "style", label: "Стилі" },
|
|
3251
3251
|
{ id: "yaml", label: "{ }" }
|
|
3252
3252
|
// { id: 'controls', label: 'Контролси' },
|
|
3253
3253
|
];
|
|
3254
|
-
return
|
|
3254
|
+
return _ == null ? void 0 : _.filter((f) => {
|
|
3255
3255
|
var D, z, V;
|
|
3256
3256
|
return f.id === "style" ? !(b != null && b.includes(
|
|
3257
3257
|
((D = o.selectedWidgetData) == null ? void 0 : D.type) || ((V = (z = o.selectedWidgetData) == null ? void 0 : z.data) == null ? void 0 : V.type)
|
|
3258
3258
|
)) : !0;
|
|
3259
3259
|
});
|
|
3260
3260
|
}), S = () => {
|
|
3261
|
-
var
|
|
3261
|
+
var _, f, D, z, V, q, Y, ie, ce;
|
|
3262
3262
|
p.value = {
|
|
3263
|
-
title: (
|
|
3263
|
+
title: (_ = o.selectedWidgetData) == null ? void 0 : _.title,
|
|
3264
3264
|
type: (f = o.selectedWidgetData) == null ? void 0 : f.type,
|
|
3265
3265
|
table: (D = o.selectedWidgetData) == null ? void 0 : D.table_name,
|
|
3266
3266
|
query: (V = (z = o.selectedWidgetData) == null ? void 0 : z.data) == null ? void 0 : V.query,
|
|
@@ -3376,8 +3376,8 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3376
3376
|
placeholder: "Cls"
|
|
3377
3377
|
}
|
|
3378
3378
|
};
|
|
3379
|
-
return (
|
|
3380
|
-
var z, V, q, Y, ie, ce, ve, ke, $e,
|
|
3379
|
+
return (_, f) => {
|
|
3380
|
+
var z, V, q, Y, ie, ce, ve, ke, _e, $e, De;
|
|
3381
3381
|
const D = K("VsPopover");
|
|
3382
3382
|
return h(), x(U, null, [
|
|
3383
3383
|
c("div", zr, [
|
|
@@ -3472,7 +3472,7 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3472
3472
|
data: s.selectedWidgetData,
|
|
3473
3473
|
controls: (ce = s.selectedWidgetData) == null ? void 0 : ce.controls,
|
|
3474
3474
|
columns: (ve = s.currentWidgetData) == null ? void 0 : ve.columns,
|
|
3475
|
-
onUpdateDashboard: f[2] || (f[2] = (G) =>
|
|
3475
|
+
onUpdateDashboard: f[2] || (f[2] = (G) => _.$emit("update-data"))
|
|
3476
3476
|
}, null, 8, ["tab-key", "tab-component", "widgetName", "dashboardId", "yamlValue", "data", "controls", "columns"])
|
|
3477
3477
|
])) : (h(), x("div", Er, [
|
|
3478
3478
|
I(qt, {
|
|
@@ -3482,11 +3482,11 @@ const wr = { class: "space-y-4" }, vr = {
|
|
|
3482
3482
|
"tab-component": E(Ft)["vs-editor-form-" + g.value],
|
|
3483
3483
|
widgetName: (ke = s.selectedWidgetData) == null ? void 0 : ke.name,
|
|
3484
3484
|
dashboardId: s.selectedDashboard,
|
|
3485
|
-
yamlValue: ((
|
|
3485
|
+
yamlValue: ((_e = s.selectedWidgetData) == null ? void 0 : _e.yml) || "",
|
|
3486
3486
|
data: s.selectedWidgetData,
|
|
3487
|
-
controls: (
|
|
3487
|
+
controls: ($e = s.selectedWidgetData) == null ? void 0 : $e.controls,
|
|
3488
3488
|
columns: (De = s.currentWidgetData) == null ? void 0 : De.columns,
|
|
3489
|
-
onUpdateDashboard: f[3] || (f[3] = (G) =>
|
|
3489
|
+
onUpdateDashboard: f[3] || (f[3] = (G) => _.$emit("update-data"))
|
|
3490
3490
|
}, null, 8, ["tab-key", "tab-component", "widgetName", "dashboardId", "yamlValue", "data", "controls", "columns"])
|
|
3491
3491
|
])),
|
|
3492
3492
|
I(Ve, {
|
|
@@ -4032,7 +4032,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4032
4032
|
}, b = A(
|
|
4033
4033
|
() => {
|
|
4034
4034
|
var y, m, w;
|
|
4035
|
-
return (w = Array.isArray((y = d.value) == null ? void 0 : y.widgets) ? (m = d.value) == null ? void 0 : m.widgets : []) == null ? void 0 : w.find((
|
|
4035
|
+
return (w = Array.isArray((y = d.value) == null ? void 0 : y.widgets) ? (m = d.value) == null ? void 0 : m.widgets : []) == null ? void 0 : w.find(($) => ($ == null ? void 0 : $.name) === l.value);
|
|
4036
4036
|
}
|
|
4037
4037
|
);
|
|
4038
4038
|
function g(y) {
|
|
@@ -4051,10 +4051,10 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4051
4051
|
i.value ? r.push({ name: J.Editor }) : (typeof n == "function" && n(), a("back"));
|
|
4052
4052
|
}
|
|
4053
4053
|
const S = A(() => {
|
|
4054
|
-
var w, _,
|
|
4054
|
+
var w, $, _, f, D;
|
|
4055
4055
|
const m = [i.value ? { label: "Дашборди", to: { name: J.Editor } } : { label: "Дашборди", onClick: C }];
|
|
4056
4056
|
if ((w = d.value) != null && w.title || o.value) {
|
|
4057
|
-
const z = ((
|
|
4057
|
+
const z = (($ = d.value) == null ? void 0 : $.title) || o.value || "Редактор";
|
|
4058
4058
|
!!l.value ? m.push(
|
|
4059
4059
|
i.value ? { label: z, to: { name: J.EditorDashboard, params: { dashboardId: o.value } } } : { label: z, onClick: () => {
|
|
4060
4060
|
l.value = "";
|
|
@@ -4063,7 +4063,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4063
4063
|
} else
|
|
4064
4064
|
m.push({ label: "Редактор" });
|
|
4065
4065
|
if (l.value && b.value) {
|
|
4066
|
-
const z = ((f = (
|
|
4066
|
+
const z = ((f = (_ = b.value) == null ? void 0 : _.data) == null ? void 0 : f.title) || ((D = b.value) == null ? void 0 : D.title) || l.value;
|
|
4067
4067
|
m.push({ label: z });
|
|
4068
4068
|
}
|
|
4069
4069
|
return m;
|
|
@@ -4073,7 +4073,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4073
4073
|
}), le(() => {
|
|
4074
4074
|
v();
|
|
4075
4075
|
}), (y, m) => {
|
|
4076
|
-
var w,
|
|
4076
|
+
var w, $;
|
|
4077
4077
|
return h(), x("div", {
|
|
4078
4078
|
class: se(["flex w-full h-full", [s.customClass]])
|
|
4079
4079
|
}, [
|
|
@@ -4103,7 +4103,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4103
4103
|
])) : (h(), x(U, { key: 1 }, [
|
|
4104
4104
|
I(on, {
|
|
4105
4105
|
selected: o.value,
|
|
4106
|
-
"onUpdate:selected": m[0] || (m[0] = (
|
|
4106
|
+
"onUpdate:selected": m[0] || (m[0] = (_) => o.value = _),
|
|
4107
4107
|
dashboardData: d.value,
|
|
4108
4108
|
columns: (w = d.value) == null ? void 0 : w.columns,
|
|
4109
4109
|
selectedWidgetData: b.value,
|
|
@@ -4113,7 +4113,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4113
4113
|
c("button", {
|
|
4114
4114
|
type: "button",
|
|
4115
4115
|
class: "ml-4 flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors shadow-sm font-medium",
|
|
4116
|
-
onClick: m[1] || (m[1] = (
|
|
4116
|
+
onClick: m[1] || (m[1] = (_) => {
|
|
4117
4117
|
var f, D;
|
|
4118
4118
|
return (D = (f = p.value) == null ? void 0 : f.open) == null ? void 0 : D.call(f);
|
|
4119
4119
|
})
|
|
@@ -4126,7 +4126,7 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4126
4126
|
ref_key: "createWidgetRef",
|
|
4127
4127
|
ref: p,
|
|
4128
4128
|
inline: "",
|
|
4129
|
-
columns: (
|
|
4129
|
+
columns: ($ = d.value) == null ? void 0 : $.columns,
|
|
4130
4130
|
selectedDashboard: o.value,
|
|
4131
4131
|
onUpdateData: v
|
|
4132
4132
|
}, null, 8, ["columns", "selectedDashboard"])) : F("", !0)
|
|
@@ -4137,20 +4137,20 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4137
4137
|
l.value && d.value ? (h(), N(Gr, {
|
|
4138
4138
|
key: 0,
|
|
4139
4139
|
"selected-widget": l.value,
|
|
4140
|
-
"onUpdate:selectedWidget": m[2] || (m[2] = (
|
|
4140
|
+
"onUpdate:selectedWidget": m[2] || (m[2] = (_) => l.value = _),
|
|
4141
4141
|
"selected-widget-data": b.value,
|
|
4142
4142
|
"current-widget-data": u.value,
|
|
4143
4143
|
"selected-dashboard": o.value,
|
|
4144
4144
|
"dashboard-widgets": d.value.widgets || [],
|
|
4145
4145
|
onUpdateData: v
|
|
4146
4146
|
}, null, 8, ["selected-widget", "selected-widget-data", "current-widget-data", "selected-dashboard", "dashboard-widgets"])) : (h(), x("div", bn, [
|
|
4147
|
-
d.value ? (h(!0), x(U, { key: 1 }, Z(d.value.panels, (
|
|
4147
|
+
d.value ? (h(!0), x(U, { key: 1 }, Z(d.value.panels, (_, f) => {
|
|
4148
4148
|
var D, z;
|
|
4149
4149
|
return h(), x("div", {
|
|
4150
|
-
key:
|
|
4151
|
-
class: se([`md:col-span-${
|
|
4150
|
+
key: _.widget || ((D = _.widgets) == null ? void 0 : D.join("-")) || f,
|
|
4151
|
+
class: se([`md:col-span-${_.col || 12} col-span-12`, "flex flex-col gap-[10px]"])
|
|
4152
4152
|
}, [
|
|
4153
|
-
(z =
|
|
4153
|
+
(z = _.widgets) != null && z.length ? (h(!0), x(U, { key: 0 }, Z(_.widgets, (V) => (h(), N(Oe, {
|
|
4154
4154
|
onClick: (q) => g(V),
|
|
4155
4155
|
"onUpdate:currentWidgetData": m[3] || (m[3] = (q) => u.value = q),
|
|
4156
4156
|
key: V,
|
|
@@ -4158,22 +4158,22 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4158
4158
|
widget: V,
|
|
4159
4159
|
selectedWidget: l.value,
|
|
4160
4160
|
"dashboard-widgets": d.value.widgets,
|
|
4161
|
-
height: Number(
|
|
4161
|
+
height: Number(_.height ?? 480),
|
|
4162
4162
|
class: se({
|
|
4163
4163
|
"border border-blue-500": l.value === V
|
|
4164
4164
|
})
|
|
4165
4165
|
}, null, 8, ["onClick", "dashboard", "widget", "selectedWidget", "dashboard-widgets", "height", "class"]))), 128)) : (h(), N(Oe, {
|
|
4166
4166
|
key: 1,
|
|
4167
|
-
onClick: (V) => g(
|
|
4167
|
+
onClick: (V) => g(_.widget),
|
|
4168
4168
|
"onUpdate:currentWidgetData": m[4] || (m[4] = (V) => u.value = V),
|
|
4169
4169
|
class: se(["flex flex-col", {
|
|
4170
|
-
"border border-blue-500": l.value ===
|
|
4170
|
+
"border border-blue-500": l.value === _.widget
|
|
4171
4171
|
}]),
|
|
4172
4172
|
dashboard: o.value,
|
|
4173
|
-
widget:
|
|
4173
|
+
widget: _.widget,
|
|
4174
4174
|
selectedWidget: l.value,
|
|
4175
4175
|
"dashboard-widgets": d.value.widgets,
|
|
4176
|
-
height: Number(
|
|
4176
|
+
height: Number(_.height ?? 480)
|
|
4177
4177
|
}, null, 8, ["onClick", "class", "dashboard", "widget", "selectedWidget", "dashboard-widgets", "height"]))
|
|
4178
4178
|
], 2);
|
|
4179
4179
|
}), 128)) : (h(), N(Pe, {
|
|
@@ -4198,14 +4198,14 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4198
4198
|
return (e, t) => (h(), x("div", wn, [
|
|
4199
4199
|
I(yn, {
|
|
4200
4200
|
customClass: "h-full w-full",
|
|
4201
|
-
prefix:
|
|
4202
|
-
"initial-dashboard-id":
|
|
4203
|
-
"initial-widget-id":
|
|
4201
|
+
prefix: e.prefix,
|
|
4202
|
+
"initial-dashboard-id": e.dashboardId,
|
|
4203
|
+
"initial-widget-id": e.widgetId,
|
|
4204
4204
|
onBack: t[0] || (t[0] = (a) => e.$emit("back"))
|
|
4205
4205
|
}, null, 8, ["prefix", "initial-dashboard-id", "initial-widget-id"])
|
|
4206
4206
|
]));
|
|
4207
4207
|
}
|
|
4208
|
-
}), kn = { class: "relative group h-full" },
|
|
4208
|
+
}), kn = { class: "relative group h-full" }, _n = { class: "flex items-start gap-3 flex-1 min-h-0" }, $n = { class: "p-2 bg-blue-50 rounded-lg group-hover:bg-blue-100 transition-colors shrink-0" }, Dn = { class: "flex-1 min-w-0 flex flex-col min-h-0" }, Cn = { class: "font-semibold text-gray-900 mb-1 truncate" }, zn = {
|
|
4209
4209
|
key: 0,
|
|
4210
4210
|
class: "text-sm text-gray-600 mb-2 line-clamp-2 min-h-10"
|
|
4211
4211
|
}, Tn = {
|
|
@@ -4244,8 +4244,8 @@ const on = /* @__PURE__ */ Q(Yr, [["render", nn]]), ln = { class: "flex-1 min-w-
|
|
|
4244
4244
|
class: "w-full h-full bg-white border border-gray-200 rounded-lg p-6 hover:shadow-md hover:border-blue-200 transition-all text-left animate-fade-in flex flex-col",
|
|
4245
4245
|
onClick: r
|
|
4246
4246
|
}, [
|
|
4247
|
-
c("div",
|
|
4248
|
-
c("div",
|
|
4247
|
+
c("div", _n, [
|
|
4248
|
+
c("div", $n, [
|
|
4249
4249
|
I(E(Vs), {
|
|
4250
4250
|
size: 24,
|
|
4251
4251
|
class: "w-5 h-5 text-blue-600"
|
|
@@ -4291,18 +4291,18 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4291
4291
|
setup(s) {
|
|
4292
4292
|
const e = M(() => import("@opengis/form")), t = Ln(Vn), a = T([]), r = T([]), i = we(), n = Qt("biSetDashboard", void 0), o = s, l = T(null), d = T(!1), u = T({}), p = T(""), v = T("title-asc"), b = A(() => {
|
|
4293
4293
|
const w = p.value.trim().toLowerCase();
|
|
4294
|
-
let
|
|
4295
|
-
w && (
|
|
4296
|
-
const
|
|
4297
|
-
return [
|
|
4294
|
+
let $ = a.value;
|
|
4295
|
+
w && ($ = $.filter((f) => f.title.toLowerCase().includes(w)));
|
|
4296
|
+
const _ = v.value === "title-asc" ? 1 : -1;
|
|
4297
|
+
return [...$].sort((f, D) => _ * f.title.localeCompare(D.title, "uk"));
|
|
4298
4298
|
});
|
|
4299
4299
|
async function g() {
|
|
4300
4300
|
try {
|
|
4301
|
-
const w = await H.get("/bi-dashboard?type=db"),
|
|
4302
|
-
r.value =
|
|
4303
|
-
routeName: String(
|
|
4304
|
-
title:
|
|
4305
|
-
description:
|
|
4301
|
+
const w = await H.get("/bi-dashboard?type=db"), $ = Array.isArray(w == null ? void 0 : w.rows) ? w.rows : [];
|
|
4302
|
+
r.value = $, a.value = $.map((_) => ({
|
|
4303
|
+
routeName: String(_.name ?? ""),
|
|
4304
|
+
title: _.title ?? _.name ?? "Без назви",
|
|
4305
|
+
description: _.description ?? null,
|
|
4306
4306
|
modified: "-",
|
|
4307
4307
|
name: "-"
|
|
4308
4308
|
}));
|
|
@@ -4311,8 +4311,8 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4311
4311
|
}
|
|
4312
4312
|
}
|
|
4313
4313
|
async function k() {
|
|
4314
|
-
var _,
|
|
4315
|
-
const w = (
|
|
4314
|
+
var $, _, f;
|
|
4315
|
+
const w = (_ = ($ = me()) == null ? void 0 : $.proxy) == null ? void 0 : _.$notify;
|
|
4316
4316
|
try {
|
|
4317
4317
|
const D = (f = l.value) == null ? void 0 : f.validate();
|
|
4318
4318
|
typeof D == "function" && await D();
|
|
@@ -4350,7 +4350,7 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4350
4350
|
window.removeEventListener("resize", S);
|
|
4351
4351
|
});
|
|
4352
4352
|
const y = (w) => w ? w.trim().length > 70 ? 2 : 1 : 0, m = (w) => {
|
|
4353
|
-
const
|
|
4353
|
+
const $ = C.value || 1, f = Math.floor(w / $) * $, D = f + $, z = b.value.slice(f, D);
|
|
4354
4354
|
let V = 0;
|
|
4355
4355
|
for (const q of z) {
|
|
4356
4356
|
const Y = y(q.description ?? null);
|
|
@@ -4358,38 +4358,38 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4358
4358
|
}
|
|
4359
4359
|
return V;
|
|
4360
4360
|
};
|
|
4361
|
-
return T("grid"), (w,
|
|
4361
|
+
return T("grid"), (w, $) => (h(), x("div", Wn, [
|
|
4362
4362
|
c("div", Nn, [
|
|
4363
4363
|
c("div", En, [
|
|
4364
4364
|
c("div", jn, [
|
|
4365
|
-
|
|
4365
|
+
$[7] || ($[7] = c("div", null, [
|
|
4366
4366
|
c("h1", { class: "text-3xl font-bold text-gray-900" }, "Дашборди"),
|
|
4367
4367
|
c("p", { class: "mt-2 text-gray-600" }, " Керуйте та переглядайте свої аналітичні дашборди ")
|
|
4368
4368
|
], -1)),
|
|
4369
4369
|
c("button", {
|
|
4370
4370
|
type: "button",
|
|
4371
4371
|
class: "flex items-center gap-2 px-4 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors shadow-sm font-medium",
|
|
4372
|
-
onClick:
|
|
4372
|
+
onClick: $[0] || ($[0] = (_) => d.value = !0)
|
|
4373
4373
|
}, [
|
|
4374
4374
|
I(E(Xt), {
|
|
4375
4375
|
size: 24,
|
|
4376
4376
|
class: "w-4 h-4"
|
|
4377
4377
|
}),
|
|
4378
|
-
|
|
4378
|
+
$[6] || ($[6] = c("span", null, "Новий дашборд", -1))
|
|
4379
4379
|
])
|
|
4380
4380
|
]),
|
|
4381
4381
|
I(Ve, {
|
|
4382
4382
|
teleport: "#modal",
|
|
4383
4383
|
visible: d.value,
|
|
4384
4384
|
title: "Створити дашборд",
|
|
4385
|
-
onClose:
|
|
4385
|
+
onClose: $[3] || ($[3] = (_) => d.value = !1)
|
|
4386
4386
|
}, {
|
|
4387
4387
|
footer: j(() => [
|
|
4388
4388
|
c("div", Bn, [
|
|
4389
4389
|
c("button", {
|
|
4390
4390
|
type: "button",
|
|
4391
4391
|
class: "py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border border-gray-200 rounded-lg hover:bg-gray-100 duration-300",
|
|
4392
|
-
onClick:
|
|
4392
|
+
onClick: $[2] || ($[2] = (_) => d.value = !1)
|
|
4393
4393
|
}, " Скасувати "),
|
|
4394
4394
|
c("button", {
|
|
4395
4395
|
type: "button",
|
|
@@ -4404,7 +4404,7 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4404
4404
|
ref: l,
|
|
4405
4405
|
schema: E(t),
|
|
4406
4406
|
values: u.value,
|
|
4407
|
-
"onUpdate:values":
|
|
4407
|
+
"onUpdate:values": $[1] || ($[1] = (_) => u.value = _)
|
|
4408
4408
|
}, null, 8, ["schema", "values"])
|
|
4409
4409
|
]),
|
|
4410
4410
|
_: 1
|
|
@@ -4416,7 +4416,7 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4416
4416
|
class: "absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400"
|
|
4417
4417
|
}),
|
|
4418
4418
|
et(c("input", {
|
|
4419
|
-
"onUpdate:modelValue":
|
|
4419
|
+
"onUpdate:modelValue": $[4] || ($[4] = (_) => p.value = _),
|
|
4420
4420
|
type: "text",
|
|
4421
4421
|
placeholder: "Пошук дашбордів...",
|
|
4422
4422
|
class: "w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
@@ -4426,9 +4426,9 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4426
4426
|
]),
|
|
4427
4427
|
c("div", An, [
|
|
4428
4428
|
et(c("select", {
|
|
4429
|
-
"onUpdate:modelValue":
|
|
4429
|
+
"onUpdate:modelValue": $[5] || ($[5] = (_) => v.value = _),
|
|
4430
4430
|
class: "appearance-none pl-3 pr-8 py-2 border border-gray-300 rounded-lg bg-white text-sm text-gray-700 cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
4431
|
-
}, [
|
|
4431
|
+
}, [...$[8] || ($[8] = [
|
|
4432
4432
|
c("option", { value: "title-asc" }, "Назва (А → Я)", -1),
|
|
4433
4433
|
c("option", { value: "title-desc" }, "Назва (Я → А)", -1)
|
|
4434
4434
|
])], 512), [
|
|
@@ -4442,17 +4442,17 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4442
4442
|
])
|
|
4443
4443
|
]),
|
|
4444
4444
|
b.value.length ? (h(), x("div", Fn, [
|
|
4445
|
-
(h(!0), x(U, null, Z(b.value, (
|
|
4446
|
-
key:
|
|
4445
|
+
(h(!0), x(U, null, Z(b.value, (_, f) => (h(), x("div", {
|
|
4446
|
+
key: _.routeName,
|
|
4447
4447
|
class: "cursor-pointer h-full"
|
|
4448
4448
|
}, [
|
|
4449
4449
|
I(Rn, {
|
|
4450
|
-
title:
|
|
4451
|
-
description:
|
|
4452
|
-
modified:
|
|
4453
|
-
name:
|
|
4450
|
+
title: _.title,
|
|
4451
|
+
description: _.description,
|
|
4452
|
+
modified: _.modified,
|
|
4453
|
+
name: _.name,
|
|
4454
4454
|
reserveLines: m(f),
|
|
4455
|
-
"dashboard-route-name":
|
|
4455
|
+
"dashboard-route-name": _.routeName,
|
|
4456
4456
|
"on-open-editor": E(n)
|
|
4457
4457
|
}, null, 8, ["title", "description", "modified", "name", "reserveLines", "dashboard-route-name", "on-open-editor"])
|
|
4458
4458
|
]))), 128))
|
|
@@ -4461,11 +4461,11 @@ const Wn = { class: "flex-1 bg-gray-50" }, Nn = { class: "max-w-7xl mx-auto px-6
|
|
|
4461
4461
|
size: 48,
|
|
4462
4462
|
class: "text-gray-300 mb-4"
|
|
4463
4463
|
}),
|
|
4464
|
-
|
|
4464
|
+
$[11] || ($[11] = c("p", { class: "text-lg font-medium text-gray-500" }, "Дашбордів не знайдено", -1)),
|
|
4465
4465
|
c("p", Mn, [
|
|
4466
|
-
|
|
4466
|
+
$[9] || ($[9] = X(" За запитом «", -1)),
|
|
4467
4467
|
c("span", Un, W(p.value), 1),
|
|
4468
|
-
|
|
4468
|
+
$[10] || ($[10] = X("» нічого не знайдено. Спробуйте змінити пошуковий запит. ", -1))
|
|
4469
4469
|
])
|
|
4470
4470
|
]))
|
|
4471
4471
|
])
|
|
@@ -4519,7 +4519,7 @@ function dt(s) {
|
|
|
4519
4519
|
const [e, t, a] = s.split("T")[0].split("-");
|
|
4520
4520
|
return `${a}.${t}.${e}`;
|
|
4521
4521
|
}
|
|
4522
|
-
function
|
|
4522
|
+
function _o(s) {
|
|
4523
4523
|
return Intl.NumberFormat("en").format(s ?? 0);
|
|
4524
4524
|
}
|
|
4525
4525
|
class Hn {
|
|
@@ -4735,9 +4735,9 @@ const ye = typeof window < "u" ? window.echarts : null, pe = {
|
|
|
4735
4735
|
padding: [0, 0, 0, 0],
|
|
4736
4736
|
borderWidth: 0,
|
|
4737
4737
|
position: (k, C, S, y, m) => {
|
|
4738
|
-
const [w,
|
|
4739
|
-
let V = w + 14, q =
|
|
4740
|
-
return V +
|
|
4738
|
+
const [w, $] = k, [_, f] = m.contentSize, [D, z] = m.viewSize;
|
|
4739
|
+
let V = w + 14, q = $ - f / 2;
|
|
4740
|
+
return V + _ > D && (V = w - _ - 14), V < 0 && (V = 0), q + f > z && (q = z - f), q < 0 && (q = 0), [V, q];
|
|
4741
4741
|
},
|
|
4742
4742
|
formatter: (k) => {
|
|
4743
4743
|
var f;
|
|
@@ -4748,15 +4748,15 @@ const ye = typeof window < "u" ? window.echarts : null, pe = {
|
|
|
4748
4748
|
var Y, ie;
|
|
4749
4749
|
const V = parseFloat(((Y = D == null ? void 0 : D.data) == null ? void 0 : Y.value) ?? (D == null ? void 0 : D.data)) || 0;
|
|
4750
4750
|
return (parseFloat(((ie = z == null ? void 0 : z.data) == null ? void 0 : ie.value) ?? (z == null ? void 0 : z.data)) || 0) - V;
|
|
4751
|
-
}), w = m.slice(0, 8),
|
|
4752
|
-
let
|
|
4751
|
+
}), w = m.slice(0, 8), $ = m.length - w.length;
|
|
4752
|
+
let _ = `
|
|
4753
4753
|
<div style="background-color: rgba(255, 255, 255, 0.95)" class="border border-gray-200 text-gray-800 rounded-lg shadow-md dark:bg-neutral-800 dark:border-neutral-700 min-w-28">
|
|
4754
4754
|
<div class="font-semibold text-sm border-b border-solid border-gray-200 text-gray-800 rounded-t-lg dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-200 px-2 py-1">
|
|
4755
4755
|
${y}
|
|
4756
4756
|
</div>
|
|
4757
4757
|
`;
|
|
4758
4758
|
return w.forEach((D) => {
|
|
4759
|
-
|
|
4759
|
+
_ += `
|
|
4760
4760
|
<div class="flex justify-between items-center text-xs px-2 py-0.5 text-gray-500 dark:text-neutral-400">
|
|
4761
4761
|
<span class="flex items-center">
|
|
4762
4762
|
<span class="w-2.5 h-2.5 me-1.5 rounded-sm" style="background-color: ${D.color};"></span>
|
|
@@ -4765,10 +4765,10 @@ const ye = typeof window < "u" ? window.echarts : null, pe = {
|
|
|
4765
4765
|
<span>${this.getMetricValue(D == null ? void 0 : D.data)}</span>
|
|
4766
4766
|
</div>
|
|
4767
4767
|
`;
|
|
4768
|
-
}),
|
|
4768
|
+
}), $ > 0 && (_ += `
|
|
4769
4769
|
<div class="text-xs px-2 py-0.5 text-gray-400 dark:text-neutral-500">
|
|
4770
|
-
... ще ${
|
|
4771
|
-
</div>`),
|
|
4770
|
+
... ще ${$}
|
|
4771
|
+
</div>`), _ += "</div>", _;
|
|
4772
4772
|
}
|
|
4773
4773
|
},
|
|
4774
4774
|
xAxis: {
|
|
@@ -5446,7 +5446,7 @@ const fi = /* @__PURE__ */ Q(ui, [["render", pi]]), gi = /* @__PURE__ */ Object.
|
|
|
5446
5446
|
}, bi = { class: "flex flex-col w-full h-full pt-[16px] rounded-xl" }, xi = { class: "flex flex-col justify-between w-full h-full" }, yi = { class: "w-full h-full pb-6 space-y-4" }, wi = { class: "flex w-full h-3 rounded-full gap-x-1 min-h-3 custom-x-scrollbar" }, vi = ["onMouseover"], ki = {
|
|
5447
5447
|
key: 0,
|
|
5448
5448
|
class: "absolute top-[-1] left-1/2 transform -translate-x-1/2 -translate-y-full bg-black text-white rounded px-2 py-1"
|
|
5449
|
-
},
|
|
5449
|
+
}, _i = { class: "h-[calc(100%-40px)] w-full custom-scrollbar" }, $i = { class: "grid items-center justify-between grid-cols-2 py-2 gap-x-4" }, Di = { class: "flex items-center" }, Ci = { class: "text-sm text-gray-800" }, zi = { class: "text-end" }, Ti = { class: "text-sm text-gray-500" };
|
|
5450
5450
|
function Ii(s, e, t, a, r, i) {
|
|
5451
5451
|
return h(), x("div", bi, [
|
|
5452
5452
|
c("div", xi, [
|
|
@@ -5470,10 +5470,10 @@ function Ii(s, e, t, a, r, i) {
|
|
|
5470
5470
|
], 46, vi);
|
|
5471
5471
|
}), 256))
|
|
5472
5472
|
]),
|
|
5473
|
-
c("ul",
|
|
5473
|
+
c("ul", _i, [
|
|
5474
5474
|
(h(!0), x(U, null, Z(s.sourceData, (n) => {
|
|
5475
5475
|
var o, l;
|
|
5476
|
-
return h(), x("li",
|
|
5476
|
+
return h(), x("li", $i, [
|
|
5477
5477
|
c("div", Di, [
|
|
5478
5478
|
c("span", {
|
|
5479
5479
|
class: se(["shrink-0 size-2.5 inline-block rounded-sm me-2.5 min-w-[10px] w-[10px] h-[10px] min-h-[10px]", `bg-[${n.color}]`])
|
|
@@ -5717,7 +5717,7 @@ export {
|
|
|
5717
5717
|
pe as c,
|
|
5718
5718
|
de as d,
|
|
5719
5719
|
ee as e,
|
|
5720
|
-
|
|
5720
|
+
_o as f,
|
|
5721
5721
|
H as g,
|
|
5722
5722
|
Zr as h,
|
|
5723
5723
|
Hr as i,
|