@opengis/widgets 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,24 +1,25 @@
1
- import { h as le, defineComponent as V, mergeModels as se, useModel as ge, ref as M, createElementBlock as a, openBlock as t, createElementVNode as e, createVNode as z, unref as D, withDirectives as R, vModelText as he, createCommentVNode as $, createTextVNode as O, onMounted as ee, onUnmounted as Ce, resolveComponent as ne, normalizeClass as I, createBlock as H, toDisplayString as _, Fragment as T, renderList as j, normalizeStyle as J, resolveDynamicComponent as B, withModifiers as U, computed as N, renderSlot as W, getCurrentInstance as Le, vModelRadio as He, vModelCheckbox as be, createStaticVNode as Se, mergeProps as K, nextTick as xe, onBeforeUnmount as Fe, watch as Oe, vShow as ke, Teleport as Ne, TransitionGroup as Pe, withCtx as Be } from "vue";
1
+ import { h as re, defineComponent as H, mergeModels as oe, useModel as fe, ref as T, createElementBlock as a, openBlock as t, createElementVNode as e, createVNode as V, unref as I, withDirectives as U, vModelText as ye, createCommentVNode as C, createTextVNode as B, onMounted as se, onUnmounted as Le, resolveComponent as ae, normalizeClass as z, createBlock as S, toDisplayString as _, Fragment as j, renderList as A, normalizeStyle as Q, resolveDynamicComponent as W, withModifiers as Z, computed as P, renderSlot as R, getCurrentInstance as Te, watch as De, vModelRadio as Oe, vModelCheckbox as ke, createStaticVNode as Be, mergeProps as J, nextTick as _e, onBeforeUnmount as Pe, vShow as we, Teleport as Ne, TransitionGroup as We, withCtx as Re } from "vue";
2
+ import { notify as Ue } from "@opengis/core";
2
3
  /**
3
4
  * @license lucide-vue-next v0.535.0 - ISC
4
5
  *
5
6
  * This source code is licensed under the ISC license.
6
7
  * See the LICENSE file in the root directory of this source tree.
7
8
  */
8
- const _e = (c) => c.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), We = (c) => c.replace(
9
+ const $e = (d) => d.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Ge = (d) => d.replace(
9
10
  /^([A-Z])|[\s-_]+(\w)/g,
10
11
  (l, s, n) => n ? n.toUpperCase() : s.toLowerCase()
11
- ), Re = (c) => {
12
- const l = We(c);
12
+ ), qe = (d) => {
13
+ const l = Ge(d);
13
14
  return l.charAt(0).toUpperCase() + l.slice(1);
14
- }, Ue = (...c) => c.filter((l, s, n) => !!l && l.trim() !== "" && n.indexOf(l) === s).join(" ").trim();
15
+ }, Ze = (...d) => d.filter((l, s, n) => !!l && l.trim() !== "" && n.indexOf(l) === s).join(" ").trim();
15
16
  /**
16
17
  * @license lucide-vue-next v0.535.0 - ISC
17
18
  *
18
19
  * This source code is licensed under the ISC license.
19
20
  * See the LICENSE file in the root directory of this source tree.
20
21
  */
