@opengis/admin 0.3.104 → 0.3.106

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.
@@ -0,0 +1,1018 @@
1
+ import { createElementBlock as u, openBlock as n, createElementVNode as o, createStaticVNode as Q, resolveComponent as p, createCommentVNode as w, createVNode as h, normalizeClass as f, createTextVNode as V, toDisplayString as B, Transition as q, withCtx as _, withDirectives as W, Fragment as U, renderList as P, vShow as J, createBlock as T, resolveDynamicComponent as F, ref as le, onMounted as ae, computed as oe, withModifiers as ne } from "vue";
2
+ import { _ as y, I as K, s as g, a as X, u as A, b as se, c as Y, d as ue, e as ie, f as de, g as ce } from "./import-file-DcMkaBsX.js";
3
+ import "./user-B_2kh6ic.js";
4
+ const he = {}, ge = {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 24 24",
7
+ fill: "none",
8
+ stroke: "currentColor",
9
+ "stroke-width": "2",
10
+ "stroke-linecap": "round",
11
+ "stroke-linejoin": "round",
12
+ class: "icon icon-tabler icons-tabler-outline icon-tabler-logout"
13
+ };
14
+ function pe(t, e, r, s, a, l) {
15
+ return n(), u("svg", ge, e[0] || (e[0] = [
16
+ o("path", {
17
+ stroke: "none",
18
+ d: "M0 0h24v24H0z",
19
+ fill: "none"
20
+ }, null, -1),
21
+ o("path", { d: "M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2" }, null, -1),
22
+ o("path", { d: "M9 12h12l-3 -3" }, null, -1),
23
+ o("path", { d: "M18 15l3 -3" }, null, -1)
24
+ ]));
25
+ }
26
+ const G = /* @__PURE__ */ y(he, [["render", pe]]), fe = {}, be = {
27
+ viewBox: "0 0 1823 249",
28
+ fill: "none",
29
+ xmlns: "http://www.w3.org/2000/svg"
30
+ };
31
+ function xe(t, e, r, s, a, l) {
32
+ return n(), u("svg", be, e[0] || (e[0] = [
33
+ Q('<path d="M218.88 96.05C223.55 99.19 228.69 101.56 234.09 103.07V145.42C212.05 151.54 195.83 171.79 195.83 195.75C195.83 200.22 196.41 204.65 197.53 208.94L160.92 230.08C156.82 226.06 152.08 222.73 146.91 220.24V171.62C164.83 163.13 176.59 145.06 176.59 124.48C176.59 123.17 176.54 121.86 176.44 120.56L218.88 96.05ZM220.32 79.09L160.97 113.36C162.04 116.88 162.61 120.61 162.61 124.48C162.61 142.66 149.93 157.87 132.93 161.76V230.05C143.4 232.46 152.23 239.16 157.46 248.21L215 214.99C211.7 209.34 209.81 202.77 209.81 195.75C209.81 174.62 226.94 157.49 248.07 157.49V91.02C237.14 91.02 227.29 86.43 220.32 79.09Z" fill="#CE3936"></path><path d="M161.39 19.13L197.44 39.94C196.39 44.11 195.84 48.42 195.84 52.75C195.84 54.21 195.9 55.65 196.02 57.1L153.9 81.42C145.27 75.5 134.95 72.24 124.36 72.24C113.83 72.24 103.57 75.47 94.96 81.32L52.71 56.93C52.82 55.55 52.88 54.16 52.88 52.76C52.88 48.43 52.34 44.12 51.28 39.95L87.3 19.16C96.98 28.89 110.26 34.58 124.34 34.58C138.42 34.57 151.7 28.87 161.39 19.13ZM157.77 0.919983C151.24 12.66 138.71 20.6 124.33 20.6C109.95 20.6 97.44 12.67 90.9 0.939983L33.9 33.85C37.08 39.43 38.91 45.88 38.91 52.76C38.91 56.71 38.31 60.52 37.2 64.11L96.46 98.32C103.44 90.87 113.36 86.22 124.37 86.22C135.44 86.22 145.41 90.93 152.39 98.44L211.59 64.27C210.45 60.64 209.83 56.78 209.83 52.77C209.83 45.89 211.65 39.44 214.84 33.86L157.77 0.919983Z" fill="#CE3936"></path><path d="M29.97 95.95L72.28 120.38C72.17 121.74 72.12 123.1 72.12 124.47C72.12 145.02 83.86 163.08 101.74 171.58V220.23C96.58 222.71 91.84 226.04 87.75 230.05L51.17 208.93C52.29 204.64 52.87 200.21 52.87 195.74C52.87 171.78 36.65 151.53 14.61 145.41V103.06C20.07 101.55 25.27 99.14 29.97 95.95ZM28.5 78.97C21.52 86.38 11.63 91.02 0.640015 91.02V157.49C21.77 157.49 38.9 174.62 38.9 195.75C38.9 202.77 37 209.33 33.71 214.99L91.2 248.18C96.43 239.14 105.25 232.45 115.71 230.04V161.73C98.74 157.81 86.09 142.62 86.09 124.46C86.09 120.54 86.68 116.75 87.78 113.18L28.5 78.97Z" fill="#CE3936"></path><path d="M498.39 177.5V144.88C498.39 128.55 485.11 115.27 468.78 115.27H343.22C342.69 115.27 342.18 115.32 341.67 115.4H337.19C332.35 115.4 328.42 111.46 328.42 106.63V74C328.42 69.16 332.36 65.23 337.19 65.23H486.33C492.08 65.23 496.75 60.57 496.75 54.81C496.75 49.06 492.08 44.39 486.33 44.39H337.19C320.86 44.39 307.58 57.67 307.58 74V106.62C307.58 122.95 320.86 136.23 337.19 136.23H462.75C463.28 136.23 463.79 136.18 464.3 136.1H468.78C473.62 136.1 477.55 140.04 477.55 144.87V177.49C477.55 182.33 473.61 186.26 468.78 186.26H319.64C313.89 186.26 309.22 190.92 309.22 196.68C309.22 202.43 313.89 207.1 319.64 207.1H468.78C485.11 207.11 498.39 193.83 498.39 177.5Z" fill="#CE3935"></path><path d="M710.7 177.32V75.24C710.7 58.91 697.42 45.63 681.09 45.63H550.05C533.72 45.63 520.44 58.91 520.44 75.24V177.32C520.44 193.65 533.72 206.93 550.05 206.93H681.1C697.42 206.93 710.7 193.65 710.7 177.32ZM541.27 75.24C541.27 70.4 545.21 66.47 550.04 66.47H681.09C685.93 66.47 689.86 70.41 689.86 75.24V177.32C689.86 182.16 685.92 186.09 681.09 186.09H550.05C545.21 186.09 541.28 182.15 541.28 177.32V75.24H541.27Z" fill="#CE3935"></path><path d="M1823 177.32V75.24C1823 58.91 1809.72 45.63 1793.39 45.63H1662.34C1646.01 45.63 1632.73 58.91 1632.73 75.24V177.32C1632.73 193.65 1646.01 206.93 1662.34 206.93H1793.39C1809.72 206.93 1823 193.65 1823 177.32ZM1653.57 75.24C1653.57 70.4 1657.51 66.47 1662.34 66.47H1793.39C1798.23 66.47 1802.16 70.41 1802.16 75.24V177.32C1802.16 182.16 1798.22 186.09 1793.39 186.09H1662.34C1657.5 186.09 1653.57 182.15 1653.57 177.32V75.24Z" fill="#CE3935"></path><path d="M756.76 196.51V152H849.42C855.17 152 859.84 147.34 859.84 141.58C859.84 135.83 855.17 131.16 849.42 131.16H756.76V75.23C756.76 70.39 760.7 66.46 765.53 66.46H893.29C899.04 66.46 903.71 61.8 903.71 56.04C903.71 50.29 899.04 45.62 893.29 45.62H765.53C749.2 45.62 735.92 58.9 735.92 75.23V196.5C735.92 202.25 740.59 206.92 746.34 206.92C752.09 206.93 756.76 202.27 756.76 196.51Z" fill="#CE3935"></path><path d="M933.86 66.47H1006.51V194.32C1006.51 200.07 1011.18 204.74 1016.93 204.74C1022.68 204.74 1027.35 200.07 1027.35 194.32V66.47H1100C1105.75 66.47 1110.42 61.81 1110.42 56.05C1110.42 50.3 1105.76 45.63 1100 45.63H933.86C928.11 45.63 923.44 50.29 923.44 56.05C923.45 61.81 928.11 66.47 933.86 66.47Z" fill="#CE3935"></path><path d="M1218.44 204.19C1224.19 204.19 1228.86 199.53 1228.86 193.77V152H1368.13C1384.46 152 1397.74 138.72 1397.74 122.39V75.24C1397.74 58.91 1384.46 45.63 1368.13 45.63H1237.63C1221.3 45.63 1208.02 58.91 1208.02 75.24V193.77C1208.02 199.53 1212.68 204.19 1218.44 204.19ZM1237.63 66.47H1368.13C1372.97 66.47 1376.9 70.41 1376.9 75.24V122.39C1376.9 127.23 1372.96 131.16 1368.13 131.16H1228.86V75.23C1228.86 70.41 1232.79 66.47 1237.63 66.47Z" fill="#CE3935"></path><path d="M1430.64 204.19C1436.39 204.19 1441.06 199.53 1441.06 193.77V152H1523.95C1524.57 153.18 1525.42 154.26 1526.51 155.17L1581.89 201.23C1583.83 202.85 1586.2 203.64 1588.55 203.64C1591.54 203.64 1594.5 202.36 1596.57 199.88C1600.25 195.46 1599.64 188.89 1595.22 185.21L1555.29 152H1580.33C1596.66 152 1609.94 138.72 1609.94 122.39V75.24C1609.94 58.91 1596.66 45.63 1580.33 45.63H1449.83C1433.5 45.63 1420.22 58.91 1420.22 75.24V193.77C1420.22 199.53 1424.88 204.19 1430.64 204.19ZM1449.83 66.47H1580.33C1585.17 66.47 1589.1 70.41 1589.1 75.24V122.39C1589.1 127.23 1585.17 131.16 1580.33 131.16H1441.06V75.23C1441.05 70.41 1444.99 66.47 1449.83 66.47Z" fill="#CE3935"></path>', 10)
34
+ ]));
35
+ }
36
+ const ee = /* @__PURE__ */ y(fe, [["render", xe]]), ve = {
37
+ components: { IconChevronDown: K },
38
+ props: { route: Object, searchable: String },
39
+ mounted() {
40
+ var t, e;
41
+ (e = (t = this.route) == null ? void 0 : t.menu) != null && e.some(
42
+ (r) => {
43
+ var s, a;
44
+ return (r == null ? void 0 : r.path) === this.$route.path.replace("/", "") || ((a = (s = this.$route) == null ? void 0 : s.params) == null ? void 0 : a.table) === (r == null ? void 0 : r.table) && (r == null ? void 0 : r.table);
45
+ }
46
+ ) && (this.isOpen = !0);
47
+ },
48
+ watch: {
49
+ route: {
50
+ immediate: !0,
51
+ handler(t) {
52
+ t != null && t.open && (this.isOpen = !0);
53
+ }
54
+ }
55
+ },
56
+ data() {
57
+ return {
58
+ isOpen: !1,
59
+ // IconComponent: null,
60
+ arr: []
61
+ };
62
+ },
63
+ computed: {
64
+ darkMode() {
65
+ var t, e;
66
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.sidebarDark;
67
+ }
68
+ },
69
+ methods: {
70
+ highLight(t) {
71
+ if (!this.searchable) return t;
72
+ const e = this.searchable.replace(
73
+ /[.*+?^${}()|[\]\\]/g,
74
+ "\\$&"
75
+ ), r = new RegExp(`(${e})(\\s*)`, "gi");
76
+ return t.replace(
77
+ r,
78
+ (s, a, l) => `<span style="color:#1989fa;">${a}</span>${l}`
79
+ );
80
+ }
81
+ // loadIconComponent(iconName) {
82
+ // if (icons[iconName]) {
83
+ // this.IconComponent = icons[iconName];
84
+ // } else {
85
+ // console.error(`Icon "${iconName}" not found in the icons map.`);
86
+ // this.IconComponent = null;
87
+ // }
88
+ // },
89
+ }
90
+ }, me = {
91
+ key: 0,
92
+ class: ""
93
+ }, ke = {
94
+ key: 0,
95
+ class: "py-0.5 px-2 inline-flex items-center gap-x-1.5 text-xs font-medium bg-blue-100 text-blue-800 rounded-full dark:bg-blue-500/10 dark:text-blue-500"
96
+ }, _e = { key: 1 }, we = ["innerHTML"];
97
+ function ye(t, e, r, s, a, l) {
98
+ var d, v, m, H, E, k, C, z, M, $, I, O, D, j, N;
99
+ const b = p("IconChevronDown"), x = p("router-link");
100
+ return (d = r.route) != null && d.menu ? (n(), u("div", me, [
101
+ o("button", {
102
+ onClick: e[0] || (e[0] = (c) => a.isOpen = !a.isOpen),
103
+ class: f(["flex items-center justify-start w-full px-3 py-2 text-sm text-left text-gray-800 duration-300 border-none rounded-lg cursor-pointer gap-x-3 focus:outline-none hover:bg-gray-100", [
104
+ ((m = (v = r.route) == null ? void 0 : v.menu) == null ? void 0 : m.some(
105
+ (c) => {
106
+ var i, L;
107
+ return (c == null ? void 0 : c.path) === t.$route.path.replace("/", "") || (c == null ? void 0 : c.table) === ((L = (i = t.$route) == null ? void 0 : i.params) == null ? void 0 : L.table) && (c == null ? void 0 : c.table);
108
+ }
109
+ )) && (l.darkMode ? "bg-white/10" : "bg-gray-100"),
110
+ {
111
+ "text-white/80 hover:bg-white/10 hover:text-white/80 focus:bg-white/10": l.darkMode,
112
+ "text-gray-800 hover:bg-gray-100 hover:text-gray-800 focus:bg-gray-100": !l.darkMode
113
+ }
114
+ ]])
115
+ }, [
116
+ V(B((H = r.route) == null ? void 0 : H.ua) + " ", 1),
117
+ (E = r.route) != null && E.new ? (n(), u("span", ke, "Нове")) : w("", !0),
118
+ h(b, {
119
+ class: f([[a.isOpen && "-rotate-180"], "ml-auto duration-300 flex-shrink-0"]),
120
+ width: "14",
121
+ height: "14"
122
+ }, null, 8, ["class"])
123
+ ], 2),
124
+ h(q, { name: "fade" }, {
125
+ default: _(() => {
126
+ var c;
127
+ return [
128
+ W(o("ul", {
129
+ class: f(["ml-[28px] pt-[6px] before:block before:absolute relative w-[calc(100%-28px)] flex-col gap-y-1.5 inline-flex before:w-[2px] before:h-[100%] before:left-[-10px] cursor-pointer", l.darkMode ? "before:bg-white/10" : "before:bg-gray-100"])
130
+ }, [
131
+ (n(!0), u(U, null, P((c = r.route) == null ? void 0 : c.menu, (i, L) => {
132
+ var Z, S;
133
+ return n(), u("li", {
134
+ key: L,
135
+ class: "w-full"
136
+ }, [
137
+ h(x, {
138
+ innerHTML: l.highLight(i == null ? void 0 : i.ua),
139
+ to: "/" + (i == null ? void 0 : i.path),
140
+ class: f([[
141
+ ((i == null ? void 0 : i.path) === t.$route.path.replace("/", "") || ((S = (Z = t.$route) == null ? void 0 : Z.params) == null ? void 0 : S.table) === (i == null ? void 0 : i.table) && (i == null ? void 0 : i.table)) && (l.darkMode ? "bg-white/10" : "bg-gray-100"),
142
+ {
143
+ "text-white/80 hover:bg-white/10 hover:text-white/80 focus:bg-white/10": l.darkMode,
144
+ "text-gray-800 hover:bg-gray-100 hover:text-gray-800 focus:bg-gray-100": !l.darkMode
145
+ }
146
+ ], "block px-3 py-2 text-sm rounded-lg focus:outline-none focus:bg-gray-100"])
147
+ }, null, 8, ["innerHTML", "to", "class"])
148
+ ]);
149
+ }), 128))
150
+ ], 2), [
151
+ [J, a.isOpen]
152
+ ])
153
+ ];
154
+ }),
155
+ _: 1
156
+ })
157
+ ])) : (k = r.route) != null && k.hidden ? w("", !0) : (n(), u("div", _e, [
158
+ h(x, {
159
+ to: ((z = (C = r.route) == null ? void 0 : C.path) == null ? void 0 : z[0]) === "/" ? (M = r.route) == null ? void 0 : M.path : "/" + (($ = r.route) == null ? void 0 : $.path),
160
+ class: f([[
161
+ (((I = r.route) == null ? void 0 : I.path.replace("/", "")) === t.$route.path.replace("/", "") || ((D = (O = t.$route) == null ? void 0 : O.params) == null ? void 0 : D.table) === ((j = r.route) == null ? void 0 : j.table) && ((N = r.route) == null ? void 0 : N.table)) && (l.darkMode ? "bg-white/10" : "bg-gray-100"),
162
+ {
163
+ "text-white/80 hover:bg-white/10 hover:text-white/80 focus:bg-white/10 ": l.darkMode,
164
+ "text-gray-800 hover:bg-gray-100 hover:text-gray-800 focus:bg-gray-100 ": !l.darkMode
165
+ }
166
+ ], "flex items-center w-full px-3 py-2 text-sm text-gray-800 duration-300 rounded-lg gap-x-3"])
167
+ }, {
168
+ default: _(() => {
169
+ var c;
170
+ return [
171
+ o("span", {
172
+ innerHTML: l.highLight((c = r.route) == null ? void 0 : c.ua)
173
+ }, null, 8, we)
174
+ ];
175
+ }),
176
+ _: 1
177
+ }, 8, ["to", "class"])
178
+ ]));
179
+ }
180
+ const Ce = /* @__PURE__ */ y(ve, [["render", ye]]), ze = {}, Me = {
181
+ class: "flex-shrink-0 size-4",
182
+ xmlns: "http://www.w3.org/2000/svg",
183
+ viewBox: "0 0 24 24",
184
+ fill: "none",
185
+ stroke: "currentColor",
186
+ "stroke-width": "2",
187
+ "stroke-linecap": "round",
188
+ "stroke-linejoin": "round"
189
+ };
190
+ function He(t, e, r, s, a, l) {
191
+ return n(), u("svg", Me, e[0] || (e[0] = [
192
+ o("circle", {
193
+ cx: "12",
194
+ cy: "12",
195
+ r: "10"
196
+ }, null, -1),
197
+ o("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }, null, -1),
198
+ o("path", { d: "M12 17h.01" }, null, -1)
199
+ ]));
200
+ }
201
+ const te = /* @__PURE__ */ y(ze, [["render", He]]), Le = {}, Ve = {
202
+ class: "shrink-0 size-4 rounded-full",
203
+ xmlns: "http://www.w3.org/2000/svg",
204
+ viewBox: "0 0 512 512"
205
+ };
206
+ function $e(t, e, r, s, a, l) {
207
+ return n(), u("svg", Ve, e[0] || (e[0] = [
208
+ Q('<g fill-rule="evenodd"><g stroke-width="1pt"><path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"></path><path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"></path></g><path fill="#192f5d" d="M0 0h98.8v70H0z" transform="scale(3.9385)"></path><path fill="#fff" d="M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 63.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z" transform="scale(3.9385)"></path></g>', 1)
209
+ ]));
210
+ }
211
+ const Ie = /* @__PURE__ */ y(Le, [["render", $e]]), Oe = {}, De = {
212
+ xmlns: "http://www.w3.org/2000/svg",
213
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
214
+ version: "1.1",
215
+ width: "256",
216
+ height: "256",
217
+ viewBox: "0 0 256 256",
218
+ "xml:space": "preserve"
219
+ };
220
+ function je(t, e, r, s, a, l) {
221
+ return n(), u("svg", De, e[0] || (e[0] = [
222
+ o("defs", null, null, -1),
223
+ o("g", {
224
+ style: { stroke: "none", "stroke-width": "0", "stroke-dasharray": "none", "stroke-linecap": "butt", "stroke-linejoin": "miter", "stroke-miterlimit": "10", fill: "none", "fill-rule": "nonzero", opacity: "1" },
225
+ transform: "translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)"
226
+ }, [
227
+ o("path", {
228
+ d: "M 45 90 C 20.147 90 0 69.853 0 45 h 90 C 90 69.853 69.853 90 45 90 z",
229
+ style: { stroke: "none", "stroke-width": "1", "stroke-dasharray": "none", "stroke-linecap": "butt", "stroke-linejoin": "miter", "stroke-miterlimit": "10", fill: "rgb(255,213,0)", "fill-rule": "nonzero", opacity: "1" },
230
+ transform: " matrix(1 0 0 1 0 0) ",
231
+ "stroke-linecap": "round"
232
+ }),
233
+ o("path", {
234
+ d: "M 45 0 C 20.147 0 0 20.147 0 45 h 90 C 90 20.147 69.853 0 45 0 z",
235
+ style: { stroke: "none", "stroke-width": "1", "stroke-dasharray": "none", "stroke-linecap": "butt", "stroke-linejoin": "miter", "stroke-miterlimit": "10", fill: "rgb(0,91,187)", "fill-rule": "nonzero", opacity: "1" },
236
+ transform: " matrix(1 0 0 1 0 0) ",
237
+ "stroke-linecap": "round"
238
+ })
239
+ ], -1)
240
+ ]));
241
+ }
242
+ const Ne = /* @__PURE__ */ y(Oe, [["render", je]]), Be = {}, Ee = {
243
+ class: "shrink-0 size-3.5 text-gray-800 dark:text-neutral-200",
244
+ xmlns: "http:.w3.org/2000/svg",
245
+ width: "24",
246
+ height: "24",
247
+ viewBox: "0 0 24 24",
248
+ fill: "none",
249
+ stroke: "currentColor",
250
+ "stroke-width": "2",
251
+ "stroke-linecap": "round",
252
+ "stroke-linejoin": "round"
253
+ };
254
+ function Te(t, e, r, s, a, l) {
255
+ return n(), u("svg", Ee, e[0] || (e[0] = [
256
+ o("polyline", { points: "20 6 9 17 4 12" }, null, -1)
257
+ ]));
258
+ }
259
+ const Ue = /* @__PURE__ */ y(Be, [["render", Te]]), Ze = {
260
+ components: { IconQuestion: te, IconUSA: Ie, IconUkraine: Ne, IconTick: Ue },
261
+ props: ["docs", "languages"],
262
+ data() {
263
+ return {
264
+ currentLang: "ukraine",
265
+ languagesOptions: [
266
+ {
267
+ titleEN: "English",
268
+ titleUA: "Англійська",
269
+ id: "english",
270
+ icon: "IconUSA"
271
+ },
272
+ {
273
+ titleEN: "Ukraine",
274
+ titleUA: "Українська",
275
+ id: "ukraine",
276
+ icon: "IconUkraine"
277
+ }
278
+ ]
279
+ };
280
+ },
281
+ computed: {
282
+ selectedLang() {
283
+ return this.languagesOptions.find((t) => t.id === this.currentLang);
284
+ },
285
+ darkMode() {
286
+ var t, e;
287
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.sidebarDark;
288
+ }
289
+ },
290
+ methods: {
291
+ changeLang(t) {
292
+ this.$refs.langPopover.togglePopover(), this.currentLang = t;
293
+ }
294
+ }
295
+ }, Se = { class: "flex justify-center items-center gap-x-2" }, Ae = ["onClick"], Pe = { class: "text-gray-800" }, Fe = { class: "ms-auto" }, Qe = { class: "truncate" };
296
+ function Ge(t, e, r, s, a, l) {
297
+ const b = p("IconTick"), x = p("VsPopover");
298
+ return r.docs || r.languages ? (n(), u("div", {
299
+ key: 0,
300
+ class: f(["py-2 px-5 border-t dark:border-neutral-700", l.darkMode ? "border-white/10 " : "border-gray-200"])
301
+ }, [
302
+ o("div", Se, [
303
+ h(x, {
304
+ trigger: "click",
305
+ placement: "top",
306
+ ref: "langPopover"
307
+ }, {
308
+ reference: _(() => {
309
+ var d, v, m;
310
+ return [
311
+ o("button", {
312
+ type: "button",
313
+ "aria-expanded": "false",
314
+ class: f([
315
+ "relative py-2 px-3 flex items-center gap-x-2 text-nowrap w-full cursor-pointer border rounded-full text-start text-sm text-gray-800 focus:outline-none",
316
+ l.darkMode ? "border-white/10 bg-transparent text-white/80 hover:bg-white/10 focus:bg-white/10" : "border-gray-200 bg-white hover:bg-gray-100 focus:bg-gray-100"
317
+ ])
318
+ }, [
319
+ o("div", null, [
320
+ (n(), T(F((d = l.selectedLang) == null ? void 0 : d.icon), { class: "w-[16px] h-[16px] rounded-full" }))
321
+ ]),
322
+ o("span", Qe, B(a.currentLang === "ukraine" ? (v = l.selectedLang) == null ? void 0 : v.titleUA : (m = l.selectedLang) == null ? void 0 : m.titleEN), 1)
323
+ ], 2)
324
+ ];
325
+ }),
326
+ default: _(() => [
327
+ o("div", null, [
328
+ (n(!0), u(U, null, P(a.languagesOptions, (d) => (n(), u("button", {
329
+ key: d.id,
330
+ type: "button",
331
+ onClick: (v) => l.changeLang(d.id),
332
+ class: f(["flex items-center gap-x-2 cursor-pointer dark:hs-selected:bg-neutral-800 py-2 px-4 w-full text-sm text-gray-800 hover:bg-gray-100 rounded-lg focus:outline-none focus:bg-gray-100 dark:text-neutral-300 dark:hover:bg-neutral-800 dark:focus:bg-neutral-800 selected", (d == null ? void 0 : d.id) === a.currentLang ? "bg-gray-100" : ""])
333
+ }, [
334
+ (n(), T(F(d == null ? void 0 : d.icon), { class: "w-[16px] h-[16px] rounded-full" })),
335
+ o("div", Pe, B(a.currentLang === "ukraine" ? d == null ? void 0 : d.titleUA : d == null ? void 0 : d.titleEN), 1),
336
+ o("span", Fe, [
337
+ (d == null ? void 0 : d.id) === a.currentLang ? (n(), T(b, { key: 0 })) : w("", !0)
338
+ ])
339
+ ], 10, Ae))), 128))
340
+ ])
341
+ ]),
342
+ _: 1
343
+ }, 512)
344
+ ])
345
+ ], 2)) : w("", !0);
346
+ }
347
+ const re = /* @__PURE__ */ y(Ze, [["render", Ge]]), Re = {
348
+ components: { IconLogout: G, NavbarItem: Ce, IconLogo: ee, IconSearch: X, NavbarFooter: re },
349
+ data() {
350
+ return {
351
+ activeIndex: null,
352
+ searchValue: ""
353
+ };
354
+ },
355
+ computed: {
356
+ data() {
357
+ var t;
358
+ return (t = this.searchValue) != null && t.trim() ? this.filterMenu(A.value, this.searchValue) : A.value;
359
+ },
360
+ logo() {
361
+ var t, e, r;
362
+ return ((e = (t = this.$settings) == null ? void 0 : t.admin) == null ? void 0 : e.logo) || ((r = g.value) == null ? void 0 : r.logo) || "/assets/logo.svg";
363
+ },
364
+ docs() {
365
+ var t, e;
366
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.docs;
367
+ },
368
+ languages() {
369
+ var t, e;
370
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.languages;
371
+ },
372
+ darkMode() {
373
+ var t, e;
374
+ return ((e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.sidebarDark) || !1;
375
+ },
376
+ darkColor() {
377
+ var e, r, s, a, l, b;
378
+ const t = ((r = (e = g) == null ? void 0 : e.value) == null ? void 0 : r.sidebarColor) || ((a = (s = g) == null ? void 0 : s.value) == null ? void 0 : a.color) || ((b = (l = g) == null ? void 0 : l.value) != null && b.sidebarDark ? "blue" : "white");
379
+ return t.includes("-") || t.includes("[") ? t : t + "-950";
380
+ }
381
+ },
382
+ watch: {
383
+ "$route.path"() {
384
+ this.$parent.showMenu = !1;
385
+ }
386
+ },
387
+ methods: {
388
+ filterMenu(t, e) {
389
+ return t.map((r) => {
390
+ var s, a;
391
+ if (r.menu) {
392
+ const l = this.filterMenu(r.menu, e);
393
+ if (l.length > 0)
394
+ return { ...r, menu: l, open: !0 };
395
+ } else if ((a = (s = r.ua) == null ? void 0 : s.toLowerCase()) != null && a.includes(e.toLowerCase()))
396
+ return r;
397
+ return null;
398
+ }).filter(Boolean);
399
+ }
400
+ }
401
+ }, qe = { class: "h-[46px] w-full px-5 lg:px-8 mb-[10px]" }, We = { href: "/" }, Je = ["src"], Ke = { class: "px-2 lg:px-5" }, Xe = { class: "px-2 lg:px-5 flex flex-col flex-wrap w-full pb-3" }, Ye = {
402
+ key: 0,
403
+ class: "flex flex-col gap-y-1"
404
+ };
405
+ function et(t, e, r, s, a, l) {
406
+ var v;
407
+ const b = p("VsText"), x = p("NavbarItem"), d = p("NavbarFooter");
408
+ return n(), u("div", {
409
+ class: f(["lg:flex lg:relative lg:left-0 flex-col h-[100vh] pt-3 border-r w-[260px] top-0 bottom-0 shrink-0 absolute transition left-[-100%] z-[11]", {
410
+ "left-0": t.$parent.showMenu,
411
+ ["bg-" + l.darkColor]: l.darkColor,
412
+ "bg-white": !l.darkMode && !l.darkColor
413
+ }])
414
+ }, [
415
+ o("div", qe, [
416
+ o("a", We, [
417
+ o("img", {
418
+ src: l.logo,
419
+ class: "object-contain w-full h-full"
420
+ }, null, 8, Je)
421
+ ])
422
+ ]),
423
+ o("div", Ke, [
424
+ h(b, {
425
+ type: "text",
426
+ modelValue: a.searchValue,
427
+ "onUpdate:modelValue": e[0] || (e[0] = (m) => a.searchValue = m),
428
+ clearable: !0,
429
+ icon: "search",
430
+ "icon-position": "left",
431
+ placeholder: "Пошук по меню",
432
+ class: f(["[&>input]:h-[38px]", {
433
+ "[&>input]:bg-[#172554] [&>input]:text-white/80 [&>input]:placeholder:text-white/40 [&>input]:border [&>input]:border-white/50": l.darkMode,
434
+ ["[&>input]:bg-" + l.darkColor]: l.darkColor,
435
+ ["focus:[&>input]:border-" + l.darkColor + "-500"]: l.darkMode
436
+ }])
437
+ }, null, 8, ["modelValue", "class"])
438
+ ]),
439
+ o("div", {
440
+ class: f([
441
+ "py-[10px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500",
442
+ l.languages || l.docs ? "h-[calc(100vh-161px)]" : "h-[calc(100vh-110px)]"
443
+ ])
444
+ }, [
445
+ o("nav", Xe, [
446
+ (v = l.data) != null && v.length ? (n(), u("ul", Ye, [
447
+ (n(!0), u(U, null, P(l.data, (m, H) => (n(), u("li", {
448
+ key: H,
449
+ class: "flex flex-col gap-[6px]"
450
+ }, [
451
+ h(x, {
452
+ route: m,
453
+ searchable: a.searchValue
454
+ }, null, 8, ["route", "searchable"])
455
+ ]))), 128))
456
+ ])) : (n(), u("div", {
457
+ key: 1,
458
+ class: f(["text-lg mt-[20px]", {
459
+ "text-white/80": l.darkMode,
460
+ "text-gray-800": !l.darkMode
461
+ }])
462
+ }, " Не знайдено ", 2))
463
+ ])
464
+ ], 2),
465
+ l.docs || l.languages ? (n(), T(d, {
466
+ key: 0,
467
+ docs: l.docs,
468
+ languages: l.languages
469
+ }, null, 8, ["docs", "languages"])) : w("", !0)
470
+ ], 2);
471
+ }
472
+ const R = /* @__PURE__ */ y(Re, [["render", et], ["__scopeId", "data-v-7817bab2"]]), tt = {
473
+ components: { IconChevronDown: K },
474
+ props: { route: Object, searchable: String },
475
+ mounted() {
476
+ var t, e;
477
+ (e = (t = this.route) == null ? void 0 : t.menu) != null && e.some(
478
+ (r) => {
479
+ var s, a;
480
+ return (r == null ? void 0 : r.path) === this.$route.path.replace("/", "") || ((a = (s = this.$route) == null ? void 0 : s.params) == null ? void 0 : a.table) === (r == null ? void 0 : r.table) && (r == null ? void 0 : r.table);
481
+ }
482
+ ) && (this.isOpen = !0);
483
+ },
484
+ watch: {
485
+ route: {
486
+ immediate: !0,
487
+ handler(t) {
488
+ t != null && t.open && (this.isOpen = !0);
489
+ }
490
+ }
491
+ },
492
+ data() {
493
+ return {
494
+ isOpen: !1,
495
+ arr: []
496
+ };
497
+ },
498
+ computed: {
499
+ darkMode() {
500
+ var t, e;
501
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.sidebarDark;
502
+ }
503
+ },
504
+ methods: {
505
+ highLight(t) {
506
+ if (!this.searchable) return t;
507
+ const e = this.searchable.replace(
508
+ /[.*+?^${}()|[\]\\]/g,
509
+ "\\$&"
510
+ ), r = new RegExp(`(${e})(\\s*)`, "gi");
511
+ return t.replace(
512
+ r,
513
+ (s, a, l) => `<span style="color:#1989fa;">${a}</span>${l}`
514
+ );
515
+ }
516
+ }
517
+ }, rt = {
518
+ key: 0,
519
+ class: ""
520
+ }, lt = {
521
+ key: 0,
522
+ class: "py-0.5 px-2 inline-flex items-center gap-x-1.5 text-xs font-medium bg-blue-100 text-blue-800 rounded-full dark:bg-blue-500/10 dark:text-blue-500"
523
+ }, at = { class: "ml-[28px] pt-[6px] before:block before:absolute relative w-[calc(100%-28px)] before:bg-gray-200 flex-col gap-y-1.5 inline-flex before:w-[2px] before:h-[100%] before:left-[-10px] cursor-pointer" }, ot = { key: 1 }, nt = ["innerHTML"];
524
+ function st(t, e, r, s, a, l) {
525
+ var d, v, m, H, E, k, C, z, M, $, I, O, D, j, N;
526
+ const b = p("IconChevronDown"), x = p("router-link");
527
+ return (d = r.route) != null && d.menu ? (n(), u("div", rt, [
528
+ o("button", {
529
+ onClick: e[0] || (e[0] = (c) => a.isOpen = !a.isOpen),
530
+ class: f(["flex items-center justify-start w-full px-3 py-2 text-sm text-left text-gray-800 duration-300 border-none rounded-lg cursor-pointer gap-x-3 focus:outline-none hover:bg-gray-200", [
531
+ ((m = (v = r.route) == null ? void 0 : v.menu) == null ? void 0 : m.some(
532
+ (c) => {
533
+ var i, L;
534
+ return (c == null ? void 0 : c.path) === t.$route.path.replace("/", "") || (c == null ? void 0 : c.table) === ((L = (i = t.$route) == null ? void 0 : i.params) == null ? void 0 : L.table) && (c == null ? void 0 : c.table);
535
+ }
536
+ )) && "bg-gray-200"
537
+ ]])
538
+ }, [
539
+ V(B((H = r.route) == null ? void 0 : H.ua) + " ", 1),
540
+ (E = r.route) != null && E.new ? (n(), u("span", lt, "Нове")) : w("", !0),
541
+ h(b, {
542
+ class: f([[a.isOpen && "-rotate-180"], "ml-auto duration-300"]),
543
+ width: "14",
544
+ height: "14"
545
+ }, null, 8, ["class"])
546
+ ], 2),
547
+ h(q, { name: "fade" }, {
548
+ default: _(() => {
549
+ var c;
550
+ return [
551
+ W(o("ul", at, [
552
+ (n(!0), u(U, null, P((c = r.route) == null ? void 0 : c.menu, (i, L) => {
553
+ var Z, S;
554
+ return n(), u("li", {
555
+ key: L,
556
+ class: "w-full"
557
+ }, [
558
+ h(x, {
559
+ innerHTML: l.highLight(i == null ? void 0 : i.ua),
560
+ to: "/" + (i == null ? void 0 : i.path),
561
+ class: f([[
562
+ ((i == null ? void 0 : i.path) === t.$route.path.replace("/", "") || ((S = (Z = t.$route) == null ? void 0 : Z.params) == null ? void 0 : S.table) === (i == null ? void 0 : i.table) && (i == null ? void 0 : i.table)) && "bg-gray-200"
563
+ ], "block px-3 py-2 text-sm rounded-lg focus:outline-none hover:bg-gray-200 focus:bg-gray-200"])
564
+ }, null, 8, ["innerHTML", "to", "class"])
565
+ ]);
566
+ }), 128))
567
+ ], 512), [
568
+ [J, a.isOpen]
569
+ ])
570
+ ];
571
+ }),
572
+ _: 1
573
+ })
574
+ ])) : (k = r.route) != null && k.hidden ? w("", !0) : (n(), u("div", ot, [
575
+ h(x, {
576
+ to: ((z = (C = r.route) == null ? void 0 : C.path) == null ? void 0 : z[0]) === "/" ? (M = r.route) == null ? void 0 : M.path : "/" + (($ = r.route) == null ? void 0 : $.path),
577
+ class: f([[
578
+ (((I = r.route) == null ? void 0 : I.path.replace("/", "")) === t.$route.path.replace("/", "") || ((D = (O = t.$route) == null ? void 0 : O.params) == null ? void 0 : D.table) === ((j = r.route) == null ? void 0 : j.table) && ((N = r.route) == null ? void 0 : N.table)) && "bg-gray-200"
579
+ ], "flex items-center w-full px-3 py-2 text-sm text-gray-800 duration-300 rounded-lg gap-x-3 hover:bg-gray-200 focus:bg-gray-200"])
580
+ }, {
581
+ default: _(() => {
582
+ var c;
583
+ return [
584
+ o("span", {
585
+ innerHTML: l.highLight((c = r.route) == null ? void 0 : c.ua)
586
+ }, null, 8, nt)
587
+ ];
588
+ }),
589
+ _: 1
590
+ }, 8, ["to", "class"])
591
+ ]));
592
+ }
593
+ const ut = /* @__PURE__ */ y(tt, [["render", st]]), it = { class: "relative w-fit mx-auto" }, dt = {
594
+ key: 0,
595
+ class: "w-60 duration absolute top-full left-0 z-20 bg-white rounded-xl shadow-xl block"
596
+ }, ct = { class: "p-1" }, ht = {
597
+ __name: "navbar-gray-dropdown",
598
+ setup(t) {
599
+ const e = le(!1);
600
+ return ae(() => {
601
+ document.addEventListener("click", (r) => {
602
+ r.target.closest(".navbar-gray-dropdown") || (e.value = !1);
603
+ });
604
+ }), (r, s) => {
605
+ var l;
606
+ const a = p("router-link");
607
+ return n(), u("div", it, [
608
+ o("button", {
609
+ onClick: s[0] || (s[0] = (b) => e.value = !e.value),
610
+ type: "button",
611
+ class: "py-1 px-2 navbar-gray-dropdown inline-flex justify-center items-center gap-x-1 font-semibold rounded-lg text-gray-800 hover:text-purple-600 focus:outline-hidden focus:text-purple-600 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-300 dark:hover:text-purple-500 dark:focus:text-purple-500"
612
+ }, [
613
+ V(B((l = r.$user) == null ? void 0 : l.user_name) + " ", 1),
614
+ h(se, {
615
+ width: "16",
616
+ height: "16"
617
+ })
618
+ ]),
619
+ e.value ? (n(), u("div", dt, [
620
+ o("div", ct, [
621
+ s[2] || (s[2] = o("a", {
622
+ class: "flex items-center gap-x-3 py-2 px-3 rounded-lg text-sm text-gray-800 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-hidden focus:bg-gray-100 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",
623
+ href: "#"
624
+ }, " Профіль ", -1)),
625
+ h(a, {
626
+ class: "flex items-center gap-x-3 py-2 px-3 rounded-lg text-sm text-gray-800 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-hidden focus:bg-gray-100 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",
627
+ to: "/admin.settings"
628
+ }, {
629
+ default: _(() => s[1] || (s[1] = [
630
+ V(" Налаштування ")
631
+ ])),
632
+ _: 1
633
+ })
634
+ ]),
635
+ s[3] || (s[3] = o("div", { class: "p-1 border-t border-gray-200 dark:border-neutral-700" }, [
636
+ o("a", {
637
+ class: "flex items-center gap-x-3 py-2 px-3 rounded-lg text-sm text-gray-800 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-hidden focus:bg-gray-100 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",
638
+ href: "/logout"
639
+ }, " Вийти ")
640
+ ], -1))
641
+ ])) : w("", !0)
642
+ ]);
643
+ };
644
+ }
645
+ }, gt = { class: "p-4 flex flex-col justify-center border-b relative max-h-[192px]" }, pt = {
646
+ __name: "navbar-gray-user",
647
+ setup(t) {
648
+ return (e, r) => (n(), u("div", gt, [
649
+ h(Y, {
650
+ class: "!absolute top-[8px] right-[8px]",
651
+ placement: "left"
652
+ }),
653
+ r[0] || (r[0] = o("div", { class: "flex size-24 justify-center items-center shrink-0 rounded-full overflow-hidden mx-auto mb-2" }, [
654
+ o("img", {
655
+ class: "object-cover h-[130px] w-[130px]",
656
+ src: "https://media.istockphoto.com/id/1337144146/vector/default-avatar-profile-icon-vector.jpg?s=612x612&w=0&k=20&c=BIbFwuv7FxTWvh5S3vB6bkT0Qv8Vn8N5Ffseq84ClGI=",
657
+ alt: "Avatar"
658
+ })
659
+ ], -1)),
660
+ h(ht)
661
+ ]));
662
+ }
663
+ }, ft = {
664
+ components: {
665
+ IconLogout: G,
666
+ NavbarItem: ut,
667
+ IconLogo: ee,
668
+ IconSearch: X,
669
+ NavbarFooter: re,
670
+ NavbarUser: pt
671
+ },
672
+ data() {
673
+ return {
674
+ activeIndex: null,
675
+ searchValue: ""
676
+ };
677
+ },
678
+ computed: {
679
+ data() {
680
+ var t;
681
+ return (t = this.searchValue) != null && t.trim() ? this.filterMenu(A.value, this.searchValue) : A.value;
682
+ },
683
+ logo() {
684
+ var t, e, r;
685
+ return ((e = (t = this.$settings) == null ? void 0 : t.admin) == null ? void 0 : e.logo) || ((r = g.value) == null ? void 0 : r.logo) || "/assets/logo.svg";
686
+ },
687
+ docs() {
688
+ var t, e;
689
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.docs;
690
+ },
691
+ languages() {
692
+ var t, e;
693
+ return (e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.languages;
694
+ },
695
+ darkMode() {
696
+ var t, e;
697
+ return ((e = (t = g) == null ? void 0 : t.value) == null ? void 0 : e.sidebarDark) || !1;
698
+ },
699
+ darkColor() {
700
+ var e, r, s, a, l, b;
701
+ const t = ((r = (e = g) == null ? void 0 : e.value) == null ? void 0 : r.sidebarColor) || ((a = (s = g) == null ? void 0 : s.value) == null ? void 0 : a.color) || ((b = (l = g) == null ? void 0 : l.value) != null && b.sidebarDark ? "blue" : "white");
702
+ return t.includes("-") || t.includes("[") ? t : t + "-950";
703
+ }
704
+ },
705
+ watch: {
706
+ "$route.path"() {
707
+ this.$parent.showMenu = !1;
708
+ }
709
+ },
710
+ methods: {
711
+ filterMenu(t, e) {
712
+ return t.map((r) => {
713
+ var s, a;
714
+ if (r.menu) {
715
+ const l = this.filterMenu(r.menu, e);
716
+ if (l.length > 0)
717
+ return { ...r, menu: l, open: !0 };
718
+ } else if ((a = (s = r.ua) == null ? void 0 : s.toLowerCase()) != null && a.includes(e.toLowerCase()))
719
+ return r;
720
+ return null;
721
+ }).filter(Boolean);
722
+ }
723
+ }
724
+ }, bt = { class: "px-2 lg:px-5 flex flex-col flex-wrap w-full pb-3" }, xt = {
725
+ key: 0,
726
+ class: "flex flex-col gap-y-1"
727
+ }, vt = { class: "h-[55px] border-t w-full px-5 shrink-0 lg:px-5 flex items-center" }, mt = { href: "/" }, kt = ["src"];
728
+ function _t(t, e, r, s, a, l) {
729
+ var d;
730
+ const b = p("NavbarUser"), x = p("NavbarItem");
731
+ return n(), u("div", {
732
+ class: f(["lg:flex lg:relative lg:left-0 flex-col h-[100vh] border-r w-[260px] bg-gray-100 top-0 bottom-0 shrink-0 absolute transition left-[-100%] z-[11]", {
733
+ "left-0": t.$parent.showMenu
734
+ }])
735
+ }, [
736
+ h(b),
737
+ o("div", {
738
+ class: f([
739
+ "py-[10px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500",
740
+ l.languages || l.docs ? "h-[calc(100vh-161px)]" : "h-[calc(100vh-110px)]"
741
+ ])
742
+ }, [
743
+ o("nav", bt, [
744
+ (d = l.data) != null && d.length ? (n(), u("ul", xt, [
745
+ (n(!0), u(U, null, P(l.data, (v, m) => (n(), u("li", {
746
+ key: m,
747
+ class: "flex flex-col gap-[6px]"
748
+ }, [
749
+ h(x, {
750
+ route: v,
751
+ searchable: a.searchValue
752
+ }, null, 8, ["route", "searchable"])
753
+ ]))), 128))
754
+ ])) : (n(), u("div", {
755
+ key: 1,
756
+ class: f(["text-lg mt-[20px]", {
757
+ "text-white/80": l.darkMode,
758
+ "text-gray-800": !l.darkMode
759
+ }])
760
+ }, " Не знайдено ", 2))
761
+ ])
762
+ ], 2),
763
+ o("div", vt, [
764
+ o("a", mt, [
765
+ o("img", {
766
+ src: l.logo,
767
+ class: "object-contain max-h-[40px]"
768
+ }, null, 8, kt)
769
+ ])
770
+ ])
771
+ ], 2);
772
+ }
773
+ const wt = /* @__PURE__ */ y(ft, [["render", _t], ["__scopeId", "data-v-3cea82a7"]]), yt = {
774
+ __name: "navbar",
775
+ setup(t) {
776
+ const e = {
777
+ default: R,
778
+ gray: wt
779
+ }, r = oe(
780
+ () => {
781
+ var s;
782
+ return e[(s = g.value) == null ? void 0 : s.navbar] || R;
783
+ }
784
+ );
785
+ return (s, a) => (n(), T(F(r.value)));
786
+ }
787
+ }, Ct = {
788
+ components: {
789
+ IconQuestion: te,
790
+ IconUser: ie,
791
+ AdminNotification: Y,
792
+ IconUserOutline: ue,
793
+ IconLogout: G
794
+ },
795
+ data() {
796
+ return {
797
+ userData: null,
798
+ isVisible: !1
799
+ };
800
+ },
801
+ computed: {
802
+ headerBadgeTitle() {
803
+ var t;
804
+ return (t = g.value) == null ? void 0 : t.headerBadge;
805
+ },
806
+ headerBadgeColor() {
807
+ var t;
808
+ return (t = g.value) == null ? void 0 : t.headerBadgeColor;
809
+ }
810
+ },
811
+ watch: {
812
+ isVisible(t) {
813
+ t ? setTimeout(
814
+ () => window.addEventListener("click", this.closeOnOutsideClick),
815
+ 0
816
+ ) : window.removeEventListener("click", this.closeOnOutsideClick);
817
+ }
818
+ },
819
+ created() {
820
+ this.userData = this.$user, ce.value = this.$settings;
821
+ },
822
+ methods: {
823
+ async logout() {
824
+ try {
825
+ await de.get("/logout"), await window.history.pushState({}, "", "/login"), await location.reload(), localStorage.removeItem("user");
826
+ } catch {
827
+ }
828
+ },
829
+ closeOnOutsideClick() {
830
+ this.isVisible = !1;
831
+ }
832
+ },
833
+ beforeUnmount() {
834
+ window.removeEventListener("click", this.closeOnOutsideClick);
835
+ }
836
+ }, zt = { class: "flex items-center gap-[6px]" }, Mt = {
837
+ href: "/docs-user",
838
+ class: "size-[38px] inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-gray-100 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"
839
+ }, Ht = {
840
+ href: "/docs-user",
841
+ class: "size-[38px] inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-gray-100 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700"
842
+ }, Lt = { class: "relative" }, Vt = ["src"], $t = {
843
+ key: 1,
844
+ class: "size-[40px] rounded-full bg-gray-200 flex items-center justify-center"
845
+ }, It = ["src"], Ot = {
846
+ key: 1,
847
+ class: "flex items-center justify-center bg-gray-200 rounded-full size-10"
848
+ }, Dt = { class: "grow" }, jt = { class: "block text-sm font-medium text-gray-800 dark:text-neutral-200" }, Nt = { class: "text-xs text-gray-500 dark:text-neutral-500" }, Bt = { class: "flex flex-col space-y-0.5" };
849
+ function Et(t, e, r, s, a, l) {
850
+ const b = p("IconQuestion"), x = p("VsPopover"), d = p("AdminNotification"), v = p("IconUser"), m = p("router-link"), H = p("IconUserOutline"), E = p("IconLogout");
851
+ return n(), u("div", {
852
+ class: f(["h-[58px] border-b flex items-center px-[20px]", l.headerBadgeTitle ? "justify-between" : "justify-end"])
853
+ }, [
854
+ l.headerBadgeTitle ? (n(), u("div", {
855
+ key: 0,
856
+ class: f(["py-1.5 px-2.5 flex justify-center items-center text-white hover:bg-gray-900 focus:bg-gray-900 dark:bg-neutral-100 dark:text-neutral-800 dark:hover:bg-white dark:focus:bg-white.class text-nowrap text-xs sm:text-[13px] rounded-lg disabled:opacity-50 disabled:pointer-events-none focus:outline-none dark:text-neutral-400", {
857
+ ["bg-" + l.headerBadgeColor]: l.headerBadgeColor,
858
+ "bg-gray-800": !l.headerBadgeColor
859
+ }])
860
+ }, B(l.headerBadgeTitle), 3)) : w("", !0),
861
+ o("div", {
862
+ class: "flex lg:hidden",
863
+ onClick: e[0] || (e[0] = (k) => t.$parent.showMenu = !0)
864
+ }, e[4] || (e[4] = [
865
+ Q('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-menu-2"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 6l16 0"></path><path d="M4 12l16 0"></path><path d="M4 18l16 0"></path></svg>', 1)
866
+ ])),
867
+ o("div", zt, [
868
+ h(x, { trigger: "hover" }, {
869
+ reference: _(() => [
870
+ o("a", Mt, [
871
+ h(b, {
872
+ height: "24",
873
+ width: "24"
874
+ })
875
+ ])
876
+ ]),
877
+ default: _(() => [
878
+ e[5] || (e[5] = V(" Допомога "))
879
+ ]),
880
+ _: 1
881
+ }),
882
+ h(x, { trigger: "hover" }, {
883
+ reference: _(() => [
884
+ o("a", Ht, [
885
+ h(d)
886
+ ])
887
+ ]),
888
+ default: _(() => [
889
+ e[6] || (e[6] = V(" Сповіщення "))
890
+ ]),
891
+ _: 1
892
+ }),
893
+ e[12] || (e[12] = o("div", { class: "h-[30px] w-[1px] bg-gray-200 ml-[10px] mr-[10px]" }, null, -1)),
894
+ o("div", Lt, [
895
+ o("div", {
896
+ onClick: e[1] || (e[1] = (k) => a.isVisible = !0),
897
+ class: "cursor-pointer"
898
+ }, [
899
+ h(x, { trigger: "hover" }, {
900
+ reference: _(() => {
901
+ var k, C, z, M;
902
+ return [
903
+ (C = (k = a.userData) == null ? void 0 : k.user) != null && C.avatar ? (n(), u("img", {
904
+ key: 0,
905
+ class: "flex-shrink-0 size-[30px] rounded-full",
906
+ src: (M = (z = a.userData) == null ? void 0 : z.user) == null ? void 0 : M.avatar,
907
+ alt: "Image Description"
908
+ }, null, 8, Vt)) : (n(), u("div", $t, [
909
+ h(v)
910
+ ]))
911
+ ];
912
+ }),
913
+ default: _(() => [
914
+ e[7] || (e[7] = V(" Профіль "))
915
+ ]),
916
+ _: 1
917
+ })
918
+ ]),
919
+ a.isVisible ? (n(), u("div", {
920
+ key: 0,
921
+ onClick: e[3] || (e[3] = ne(() => {
922
+ }, ["stop"])),
923
+ class: "fixed p-2 bg-white w-[240px] top-[55px] right-[20px] rounded-xl z-[1] shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] dark:shadow-[0_10px_40px_10px_rgba(0,0,0,0.2)] dark:bg-neutral-900 block"
924
+ }, [
925
+ h(m, {
926
+ to: "profile",
927
+ disabled: !0,
928
+ class: "py-2 px-2.5 flex items-center gap-3 rounded-lg hover:bg-gray-100 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-800 dark:focus:bg-neutral-800"
929
+ }, {
930
+ default: _(() => {
931
+ var k, C, z, M, $, I, O, D, j, N;
932
+ return [
933
+ (C = (k = a.userData) == null ? void 0 : k.user) != null && C.avatar ? (n(), u("img", {
934
+ key: 0,
935
+ class: "rounded-full shrink-0 size-10",
936
+ src: (M = (z = a.userData) == null ? void 0 : z.user) == null ? void 0 : M.avatar,
937
+ alt: "Image Description"
938
+ }, null, 8, It)) : (n(), u("div", Ot, [
939
+ h(v, { class: "w-[16px]" })
940
+ ])),
941
+ o("div", Dt, [
942
+ o("span", jt, B(((I = ($ = a.userData) == null ? void 0 : $.user) == null ? void 0 : I.username) || ((D = (O = a.userData) == null ? void 0 : O.user) == null ? void 0 : D.user_name) || "User User"), 1),
943
+ o("p", Nt, B(((N = (j = a.userData) == null ? void 0 : j.user) == null ? void 0 : N.email) || "email не вказано"), 1)
944
+ ])
945
+ ];
946
+ }),
947
+ _: 1
948
+ }),
949
+ e[10] || (e[10] = o("div", { class: "my-2 mx-2.5 h-px bg-gray-200 dark:bg-neutral-700" }, null, -1)),
950
+ o("ul", Bt, [
951
+ o("li", null, [
952
+ h(m, {
953
+ to: "profile",
954
+ class: "w-full flex items-center gap-x-3.5 py-2 px-2.5 text-sm text-gray-800 rounded-lg hover:bg-gray-100 focus:outline-none focus:bg-gray-100 dark:text-white dark:hover:bg-neutral-800 dark:focus:bg-neutral-800",
955
+ disabled: "true"
956
+ }, {
957
+ default: _(() => [
958
+ h(H, { class: "size-4" }),
959
+ e[8] || (e[8] = V(" Профіль "))
960
+ ]),
961
+ _: 1
962
+ })
963
+ ])
964
+ ]),
965
+ e[11] || (e[11] = o("div", { class: "my-2 mx-2.5 h-px bg-gray-200 dark:bg-neutral-700" }, null, -1)),
966
+ o("p", null, [
967
+ o("button", {
968
+ type: "button",
969
+ onClick: e[2] || (e[2] = (...k) => l.logout && l.logout(...k)),
970
+ class: "w-full flex items-center gap-x-3.5 py-2 px-2.5 text-sm text-gray-800 rounded-lg hover:bg-gray-100 hover:text-red-500 focus:outline-none focus:bg-gray-100 focus:text-red-500 dark:text-white dark:hover:bg-neutral-800 dark:focus:bg-neutral-800 dark:hover:text-red-500 dark:focus:text-red-500"
971
+ }, [
972
+ h(E, { class: "size-4" }),
973
+ e[9] || (e[9] = V(" Вийти "))
974
+ ])
975
+ ])
976
+ ])) : w("", !0)
977
+ ])
978
+ ])
979
+ ], 2);
980
+ }
981
+ const Tt = /* @__PURE__ */ y(Ct, [["render", Et]]), Ut = {
982
+ components: { navbar: yt, AdminHeader: Tt },
983
+ data() {
984
+ return {
985
+ showMenu: !1
986
+ };
987
+ },
988
+ computed: {
989
+ isMenu() {
990
+ return A.value || null;
991
+ },
992
+ header() {
993
+ var t, e;
994
+ return ((t = g.value) == null ? void 0 : t.header) === !1 ? !1 : ((e = g.value) == null ? void 0 : e.header) || "admin-header";
995
+ }
996
+ }
997
+ }, Zt = { class: "admin-wrapper" }, St = { class: "flex flex-col w-full" };
998
+ function At(t, e, r, s, a, l) {
999
+ const b = p("navbar"), x = p("router-view");
1000
+ return n(), u("div", Zt, [
1001
+ h(b),
1002
+ a.showMenu ? (n(), u("div", {
1003
+ key: 0,
1004
+ onClick: e[0] || (e[0] = (d) => a.showMenu = !1),
1005
+ class: "z-[10] lg:hidden transition duration fixed inset-0 bg-gray-900 bg-opacity-50 dark:bg-opacity-80 dark:bg-neutral-900"
1006
+ })) : w("", !0),
1007
+ o("div", St, [
1008
+ l.isMenu ? (n(), u(U, { key: 0 }, [
1009
+ l.header ? (n(), T(F(l.header), { key: 0 })) : w("", !0),
1010
+ h(x)
1011
+ ], 64)) : w("", !0)
1012
+ ])
1013
+ ]);
1014
+ }
1015
+ const Gt = /* @__PURE__ */ y(Ut, [["render", At], ["__scopeId", "data-v-804a7309"]]);
1016
+ export {
1017
+ Gt as default
1018
+ };