21
- var te = {
22
+ var ne = {
22
23
  xmlns: "http://www.w3.org/2000/svg",
23
24
  width: 24,
24
25
  height: 24,
@@ -35,21 +36,21 @@ var te = {
35
36
  * This source code is licensed under the ISC license.
36
37
  * See the LICENSE file in the root directory of this source tree.
37
38
  */
38
- const Ge = ({ size: c, strokeWidth: l = 2, absoluteStrokeWidth: s, color: n, iconNode: o, name: f, class: r, ...v }, { slots: g }) => le(
39
+ const Ke = ({ size: d, strokeWidth: l = 2, absoluteStrokeWidth: s, color: n, iconNode: o, name: h, class: r, ...y }, { slots: m }) => re(
39
40
  "svg",
40
41
  {
41
- ...te,
42
- width: c || te.width,
43
- height: c || te.height,
44
- stroke: n || te.stroke,
45
- "stroke-width": s ? Number(l) * 24 / Number(c) : l,
46
- class: Ue(
42
+ ...ne,
43
+ width: d || ne.width,
44
+ height: d || ne.height,
45
+ stroke: n || ne.stroke,
46
+ "stroke-width": s ? Number(l) * 24 / Number(d) : l,
47
+ class: Ze(
47
48
  "lucide",
48
- ...f ? [`lucide-${_e(Re(f))}-icon`, `lucide-${_e(f)}`] : ["lucide-icon"]
49
+ ...h ? [`lucide-${$e(qe(h))}-icon`, `lucide-${$e(h)}`] : ["lucide-icon"]
49
50
  ),
50
- ...v
51
+ ...y
51
52
  },
52
- [...o.map((k) => le(...k)), ...g.default ? [g.default()] : []]
53
+ [...o.map((k) => re(...k)), ...m.default ? [m.default()] : []]
53
54
  );
54
55
  /**
55
56
  * @license lucide-vue-next v0.535.0 - ISC
@@ -57,12 +58,12 @@ const Ge = ({ size: c, strokeWidth: l = 2, absoluteStrokeWidth: s, color: n, ico
57
58
  * This source code is licensed under the ISC license.
58
59
  * See the LICENSE file in the root directory of this source tree.
59
60
  */
60
- const S = (c, l) => (s, { slots: n }) => le(
61
- Ge,
61
+ const F = (d, l) => (s, { slots: n }) => re(
62
+ Ke,
62
63
  {
63
64
  ...s,
64
65
  iconNode: l,
65
- name: c
66
+ name: d
66
67
  },
67
68
  n
68
69
  );
@@ -72,7 +73,7 @@ const S = (c, l) => (s, { slots: n }) => le(
72
73
  * This source code is licensed under the ISC license.
73
74
  * See the LICENSE file in the root directory of this source tree.
74
75
  */
75
- const qe = S("archive", [
76
+ const Je = F("archive", [
76
77
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
77
78
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
78
79
  ["path", { d: "M10 12h4", key: "a56b0p" }]
@@ -83,7 +84,7 @@ const qe = S("archive", [
83
84
  * This source code is licensed under the ISC license.
84
85
  * See the LICENSE file in the root directory of this source tree.
85
86
  */
86
- const Ke = S("arrow-right", [
87
+ const Xe = F("arrow-right", [
87
88
  ["path", { d: "M5 12h14", key: "1ays0h" }],
88
89
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
89
90
  ]);
@@ -93,7 +94,7 @@ const Ke = S("arrow-right", [
93
94
  * This source code is licensed under the ISC license.
94
95
  * See the LICENSE file in the root directory of this source tree.
95
96
  */
96
- const Ze = S("circle-check-big", [
97
+ const Qe = F("circle-check-big", [
97
98
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
98
99
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
99
100
  ]);
@@ -103,7 +104,7 @@ const Ze = S("circle-check-big", [
103
104
  * This source code is licensed under the ISC license.
104
105
  * See the LICENSE file in the root directory of this source tree.
105
106
  */
106
- const Me = S("download", [
107
+ const je = F("download", [
107
108
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
108
109
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
109
110
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
@@ -114,7 +115,7 @@ const Me = S("download", [
114
115
  * This source code is licensed under the ISC license.
115
116
  * See the LICENSE file in the root directory of this source tree.
116
117
  */
117
- const Je = S("ellipsis", [
118
+ const Ye = F("ellipsis", [
118
119
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
119
120
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
120
121
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
@@ -125,7 +126,7 @@ const Je = S("ellipsis", [
125
126
  * This source code is licensed under the ISC license.
126
127
  * See the LICENSE file in the root directory of this source tree.
127
128
  */
128
- const Z = S("file-text", [
129
+ const X = F("file-text", [
129
130
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
130
131
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
131
132
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
@@ -138,7 +139,7 @@ const Z = S("file-text", [
138
139
  * This source code is licensed under the ISC license.
139
140
  * See the LICENSE file in the root directory of this source tree.
140
141
  */
141
- const Xe = S("file", [
142
+ const et = F("file", [
142
143
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
143
144
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
144
145
  ]);
@@ -148,7 +149,7 @@ const Xe = S("file", [
148
149
  * This source code is licensed under the ISC license.
149
150
  * See the LICENSE file in the root directory of this source tree.
150
151
  */
151
- const Qe = S("grid-3x3", [
152
+ const tt = F("grid-3x3", [
152
153
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
153
154
  ["path", { d: "M3 9h18", key: "1pudct" }],
154
155
  ["path", { d: "M3 15h18", key: "5xshup" }],
@@ -161,7 +162,7 @@ const Qe = S("grid-3x3", [
161
162
  * This source code is licensed under the ISC license.
162
163
  * See the LICENSE file in the root directory of this source tree.
163
164
  */
164
- const Ye = S("heart", [
165
+ const st = F("heart", [
165
166
  [
166
167
  "path",
167
168
  {
@@ -176,7 +177,7 @@ const Ye = S("heart", [
176
177
  * This source code is licensed under the ISC license.
177
178
  * See the LICENSE file in the root directory of this source tree.
178
179
  */
179
- const et = S("history", [
180
+ const nt = F("history", [
180
181
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
181
182
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
182
183
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
@@ -187,7 +188,7 @@ const et = S("history", [
187
188
  * This source code is licensed under the ISC license.
188
189
  * See the LICENSE file in the root directory of this source tree.
189
190
  */
190
- const we = S("image", [
191
+ const Ce = F("image", [
191
192
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
192
193
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
193
194
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
@@ -198,7 +199,7 @@ const we = S("image", [
198
199
  * This source code is licensed under the ISC license.
199
200
  * See the LICENSE file in the root directory of this source tree.
200
201
  */
201
- const tt = S("list", [
202
+ const ot = F("list", [
202
203
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
203
204
  ["path", { d: "M3 18h.01", key: "1tta3j" }],
204
205
  ["path", { d: "M3 6h.01", key: "1rqtza" }],
@@ -212,7 +213,7 @@ const tt = S("list", [
212
213
  * This source code is licensed under the ISC license.
213
214
  * See the LICENSE file in the root directory of this source tree.
214
215
  */
215
- const Te = S("plus", [
216
+ const Ie = F("plus", [
216
217
  ["path", { d: "M5 12h14", key: "1ays0h" }],
217
218
  ["path", { d: "M12 5v14", key: "s699le" }]
218
219
  ]);
@@ -222,7 +223,7 @@ const Te = S("plus", [
222
223
  * This source code is licensed under the ISC license.
223
224
  * See the LICENSE file in the root directory of this source tree.
224
225
  */
225
- const st = S("reply", [
226
+ const at = F("reply", [
226
227
  ["path", { d: "M20 18v-2a4 4 0 0 0-4-4H4", key: "5vmcpk" }],
227
228
  ["path", { d: "m9 17-5-5 5-5", key: "nvlc11" }]
228
229
  ]);
@@ -232,7 +233,7 @@ const st = S("reply", [
232
233
  * This source code is licensed under the ISC license.
233
234
  * See the LICENSE file in the root directory of this source tree.
234
235
  */
235
- const De = S("send", [
236
+ const ze = F("send", [
236
237
  [
237
238
  "path",
238
239
  {
@@ -248,7 +249,7 @@ const De = S("send", [
248
249
  * This source code is licensed under the ISC license.
249
250
  * See the LICENSE file in the root directory of this source tree.
250
251
  */
251
- const nt = S("sheet", [
252
+ const lt = F("sheet", [
252
253
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
253
254
  ["line", { x1: "3", x2: "21", y1: "9", y2: "9", key: "1vqk6q" }],
254
255
  ["line", { x1: "3", x2: "21", y1: "15", y2: "15", key: "o2sbyz" }],
@@ -261,7 +262,7 @@ const nt = S("sheet", [
261
262
  * This source code is licensed under the ISC license.
262
263
  * See the LICENSE file in the root directory of this source tree.
263
264
  */
264
- const ot = S("square-pen", [
265
+ const it = F("square-pen", [
265
266
  ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
266
267
  [
267
268
  "path",
@@ -277,7 +278,7 @@ const ot = S("square-pen", [
277
278
  * This source code is licensed under the ISC license.
278
279
  * See the LICENSE file in the root directory of this source tree.
279
280
  */
280
- const fe = S("trash-2", [
281
+ const ve = F("trash-2", [
281
282
  ["path", { d: "M10 11v6", key: "nco0om" }],
282
283
  ["path", { d: "M14 11v6", key: "outv1u" }],
283
284
  ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
@@ -290,7 +291,7 @@ const fe = S("trash-2", [
290
291
  * This source code is licensed under the ISC license.
291
292
  * See the LICENSE file in the root directory of this source tree.
292
293
  */
293
- const at = S("user-check", [
294
+ const rt = F("user-check", [
294
295
  ["path", { d: "m16 11 2 2 4-4", key: "9rsbq5" }],
295
296
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
296
297
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
@@ -301,7 +302,7 @@ const at = S("user-check", [
301
302
  * This source code is licensed under the ISC license.
302
303
  * See the LICENSE file in the root directory of this source tree.
303
304
  */
304
- const ye = S("user", [
305
+ const be = F("user", [
305
306
  ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
306
307
  ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
307
308
  ]);
@@ -311,7 +312,7 @@ const ye = S("user", [
311
312
  * This source code is licensed under the ISC license.
312
313
  * See the LICENSE file in the root directory of this source tree.
313
314
  */
314
- const lt = S("video", [
315
+ const dt = F("video", [
315
316
  [
316
317
  "path",
317
318
  {
@@ -327,234 +328,234 @@ const lt = S("video", [
327
328
  * This source code is licensed under the ISC license.
328
329
  * See the LICENSE file in the root directory of this source tree.
329
330
  */
330
- const ve = S("x", [
331
+ const xe = F("x", [
331
332
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
332
333
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
333
- ]), it = { class: "border-t pt-3 mt-4" }, rt = { class: "flex gap-2" }, dt = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, ct = { class: "flex-1 space-y-2" }, ut = { class: "flex justify-between items-center" }, pt = { class: "flex gap-2" }, mt = ["disabled"], je = /* @__PURE__ */ V({
334
+ ]), ct = { class: "border-t pt-3 mt-4" }, ut = { class: "flex gap-2" }, pt = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, mt = { class: "flex-1 space-y-2" }, gt = { class: "flex justify-between items-center" }, ht = { class: "flex gap-2" }, ft = ["disabled"], Ae = /* @__PURE__ */ H({
334
335
  __name: "CommentInputZone",
335
336
  props: {
336
337
  isReply: { type: Boolean, required: !1, default: !1 },
337
338
  isReplyModifiers: {}
338
339
  },
339
- emits: /* @__PURE__ */ se(["sendComment"], ["update:isReply"]),
340
- setup(c, { emit: l }) {
341
- const s = ge(c, "isReply"), n = M(""), o = l, f = () => {
340
+ emits: /* @__PURE__ */ oe(["sendComment"], ["update:isReply"]),
341
+ setup(d, { emit: l }) {
342
+ const s = fe(d, "isReply"), n = T(""), o = l, h = () => {
342
343
  n.value.trim() && (o("sendComment", n.value), n.value = "");
343
- }, r = (v) => {
344
- (v.ctrlKey || v.metaKey) && v.key === "Enter" && (v.preventDefault(), f());
344
+ }, r = (y) => {
345
+ (y.ctrlKey || y.metaKey) && y.key === "Enter" && (y.preventDefault(), h());
345
346
  };
346
- return (v, g) => (t(), a("div", it, [
347
- e("div", rt, [
348
- e("span", dt, [
349
- z(D(ye), { class: "h-3 w-3 text-gray-500" })
347
+ return (y, m) => (t(), a("div", ct, [
348
+ e("div", ut, [
349
+ e("span", pt, [
350
+ V(I(be), { class: "h-3 w-3 text-gray-500" })
350
351
  ]),
351
- e("div", ct, [
352
- R(e("textarea", {
353
- "onUpdate:modelValue": g[0] || (g[0] = (k) => n.value = k),
352
+ e("div", mt, [
353
+ U(e("textarea", {
354
+ "onUpdate:modelValue": m[0] || (m[0] = (k) => n.value = k),
354
355
  onKeydown: r,
355
356
  placeholder: "Add a comment...",
356
357
  class: "w-full min-h-[60px] p-2 border border-gray-200 rounded text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-transparent"
357
358
  }, null, 544), [
358
- [he, n.value]
359
+ [ye, n.value]
359
360
  ]),
360
- e("div", ut, [
361
- g[4] || (g[4] = e("span", { class: "text-xs text-gray-500 hidden sm:inline" }, "Cmd+Enter to send", -1)),
362
- e("div", pt, [
361
+ e("div", gt, [
362
+ m[4] || (m[4] = e("span", { class: "text-xs text-gray-500 hidden sm:inline" }, "Cmd+Enter to send", -1)),
363
+ e("div", ht, [
363
364
  s.value ? (t(), a("button", {
364
365
  key: 0,
365
366
  class: "inline-flex items-center justify-center gap-2 text-white whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 bg-red-500 hover:bg-opacity-80 rounded-md h-6 text-xs px-2",
366
- onClick: g[1] || (g[1] = (k) => s.value = !1)
367
+ onClick: m[1] || (m[1] = (k) => s.value = !1)
367
368
  }, [
368
- z(D(ve), { class: "h-3 w-3" }),
369
- g[2] || (g[2] = O(" Cancel ", -1))
370
- ])) : $("", !0),
369
+ V(I(xe), { class: "h-3 w-3" }),
370
+ m[2] || (m[2] = B(" Cancel ", -1))
371
+ ])) : C("", !0),
371
372
  e("button", {
372
373
  class: "inline-flex items-center justify-center gap-2 text-white whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 bg-black text-primary-foreground hover:bg-opacity-80 rounded-md h-6 text-xs px-2",
373
374
  disabled: !n.value.trim(),
374
- onClick: f
375
+ onClick: h
375
376
  }, [
376
- z(D(De), { class: "h-3 w-3 mr-1" }),
377
- g[3] || (g[3] = O(" Send ", -1))
378
- ], 8, mt)
377
+ V(I(ze), { class: "h-3 w-3 mr-1" }),
378
+ m[3] || (m[3] = B(" Send ", -1))
379
+ ], 8, ft)
379
380
  ])
380
381
  ])
381
382
  ])
382
383
  ])
383
384
  ]));
384
385
  }
385
- }), gt = { class: "z-50 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md w-32 outline-none pointer-events-auto" }, ht = /* @__PURE__ */ V({
386
+ }), yt = { class: "z-50 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md w-32 outline-none pointer-events-auto" }, vt = /* @__PURE__ */ H({
386
387
  __name: "CommentDetails",
387
388
  props: {
388
389
  showMoreOptions: { type: Boolean, required: !0, default: !1 },
389
390
  showMoreOptionsModifiers: {}
390
391
  },
391
- emits: /* @__PURE__ */ se(["edit", "delete"], ["update:showMoreOptions"]),
392
- setup(c, { emit: l }) {
393
- const s = l, n = ge(c, "showMoreOptions"), o = M(), f = M(!0), r = async (k) => {
394
- n.value && o.value && !o.value.contains(k.target) && !f.value && (n.value = !1), f.value = !1;
395
- }, v = () => {
392
+ emits: /* @__PURE__ */ oe(["edit", "delete"], ["update:showMoreOptions"]),
393
+ setup(d, { emit: l }) {
394
+ const s = l, n = fe(d, "showMoreOptions"), o = T(), h = T(!0), r = async (k) => {
395
+ n.value && o.value && !o.value.contains(k.target) && !h.value && (n.value = !1), h.value = !1;
396
+ }, y = () => {
396
397
  n.value = !1, s("edit");
397
- }, g = () => {
398
+ }, m = () => {
398
399
  n.value = !1, s("delete");
399
400
  };
400
- return ee(() => {
401
+ return se(() => {
401
402
  document.addEventListener("click", r);
402
- }), Ce(() => {
403
+ }), Le(() => {
403
404
  document.removeEventListener("click", r);
404
- }), (k, x) => (t(), a("div", {
405
+ }), (k, b) => (t(), a("div", {
405
406
  class: "absolute bg-white left-0 top-full transform min-w-max z-50",
406
407
  ref_key: "moreOptionsRef",
407
408
  ref: o
408
409
  }, [
409
- e("div", gt, [
410
+ e("div", yt, [
410
411
  e("div", {
411
412
  class: "relative cursor-pointer flex select-none items-center gap-2 rounded-sm px-2 py-2 outline-hidden transition-colors disabled:pointer-events-none disabled:opacity-50 text-xs hover:bg-gray-100 transition-colors duration-300",
412
- onClick: v
413
+ onClick: y
413
414
  }, [
414
- z(D(ot), { class: "h-3 w-3 mr-2" }),
415
- x[0] || (x[0] = O(" Edit ", -1))
415
+ V(I(it), { class: "h-3 w-3 mr-2" }),
416
+ b[0] || (b[0] = B(" Edit ", -1))
416
417
  ]),
417
418
  e("div", {
418
419
  class: "relative cursor-pointer flex select-none items-center gap-2 rounded-sm px-2 py-2 outline-hidden transition-colors disabled:pointer-events-none disabled:opacity-50 text-xs text-red-600 hover:bg-gray-100 transition-colors duration-300",
419
- onClick: g
420
+ onClick: m
420
421
  }, [
421
- z(D(fe), { class: "h-3 w-3 mr-2" }),
422
- x[1] || (x[1] = O(" Delete ", -1))
422
+ V(I(ve), { class: "h-3 w-3 mr-2" }),
423
+ b[1] || (b[1] = B(" Delete ", -1))
423
424
  ])
424
425
  ])
425
426
  ], 512));
426
427
  }
427
- }), ft = { class: "space-y-2" }, yt = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, vt = { class: "flex-1 min-w-0 space-y-1 relative" }, bt = { class: "flex items-center gap-2" }, xt = { class: "font-medium text-xs" }, kt = { class: "text-xs text-gray-500" }, _t = {
428
+ }), bt = { class: "space-y-2" }, xt = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, kt = { class: "flex-1 min-w-0 space-y-1 relative" }, _t = { class: "flex items-center gap-2" }, wt = { class: "font-medium text-xs" }, $t = { class: "text-xs text-gray-500" }, Ct = {
428
429
  key: 0,
429
430
  class: "text-xs text-gray-700 leading-relaxed"
430
- }, wt = { class: "flex justify-between text-xs" }, $t = { class: "flex items-center gap-2" }, Ct = {
431
+ }, Mt = { class: "flex justify-between text-xs" }, Lt = { class: "flex items-center gap-2" }, Tt = {
431
432
  key: 0,
432
433
  class: "flex gap-2"
433
- }, Lt = ["disabled"], Mt = {
434
+ }, Dt = ["disabled"], jt = {
434
435
  key: 0,
435
436
  class: "ml-8 space-y-1 border-l-2 border-gray-100 pl-3"
436
- }, Tt = /* @__PURE__ */ V({
437
+ }, It = /* @__PURE__ */ H({
437
438
  __name: "CommentItem",
438
439
  props: {
439
440
  comment: {},
440
441
  isInside: { type: Boolean }
441
442
  },
442
443
  emits: ["like", "reply", "edit", "delete"],
443
- setup(c, { emit: l }) {
444
- const s = l, n = c, o = M(n.comment.text), f = M("w-full p-2 rounded text-xs resize-none bg-transparent outline-none"), r = M("w-full min-h-[60px] p-2 border border-gray-200 rounded text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-transparent"), v = M(!1), g = M(!1), k = M(!1), x = M(!1), m = (i) => {
445
- const p = /* @__PURE__ */ new Date(), u = Math.floor(
446
- (p.getTime() - i.getTime()) / (1e3 * 60 * 60)
444
+ setup(d, { emit: l }) {
445
+ const s = l, n = d, o = T(n.comment.text), h = T("w-full p-2 rounded text-xs resize-none bg-transparent outline-none"), r = T("w-full min-h-[60px] p-2 border border-gray-200 rounded text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-transparent"), y = T(!1), m = T(!1), k = T(!1), b = T(!1), p = (i) => {
446
+ const u = /* @__PURE__ */ new Date(), c = Math.floor(
447
+ (u.getTime() - i.getTime()) / (1e3 * 60 * 60)
447
448
  );
448
- return u < 1 ? `${Math.floor(
449
- (p.getTime() - i.getTime()) / 6e4
450
- )}m` : u < 24 ? `${u}h` : `${Math.floor(u / 24)}d`;
451
- }, b = () => {
452
- x.value = !x.value, x.value ? s("like", n.comment.id, "add") : s("like", n.comment.id, "delete");
453
- }, F = () => {
449
+ return c < 1 ? `${Math.floor(
450
+ (u.getTime() - i.getTime()) / 6e4
451
+ )}m` : c < 24 ? `${c}h` : `${Math.floor(c / 24)}d`;
452
+ }, v = () => {
453
+ b.value = !b.value, b.value ? s("like", n.comment.id, "add") : s("like", n.comment.id, "delete");
454
+ }, O = () => {
454
455
  s("edit", n.comment.id, o.value), k.value = !1;
455
- }, w = (i, p) => {
456
- s("like", i, p);
457
- }, C = (i, p) => {
458
- s("edit", i, p);
456
+ }, w = (i, u) => {
457
+ s("like", i, u);
458
+ }, M = (i, u) => {
459
+ s("edit", i, u);
459
460
  };
460
- return (i, p) => {
461
- const u = ne("CommentItem", !0);
462
- return t(), a("div", ft, [
461
+ return (i, u) => {
462
+ const c = ae("CommentItem", !0);
463
+ return t(), a("div", bt, [
463
464
  e("div", {
464
- class: I(["group flex gap-2 p-2 rounded hover:bg-gray-50 transition-colors relative", k.value ? "bg-gray-50" : ""])
465
+ class: z(["group flex gap-2 p-2 rounded hover:bg-gray-50 transition-colors relative", k.value ? "bg-gray-50" : ""])
465
466
  }, [
466
- e("span", yt, [
467
- z(D(ye), { class: "h-3 w-3 text-gray-500" })
467
+ e("span", xt, [
468
+ V(I(be), { class: "h-3 w-3 text-gray-500" })
468
469
  ]),
469
- e("div", vt, [
470
- e("div", bt, [
471
- e("span", xt, _(i.comment?.author), 1),
472
- e("span", kt, _(m(i.comment?.createdAt)), 1)
470
+ e("div", kt, [
471
+ e("div", _t, [
472
+ e("span", wt, _(i.comment?.author), 1),
473
+ e("span", $t, _(p(i.comment?.createdAt)), 1)
473
474
  ]),
474
- k.value ? R((t(), a("textarea", {
475
+ k.value ? U((t(), a("textarea", {
475
476
  key: 1,
476
- "onUpdate:modelValue": p[0] || (p[0] = (h) => o.value = h),
477
- class: I(k.value ? r.value : f.value)
477
+ "onUpdate:modelValue": u[0] || (u[0] = (g) => o.value = g),
478
+ class: z(k.value ? r.value : h.value)
478
479
  }, null, 2)), [
479
- [he, o.value]
480
- ]) : (t(), a("p", _t, _(i.comment?.text), 1)),
481
- e("div", wt, [
482
- e("div", $t, [
480
+ [ye, o.value]
481
+ ]) : (t(), a("p", Ct, _(i.comment?.text), 1)),
482
+ e("div", Mt, [
483
+ e("div", Lt, [
483
484
  e("button", {
484
- class: I(["flex items-center gap-1", x.value ? "text-blue-600" : "text-gray-500 hover:text-blue-600 transition-colors"]),
485
- onClick: p[1] || (p[1] = (h) => b())
485
+ class: z(["flex items-center gap-1", b.value ? "text-blue-600" : "text-gray-500 hover:text-blue-600 transition-colors"]),
486
+ onClick: u[1] || (u[1] = (g) => v())
486
487
  }, [
487
- z(D(Ye), {
488
- class: I(["h-3 w-3", x.value ? "fill-blue-600" : ""])
488
+ V(I(st), {
489
+ class: z(["h-3 w-3", b.value ? "fill-blue-600" : ""])
489
490
  }, null, 8, ["class"]),
490
- O(" " + _(i.comment?.likes), 1)
491
+ B(" " + _(i.comment?.likes), 1)
491
492
  ], 2),
492
- i.isInside ? $("", !0) : (t(), a("button", {
493
+ i.isInside ? C("", !0) : (t(), a("button", {
493
494
  key: 0,
494
495
  class: "text-gray-500 hover:text-blue-600 transition-colors",
495
- onClick: p[2] || (p[2] = (h) => g.value = !0)
496
+ onClick: u[2] || (u[2] = (g) => m.value = !0)
496
497
  }, [
497
- z(D(st), { class: "h-3 w-3" })
498
+ V(I(at), { class: "h-3 w-3" })
498
499
  ])),
499
500
  e("button", {
500
501
  class: "text-gray-400 hover:text-gray-600 transition-colors opacity-0 group-hover:opacity-100",
501
502
  type: "button",
502
- onClick: p[3] || (p[3] = (h) => v.value = !0)
503
+ onClick: u[3] || (u[3] = (g) => y.value = !0)
503
504
  }, [
504
- z(D(Je), { class: "h-3 w-3" })
505
+ V(I(Ye), { class: "h-3 w-3" })
505
506
  ])
506
507
  ]),
507
- k.value ? (t(), a("div", Ct, [
508
+ k.value ? (t(), a("div", Tt, [
508
509
  e("button", {
509
510
  class: "inline-flex items-center justify-center gap-2 text-white whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 bg-red-500 hover:bg-opacity-80 rounded-md h-6 text-xs px-2",
510
- onClick: p[4] || (p[4] = (h) => k.value = !1)
511
+ onClick: u[4] || (u[4] = (g) => k.value = !1)
511
512
  }, [
512
- z(D(ve), { class: "h-3 w-3" }),
513
- p[11] || (p[11] = O(" Cancel ", -1))
513
+ V(I(xe), { class: "h-3 w-3" }),
514
+ u[11] || (u[11] = B(" Cancel ", -1))
514
515
  ]),
515
516
  e("button", {
516
517
  class: "inline-flex items-center justify-center gap-2 text-white whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 bg-black text-primary-foreground hover:bg-opacity-80 rounded-md h-6 text-xs px-2",
517
518
  disabled: !o.value.trim(),
518
- onClick: p[5] || (p[5] = (h) => F())
519
+ onClick: u[5] || (u[5] = (g) => O())
519
520
  }, [
520
- z(D(De), { class: "h-3 w-3 mr-1" }),
521
- p[12] || (p[12] = O(" Send ", -1))
522
- ], 8, Lt)
523
- ])) : $("", !0)
521
+ V(I(ze), { class: "h-3 w-3 mr-1" }),
522
+ u[12] || (u[12] = B(" Send ", -1))
523
+ ], 8, Dt)
524
+ ])) : C("", !0)
524
525
  ])
525
526
  ]),
526
- v.value ? (t(), H(ht, {
527
+ y.value ? (t(), S(vt, {
527
528
  key: 0,
528
- showMoreOptions: v.value,
529
- "onUpdate:showMoreOptions": p[6] || (p[6] = (h) => v.value = h),
530
- onEdit: p[7] || (p[7] = (h) => k.value = !0),
531
- onDelete: p[8] || (p[8] = (h) => i.$emit("delete", i.comment?.id)),
529
+ showMoreOptions: y.value,
530
+ "onUpdate:showMoreOptions": u[6] || (u[6] = (g) => y.value = g),
531
+ onEdit: u[7] || (u[7] = (g) => k.value = !0),
532
+ onDelete: u[8] || (u[8] = (g) => i.$emit("delete", i.comment?.id)),
532
533
  comment: i.comment
533
- }, null, 8, ["showMoreOptions", "comment"])) : $("", !0)
534
+ }, null, 8, ["showMoreOptions", "comment"])) : C("", !0)
534
535
  ], 2),
535
- i.isInside ? $("", !0) : (t(), a("div", Mt, [
536
- (t(!0), a(T, null, j(i.comment?.replies, (h) => (t(), H(u, {
537
- key: h.id,
538
- comment: h,
536
+ i.isInside ? C("", !0) : (t(), a("div", jt, [
537
+ (t(!0), a(j, null, A(i.comment?.replies, (g) => (t(), S(c, {
538
+ key: g.id,
539
+ comment: g,
539
540
  isInside: !0,
540
- onDelete: (y) => i.$emit("delete", h.id),
541
+ onDelete: ($) => i.$emit("delete", g.id),
541
542
  onLike: w,
542
- onEdit: C
543
+ onEdit: M
543
544
  }, null, 8, ["comment", "onDelete"]))), 128)),
544
- g.value && !i.isInside ? (t(), H(je, {
545
+ m.value && !i.isInside ? (t(), S(Ae, {
545
546
  key: 0,
546
- onSendComment: p[9] || (p[9] = (h) => i.$emit("reply", i.comment?.id, h)),
547
- isReply: g.value,
548
- "onUpdate:isReply": p[10] || (p[10] = (h) => g.value = h)
549
- }, null, 8, ["isReply"])) : $("", !0)
547
+ onSendComment: u[9] || (u[9] = (g) => i.$emit("reply", i.comment?.id, g)),
548
+ isReply: m.value,
549
+ "onUpdate:isReply": u[10] || (u[10] = (g) => m.value = g)
550
+ }, null, 8, ["isReply"])) : C("", !0)
550
551
  ]))
551
552
  ]);
552
553
  };
553
554
  }
554
- }), Dt = ["id"], jt = {
555
+ }), zt = ["id"], At = {
555
556
  key: 0,
556
557
  class: "text-xl font-semibold text-gray-900 mb-4"
557
- }, ie = /* @__PURE__ */ V({
558
+ }, de = /* @__PURE__ */ H({
558
559
  __name: "CommentsWidget",
559
560
  props: {
560
561
  title: {},
@@ -570,101 +571,101 @@ const ve = S("x", [
570
571
  style: {}
571
572
  },
572
573
  emits: ["add", "reply", "like", "delete", "edit"],
573
- setup(c, { emit: l }) {
574
- const s = c, n = l, o = M(s.comments ?? []);
575
- async function f() {
574
+ setup(d, { emit: l }) {
575
+ const s = d, n = l, o = T(s.comments ?? []);
576
+ async function h() {
576
577
  if (!s.id) return;
577
- const m = await fetch(`/api/widget/comment/${s.id}`).then((b) => b.json());
578
- o.value = m.rows.map((b) => ({
579
- id: b.communication_id,
580
- author: b.username,
581
- text: b.body,
582
- createdAt: new Date(b.cdate)
578
+ const p = await fetch(`/api/widget/comment/${s.id}`).then((v) => v.json());
579
+ o.value = p.rows.map((v) => ({
580
+ id: v.communication_id,
581
+ author: v.username,
582
+ text: v.body,
583
+ createdAt: new Date(v.cdate)
583
584
  }));
584
585
  }
585
- o.value.length === 0 && f();
586
- const r = async (m) => {
587
- s.onAddComment ? s.onAddComment(m) : s.id && (await fetch(`/api/widget/comment/${s.id}`, {
586
+ o.value.length === 0 && h();
587
+ const r = async (p) => {
588
+ s.onAddComment ? s.onAddComment(p) : s.id && (await fetch(`/api/widget/comment/${s.id}`, {
588
589
  method: "POST",
589
590
  headers: { "Content-Type": "application/json" },
590
- body: JSON.stringify({ body: m })
591
- }), await f()), n("add", m);
592
- }, v = (m, b) => {
593
- s?.onLike?.(m, b), n("like", m, b);
594
- }, g = (m, b) => {
595
- s.onReply?.(m, b), n("reply", m, b);
596
- }, k = async (m, b) => {
597
- s.onEdit ? s.onEdit(m, b) : s.id && (await fetch(`/api/widget/comment/${s.id}/${m}`, {
591
+ body: JSON.stringify({ body: p })
592
+ }), await h()), n("add", p);
593
+ }, y = (p, v) => {
594
+ s?.onLike?.(p, v), n("like", p, v);
595
+ }, m = (p, v) => {
596
+ s.onReply?.(p, v), n("reply", p, v);
597
+ }, k = async (p, v) => {
598
+ s.onEdit ? s.onEdit(p, v) : s.id && (await fetch(`/api/widget/comment/${s.id}/${p}`, {
598
599
  method: "POST",
599
600
  headers: { "Content-Type": "application/json" },
600
- body: JSON.stringify({ body: b })
601
- }), await f()), n("edit", m, b);
602
- }, x = async (m) => {
603
- s.onDelete ? s.onDelete(m) : s.id && (await fetch(`/api/widget/comment/${s.id}/${m}`, {
601
+ body: JSON.stringify({ body: v })
602
+ }), await h()), n("edit", p, v);
603
+ }, b = async (p) => {
604
+ s.onDelete ? s.onDelete(p) : s.id && (await fetch(`/api/widget/comment/${s.id}/${p}`, {
604
605
  method: "DELETE"
605
- }), await f()), n("delete", m);
606
+ }), await h()), n("delete", p);
606
607
  };
607
- return (m, b) => (t(), a("div", {
608
- class: I(["mx-auto font-sans", m.className]),
609
- id: m.id,
610
- style: J(m.style)
608
+ return (p, v) => (t(), a("div", {
609
+ class: z(["mx-auto font-sans", p.className]),
610
+ id: p.id,
611
+ style: Q(p.style)
611
612
  }, [
612
- m.title ? (t(), a("h3", jt, _(m.title), 1)) : $("", !0),
613
+ p.title ? (t(), a("h3", At, _(p.title), 1)) : C("", !0),
613
614
  e("div", {
614
- class: I([m.maxHeight ? "overflow-y-auto" : "", "space-y-3"]),
615
- style: J({ maxHeight: m.maxHeight + "px" })
615
+ class: z([p.maxHeight ? "overflow-y-auto" : "", "space-y-3"]),
616
+ style: Q({ maxHeight: p.maxHeight + "px" })
616
617
  }, [
617
- (t(!0), a(T, null, j(o.value, (F) => (t(), H(Tt, {
618
- key: F.id,
619
- comment: F,
620
- onReply: g,
621
- onLike: v,
622
- onDelete: b[0] || (b[0] = (w) => x(w)),
618
+ (t(!0), a(j, null, A(o.value, (O) => (t(), S(It, {
619
+ key: O.id,
620
+ comment: O,
621
+ onReply: m,
622
+ onLike: y,
623
+ onDelete: v[0] || (v[0] = (w) => b(w)),
623
624
  onEdit: k
624
625
  }, null, 8, ["comment"]))), 128))
625
626
  ], 6),
626
- z(je, {
627
- onSendComment: b[1] || (b[1] = (F) => r(F))
627
+ V(Ae, {
628
+ onSendComment: v[1] || (v[1] = (O) => r(O))
628
629
  })
629
- ], 14, Dt));
630
+ ], 14, zt));
630
631
  }
631
- }), $e = /* @__PURE__ */ new Map([
632
+ }), Me = /* @__PURE__ */ new Map([
632
633
  ["file", {
633
634
  name: "File",
634
635
  color: "bg-green-100 text-green-700 border-green-200",
635
- icon: Z
636
+ icon: X
636
637
  }],
637
638
  ["post", {
638
639
  name: "Post",
639
640
  color: "bg-blue-100 text-blue-700 border-blue-200",
640
- icon: nt
641
+ icon: lt
641
642
  }],
642
643
  ["user", {
643
644
  name: "User",
644
645
  color: "bg-purple-100 text-purple-700 border-purple-200",
645
- icon: at
646
+ icon: rt
646
647
  }],
647
648
  ["custom", {
648
649
  name: "Custom",
649
650
  color: "bg-gray-100 text-gray-700 border-gray-200",
650
- icon: et
651
+ icon: nt
651
652
  }]
652
- ]), It = { class: "mx-auto font-sans" }, At = {
653
+ ]), Vt = { class: "mx-auto font-sans" }, Et = {
653
654
  key: 0,
654
655
  class: "text-xl font-semibold text-gray-900 mb-4"
655
- }, zt = { class: "relative" }, Vt = { class: "space-y-3" }, Et = { class: "flex-1 min-w-0 pb-2" }, Ht = { class: "flex items-center gap-1.5 mb-1 mt-0.5" }, St = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, Ft = { class: "font-medium text-xs" }, Ot = { class: "text-xs text-gray-500" }, Nt = { class: "space-y-1" }, Pt = { class: "text-xs text-gray-700" }, Bt = { class: "capitalize mr-1" }, Wt = {
656
+ }, Ht = { class: "relative" }, St = { class: "space-y-3" }, Ft = { class: "flex-1 min-w-0 pb-2" }, Ot = { class: "flex items-center gap-1.5 mb-1 mt-0.5" }, Bt = { class: "relative flex items-center justify-center shrink-0 overflow-hidden rounded-full h-5 w-5 bg-gray-200" }, Pt = { class: "font-medium text-xs" }, Nt = { class: "text-xs text-gray-500" }, Wt = { class: "space-y-1" }, Rt = { class: "text-xs text-gray-700" }, Ut = { class: "capitalize mr-1" }, Gt = {
656
657
  key: 0,
657
658
  class: "inline-flex items-center rounded-full border py-0.5 font-semibold transition-colors text-foreground text-xs h-4 px-1 capitalize"
658
- }, Rt = {
659
+ }, qt = {
659
660
  key: 0,
660
661
  class: "flex items-center gap-1 text-xs"
661
- }, Ut = {
662
+ }, Zt = {
662
663
  key: 0,
663
664
  class: "bg-red-50 text-red-600 px-1.5 py-0.5 rounded text-xs border border-red-200"
664
- }, Gt = {
665
+ }, Kt = {
665
666
  key: 2,
666
667
  class: "bg-green-50 text-green-600 px-1.5 py-0.5 rounded text-xs border border-green-200"
667
- }, re = /* @__PURE__ */ V({
668
+ }, ce = /* @__PURE__ */ H({
668
669
  __name: "HistoryWidget",
669
670
  props: {
670
671
  data: {},
@@ -674,57 +675,57 @@ const ve = S("x", [
674
675
  className: {},
675
676
  style: {}
676
677
  },
677
- setup(c) {
678
- const l = c, s = M(Array.isArray(l.data) ? l.data : []);
678
+ setup(d) {
679
+ const l = d, s = T(Array.isArray(l.data) ? l.data : []);
679
680
  s.value.length === 0 && l.id && n();
680
681
  async function n() {
681
682
  const o = await fetch(`/api/widget/history/${l.id}`);
682
683
  if (!o.ok)
683
684
  return { data: [] };
684
- const f = await o.json();
685
- f.rows.forEach((r) => {
685
+ const h = await o.json();
686
+ h.rows.forEach((r) => {
686
687
  r.timestamp = new Date(r.cdate), r.id = r.entity_id, r.entityType = r.entity_type, r.entityId = r.entity_id, r.action = r.change_type, r.userId = r.change_user_id, r.userName = r.username, r.timestamp = new Date(r.cdate), r.description = r.username, r.status = r.username;
687
- }), s.value = f.rows;
688
+ }), s.value = h.rows;
688
689
  }
689
- return (o, f) => (t(), a("div", It, [
690
- o.title ? (t(), a("h3", At, _(o.title), 1)) : $("", !0),
690
+ return (o, h) => (t(), a("div", Vt, [
691
+ o.title ? (t(), a("h3", Et, _(o.title), 1)) : C("", !0),
691
692
  e("div", {
692
- class: I(o.maxHeight ? "overflow-y-auto" : ""),
693
- style: J({ maxHeight: o.maxHeight + "px" })
693
+ class: z(o.maxHeight ? "overflow-y-auto" : ""),
694
+ style: Q({ maxHeight: o.maxHeight + "px" })
694
695
  }, [
695
- e("div", zt, [
696
- f[0] || (f[0] = e("div", { class: "absolute left-3 top-0 bottom-0 w-0.5 bg-gray-200" }, null, -1)),
697
- e("div", Vt, [
698
- (t(!0), a(T, null, j(s.value, (r) => (t(), a("div", {
696
+ e("div", Ht, [
697
+ h[0] || (h[0] = e("div", { class: "absolute left-3 top-0 bottom-0 w-0.5 bg-gray-200" }, null, -1)),
698
+ e("div", St, [
699
+ (t(!0), a(j, null, A(s.value, (r) => (t(), a("div", {
699
700
  class: "relative flex items-start gap-2",
700
701
  key: r?.id
701
702
  }, [
702
703
  e("div", {
703
- class: I(`flex-shrink-0 w-6 h-6 rounded-full flex items-center justify-center border bg-white relative z-10 ${D($e).get(r?.entityType)?.color}`)
704
+ class: z(`flex-shrink-0 w-6 h-6 rounded-full flex items-center justify-center border bg-white relative z-10 ${I(Me).get(r?.entityType)?.color}`)
704
705
  }, [
705
- (t(), H(B(D($e).get(r?.entityType)?.icon), { class: "h-3 w-3" }))
706
+ (t(), S(W(I(Me).get(r?.entityType)?.icon), { class: "h-3 w-3" }))
706
707
  ], 2),
707
- e("div", Et, [
708
- e("div", Ht, [
709
- e("span", St, [
710
- z(D(ye), { class: "h-3 w-3 text-gray-500" })
708
+ e("div", Ft, [
709
+ e("div", Ot, [
710
+ e("span", Bt, [
711
+ V(I(be), { class: "h-3 w-3 text-gray-500" })
711
712
  ]),
712
- e("span", Ft, _(r?.userName), 1),
713
- e("span", Ot, _(r?.timestamp.toLocaleTimeString("ua-UA", { hour: "2-digit", minute: "2-digit" })), 1)
713
+ e("span", Pt, _(r?.userName), 1),
714
+ e("span", Nt, _(r?.timestamp.toLocaleTimeString("ua-UA", { hour: "2-digit", minute: "2-digit" })), 1)
714
715
  ]),
715
- e("div", Nt, [
716
- e("div", Pt, [
717
- e("span", Bt, _(r?.action), 1),
718
- r?.entityId ? (t(), a("span", Wt, _(r?.entityId), 1)) : $("", !0)
716
+ e("div", Wt, [
717
+ e("div", Rt, [
718
+ e("span", Ut, _(r?.action), 1),
719
+ r?.entityId ? (t(), a("span", Gt, _(r?.entityId), 1)) : C("", !0)
719
720
  ]),
720
- r?.changes?.[r?.entityId] ? (t(), a("div", Rt, [
721
- r?.changes?.[r?.entityId]?.old ? (t(), a("span", Ut, _(r?.changes?.[r?.entityId]?.old), 1)) : $("", !0),
722
- r?.changes?.[r?.entityId]?.old && r?.changes?.[r?.entityId]?.new ? (t(), H(D(Ke), {
721
+ r?.changes?.[r?.entityId] ? (t(), a("div", qt, [
722
+ r?.changes?.[r?.entityId]?.old ? (t(), a("span", Zt, _(r?.changes?.[r?.entityId]?.old), 1)) : C("", !0),
723
+ r?.changes?.[r?.entityId]?.old && r?.changes?.[r?.entityId]?.new ? (t(), S(I(Xe), {
723
724
  key: 1,
724
725
  class: "h-2 w-2 text-gray-400"
725
- })) : $("", !0),
726
- r?.changes?.[r?.entityId]?.new ? (t(), a("span", Gt, _(r?.changes?.[r?.entityId]?.new), 1)) : $("", !0)
727
- ])) : $("", !0)
726
+ })) : C("", !0),
727
+ r?.changes?.[r?.entityId]?.new ? (t(), a("span", Kt, _(r?.changes?.[r?.entityId]?.new), 1)) : C("", !0)
728
+ ])) : C("", !0)
728
729
  ])
729
730
  ])
730
731
  ]))), 128))
@@ -733,209 +734,209 @@ const ve = S("x", [
733
734
  ], 6)
734
735
  ]));
735
736
  }
736
- }), qt = {
737
+ }), Jt = {
737
738
  key: 0,
738
739
  class: "text-xl font-semibold"
739
- }, Kt = { class: "flex gap-1" }, Zt = { class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-input bg-background hover:bg-accent hover:text-accent-foreground border rounded-md text-xs h-7 px-2 cursor-pointer" }, Jt = /* @__PURE__ */ V({
740
+ }, Xt = { class: "flex gap-1" }, Qt = { class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-input bg-background hover:bg-accent hover:text-accent-foreground border rounded-md text-xs h-7 px-2 cursor-pointer" }, Yt = /* @__PURE__ */ H({
740
741
  __name: "FileHeader",
741
- props: /* @__PURE__ */ se({
742
+ props: /* @__PURE__ */ oe({
742
743
  title: {}
743
744
  }, {
744
745
  modelValue: {},
745
746
  modelModifiers: {}
746
747
  }),
747
- emits: /* @__PURE__ */ se(["onAddFile"], ["update:modelValue"]),
748
- setup(c) {
749
- const l = ge(c, "modelValue"), s = {
748
+ emits: /* @__PURE__ */ oe(["onAddFile"], ["update:modelValue"]),
749
+ setup(d) {
750
+ const l = fe(d, "modelValue"), s = {
750
751
  active: "bg-blue-100 text-black hover:bg-blue-100",
751
752
  inactive: "bg-white text-black hover:bg-blue-100"
752
753
  };
753
754
  return (n, o) => (t(), a("div", {
754
- class: I(["flex flex-col sm:flex-row gap-3 mb-4", n.title ? "justify-between sm:items-center" : "justify-end sm:items-center"])
755
+ class: z(["flex flex-col sm:flex-row gap-3 mb-4", n.title ? "justify-between sm:items-center" : "justify-end sm:items-center"])
755
756
  }, [
756
- n.title ? (t(), a("h3", qt, _(n.title), 1)) : $("", !0),
757
- e("div", Kt, [
757
+ n.title ? (t(), a("h3", Jt, _(n.title), 1)) : C("", !0),
758
+ e("div", Xt, [
758
759
  e("button", {
759
- class: I(["ring-offset-background inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors border-input border rounded-md text-xs h-7 px-2", l.value === "list" ? s.active : s.inactive]),
760
- onClick: o[0] || (o[0] = (f) => l.value = "list")
760
+ class: z(["ring-offset-background inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors border-input border rounded-md text-xs h-7 px-2", l.value === "list" ? s.active : s.inactive]),
761
+ onClick: o[0] || (o[0] = (h) => l.value = "list")
761
762
  }, [
762
- z(D(tt), { class: "h-4 w-4" })
763
+ V(I(ot), { class: "h-4 w-4" })
763
764
  ], 2),
764
765
  e("button", {
765
- class: I(["ring-offset-background inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors border-input border rounded-md text-xs h-7 px-2", l.value === "grid" ? s.active : s.inactive]),
766
- onClick: o[1] || (o[1] = (f) => l.value = "grid")
766
+ class: z(["ring-offset-background inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors border-input border rounded-md text-xs h-7 px-2", l.value === "grid" ? s.active : s.inactive]),
767
+ onClick: o[1] || (o[1] = (h) => l.value = "grid")
767
768
  }, [
768
- z(D(Qe), { class: "h-4 w-4" })
769
+ V(I(tt), { class: "h-4 w-4" })
769
770
  ], 2),
770
771
  e("label", null, [
771
772
  e("input", {
772
773
  type: "file",
773
774
  class: "hidden",
774
- onChange: o[2] || (o[2] = (f) => n.$emit("onAddFile", f))
775
+ onChange: o[2] || (o[2] = (h) => n.$emit("onAddFile", h))
775
776
  }, null, 32),
776
- e("div", Zt, [
777
- z(D(Te), { class: "h-4 w-4" }),
778
- o[3] || (o[3] = O(" Додати файл ", -1))
777
+ e("div", Qt, [
778
+ V(I(Ie), { class: "h-4 w-4" }),
779
+ o[3] || (o[3] = B(" Додати файл ", -1))
779
780
  ])
780
781
  ])
781
782
  ])
782
783
  ], 2));
783
784
  }
784
- }), ae = {
785
+ }), ie = {
785
786
  pdf: {
786
787
  color: "bg-red-100 text-red-700 border-red-200",
787
- icon: Z,
788
+ icon: X,
788
789
  label: "PDF"
789
790
  },
790
791
  sketch: {
791
792
  color: "bg-gray-100 text-gray-700 border-gray-200",
792
- icon: Xe,
793
+ icon: et,
793
794
  label: "SKETCH"
794
795
  },
795
796
  mp4: {
796
797
  color: "bg-purple-100 text-purple-700 border-purple-200",
797
- icon: lt,
798
+ icon: dt,
798
799
  label: "VIDEO"
799
800
  },
800
801
  docx: {
801
802
  color: "bg-blue-100 text-blue-700 border-blue-200",
802
- icon: Z,
803
+ icon: X,
803
804
  label: "DOC"
804
805
  },
805
806
  zip: {
806
807
  color: "bg-orange-100 text-orange-700 border-orange-200",
807
- icon: qe,
808
+ icon: Je,
808
809
  label: "ARCHIVE"
809
810
  },
810
811
  png: {
811
812
  color: "bg-green-100 text-green-700 border-green-200",
812
- icon: we,
813
+ icon: Ce,
813
814
  label: "IMAGE"
814
815
  },
815
816
  jpg: {
816
817
  color: "bg-green-100 text-green-700 border-green-200",
817
- icon: we,
818
+ icon: Ce,
818
819
  label: "IMAGE"
819
820
  },
820
821
  xlsx: {
821
822
  color: "bg-emerald-100 text-emerald-700 border-emerald-200",
822
- icon: Z,
823
+ icon: X,
823
824
  label: "EXCEL"
824
825
  },
825
826
  pptx: {
826
827
  color: "bg-amber-100 text-amber-700 border-amber-200",
827
- icon: Z,
828
+ icon: X,
828
829
  label: "PPT"
829
830
  }
830
831
  };
831
- function Ie(c, l = "en") {
832
+ function Ve(d, l = "en") {
832
833
  const s = {
833
834
  month: "short",
834
835
  day: "numeric"
835
836
  };
836
- return new Intl.DateTimeFormat(l, s).format(c);
837
+ return new Intl.DateTimeFormat(l, s).format(d);
837
838
  }
838
- function Ae(c) {
839
- if (c === 0) return "0 B";
840
- const l = 1024, s = ["B", "KB", "MB", "GB", "TB"], n = Math.floor(Math.log(c) / Math.log(l));
841
- return `${parseFloat((c / Math.pow(l, n)).toFixed(1))} ${s[n]}`;
839
+ function Ee(d) {
840
+ if (d === 0) return "0 B";
841
+ const l = 1024, s = ["B", "KB", "MB", "GB", "TB"], n = Math.floor(Math.log(d) / Math.log(l));
842
+ return `${parseFloat((d / Math.pow(l, n)).toFixed(1))} ${s[n]}`;
842
843
  }
843
- const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = { class: "flex items-center gap-2" }, ts = { class: "font-medium text-xs truncate hover:text-blue-600 cursor-pointer" }, ss = { class: "hidden sm:block text-xs text-gray-500 w-16 text-right" }, ns = { class: "hidden md:block text-xs text-gray-500 w-12 text-right" }, os = { class: "flex items-center gap-1" }, as = ["onClick"], ls = ["onClick"], is = /* @__PURE__ */ V({
844
+ const es = { class: "space-y-0.5" }, ts = ["onClick"], ss = ["onClick"], ns = { class: "flex items-center gap-2" }, os = { class: "font-medium text-xs truncate hover:text-blue-600 cursor-pointer" }, as = { class: "hidden sm:block text-xs text-gray-500 w-16 text-right" }, ls = { class: "hidden md:block text-xs text-gray-500 w-12 text-right" }, is = { class: "flex items-center gap-1" }, rs = ["onClick"], ds = ["onClick"], cs = /* @__PURE__ */ H({
844
845
  __name: "FileList",
845
846
  props: {
846
847
  files: {}
847
848
  },
848
849
  emits: ["delete", "download", "openLightbox"],
849
- setup(c) {
850
- return (l, s) => (t(), a("div", Xt, [
851
- (t(!0), a(T, null, j(l.files, (n) => (t(), a("div", {
850
+ setup(d) {
851
+ return (l, s) => (t(), a("div", es, [
852
+ (t(!0), a(j, null, A(l.files, (n) => (t(), a("div", {
852
853
  class: "flex items-center gap-2 p-1.5 rounded hover:bg-gray-50 group border-b border-gray-100 last:border-b-0",
853
854
  key: n.id,
854
- onClick: U((o) => l.$emit("openLightbox", n), ["stop"])
855
+ onClick: Z((o) => l.$emit("openLightbox", n), ["stop"])
855
856
  }, [
856
857
  e("div", {
857
- class: I(["p-1 rounded", D(ae)[n?.ext]?.color || "bg-blue-100 text-blue-700 border-blue-200"])
858
+ class: z(["p-1 rounded", I(ie)[n?.ext]?.color || "bg-blue-100 text-blue-700 border-blue-200"])
858
859
  }, [
859
- (t(), H(B(D(ae)[n?.ext]?.icon || D(ae).pdf.icon), { class: "h-3 w-3" }))
860
+ (t(), S(W(I(ie)[n?.ext]?.icon || I(ie).pdf.icon), { class: "h-3 w-3" }))
860
861
  ], 2),
861
862
  e("div", {
862
863
  class: "flex-1 min-w-0",
863
864
  onClick: (o) => l.$emit("openLightbox", n)
864
865
  }, [
865
- e("div", es, [
866
- e("span", ts, _(n?.uploaded_name || n?.name), 1)
866
+ e("div", ns, [
867
+ e("span", os, _(n?.uploaded_name || n?.name), 1)
867
868
  ])
868
- ], 8, Yt),
869
- e("div", ss, _(D(Ae)(n.size)), 1),
870
- e("div", ns, _(D(Ie)(n.createdAt)), 1),
871
- e("div", os, [
869
+ ], 8, ss),
870
+ e("div", as, _(I(Ee)(n.size)), 1),
871
+ e("div", ls, _(I(Ve)(n.createdAt)), 1),
872
+ e("div", is, [
872
873
  e("button", {
873
- onClick: U((o) => l.$emit("download", n), ["stop"]),
874
+ onClick: Z((o) => l.$emit("download", n), ["stop"]),
874
875
  class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground rounded-md h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity"
875
876
  }, [
876
- z(D(Me), { class: "h-3 w-3" })
877
- ], 8, as),
877
+ V(I(je), { class: "h-3 w-3" })
878
+ ], 8, rs),
878
879
  e("button", {
879
880
  class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent rounded-md h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity text-red-600 hover:text-red-700",
880
- onClick: U((o) => l.$emit("delete", o, n?.file_id), ["stop"])
881
+ onClick: Z((o) => l.$emit("delete", o, n?.file_id), ["stop"])
881
882
  }, [
882
- z(D(fe), { class: "h-3 w-3" })
883
- ], 8, ls)
883
+ V(I(ve), { class: "h-3 w-3" })
884
+ ], 8, ds)
884
885
  ])
885
- ], 8, Qt))), 128))
886
+ ], 8, ts))), 128))
886
887
  ]));
887
888
  }
888
- }), rs = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3" }, ds = ["onClick"], cs = { class: "space-y-2" }, us = { class: "flex justify-center items-center w-full aspect-[4/3] bg-gray-100 rounded overflow-hidden" }, ps = ["src"], ms = { class: "space-y-1" }, gs = ["title"], hs = { class: "text-xs text-gray-500 text-left" }, fs = { class: "absolute top-2 right-1 flex items-center gap-1" }, ys = ["onClick"], vs = ["onClick"], bs = /* @__PURE__ */ V({
889
+ }), us = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3" }, ps = ["onClick"], ms = { class: "space-y-2" }, gs = { class: "flex justify-center items-center w-full aspect-[4/3] bg-gray-100 rounded overflow-hidden" }, hs = ["src"], fs = { class: "space-y-1" }, ys = ["title"], vs = { class: "text-xs text-gray-500 text-left" }, bs = { class: "absolute top-2 right-1 flex items-center gap-1" }, xs = ["onClick"], ks = ["onClick"], _s = /* @__PURE__ */ H({
889
890
  __name: "FileGrid",
890
891
  props: {
891
892
  files: {}
892
893
  },
893
894
  emits: ["delete", "download", "openLightbox"],
894
- setup(c) {
895
- return (l, s) => (t(), a("div", rs, [
896
- (t(!0), a(T, null, j(l.files, (n) => (t(), a("div", {
895
+ setup(d) {
896
+ return (l, s) => (t(), a("div", us, [
897
+ (t(!0), a(j, null, A(l.files, (n) => (t(), a("div", {
897
898
  key: n.id,
898
- onClick: U((o) => l.$emit("openLightbox", n), ["stop"]),
899
+ onClick: Z((o) => l.$emit("openLightbox", n), ["stop"]),
899
900
  class: "group relative border rounded-lg p-2 hover:shadow-md transition-all bg-white hover:bg-gray-50 cursor-pointer"
900
901
  }, [
901
- e("div", cs, [
902
- e("div", us, [
902
+ e("div", ms, [
903
+ e("div", gs, [
903
904
  n.ext === "png" || n.ext === "jpg" || n.ext === "jpeg" || n.ext === "gif" || n.ext === "svg" || n.ext === "webp" ? (t(), a("img", {
904
905
  key: 0,
905
906
  src: `/file/resize?filepath=${n?.file_path}&w=500`,
906
907
  alt: "file",
907
908
  class: "w-full h-full object-cover"
908
- }, null, 8, ps)) : (t(), H(D(Z), {
909
+ }, null, 8, hs)) : (t(), S(I(X), {
909
910
  key: 1,
910
911
  class: "h-10 w-10 text-gray-500"
911
912
  }))
912
913
  ]),
913
- e("div", ms, [
914
+ e("div", fs, [
914
915
  e("h3", {
915
916
  class: "font-medium text-xs leading-tight text-left",
916
917
  title: n.uploaded_name || n.name
917
- }, _(n.uploaded_name || n.name), 9, gs),
918
- e("p", hs, _(D(Ie)(n.createdAt)) + ", " + _(D(Ae)(n.size)), 1)
918
+ }, _(n.uploaded_name || n.name), 9, ys),
919
+ e("p", vs, _(I(Ve)(n.createdAt)) + ", " + _(I(Ee)(n.size)), 1)
919
920
  ])
920
921
  ]),
921
- e("div", fs, [
922
+ e("div", bs, [
922
923
  e("button", {
923
- onClick: U((o) => l.$emit("download", n), ["stop"]),
924
+ onClick: Z((o) => l.$emit("download", n), ["stop"]),
924
925
  class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground rounded-md h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-red-50"
925
926
  }, [
926
- z(D(Me), { class: "h-3 w-3" })
927
- ], 8, ys),
927
+ V(I(je), { class: "h-3 w-3" })
928
+ ], 8, xs),
928
929
  e("button", {
929
930
  class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 rounded-md h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity text-red-600 hover:text-red-700 hover:bg-red-50",
930
- onClick: U((o) => l.$emit("delete", o, n?.file_id), ["stop"])
931
+ onClick: Z((o) => l.$emit("delete", o, n?.file_id), ["stop"])
931
932
  }, [
932
- z(D(fe), { class: "h-3 w-3" })
933
- ], 8, vs)
933
+ V(I(ve), { class: "h-3 w-3" })
934
+ ], 8, ks)
934
935
  ])
935
- ], 8, ds))), 128))
936
+ ], 8, ps))), 128))
936
937
  ]));
937
938
  }
938
- }), xs = { class: "mx-auto font-sans" }, ks = { key: 1 }, de = /* @__PURE__ */ V({
939
+ }), ws = { class: "mx-auto font-sans" }, $s = { key: 1 }, ue = /* @__PURE__ */ H({
939
940
  __name: "FilesWidget",
940
941
  props: {
941
942
  title: {},
@@ -949,128 +950,128 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
949
950
  onDelete: {}
950
951
  },
951
952
  emits: ["delete", "add", "openLightbox"],
952
- setup(c, { emit: l }) {
953
- const s = c, n = M(!1), o = M(null), f = M(!1), r = M(0), v = M(s.files ?? []), g = l;
954
- v.value.length === 0 && p();
955
- const k = (y, d) => {
956
- o.value = d, n.value = !0;
957
- }, x = () => {
953
+ setup(d, { emit: l }) {
954
+ const s = d, n = T(!1), o = T(null), h = T(!1), r = T(0), y = T(s.files ?? []), m = l;
955
+ y.value.length === 0 && u();
956
+ const k = ($, f) => {
957
+ o.value = f, n.value = !0;
958
+ }, b = () => {
958
959
  o.value && (w(o.value), o.value = null, n.value = !1);
959
- }, m = N(() => Array.isArray(v.value) ? v.value.map((y) => y?.file_path) : []), b = (y) => {
960
- const d = m.value.findIndex((A) => A === y.file_path);
961
- d !== -1 && (f.value = !0, r.value = d);
962
- }, F = (y) => {
963
- s.onAddFile ? s.onAddFile(y) : u(y), g("add", y);
964
- }, w = (y) => {
965
- s.onDelete ? s.onDelete(y) : h(y), g("delete", y);
966
- }, C = (y) => {
967
- const d = document.createElement("a");
968
- d.setAttribute("download", y?.uploaded_name || y?.name), d.href = y?.file_path || y?.path, d.click();
969
- }, i = M("list");
970
- async function p() {
960
+ }, p = P(() => Array.isArray(y.value) ? y.value.map(($) => $?.file_path) : []), v = ($) => {
961
+ const f = p.value.findIndex((E) => E === $.file_path);
962
+ f !== -1 && (h.value = !0, r.value = f);
963
+ }, O = ($) => {
964
+ s.onAddFile ? s.onAddFile($) : c($), m("add", $);
965
+ }, w = ($) => {
966
+ s.onDelete ? s.onDelete($) : g($), m("delete", $);
967
+ }, M = ($) => {
968
+ const f = document.createElement("a");
969
+ f.setAttribute("download", $?.uploaded_name || $?.name), f.href = $?.file_path || $?.path, f.click();
970
+ }, i = T("list");
971
+ async function u() {
971
972
  if (!s.id)
972
973
  return;
973
- const y = await fetch(`/api/widget/file/${s.id}`).then((d) => d.json());
974
- y.rows.forEach((d) => {
975
- d.timestamp = new Date(d.cdate), d.id = d.entity_id, d.entityType = d.entity_type, d.entityId = d.entity_id, d.entityType = d.entity_type, d.action = d.change_type, d.userId = d.change_user_id, d.userName = d.username, d.timestamp = new Date(d.cdate), d.description = d.username, d.status = d.username;
976
- }), v.value = y.rows;
974
+ const $ = await fetch(`/api/widget/file/${s.id}`).then((f) => f.json());
975
+ $.rows.forEach((f) => {
976
+ f.timestamp = new Date(f.cdate), f.id = f.entity_id, f.entityType = f.entity_type, f.entityId = f.entity_id, f.entityType = f.entity_type, f.action = f.change_type, f.userId = f.change_user_id, f.userName = f.username, f.timestamp = new Date(f.cdate), f.description = f.username, f.status = f.username;
977
+ }), y.value = $.rows;
977
978
  }
978
- const u = async (y) => {
979
- if (!(!y.target || !y.target.files || y.target.files.length === 0))
979
+ const c = async ($) => {
980
+ if (!(!$.target || !$.target.files || $.target.files.length === 0))
980
981
  try {
981
982
  await Promise.all(
982
- Array.from(y.target.files).map(async (d) => {
983
- const A = new FormData();
984
- A.append("file", d);
985
- const P = `/api/widget/file/${s.id}`, E = await fetch(P, {
983
+ Array.from($.target.files).map(async (f) => {
984
+ const E = new FormData();
985
+ E.append("file", f);
986
+ const x = `/api/widget/file/${s.id}`, D = await fetch(x, {
986
987
  method: "POST",
987
- body: A
988
+ body: E
988
989
  });
989
- if (!E.ok)
990
- throw new Error(`HTTP error! status: ${E.status}`);
991
- return d;
990
+ if (!D.ok)
991
+ throw new Error(`HTTP error! status: ${D.status}`);
992
+ return f;
992
993
  })
993
- ), await p();
994
- } catch (d) {
995
- console.error("Помилка при завантаженні файлів:", d);
994
+ ), await u();
995
+ } catch (f) {
996
+ console.error("Помилка при завантаженні файлів:", f);
996
997
  }
997
- }, h = async (y) => {
998
+ }, g = async ($) => {
998
999
  try {
999
1000
  await fetch(
1000
- `/api/widget/file/${s.id}/${y}`,
1001
+ `/api/widget/file/${s.id}/${$}`,
1001
1002
  {
1002
1003
  method: "DELETE"
1003
1004
  }
1004
- ), await p();
1005
- } catch (d) {
1006
- console.error(d);
1005
+ ), await u();
1006
+ } catch (f) {
1007
+ console.error(f);
1007
1008
  }
1008
1009
  };
1009
- return (y, d) => {
1010
- const A = ne("MessageBox"), P = ne("Lightbox");
1011
- return t(), a(T, null, [
1012
- e("div", xs, [
1013
- z(Jt, {
1010
+ return ($, f) => {
1011
+ const E = ae("MessageBox"), x = ae("Lightbox");
1012
+ return t(), a(j, null, [
1013
+ e("div", ws, [
1014
+ V(Yt, {
1014
1015
  modelValue: i.value,
1015
- "onUpdate:modelValue": d[0] || (d[0] = (E) => i.value = E),
1016
+ "onUpdate:modelValue": f[0] || (f[0] = (D) => i.value = D),
1016
1017
  title: s.title,
1017
- onOnAddFile: d[1] || (d[1] = (E) => F(E))
1018
+ onOnAddFile: f[1] || (f[1] = (D) => O(D))
1018
1019
  }, null, 8, ["modelValue", "title"]),
1019
- v.value.length > 0 ? (t(), a("div", {
1020
+ y.value.length > 0 ? (t(), a("div", {
1020
1021
  key: 0,
1021
- class: I(y.maxHeight ? "overflow-y-auto" : ""),
1022
- style: J({ maxHeight: y.maxHeight + "px" })
1022
+ class: z($.maxHeight ? "overflow-y-auto" : ""),
1023
+ style: Q({ maxHeight: $.maxHeight + "px" })
1023
1024
  }, [
1024
- i.value === "list" ? (t(), H(is, {
1025
+ i.value === "list" ? (t(), S(cs, {
1025
1026
  key: 0,
1026
1027
  onDelete: k,
1027
- onDownload: C,
1028
- onOpenLightbox: d[2] || (d[2] = (E) => b(E)),
1029
- files: v.value
1030
- }, null, 8, ["files"])) : $("", !0),
1031
- i.value === "grid" ? (t(), H(bs, {
1028
+ onDownload: M,
1029
+ onOpenLightbox: f[2] || (f[2] = (D) => v(D)),
1030
+ files: y.value
1031
+ }, null, 8, ["files"])) : C("", !0),
1032
+ i.value === "grid" ? (t(), S(_s, {
1032
1033
  key: 1,
1033
1034
  onDelete: k,
1034
- onDownload: C,
1035
- onOpenLightbox: d[3] || (d[3] = (E) => b(E)),
1036
- files: v.value
1037
- }, null, 8, ["files"])) : $("", !0)
1038
- ], 6)) : (t(), a("div", ks, d[6] || (d[6] = [
1035
+ onDownload: M,
1036
+ onOpenLightbox: f[3] || (f[3] = (D) => v(D)),
1037
+ files: y.value
1038
+ }, null, 8, ["files"])) : C("", !0)
1039
+ ], 6)) : (t(), a("div", $s, f[6] || (f[6] = [
1039
1040
  e("div", { class: "flex items-center justify-center h-full" }, [
1040
1041
  e("p", { class: "text-gray-500 leading-[3]" }, "Файлів не знайдено")
1041
1042
  ], -1)
1042
1043
  ])))
1043
1044
  ]),
1044
- z(A, {
1045
+ V(E, {
1045
1046
  modelValue: n.value,
1046
- "onUpdate:modelValue": d[4] || (d[4] = (E) => n.value = E),
1047
- onConfirm: x,
1047
+ "onUpdate:modelValue": f[4] || (f[4] = (D) => n.value = D),
1048
+ onConfirm: b,
1048
1049
  title: "Ви впевнені?",
1049
1050
  message: "Ви впевнені, що хочете видалити цей файл?",
1050
1051
  confirmButtonText: "Так, я впевнена/ий",
1051
1052
  cancelButtonText: "Скасувати"
1052
1053
  }, null, 8, ["modelValue"]),
1053
- z(P, {
1054
- modelValue: f.value,
1055
- "onUpdate:modelValue": d[5] || (d[5] = (E) => f.value = E),
1056
- images: m.value,
1054
+ V(x, {
1055
+ modelValue: h.value,
1056
+ "onUpdate:modelValue": f[5] || (f[5] = (D) => h.value = D),
1057
+ images: p.value,
1057
1058
  "start-index": r.value
1058
1059
  }, null, 8, ["modelValue", "images", "start-index"])
1059
1060
  ], 64);
1060
1061
  };
1061
1062
  }
1062
- }), _s = {
1063
+ }), Cs = {
1063
1064
  key: 0,
1064
1065
  class: "image-wrapper h-full max-h-[400px]",
1065
1066
  id: "lightbox-gallery"
1066
- }, ws = ["onClick"], $s = {
1067
+ }, Ms = ["onClick"], Ls = {
1067
1068
  key: 0,
1068
1069
  rel: "noreferrer",
1069
1070
  class: "relative block h-full w-full"
1070
- }, Cs = ["src"], Ls = {
1071
+ }, Ts = ["src"], Ds = {
1071
1072
  key: 0,
1072
1073
  class: "thumb-cover"
1073
- }, Ms = /* @__PURE__ */ V({
1074
+ }, js = /* @__PURE__ */ H({
1074
1075
  __name: "GalleryContent",
1075
1076
  props: {
1076
1077
  title: {},
@@ -1084,86 +1085,86 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1084
1085
  style: {}
1085
1086
  },
1086
1087
  emits: ["delete"],
1087
- setup(c, { emit: l }) {
1088
- const s = l, n = M(!1), o = M(0), f = c, r = N(
1089
- () => Array.isArray(f.items) ? f.items.map((g) => g?.file_path) : []
1090
- ), v = (g) => {
1088
+ setup(d, { emit: l }) {
1089
+ const s = l, n = T(!1), o = T(0), h = d, r = P(
1090
+ () => Array.isArray(h.items) ? h.items.map((m) => m?.file_path) : []
1091
+ ), y = (m) => {
1091
1092
  const k = r.value.findIndex(
1092
- (x) => x === g.file_path
1093
+ (b) => b === m.file_path
1093
1094
  );
1094
1095
  k !== -1 && (n.value = !0, o.value = k);
1095
1096
  };
1096
- return (g, k) => {
1097
- const x = ne("Lightbox");
1098
- return g.items?.length >= 1 ? (t(), a("div", _s, [
1099
- (t(!0), a(T, null, j(g.items, (m, b) => (t(), a("div", {
1100
- class: I(["h-full w-full image" + b, "cursor-pointer bg-teal-500 rounded-[3px]"]),
1101
- key: b,
1102
- onClick: U((F) => v(m), ["stop"])
1097
+ return (m, k) => {
1098
+ const b = ae("Lightbox");
1099
+ return m.items?.length >= 1 ? (t(), a("div", Cs, [
1100
+ (t(!0), a(j, null, A(m.items, (p, v) => (t(), a("div", {
1101
+ class: z(["h-full w-full image" + v, "cursor-pointer bg-teal-500 rounded-[3px]"]),
1102
+ key: v,
1103
+ onClick: Z((O) => y(p), ["stop"])
1103
1104
  }, [
1104
- b < 5 ? (t(), a("div", $s, [
1105
+ v < 5 ? (t(), a("div", Ls, [
1105
1106
  e("img", {
1106
- src: `/file/resize?filepath=${m?.file_path}&w=500`,
1107
+ src: `/file/resize?filepath=${p?.file_path}&w=500`,
1107
1108
  alt: "alt",
1108
1109
  height: "auto",
1109
1110
  width: "100%",
1110
- class: I([
1111
+ class: z([
1111
1112
  "object-cover h-full w-full bg-gray-200 rounded-[3px]",
1112
- b === 0 ? "max-h-[411px]" : "max-h-[calc((411px-3px)/2)]"
1113
+ v === 0 ? "max-h-[411px]" : "max-h-[calc((411px-3px)/2)]"
1113
1114
  ])
1114
- }, null, 10, Cs),
1115
- b === 4 && g.items?.length > 5 ? (t(), a("div", Ls, " +" + _(g.items?.length - 5), 1)) : $("", !0)
1116
- ])) : $("", !0)
1117
- ], 10, ws))), 128)),
1118
- (t(!0), a(T, null, j(Math.max(0, 5 - g.items.length), (m) => (t(), a("div", {
1119
- key: "empty-" + m,
1120
- class: I(["h-full w-full image" + (g.items.length + m - 1), "bg-gray-300 rounded-[3px]"])
1115
+ }, null, 10, Ts),
1116
+ v === 4 && m.items?.length > 5 ? (t(), a("div", Ds, " +" + _(m.items?.length - 5), 1)) : C("", !0)
1117
+ ])) : C("", !0)
1118
+ ], 10, Ms))), 128)),
1119
+ (t(!0), a(j, null, A(Math.max(0, 5 - m.items.length), (p) => (t(), a("div", {
1120
+ key: "empty-" + p,
1121
+ class: z(["h-full w-full image" + (m.items.length + p - 1), "bg-gray-300 rounded-[3px]"])
1121
1122
  }, null, 2))), 128)),
1122
- z(x, {
1123
+ V(b, {
1123
1124
  modelValue: n.value,
1124
- "onUpdate:modelValue": k[0] || (k[0] = (m) => n.value = m),
1125
+ "onUpdate:modelValue": k[0] || (k[0] = (p) => n.value = p),
1125
1126
  images: r.value,
1126
1127
  "start-index": o.value,
1127
1128
  delete: "true",
1128
1129
  download: "true",
1129
- onDelete: k[1] || (k[1] = (m) => s("delete", m))
1130
+ onDelete: k[1] || (k[1] = (p) => s("delete", p))
1130
1131
  }, null, 8, ["modelValue", "images", "start-index"])
1131
- ])) : $("", !0);
1132
+ ])) : C("", !0);
1132
1133
  };
1133
1134
  }
1134
- }), Ts = {
1135
+ }), Is = {
1135
1136
  key: 0,
1136
1137
  class: "text-xl font-semibold"
1137
- }, Ds = { class: "flex gap-1" }, js = { class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-input bg-background hover:bg-accent hover:text-accent-foreground border rounded-md text-xs h-7 px-2 cursor-pointer" }, Is = /* @__PURE__ */ V({
1138
+ }, zs = { class: "flex gap-1" }, As = { class: "ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-input bg-background hover:bg-accent hover:text-accent-foreground border rounded-md text-xs h-7 px-2 cursor-pointer" }, Vs = /* @__PURE__ */ H({
1138
1139
  __name: "widgetHeader",
1139
1140
  props: {
1140
1141
  title: {}
1141
1142
  },
1142
1143
  emits: ["onAddImage"],
1143
- setup(c) {
1144
+ setup(d) {
1144
1145
  return (l, s) => (t(), a("div", {
1145
- class: I(["flex flex-col sm:flex-row gap-3 mb-4", l.title ? "justify-between sm:items-center" : "justify-end sm:items-center"])
1146
+ class: z(["flex flex-col sm:flex-row gap-3 mb-4", l.title ? "justify-between sm:items-center" : "justify-end sm:items-center"])
1146
1147
  }, [
1147
- l.title ? (t(), a("h3", Ts, _(l.title), 1)) : $("", !0),
1148
- e("div", Ds, [
1148
+ l.title ? (t(), a("h3", Is, _(l.title), 1)) : C("", !0),
1149
+ e("div", zs, [
1149
1150
  e("label", null, [
1150
1151
  e("input", {
1151
1152
  type: "file",
1152
1153
  class: "hidden",
1153
1154
  onChange: s[0] || (s[0] = (n) => l.$emit("onAddImage", n))
1154
1155
  }, null, 32),
1155
- e("div", js, [
1156
- z(D(Te), { class: "h-4 w-4" }),
1157
- s[1] || (s[1] = O(" Додати зображення ", -1))
1156
+ e("div", As, [
1157
+ V(I(Ie), { class: "h-4 w-4" }),
1158
+ s[1] || (s[1] = B(" Додати зображення ", -1))
1158
1159
  ])
1159
1160
  ])
1160
1161
  ])
1161
1162
  ], 2));
1162
1163
  }
1163
- }), As = {
1164
+ }), Es = {
1164
1165
  class: "w-full mx-auto font-sans",
1165
1166
  ref: "containerRef"
1166
- }, zs = { key: 1 }, ce = /* @__PURE__ */ V({
1167
+ }, Hs = { key: 1 }, pe = /* @__PURE__ */ H({
1167
1168
  __name: "GalleryWidget",
1168
1169
  props: {
1169
1170
  title: {},
@@ -1177,95 +1178,95 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1177
1178
  style: {}
1178
1179
  },
1179
1180
  emits: ["delete", "add", "openLightbox"],
1180
- setup(c, { emit: l }) {
1181
- const s = c, n = M(s.items ?? []), o = l;
1182
- n.value.length === 0 && g();
1183
- const f = (x) => {
1184
- s.onAddImage ? s.onAddImage(x) : v(x), o("add", x);
1185
- }, r = (x) => {
1186
- const m = n.value.find(
1187
- (b) => b.file_path === x
1181
+ setup(d, { emit: l }) {
1182
+ const s = d, n = T(s.items ?? []), o = l;
1183
+ n.value.length === 0 && m();
1184
+ const h = (b) => {
1185
+ s.onAddImage ? s.onAddImage(b) : y(b), o("add", b);
1186
+ }, r = (b) => {
1187
+ const p = n.value.find(
1188
+ (v) => v.file_path === b
1188
1189
  )?.file_id;
1189
- m && (s.onDelete ? s.onDelete(m) : k(m));
1190
- }, v = async (x) => {
1191
- if (!(!x.target || !x.target.files || x.target.files.length === 0))
1190
+ p && (s.onDelete ? s.onDelete(p) : k(p));
1191
+ }, y = async (b) => {
1192
+ if (!(!b.target || !b.target.files || b.target.files.length === 0))
1192
1193
  try {
1193
1194
  await Promise.all(
1194
- Array.from(x.target.files).map(async (m) => {
1195
- const b = new FormData();
1196
- b.append("file", m);
1197
- const F = `/api/widget/file/${s.id}`, w = await fetch(F, {
1195
+ Array.from(b.target.files).map(async (p) => {
1196
+ const v = new FormData();
1197
+ v.append("file", p);
1198
+ const O = `/api/widget/file/${s.id}`, w = await fetch(O, {
1198
1199
  method: "POST",
1199
- body: b
1200
+ body: v
1200
1201
  });
1201
1202
  if (!w.ok)
1202
1203
  throw new Error(`HTTP error! status: ${w.status}`);
1203
- return m;
1204
+ return p;
1204
1205
  })
1205
- ), await g();
1206
- } catch (m) {
1207
- console.error("Помилка при завантаженні файлів:", m);
1206
+ ), await m();
1207
+ } catch (p) {
1208
+ console.error("Помилка при завантаженні файлів:", p);
1208
1209
  }
1209
1210
  };
1210
- async function g() {
1211
+ async function m() {
1211
1212
  if (!s.id)
1212
1213
  return;
1213
- const x = await fetch(`/api/widget/file/${s.id}`).then(
1214
- (m) => m.json()
1214
+ const b = await fetch(`/api/widget/file/${s.id}`).then(
1215
+ (p) => p.json()
1215
1216
  );
1216
- n.value = x.rows;
1217
+ n.value = b.rows;
1217
1218
  }
1218
- const k = async (x) => {
1219
+ const k = async (b) => {
1219
1220
  try {
1220
- await fetch(`/api/widget/file/${s.id}/${x}`, {
1221
+ await fetch(`/api/widget/file/${s.id}/${b}`, {
1221
1222
  method: "DELETE"
1222
- }), await g();
1223
- } catch (m) {
1224
- console.error(m);
1223
+ }), await m();
1224
+ } catch (p) {
1225
+ console.error(p);
1225
1226
  }
1226
1227
  };
1227
- return (x, m) => (t(), a("div", As, [
1228
- z(Is, {
1229
- title: x.title,
1230
- onOnAddImage: m[0] || (m[0] = (b) => f(b))
1228
+ return (b, p) => (t(), a("div", Es, [
1229
+ V(Vs, {
1230
+ title: b.title,
1231
+ onOnAddImage: p[0] || (p[0] = (v) => h(v))
1231
1232
  }, null, 8, ["title"]),
1232
- n.value.length > 0 ? (t(), H(Ms, {
1233
+ n.value.length > 0 ? (t(), S(js, {
1233
1234
  key: 0,
1234
1235
  items: n.value,
1235
- onDelete: m[1] || (m[1] = (b) => r(b))
1236
- }, null, 8, ["items"])) : (t(), a("div", zs, m[2] || (m[2] = [
1236
+ onDelete: p[1] || (p[1] = (v) => r(v))
1237
+ }, null, 8, ["items"])) : (t(), a("div", Hs, p[2] || (p[2] = [
1237
1238
  e("div", { class: "flex items-center justify-center h-full" }, [
1238
1239
  e("p", { class: "text-gray-500 leading-[3]" }, "Зображень не знайдено")
1239
1240
  ], -1)
1240
1241
  ])))
1241
1242
  ], 512));
1242
1243
  }
1243
- }), Vs = { class: "text-value" }, Es = { class: "text-sm text-gray-900" }, Hs = /* @__PURE__ */ V({
1244
+ }), Ss = { class: "text-value" }, Fs = { class: "text-sm text-gray-900" }, Os = /* @__PURE__ */ H({
1244
1245
  __name: "TextValue",
1245
1246
  props: {
1246
1247
  item: {}
1247
1248
  },
1248
- setup(c) {
1249
- const l = c, s = N(() => {
1249
+ setup(d) {
1250
+ const l = d, s = P(() => {
1250
1251
  const n = l.item.value;
1251
1252
  return typeof n == "boolean" ? n ? "Так" : "Ні" : n == null ? "—" : String(n);
1252
1253
  });
1253
- return (n, o) => (t(), a("div", Vs, [
1254
- e("span", Es, _(s.value), 1)
1254
+ return (n, o) => (t(), a("div", Ss, [
1255
+ e("span", Fs, _(s.value), 1)
1255
1256
  ]));
1256
1257
  }
1257
- }), G = (c, l) => {
1258
- const s = c.__vccOpts || c;
1258
+ }), G = (d, l) => {
1259
+ const s = d.__vccOpts || d;
1259
1260
  for (const [n, o] of l)
1260
1261
  s[n] = o;
1261
1262
  return s;
1262
- }, Ss = /* @__PURE__ */ G(Hs, [["__scopeId", "data-v-c14550b7"]]), Fs = { class: "link-value" }, Os = ["href"], Ns = /* @__PURE__ */ V({
1263
+ }, Bs = /* @__PURE__ */ G(Os, [["__scopeId", "data-v-c14550b7"]]), Ps = { class: "link-value" }, Ns = ["href"], Ws = /* @__PURE__ */ H({
1263
1264
  __name: "LinkValue",
1264
1265
  props: {
1265
1266
  item: {}
1266
1267
  },
1267
- setup(c) {
1268
- const l = c, s = N(() => {
1268
+ setup(d) {
1269
+ const l = d, s = P(() => {
1269
1270
  const n = String(l.item.value);
1270
1271
  try {
1271
1272
  const o = new URL(n);
@@ -1274,25 +1275,25 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1274
1275
  return n;
1275
1276
  }
1276
1277
  });
1277
- return (n, o) => (t(), a("div", Fs, [
1278
+ return (n, o) => (t(), a("div", Ps, [
1278
1279
  e("a", {
1279
1280
  href: String(n.item.value),
1280
1281
  target: "_blank",
1281
1282
  rel: "noopener noreferrer",
1282
1283
  class: "text-blue-600 hover:text-blue-800 underline text-sm"
1283
1284
  }, [
1284
- O(_(s.value) + " ", 1),
1285
+ B(_(s.value) + " ", 1),
1285
1286
  o[0] || (o[0] = e("i", { class: "fas fa-external-link-alt ml-1 text-xs" }, null, -1))
1286
- ], 8, Os)
1287
+ ], 8, Ns)
1287
1288
  ]));
1288
1289
  }
1289
- }), Ps = /* @__PURE__ */ G(Ns, [["__scopeId", "data-v-e6eb07a6"]]), Bs = { class: "date-value" }, Ws = { class: "text-sm text-gray-900" }, Rs = /* @__PURE__ */ V({
1290
+ }), Rs = /* @__PURE__ */ G(Ws, [["__scopeId", "data-v-e6eb07a6"]]), Us = { class: "date-value" }, Gs = { class: "text-sm text-gray-900" }, qs = /* @__PURE__ */ H({
1290
1291
  __name: "DateValue",
1291
1292
  props: {
1292
1293
  item: {}
1293
1294
  },
1294
- setup(c) {
1295
- const l = c, s = N(() => {
1295
+ setup(d) {
1296
+ const l = d, s = P(() => {
1296
1297
  const n = l.item.value;
1297
1298
  if (n instanceof Date)
1298
1299
  return n.toLocaleDateString("uk-UA", {
@@ -1315,20 +1316,20 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1315
1316
  }
1316
1317
  return String(n);
1317
1318
  });
1318
- return (n, o) => (t(), a("div", Bs, [
1319
- e("span", Ws, _(s.value), 1)
1319
+ return (n, o) => (t(), a("div", Us, [
1320
+ e("span", Gs, _(s.value), 1)
1320
1321
  ]));
1321
1322
  }
1322
- }), Us = /* @__PURE__ */ G(Rs, [["__scopeId", "data-v-b9600618"]]), Gs = { class: "status-value" }, qs = {
1323
+ }), Zs = /* @__PURE__ */ G(qs, [["__scopeId", "data-v-b9600618"]]), Ks = { class: "status-value" }, Js = {
1323
1324
  key: 0,
1324
1325
  class: "mr-1"
1325
- }, Ks = /* @__PURE__ */ V({
1326
+ }, Xs = /* @__PURE__ */ H({
1326
1327
  __name: "StatusValue",
1327
1328
  props: {
1328
1329
  item: {}
1329
1330
  },
1330
- setup(c) {
1331
- const l = c, s = N(() => {
1331
+ setup(d) {
1332
+ const l = d, s = P(() => {
1332
1333
  switch (String(l.item.value).toLowerCase()) {
1333
1334
  case "active":
1334
1335
  case "активний":
@@ -1351,7 +1352,7 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1351
1352
  default:
1352
1353
  return "bg-blue-100 text-blue-800";
1353
1354
  }
1354
- }), n = N(() => {
1355
+ }), n = P(() => {
1355
1356
  switch (String(l.item.value).toLowerCase()) {
1356
1357
  case "active":
1357
1358
  case "активний":
@@ -1375,50 +1376,50 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1375
1376
  return "fas fa-info-circle";
1376
1377
  }
1377
1378
  });
1378
- return (o, f) => (t(), a("div", Gs, [
1379
+ return (o, h) => (t(), a("div", Ks, [
1379
1380
  e("span", {
1380
- class: I(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium", s.value])
1381
+ class: z(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium", s.value])
1381
1382
  }, [
1382
- n.value ? (t(), a("span", qs, [
1383
+ n.value ? (t(), a("span", Js, [
1383
1384
  e("i", {
1384
- class: I(n.value)
1385
+ class: z(n.value)
1385
1386
  }, null, 2)
1386
- ])) : $("", !0),
1387
- O(" " + _(String(o.item.value)), 1)
1387
+ ])) : C("", !0),
1388
+ B(" " + _(String(o.item.value)), 1)
1388
1389
  ], 2)
1389
1390
  ]));
1390
1391
  }
1391
- }), Zs = /* @__PURE__ */ G(Ks, [["__scopeId", "data-v-c72e0b01"]]), Js = { class: "custom-value" }, Xs = { class: "text-sm text-gray-900" }, Qs = /* @__PURE__ */ V({
1392
+ }), Qs = /* @__PURE__ */ G(Xs, [["__scopeId", "data-v-c72e0b01"]]), Ys = { class: "custom-value" }, en = { class: "text-sm text-gray-900" }, tn = /* @__PURE__ */ H({
1392
1393
  __name: "CustomValue",
1393
1394
  props: {
1394
1395
  item: {}
1395
1396
  },
1396
- setup(c) {
1397
- return (l, s) => (t(), a("div", Js, [
1398
- W(l.$slots, "default", {
1397
+ setup(d) {
1398
+ return (l, s) => (t(), a("div", Ys, [
1399
+ R(l.$slots, "default", {
1399
1400
  item: l.item,
1400
1401
  value: l.item.value
1401
1402
  }, () => [
1402
- e("span", Xs, _(String(l.item.value)), 1)
1403
+ e("span", en, _(String(l.item.value)), 1)
1403
1404
  ], !0)
1404
1405
  ]));
1405
1406
  }
1406
- }), Ys = /* @__PURE__ */ G(Qs, [["__scopeId", "data-v-11a73810"]]), en = ["id"], tn = {
1407
+ }), sn = /* @__PURE__ */ G(tn, [["__scopeId", "data-v-11a73810"]]), nn = ["id"], on = {
1407
1408
  key: 0,
1408
1409
  class: "text-xl font-semibold text-gray-900 mb-4"
1409
- }, sn = {
1410
+ }, an = {
1410
1411
  key: 1,
1411
1412
  class: "overflow-x-auto"
1412
- }, nn = { class: "min-w-full divide-y divide-gray-200" }, on = { class: "bg-white divide-y divide-gray-200" }, an = { class: "px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900" }, ln = { class: "flex items-center gap-2" }, rn = ["title"], dn = { class: "px-6 py-4 whitespace-nowrap text-sm text-gray-500" }, cn = {
1413
+ }, ln = { class: "min-w-full divide-y divide-gray-200" }, rn = { class: "bg-white divide-y divide-gray-200" }, dn = { class: "px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900" }, cn = { class: "flex items-center gap-2" }, un = ["title"], pn = { class: "px-6 py-4 whitespace-nowrap text-sm text-gray-500" }, mn = {
1413
1414
  key: 2,
1414
1415
  class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"
1415
- }, un = { class: "flex items-start gap-3" }, pn = {
1416
+ }, gn = { class: "flex items-start gap-3" }, hn = {
1416
1417
  key: 0,
1417
1418
  class: "flex-shrink-0"
1418
- }, mn = { class: "flex-1 min-w-0" }, gn = { class: "flex items-center gap-2 mb-2" }, hn = { class: "text-sm font-medium text-gray-900" }, fn = ["title"], yn = {
1419
+ }, fn = { class: "flex-1 min-w-0" }, yn = { class: "flex items-center gap-2 mb-2" }, vn = { class: "text-sm font-medium text-gray-900" }, bn = ["title"], xn = {
1419
1420
  key: 3,
1420
1421
  class: "overflow-x-auto"
1421
- }, vn = { class: "min-w-full divide-y divide-gray-200" }, bn = { class: "bg-white divide-y divide-gray-200" }, xn = { class: "px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900" }, kn = { class: "flex items-center gap-2" }, _n = ["title"], wn = { class: "px-6 py-4 whitespace-nowrap text-sm text-gray-500" }, $n = /* @__PURE__ */ V({
1422
+ }, kn = { class: "min-w-full divide-y divide-gray-200" }, _n = { class: "bg-white divide-y divide-gray-200" }, wn = { class: "px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900" }, $n = { class: "flex items-center gap-2" }, Cn = ["title"], Mn = { class: "px-6 py-4 whitespace-nowrap text-sm text-gray-500" }, Ln = /* @__PURE__ */ H({
1422
1423
  __name: "DescriptionListWidget",
1423
1424
  props: {
1424
1425
  title: {},
@@ -1428,113 +1429,113 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1428
1429
  className: {},
1429
1430
  style: {}
1430
1431
  },
1431
- setup(c) {
1432
+ setup(d) {
1432
1433
  const l = (s) => {
1433
1434
  switch (s.type) {
1434
1435
  case "link":
1435
- return Ps;
1436
+ return Rs;
1436
1437
  case "date":
1437
- return Us;
1438
- case "status":
1439
1438
  return Zs;
1439
+ case "status":
1440
+ return Qs;
1440
1441
  case "custom":
1441
- return Ys;
1442
+ return sn;
1442
1443
  default:
1443
- return Ss;
1444
+ return Bs;
1444
1445
  }
1445
1446
  };
1446
1447
  return (s, n) => (t(), a("div", {
1447
- class: I(["description-list-widget", s.className]),
1448
+ class: z(["description-list-widget", s.className]),
1448
1449
  id: s.id,
1449
- style: J(s.style)
1450
+ style: Q(s.style)
1450
1451
  }, [
1451
- s.title ? (t(), a("h3", tn, _(s.title), 1)) : $("", !0),
1452
- s.view === "table" ? (t(), a("div", sn, [
1453
- e("table", nn, [
1454
- e("tbody", on, [
1455
- (t(!0), a(T, null, j(s.items, (o) => (t(), a("tr", {
1452
+ s.title ? (t(), a("h3", on, _(s.title), 1)) : C("", !0),
1453
+ s.view === "table" ? (t(), a("div", an, [
1454
+ e("table", ln, [
1455
+ e("tbody", rn, [
1456
+ (t(!0), a(j, null, A(s.items, (o) => (t(), a("tr", {
1456
1457
  key: o.id || o.label
1457
1458
  }, [
1458
- e("td", an, [
1459
- e("div", ln, [
1459
+ e("td", dn, [
1460
+ e("div", cn, [
1460
1461
  o.icon ? (t(), a("i", {
1461
1462
  key: 0,
1462
- class: I([o.icon, "text-gray-500"])
1463
- }, null, 2)) : $("", !0),
1464
- O(" " + _(o.label) + " ", 1),
1463
+ class: z([o.icon, "text-gray-500"])
1464
+ }, null, 2)) : C("", !0),
1465
+ B(" " + _(o.label) + " ", 1),
1465
1466
  o.tooltip ? (t(), a("span", {
1466
1467
  key: 1,
1467
1468
  class: "text-gray-400 cursor-help",
1468
1469
  title: o.tooltip
1469
1470
  }, n[0] || (n[0] = [
1470
1471
  e("i", { class: "fas fa-info-circle text-xs" }, null, -1)
1471
- ]), 8, rn)) : $("", !0)
1472
+ ]), 8, un)) : C("", !0)
1472
1473
  ])
1473
1474
  ]),
1474
- e("td", dn, [
1475
- (t(), H(B(l(o)), { item: o }, null, 8, ["item"]))
1475
+ e("td", pn, [
1476
+ (t(), S(W(l(o)), { item: o }, null, 8, ["item"]))
1476
1477
  ])
1477
1478
  ]))), 128))
1478
1479
  ])
1479
1480
  ])
1480
- ])) : s.view === "grid" ? (t(), a("div", cn, [
1481
- (t(!0), a(T, null, j(s.items, (o) => (t(), a("div", {
1481
+ ])) : s.view === "grid" ? (t(), a("div", mn, [
1482
+ (t(!0), a(j, null, A(s.items, (o) => (t(), a("div", {
1482
1483
  key: o.id || o.label,
1483
1484
  class: "description-item-card bg-white border border-gray-200 rounded-lg p-4"
1484
1485
  }, [
1485
- e("div", un, [
1486
- o.icon ? (t(), a("div", pn, [
1486
+ e("div", gn, [
1487
+ o.icon ? (t(), a("div", hn, [
1487
1488
  e("i", {
1488
- class: I([o.icon, "text-gray-500 text-lg"])
1489
+ class: z([o.icon, "text-gray-500 text-lg"])
1489
1490
  }, null, 2)
1490
- ])) : $("", !0),
1491
- e("div", mn, [
1492
- e("div", gn, [
1493
- e("h4", hn, _(o.label), 1),
1491
+ ])) : C("", !0),
1492
+ e("div", fn, [
1493
+ e("div", yn, [
1494
+ e("h4", vn, _(o.label), 1),
1494
1495
  o.tooltip ? (t(), a("span", {
1495
1496
  key: 0,
1496
1497
  class: "text-gray-400 cursor-help",
1497
1498
  title: o.tooltip
1498
1499
  }, n[1] || (n[1] = [
1499
1500
  e("i", { class: "fas fa-info-circle text-xs" }, null, -1)
1500
- ]), 8, fn)) : $("", !0)
1501
+ ]), 8, bn)) : C("", !0)
1501
1502
  ]),
1502
- (t(), H(B(l(o)), { item: o }, null, 8, ["item"]))
1503
+ (t(), S(W(l(o)), { item: o }, null, 8, ["item"]))
1503
1504
  ])
1504
1505
  ])
1505
1506
  ]))), 128))
1506
- ])) : (t(), a("div", yn, [
1507
- e("table", vn, [
1508
- e("tbody", bn, [
1509
- (t(!0), a(T, null, j(s.items, (o) => (t(), a("tr", {
1507
+ ])) : (t(), a("div", xn, [
1508
+ e("table", kn, [
1509
+ e("tbody", _n, [
1510
+ (t(!0), a(j, null, A(s.items, (o) => (t(), a("tr", {
1510
1511
  key: o.id || o.label
1511
1512
  }, [
1512
- e("td", xn, [
1513
- e("div", kn, [
1513
+ e("td", wn, [
1514
+ e("div", $n, [
1514
1515
  o.icon ? (t(), a("i", {
1515
1516
  key: 0,
1516
- class: I([o.icon, "text-gray-500"])
1517
- }, null, 2)) : $("", !0),
1518
- O(" " + _(o.label) + " ", 1),
1517
+ class: z([o.icon, "text-gray-500"])
1518
+ }, null, 2)) : C("", !0),
1519
+ B(" " + _(o.label) + " ", 1),
1519
1520
  o.tooltip ? (t(), a("span", {
1520
1521
  key: 1,
1521
1522
  class: "text-gray-400 cursor-help",
1522
1523
  title: o.tooltip
1523
1524
  }, n[2] || (n[2] = [
1524
1525
  e("i", { class: "fas fa-info-circle text-xs" }, null, -1)
1525
- ]), 8, _n)) : $("", !0)
1526
+ ]), 8, Cn)) : C("", !0)
1526
1527
  ])
1527
1528
  ]),
1528
- e("td", wn, [
1529
- (t(), H(B(l(o)), { item: o }, null, 8, ["item"]))
1529
+ e("td", Mn, [
1530
+ (t(), S(W(l(o)), { item: o }, null, 8, ["item"]))
1530
1531
  ])
1531
1532
  ]))), 128))
1532
1533
  ])
1533
1534
  ])
1534
1535
  ]))
1535
- ], 14, en));
1536
+ ], 14, nn));
1536
1537
  }
1537
- }), ze = /* @__PURE__ */ G($n, [["__scopeId", "data-v-36d43e50"]]), Cn = {
1538
+ }), He = /* @__PURE__ */ G(Ln, [["__scopeId", "data-v-36d43e50"]]), Tn = {
1538
1539
  draw: {
1539
1540
  toolbar: {
1540
1541
  actions: {
@@ -1642,24 +1643,24 @@ const Xt = { class: "space-y-0.5" }, Qt = ["onClick"], Yt = ["onClick"], es = {
1642
1643
  }
1643
1644
  }
1644
1645
  };
1645
- function Ln(c) {
1646
- return c ? c.type === "FeatureCollection" || c.type === "Feature" ? c : c.geom ? {
1646
+ function Dn(d) {
1647
+ return d ? d.type === "FeatureCollection" || d.type === "Feature" ? d : d.geom ? {
1647
1648
  type: "Feature",
1648
1649
  geometry: {
1649
- type: c.geom.type,
1650
- coordinates: c.geom.coordinates
1650
+ type: d.geom.type,
1651
+ coordinates: d.geom.coordinates
1651
1652
  },
1652
1653
  properties: {}
1653
- } : c.type && c.coordinates ? {
1654
+ } : d.type && d.coordinates ? {
1654
1655
  type: "Feature",
1655
- geometry: c,
1656
+ geometry: d,
1656
1657
  properties: {}
1657
1658
  } : null : null;
1658
1659
  }
1659
- const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1660
+ const jn = {
1660
1661
  key: 1,
1661
1662
  class: "bg-white absolute top-[10px] right-[10px] z-[500] border rounded-lg cursor-pointer"
1662
- }, Dn = { class: "flex items-center justify-between p-2 border-b" }, jn = { class: "p-2 border-b" }, In = { class: "flex items-center" }, An = ["value"], zn = { class: "ml-2" }, Vn = { class: "p-2" }, En = { class: "flex items-center" }, Hn = { class: "flex items-center" }, Sn = ["onUpdate:modelValue", "onChange"], Fn = { class: "ml-2" }, ue = /* @__PURE__ */ V({
1663
+ }, In = { class: "flex items-center justify-between p-2 border-b" }, zn = { class: "p-2 border-b" }, An = { class: "flex items-center" }, Vn = ["value"], En = { class: "ml-2" }, Hn = { class: "p-2" }, Sn = { class: "flex items-center" }, Fn = { class: "flex items-center" }, On = ["onUpdate:modelValue", "onChange"], Bn = { class: "ml-2" }, Pn = /* @__PURE__ */ H({
1663
1664
  __name: "MapWidget",
1664
1665
  props: {
1665
1666
  pattern: {},
@@ -1667,64 +1668,70 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1667
1668
  id: {},
1668
1669
  tms: {}
1669
1670
  },
1670
- setup(c) {
1671
- const l = Le(), s = c, n = M(null);
1672
- let o, f;
1673
- const r = h(), v = M(Object.keys(r)[0]);
1674
- let g;
1675
- const k = M(!0), x = M(!1), m = M(b());
1676
- function b() {
1677
- return s.tms ? (Array.isArray(s.tms) ? s.tms : s.tms?.split(",")).map((d, A) => ({ url: s.pattern ? s.pattern.replace("{{id}}", d) : d, name: "Шар " + A, visible: !0, i: A })) : [];
1671
+ setup(d) {
1672
+ const l = Te(), s = d, n = T(null);
1673
+ let o, h;
1674
+ const r = f(), y = T(Object.keys(r)[0]);
1675
+ let m;
1676
+ const k = T(!0), b = T(!1), p = T(!1), v = T(O());
1677
+ function O() {
1678
+ return s.tms ? (Array.isArray(s.tms) ? s.tms : s.tms?.split(",")).map((x, D) => ({ url: s.pattern ? s.pattern.replace("{{id}}", x) : x, name: "Шар " + D, visible: !0, i: D })) : [];
1678
1679
  }
1679
- function F() {
1680
- return new Promise((y, d) => {
1681
- if (window.L && window.L.Draw) return y(0);
1682
- const A = (E) => {
1683
- if (Array.from(document.styleSheets).some((X) => X?.href?.includes(E))) return;
1684
- const q = document.createElement("link");
1685
- q.rel = "stylesheet", q.href = E, document.head.appendChild(q);
1686
- }, P = (E) => new Promise((oe, q) => {
1687
- const X = Array.from(document.scripts).find((Y) => Y.src === E);
1688
- if (X) {
1689
- X.addEventListener("load", () => oe()), X.addEventListener("error", (Y) => q(Y));
1680
+ function w() {
1681
+ return new Promise((E, x) => {
1682
+ if (window.L && window.L.Draw) return E(0);
1683
+ const D = (q) => {
1684
+ if (Array.from(document.styleSheets).some((Y) => Y?.href?.includes(q))) return;
1685
+ const K = document.createElement("link");
1686
+ K.rel = "stylesheet", K.href = q, document.head.appendChild(K);
1687
+ }, N = (q) => new Promise((le, K) => {
1688
+ const Y = Array.from(document.scripts).find((te) => te.src === q);
1689
+ if (Y) {
1690
+ Y.addEventListener("load", () => le()), Y.addEventListener("error", (te) => K(te));
1690
1691
  return;
1691
1692
  }
1692
- const Q = document.createElement("script");
1693
- Q.src = E, Q.async = !0, Q.onload = () => oe(), Q.onerror = (Y) => q(Y), document.body.appendChild(Q);
1693
+ const ee = document.createElement("script");
1694
+ ee.src = q, ee.async = !0, ee.onload = () => le(), ee.onerror = (te) => K(te), document.body.appendChild(ee);
1694
1695
  });
1695
- A("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"), A("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.css"), P("https://unpkg.com/leaflet@1.9.4/dist/leaflet.js").then(() => P("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.js")).then(() => y(0)).catch(d);
1696
+ D("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"), D("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.css"), N("https://unpkg.com/leaflet@1.9.4/dist/leaflet.js").then(() => N("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.js")).then(() => E(0)).catch(x);
1696
1697
  });
1697
1698
  }
1698
- let w = !1;
1699
- ee(async () => {
1700
- await F(), L.drawLocal = Cn;
1701
- const y = l?.appContext.config.globalProperties.$settings?.center || [50, 30];
1702
- o = L.map(n.value, { zoomControl: !1 }).setView(y, 10), o.on("mousemove", (A) => {
1703
- w || (o.invalidateSize(), w = !0);
1704
- }), L.control.zoom({ position: "bottomright" }).addTo(o), g = L.tileLayer(r[v.value].url, { maxZoom: 19 }).addTo(o), v.value = "topo100", f = new L.FeatureGroup().addTo(o), m.value.length && u(0);
1705
- const d = Ln(s.geom);
1706
- if (d) {
1707
- const A = [];
1708
- L.geoJSON(d).eachLayer((P) => A.push(P)), A.length && f.addLayer(A[0]), f.toGeoJSON();
1699
+ let M = !1;
1700
+ se(async () => {
1701
+ await w(), L.drawLocal = Tn;
1702
+ const E = l?.appContext.config.globalProperties.$settings?.center || [50, 30];
1703
+ o = L.map(n.value, { zoomControl: !1 }).setView(E, 10), o.on("mousemove", (D) => {
1704
+ M || (o.invalidateSize(), M = !0);
1705
+ }), L.control.zoom({ position: "bottomright" }).addTo(o), m = L.tileLayer(r[y.value].url, { maxZoom: 19 }).addTo(o), h = new L.FeatureGroup().addTo(o), v.value.length && $(0);
1706
+ const x = Dn(s.geom);
1707
+ if (x) {
1708
+ const D = [];
1709
+ L.geoJSON(x).eachLayer((N) => D.push(N)), D.length && h.addLayer(D[0]), h.toGeoJSON(), i();
1709
1710
  }
1710
1711
  });
1711
- function C(y) {
1712
- g && g.removeFrom(o);
1713
- const d = r[y];
1714
- g = L.tileLayer(d.url, d.options || {}).addTo(o), v.value = y;
1712
+ function i(E = 30) {
1713
+ const x = h.getLayers();
1714
+ if (!x.length) return;
1715
+ const N = L.featureGroup(x).getBounds();
1716
+ N && N.isValid() && o.fitBounds(N, { padding: [E, E], maxZoom: 16 });
1715
1717
  }
1716
- function i() {
1717
- C(v.value);
1718
+ function u(E) {
1719
+ m && m.removeFrom(o);
1720
+ const x = r[E];
1721
+ m = L.tileLayer(x.url, x.options || {}).addTo(o), m.bringToBack(), y.value = E;
1718
1722
  }
1719
- function p() {
1720
- f && (k.value ? f.addTo(o) : f.removeFrom(o));
1723
+ function c() {
1724
+ u(y.value);
1721
1725
  }
1722
- function u(y) {
1723
- const d = m.value[y];
1724
- d.layer || (d.layer = L.tileLayer(d.url, { maxZoom: 19 })), d.visible ? d.layer.addTo(o) : d.layer.removeFrom(o);
1726
+ function g() {
1727
+ h && (k.value ? h.addTo(o) : h.removeFrom(o));
1725
1728
  }
1726
- function h() {
1727
- return l?.appContext.config.globalProperties.$settings?.basemaps ? l?.appContext.config.globalProperties.$settings?.basemaps.map((y, d) => Object.assign(y, { key: `b${d}`, preview: y.preview || y.url.replace("{z}/{x}/{y}.png", "13/4790/2762.png") })).reduce((y, d) => ({ ...y, [d.key]: d }), {}) : {
1729
+ function $(E) {
1730
+ const x = v.value[E];
1731
+ x.layer || (x.layer = L.tileLayer(x.url, { maxZoom: 19 })), x.visible ? x.layer.addTo(o) : x.layer.removeFrom(o);
1732
+ }
1733
+ function f() {
1734
+ return l?.appContext.config.globalProperties.$settings?.basemaps ? l?.appContext.config.globalProperties.$settings?.basemaps.map((E, x) => Object.assign(E, { key: `b${x}`, preview: E.preview || E.url.replace("{z}/{x}/{y}.png", "13/4790/2762.png") })).reduce((E, x) => ({ ...E, [x.key]: x }), {}) : {
1728
1735
  topo100: {
1729
1736
  url: "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
1730
1737
  preview: "https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"
@@ -1739,22 +1746,28 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1739
1746
  }
1740
1747
  };
1741
1748
  }
1742
- return (y, d) => (t(), a("div", Mn, [
1749
+ return De(b, () => {
1750
+ setTimeout(() => {
1751
+ o.invalidateSize();
1752
+ }, 50);
1753
+ }), (E, x) => (t(), a("div", {
1754
+ class: z(["relative min-h-[300px] h-full", b.value ? "fullscreen" : "pb-[3.25rem]"])
1755
+ }, [
1743
1756
  e("div", {
1744
1757
  ref_key: "mapContainer",
1745
1758
  ref: n,
1746
1759
  class: "w-full h-full min-h-[300px]"
1747
1760
  }, null, 512),
1748
- x.value ? $("", !0) : (t(), a("div", {
1761
+ p.value ? C("", !0) : (t(), a("div", {
1749
1762
  key: 0,
1750
- onClick: d[0] || (d[0] = (A) => x.value = !0),
1763
+ onClick: x[0] || (x[0] = (D) => p.value = !0),
1751
1764
  class: "z-[500] bg-white absolute top-[10px] right-[10px] p-2 border rounded-lg cursor-pointer"
1752
1765
  }, " Шари ")),
1753
- x.value ? (t(), a("div", Tn, [
1754
- e("div", Dn, [
1755
- d[5] || (d[5] = e("div", null, "Шари", -1)),
1766
+ p.value ? (t(), a("div", jn, [
1767
+ e("div", In, [
1768
+ x[6] || (x[6] = e("div", null, "Шари", -1)),
1756
1769
  (t(), a("svg", {
1757
- onClick: d[1] || (d[1] = (A) => x.value = !1),
1770
+ onClick: x[1] || (x[1] = (D) => p.value = !1),
1758
1771
  xmlns: "http://www.w3.org/2000/svg",
1759
1772
  viewBox: "0 0 24 24",
1760
1773
  fill: "none",
@@ -1763,7 +1776,7 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1763
1776
  "stroke-linecap": "round",
1764
1777
  "stroke-linejoin": "round",
1765
1778
  class: "icon icon-tabler icons-tabler-outline icon-tabler-x w-4 h-4"
1766
- }, d[4] || (d[4] = [
1779
+ }, x[5] || (x[5] = [
1767
1780
  e("path", {
1768
1781
  stroke: "none",
1769
1782
  d: "M0 0h24v24H0z",
@@ -1773,51 +1786,70 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1773
1786
  e("path", { d: "M6 6l12 12" }, null, -1)
1774
1787
  ])))
1775
1788
  ]),
1776
- e("div", jn, [
1777
- (t(!0), a(T, null, j(D(r), (A, P) => (t(), a("div", null, [
1778
- e("label", In, [
1779
- R(e("input", {
1789
+ e("div", zn, [
1790
+ (t(!0), a(j, null, A(I(r), (D, N) => (t(), a("div", null, [
1791
+ e("label", An, [
1792
+ U(e("input", {
1780
1793
  type: "radio",
1781
1794
  name: "base-layer",
1782
- value: P,
1783
- "onUpdate:modelValue": d[2] || (d[2] = (E) => v.value = E),
1784
- onChange: i
1785
- }, null, 40, An), [
1786
- [He, v.value]
1795
+ value: N,
1796
+ "onUpdate:modelValue": x[2] || (x[2] = (q) => y.value = q),
1797
+ onChange: c
1798
+ }, null, 40, Vn), [
1799
+ [Oe, y.value]
1787
1800
  ]),
1788
- e("span", zn, _(A.name || P), 1)
1801
+ e("span", En, _(D.name || N), 1)
1789
1802
  ])
1790
1803
  ]))), 256))
1791
1804
  ]),
1792
- e("div", Vn, [
1793
- e("label", En, [
1794
- R(e("input", {
1805
+ e("div", Hn, [
1806
+ e("label", Sn, [
1807
+ U(e("input", {
1795
1808
  type: "checkbox",
1796
- "onUpdate:modelValue": d[3] || (d[3] = (A) => k.value = A),
1797
- onChange: p
1809
+ "onUpdate:modelValue": x[3] || (x[3] = (D) => k.value = D),
1810
+ onChange: g
1798
1811
  }, null, 544), [
1799
- [be, k.value]
1812
+ [ke, k.value]
1800
1813
  ]),
1801
- d[6] || (d[6] = e("span", { class: "ml-2" }, " Геометрія/Межі ", -1))
1814
+ x[7] || (x[7] = e("span", { class: "ml-2" }, " Геометрія/Межі ", -1))
1802
1815
  ]),
1803
- s.tms ? (t(!0), a(T, { key: 0 }, j(m.value, (A) => (t(), a("label", Hn, [
1804
- R(e("input", {
1816
+ s.tms ? (t(!0), a(j, { key: 0 }, A(v.value, (D) => (t(), a("label", Fn, [
1817
+ U(e("input", {
1805
1818
  type: "checkbox",
1806
- "onUpdate:modelValue": (P) => A.visible = P,
1807
- onChange: (P) => u(A.i)
1808
- }, null, 40, Sn), [
1809
- [be, A.visible]
1819
+ "onUpdate:modelValue": (N) => D.visible = N,
1820
+ onChange: (N) => $(D.i)
1821
+ }, null, 40, On), [
1822
+ [ke, D.visible]
1810
1823
  ]),
1811
- e("span", Fn, _(A.name), 1)
1812
- ]))), 256)) : $("", !0)
1824
+ e("span", Bn, _(D.name), 1)
1825
+ ]))), 256)) : C("", !0)
1813
1826
  ])
1814
- ])) : $("", !0)
1815
- ]));
1827
+ ])) : C("", !0),
1828
+ e("div", {
1829
+ class: z(["absolute z-[500] bg-white p-2 border rounded-lg cursor-pointer", b.value ? "bottom-[100px] right-[7px]" : "bottom-[150px] right-[7px]"]),
1830
+ onClick: x[4] || (x[4] = (D) => b.value = !b.value)
1831
+ }, x[8] || (x[8] = [
1832
+ e("svg", {
1833
+ xmlns: "http://www.w3.org/2000/svg",
1834
+ fill: "none",
1835
+ viewBox: "0 0 24 24",
1836
+ "stroke-width": "2",
1837
+ stroke: "currentColor",
1838
+ class: "w-5 h-5"
1839
+ }, [
1840
+ e("path", {
1841
+ "stroke-linecap": "round",
1842
+ "stroke-linejoin": "round",
1843
+ d: "M4 8V4h4M20 8V4h-4M4 16v4h4m12-4v4h-4"
1844
+ })
1845
+ ], -1)
1846
+ ]), 2)
1847
+ ], 2));
1816
1848
  }
1817
- }), On = { class: "flex justify-between items-center mb-[15px]" }, Nn = { class: "font-semibold text-[16px]" }, Pn = { class: "overflow-x-auto" }, Bn = { class: "min-w-full relative divide-y-2 divide-gray-200 bg-white min-w-full overflow-auto divide-y-2 divide-gray-200 bg-white text-[12px] text-gray-600" }, Wn = { class: "text-left font-medium text-gray-700" }, Rn = { class: "py-2 min-w-[200px]" }, Un = {
1849
+ }), me = /* @__PURE__ */ G(Pn, [["__scopeId", "data-v-e3aa0e7d"]]), Nn = { class: "flex justify-between items-center mb-[15px]" }, Wn = { class: "font-semibold text-[16px]" }, Rn = { class: "overflow-x-auto" }, Un = { class: "min-w-full relative divide-y-2 divide-gray-200 bg-white min-w-full overflow-auto divide-y-2 divide-gray-200 bg-white text-[12px] text-gray-600" }, Gn = { class: "text-left font-medium text-gray-700" }, qn = { class: "py-2 min-w-[200px]" }, Zn = {
1818
1850
  key: 0,
1819
1851
  class: "py-2 min-w-[200px]"
1820
- }, Gn = { class: "divide-y divide-gray-200" }, qn = { class: "bg-white odd:bg-gray-50" }, Kn = { class: "py-2 pr-5" }, Zn = ["href"], Jn = { class: "py-2 pr-5 gap-2 inline-flex" }, Xn = ["onClick"], Qn = ["onClick"], Yn = /* @__PURE__ */ V({
1852
+ }, Kn = { class: "divide-y divide-gray-200" }, Jn = { class: "bg-white odd:bg-gray-50" }, Xn = { class: "py-2 pr-5" }, Qn = ["href"], Yn = { class: "py-2 pr-5 gap-2 inline-flex" }, eo = ["onClick"], to = ["onClick"], so = /* @__PURE__ */ H({
1821
1853
  __name: "TableWidget",
1822
1854
  props: {
1823
1855
  name: {},
@@ -1834,75 +1866,75 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1834
1866
  props: {},
1835
1867
  items: {}
1836
1868
  },
1837
- setup(c) {
1838
- const l = Le(), s = M([]), n = M([]), o = c, f = M([]), r = M(""), v = M("");
1839
- async function g() {
1840
- const i = await fetch("/api/data/" + o.token).then((p) => p.json());
1841
- s.value = i.rows, n.value = i.columns, f.value = i.actions, r.value = i.form, v.value = i.addToken;
1869
+ setup(d) {
1870
+ const l = Te(), s = T([]), n = T([]), o = d, h = T([]), r = T(""), y = T("");
1871
+ async function m() {
1872
+ const i = await fetch("/api/data/" + o.token).then((u) => u.json());
1873
+ s.value = i.rows, n.value = i.columns, h.value = i.actions, r.value = i.form, y.value = i.addToken;
1842
1874
  }
1843
- const { $notify: k = console.log, $confirm: x, $form: m } = l?.appContext?.config?.globalProperties || {};
1844
- async function b(i) {
1845
- await m({ token: i.token }), g();
1875
+ const { $notify: k = console.log, $confirm: b, $form: p } = l?.appContext?.config?.globalProperties || {};
1876
+ async function v(i) {
1877
+ await p({ token: i.token }), m();
1846
1878
  }
1847
- function F() {
1848
- m({ token: v.value });
1879
+ function O() {
1880
+ p({ token: y.value });
1849
1881
  }
1850
1882
  function w(i) {
1851
- x({
1883
+ b({
1852
1884
  title: "Підтвердіть дію",
1853
1885
  type: "error",
1854
1886
  message: "Ви впевненні що бажаєте видалити даний рядок?",
1855
1887
  onConfirm: async () => {
1856
- const p = await fetch(`/api/table/${i.token}`, { method: "DELETE" });
1857
- if (!p.ok) {
1858
- const { error: u, code: h } = await p.json();
1859
- k({ title: "Помилка", type: "warning", message: u });
1888
+ const u = await fetch(`/api/table/${i.token}`, { method: "DELETE" });
1889
+ if (!u.ok) {
1890
+ const { error: c, code: g } = await u.json();
1891
+ k({ title: "Помилка", type: "warning", message: c });
1860
1892
  return;
1861
1893
  }
1862
- k({ title: "Видаленно", message: "Успішно видалено" }), await g();
1894
+ k({ title: "Видаленно", message: "Успішно видалено" }), await m();
1863
1895
  }
1864
1896
  });
1865
1897
  }
1866
- ee(async () => {
1867
- await g();
1898
+ se(async () => {
1899
+ await m();
1868
1900
  });
1869
- function C(i, p) {
1870
- return p.format?.toLowerCase() === "text" ? i[p.name] : i[p.name + "_data"] ?? i[p.name + "_text"] ?? "-";
1901
+ function M(i, u) {
1902
+ return u.format?.toLowerCase() === "text" ? i[u.name] : i[u.name + "_data"] ?? i[u.name + "_text"] ?? "-";
1871
1903
  }
1872
- return (i, p) => (t(), a("div", null, [
1873
- e("div", On, [
1874
- e("div", Nn, _(i.title), 1),
1875
- f.value.includes("add") && v.value ? (t(), a("button", {
1904
+ return (i, u) => (t(), a("div", null, [
1905
+ e("div", Nn, [
1906
+ e("div", Wn, _(i.title), 1),
1907
+ h.value.includes("add") && y.value ? (t(), a("button", {
1876
1908
  key: 0,
1877
- onClick: F,
1909
+ onClick: O,
1878
1910
  class: "px-2 py-1 inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border border-transparent hover:text-white ring-offset-white bg-blue-100 text-blue-500 hover:bg-blue-500 focus:ring-blue-500"
1879
- }, "Додати")) : $("", !0)
1911
+ }, "Додати")) : C("", !0)
1880
1912
  ]),
1881
- e("div", Pn, [
1882
- e("table", Bn, [
1883
- e("thead", Wn, [
1913
+ e("div", Rn, [
1914
+ e("table", Un, [
1915
+ e("thead", Gn, [
1884
1916
  e("tr", null, [
1885
- (t(!0), a(T, null, j(n.value, (u) => (t(), a("th", Rn, _(u.ua), 1))), 256)),
1886
- f.value.includes("edit") ? (t(), a("th", Un, " Дії ")) : $("", !0)
1917
+ (t(!0), a(j, null, A(n.value, (c) => (t(), a("th", qn, _(c.ua), 1))), 256)),
1918
+ h.value.includes("edit") ? (t(), a("th", Zn, " Дії ")) : C("", !0)
1887
1919
  ])
1888
1920
  ]),
1889
- e("tbody", Gn, [
1890
- (t(!0), a(T, null, j(s.value, (u) => (t(), a("tr", qn, [
1891
- (t(!0), a(T, null, j(n.value, (h) => (t(), a("td", Kn, [
1892
- h.link ? (t(), a("a", {
1921
+ e("tbody", Kn, [
1922
+ (t(!0), a(j, null, A(s.value, (c) => (t(), a("tr", Jn, [
1923
+ (t(!0), a(j, null, A(n.value, (g) => (t(), a("td", Xn, [
1924
+ g.link ? (t(), a("a", {
1893
1925
  key: 0,
1894
- href: h.link.replace("{{id}}", u.id),
1926
+ href: g.link.replace("{{id}}", c.id),
1895
1927
  class: "font-medium cursor-pointer text-start text-wrap text-cyan-800 decoration-2 focus:outline-none focus:underline hover:text-cyan-700 hover:underline"
1896
- }, _(C(u, h)), 9, Zn)) : (t(), a(T, { key: 1 }, [
1897
- O(_(C(u, h)), 1)
1928
+ }, _(M(c, g)), 9, Qn)) : (t(), a(j, { key: 1 }, [
1929
+ B(_(M(c, g)), 1)
1898
1930
  ], 64))
1899
1931
  ]))), 256)),
1900
- e("td", Jn, [
1901
- u.token ? (t(), a("button", {
1932
+ e("td", Yn, [
1933
+ c.token ? (t(), a("button", {
1902
1934
  key: 0,
1903
- onClick: (h) => b(u),
1935
+ onClick: (g) => v(c),
1904
1936
  class: "inline-flex items-center justify-center bg-white border rounded-md size-7 gap-x-2 hover:bg-gray-100"
1905
- }, p[0] || (p[0] = [
1937
+ }, u[0] || (u[0] = [
1906
1938
  e("svg", {
1907
1939
  xmlns: "http://www.w3.org/2000/svg",
1908
1940
  width: "12px",
@@ -1931,14 +1963,14 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1931
1963
  "stroke-width": "2"
1932
1964
  })
1933
1965
  ], -1)
1934
- ]), 8, Xn)) : $("", !0),
1935
- u.token ? (t(), a("button", {
1966
+ ]), 8, eo)) : C("", !0),
1967
+ c.token ? (t(), a("button", {
1936
1968
  key: 1,
1937
- onClick: (h) => w(u),
1969
+ onClick: (g) => w(c),
1938
1970
  class: "inline-flex items-center justify-center bg-white border rounded-md size-7 gap-x-2 hover:bg-gray-100"
1939
- }, p[1] || (p[1] = [
1940
- Se('<svg class="flex-shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="12px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line></svg>', 1)
1941
- ]), 8, Qn)) : $("", !0)
1971
+ }, u[1] || (u[1] = [
1972
+ Be('<svg class="flex-shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="12px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line></svg>', 1)
1973
+ ]), 8, to)) : C("", !0)
1942
1974
  ])
1943
1975
  ]))), 256))
1944
1976
  ])
@@ -1946,73 +1978,73 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
1946
1978
  ])
1947
1979
  ]));
1948
1980
  }
1949
- }), eo = { class: "p-[20px]" }, to = { class: "flex gap-[6px] mb-5" }, so = { class: "vs-form-text relative bg-white rounded-lg flex-grow" }, no = { class: "grid p-3 lg:gap-x-3 md:gap-x-6 md:p-5 grid-cols-6" }, oo = { class: "mt-2 text-sm font-medium text-gray-800 dark:text-neutral-200" }, ao = { class: "space-y-8" }, lo = { key: 0 }, io = { class: "grid p-3 bg-gray-100 rounded-lg md:gap-x-6 md:p-5 dark:bg-neutral-700 grid-cols-6" }, ro = ["onClick"], co = { class: "md:col-span-2" }, uo = { class: "text-sm font-medium text-gray-800 dark:text-neutral-200" }, po = { class: "text-sm text-gray-500 dark:text-neutral-500" }, mo = { class: "grid items-center grid-cols-2 md:block text-end md:text-center" }, go = ["checked", "onChange"], ho = { class: "grid p-3 bg-gray-100 rounded-lg md:gap-x-6 md:p-5 dark:bg-neutral-700 grid-cols-6" }, fo = { class: "md:col-span-2" }, yo = { class: "font-semibold text-gray-800 dark:text-neutral-200" }, vo = ["onClick"], bo = { class: "md:col-span-2" }, xo = { class: "text-sm font-medium text-gray-800 dark:text-neutral-200" }, ko = { class: "text-sm text-gray-500 dark:text-neutral-500" }, _o = { class: "grid items-center grid-cols-2 md:block text-end md:text-center" }, wo = ["checked", "onChange"], pe = /* @__PURE__ */ V({
1981
+ }), no = { class: "p-[20px]" }, oo = { class: "flex gap-[6px] mb-5" }, ao = { class: "vs-form-text relative bg-white rounded-lg flex-grow" }, lo = { class: "grid p-3 lg:gap-x-3 md:gap-x-6 md:p-5 grid-cols-6" }, io = { class: "mt-2 text-sm font-medium text-gray-800 dark:text-neutral-200" }, ro = { class: "space-y-8" }, co = { key: 0 }, uo = { class: "grid p-3 bg-gray-100 rounded-lg md:gap-x-6 md:p-5 dark:bg-neutral-700 grid-cols-6" }, po = ["onClick"], mo = { class: "md:col-span-2" }, go = { class: "text-sm font-medium text-gray-800 dark:text-neutral-200" }, ho = { class: "text-sm text-gray-500 dark:text-neutral-500" }, fo = { class: "grid items-center grid-cols-2 md:block text-end md:text-center" }, yo = ["checked", "onChange"], vo = { class: "grid p-3 bg-gray-100 rounded-lg md:gap-x-6 md:p-5 dark:bg-neutral-700 grid-cols-6" }, bo = { class: "md:col-span-2" }, xo = { class: "font-semibold text-gray-800 dark:text-neutral-200" }, ko = ["onClick"], _o = { class: "md:col-span-2" }, wo = { class: "text-sm font-medium text-gray-800 dark:text-neutral-200" }, $o = { class: "text-sm text-gray-500 dark:text-neutral-500" }, Co = { class: "grid items-center grid-cols-2 md:block text-end md:text-center" }, Mo = ["checked", "onChange"], ge = /* @__PURE__ */ H({
1950
1982
  __name: "GroupInterfaceWidget",
1951
1983
  props: {
1952
1984
  data: {},
1953
1985
  id: {}
1954
1986
  },
1955
- setup(c) {
1956
- const l = c, s = M(""), n = ["view", "add", "edit", "del"], o = M({});
1957
- ee(async () => {
1958
- const C = await (await fetch(
1987
+ setup(d) {
1988
+ const l = d, s = T(""), n = ["view", "add", "edit", "del"], o = T({});
1989
+ se(async () => {
1990
+ const M = await (await fetch(
1959
1991
  `/api/access-group/${l.id}?tab=vs-group-interface`
1960
1992
  )).json();
1961
- C.routes && C.routes.forEach((i) => {
1993
+ M.routes && M.routes.forEach((i) => {
1962
1994
  o.value[i.path] = new Set(i.actions);
1963
1995
  });
1964
1996
  });
1965
- const f = (w, C) => o.value[w]?.has(C) ?? !1, r = (w, C) => {
1966
- o.value[w] || (o.value[w] = /* @__PURE__ */ new Set()), o.value[w].has(C) ? o.value[w].delete(C) : o.value[w].add(C);
1967
- }, v = (w, C) => {
1997
+ const h = (w, M) => o.value[w]?.has(M) ?? !1, r = (w, M) => {
1998
+ o.value[w] || (o.value[w] = /* @__PURE__ */ new Set()), o.value[w].has(M) ? o.value[w].delete(M) : o.value[w].add(M);
1999
+ }, y = (w, M) => {
1968
2000
  w.forEach((i) => {
1969
- i.path && (o.value[i.path] || (o.value[i.path] = /* @__PURE__ */ new Set()), o.value[i.path].has(C) ? o.value[i.path].delete(C) : o.value[i.path].add(C));
2001
+ i.path && (o.value[i.path] || (o.value[i.path] = /* @__PURE__ */ new Set()), o.value[i.path].has(M) ? o.value[i.path].delete(M) : o.value[i.path].add(M));
1970
2002
  });
1971
- }, g = N(
1972
- () => Object.entries(o.value).map(([w, C]) => ({
2003
+ }, m = P(
2004
+ () => Object.entries(o.value).map(([w, M]) => ({
1973
2005
  path: w,
1974
- actions: Array.from(C)
1975
- }))
2006
+ actions: Array.from(M)
2007
+ })).filter((w) => w.actions.length)
1976
2008
  ), k = async () => {
1977
2009
  await fetch(
1978
2010
  `/api/access-group/${l.id}?tab=vs-group-interface`,
1979
2011
  {
1980
2012
  method: "POST",
1981
2013
  headers: { "Content-Type": "application/json" },
1982
- body: JSON.stringify({ routes: g.value })
2014
+ body: JSON.stringify({ routes: m.value })
1983
2015
  }
1984
- ), console.log("Saved", g.value);
1985
- }, x = () => {
2016
+ ), console.log("Saved", m.value), Ue({ title: "Success!", message: "Permissions saved." });
2017
+ }, b = () => {
1986
2018
  o.value = {};
1987
- }, m = (w) => {
2019
+ }, p = (w) => {
1988
2020
  if (!s.value.trim()) return w;
1989
- const C = s.value.toLowerCase();
2021
+ const M = s.value.toLowerCase();
1990
2022
  return w.filter(
1991
- (i) => i.ua.toLowerCase().includes(C) || i.path && i.path.toLowerCase().includes(C)
2023
+ (i) => i.ua.toLowerCase().includes(M) || i.path && i.path.toLowerCase().includes(M)
1992
2024
  );
1993
- }, b = N(
1994
- () => m(l.data.routers.filter((w) => !w.menu))
1995
- ), F = N(
2025
+ }, v = P(
2026
+ () => p(l.data.routers.filter((w) => !w.menu))
2027
+ ), O = P(
1996
2028
  () => l.data.routers.filter((w) => w.menu).map((w) => ({
1997
2029
  ...w,
1998
- menu: m(w.menu || [])
2030
+ menu: p(w.menu || [])
1999
2031
  })).filter((w) => w.menu && w.menu.length > 0)
2000
2032
  );
2001
- return (w, C) => (t(), a("div", eo, [
2002
- e("div", to, [
2003
- e("div", so, [
2004
- C[1] || (C[1] = e("i", { class: "absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer ti" }, null, -1)),
2005
- R(e("input", {
2033
+ return (w, M) => (t(), a("div", no, [
2034
+ e("div", oo, [
2035
+ e("div", ao, [
2036
+ M[1] || (M[1] = e("i", { class: "absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer ti" }, null, -1)),
2037
+ U(e("input", {
2006
2038
  type: "text",
2007
2039
  placeholder: "Пошук",
2008
- "onUpdate:modelValue": C[0] || (C[0] = (i) => s.value = i),
2040
+ "onUpdate:modelValue": M[0] || (M[0] = (i) => s.value = i),
2009
2041
  class: "bg-white h-[38px] text-sm py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"
2010
2042
  }, null, 512), [
2011
- [he, s.value]
2043
+ [ye, s.value]
2012
2044
  ])
2013
2045
  ]),
2014
2046
  e("button", {
2015
- onClick: x,
2047
+ onClick: b,
2016
2048
  class: "inline-flex items-center px-3 py-2 text-sm font-medium duration-300 bg-white border rounded-lg gap-x-2 hover:bg-gray-100"
2017
2049
  }, " Скинути всі "),
2018
2050
  e("button", {
@@ -2020,95 +2052,95 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2020
2052
  class: "inline-flex items-center px-3 py-2 text-sm font-medium text-white duration-300 bg-blue-600 border border-transparent rounded-lg gap-x-2 hover:bg-blue-700 hover:text-white"
2021
2053
  }, " Зберегти ")
2022
2054
  ]),
2023
- e("div", no, [
2024
- C[2] || (C[2] = e("div", { class: "self-center col-span-2" }, [
2055
+ e("div", lo, [
2056
+ M[2] || (M[2] = e("div", { class: "self-center col-span-2" }, [
2025
2057
  e("h2", { class: "font-semibold text-gray-800 dark:text-neutral-200" }, "Групи")
2026
2058
  ], -1)),
2027
- (t(), a(T, null, j(n, (i, p) => e("div", {
2059
+ (t(), a(j, null, A(n, (i, u) => e("div", {
2028
2060
  class: "col-span-1 text-center",
2029
- key: p
2061
+ key: u
2030
2062
  }, [
2031
- e("h3", oo, _(i), 1)
2063
+ e("h3", io, _(i), 1)
2032
2064
  ])), 64))
2033
2065
  ]),
2034
- e("div", ao, [
2035
- b.value.length ? (t(), a("div", lo, [
2036
- e("ul", io, [
2037
- C[3] || (C[3] = e("li", { class: "md:col-span-2" }, [
2066
+ e("div", ro, [
2067
+ v.value.length ? (t(), a("div", co, [
2068
+ e("ul", uo, [
2069
+ M[3] || (M[3] = e("li", { class: "md:col-span-2" }, [
2038
2070
  e("h3", { class: "font-semibold text-gray-800 dark:text-neutral-200" }, "Без категорії")
2039
2071
  ], -1)),
2040
- (t(), a(T, null, j(n, (i, p) => e("li", {
2041
- key: p,
2072
+ (t(), a(j, null, A(n, (i, u) => e("li", {
2073
+ key: u,
2042
2074
  class: "md:block md:col-span-1 md:text-center"
2043
2075
  }, [
2044
2076
  e("button", {
2045
2077
  type: "button",
2046
2078
  class: "text-xs font-medium text-blue-600 decoration-2 hover:underline",
2047
- onClick: (u) => v(b.value, n[p])
2048
- }, " Toggle all ", 8, ro)
2079
+ onClick: (c) => y(v.value, n[u])
2080
+ }, " Toggle all ", 8, po)
2049
2081
  ])), 64))
2050
2082
  ]),
2051
- (t(!0), a(T, null, j(b.value, (i, p) => (t(), a("ul", {
2052
- key: "uncat-" + p,
2083
+ (t(!0), a(j, null, A(v.value, (i, u) => (t(), a("ul", {
2084
+ key: "uncat-" + u,
2053
2085
  class: "grid md:items-center gap-1.5 md:gap-6 px-3 md:px-5 mt-3 grid-cols-6"
2054
2086
  }, [
2055
- e("li", co, [
2056
- e("p", uo, _(i.ua), 1),
2057
- e("p", po, _(i.path), 1)
2087
+ e("li", mo, [
2088
+ e("p", go, _(i.ua), 1),
2089
+ e("p", ho, _(i.path), 1)
2058
2090
  ]),
2059
- (t(), a(T, null, j(n, (u, h) => e("li", {
2060
- key: h,
2091
+ (t(), a(j, null, A(n, (c, g) => e("li", {
2092
+ key: g,
2061
2093
  class: "col-span-1"
2062
2094
  }, [
2063
- e("div", mo, [
2095
+ e("div", fo, [
2064
2096
  e("input", {
2065
2097
  type: "checkbox",
2066
- checked: f(i.path, u),
2067
- onChange: (y) => r(i.path, u),
2098
+ checked: h(i.path, c),
2099
+ onChange: ($) => r(i.path, c),
2068
2100
  class: "text-blue-600 border-gray-300 rounded shrink-0 focus:ring-blue-500"
2069
- }, null, 40, go)
2101
+ }, null, 40, yo)
2070
2102
  ])
2071
2103
  ])), 64))
2072
2104
  ]))), 128))
2073
- ])) : $("", !0),
2074
- (t(!0), a(T, null, j(F.value, (i, p) => (t(), a("div", {
2075
- key: p,
2105
+ ])) : C("", !0),
2106
+ (t(!0), a(j, null, A(O.value, (i, u) => (t(), a("div", {
2107
+ key: u,
2076
2108
  class: "space-y-5"
2077
2109
  }, [
2078
- e("ul", ho, [
2079
- e("li", fo, [
2080
- e("h3", yo, _(i.ua), 1)
2110
+ e("ul", vo, [
2111
+ e("li", bo, [
2112
+ e("h3", xo, _(i.ua), 1)
2081
2113
  ]),
2082
- (t(), a(T, null, j(n, (u, h) => e("li", {
2083
- key: h,
2114
+ (t(), a(j, null, A(n, (c, g) => e("li", {
2115
+ key: g,
2084
2116
  class: "md:block md:col-span-1 md:text-center"
2085
2117
  }, [
2086
2118
  e("button", {
2087
2119
  type: "button",
2088
2120
  class: "text-xs font-medium text-blue-600 decoration-2 hover:underline",
2089
- onClick: (y) => v(i.menu, n[h])
2090
- }, " Toggle all ", 8, vo)
2121
+ onClick: ($) => y(i.menu, n[g])
2122
+ }, " Toggle all ", 8, ko)
2091
2123
  ])), 64))
2092
2124
  ]),
2093
- (t(!0), a(T, null, j(i.menu, (u, h) => (t(), a("ul", {
2094
- key: h,
2125
+ (t(!0), a(j, null, A(i.menu, (c, g) => (t(), a("ul", {
2126
+ key: g,
2095
2127
  class: "grid md:items-center gap-1.5 md:gap-6 px-3 md:px-5 mt-3 grid-cols-6"
2096
2128
  }, [
2097
- e("li", bo, [
2098
- e("p", xo, _(u.ua), 1),
2099
- e("p", ko, _(u.path), 1)
2129
+ e("li", _o, [
2130
+ e("p", wo, _(c.ua), 1),
2131
+ e("p", $o, _(c.path), 1)
2100
2132
  ]),
2101
- (t(), a(T, null, j(n, (y, d) => e("li", {
2102
- key: d,
2133
+ (t(), a(j, null, A(n, ($, f) => e("li", {
2134
+ key: f,
2103
2135
  class: "col-span-1"
2104
2136
  }, [
2105
- e("div", _o, [
2137
+ e("div", Co, [
2106
2138
  e("input", {
2107
2139
  type: "checkbox",
2108
- checked: f(u.path, y),
2109
- onChange: (A) => r(u.path, y),
2140
+ checked: h(c.path, $),
2141
+ onChange: (E) => r(c.path, $),
2110
2142
  class: "text-blue-600 border-gray-300 rounded shrink-0 focus:ring-blue-500"
2111
- }, null, 40, wo)
2143
+ }, null, 40, Mo)
2112
2144
  ])
2113
2145
  ])), 64))
2114
2146
  ]))), 128))
@@ -2116,22 +2148,22 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2116
2148
  ])
2117
2149
  ]));
2118
2150
  }
2119
- }), Ve = {
2120
- "vs-widget-map": ue,
2121
- "vs-widget-comments": ie,
2122
- "vs-widget-history": re,
2123
- "vs-widget-gallery": ce,
2124
- "vs-widget-file": de,
2125
- "vs-widget-list": ze,
2126
- "vs-widget-table": Yn,
2127
- "vs-group-interface": pe
2128
- }, $o = {
2151
+ }), Se = {
2152
+ "vs-widget-map": me,
2153
+ "vs-widget-comments": de,
2154
+ "vs-widget-history": ce,
2155
+ "vs-widget-gallery": pe,
2156
+ "vs-widget-file": ue,
2157
+ "vs-widget-list": He,
2158
+ "vs-widget-table": so,
2159
+ "vs-group-interface": ge
2160
+ }, Lo = {
2129
2161
  key: 0,
2130
2162
  class: "mb-4 pb-2 border-b border-gray-200"
2131
- }, Co = { class: "text-lg font-semibold text-gray-900" }, Lo = ["innerHTML"], Mo = {
2163
+ }, To = { class: "text-lg font-semibold text-gray-900" }, Do = ["innerHTML"], jo = {
2132
2164
  key: 0,
2133
2165
  class: "mb-4 pb-2 border-b border-gray-200"
2134
- }, To = { class: "text-lg font-semibold text-gray-900" }, Do = ["innerHTML"], Ee = /* @__PURE__ */ V({
2166
+ }, Io = { class: "text-lg font-semibold text-gray-900" }, zo = ["innerHTML"], Fe = /* @__PURE__ */ H({
2135
2167
  __name: "CardItem",
2136
2168
  props: {
2137
2169
  items: {},
@@ -2148,69 +2180,69 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2148
2180
  className: {},
2149
2181
  style: {}
2150
2182
  },
2151
- setup(c) {
2152
- const l = c;
2183
+ setup(d) {
2184
+ const l = d;
2153
2185
  console.log(l.data);
2154
- const s = N(() => l.col ? {
2186
+ const s = P(() => l.col ? {
2155
2187
  [`lg:col-span-${l.col}`]: !0
2156
2188
  } : {});
2157
2189
  function n(r) {
2158
- return Ve[r] || r;
2190
+ return Se[r] || r;
2159
2191
  }
2160
2192
  const o = function(r = {}) {
2161
- return r.props && Object.entries(r.props).forEach(([v, g]) => {
2162
- r[v] = l.data[g];
2193
+ return r.props && Object.entries(r.props).forEach(([y, m]) => {
2194
+ r[y] = l.data[m];
2163
2195
  }), r;
2164
- }, f = N(() => {
2196
+ }, h = P(() => {
2165
2197
  const r = {};
2166
2198
  return l.col && (r.col = l.col), r;
2167
2199
  });
2168
- return (r, v) => (t(), a("div", {
2169
- class: I(["w-full bg-gray-50 rounded-lg p-4 col-span-12", s.value])
2200
+ return (r, y) => (t(), a("div", {
2201
+ class: z(["w-full bg-gray-50 rounded-lg p-4 col-span-12", s.value])
2170
2202
  }, [
2171
- r.title ? (t(), a("div", $o, [
2172
- e("h3", Co, _(r.title), 1)
2173
- ])) : $("", !0),
2203
+ r.title ? (t(), a("div", Lo, [
2204
+ e("h3", To, _(r.title), 1)
2205
+ ])) : C("", !0),
2174
2206
  r.html ? (t(), a("div", {
2175
2207
  key: 1,
2176
2208
  innerHTML: r.html,
2177
2209
  class: "text-gray-900 leading-relaxed"
2178
- }, null, 8, Lo)) : r.type?.includes("tabs") ? (t(), H(me, {
2210
+ }, null, 8, Do)) : r.type?.includes("tabs") ? (t(), S(he, {
2179
2211
  key: 2,
2180
2212
  view: r.type,
2181
2213
  panels: r.items,
2182
2214
  data: r.data
2183
- }, null, 8, ["view", "panels", "data"])) : (t(!0), a(T, { key: 3 }, j(r.items, (g) => (t(), a(T, null, [
2184
- g.title || g.label ? (t(), a("div", Mo, [
2185
- e("h3", To, _(g.title || g.label), 1)
2186
- ])) : $("", !0),
2187
- g.html ? (t(), a("div", {
2215
+ }, null, 8, ["view", "panels", "data"])) : (t(!0), a(j, { key: 3 }, A(r.items, (m) => (t(), a(j, null, [
2216
+ m.title || m.label ? (t(), a("div", jo, [
2217
+ e("h3", Io, _(m.title || m.label), 1)
2218
+ ])) : C("", !0),
2219
+ m.html ? (t(), a("div", {
2188
2220
  key: 1,
2189
- innerHTML: g.html,
2221
+ innerHTML: m.html,
2190
2222
  class: "text-gray-900 leading-relaxed"
2191
- }, null, 8, Do)) : g.component ? (t(), H(B(n(g.component)), K({
2223
+ }, null, 8, zo)) : m.component ? (t(), S(W(n(m.component)), J({
2192
2224
  key: 2,
2193
2225
  ref_for: !0
2194
- }, { geom: r.data.geom, id: r.data.id, ...f.value, ...o(g), data: r.data }, { class: "w-full" }), null, 16)) : W(r.$slots, "default", { key: 3 })
2226
+ }, { geom: r.data.geom, id: r.data.id, ...h.value, ...o(m), data: r.data }, { class: "w-full" }), null, 16)) : R(r.$slots, "default", { key: 3 })
2195
2227
  ], 64))), 256))
2196
2228
  ], 2));
2197
2229
  }
2198
- }), jo = { class: "grid grid-cols-12 gap-[20px]" }, Io = {
2230
+ }), Ao = { class: "grid grid-cols-12 gap-[20px]" }, Vo = {
2199
2231
  key: 0,
2200
2232
  class: "col-span-4"
2201
- }, Ao = ["innerHTML"], zo = {
2233
+ }, Eo = ["innerHTML"], Ho = {
2202
2234
  key: 0,
2203
2235
  class: "overflow-hidden w-full"
2204
- }, Vo = { class: "flex border-b border-gray-200 bg-gray-50 relative" }, Eo = ["onClick"], Ho = { class: "p-1" }, So = ["innerHTML"], Fo = {
2236
+ }, So = { class: "flex border-b border-gray-200 bg-gray-50 relative" }, Fo = ["onClick"], Oo = { class: "p-1" }, Bo = ["innerHTML"], Po = {
2205
2237
  key: 1,
2206
2238
  class: "flex w-full"
2207
- }, Oo = { class: "flex flex-col w-56 border-r border-gray-200 bg-gray-50 relative" }, No = ["onClick"], Po = {
2239
+ }, No = { class: "flex flex-col w-56 border-r border-gray-200 bg-gray-50 relative" }, Wo = ["onClick"], Ro = {
2208
2240
  key: 0,
2209
2241
  class: "absolute right-3 top-1/2 -translate-y-1/2 transition-all duration-300"
2210
- }, Bo = { class: "flex-1 p-4" }, Wo = ["innerHTML"], Ro = {
2242
+ }, Uo = { class: "flex-1 p-4" }, Go = ["innerHTML"], qo = {
2211
2243
  key: 2,
2212
2244
  class: "p-1 w-full"
2213
- }, Uo = { class: "grid grid-cols-12 gap-4" }, me = /* @__PURE__ */ V({
2245
+ }, Zo = { class: "grid grid-cols-12 gap-4" }, he = /* @__PURE__ */ H({
2214
2246
  __name: "Card",
2215
2247
  props: {
2216
2248
  panels: { default: () => [] },
@@ -2223,129 +2255,129 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2223
2255
  className: {},
2224
2256
  style: {}
2225
2257
  },
2226
- setup(c) {
2227
- const l = c, s = M(0), n = M([]);
2258
+ setup(d) {
2259
+ const l = d, s = T(0), n = T([]);
2228
2260
  function o(i) {
2229
- return Ve[i] || i;
2261
+ return Se[i] || i;
2230
2262
  }
2231
- function f(i) {
2232
- return i.forEach((p) => {
2233
- p.type && (p.view = p.type);
2234
- }), n.value = i.filter((p) => p.type === "pin"), i.filter((p) => p.type !== "pin");
2263
+ function h(i) {
2264
+ return i.forEach((u) => {
2265
+ u.type && (u.view = u.type);
2266
+ }), n.value = i.filter((u) => u.type === "pin"), i.filter((u) => u.type !== "pin");
2235
2267
  }
2236
- const r = N(() => l.panels && l.panels.length > 0 ? l.normalizeTabs ? f(l.panels) : l.panels : l.data && Array.isArray(l.data) ? l.data.filter((p) => p.type.includes("tabs"))[0]?.items || [] : []), v = N(() => l.panels && l.panels.length > 0 ? l.normalizeTabs ? f(l.panels) : l.panels : l.data && Array.isArray(l.data) ? l.data : []), g = N(() => ({
2268
+ const r = P(() => l.panels && l.panels.length > 0 ? l.normalizeTabs ? h(l.panels) : l.panels : l.data && Array.isArray(l.data) ? l.data.filter((u) => u.type.includes("tabs"))[0]?.items || [] : []), y = P(() => l.panels && l.panels.length > 0 ? l.normalizeTabs ? h(l.panels) : l.panels : l.data && Array.isArray(l.data) ? l.data : []), m = P(() => ({
2237
2269
  [`view-${l.view}`]: !0
2238
2270
  })), k = (i) => {
2239
- const p = { ...i };
2240
- return l.data && (p.data = l.data), p;
2241
- }, x = M([]), m = M([]), b = M([]);
2242
- function F(i, p) {
2243
- i && i instanceof HTMLElement && (x.value[p] = i);
2271
+ const u = { ...i };
2272
+ return l.data && (u.data = l.data), u;
2273
+ }, b = T([]), p = T([]), v = T([]);
2274
+ function O(i, u) {
2275
+ i && i instanceof HTMLElement && (b.value[u] = i);
2244
2276
  }
2245
2277
  function w() {
2246
- m.value = x.value.map((i) => i.offsetWidth), b.value = x.value.map((i) => i.offsetLeft);
2278
+ p.value = b.value.map((i) => i.offsetWidth), v.value = b.value.map((i) => i.offsetLeft);
2247
2279
  }
2248
- let C = null;
2249
- return ee(() => {
2250
- xe(() => {
2280
+ let M = null;
2281
+ return se(() => {
2282
+ _e(() => {
2251
2283
  w();
2252
- }), C = new ResizeObserver(() => w()), C.observe(document.body);
2253
- }), Fe(() => {
2254
- C?.disconnect();
2255
- }), Oe(s, () => {
2256
- xe(() => {
2284
+ }), M = new ResizeObserver(() => w()), M.observe(document.body);
2285
+ }), Pe(() => {
2286
+ M?.disconnect();
2287
+ }), De(s, () => {
2288
+ _e(() => {
2257
2289
  w();
2258
2290
  });
2259
- }), (i, p) => (t(), a("div", {
2260
- class: I(i.classWrapper || g.value)
2291
+ }), (i, u) => (t(), a("div", {
2292
+ class: z(i.classWrapper || m.value)
2261
2293
  }, [
2262
- e("div", jo, [
2263
- n.value.length !== 0 ? (t(), a("div", Io, [
2264
- (t(!0), a(T, null, j(n.value[0].items, (u, h) => (t(), a("div", {
2265
- key: u.name || h,
2294
+ e("div", Ao, [
2295
+ n.value.length !== 0 ? (t(), a("div", Vo, [
2296
+ (t(!0), a(j, null, A(n.value[0].items, (c, g) => (t(), a("div", {
2297
+ key: c.name || g,
2266
2298
  class: "w-full bg-gray-50 rounded-lg p-4 col-span-12 m-1 mb-3"
2267
2299
  }, [
2268
- u.html ? (t(), a("div", {
2300
+ c.html ? (t(), a("div", {
2269
2301
  key: 0,
2270
- innerHTML: u.html,
2302
+ innerHTML: c.html,
2271
2303
  class: "text-gray-900 leading-relaxed"
2272
- }, null, 8, Ao)) : u.component ? (t(), H(B(o(u.component)), K({
2304
+ }, null, 8, Eo)) : c.component ? (t(), S(W(o(c.component)), J({
2273
2305
  key: 1,
2274
2306
  ref_for: !0
2275
- }, u.component === "Card" ? u : k(u), {
2307
+ }, c.component === "Card" ? c : k(c), {
2276
2308
  id: i.data.id,
2277
2309
  class: "w-full h-full"
2278
- }), null, 16, ["id"])) : $("", !0)
2310
+ }), null, 16, ["id"])) : C("", !0)
2279
2311
  ]))), 128))
2280
- ])) : $("", !0),
2312
+ ])) : C("", !0),
2281
2313
  e("div", {
2282
- class: I(n.value.length !== 0 ? "col-span-8" : "col-span-12")
2314
+ class: z(n.value.length !== 0 ? "col-span-8" : "col-span-12")
2283
2315
  }, [
2284
- i.view === "tabs" ? (t(), a("div", zo, [
2285
- e("div", Vo, [
2286
- m.value.length ? (t(), a("div", {
2316
+ i.view === "tabs" ? (t(), a("div", Ho, [
2317
+ e("div", So, [
2318
+ p.value.length ? (t(), a("div", {
2287
2319
  key: 0,
2288
2320
  class: "absolute bottom-0 h-[2px] bg-blue-600 transition-all duration-300",
2289
- style: J({
2290
- width: m.value[s.value] + "px",
2291
- left: b.value[s.value] + "px"
2321
+ style: Q({
2322
+ width: p.value[s.value] + "px",
2323
+ left: v.value[s.value] + "px"
2292
2324
  })
2293
- }, null, 4)) : $("", !0),
2294
- (t(!0), a(T, null, j(r.value, (u, h) => (t(), a("button", {
2295
- key: u.name || h,
2325
+ }, null, 4)) : C("", !0),
2326
+ (t(!0), a(j, null, A(r.value, (c, g) => (t(), a("button", {
2327
+ key: c.name || g,
2296
2328
  ref_for: !0,
2297
- ref: (y) => F(y, h),
2298
- onClick: (y) => s.value = h,
2299
- class: I([
2329
+ ref: ($) => O($, g),
2330
+ onClick: ($) => s.value = g,
2331
+ class: z([
2300
2332
  "relative px-4 py-3 text-sm font-medium transition-colors duration-300",
2301
- s.value === h ? "text-blue-600" : "text-gray-600 hover:text-gray-800"
2333
+ s.value === g ? "text-blue-600" : "text-gray-600 hover:text-gray-800"
2302
2334
  ])
2303
- }, _(u.title || u.label || u.name || `Tab ${h + 1}`), 11, Eo))), 128))
2335
+ }, _(c.title || c.label || c.name || `Tab ${g + 1}`), 11, Fo))), 128))
2304
2336
  ]),
2305
- e("div", Ho, [
2306
- (t(!0), a(T, null, j(r.value, (u, h) => R((t(), a("div", {
2307
- key: u.name || h,
2308
- class: I([
2337
+ e("div", Oo, [
2338
+ (t(!0), a(j, null, A(r.value, (c, g) => U((t(), a("div", {
2339
+ key: c.name || g,
2340
+ class: z([
2309
2341
  "transition-all duration-300 ease-in-out",
2310
- s.value === h ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-2",
2342
+ s.value === g ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-2",
2311
2343
  i.classPanel || "w-full border-gray-100 py-2"
2312
2344
  ])
2313
2345
  }, [
2314
- u.html ? (t(), a("div", {
2346
+ c.html ? (t(), a("div", {
2315
2347
  key: 0,
2316
- innerHTML: u.html,
2348
+ innerHTML: c.html,
2317
2349
  class: "text-gray-900 leading-relaxed"
2318
- }, null, 8, So)) : i.$slots[`tab-${h}`] ? W(i.$slots, `tab-${h}`, {
2350
+ }, null, 8, Bo)) : i.$slots[`tab-${g}`] ? R(i.$slots, `tab-${g}`, {
2319
2351
  key: 1,
2320
- item: u,
2352
+ item: c,
2321
2353
  data: i.data
2322
- }) : u.component || u.name ? (t(), H(B(o(u.component || u.name)), K({
2354
+ }) : c.component || c.name ? (t(), S(W(o(c.component || c.name)), J({
2323
2355
  key: 2,
2324
2356
  ref_for: !0
2325
- }, u.component === "Card" ? u : k(u), {
2357
+ }, c.component === "Card" ? c : k(c), {
2326
2358
  id: i.data.id,
2327
2359
  class: "w-full h-full"
2328
- }), null, 16, ["id"])) : W(i.$slots, u.slot || `tab-${h}`, {
2360
+ }), null, 16, ["id"])) : R(i.$slots, c.slot || `tab-${g}`, {
2329
2361
  key: 3,
2330
- item: u,
2362
+ item: c,
2331
2363
  data: i.data
2332
2364
  })
2333
2365
  ], 2)), [
2334
- [ke, s.value === h]
2366
+ [we, s.value === g]
2335
2367
  ])), 128))
2336
2368
  ])
2337
- ])) : i.view === "vertical-tabs" ? (t(), a("div", Fo, [
2338
- e("div", Oo, [
2339
- (t(!0), a(T, null, j(r.value, (u, h) => (t(), a("button", {
2340
- key: u.name || h,
2341
- onClick: (y) => s.value = h,
2342
- class: I([
2369
+ ])) : i.view === "vertical-tabs" ? (t(), a("div", Po, [
2370
+ e("div", No, [
2371
+ (t(!0), a(j, null, A(r.value, (c, g) => (t(), a("button", {
2372
+ key: c.name || g,
2373
+ onClick: ($) => s.value = g,
2374
+ class: z([
2343
2375
  "relative px-4 py-3 text-sm font-medium text-left transition-colors duration-300",
2344
- s.value === h ? "text-blue-600 bg-white" : "text-gray-600 hover:text-gray-800 hover:bg-gray-100"
2376
+ s.value === g ? "text-blue-600 bg-white" : "text-gray-600 hover:text-gray-800 hover:bg-gray-100"
2345
2377
  ])
2346
2378
  }, [
2347
- O(_(u.title || u.label || u.name || `Tab ${h + 1}`) + " ", 1),
2348
- s.value === h ? (t(), a("span", Po, p[0] || (p[0] = [
2379
+ B(_(c.title || c.label || c.name || `Tab ${g + 1}`) + " ", 1),
2380
+ s.value === g ? (t(), a("span", Ro, u[0] || (u[0] = [
2349
2381
  e("svg", {
2350
2382
  viewBox: "0 0 24 24",
2351
2383
  xmlns: "http://www.w3.org/2000/svg",
@@ -2356,62 +2388,62 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2356
2388
  }, [
2357
2389
  e("path", { d: "M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z" })
2358
2390
  ], -1)
2359
- ]))) : $("", !0)
2360
- ], 10, No))), 128))
2391
+ ]))) : C("", !0)
2392
+ ], 10, Wo))), 128))
2361
2393
  ]),
2362
- e("div", Bo, [
2363
- (t(!0), a(T, null, j(r.value, (u, h) => R((t(), a("div", {
2364
- key: u.name || h,
2365
- class: I([
2394
+ e("div", Uo, [
2395
+ (t(!0), a(j, null, A(r.value, (c, g) => U((t(), a("div", {
2396
+ key: c.name || g,
2397
+ class: z([
2366
2398
  "transition-all duration-300 ease-in-out",
2367
- s.value === h ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-2",
2399
+ s.value === g ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-2",
2368
2400
  i.classPanel || "w-full border-gray-100 py-2"
2369
2401
  ])
2370
2402
  }, [
2371
- u.html ? (t(), a("div", {
2403
+ c.html ? (t(), a("div", {
2372
2404
  key: 0,
2373
- innerHTML: u.html,
2405
+ innerHTML: c.html,
2374
2406
  class: "text-gray-900 leading-relaxed"
2375
- }, null, 8, Wo)) : i.$slots[`tab-${h}`] ? W(i.$slots, `tab-${h}`, {
2407
+ }, null, 8, Go)) : i.$slots[`tab-${g}`] ? R(i.$slots, `tab-${g}`, {
2376
2408
  key: 1,
2377
- item: u,
2409
+ item: c,
2378
2410
  data: i.data
2379
- }) : u.component || u.name ? (t(), H(B(o(u.component || u.name)), K({
2411
+ }) : c.component || c.name ? (t(), S(W(o(c.component || c.name)), J({
2380
2412
  key: 2,
2381
2413
  ref_for: !0
2382
- }, u.component === "Card" ? u : k(u), {
2414
+ }, c.component === "Card" ? c : k(c), {
2383
2415
  id: i.data.id,
2384
2416
  class: "w-full h-full"
2385
- }), null, 16, ["id"])) : W(i.$slots, u.slot || `tab-${h}`, {
2417
+ }), null, 16, ["id"])) : R(i.$slots, c.slot || `tab-${g}`, {
2386
2418
  key: 3,
2387
- item: u,
2419
+ item: c,
2388
2420
  data: i.data
2389
2421
  })
2390
2422
  ], 2)), [
2391
- [ke, s.value === h]
2423
+ [we, s.value === g]
2392
2424
  ])), 128))
2393
2425
  ])
2394
- ])) : (t(), a("div", Ro, [
2395
- e("div", Uo, [
2396
- (t(!0), a(T, null, j(v.value, (u, h) => (t(), a(T, {
2397
- key: u.name || h
2426
+ ])) : (t(), a("div", qo, [
2427
+ e("div", Zo, [
2428
+ (t(!0), a(j, null, A(y.value, (c, g) => (t(), a(j, {
2429
+ key: c.name || g
2398
2430
  }, [
2399
- i.$slots[`panel-${h}`] ? W(i.$slots, `panel-${h}`, {
2431
+ i.$slots[`panel-${g}`] ? R(i.$slots, `panel-${g}`, {
2400
2432
  key: 0,
2401
- item: u,
2433
+ item: c,
2402
2434
  data: i.data
2403
- }) : u.items || u.html ? (t(), H(B(Ee), K({
2435
+ }) : c.items || c.html ? (t(), S(W(Fe), J({
2404
2436
  key: 1,
2405
2437
  ref_for: !0
2406
- }, k(u), {
2407
- items: u.items,
2438
+ }, k(c), {
2439
+ items: c.items,
2408
2440
  class: "w-full h-full"
2409
- }), null, 16, ["items"])) : u.component ? (t(), H(B(o(u.component)), K({
2441
+ }), null, 16, ["items"])) : c.component ? (t(), S(W(o(c.component)), J({
2410
2442
  key: 2,
2411
2443
  ref_for: !0
2412
- }, k(u), { class: "w-full h-full" }), null, 16)) : W(i.$slots, u.slot || `panel-${h}`, {
2444
+ }, k(c), { class: "w-full h-full" }), null, 16)) : R(i.$slots, c.slot || `panel-${g}`, {
2413
2445
  key: 3,
2414
- item: u,
2446
+ item: c,
2415
2447
  data: i.data
2416
2448
  })
2417
2449
  ], 64))), 128))
@@ -2421,79 +2453,79 @@ const Mn = { class: "relative min-h-[300px] h-full pb-[3.25rem]" }, Tn = {
2421
2453
  ])
2422
2454
  ], 2));
2423
2455
  }
2424
- }), Go = ["onClick"], qo = /* @__PURE__ */ V({
2456
+ }), Ko = ["onClick"], Jo = /* @__PURE__ */ H({
2425
2457
  __name: "CopyNotification",
2426
- setup(c, { expose: l }) {
2427
- const s = M([]);
2458
+ setup(d, { expose: l }) {
2459
+ const s = T([]);
2428
2460
  let n = 1;
2429
2461
  const o = () => {
2430
2462
  if (s.value.length >= 10) {
2431
- const v = s.value[0];
2432
- clearTimeout(v.timer), s.value.shift();
2463
+ const y = s.value[0];
2464
+ clearTimeout(y.timer), s.value.shift();
2433
2465
  }
2434
2466
  const r = {
2435
2467
  id: n++,
2436
2468
  timer: setTimeout(() => {
2437
- f(r.id);
2469
+ h(r.id);
2438
2470
  }, 1500)
2439
2471
  };
2440
2472
  s.value.push(r);
2441
- }, f = (r) => {
2442
- const v = s.value.findIndex((g) => g.id === r);
2443
- if (v !== -1) {
2444
- const g = s.value[v];
2445
- clearTimeout(g.timer), s.value.splice(v, 1);
2473
+ }, h = (r) => {
2474
+ const y = s.value.findIndex((m) => m.id === r);
2475
+ if (y !== -1) {
2476
+ const m = s.value[y];
2477
+ clearTimeout(m.timer), s.value.splice(y, 1);
2446
2478
  }
2447
2479
  };
2448
2480
  return l({
2449
2481
  addNotification: o
2450
- }), Ce(() => {
2482
+ }), Le(() => {
2451
2483
  s.value.forEach((r) => {
2452
2484
  clearTimeout(r.timer);
2453
2485
  });
2454
- }), (r, v) => (t(), H(Ne, { to: "body" }, [
2455
- z(Pe, {
2486
+ }), (r, y) => (t(), S(Ne, { to: "body" }, [
2487
+ V(We, {
2456
2488
  name: "notification",
2457
2489
  tag: "div",
2458
2490
  class: "fixed top-4 right-4 z-50 space-y-2"
2459
2491
  }, {
2460
- default: Be(() => [
2461
- (t(!0), a(T, null, j(s.value, (g) => (t(), a("div", {
2462
- key: g.id,
2492
+ default: Re(() => [
2493
+ (t(!0), a(j, null, A(s.value, (m) => (t(), a("div", {
2494
+ key: m.id,
2463
2495
  class: "bg-green-500 text-white px-4 py-3 rounded-lg shadow-lg flex items-center gap-3 min-w-64 max-w-sm"
2464
2496
  }, [
2465
- z(D(Ze), { class: "h-5 w-5 text-green-100 flex-shrink-0" }),
2466
- v[0] || (v[0] = e("div", { class: "flex-1" }, [
2497
+ V(I(Qe), { class: "h-5 w-5 text-green-100 flex-shrink-0" }),
2498
+ y[0] || (y[0] = e("div", { class: "flex-1" }, [
2467
2499
  e("p", { class: "font-medium text-sm" }, "Ссылка скопирована!"),
2468
2500
  e("p", { class: "text-xs text-green-100 opacity-90" }, "Файл добавлен в буфер обмена")
2469
2501
  ], -1)),
2470
2502
  e("button", {
2471
- onClick: (k) => f(g.id),
2503
+ onClick: (k) => h(m.id),
2472
2504
  class: "text-green-100 hover:text-white transition-colors flex-shrink-0"
2473
2505
  }, [
2474
- z(D(ve), { class: "h-4 w-4" })
2475
- ], 8, Go)
2506
+ V(I(xe), { class: "h-4 w-4" })
2507
+ ], 8, Ko)
2476
2508
  ]))), 128))
2477
2509
  ]),
2478
2510
  _: 1
2479
2511
  })
2480
2512
  ]));
2481
2513
  }
2482
- }), Ko = /* @__PURE__ */ G(qo, [["__scopeId", "data-v-55903525"]]);
2483
- me.install = function(c) {
2484
- c.component("vs-widget-file", de), c.component("vs-widget-comments", ie), c.component("vs-widget-history", re), c.component("vs-widget-gallery", ce), c.component("vs-widget-map", ue), c.component("vs-group-interface", pe), c.component("CommentsWidget", ie), c.component("HistoryWidget", re), c.component("GalleryWidget", ce), c.component("FilesWidget", de), c.component("MapWidget", ue), c.component("Card", me), c.component("CardItem", Ee), c.component("DescriptionListWidget", ze), c.component("CopyNotification", Ko), c.component("GroupInterfaceWidget", pe);
2514
+ }), Xo = /* @__PURE__ */ G(Jo, [["__scopeId", "data-v-55903525"]]);
2515
+ he.install = function(d) {
2516
+ d.component("vs-widget-file", ue), d.component("vs-widget-comments", de), d.component("vs-widget-history", ce), d.component("vs-widget-gallery", pe), d.component("vs-widget-map", me), d.component("vs-group-interface", ge), d.component("CommentsWidget", de), d.component("HistoryWidget", ce), d.component("GalleryWidget", pe), d.component("FilesWidget", ue), d.component("MapWidget", me), d.component("Card", he), d.component("CardItem", Fe), d.component("DescriptionListWidget", He), d.component("CopyNotification", Xo), d.component("GroupInterfaceWidget", ge);
2485
2517
  };
2486
2518
  export {
2487
- me as Card,
2488
- Ee as CardItem,
2489
- ie as CommentsWidget,
2490
- Ko as CopyNotification,
2491
- ze as DescriptionListWidget,
2492
- de as FilesWidget,
2493
- ce as GalleryWidget,
2494
- pe as GroupInterfaceWidget,
2495
- re as HistoryWidget,
2496
- ue as MapWidget,
2497
- Yn as TableWidget,
2498
- me as default
2519
+ he as Card,
2520
+ Fe as CardItem,
2521
+ de as CommentsWidget,
2522
+ Xo as CopyNotification,
2523
+ He as DescriptionListWidget,
2524
+ ue as FilesWidget,
2525
+ pe as GalleryWidget,
2526
+ ge as GroupInterfaceWidget,
2527
+ ce as HistoryWidget,
2528
+ me as MapWidget,
2529
+ so as TableWidget,
2530
+ he as default
2499
2531
  };