@opengis/form 0.0.22 → 0.0.23
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,15 +1,15 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { notify as
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent as O, ref as x, onMounted as ue, onUnmounted as Ee, createElementBlock as u, openBlock as i, normalizeClass as V, createCommentVNode as j, renderSlot as ge, createElementVNode as l, toDisplayString as F, normalizeProps as Fe, guardReactiveProps as De, createTextVNode as se, computed as D, mergeModels as Q, useModel as X, withDirectives as K, unref as J, vModelText as de, vModelCheckbox as Ye, createVNode as B, createBlock as te, resolveDynamicComponent as _e, normalizeStyle as he, withCtx as $e, withModifiers as ne, onBeforeUnmount as dt, watch as ie, createStaticVNode as re, vModelRadio as et, Fragment as ee, renderList as le, mergeProps as Le, reactive as ct, vShow as Ue, inject as Be, resolveComponent as Ne, Transition as tt, nextTick as Me, Teleport as pt, provide as He } from "vue";
|
|
2
|
+
import { notify as pe, modal as ft, TooltipDirective as qe, VsModal as vt } from "@opengis/core";
|
|
3
|
+
const mt = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "text-[14px] font-medium text-gray-900 mb-2"
|
|
6
|
-
},
|
|
6
|
+
}, ht = { class: "opacity-100" }, gt = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "text-red-500 text-[14px]"
|
|
9
|
-
},
|
|
9
|
+
}, bt = {
|
|
10
10
|
key: 1,
|
|
11
11
|
class: "text-red-500 text-[10px] absolute bottom-[-14px]"
|
|
12
|
-
},
|
|
12
|
+
}, yt = /* @__PURE__ */ O({
|
|
13
13
|
__name: "vs-layout-default",
|
|
14
14
|
props: {
|
|
15
15
|
ua: { default: "" },
|
|
@@ -23,34 +23,34 @@ const vt = {
|
|
|
23
23
|
label: { default: "" }
|
|
24
24
|
},
|
|
25
25
|
setup(o) {
|
|
26
|
-
const e =
|
|
26
|
+
const e = x("uk"), t = (n) => {
|
|
27
27
|
n.detail.key === "locale" && (e.value = n.detail.newValue);
|
|
28
28
|
};
|
|
29
|
-
return
|
|
29
|
+
return ue(() => {
|
|
30
30
|
e.value = localStorage.locale, window.addEventListener("storage", t);
|
|
31
|
-
}),
|
|
31
|
+
}), Ee(() => {
|
|
32
32
|
window.removeEventListener("resize", t);
|
|
33
33
|
}), (n, s) => (i(), u("div", {
|
|
34
|
-
class:
|
|
34
|
+
class: V(["w-full relative", { "opacity-60": n.item.disabled }])
|
|
35
35
|
}, [
|
|
36
|
-
n.ua || n.label ? (i(), u("div",
|
|
37
|
-
l("span",
|
|
38
|
-
n.item?.rules?.includes("required") ? (i(), u("span",
|
|
39
|
-
])) :
|
|
40
|
-
|
|
41
|
-
n.error ? (i(), u("span",
|
|
36
|
+
n.ua || n.label ? (i(), u("div", mt, [
|
|
37
|
+
l("span", ht, F(n.item[e.value] || n.ua || n.label), 1),
|
|
38
|
+
n.item?.rules?.includes("required") ? (i(), u("span", gt, "*")) : j("", !0)
|
|
39
|
+
])) : j("", !0),
|
|
40
|
+
ge(n.$slots, "default", Fe(De(n.$attrs))),
|
|
41
|
+
n.error ? (i(), u("span", bt, F(n.error), 1)) : j("", !0)
|
|
42
42
|
], 2));
|
|
43
43
|
}
|
|
44
|
-
}),
|
|
44
|
+
}), xt = { class: "w-full relative flex flex-row items-center gap-2" }, wt = {
|
|
45
45
|
key: 0,
|
|
46
46
|
class: "text-sm text-gray-900 font-medium flex shrink-0 w-3/12 max-w-[250px]"
|
|
47
|
-
},
|
|
47
|
+
}, kt = {
|
|
48
48
|
key: 0,
|
|
49
49
|
class: "text-red-500 text-[14px]"
|
|
50
|
-
},
|
|
50
|
+
}, _t = {
|
|
51
51
|
key: 1,
|
|
52
52
|
class: "text-red-500 text-[10px] absolute bottom-[-14px]"
|
|
53
|
-
},
|
|
53
|
+
}, $t = /* @__PURE__ */ O({
|
|
54
54
|
__name: "vs-layout-horizontal",
|
|
55
55
|
props: {
|
|
56
56
|
ua: { default: "" },
|
|
@@ -64,19 +64,19 @@ const vt = {
|
|
|
64
64
|
label: { default: "" }
|
|
65
65
|
},
|
|
66
66
|
setup(o) {
|
|
67
|
-
return (e, t) => (i(), u("div",
|
|
68
|
-
e.item?.type !== "html" ? (i(), u("span",
|
|
69
|
-
|
|
70
|
-
e.item?.rules?.includes("required") && (e.ua || e.label) ? (i(), u("span",
|
|
71
|
-
])) :
|
|
72
|
-
|
|
73
|
-
e.error ? (i(), u("span",
|
|
67
|
+
return (e, t) => (i(), u("div", xt, [
|
|
68
|
+
e.item?.type !== "html" ? (i(), u("span", wt, [
|
|
69
|
+
se(F(e.ua || e.label) + " ", 1),
|
|
70
|
+
e.item?.rules?.includes("required") && (e.ua || e.label) ? (i(), u("span", kt, "*")) : j("", !0)
|
|
71
|
+
])) : j("", !0),
|
|
72
|
+
ge(e.$slots, "default", Fe(De(e.$attrs))),
|
|
73
|
+
e.error ? (i(), u("span", _t, F(e.error), 1)) : j("", !0)
|
|
74
74
|
]));
|
|
75
75
|
}
|
|
76
|
-
}),
|
|
76
|
+
}), Ct = { class: "w-full relative" }, Vt = {
|
|
77
77
|
key: 0,
|
|
78
78
|
class: "text-red-500 text-[10px] absolute bottom-[-14px]"
|
|
79
|
-
},
|
|
79
|
+
}, Mt = /* @__PURE__ */ O({
|
|
80
80
|
__name: "vs-layout-inline",
|
|
81
81
|
props: {
|
|
82
82
|
ua: { default: "" },
|
|
@@ -90,17 +90,17 @@ const vt = {
|
|
|
90
90
|
label: { default: "" }
|
|
91
91
|
},
|
|
92
92
|
setup(o) {
|
|
93
|
-
return (e, t) => (i(), u("div",
|
|
94
|
-
|
|
95
|
-
e.error ? (i(), u("span",
|
|
93
|
+
return (e, t) => (i(), u("div", Ct, [
|
|
94
|
+
ge(e.$slots, "default", Fe(De(e.$attrs))),
|
|
95
|
+
e.error ? (i(), u("span", Vt, F(e.error), 1)) : j("", !0)
|
|
96
96
|
]));
|
|
97
97
|
}
|
|
98
98
|
}), Lt = {
|
|
99
|
-
default:
|
|
100
|
-
horizontal:
|
|
101
|
-
inline:
|
|
99
|
+
default: yt,
|
|
100
|
+
horizontal: $t,
|
|
101
|
+
inline: Mt
|
|
102
102
|
};
|
|
103
|
-
function
|
|
103
|
+
function be(o) {
|
|
104
104
|
return {
|
|
105
105
|
inputClass: D(() => {
|
|
106
106
|
const t = `disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor || "blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;
|
|
@@ -108,9 +108,9 @@ function he(o) {
|
|
|
108
108
|
})
|
|
109
109
|
};
|
|
110
110
|
}
|
|
111
|
-
const
|
|
111
|
+
const St = ["placeholder", "disabled"], Ge = /* @__PURE__ */ O({
|
|
112
112
|
__name: "vs-input-text",
|
|
113
|
-
props: /* @__PURE__ */
|
|
113
|
+
props: /* @__PURE__ */ Q({
|
|
114
114
|
style: { default: () => ({}) },
|
|
115
115
|
customClass: { default: "" },
|
|
116
116
|
disabled: { type: Boolean, default: !1 },
|
|
@@ -124,23 +124,23 @@ const Mt = ["placeholder", "disabled"], Ge = /* @__PURE__ */ A({
|
|
|
124
124
|
}),
|
|
125
125
|
emits: ["update:modelValue"],
|
|
126
126
|
setup(o) {
|
|
127
|
-
const e = o, { inputClass: t } =
|
|
128
|
-
return (s, a) =>
|
|
127
|
+
const e = o, { inputClass: t } = be(e.style), n = X(o, "modelValue");
|
|
128
|
+
return (s, a) => K((i(), u("input", {
|
|
129
129
|
type: "text",
|
|
130
130
|
"onUpdate:modelValue": a[0] || (a[0] = (r) => n.value = r),
|
|
131
131
|
placeholder: s.placeholder,
|
|
132
132
|
disabled: s.disabled,
|
|
133
|
-
class:
|
|
133
|
+
class: V(["py-1.5 px-3 block w-full placeholder:text[#767f8f]", [J(t), { "!border-red-600": s.error }]]),
|
|
134
134
|
style: {
|
|
135
135
|
border: "1px solid #CFD9E0"
|
|
136
136
|
}
|
|
137
|
-
}, null, 10,
|
|
138
|
-
[
|
|
137
|
+
}, null, 10, St)), [
|
|
138
|
+
[de, n.value]
|
|
139
139
|
]);
|
|
140
140
|
}
|
|
141
|
-
}),
|
|
141
|
+
}), Bt = ["placeholder"], jt = /* @__PURE__ */ O({
|
|
142
142
|
__name: "vs-input-number",
|
|
143
|
-
props: /* @__PURE__ */
|
|
143
|
+
props: /* @__PURE__ */ Q({
|
|
144
144
|
style: { default: () => ({}) },
|
|
145
145
|
customClass: {},
|
|
146
146
|
disabled: { type: Boolean },
|
|
@@ -154,18 +154,18 @@ const Mt = ["placeholder", "disabled"], Ge = /* @__PURE__ */ A({
|
|
|
154
154
|
}),
|
|
155
155
|
emits: ["update:modelValue"],
|
|
156
156
|
setup(o) {
|
|
157
|
-
const e = o, { inputClass: t } =
|
|
158
|
-
return (s, a) =>
|
|
157
|
+
const e = o, { inputClass: t } = be(e.style), n = X(o, "modelValue");
|
|
158
|
+
return (s, a) => K((i(), u("input", {
|
|
159
159
|
type: "number",
|
|
160
160
|
step: "any",
|
|
161
161
|
"onUpdate:modelValue": a[0] || (a[0] = (r) => n.value = r),
|
|
162
162
|
placeholder: s.placeholder,
|
|
163
|
-
class:
|
|
163
|
+
class: V(["py-1.5 px-3 block w-full", [J(t)]]),
|
|
164
164
|
style: {
|
|
165
165
|
border: "1px solid #CFD9E0"
|
|
166
166
|
}
|
|
167
|
-
}, null, 10,
|
|
168
|
-
[
|
|
167
|
+
}, null, 10, Bt)), [
|
|
168
|
+
[de, n.value]
|
|
169
169
|
]);
|
|
170
170
|
}
|
|
171
171
|
}), R = (o, e) => {
|
|
@@ -173,7 +173,7 @@ const Mt = ["placeholder", "disabled"], Ge = /* @__PURE__ */ A({
|
|
|
173
173
|
for (const [n, s] of e)
|
|
174
174
|
t[n] = s;
|
|
175
175
|
return t;
|
|
176
|
-
},
|
|
176
|
+
}, It = {}, zt = {
|
|
177
177
|
xmlns: "http://www.w3.org/2000/svg",
|
|
178
178
|
viewBox: "0 0 24 24",
|
|
179
179
|
fill: "none",
|
|
@@ -183,8 +183,8 @@ const Mt = ["placeholder", "disabled"], Ge = /* @__PURE__ */ A({
|
|
|
183
183
|
"stroke-linejoin": "round",
|
|
184
184
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-check"
|
|
185
185
|
};
|
|
186
|
-
function
|
|
187
|
-
return i(), u("svg",
|
|
186
|
+
function At(o, e) {
|
|
187
|
+
return i(), u("svg", zt, e[0] || (e[0] = [
|
|
188
188
|
l("path", {
|
|
189
189
|
stroke: "none",
|
|
190
190
|
d: "M0 0h24v24H0z",
|
|
@@ -193,7 +193,7 @@ function zt(o, e) {
|
|
|
193
193
|
l("path", { d: "M5 12l5 5l10 -10" }, null, -1)
|
|
194
194
|
]));
|
|
195
195
|
}
|
|
196
|
-
const
|
|
196
|
+
const Ot = /* @__PURE__ */ R(It, [["render", At]]), Et = { class: "flex items-center gap-[4px]" }, Ft = ["value", "id", "disabled"], Dt = ["for"], Ut = { class: "text-[14px] text-gray-700 flex items-center gap-x-1 ml-1 dark:text-neutral-400" }, Tt = /* @__PURE__ */ O({
|
|
197
197
|
__name: "vs-checkbox-default",
|
|
198
198
|
props: {
|
|
199
199
|
value: { default: "" },
|
|
@@ -211,11 +211,11 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
211
211
|
set: (a) => t("update:modelValue", a)
|
|
212
212
|
});
|
|
213
213
|
return (a, r) => (i(), u("div", Et, [
|
|
214
|
-
|
|
214
|
+
K(l("input", {
|
|
215
215
|
type: "checkbox",
|
|
216
216
|
value: a.value,
|
|
217
217
|
"onUpdate:modelValue": r[0] || (r[0] = (d) => s.value = d),
|
|
218
|
-
class:
|
|
218
|
+
class: V(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer", { "!cursor-not-allowed": a.disabled }]),
|
|
219
219
|
id: a.id,
|
|
220
220
|
disabled: a.disabled
|
|
221
221
|
}, null, 10, Ft), [
|
|
@@ -223,28 +223,28 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
223
223
|
]),
|
|
224
224
|
l("label", {
|
|
225
225
|
for: a.id,
|
|
226
|
-
class:
|
|
226
|
+
class: V(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300", { "!cursor-not-allowed": a.disabled }])
|
|
227
227
|
}, [
|
|
228
228
|
l("div", {
|
|
229
|
-
class:
|
|
229
|
+
class: V(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded", [s.value ? "bg-blue-600 border-blue-600" : "bg-white border-gray-600", a.error ? "border-red-600" : ""]])
|
|
230
230
|
}, [
|
|
231
|
-
|
|
231
|
+
B(Ot, {
|
|
232
232
|
height: "12",
|
|
233
233
|
width: "12"
|
|
234
234
|
})
|
|
235
235
|
], 2),
|
|
236
|
-
l("span",
|
|
237
|
-
|
|
238
|
-
|
|
236
|
+
l("span", Ut, [
|
|
237
|
+
ge(a.$slots, "default", {}, () => [
|
|
238
|
+
se(F(a.label), 1)
|
|
239
239
|
])
|
|
240
240
|
])
|
|
241
|
-
], 10,
|
|
241
|
+
], 10, Dt)
|
|
242
242
|
]));
|
|
243
243
|
}
|
|
244
|
-
}),
|
|
244
|
+
}), Rt = ["name", "value", "disabled"], Pt = { class: "flex items-center gap-[6px] text-[14px]" }, Nt = {
|
|
245
245
|
key: 0,
|
|
246
246
|
class: "text-[16px]"
|
|
247
|
-
},
|
|
247
|
+
}, Ht = ["src"], qt = /* @__PURE__ */ O({
|
|
248
248
|
__name: "vs-checkbox-buttons",
|
|
249
249
|
props: {
|
|
250
250
|
value: { type: [String, Number, Boolean], default: "" },
|
|
@@ -265,39 +265,39 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
265
265
|
}
|
|
266
266
|
}), a = D(() => Array.isArray(s.value) ? s.value.includes(t.value) : s.value === !0 || s.value === t.value), r = D(() => t.style?.size === "xs" ? "p-1.5 text-xs" : t.style?.size === "lg" ? "p-3.5 text-[20px]" : "p-2.5 text-xs");
|
|
267
267
|
return (d, p) => (i(), u("label", {
|
|
268
|
-
class:
|
|
268
|
+
class: V(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg", [r.value, a.value ? "ring-blue-500" : "border border-gray-200 ring-transparent"]])
|
|
269
269
|
}, [
|
|
270
|
-
|
|
270
|
+
K(l("input", {
|
|
271
271
|
type: "checkbox",
|
|
272
272
|
class: "hidden",
|
|
273
273
|
name: d.id,
|
|
274
274
|
value: d.value,
|
|
275
275
|
"onUpdate:modelValue": p[0] || (p[0] = (f) => s.value = f),
|
|
276
276
|
disabled: d.disabled
|
|
277
|
-
}, null, 8,
|
|
277
|
+
}, null, 8, Rt), [
|
|
278
278
|
[Ye, s.value]
|
|
279
279
|
]),
|
|
280
|
-
l("span",
|
|
281
|
-
d.icon || d.imgUrl ? (i(), u("span",
|
|
280
|
+
l("span", Pt, [
|
|
281
|
+
d.icon || d.imgUrl ? (i(), u("span", Nt, [
|
|
282
282
|
d.icon ? (i(), u("i", {
|
|
283
283
|
key: 0,
|
|
284
|
-
class:
|
|
285
|
-
}, null, 2)) :
|
|
284
|
+
class: V(d.icon)
|
|
285
|
+
}, null, 2)) : j("", !0),
|
|
286
286
|
d.imgUrl ? (i(), u("img", {
|
|
287
287
|
key: 1,
|
|
288
288
|
src: d.imgUrl,
|
|
289
289
|
width: "16",
|
|
290
290
|
height: "16",
|
|
291
291
|
alt: "icon"
|
|
292
|
-
}, null, 8,
|
|
293
|
-
])) :
|
|
294
|
-
|
|
295
|
-
|
|
292
|
+
}, null, 8, Ht)) : j("", !0)
|
|
293
|
+
])) : j("", !0),
|
|
294
|
+
ge(d.$slots, "default", {}, () => [
|
|
295
|
+
se(F(d.label), 1)
|
|
296
296
|
])
|
|
297
297
|
])
|
|
298
298
|
], 2));
|
|
299
299
|
}
|
|
300
|
-
}),
|
|
300
|
+
}), Gt = { class: "flex items-center" }, lt = /* @__PURE__ */ O({
|
|
301
301
|
__name: "vs-input-checkbox-item",
|
|
302
302
|
props: {
|
|
303
303
|
value: { default: "" },
|
|
@@ -323,9 +323,9 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
323
323
|
} else
|
|
324
324
|
n("update:modelValue", d);
|
|
325
325
|
}
|
|
326
|
-
}), r =
|
|
327
|
-
return (d, p) => (i(), u("div",
|
|
328
|
-
(i(),
|
|
326
|
+
}), r = x(`vs-checkbox-${t.view || "default"}`);
|
|
327
|
+
return (d, p) => (i(), u("div", Gt, [
|
|
328
|
+
(i(), te(_e(r.value === "vs-checkbox-buttons" ? J(qt) : J(Tt)), {
|
|
329
329
|
value: d.value,
|
|
330
330
|
label: d.label,
|
|
331
331
|
info: d.option?.info,
|
|
@@ -335,17 +335,17 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
335
335
|
id: s,
|
|
336
336
|
icon: d.icon,
|
|
337
337
|
imgUrl: d.imgUrl,
|
|
338
|
-
style:
|
|
338
|
+
style: he(d.style),
|
|
339
339
|
error: d.error
|
|
340
340
|
}, {
|
|
341
|
-
default:
|
|
342
|
-
|
|
341
|
+
default: $e(() => [
|
|
342
|
+
se(F(d.label), 1)
|
|
343
343
|
]),
|
|
344
344
|
_: 1
|
|
345
345
|
}, 8, ["value", "label", "info", "disabled", "modelValue", "icon", "imgUrl", "style", "error"]))
|
|
346
346
|
]));
|
|
347
347
|
}
|
|
348
|
-
}),
|
|
348
|
+
}), Jt = {}, Kt = {
|
|
349
349
|
xmlns: "http://www.w3.org/2000/svg",
|
|
350
350
|
viewBox: "0 0 24 24",
|
|
351
351
|
fill: "none",
|
|
@@ -355,8 +355,8 @@ const At = /* @__PURE__ */ R(jt, [["render", zt]]), Et = { class: "flex items-ce
|
|
|
355
355
|
"stroke-linejoin": "round",
|
|
356
356
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-chevron-down"
|
|
357
357
|
};
|
|
358
|
-
function
|
|
359
|
-
return i(), u("svg",
|
|
358
|
+
function Zt(o, e) {
|
|
359
|
+
return i(), u("svg", Kt, e[0] || (e[0] = [
|
|
360
360
|
l("path", {
|
|
361
361
|
stroke: "none",
|
|
362
362
|
d: "M0 0h24v24H0z",
|
|
@@ -365,7 +365,7 @@ function Kt(o, e) {
|
|
|
365
365
|
l("path", { d: "M6 9l6 6l6 -6" }, null, -1)
|
|
366
366
|
]));
|
|
367
367
|
}
|
|
368
|
-
const
|
|
368
|
+
const Wt = /* @__PURE__ */ R(Jt, [["render", Zt]]), Qt = {}, Xt = {
|
|
369
369
|
xmlns: "http://www.w3.org/2000/svg",
|
|
370
370
|
width: "24",
|
|
371
371
|
height: "24",
|
|
@@ -376,8 +376,8 @@ const Zt = /* @__PURE__ */ R(Gt, [["render", Kt]]), Wt = {}, Qt = {
|
|
|
376
376
|
"stroke-linecap": "round",
|
|
377
377
|
"stroke-linejoin": "round"
|
|
378
378
|
};
|
|
379
|
-
function
|
|
380
|
-
return i(), u("svg",
|
|
379
|
+
function Yt(o, e) {
|
|
380
|
+
return i(), u("svg", Xt, e[0] || (e[0] = [
|
|
381
381
|
l("path", {
|
|
382
382
|
stroke: "none",
|
|
383
383
|
d: "M0 0h24v24H0z",
|
|
@@ -388,15 +388,15 @@ function Xt(o, e) {
|
|
|
388
388
|
l("path", { d: "M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z" }, null, -1)
|
|
389
389
|
]));
|
|
390
390
|
}
|
|
391
|
-
const
|
|
391
|
+
const el = /* @__PURE__ */ R(Qt, [["render", Yt]]), tl = {
|
|
392
392
|
key: 0,
|
|
393
393
|
class: "flex items-start gap-x-1"
|
|
394
|
-
},
|
|
394
|
+
}, ll = {
|
|
395
395
|
key: 0,
|
|
396
396
|
class: "text-red-500 text-[14px]"
|
|
397
|
-
},
|
|
397
|
+
}, ol = ["title"], al = ["disabled"], ot = /* @__PURE__ */ O({
|
|
398
398
|
__name: "vs-input-switcher",
|
|
399
|
-
props: /* @__PURE__ */
|
|
399
|
+
props: /* @__PURE__ */ Q({
|
|
400
400
|
rules: { default: () => [] },
|
|
401
401
|
view: { default: "checkbox" },
|
|
402
402
|
label: { default: "" },
|
|
@@ -415,38 +415,38 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
415
415
|
}),
|
|
416
416
|
emits: ["update:modelValue"],
|
|
417
417
|
setup(o) {
|
|
418
|
-
const e = o, t =
|
|
419
|
-
return (n, s) => e.view === "checkbox" ? (i(), u("div",
|
|
420
|
-
|
|
418
|
+
const e = o, t = X(o, "modelValue");
|
|
419
|
+
return (n, s) => e.view === "checkbox" ? (i(), u("div", tl, [
|
|
420
|
+
B(lt, {
|
|
421
421
|
modelValue: t.value,
|
|
422
422
|
"onUpdate:modelValue": s[0] || (s[0] = (a) => t.value = a),
|
|
423
423
|
label: n.text,
|
|
424
424
|
error: n.error || ""
|
|
425
425
|
}, null, 8, ["modelValue", "label", "error"]),
|
|
426
|
-
n.rules?.includes("required") ? (i(), u("span",
|
|
426
|
+
n.rules?.includes("required") ? (i(), u("span", ll, "*")) : j("", !0),
|
|
427
427
|
n.i ? (i(), u("button", {
|
|
428
428
|
key: 1,
|
|
429
429
|
class: "cursor-pointer",
|
|
430
430
|
title: n.i,
|
|
431
|
-
onClick: s[1] || (s[1] =
|
|
431
|
+
onClick: s[1] || (s[1] = ne(() => {
|
|
432
432
|
}, ["prevent"]))
|
|
433
433
|
}, [
|
|
434
|
-
|
|
435
|
-
], 8,
|
|
434
|
+
B(J(el), { class: "text-gray-500 w-[14px] h-[14px]" })
|
|
435
|
+
], 8, ol)) : j("", !0)
|
|
436
436
|
])) : (i(), u("button", {
|
|
437
437
|
key: 1,
|
|
438
438
|
type: "button",
|
|
439
|
-
class:
|
|
439
|
+
class: V(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50", [t.value ? `bg-${n.style?.primaryColor || "blue"}-500` : "bg-stone-200", n.customClass]]),
|
|
440
440
|
disabled: n.disabled,
|
|
441
441
|
onClick: s[2] || (s[2] = (a) => t.value = !t.value)
|
|
442
442
|
}, [
|
|
443
443
|
l("span", {
|
|
444
444
|
"data-state": "checked",
|
|
445
|
-
class:
|
|
445
|
+
class: V(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform", [t.value ? "translate-x-4" : "translate-x-0"]])
|
|
446
446
|
}, null, 2)
|
|
447
|
-
], 10,
|
|
447
|
+
], 10, al));
|
|
448
448
|
}
|
|
449
|
-
}),
|
|
449
|
+
}), sl = ["innerHTML"], Je = /* @__PURE__ */ O({
|
|
450
450
|
__name: "vs-input-static",
|
|
451
451
|
props: {
|
|
452
452
|
text: { default: "" },
|
|
@@ -461,13 +461,13 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
461
461
|
},
|
|
462
462
|
setup(o) {
|
|
463
463
|
return (e, t) => (i(), u("div", {
|
|
464
|
-
class:
|
|
464
|
+
class: V(e.customClass),
|
|
465
465
|
innerHTML: e.html ? e.html : e.text
|
|
466
|
-
}, null, 10,
|
|
466
|
+
}, null, 10, sl));
|
|
467
467
|
}
|
|
468
|
-
}),
|
|
468
|
+
}), rl = ["placeholder", "disabled", "name"], nl = /* @__PURE__ */ O({
|
|
469
469
|
__name: "vs-input-mask",
|
|
470
|
-
props: /* @__PURE__ */
|
|
470
|
+
props: /* @__PURE__ */ Q({
|
|
471
471
|
name: {},
|
|
472
472
|
mask: { default: "" },
|
|
473
473
|
unmask: { type: Boolean, default: !1 },
|
|
@@ -483,9 +483,9 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
483
483
|
}),
|
|
484
484
|
emits: ["update:modelValue"],
|
|
485
485
|
setup(o) {
|
|
486
|
-
const e = o, { inputClass: t } =
|
|
486
|
+
const e = o, { inputClass: t } = be(e.style), n = X(o, "modelValue"), s = x(null);
|
|
487
487
|
let a = null;
|
|
488
|
-
return
|
|
488
|
+
return ue(async () => {
|
|
489
489
|
if (s.value) {
|
|
490
490
|
const { default: r } = await import("./index-W-qQIppj.js");
|
|
491
491
|
a = r(s.value, {
|
|
@@ -504,7 +504,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
504
504
|
}
|
|
505
505
|
}), dt(() => {
|
|
506
506
|
a?.destroy();
|
|
507
|
-
}),
|
|
507
|
+
}), ie(() => e.mask, (r) => {
|
|
508
508
|
a && a.updateOptions({
|
|
509
509
|
mask: r,
|
|
510
510
|
definitions: {
|
|
@@ -513,7 +513,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
513
513
|
"*": /[a-zA-Z0-9]/
|
|
514
514
|
}
|
|
515
515
|
});
|
|
516
|
-
}),
|
|
516
|
+
}), ie(n, (r) => {
|
|
517
517
|
a && a.unmaskedValue !== r && (a.value = r || "");
|
|
518
518
|
}), (r, d) => (i(), u("input", {
|
|
519
519
|
type: "text",
|
|
@@ -522,15 +522,15 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
522
522
|
placeholder: r.placeholder,
|
|
523
523
|
disabled: r.disabled,
|
|
524
524
|
name: r.name,
|
|
525
|
-
class:
|
|
525
|
+
class: V(["py-1.5 px-3 block w-full placeholder:text[#767f8f]", [J(t)]]),
|
|
526
526
|
style: {
|
|
527
527
|
border: "1px solid #CFD9E0"
|
|
528
528
|
}
|
|
529
|
-
}, null, 10,
|
|
529
|
+
}, null, 10, rl));
|
|
530
530
|
}
|
|
531
|
-
}),
|
|
531
|
+
}), il = { class: "relative w-full bg-white rounded-lg" }, ul = ["placeholder", "disabled"], dl = /* @__PURE__ */ O({
|
|
532
532
|
__name: "vs-input-email",
|
|
533
|
-
props: /* @__PURE__ */
|
|
533
|
+
props: /* @__PURE__ */ Q({
|
|
534
534
|
style: { default: () => ({}) },
|
|
535
535
|
customClass: { default: "" },
|
|
536
536
|
disabled: { type: Boolean, default: !1 },
|
|
@@ -544,26 +544,26 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
544
544
|
}),
|
|
545
545
|
emits: ["update:modelValue"],
|
|
546
546
|
setup(o) {
|
|
547
|
-
const e = o, { inputClass: t } =
|
|
548
|
-
return (s, a) => (i(), u("div",
|
|
549
|
-
a[1] || (a[1] =
|
|
550
|
-
|
|
547
|
+
const e = o, { inputClass: t } = be(e.style), n = X(o, "modelValue");
|
|
548
|
+
return (s, a) => (i(), u("div", il, [
|
|
549
|
+
a[1] || (a[1] = re('<div class="absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="stroke-gray-500 transition-all"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z"></path><path d="M3 7l9 6l9 -6"></path></svg></div>', 1)),
|
|
550
|
+
K(l("input", {
|
|
551
551
|
type: "email",
|
|
552
552
|
"onUpdate:modelValue": a[0] || (a[0] = (r) => n.value = r),
|
|
553
553
|
placeholder: s.placeholder,
|
|
554
554
|
disabled: s.disabled,
|
|
555
|
-
class:
|
|
555
|
+
class: V(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f]", [J(t), { "!border-red-600": s.error }]]),
|
|
556
556
|
style: {
|
|
557
557
|
border: "1px solid #CFD9E0"
|
|
558
558
|
}
|
|
559
|
-
}, null, 10,
|
|
560
|
-
[
|
|
559
|
+
}, null, 10, ul), [
|
|
560
|
+
[de, n.value]
|
|
561
561
|
])
|
|
562
562
|
]));
|
|
563
563
|
}
|
|
564
|
-
}),
|
|
564
|
+
}), cl = ["value", "disabled"], pl = { class: "text-[13px] text-gray-700" }, fl = /* @__PURE__ */ O({
|
|
565
565
|
__name: "vs-input-radio-default",
|
|
566
|
-
props: /* @__PURE__ */
|
|
566
|
+
props: /* @__PURE__ */ Q({
|
|
567
567
|
style: {},
|
|
568
568
|
customClass: { default: "" },
|
|
569
569
|
disabled: { type: Boolean, default: !1 },
|
|
@@ -579,36 +579,36 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
579
579
|
}),
|
|
580
580
|
emits: ["update:modelValue"],
|
|
581
581
|
setup(o) {
|
|
582
|
-
const e =
|
|
582
|
+
const e = X(o, "modelValue");
|
|
583
583
|
return (t, n) => (i(), u("label", {
|
|
584
|
-
class:
|
|
584
|
+
class: V(["flex items-center gap-0", [t.customClass]])
|
|
585
585
|
}, [
|
|
586
|
-
|
|
586
|
+
K(l("input", {
|
|
587
587
|
"onUpdate:modelValue": n[0] || (n[0] = (s) => e.value = s),
|
|
588
588
|
type: "radio",
|
|
589
589
|
value: t.value,
|
|
590
590
|
disabled: t.disabled,
|
|
591
591
|
class: "hidden"
|
|
592
|
-
}, null, 8,
|
|
592
|
+
}, null, 8, cl), [
|
|
593
593
|
[et, e.value]
|
|
594
594
|
]),
|
|
595
595
|
l("span", {
|
|
596
|
-
class:
|
|
596
|
+
class: V(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]", [
|
|
597
597
|
`border-${t.style?.primaryColor || "blue"}-500`,
|
|
598
598
|
t.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
599
599
|
]])
|
|
600
600
|
}, [
|
|
601
601
|
e.value == t.value ? (i(), u("span", {
|
|
602
602
|
key: 0,
|
|
603
|
-
class:
|
|
604
|
-
}, null, 2)) :
|
|
603
|
+
class: V(["w-[12px] h-[12px] shrink-0 rounded-full", [`bg-${t.style?.primaryColor || "blue"}-500`]])
|
|
604
|
+
}, null, 2)) : j("", !0)
|
|
605
605
|
], 2),
|
|
606
|
-
l("span",
|
|
606
|
+
l("span", pl, F(t.text), 1)
|
|
607
607
|
], 2));
|
|
608
608
|
}
|
|
609
|
-
}),
|
|
609
|
+
}), vl = ["value", "disabled"], ml = { class: "text-[13px] text-gray-700" }, hl = /* @__PURE__ */ O({
|
|
610
610
|
__name: "vs-input-radio-buttons",
|
|
611
|
-
props: /* @__PURE__ */
|
|
611
|
+
props: /* @__PURE__ */ Q({
|
|
612
612
|
style: {},
|
|
613
613
|
customClass: { default: "" },
|
|
614
614
|
disabled: { type: Boolean, default: !1 },
|
|
@@ -624,31 +624,31 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
624
624
|
}),
|
|
625
625
|
emits: ["update:modelValue"],
|
|
626
626
|
setup(o) {
|
|
627
|
-
const e =
|
|
627
|
+
const e = X(o, "modelValue");
|
|
628
628
|
return (t, n) => (i(), u("label", {
|
|
629
|
-
class:
|
|
629
|
+
class: V(["flex items-center border rounded-lg px-2 py-1", [
|
|
630
630
|
e.value == t.value ? `ring-2 ring-ring ring-${t.style?.primaryColor || "blue"}-500` : "",
|
|
631
631
|
t.customClass
|
|
632
632
|
]])
|
|
633
633
|
}, [
|
|
634
|
-
|
|
634
|
+
K(l("input", {
|
|
635
635
|
"onUpdate:modelValue": n[0] || (n[0] = (s) => e.value = s),
|
|
636
636
|
type: "radio",
|
|
637
637
|
value: t.value,
|
|
638
638
|
disabled: t.disabled,
|
|
639
639
|
class: "hidden"
|
|
640
|
-
}, null, 8,
|
|
640
|
+
}, null, 8, vl), [
|
|
641
641
|
[et, e.value]
|
|
642
642
|
]),
|
|
643
|
-
l("span",
|
|
643
|
+
l("span", ml, F(t.text), 1)
|
|
644
644
|
], 2));
|
|
645
645
|
}
|
|
646
|
-
}),
|
|
647
|
-
"vs-input-radio-default":
|
|
648
|
-
"vs-input-radio-buttons":
|
|
649
|
-
}, Ke = /* @__PURE__ */
|
|
646
|
+
}), gl = {
|
|
647
|
+
"vs-input-radio-default": fl,
|
|
648
|
+
"vs-input-radio-buttons": hl
|
|
649
|
+
}, Ke = /* @__PURE__ */ O({
|
|
650
650
|
__name: "vs-input-radio",
|
|
651
|
-
props: /* @__PURE__ */
|
|
651
|
+
props: /* @__PURE__ */ Q({
|
|
652
652
|
options: {},
|
|
653
653
|
position: { default: "vertical" },
|
|
654
654
|
view: { default: "default" },
|
|
@@ -665,11 +665,11 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
665
665
|
}),
|
|
666
666
|
emits: ["update:modelValue"],
|
|
667
667
|
setup(o) {
|
|
668
|
-
const e = o, t =
|
|
668
|
+
const e = o, t = X(o, "modelValue"), n = D(() => gl[`vs-input-radio-${e.view}`]);
|
|
669
669
|
return (s, a) => (i(), u("div", {
|
|
670
|
-
class:
|
|
670
|
+
class: V([s.position === "horizontal" ? "flex items-center flex-wrap gap-2" : ""])
|
|
671
671
|
}, [
|
|
672
|
-
(i(!0), u(
|
|
672
|
+
(i(!0), u(ee, null, le(s.options, (r) => (i(), te(_e(n.value), Le({
|
|
673
673
|
key: r?.id,
|
|
674
674
|
text: r.text,
|
|
675
675
|
value: r.id.toString(),
|
|
@@ -679,7 +679,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
679
679
|
}, { ref_for: !0 }, s.$attrs), null, 16, ["text", "value", "checked", "modelValue"]))), 128))
|
|
680
680
|
], 2));
|
|
681
681
|
}
|
|
682
|
-
}),
|
|
682
|
+
}), bl = /* @__PURE__ */ O({
|
|
683
683
|
__name: "vs-input-checkbox",
|
|
684
684
|
props: {
|
|
685
685
|
options: { default: () => [] },
|
|
@@ -698,7 +698,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
698
698
|
},
|
|
699
699
|
emits: ["update:modelValue"],
|
|
700
700
|
setup(o, { emit: e }) {
|
|
701
|
-
const t = o, n = e, s =
|
|
701
|
+
const t = o, n = e, s = x([]), a = ct({}), r = (c) => c?.value || c?.id || c?.text || c, d = (c) => c.text || String(c), p = (c) => `lg:col-span-${c || 12}`, f = async () => {
|
|
702
702
|
try {
|
|
703
703
|
const c = await fetch(`/api/suggest/${t.data}`).then((g) => g.json());
|
|
704
704
|
s.value = c?.data || c;
|
|
@@ -706,7 +706,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
706
706
|
console.error(c);
|
|
707
707
|
}
|
|
708
708
|
};
|
|
709
|
-
return
|
|
709
|
+
return ie(
|
|
710
710
|
() => t.modelValue,
|
|
711
711
|
(c) => {
|
|
712
712
|
if (typeof c == "boolean" && s.value.length === 1) {
|
|
@@ -716,14 +716,14 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
716
716
|
const g = new Set(c);
|
|
717
717
|
s.value.forEach((v) => {
|
|
718
718
|
if (!v.disabled) {
|
|
719
|
-
const
|
|
720
|
-
a[
|
|
719
|
+
const C = r(v);
|
|
720
|
+
a[C] = g.has(C);
|
|
721
721
|
}
|
|
722
722
|
});
|
|
723
723
|
}
|
|
724
724
|
},
|
|
725
725
|
{ immediate: !0 }
|
|
726
|
-
),
|
|
726
|
+
), ie(
|
|
727
727
|
a,
|
|
728
728
|
() => {
|
|
729
729
|
if (!s.value.length) {
|
|
@@ -734,7 +734,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
734
734
|
n("update:modelValue", c.length === 0 ? [] : c);
|
|
735
735
|
},
|
|
736
736
|
{ deep: !0 }
|
|
737
|
-
),
|
|
737
|
+
), ue(() => {
|
|
738
738
|
if (t.data)
|
|
739
739
|
f().then(() => {
|
|
740
740
|
if (typeof t.modelValue == "boolean" && s.value.length === 1) {
|
|
@@ -763,13 +763,13 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
763
763
|
});
|
|
764
764
|
}
|
|
765
765
|
}), (c, g) => (i(), u("div", {
|
|
766
|
-
class:
|
|
766
|
+
class: V(["p-0 w-full gap-[6px]", [c.position === "vertical" ? "flex-col" : "", c.colSpan ? "grid" : "flex justify-start"]])
|
|
767
767
|
}, [
|
|
768
|
-
(i(!0), u(
|
|
768
|
+
(i(!0), u(ee, null, le(s.value, (v) => (i(), te(lt, {
|
|
769
769
|
modelValue: a[r(v)],
|
|
770
|
-
"onUpdate:modelValue": (
|
|
770
|
+
"onUpdate:modelValue": (C) => a[r(v)] = C,
|
|
771
771
|
value: r(v),
|
|
772
|
-
class:
|
|
772
|
+
class: V(p(c.colSpan)),
|
|
773
773
|
disabled: v.disabled,
|
|
774
774
|
label: d(v),
|
|
775
775
|
key: r(v),
|
|
@@ -780,7 +780,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
780
780
|
}, null, 8, ["modelValue", "onUpdate:modelValue", "value", "class", "disabled", "label", "icon", "imgUrl", "option", "view"]))), 128))
|
|
781
781
|
], 2));
|
|
782
782
|
}
|
|
783
|
-
}),
|
|
783
|
+
}), yl = /* @__PURE__ */ R(bl, [["__scopeId", "data-v-91f3584a"]]), xl = ["placeholder", "disabled"], wl = /* @__PURE__ */ O({
|
|
784
784
|
__name: "vs-input-date1",
|
|
785
785
|
props: {
|
|
786
786
|
style: { default: () => ({}) },
|
|
@@ -793,25 +793,25 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
793
793
|
},
|
|
794
794
|
emits: ["update:modelValue"],
|
|
795
795
|
setup(o, { emit: e }) {
|
|
796
|
-
const t = o, { inputClass: n } =
|
|
796
|
+
const t = o, { inputClass: n } = be(t.style), s = e, a = D({
|
|
797
797
|
get: () => t.modelValue?.split(" ")[0],
|
|
798
798
|
set: (r) => s("update:modelValue", r)
|
|
799
799
|
});
|
|
800
|
-
return (r, d) =>
|
|
800
|
+
return (r, d) => K((i(), u("input", {
|
|
801
801
|
type: "date",
|
|
802
802
|
"onUpdate:modelValue": d[0] || (d[0] = (p) => a.value = p),
|
|
803
803
|
placeholder: r.placeholder,
|
|
804
804
|
disabled: r.disabled,
|
|
805
805
|
ref: "date",
|
|
806
|
-
class:
|
|
806
|
+
class: V(["py-1.5 px-3 block w-full placeholder:text[#767f8f]", [r.modelValue ? "" : "text-opacity-50", J(n)].join(" ")]),
|
|
807
807
|
style: {
|
|
808
808
|
border: "1px solid #CFD9E0"
|
|
809
809
|
}
|
|
810
|
-
}, null, 10,
|
|
811
|
-
[
|
|
810
|
+
}, null, 10, xl)), [
|
|
811
|
+
[de, a.value]
|
|
812
812
|
]);
|
|
813
813
|
}
|
|
814
|
-
}),
|
|
814
|
+
}), kl = async (o, e, t, n) => {
|
|
815
815
|
try {
|
|
816
816
|
const s = new FormData();
|
|
817
817
|
return s.append("unique", "true"), s.append("file", o), (await fetch(
|
|
@@ -822,14 +822,14 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
822
822
|
}
|
|
823
823
|
).then((r) => r.json()))?.result;
|
|
824
824
|
} catch (s) {
|
|
825
|
-
return
|
|
825
|
+
return pe({
|
|
826
826
|
type: "error",
|
|
827
827
|
title: "Помилка!",
|
|
828
828
|
message: "Сталась помилка під час завантаження файлу",
|
|
829
829
|
position: "right-bottom"
|
|
830
830
|
}), console.error("Сталась помилка завантаження файлу", s), null;
|
|
831
831
|
}
|
|
832
|
-
},
|
|
832
|
+
}, _l = async (o) => {
|
|
833
833
|
try {
|
|
834
834
|
return await fetch(`file/delete${o}`), !0;
|
|
835
835
|
} catch (e) {
|
|
@@ -842,7 +842,7 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
842
842
|
} catch (e) {
|
|
843
843
|
console.error(e.message);
|
|
844
844
|
}
|
|
845
|
-
},
|
|
845
|
+
}, $l = {}, Cl = {
|
|
846
846
|
xmlns: "http://www.w3.org/2000/svg",
|
|
847
847
|
width: "24",
|
|
848
848
|
height: "24",
|
|
@@ -853,13 +853,13 @@ const Yt = /* @__PURE__ */ R(Wt, [["render", Xt]]), el = {
|
|
|
853
853
|
"stroke-linecap": "round",
|
|
854
854
|
"stroke-linejoin": "round"
|
|
855
855
|
};
|
|
856
|
-
function
|
|
857
|
-
return i(), u("svg",
|
|
856
|
+
function Vl(o, e) {
|
|
857
|
+
return i(), u("svg", Cl, e[0] || (e[0] = [
|
|
858
858
|
l("path", { d: "M5 12h14" }, null, -1),
|
|
859
859
|
l("path", { d: "M12 5v14" }, null, -1)
|
|
860
860
|
]));
|
|
861
861
|
}
|
|
862
|
-
const je = /* @__PURE__ */ R(
|
|
862
|
+
const je = /* @__PURE__ */ R($l, [["render", Vl]]), Ml = {}, Ll = {
|
|
863
863
|
xmlns: "http://www.w3.org/2000/svg",
|
|
864
864
|
class: "icon icon-tabler icon-tabler-file-text",
|
|
865
865
|
width: "44",
|
|
@@ -871,12 +871,12 @@ const je = /* @__PURE__ */ R(_l, [["render", Cl]]), Vl = {}, Ll = {
|
|
|
871
871
|
"stroke-linecap": "round",
|
|
872
872
|
"stroke-linejoin": "round"
|
|
873
873
|
};
|
|
874
|
-
function
|
|
874
|
+
function Sl(o, e, t, n, s, a) {
|
|
875
875
|
return i(), u("svg", Ll, e[0] || (e[0] = [
|
|
876
|
-
|
|
876
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><line x1="9" y1="9" x2="10" y2="9"></line><line x1="9" y1="13" x2="15" y2="13"></line><line x1="9" y1="17" x2="15" y2="17"></line>', 6)
|
|
877
877
|
]));
|
|
878
878
|
}
|
|
879
|
-
const
|
|
879
|
+
const Bl = /* @__PURE__ */ R(Ml, [["render", Sl]]), jl = {}, Il = {
|
|
880
880
|
xmlns: "http://www.w3.org/2000/svg",
|
|
881
881
|
class: "icon icon-tabler icon-tabler-table",
|
|
882
882
|
width: "44",
|
|
@@ -888,8 +888,8 @@ const Sl = /* @__PURE__ */ R(Vl, [["render", Ml]]), Bl = {}, jl = {
|
|
|
888
888
|
"stroke-linecap": "round",
|
|
889
889
|
"stroke-linejoin": "round"
|
|
890
890
|
};
|
|
891
|
-
function
|
|
892
|
-
return i(), u("svg",
|
|
891
|
+
function zl(o, e, t, n, s, a) {
|
|
892
|
+
return i(), u("svg", Il, e[0] || (e[0] = [
|
|
893
893
|
l("path", {
|
|
894
894
|
stroke: "none",
|
|
895
895
|
d: "M0 0h24v24H0z",
|
|
@@ -916,7 +916,7 @@ function Il(o, e, t, n, s, a) {
|
|
|
916
916
|
}, null, -1)
|
|
917
917
|
]));
|
|
918
918
|
}
|
|
919
|
-
const
|
|
919
|
+
const Al = /* @__PURE__ */ R(jl, [["render", zl]]), Ol = {}, El = {
|
|
920
920
|
xmlns: "http://www.w3.org/2000/svg",
|
|
921
921
|
width: "24",
|
|
922
922
|
height: "24",
|
|
@@ -930,10 +930,10 @@ const zl = /* @__PURE__ */ R(Bl, [["render", Il]]), Al = {}, El = {
|
|
|
930
930
|
};
|
|
931
931
|
function Fl(o, e, t, n, s, a) {
|
|
932
932
|
return i(), u("svg", El, e[0] || (e[0] = [
|
|
933
|
-
|
|
933
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M12 17v.01"></path><path d="M12 14a1.5 1.5 0 1 0 -1.14 -2.474"></path>', 5)
|
|
934
934
|
]));
|
|
935
935
|
}
|
|
936
|
-
const
|
|
936
|
+
const Dl = /* @__PURE__ */ R(Ol, [["render", Fl]]), Ul = {}, Tl = {
|
|
937
937
|
xmlns: "http://www.w3.org/2000/svg",
|
|
938
938
|
class: "icon icon-tabler icon-tabler-file-zip",
|
|
939
939
|
width: "44",
|
|
@@ -945,12 +945,12 @@ const Ol = /* @__PURE__ */ R(Al, [["render", Fl]]), Dl = {}, Ul = {
|
|
|
945
945
|
"stroke-linecap": "round",
|
|
946
946
|
"stroke-linejoin": "round"
|
|
947
947
|
};
|
|
948
|
-
function
|
|
949
|
-
return i(), u("svg",
|
|
950
|
-
|
|
948
|
+
function Rl(o, e, t, n, s, a) {
|
|
949
|
+
return i(), u("svg", Tl, e[0] || (e[0] = [
|
|
950
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M6 20.735a2 2 0 0 1 -1 -1.735v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-1"></path><path d="M11 17a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2z"></path><line x1="11" y1="5" x2="10" y2="5"></line><line x1="13" y1="7" x2="12" y2="7"></line><line x1="11" y1="9" x2="10" y2="9"></line><line x1="13" y1="11" x2="12" y2="11"></line><line x1="11" y1="13" x2="10" y2="13"></line><line x1="13" y1="15" x2="12" y2="15"></line>', 9)
|
|
951
951
|
]));
|
|
952
952
|
}
|
|
953
|
-
const
|
|
953
|
+
const Pl = /* @__PURE__ */ R(Ul, [["render", Rl]]), Nl = {}, Hl = {
|
|
954
954
|
xmlns: "http://www.w3.org/2000/svg",
|
|
955
955
|
class: "icon icon-tabler icon-tabler-file-code",
|
|
956
956
|
width: "44",
|
|
@@ -962,25 +962,25 @@ const Rl = /* @__PURE__ */ R(Dl, [["render", Tl]]), Pl = {}, Nl = {
|
|
|
962
962
|
"stroke-linecap": "round",
|
|
963
963
|
"stroke-linejoin": "round"
|
|
964
964
|
};
|
|
965
|
-
function
|
|
966
|
-
return i(), u("svg",
|
|
967
|
-
|
|
965
|
+
function ql(o, e, t, n, s, a) {
|
|
966
|
+
return i(), u("svg", Hl, e[0] || (e[0] = [
|
|
967
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M10 13l-1 2l1 2"></path><path d="M14 13l1 2l-1 2"></path>', 5)
|
|
968
968
|
]));
|
|
969
969
|
}
|
|
970
|
-
const
|
|
970
|
+
const Gl = /* @__PURE__ */ R(Nl, [["render", ql]]), Jl = (o) => {
|
|
971
971
|
if (!o) return "";
|
|
972
972
|
const e = o?.split(".");
|
|
973
973
|
return e[e.length - 1];
|
|
974
|
-
},
|
|
975
|
-
const e =
|
|
974
|
+
}, Kl = (o) => {
|
|
975
|
+
const e = Jl(o), t = {
|
|
976
976
|
imageFormat: ["tiff", "jpg", "jpeg", "png", "svg", "ico", "webp"],
|
|
977
977
|
sheetsFormat: ["xls", "csv", "xlsx"],
|
|
978
978
|
archivesFormat: ["zip", "rar"],
|
|
979
979
|
textsFormat: ["json", "geojson", "txt", "yml", "yaml", "shp"],
|
|
980
980
|
documentsFormat: ["pdf"]
|
|
981
981
|
};
|
|
982
|
-
return t.imageFormat.includes(e) ? "img" : t.sheetsFormat.includes(e) ?
|
|
983
|
-
},
|
|
982
|
+
return t.imageFormat.includes(e) ? "img" : t.sheetsFormat.includes(e) ? Al : t.textsFormat.includes(e) ? Gl : t.documentsFormat.includes(e) ? Bl : t.archivesFormat.includes(e) ? Pl : Dl;
|
|
983
|
+
}, Zl = {}, Wl = {
|
|
984
984
|
xmlns: "http://www.w3.org/2000/svg",
|
|
985
985
|
width: "24",
|
|
986
986
|
height: "24",
|
|
@@ -992,12 +992,12 @@ const ql = /* @__PURE__ */ R(Pl, [["render", Hl]]), Gl = (o) => {
|
|
|
992
992
|
"stroke-linejoin": "round",
|
|
993
993
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-trash"
|
|
994
994
|
};
|
|
995
|
-
function
|
|
996
|
-
return i(), u("svg",
|
|
997
|
-
|
|
995
|
+
function Ql(o, e) {
|
|
996
|
+
return i(), u("svg", Wl, e[0] || (e[0] = [
|
|
997
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 7l16 0"></path><path d="M10 11l0 6"></path><path d="M14 11l0 6"></path><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>', 6)
|
|
998
998
|
]));
|
|
999
999
|
}
|
|
1000
|
-
const
|
|
1000
|
+
const ze = /* @__PURE__ */ R(Zl, [["render", Ql]]), Xl = {}, Yl = {
|
|
1001
1001
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1002
1002
|
width: "24",
|
|
1003
1003
|
height: "24",
|
|
@@ -1009,8 +1009,8 @@ const Ie = /* @__PURE__ */ R(Kl, [["render", Wl]]), Ql = {}, Xl = {
|
|
|
1009
1009
|
"stroke-linejoin": "round",
|
|
1010
1010
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-download"
|
|
1011
1011
|
};
|
|
1012
|
-
function
|
|
1013
|
-
return i(), u("svg",
|
|
1012
|
+
function eo(o, e) {
|
|
1013
|
+
return i(), u("svg", Yl, e[0] || (e[0] = [
|
|
1014
1014
|
l("path", {
|
|
1015
1015
|
stroke: "none",
|
|
1016
1016
|
d: "M0 0h24v24H0z",
|
|
@@ -1021,9 +1021,9 @@ function Yl(o, e) {
|
|
|
1021
1021
|
l("path", { d: "M12 4l0 12" }, null, -1)
|
|
1022
1022
|
]));
|
|
1023
1023
|
}
|
|
1024
|
-
const at = /* @__PURE__ */ R(
|
|
1024
|
+
const at = /* @__PURE__ */ R(Xl, [["render", eo]]), to = { class: "h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file" }, lo = { class: "absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center" }, oo = /* @__PURE__ */ O({
|
|
1025
1025
|
__name: "vs-input-file-list-item",
|
|
1026
|
-
props: /* @__PURE__ */
|
|
1026
|
+
props: /* @__PURE__ */ Q({
|
|
1027
1027
|
format: {},
|
|
1028
1028
|
multiple: { type: Boolean },
|
|
1029
1029
|
style: {},
|
|
@@ -1041,40 +1041,40 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1041
1041
|
}),
|
|
1042
1042
|
emits: ["update:value", "update:item"],
|
|
1043
1043
|
setup(o) {
|
|
1044
|
-
const e =
|
|
1045
|
-
return (s, a) => (i(), u("div",
|
|
1046
|
-
(i(),
|
|
1044
|
+
const e = X(o, "value"), t = X(o, "item"), n = o;
|
|
1045
|
+
return (s, a) => (i(), u("div", to, [
|
|
1046
|
+
(i(), te(_e(J(Kl)(t.value)), {
|
|
1047
1047
|
src: t.value,
|
|
1048
1048
|
alt: "file",
|
|
1049
1049
|
class: "w-full h-full object-cover cursor-pointer",
|
|
1050
|
-
onClick: a[0] || (a[0] = (r) =>
|
|
1050
|
+
onClick: a[0] || (a[0] = (r) => J(Ze)(t.value))
|
|
1051
1051
|
}, null, 8, ["src"])),
|
|
1052
|
-
l("div",
|
|
1052
|
+
l("div", lo, [
|
|
1053
1053
|
l("button", {
|
|
1054
1054
|
type: "button",
|
|
1055
1055
|
onClick: a[1] || (a[1] = (r) => {
|
|
1056
|
-
|
|
1056
|
+
J(_l)(t.value), e.value = n.multiple ? e.value?.filter((d) => d !== t.value) : "";
|
|
1057
1057
|
}),
|
|
1058
1058
|
class: "w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"
|
|
1059
1059
|
}, [
|
|
1060
|
-
|
|
1060
|
+
B(ze, { class: "w-4 h-4" })
|
|
1061
1061
|
]),
|
|
1062
1062
|
l("button", {
|
|
1063
1063
|
type: "button",
|
|
1064
|
-
onClick: a[2] || (a[2] = (r) =>
|
|
1064
|
+
onClick: a[2] || (a[2] = (r) => J(Ze)(t.value)),
|
|
1065
1065
|
class: "w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"
|
|
1066
1066
|
}, [
|
|
1067
|
-
|
|
1067
|
+
B(at, { class: "w-4 h-4" })
|
|
1068
1068
|
])
|
|
1069
1069
|
])
|
|
1070
1070
|
]));
|
|
1071
1071
|
}
|
|
1072
|
-
}), We = /* @__PURE__ */ R(
|
|
1072
|
+
}), We = /* @__PURE__ */ R(oo, [["__scopeId", "data-v-0ca886b3"]]), ao = { class: "flex items-center gap-x-2" }, so = {
|
|
1073
1073
|
key: 1,
|
|
1074
1074
|
class: "flex items-center flex-wrap gap-2"
|
|
1075
|
-
},
|
|
1075
|
+
}, ro = /* @__PURE__ */ O({
|
|
1076
1076
|
__name: "vs-input-file",
|
|
1077
|
-
props: /* @__PURE__ */
|
|
1077
|
+
props: /* @__PURE__ */ Q({
|
|
1078
1078
|
format: {},
|
|
1079
1079
|
multiple: { type: Boolean },
|
|
1080
1080
|
style: {},
|
|
@@ -1090,7 +1090,7 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1090
1090
|
}),
|
|
1091
1091
|
emits: ["update:modelValue"],
|
|
1092
1092
|
setup(o) {
|
|
1093
|
-
const e = o, t =
|
|
1093
|
+
const e = o, t = X(o, "modelValue"), n = x(null), s = (r) => Array.isArray(t.value) && t.value[r] || "", a = async (r) => {
|
|
1094
1094
|
if (e.format) {
|
|
1095
1095
|
const f = r.target.files?.[0];
|
|
1096
1096
|
if (!f || !f.name.endsWith(e.format))
|
|
@@ -1098,10 +1098,10 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1098
1098
|
}
|
|
1099
1099
|
const d = r.target.files?.[0];
|
|
1100
1100
|
if (!d) return;
|
|
1101
|
-
const p = await
|
|
1101
|
+
const p = await kl(d, "1", "form", "table");
|
|
1102
1102
|
t.value = e.multiple ? [...t.value || [], p?.file_path] : p?.file_path;
|
|
1103
1103
|
};
|
|
1104
|
-
return (r, d) => (i(), u("div",
|
|
1104
|
+
return (r, d) => (i(), u("div", ao, [
|
|
1105
1105
|
l("input", {
|
|
1106
1106
|
class: "hidden",
|
|
1107
1107
|
ref_key: "fileInput",
|
|
@@ -1109,14 +1109,14 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1109
1109
|
type: "file",
|
|
1110
1110
|
onChange: a
|
|
1111
1111
|
}, null, 544),
|
|
1112
|
-
!r.multiple && t.value ? (i(),
|
|
1112
|
+
!r.multiple && t.value ? (i(), te(We, {
|
|
1113
1113
|
key: 0,
|
|
1114
1114
|
item: t.value,
|
|
1115
1115
|
"onUpdate:item": d[0] || (d[0] = (p) => t.value = p),
|
|
1116
1116
|
value: t.value,
|
|
1117
1117
|
"onUpdate:value": d[1] || (d[1] = (p) => t.value = p)
|
|
1118
|
-
}, null, 8, ["item", "value"])) : r.multiple ? (i(), u("div",
|
|
1119
|
-
(i(!0), u(
|
|
1118
|
+
}, null, 8, ["item", "value"])) : r.multiple ? (i(), u("div", so, [
|
|
1119
|
+
(i(!0), u(ee, null, le(t.value, (p, f) => (i(), te(We, {
|
|
1120
1120
|
multiple: r.multiple,
|
|
1121
1121
|
key: f,
|
|
1122
1122
|
value: t.value,
|
|
@@ -1125,24 +1125,24 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1125
1125
|
}, null, 8, ["multiple", "value", "item"]))), 128)),
|
|
1126
1126
|
l("div", {
|
|
1127
1127
|
onClick: d[3] || (d[3] = (p) => !r.disabled && n.value?.click()),
|
|
1128
|
-
class:
|
|
1128
|
+
class: V([
|
|
1129
1129
|
"h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",
|
|
1130
1130
|
r.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:border-blue-500 hover:bg-blue-50"
|
|
1131
1131
|
])
|
|
1132
1132
|
}, [
|
|
1133
|
-
|
|
1133
|
+
B(je, { class: "w-6 h-6" })
|
|
1134
1134
|
], 2)
|
|
1135
|
-
])) :
|
|
1136
|
-
r.multiple ?
|
|
1135
|
+
])) : j("", !0),
|
|
1136
|
+
r.multiple ? j("", !0) : (i(), u("div", {
|
|
1137
1137
|
key: 2,
|
|
1138
1138
|
onClick: d[4] || (d[4] = (p) => n.value?.click()),
|
|
1139
|
-
class:
|
|
1139
|
+
class: V([r.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:border-blue-500", "h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])
|
|
1140
1140
|
}, [
|
|
1141
|
-
|
|
1141
|
+
B(je, { class: "w-6 h-6" })
|
|
1142
1142
|
], 2))
|
|
1143
1143
|
]));
|
|
1144
1144
|
}
|
|
1145
|
-
}),
|
|
1145
|
+
}), no = { class: "max-w-[55vw]" }, io = { class: "text-sm font-semibold text-gray-800 truncate dark:text-neutral-200" }, uo = { class: "flex items-center text-xs text-gray-500 truncate dark:text-neutral-500" }, co = { class: "px-[5px]" }, po = { class: "" }, Se = /* @__PURE__ */ O({
|
|
1146
1146
|
__name: "vs-widget-file-info",
|
|
1147
1147
|
props: {
|
|
1148
1148
|
item: { default: null }
|
|
@@ -1165,35 +1165,35 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1165
1165
|
const a = s / 1024;
|
|
1166
1166
|
return a < 1024 ? `${a.toFixed(2)} KB` : `${(a / 1024).toFixed(2)} MB`;
|
|
1167
1167
|
}
|
|
1168
|
-
return (s, a) => (i(), u(
|
|
1169
|
-
a[1] || (a[1] =
|
|
1170
|
-
l("div",
|
|
1171
|
-
l("p",
|
|
1172
|
-
l("p",
|
|
1168
|
+
return (s, a) => (i(), u(ee, null, [
|
|
1169
|
+
a[1] || (a[1] = re('<div class="flex items-center justify-center h-[30px] w-[30px]"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path></svg></div>', 1)),
|
|
1170
|
+
l("div", no, [
|
|
1171
|
+
l("p", io, F(s.item?.uploaded_name), 1),
|
|
1172
|
+
l("p", uo, [
|
|
1173
1173
|
l("span", null, F(s.item?.username), 1),
|
|
1174
|
-
|
|
1174
|
+
K(l("span", co, "|", 512), [
|
|
1175
1175
|
[Ue, s.item?.username]
|
|
1176
1176
|
]),
|
|
1177
1177
|
l("span", null, F(t.value), 1),
|
|
1178
1178
|
a[0] || (a[0] = l("span", { class: "px-[5px]" }, "|", -1)),
|
|
1179
|
-
l("span",
|
|
1179
|
+
l("span", po, F(n(s.item?.size)), 1)
|
|
1180
1180
|
])
|
|
1181
1181
|
])
|
|
1182
1182
|
], 64));
|
|
1183
1183
|
}
|
|
1184
|
-
}),
|
|
1184
|
+
}), fo = { class: "p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full" }, vo = {
|
|
1185
1185
|
key: 0,
|
|
1186
1186
|
class: "flex w-full gap-x-3 items-center"
|
|
1187
|
-
},
|
|
1187
|
+
}, mo = {
|
|
1188
1188
|
key: 1,
|
|
1189
1189
|
class: "flex gap-x-3 w-full items-center"
|
|
1190
|
-
},
|
|
1190
|
+
}, ho = {
|
|
1191
1191
|
key: 2,
|
|
1192
1192
|
class: "flex gap-x-3 w-full items-center"
|
|
1193
|
-
},
|
|
1193
|
+
}, go = ["href"], bo = {
|
|
1194
1194
|
key: 3,
|
|
1195
1195
|
class: "flex gap-x-3 w-full items-center"
|
|
1196
|
-
},
|
|
1196
|
+
}, yo = { class: "lg:absolute lg:top-3 lg:end-1 opacity-100" }, xo = { class: "p-0.5 sm:p-1 inline-flex items-center gap-0.5 bg-white rounded-lg dark:bg-neutral-800 dark:border-neutral-700" }, wo = { class: "inline-block" }, ko = { class: "inline-block" }, _o = /* @__PURE__ */ O({
|
|
1197
1197
|
__name: "vs-widget-file-item",
|
|
1198
1198
|
props: {
|
|
1199
1199
|
item: { default: null },
|
|
@@ -1235,48 +1235,48 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1235
1235
|
function f(c) {
|
|
1236
1236
|
(t.item.ext === "jpg" || t.item.ext === "png") && n("openLightbox", { item: t.item, index: c });
|
|
1237
1237
|
}
|
|
1238
|
-
return (c, g) => (i(), u("div",
|
|
1239
|
-
c.item.ext === "jpg" || c.item.ext === "png" ? (i(), u("div",
|
|
1238
|
+
return (c, g) => (i(), u("div", fo, [
|
|
1239
|
+
c.item.ext === "jpg" || c.item.ext === "png" ? (i(), u("div", vo, [
|
|
1240
1240
|
l("div", {
|
|
1241
1241
|
class: "max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",
|
|
1242
1242
|
onClick: g[0] || (g[0] = (v) => f(c.index))
|
|
1243
1243
|
}, [
|
|
1244
|
-
|
|
1244
|
+
B(Se, { item: c.item }, null, 8, ["item"])
|
|
1245
1245
|
])
|
|
1246
|
-
])) : s(c.item) ? (i(), u("div",
|
|
1247
|
-
|
|
1248
|
-
])) : a(c.item) ? (i(), u("div",
|
|
1246
|
+
])) : s(c.item) ? (i(), u("div", mo, [
|
|
1247
|
+
B(Se, { item: c.item }, null, 8, ["item"])
|
|
1248
|
+
])) : a(c.item) ? (i(), u("div", ho, [
|
|
1249
1249
|
l("a", {
|
|
1250
1250
|
href: `/api/file-preview?id=${c.item.file_id}`,
|
|
1251
1251
|
target: "_blank",
|
|
1252
1252
|
class: "flex gap-x-3 w-full items-center"
|
|
1253
1253
|
}, [
|
|
1254
|
-
|
|
1255
|
-
], 8,
|
|
1256
|
-
])) : (i(), u("div",
|
|
1257
|
-
|
|
1254
|
+
B(Se, { item: c.item }, null, 8, ["item"])
|
|
1255
|
+
], 8, go)
|
|
1256
|
+
])) : (i(), u("div", bo, [
|
|
1257
|
+
B(Se, { item: c.item }, null, 8, ["item"])
|
|
1258
1258
|
])),
|
|
1259
|
-
l("div",
|
|
1260
|
-
l("div",
|
|
1261
|
-
l("div",
|
|
1259
|
+
l("div", yo, [
|
|
1260
|
+
l("div", xo, [
|
|
1261
|
+
l("div", wo, [
|
|
1262
1262
|
l("button", {
|
|
1263
1263
|
class: "inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",
|
|
1264
1264
|
onClick: g[1] || (g[1] = (v) => r(c.item))
|
|
1265
1265
|
}, [
|
|
1266
|
-
|
|
1266
|
+
B(at, {
|
|
1267
1267
|
height: "14",
|
|
1268
1268
|
width: "14"
|
|
1269
1269
|
})
|
|
1270
1270
|
])
|
|
1271
1271
|
]),
|
|
1272
1272
|
g[3] || (g[3] = l("div", { class: "w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700" }, null, -1)),
|
|
1273
|
-
l("div",
|
|
1273
|
+
l("div", ko, [
|
|
1274
1274
|
l("button", {
|
|
1275
1275
|
type: "button",
|
|
1276
1276
|
class: "size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",
|
|
1277
1277
|
onClick: g[2] || (g[2] = (v) => p())
|
|
1278
1278
|
}, [
|
|
1279
|
-
|
|
1279
|
+
B(ze, {
|
|
1280
1280
|
height: "14",
|
|
1281
1281
|
width: "14"
|
|
1282
1282
|
})
|
|
@@ -1286,7 +1286,7 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1286
1286
|
])
|
|
1287
1287
|
]));
|
|
1288
1288
|
}
|
|
1289
|
-
}),
|
|
1289
|
+
}), $o = {}, Co = {
|
|
1290
1290
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1291
1291
|
width: "24",
|
|
1292
1292
|
height: "24",
|
|
@@ -1298,8 +1298,8 @@ const at = /* @__PURE__ */ R(Ql, [["render", Yl]]), eo = { class: "h-[120px] w-[
|
|
|
1298
1298
|
"stroke-linejoin": "round",
|
|
1299
1299
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-download"
|
|
1300
1300
|
};
|
|
1301
|
-
function
|
|
1302
|
-
return i(), u("svg",
|
|
1301
|
+
function Vo(o, e) {
|
|
1302
|
+
return i(), u("svg", Co, e[0] || (e[0] = [
|
|
1303
1303
|
l("path", {
|
|
1304
1304
|
stroke: "none",
|
|
1305
1305
|
d: "M0 0h24v24H0z",
|
|
@@ -1310,13 +1310,13 @@ function Co(o, e) {
|
|
|
1310
1310
|
l("path", { d: "M12 4l0 12" }, null, -1)
|
|
1311
1311
|
]));
|
|
1312
1312
|
}
|
|
1313
|
-
const
|
|
1313
|
+
const Mo = /* @__PURE__ */ R($o, [["render", Vo]]), Lo = { class: "flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full" }, So = { class: "flex w-full mb-[12px] items-center gap-x-2" }, Bo = { class: "font-semibold text-gray-800 dark:text-neutral-200 text-[14px]" }, jo = { class1: "ml-auto" }, Io = { class: "py-1.5 px-4 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg bg-gray-100 cursor-pointer hover:bg-gray-200 text-gray-800 shadow-2xs hover:bg-gray-50 focus:outline-hidden focus:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700" }, zo = {
|
|
1314
1314
|
key: 0,
|
|
1315
1315
|
class: "py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"
|
|
1316
|
-
},
|
|
1316
|
+
}, Ao = { class: "relative" }, Oo = {
|
|
1317
1317
|
key: 1,
|
|
1318
1318
|
class: "space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"
|
|
1319
|
-
}, Eo = { key: 0 }, Fo = /* @__PURE__ */
|
|
1319
|
+
}, Eo = { key: 0 }, Fo = /* @__PURE__ */ O({
|
|
1320
1320
|
__name: "vs-input-file-list",
|
|
1321
1321
|
props: {
|
|
1322
1322
|
id: { default: "" },
|
|
@@ -1331,57 +1331,57 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1331
1331
|
},
|
|
1332
1332
|
emits: ["update"],
|
|
1333
1333
|
setup(o, { emit: e }) {
|
|
1334
|
-
const t = o, n = Be("form"), s = D(() => n.value.formId), a =
|
|
1335
|
-
const h = v.value.findIndex((
|
|
1334
|
+
const t = o, n = Be("form"), s = D(() => n.value.formId), a = x(!1), r = x(0), d = e, p = x(!1), f = x({}), c = x([]), g = x(""), v = D(() => Array.isArray(c.value) ? c.value.filter((b) => b.ext === "jpg" || b.ext === "png").map((b) => b?.file_path) : []), C = D(() => g.value === "" ? c.value : c.value.filter((b) => b?.uploaded_name?.includes(g.value))), z = (b) => {
|
|
1335
|
+
const h = v.value.findIndex((Z) => Z === b.item.file_path);
|
|
1336
1336
|
h !== -1 && (a.value = !0, r.value = h);
|
|
1337
1337
|
}, U = async () => {
|
|
1338
1338
|
try {
|
|
1339
|
-
const
|
|
1340
|
-
c.value =
|
|
1341
|
-
} catch (
|
|
1342
|
-
console.error(
|
|
1339
|
+
const b = await fetch(`${t.prefix}/widget/file/${s.value}`).then((h) => h.json());
|
|
1340
|
+
c.value = b?.rows;
|
|
1341
|
+
} catch (b) {
|
|
1342
|
+
console.error(b);
|
|
1343
1343
|
}
|
|
1344
|
-
}, T = async (
|
|
1344
|
+
}, T = async (b) => {
|
|
1345
1345
|
await Promise.all(
|
|
1346
|
-
Array.from(
|
|
1347
|
-
const
|
|
1348
|
-
|
|
1346
|
+
Array.from(b.target.files).map(async (h) => {
|
|
1347
|
+
const Z = new FormData();
|
|
1348
|
+
Z.append("file", h);
|
|
1349
1349
|
try {
|
|
1350
|
-
const
|
|
1351
|
-
return await fetch(
|
|
1352
|
-
} catch (
|
|
1353
|
-
return console.error(
|
|
1350
|
+
const P = `${t.prefix}/widget/file/${s.value}`;
|
|
1351
|
+
return await fetch(P, { method: "POST", body: Z }), d("update", "file-list"), h;
|
|
1352
|
+
} catch (P) {
|
|
1353
|
+
return console.error(P), null;
|
|
1354
1354
|
}
|
|
1355
1355
|
})
|
|
1356
1356
|
), await U();
|
|
1357
|
-
},
|
|
1358
|
-
const h = { ...
|
|
1359
|
-
return
|
|
1357
|
+
}, N = (b) => {
|
|
1358
|
+
const h = { ...b };
|
|
1359
|
+
return b.cancel || (h.cancel = () => {
|
|
1360
1360
|
p.value = !1;
|
|
1361
|
-
}),
|
|
1362
|
-
await
|
|
1361
|
+
}), b.updateListOnConfirm && (h.confirm = async () => {
|
|
1362
|
+
await b.confirm(), p.value = !1, U();
|
|
1363
1363
|
}), h;
|
|
1364
|
-
}, _ = (
|
|
1365
|
-
f.value =
|
|
1364
|
+
}, _ = (b) => {
|
|
1365
|
+
f.value = N(b), p.value = !0;
|
|
1366
1366
|
};
|
|
1367
|
-
return
|
|
1368
|
-
|
|
1369
|
-
}),
|
|
1367
|
+
return ie(s, (b) => {
|
|
1368
|
+
b && U();
|
|
1369
|
+
}), ue(() => {
|
|
1370
1370
|
s.value && U();
|
|
1371
|
-
}), (
|
|
1372
|
-
const
|
|
1371
|
+
}), (b, h) => {
|
|
1372
|
+
const Z = Ne("Lightbox"), P = Ne("MessageBox");
|
|
1373
1373
|
return i(), u("div", Lo, [
|
|
1374
|
-
l("div",
|
|
1375
|
-
l("h2",
|
|
1376
|
-
l("div",
|
|
1374
|
+
l("div", So, [
|
|
1375
|
+
l("h2", Bo, " Файлів: " + F(c.value?.length), 1),
|
|
1376
|
+
l("div", jo, [
|
|
1377
1377
|
l("label", null, [
|
|
1378
1378
|
l("input", {
|
|
1379
1379
|
type: "file",
|
|
1380
1380
|
class: "hidden",
|
|
1381
|
-
onChange: h[0] || (h[0] = (
|
|
1381
|
+
onChange: h[0] || (h[0] = (M) => T(M))
|
|
1382
1382
|
}, null, 32),
|
|
1383
|
-
l("div",
|
|
1384
|
-
|
|
1383
|
+
l("div", Io, [
|
|
1384
|
+
B(Mo, {
|
|
1385
1385
|
height: "16",
|
|
1386
1386
|
width: "16"
|
|
1387
1387
|
})
|
|
@@ -1389,9 +1389,9 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1389
1389
|
])
|
|
1390
1390
|
])
|
|
1391
1391
|
]),
|
|
1392
|
-
c.value?.length > 4 ? (i(), u("div",
|
|
1392
|
+
c.value?.length > 4 ? (i(), u("div", zo, [
|
|
1393
1393
|
l("div", null, [
|
|
1394
|
-
l("div",
|
|
1394
|
+
l("div", Ao, [
|
|
1395
1395
|
h[8] || (h[8] = l("div", { class: "absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5" }, [
|
|
1396
1396
|
l("svg", {
|
|
1397
1397
|
class: "flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400",
|
|
@@ -1413,14 +1413,14 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1413
1413
|
l("path", { d: "m21 21-4.3-4.3" })
|
|
1414
1414
|
])
|
|
1415
1415
|
], -1)),
|
|
1416
|
-
|
|
1416
|
+
K(l("input", {
|
|
1417
1417
|
type: "text",
|
|
1418
|
-
"onUpdate:modelValue": h[1] || (h[1] = (
|
|
1418
|
+
"onUpdate:modelValue": h[1] || (h[1] = (M) => g.value = M),
|
|
1419
1419
|
class: "py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",
|
|
1420
1420
|
placeholder: "Введіть назву файлу"
|
|
1421
1421
|
}, null, 512), [
|
|
1422
1422
|
[
|
|
1423
|
-
|
|
1423
|
+
de,
|
|
1424
1424
|
g.value,
|
|
1425
1425
|
void 0,
|
|
1426
1426
|
{ trim: !0 }
|
|
@@ -1428,37 +1428,37 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1428
1428
|
])
|
|
1429
1429
|
])
|
|
1430
1430
|
])
|
|
1431
|
-
])) :
|
|
1432
|
-
c.value?.length ? (i(), u("div",
|
|
1433
|
-
(i(!0), u(
|
|
1434
|
-
key:
|
|
1435
|
-
prefix:
|
|
1436
|
-
item:
|
|
1437
|
-
index:
|
|
1438
|
-
onUpdate: h[2] || (h[2] = (
|
|
1439
|
-
onOpenModal: h[3] || (h[3] = (
|
|
1440
|
-
onOpenLightbox: h[4] || (h[4] = (
|
|
1431
|
+
])) : j("", !0),
|
|
1432
|
+
c.value?.length ? (i(), u("div", Oo, [
|
|
1433
|
+
(i(!0), u(ee, null, le(C.value, (M, H) => (i(), te(_o, {
|
|
1434
|
+
key: H,
|
|
1435
|
+
prefix: b.prefix,
|
|
1436
|
+
item: M,
|
|
1437
|
+
index: H,
|
|
1438
|
+
onUpdate: h[2] || (h[2] = (Y) => b.$emit("update", "file-list")),
|
|
1439
|
+
onOpenModal: h[3] || (h[3] = (Y) => _(Y)),
|
|
1440
|
+
onOpenLightbox: h[4] || (h[4] = (Y) => z(Y))
|
|
1441
1441
|
}, null, 8, ["prefix", "item", "index"]))), 128)),
|
|
1442
|
-
|
|
1442
|
+
C.value.length ? j("", !0) : (i(), u("div", Eo, h[9] || (h[9] = [
|
|
1443
1443
|
l("p", { class: "text-sm text-gray-600 font-sm" }, " Файлів з такою назвою не існує, введіть інше пошукове слово ", -1)
|
|
1444
1444
|
])))
|
|
1445
|
-
])) :
|
|
1446
|
-
|
|
1445
|
+
])) : j("", !0),
|
|
1446
|
+
B(Z, {
|
|
1447
1447
|
modelValue: a.value,
|
|
1448
|
-
"onUpdate:modelValue": h[5] || (h[5] = (
|
|
1448
|
+
"onUpdate:modelValue": h[5] || (h[5] = (M) => a.value = M),
|
|
1449
1449
|
startIndex: r.value,
|
|
1450
|
-
"onUpdate:index": h[6] || (h[6] = (
|
|
1450
|
+
"onUpdate:index": h[6] || (h[6] = (M) => r.value = M),
|
|
1451
1451
|
images: v.value
|
|
1452
1452
|
}, null, 8, ["modelValue", "startIndex", "images"]),
|
|
1453
|
-
|
|
1453
|
+
B(P, Le({
|
|
1454
1454
|
modelValue: p.value,
|
|
1455
|
-
"onUpdate:modelValue": h[7] || (h[7] = (
|
|
1455
|
+
"onUpdate:modelValue": h[7] || (h[7] = (M) => p.value = M),
|
|
1456
1456
|
onConfirm: f.value.confirm
|
|
1457
1457
|
}, f.value), null, 16, ["modelValue", "onConfirm"])
|
|
1458
1458
|
]);
|
|
1459
1459
|
};
|
|
1460
1460
|
}
|
|
1461
|
-
}),
|
|
1461
|
+
}), Do = { class: "flex items-center justify-between" }, Uo = { class: "text-[16px] text-gray-900 font-medium" }, To = { class: "grid gap-3" }, Ro = /* @__PURE__ */ O({
|
|
1462
1462
|
__name: "vs-container-switcher",
|
|
1463
1463
|
props: {
|
|
1464
1464
|
title: {
|
|
@@ -1475,25 +1475,25 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1475
1475
|
}
|
|
1476
1476
|
},
|
|
1477
1477
|
setup(o) {
|
|
1478
|
-
const e = o, t =
|
|
1479
|
-
return
|
|
1478
|
+
const e = o, t = x(e.isOpen);
|
|
1479
|
+
return ie(
|
|
1480
1480
|
() => e.isOpen,
|
|
1481
1481
|
(n) => {
|
|
1482
1482
|
t.value = n;
|
|
1483
1483
|
}
|
|
1484
1484
|
), (n, s) => (i(), u("div", null, [
|
|
1485
|
-
l("div",
|
|
1486
|
-
l("p",
|
|
1487
|
-
|
|
1485
|
+
l("div", Do, [
|
|
1486
|
+
l("p", Uo, F(o.title), 1),
|
|
1487
|
+
B(ot, {
|
|
1488
1488
|
modelValue: t.value,
|
|
1489
1489
|
"onUpdate:modelValue": s[0] || (s[0] = (a) => t.value = a),
|
|
1490
|
-
style:
|
|
1490
|
+
style: he(o.style)
|
|
1491
1491
|
}, null, 8, ["modelValue", "style"])
|
|
1492
1492
|
]),
|
|
1493
|
-
|
|
1494
|
-
default:
|
|
1495
|
-
|
|
1496
|
-
|
|
1493
|
+
B(tt, { name: "slide-fade" }, {
|
|
1494
|
+
default: $e(() => [
|
|
1495
|
+
K(l("div", To, [
|
|
1496
|
+
ge(n.$slots, "default", {}, void 0, !0)
|
|
1497
1497
|
], 512), [
|
|
1498
1498
|
[Ue, t.value]
|
|
1499
1499
|
])
|
|
@@ -1502,7 +1502,7 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1502
1502
|
})
|
|
1503
1503
|
]));
|
|
1504
1504
|
}
|
|
1505
|
-
}),
|
|
1505
|
+
}), Po = /* @__PURE__ */ R(Ro, [["__scopeId", "data-v-90320b87"]]), No = { class: "text-[16px] text-gray-900 font-medium" }, Ho = { class: "grid gap-3" }, qo = /* @__PURE__ */ O({
|
|
1506
1506
|
__name: "vs-container-accordion",
|
|
1507
1507
|
props: {
|
|
1508
1508
|
title: {
|
|
@@ -1519,8 +1519,8 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1519
1519
|
}
|
|
1520
1520
|
},
|
|
1521
1521
|
setup(o) {
|
|
1522
|
-
const e = o, t =
|
|
1523
|
-
return
|
|
1522
|
+
const e = o, t = x(e.isOpen);
|
|
1523
|
+
return ie(
|
|
1524
1524
|
() => e.isOpen,
|
|
1525
1525
|
(n) => {
|
|
1526
1526
|
t.value = n;
|
|
@@ -1531,15 +1531,15 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1531
1531
|
onClick: s[0] || (s[0] = (a) => t.value = !t.value),
|
|
1532
1532
|
class: "flex items-center gap-2"
|
|
1533
1533
|
}, [
|
|
1534
|
-
|
|
1535
|
-
class:
|
|
1534
|
+
B(J(Wt), {
|
|
1535
|
+
class: V(["h-4 w-4 duration-300", [t.value ? "-rotate-180" : ""]])
|
|
1536
1536
|
}, null, 8, ["class"]),
|
|
1537
|
-
l("span",
|
|
1537
|
+
l("span", No, F(o.title), 1)
|
|
1538
1538
|
]),
|
|
1539
|
-
|
|
1540
|
-
default:
|
|
1541
|
-
|
|
1542
|
-
|
|
1539
|
+
B(tt, { name: "slide-fade" }, {
|
|
1540
|
+
default: $e(() => [
|
|
1541
|
+
K(l("div", Ho, [
|
|
1542
|
+
ge(n.$slots, "default", {}, void 0, !0)
|
|
1543
1543
|
], 512), [
|
|
1544
1544
|
[Ue, t.value]
|
|
1545
1545
|
])
|
|
@@ -1548,7 +1548,7 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1548
1548
|
})
|
|
1549
1549
|
]));
|
|
1550
1550
|
}
|
|
1551
|
-
}),
|
|
1551
|
+
}), Go = /* @__PURE__ */ R(qo, [["__scopeId", "data-v-590eff11"]]), Jo = { class: "flex items-center justify-between" }, Ko = /* @__PURE__ */ O({
|
|
1552
1552
|
__name: "vs-container-default",
|
|
1553
1553
|
props: {
|
|
1554
1554
|
title: {
|
|
@@ -1562,17 +1562,17 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1562
1562
|
},
|
|
1563
1563
|
setup(o) {
|
|
1564
1564
|
return (e, t) => (i(), u("div", null, [
|
|
1565
|
-
l("div",
|
|
1565
|
+
l("div", Jo, [
|
|
1566
1566
|
l("p", null, F(o.title), 1)
|
|
1567
1567
|
]),
|
|
1568
|
-
|
|
1568
|
+
ge(e.$slots, "default")
|
|
1569
1569
|
]));
|
|
1570
1570
|
}
|
|
1571
|
-
}),
|
|
1572
|
-
switcher:
|
|
1573
|
-
accordion:
|
|
1574
|
-
default:
|
|
1575
|
-
},
|
|
1571
|
+
}), Zo = {
|
|
1572
|
+
switcher: Po,
|
|
1573
|
+
accordion: Go,
|
|
1574
|
+
default: Ko
|
|
1575
|
+
}, ae = {
|
|
1576
1576
|
Equal: "==",
|
|
1577
1577
|
Inequal: "!=",
|
|
1578
1578
|
Higer: ">",
|
|
@@ -1585,37 +1585,37 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1585
1585
|
Contain: "*",
|
|
1586
1586
|
In: "in",
|
|
1587
1587
|
NotIn: "not_in"
|
|
1588
|
-
},
|
|
1588
|
+
}, Wo = (o, e) => String(o) === String(e), Qo = (o, e) => String(o) !== String(e), Xo = (o, e) => o > e, Yo = (o, e) => o >= e, ea = (o, e) => o < e, ta = (o, e) => o <= e, la = (o, e) => Array.isArray(e) && e.length === 2 ? o >= e[0] && o <= e[1] : !1, oa = (o, e) => String(o).startsWith(String(e)), aa = (o, e) => String(o).endsWith(String(e)), sa = (o, e) => String(o).includes(String(e)), ra = (o, e) => Array.isArray(e) ? e.includes(o) : !1, na = (o, e) => Array.isArray(e) ? !e.includes(o) : !0, st = (o, e) => {
|
|
1589
1589
|
if (!e) return !0;
|
|
1590
1590
|
switch (e?.[1]) {
|
|
1591
|
-
case
|
|
1592
|
-
return Zo(o, e?.[2]);
|
|
1593
|
-
case le.Inequal:
|
|
1591
|
+
case ae.Equal:
|
|
1594
1592
|
return Wo(o, e?.[2]);
|
|
1595
|
-
case
|
|
1593
|
+
case ae.Inequal:
|
|
1596
1594
|
return Qo(o, e?.[2]);
|
|
1597
|
-
case
|
|
1595
|
+
case ae.Higer:
|
|
1598
1596
|
return Xo(o, e?.[2]);
|
|
1599
|
-
case
|
|
1597
|
+
case ae.HigerOrEqual:
|
|
1600
1598
|
return Yo(o, e?.[2]);
|
|
1601
|
-
case
|
|
1599
|
+
case ae.Lower:
|
|
1602
1600
|
return ea(o, e?.[2]);
|
|
1603
|
-
case
|
|
1601
|
+
case ae.LowerOrEqual:
|
|
1604
1602
|
return ta(o, e?.[2]);
|
|
1605
|
-
case
|
|
1603
|
+
case ae.Between:
|
|
1606
1604
|
return la(o, e?.[2]);
|
|
1607
|
-
case
|
|
1605
|
+
case ae.StartWith:
|
|
1608
1606
|
return oa(o, e?.[2]);
|
|
1609
|
-
case
|
|
1607
|
+
case ae.EndWith:
|
|
1610
1608
|
return aa(o, e?.[2]);
|
|
1611
|
-
case
|
|
1609
|
+
case ae.Contain:
|
|
1612
1610
|
return sa(o, e?.[2]);
|
|
1613
|
-
case
|
|
1611
|
+
case ae.In:
|
|
1614
1612
|
return ra(o, e?.[2]);
|
|
1613
|
+
case ae.NotIn:
|
|
1614
|
+
return na(o, e?.[2]);
|
|
1615
1615
|
default:
|
|
1616
1616
|
return !0;
|
|
1617
1617
|
}
|
|
1618
|
-
},
|
|
1618
|
+
}, ia = /* @__PURE__ */ O({
|
|
1619
1619
|
__name: "vs-input-container",
|
|
1620
1620
|
props: {
|
|
1621
1621
|
style: {
|
|
@@ -1641,27 +1641,27 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1641
1641
|
if (!d) return !0;
|
|
1642
1642
|
const p = Array.isArray(d) ? d[0] : d, f = t?.value?.[p];
|
|
1643
1643
|
return st(f, d);
|
|
1644
|
-
})), a = D(() =>
|
|
1645
|
-
return (r, d) => o.schema?.length ? (i(),
|
|
1644
|
+
})), a = D(() => Zo[e.view]);
|
|
1645
|
+
return (r, d) => o.schema?.length ? (i(), te(_e(a.value), {
|
|
1646
1646
|
key: 0,
|
|
1647
1647
|
title: o.title,
|
|
1648
|
-
style:
|
|
1648
|
+
style: he(o.style)
|
|
1649
1649
|
}, {
|
|
1650
|
-
default:
|
|
1651
|
-
(i(!0), u(
|
|
1650
|
+
default: $e(() => [
|
|
1651
|
+
(i(!0), u(ee, null, le(s.value, (p) => (i(), te(rt, Le({
|
|
1652
1652
|
key: p.name
|
|
1653
1653
|
}, { ref_for: !0 }, p, {
|
|
1654
1654
|
item: p,
|
|
1655
|
-
modelValue:
|
|
1656
|
-
"onUpdate:modelValue": (f) =>
|
|
1655
|
+
modelValue: J(t)[p.name],
|
|
1656
|
+
"onUpdate:modelValue": (f) => J(t)[p.name] = f,
|
|
1657
1657
|
style: o.style,
|
|
1658
|
-
error:
|
|
1658
|
+
error: J(n)?.errors?.[p.name]
|
|
1659
1659
|
}), null, 16, ["item", "modelValue", "onUpdate:modelValue", "style", "error"]))), 128))
|
|
1660
1660
|
]),
|
|
1661
1661
|
_: 1
|
|
1662
|
-
}, 8, ["title", "style"])) :
|
|
1662
|
+
}, 8, ["title", "style"])) : j("", !0);
|
|
1663
1663
|
}
|
|
1664
|
-
}),
|
|
1664
|
+
}), ua = { class: "relative" }, da = { class: "w-full h-full fixed top-0 start-0 z-[1000] bg-black bg-opacity-50" }, ca = { class: "m-[10px] fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 min-h-0 h-fit max-h-[80vh] overflow-hidden opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl lg:w-7/12 w-11/12" }, pa = { class: "py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]" }, fa = { class: "font-medium text-gray-800 dark:text-[#ffffff]" }, va = { class: "p-4 mim-h-0 h-full overflow-auto" }, ma = /* @__PURE__ */ O({
|
|
1665
1665
|
__name: "modal-edit",
|
|
1666
1666
|
props: {
|
|
1667
1667
|
schema: {},
|
|
@@ -1672,11 +1672,11 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1672
1672
|
},
|
|
1673
1673
|
emits: ["close", "save", "edit"],
|
|
1674
1674
|
setup(o, { emit: e }) {
|
|
1675
|
-
const t = o, n = e, s =
|
|
1675
|
+
const t = o, n = e, s = x(t.schema), a = x(t.defaultValue ? JSON.parse(JSON.stringify(t.defaultValue)) : {}), r = x({}), d = x(), p = x(t.mode);
|
|
1676
1676
|
async function f() {
|
|
1677
1677
|
const g = r.value.validate();
|
|
1678
1678
|
if (g) {
|
|
1679
|
-
|
|
1679
|
+
pe({ type: "warning", title: "Помилка валідації", message: Object.entries(g).map(([v, C]) => `${v}: ${C}`).join(`
|
|
1680
1680
|
`) });
|
|
1681
1681
|
return;
|
|
1682
1682
|
}
|
|
@@ -1690,41 +1690,39 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1690
1690
|
body: JSON.stringify(a.value)
|
|
1691
1691
|
});
|
|
1692
1692
|
if (v.ok)
|
|
1693
|
-
await v.json(),
|
|
1693
|
+
await v.json(), pe({
|
|
1694
1694
|
type: "success",
|
|
1695
1695
|
title: "Успішно",
|
|
1696
1696
|
message: `Дані успішно ${p.value === "add" ? "збережено" : "оновлено"}`
|
|
1697
1697
|
}), n("save", a.value);
|
|
1698
1698
|
else if (v.status === 400) {
|
|
1699
|
-
const
|
|
1700
|
-
|
|
1699
|
+
const C = await v.json().catch(() => ({}));
|
|
1700
|
+
pe({
|
|
1701
1701
|
type: "warning",
|
|
1702
1702
|
title: "Помилка валідації",
|
|
1703
|
-
message:
|
|
1703
|
+
message: C.message || "Некоректні дані (400)"
|
|
1704
1704
|
});
|
|
1705
|
-
} else v.status === 500 ?
|
|
1705
|
+
} else v.status === 500 ? pe({
|
|
1706
1706
|
type: "error",
|
|
1707
1707
|
title: "Серверна помилка",
|
|
1708
1708
|
message: "Виникла помилка на сервері (500)"
|
|
1709
|
-
}) :
|
|
1709
|
+
}) : pe({
|
|
1710
1710
|
type: "error",
|
|
1711
1711
|
title: "Помилка",
|
|
1712
1712
|
message: `Статус: ${v.status}`
|
|
1713
1713
|
});
|
|
1714
1714
|
} catch (v) {
|
|
1715
|
-
|
|
1715
|
+
pe({
|
|
1716
1716
|
type: "error",
|
|
1717
1717
|
title: "Помилка з’єднання",
|
|
1718
1718
|
message: v.message || "Не вдалося виконати запит"
|
|
1719
1719
|
});
|
|
1720
1720
|
}
|
|
1721
|
-
else
|
|
1722
|
-
n("save", a.value);
|
|
1723
1721
|
}
|
|
1724
1722
|
function c() {
|
|
1725
1723
|
n("close");
|
|
1726
1724
|
}
|
|
1727
|
-
return
|
|
1725
|
+
return ue(async () => {
|
|
1728
1726
|
if (t.form) {
|
|
1729
1727
|
const g = await fetch(`/api/template/form/${t.form}`).then((v) => v.json());
|
|
1730
1728
|
s.value = g.schema, d.value = g.token;
|
|
@@ -1733,39 +1731,68 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1733
1731
|
const g = await fetch(`/api/form/${d.value}`).then((v) => v.json());
|
|
1734
1732
|
s.value = g.schema, g.data ? a.value = g.data : p.value = "add";
|
|
1735
1733
|
}
|
|
1736
|
-
}), (g, v) => (i(), u(
|
|
1737
|
-
l("div",
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1734
|
+
}), (g, v) => (i(), u("div", ua, [
|
|
1735
|
+
l("div", da, [
|
|
1736
|
+
l("div", ca, [
|
|
1737
|
+
l("div", pa, [
|
|
1738
|
+
l("h3", fa, F(p.value === "add" ? "Додати" : "Змінити"), 1),
|
|
1739
|
+
l("button", {
|
|
1740
|
+
onClick: c,
|
|
1741
|
+
type: "button",
|
|
1742
|
+
class: "size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"
|
|
1743
|
+
}, v[2] || (v[2] = [
|
|
1744
|
+
l("span", { class: "sr-only" }, "Close", -1),
|
|
1745
|
+
l("svg", {
|
|
1746
|
+
class: "flex-shrink-0 w-4 h-4",
|
|
1747
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1748
|
+
width: "24",
|
|
1749
|
+
height: "24",
|
|
1750
|
+
viewBox: "0 0 24 24",
|
|
1751
|
+
fill: "none",
|
|
1752
|
+
stroke: "currentColor",
|
|
1753
|
+
"stroke-width": "2",
|
|
1754
|
+
"stroke-linecap": "round",
|
|
1755
|
+
"stroke-linejoin": "round"
|
|
1756
|
+
}, [
|
|
1757
|
+
l("path", { d: "M18 6 6 18" }),
|
|
1758
|
+
l("path", { d: "m6 6 12 12" })
|
|
1759
|
+
], -1)
|
|
1760
|
+
]))
|
|
1761
|
+
]),
|
|
1762
|
+
l("div", va, [
|
|
1763
|
+
s.value ? (i(), te(Ie, {
|
|
1764
|
+
key: 0,
|
|
1765
|
+
schema: s.value,
|
|
1766
|
+
values: a.value,
|
|
1767
|
+
"onUpdate:values": v[0] || (v[0] = (C) => a.value = C),
|
|
1768
|
+
form: r.value,
|
|
1769
|
+
"onUpdate:form": v[1] || (v[1] = (C) => r.value = C)
|
|
1770
|
+
}, null, 8, ["schema", "values", "form"])) : j("", !0)
|
|
1771
|
+
]),
|
|
1772
|
+
l("div", { class: "vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white" }, [
|
|
1773
|
+
l("button", {
|
|
1774
|
+
type: "button",
|
|
1775
|
+
onClick: c,
|
|
1776
|
+
class: "vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"
|
|
1777
|
+
}, " Скасувати "),
|
|
1778
|
+
l("button", {
|
|
1779
|
+
onClick: f,
|
|
1780
|
+
type: "button",
|
|
1781
|
+
class: "vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"
|
|
1782
|
+
}, " Зберегти ")
|
|
1783
|
+
])
|
|
1784
|
+
])
|
|
1758
1785
|
])
|
|
1759
|
-
]
|
|
1786
|
+
]));
|
|
1760
1787
|
}
|
|
1761
|
-
}),
|
|
1788
|
+
}), Oe = (o = { mode: "edit", schema: null }) => new Promise((e) => {
|
|
1762
1789
|
const { close: t } = ft({
|
|
1763
1790
|
title: o.mode === "add" ? "Додати" : "Редагувати",
|
|
1764
1791
|
template: "",
|
|
1765
1792
|
visible: !0,
|
|
1766
1793
|
size: "medium",
|
|
1767
1794
|
closeClickBack: !0,
|
|
1768
|
-
content:
|
|
1795
|
+
content: ma,
|
|
1769
1796
|
contentProps: {
|
|
1770
1797
|
...o,
|
|
1771
1798
|
onClose: () => {
|
|
@@ -1776,17 +1803,17 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1776
1803
|
}
|
|
1777
1804
|
}
|
|
1778
1805
|
});
|
|
1779
|
-
}),
|
|
1806
|
+
}), ha = ["aria-expanded", "data-focus"], ga = { class: "flex items-center" }, ba = { class: "truncate text-gray-900 overflow-hidden" }, ya = ["onClick"], xa = ["title"], wa = {
|
|
1780
1807
|
key: 2,
|
|
1781
1808
|
class: "text-gray-500 truncate"
|
|
1782
|
-
},
|
|
1809
|
+
}, ka = { class: "flex-1 min-w-[2px]" }, _a = ["placeholder"], $a = { class: "flex items-center shrink-0" }, Ca = ["disabled"], Va = ["disabled"], Ma = {
|
|
1783
1810
|
key: 0,
|
|
1784
1811
|
class: "absolute z-10 w-full mt-2 rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",
|
|
1785
1812
|
role: "listbox"
|
|
1786
|
-
},
|
|
1813
|
+
}, La = ["aria-disabled", "onClick"], Sa = {
|
|
1787
1814
|
key: 1,
|
|
1788
1815
|
class: "px-3 py-2 text-center text-gray-500"
|
|
1789
|
-
},
|
|
1816
|
+
}, Ba = ["disabled"], ja = /* @__PURE__ */ O({
|
|
1790
1817
|
__name: "vs-input-select",
|
|
1791
1818
|
props: {
|
|
1792
1819
|
multiple: { type: Boolean, default: !1 },
|
|
@@ -1811,146 +1838,146 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1811
1838
|
emits: ["change", "update:modelValue"],
|
|
1812
1839
|
setup(o, { emit: e }) {
|
|
1813
1840
|
const t = o, n = e, s = D(() => t.multiple), a = D(() => t.disabled);
|
|
1814
|
-
|
|
1841
|
+
be(t.style);
|
|
1815
1842
|
const r = D({
|
|
1816
1843
|
get: () => t.modelValue,
|
|
1817
|
-
set: (
|
|
1844
|
+
set: (w) => n("update:modelValue", w)
|
|
1818
1845
|
});
|
|
1819
1846
|
!r.value && t.defaultValue && (r.value = t.defaultValue);
|
|
1820
|
-
const d =
|
|
1847
|
+
const d = x(null), p = x(null), f = x(null), c = x(!1), g = x(!1), v = x(null), C = x([]), z = x(-1), U = x([]), T = x(""), N = x(null), _ = x([]), b = D(() => {
|
|
1821
1848
|
if (!_.value.length) return [];
|
|
1822
|
-
const
|
|
1823
|
-
return _.value.map((
|
|
1824
|
-
}), h = D(() => t.placeholder || "Select..."),
|
|
1825
|
-
let
|
|
1849
|
+
const w = new Map(C.value.map((k) => [k.id?.toString(), k]));
|
|
1850
|
+
return _.value.map((k) => w.get(k?.toString())).filter((k) => !!k);
|
|
1851
|
+
}), h = D(() => t.placeholder || "Select..."), Z = D(() => s.value ? !_.value.length && T.value === "" : !v.value?.text && T.value === ""), P = D(() => a.value ? !1 : s.value ? _.value.length > 0 : !!r.value), M = (w) => s.value ? _.value.some((k) => k?.toString() === w?.toString()) : r.value?.toString() === w?.toString(), H = D(() => {
|
|
1852
|
+
let w = C.value ?? [];
|
|
1826
1853
|
if (T.value.trim() !== "") {
|
|
1827
|
-
const
|
|
1828
|
-
|
|
1854
|
+
const k = T.value.toLowerCase();
|
|
1855
|
+
w = w.filter((A) => A.text?.toLowerCase?.().includes(k));
|
|
1829
1856
|
}
|
|
1830
1857
|
if (s.value && _.value.length) {
|
|
1831
|
-
const
|
|
1832
|
-
|
|
1858
|
+
const k = new Set(_.value.map((A) => A?.toString()));
|
|
1859
|
+
w = w.filter((A) => !k.has(A.id?.toString()));
|
|
1833
1860
|
}
|
|
1834
|
-
return
|
|
1835
|
-
}),
|
|
1861
|
+
return w;
|
|
1862
|
+
}), Y = async (w) => {
|
|
1836
1863
|
if (!t.data) return [];
|
|
1837
1864
|
try {
|
|
1838
|
-
const
|
|
1839
|
-
return (await fetch(
|
|
1865
|
+
const k = t.api ? t.api : `/suggest/${t.data}`, A = "?json=1", W = w ? `&val=${encodeURIComponent(w)}` : "";
|
|
1866
|
+
return (await fetch(k.concat(A, W)).then((ke) => ke.json())).data ?? [];
|
|
1840
1867
|
} catch {
|
|
1841
1868
|
return [];
|
|
1842
1869
|
}
|
|
1843
|
-
},
|
|
1844
|
-
t.options?.length ?
|
|
1845
|
-
},
|
|
1846
|
-
if (
|
|
1847
|
-
const
|
|
1848
|
-
return
|
|
1849
|
-
},
|
|
1850
|
-
const
|
|
1851
|
-
|
|
1852
|
-
await
|
|
1853
|
-
const
|
|
1854
|
-
|
|
1870
|
+
}, we = async () => {
|
|
1871
|
+
t.options?.length ? C.value = [...t.options] : t.data && (C.value = await Y(T.value));
|
|
1872
|
+
}, ce = async (w) => {
|
|
1873
|
+
if (w == null) return null;
|
|
1874
|
+
const k = C.value?.find((W) => W?.id?.toString() === String(w));
|
|
1875
|
+
return k || ((await Y(String(w)))?.[0] ?? null);
|
|
1876
|
+
}, Ce = async (w) => {
|
|
1877
|
+
const k = new Set(C.value.map((W) => W.id?.toString())), A = w.filter((W) => !k.has(W?.toString()));
|
|
1878
|
+
A.length && await A.reduce(async (W, me) => {
|
|
1879
|
+
await W;
|
|
1880
|
+
const ke = await ce(me);
|
|
1881
|
+
ke && C.value.push(ke);
|
|
1855
1882
|
}, Promise.resolve());
|
|
1856
|
-
},
|
|
1857
|
-
a.value || (c.value = !0, await
|
|
1858
|
-
|
|
1883
|
+
}, I = async () => {
|
|
1884
|
+
a.value || (c.value = !0, await we(), await Me(() => {
|
|
1885
|
+
N.value?.focus(), H.value.length ? z.value = 0 : z.value = -1;
|
|
1859
1886
|
}));
|
|
1860
|
-
},
|
|
1861
|
-
c.value = !1,
|
|
1862
|
-
},
|
|
1887
|
+
}, $ = () => {
|
|
1888
|
+
c.value = !1, z.value = -1;
|
|
1889
|
+
}, S = async (w) => {
|
|
1863
1890
|
if (a.value) return;
|
|
1864
|
-
!c.value ? await
|
|
1865
|
-
},
|
|
1866
|
-
c.value ?
|
|
1867
|
-
},
|
|
1868
|
-
s.value ? (_.value = [], r.value = [], n("change", [])) : (v.value = null, r.value = null, n("change", null)), T.value = "",
|
|
1869
|
-
},
|
|
1870
|
-
s.value && (_.value = _.value.filter((
|
|
1871
|
-
},
|
|
1872
|
-
s.value ? (
|
|
1873
|
-
|
|
1874
|
-
})) : (v.value =
|
|
1875
|
-
},
|
|
1876
|
-
|
|
1877
|
-
},
|
|
1878
|
-
if (!
|
|
1879
|
-
const
|
|
1880
|
-
let Ae =
|
|
1881
|
-
|
|
1882
|
-
const ut =
|
|
1891
|
+
!c.value ? await I() : $();
|
|
1892
|
+
}, q = async () => {
|
|
1893
|
+
c.value ? N.value?.focus() : await I();
|
|
1894
|
+
}, m = () => {
|
|
1895
|
+
s.value ? (_.value = [], r.value = [], n("change", [])) : (v.value = null, r.value = null, n("change", null)), T.value = "", Me(() => N.value?.focus());
|
|
1896
|
+
}, y = (w) => {
|
|
1897
|
+
s.value && (_.value = _.value.filter((k) => k?.toString() !== w?.toString()), r.value = [..._.value], n("change", r.value), Me(() => N.value?.focus()));
|
|
1898
|
+
}, E = (w) => {
|
|
1899
|
+
s.value ? (M(w.id) || (_.value = [..._.value, w.id], r.value = [..._.value], n("change", r.value)), T.value = "", Me(() => {
|
|
1900
|
+
N.value?.focus(), z.value = Math.min(z.value, H.value.length - 1);
|
|
1901
|
+
})) : (v.value = w, r.value = w.id, n("change", r.value), T.value = "", $());
|
|
1902
|
+
}, G = (w) => {
|
|
1903
|
+
M(w.id) || E(w);
|
|
1904
|
+
}, oe = (w, k) => {
|
|
1905
|
+
if (!w || !k) return;
|
|
1906
|
+
const A = w.offsetTop, W = A + w.offsetHeight, me = k.scrollTop, ke = me + k.clientHeight;
|
|
1907
|
+
let Ae = k.scrollTop;
|
|
1908
|
+
A < me ? Ae = A - 80 : W > ke && (Ae = W - k.clientHeight + 4);
|
|
1909
|
+
const ut = k;
|
|
1883
1910
|
ut.scrollTop = Ae;
|
|
1884
|
-
},
|
|
1885
|
-
a.value || !c.value && (
|
|
1886
|
-
},
|
|
1911
|
+
}, Ve = async (w) => {
|
|
1912
|
+
a.value || !c.value && (w.key === "ArrowDown" || w.key === "ArrowUp") && (w.preventDefault(), await I());
|
|
1913
|
+
}, fe = (w) => {
|
|
1887
1914
|
if (!c.value) return;
|
|
1888
|
-
const { key:
|
|
1889
|
-
if (
|
|
1890
|
-
|
|
1891
|
-
else if (
|
|
1892
|
-
|
|
1893
|
-
else if (
|
|
1894
|
-
|
|
1895
|
-
const
|
|
1896
|
-
|
|
1897
|
-
} else
|
|
1898
|
-
},
|
|
1915
|
+
const { key: k } = w;
|
|
1916
|
+
if (k === "ArrowDown")
|
|
1917
|
+
w.preventDefault(), z.value + 1 < H.value.length && (z.value += 1, oe(U.value[z.value], f.value));
|
|
1918
|
+
else if (k === "ArrowUp")
|
|
1919
|
+
w.preventDefault(), z.value > 0 && (z.value -= 1, oe(U.value[z.value], f.value));
|
|
1920
|
+
else if (k === "Enter") {
|
|
1921
|
+
w.preventDefault();
|
|
1922
|
+
const A = H.value[z.value];
|
|
1923
|
+
A && E(A);
|
|
1924
|
+
} else k === "Escape" ? (w.preventDefault(), $()) : k === "Backspace" ? s.value && T.value === "" && _.value.length && (_.value = _.value.slice(0, -1), r.value = [..._.value], n("change", r.value)) : k === "Home" ? (z.value = 0, oe(U.value[0], f.value)) : k === "End" ? (z.value = H.value.length - 1, oe(U.value[z.value], f.value)) : k === "Tab" && $();
|
|
1925
|
+
}, ye = () => {
|
|
1899
1926
|
a.value || (g.value = !0);
|
|
1900
|
-
},
|
|
1927
|
+
}, xe = () => {
|
|
1901
1928
|
g.value = !1, T.value = "";
|
|
1902
|
-
},
|
|
1903
|
-
|
|
1904
|
-
}, Te = (
|
|
1905
|
-
d.value && (d.value.contains(
|
|
1906
|
-
}, Re = (
|
|
1907
|
-
c.value && f.value && !f.value.contains(
|
|
1929
|
+
}, ve = (w) => {
|
|
1930
|
+
w.key === "Escape" && c.value && $();
|
|
1931
|
+
}, Te = (w) => {
|
|
1932
|
+
d.value && (d.value.contains(w.target) || $());
|
|
1933
|
+
}, Re = (w) => {
|
|
1934
|
+
c.value && f.value && !f.value.contains(w.target) && $();
|
|
1908
1935
|
};
|
|
1909
|
-
|
|
1910
|
-
|
|
1936
|
+
ie(() => t.options, (w) => {
|
|
1937
|
+
w?.length && (C.value = [...w]);
|
|
1911
1938
|
}, { immediate: !0 });
|
|
1912
1939
|
const Pe = async () => {
|
|
1913
1940
|
if (s.value)
|
|
1914
|
-
Array.isArray(r.value) ? _.value = [...r.value] : (_.value = r.value == null ? [] : [r.value], r.value = [..._.value]), !t.options?.length && t.data && await
|
|
1941
|
+
Array.isArray(r.value) ? _.value = [...r.value] : (_.value = r.value == null ? [] : [r.value], r.value = [..._.value]), !t.options?.length && t.data && await Ce(_.value);
|
|
1915
1942
|
else {
|
|
1916
1943
|
if (Array.isArray(r.value)) {
|
|
1917
|
-
const
|
|
1918
|
-
r.value =
|
|
1944
|
+
const w = r.value[0] ?? null;
|
|
1945
|
+
r.value = w ?? null;
|
|
1919
1946
|
}
|
|
1920
|
-
v.value = await
|
|
1947
|
+
v.value = await ce(r.value);
|
|
1921
1948
|
}
|
|
1922
1949
|
};
|
|
1923
|
-
|
|
1950
|
+
ie(r, () => {
|
|
1924
1951
|
Pe();
|
|
1925
|
-
}),
|
|
1926
|
-
addEventListener("keydown",
|
|
1927
|
-
}),
|
|
1928
|
-
removeEventListener("keydown",
|
|
1952
|
+
}), ue(async () => {
|
|
1953
|
+
addEventListener("keydown", ve), addEventListener("scroll", Re, !0), document.addEventListener("click", Te, !0), t.options?.length ? C.value = [...t.options] : t.data && (C.value = await Y("")), await Pe();
|
|
1954
|
+
}), Ee(() => {
|
|
1955
|
+
removeEventListener("keydown", ve), removeEventListener("scroll", Re, !0), document.removeEventListener("click", Te, !0);
|
|
1929
1956
|
});
|
|
1930
1957
|
async function it() {
|
|
1931
1958
|
if (!t.add) return;
|
|
1932
|
-
const
|
|
1933
|
-
|
|
1959
|
+
const w = await Oe({ form: t.add.form, mode: "add" });
|
|
1960
|
+
w && (await fetch(`/api/table/${t.add.token}`, {
|
|
1934
1961
|
method: "POST",
|
|
1935
1962
|
headers: { "Content-Type": "application/json" },
|
|
1936
|
-
body: JSON.stringify(
|
|
1937
|
-
}).then((
|
|
1963
|
+
body: JSON.stringify(w)
|
|
1964
|
+
}).then((k) => k.json()), !t.options?.length && t.data && (C.value = await Y(T.value)));
|
|
1938
1965
|
}
|
|
1939
|
-
return (
|
|
1966
|
+
return (w, k) => (i(), u("div", {
|
|
1940
1967
|
class: "flex gap-1 w-full",
|
|
1941
1968
|
ref_key: "selectRoot",
|
|
1942
1969
|
ref: d,
|
|
1943
|
-
onClick:
|
|
1970
|
+
onClick: k[2] || (k[2] = ne(() => {
|
|
1944
1971
|
}, ["stop"]))
|
|
1945
1972
|
}, [
|
|
1946
1973
|
l("div", {
|
|
1947
|
-
class:
|
|
1974
|
+
class: V(["relative w-full font-sans", t.customClass])
|
|
1948
1975
|
}, [
|
|
1949
|
-
|
|
1976
|
+
k[7] || (k[7] = l("span", {
|
|
1950
1977
|
id: "react-select-live-region",
|
|
1951
1978
|
class: "sr-only"
|
|
1952
1979
|
}, null, -1)),
|
|
1953
|
-
|
|
1980
|
+
k[8] || (k[8] = l("span", {
|
|
1954
1981
|
"aria-live": "polite",
|
|
1955
1982
|
"aria-atomic": "false",
|
|
1956
1983
|
"aria-relevant": "additions text",
|
|
@@ -1958,7 +1985,7 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1958
1985
|
class: "sr-only"
|
|
1959
1986
|
}, null, -1)),
|
|
1960
1987
|
l("div", {
|
|
1961
|
-
class:
|
|
1988
|
+
class: V([
|
|
1962
1989
|
"flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white",
|
|
1963
1990
|
"border-gray-300 hover:border-gray-400",
|
|
1964
1991
|
c.value || g.value ? "border-blue-500 ring-1 ring-blue-500" : "",
|
|
@@ -1967,8 +1994,8 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1967
1994
|
role: "combobox",
|
|
1968
1995
|
"aria-expanded": c.value,
|
|
1969
1996
|
"aria-haspopup": "listbox",
|
|
1970
|
-
onKeydown:
|
|
1971
|
-
onClick:
|
|
1997
|
+
onKeydown: Ve,
|
|
1998
|
+
onClick: q,
|
|
1972
1999
|
"data-focus": c.value || g.value ? "true" : "false"
|
|
1973
2000
|
}, [
|
|
1974
2001
|
l("div", {
|
|
@@ -1976,27 +2003,27 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
1976
2003
|
ref_key: "triggerRef",
|
|
1977
2004
|
ref: p
|
|
1978
2005
|
}, [
|
|
1979
|
-
s.value && _.value.length ? (i(!0), u(
|
|
2006
|
+
s.value && _.value.length ? (i(!0), u(ee, { key: 0 }, le(b.value, (A) => (i(), u("div", {
|
|
1980
2007
|
class: "flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border",
|
|
1981
|
-
key:
|
|
2008
|
+
key: A.id
|
|
1982
2009
|
}, [
|
|
1983
|
-
l("div",
|
|
1984
|
-
|
|
2010
|
+
l("div", ga, [
|
|
2011
|
+
A?.color ? (i(), u("span", {
|
|
1985
2012
|
key: 0,
|
|
1986
2013
|
class: "w-[16px] h-[16px] rounded-md block ml-1.5",
|
|
1987
|
-
style:
|
|
1988
|
-
}, null, 4)) :
|
|
1989
|
-
|
|
1990
|
-
|
|
2014
|
+
style: he({ backgroundColor: A?.color })
|
|
2015
|
+
}, null, 4)) : j("", !0),
|
|
2016
|
+
K((i(), u("div", ba, [
|
|
2017
|
+
se(F(A.text), 1)
|
|
1991
2018
|
])), [
|
|
1992
|
-
[
|
|
2019
|
+
[J(qe), A.text]
|
|
1993
2020
|
])
|
|
1994
2021
|
]),
|
|
1995
2022
|
l("div", {
|
|
1996
2023
|
role: "button",
|
|
1997
2024
|
class: "flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",
|
|
1998
|
-
onClick:
|
|
1999
|
-
},
|
|
2025
|
+
onClick: ne((W) => y(A.id), ["stop"])
|
|
2026
|
+
}, k[3] || (k[3] = [
|
|
2000
2027
|
l("svg", {
|
|
2001
2028
|
height: "14",
|
|
2002
2029
|
width: "14",
|
|
@@ -2007,29 +2034,29 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2007
2034
|
}, [
|
|
2008
2035
|
l("path", { d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z" })
|
|
2009
2036
|
], -1)
|
|
2010
|
-
]), 8,
|
|
2011
|
-
]))), 128)) : !s.value && !g.value && v.value?.text && T.value === "" ?
|
|
2037
|
+
]), 8, ya)
|
|
2038
|
+
]))), 128)) : !s.value && !g.value && v.value?.text && T.value === "" ? K((i(), u("div", {
|
|
2012
2039
|
key: 1,
|
|
2013
|
-
class:
|
|
2040
|
+
class: V(["truncate text-gray-900"]),
|
|
2014
2041
|
title: v.value.text
|
|
2015
2042
|
}, [
|
|
2016
2043
|
v.value?.color ? (i(), u("span", {
|
|
2017
2044
|
key: 0,
|
|
2018
2045
|
class: "w-[14px] h-[14px] rounded-md block mr-1 mt-1 absolute",
|
|
2019
|
-
style:
|
|
2020
|
-
}, null, 4)) :
|
|
2046
|
+
style: he({ backgroundColor: v.value?.color })
|
|
2047
|
+
}, null, 4)) : j("", !0),
|
|
2021
2048
|
l("span", {
|
|
2022
|
-
class:
|
|
2049
|
+
class: V({ "pl-5": v.value?.color })
|
|
2023
2050
|
}, F(v.value.text), 3)
|
|
2024
|
-
], 8,
|
|
2025
|
-
[
|
|
2026
|
-
]) :
|
|
2027
|
-
|
|
2028
|
-
l("div",
|
|
2029
|
-
!a.value &&
|
|
2051
|
+
], 8, xa)), [
|
|
2052
|
+
[J(qe), v.value.text]
|
|
2053
|
+
]) : j("", !0),
|
|
2054
|
+
Z.value ? (i(), u("div", wa, F(h.value), 1)) : j("", !0),
|
|
2055
|
+
l("div", ka, [
|
|
2056
|
+
!a.value && w.search ? K((i(), u("input", {
|
|
2030
2057
|
key: 0,
|
|
2031
2058
|
ref_key: "inputRef",
|
|
2032
|
-
ref:
|
|
2059
|
+
ref: N,
|
|
2033
2060
|
class: "w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",
|
|
2034
2061
|
autocapitalize: "none",
|
|
2035
2062
|
autocomplete: "off",
|
|
@@ -2039,24 +2066,24 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2039
2066
|
tabindex: "0",
|
|
2040
2067
|
"aria-autocomplete": "list",
|
|
2041
2068
|
placeholder: (s.value && _.value.length ? " " : null) || (g.value && !T.value?.length ? v.value?.text : " "),
|
|
2042
|
-
"onUpdate:modelValue":
|
|
2043
|
-
onFocus:
|
|
2044
|
-
onBlur:
|
|
2045
|
-
onKeydown:
|
|
2046
|
-
}, null, 40,
|
|
2047
|
-
[
|
|
2048
|
-
]) :
|
|
2069
|
+
"onUpdate:modelValue": k[0] || (k[0] = (A) => T.value = A),
|
|
2070
|
+
onFocus: ye,
|
|
2071
|
+
onBlur: xe,
|
|
2072
|
+
onKeydown: fe
|
|
2073
|
+
}, null, 40, _a)), [
|
|
2074
|
+
[de, T.value]
|
|
2075
|
+
]) : j("", !0)
|
|
2049
2076
|
])
|
|
2050
2077
|
], 512),
|
|
2051
|
-
l("div",
|
|
2052
|
-
|
|
2078
|
+
l("div", $a, [
|
|
2079
|
+
P.value ? (i(), u("button", {
|
|
2053
2080
|
key: 0,
|
|
2054
2081
|
type: "button",
|
|
2055
2082
|
class: "px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50",
|
|
2056
2083
|
"aria-hidden": "true",
|
|
2057
2084
|
disabled: a.value,
|
|
2058
|
-
onClick:
|
|
2059
|
-
},
|
|
2085
|
+
onClick: ne(m, ["stop"])
|
|
2086
|
+
}, k[4] || (k[4] = [
|
|
2060
2087
|
l("svg", {
|
|
2061
2088
|
height: "20",
|
|
2062
2089
|
width: "20",
|
|
@@ -2065,15 +2092,15 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2065
2092
|
}, [
|
|
2066
2093
|
l("path", { d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z" })
|
|
2067
2094
|
], -1)
|
|
2068
|
-
]), 8,
|
|
2069
|
-
|
|
2095
|
+
]), 8, Ca)) : j("", !0),
|
|
2096
|
+
k[6] || (k[6] = l("div", { class: "self-stretch w-px bg-[#ccc] my-[1px]" }, null, -1)),
|
|
2070
2097
|
l("button", {
|
|
2071
2098
|
type: "button",
|
|
2072
2099
|
class: "px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50",
|
|
2073
2100
|
"aria-hidden": "true",
|
|
2074
2101
|
disabled: a.value,
|
|
2075
|
-
onClick:
|
|
2076
|
-
},
|
|
2102
|
+
onClick: k[1] || (k[1] = ne((A) => S(), ["stop"]))
|
|
2103
|
+
}, k[5] || (k[5] = [
|
|
2077
2104
|
l("svg", {
|
|
2078
2105
|
height: "20",
|
|
2079
2106
|
width: "20",
|
|
@@ -2082,45 +2109,45 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2082
2109
|
}, [
|
|
2083
2110
|
l("path", { d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z" })
|
|
2084
2111
|
], -1)
|
|
2085
|
-
]), 8,
|
|
2112
|
+
]), 8, Va)
|
|
2086
2113
|
])
|
|
2087
|
-
], 42,
|
|
2088
|
-
c.value ? (i(), u("div",
|
|
2114
|
+
], 42, ha),
|
|
2115
|
+
c.value ? (i(), u("div", Ma, [
|
|
2089
2116
|
l("div", {
|
|
2090
2117
|
class: "max-h-[300px] overflow-y-auto py-1",
|
|
2091
2118
|
ref_key: "listRef",
|
|
2092
2119
|
ref: f
|
|
2093
2120
|
}, [
|
|
2094
|
-
|
|
2095
|
-
key:
|
|
2121
|
+
H.value.length ? (i(!0), u(ee, { key: 0 }, le(H.value, (A, W) => (i(), u("div", {
|
|
2122
|
+
key: A.id,
|
|
2096
2123
|
ref_for: !0,
|
|
2097
|
-
ref: (
|
|
2098
|
-
class:
|
|
2124
|
+
ref: (me) => U.value[W] = me,
|
|
2125
|
+
class: V([
|
|
2099
2126
|
"flex px-3 py-2 cursor-default select-none hover:bg-blue-300",
|
|
2100
|
-
|
|
2101
|
-
|
|
2127
|
+
z.value === W ? "bg-blue-300" : "",
|
|
2128
|
+
M(A.id) ? "text-white bg-blue-500" : "text-gray-900 bg-white"
|
|
2102
2129
|
]),
|
|
2103
|
-
"aria-disabled":
|
|
2130
|
+
"aria-disabled": M(A.id) ? "true" : "false",
|
|
2104
2131
|
role: "option",
|
|
2105
2132
|
tabindex: "-1",
|
|
2106
|
-
onClick: (
|
|
2133
|
+
onClick: (me) => G(A)
|
|
2107
2134
|
}, [
|
|
2108
|
-
|
|
2135
|
+
A?.color ? (i(), u("span", {
|
|
2109
2136
|
key: 0,
|
|
2110
2137
|
class: "w-[11px] h-[11px] rounded-full block mr-1 mt-1.5",
|
|
2111
|
-
style:
|
|
2112
|
-
}, null, 4)) :
|
|
2138
|
+
style: he({ backgroundColor: A?.color })
|
|
2139
|
+
}, null, 4)) : j("", !0),
|
|
2113
2140
|
l("div", {
|
|
2114
|
-
class:
|
|
2141
|
+
class: V([
|
|
2115
2142
|
"leading-[19px]",
|
|
2116
|
-
|
|
2143
|
+
z.value === A.id ? "text-white" : "",
|
|
2117
2144
|
// active style like react-select
|
|
2118
|
-
(
|
|
2145
|
+
(z.value === W, "")
|
|
2119
2146
|
])
|
|
2120
|
-
}, F(
|
|
2121
|
-
], 10,
|
|
2147
|
+
}, F(A.text), 3)
|
|
2148
|
+
], 10, La))), 128)) : (i(), u("div", Sa, " No options "))
|
|
2122
2149
|
], 512)
|
|
2123
|
-
])) :
|
|
2150
|
+
])) : j("", !0)
|
|
2124
2151
|
], 2),
|
|
2125
2152
|
t.add ? (i(), u("button", {
|
|
2126
2153
|
key: 0,
|
|
@@ -2129,17 +2156,17 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2129
2156
|
disabled: a.value,
|
|
2130
2157
|
type: "button"
|
|
2131
2158
|
}, [
|
|
2132
|
-
|
|
2159
|
+
B(je, {
|
|
2133
2160
|
width: "16",
|
|
2134
2161
|
height: "16"
|
|
2135
2162
|
}),
|
|
2136
|
-
|
|
2137
|
-
], 8,
|
|
2163
|
+
k[9] || (k[9] = l("span", null, "Додати", -1))
|
|
2164
|
+
], 8, Ba)) : j("", !0)
|
|
2138
2165
|
], 512));
|
|
2139
2166
|
}
|
|
2140
|
-
}),
|
|
2167
|
+
}), Ia = ["placeholder", "disabled"], za = /* @__PURE__ */ O({
|
|
2141
2168
|
__name: "vs-input-textarea",
|
|
2142
|
-
props: /* @__PURE__ */
|
|
2169
|
+
props: /* @__PURE__ */ Q({
|
|
2143
2170
|
style: { default: () => ({}) },
|
|
2144
2171
|
customClass: { default: "" },
|
|
2145
2172
|
disabled: { type: Boolean, default: !1 },
|
|
@@ -2153,21 +2180,21 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2153
2180
|
}),
|
|
2154
2181
|
emits: ["update:modelValue"],
|
|
2155
2182
|
setup(o) {
|
|
2156
|
-
const e = o, { inputClass: t } =
|
|
2157
|
-
return (s, a) =>
|
|
2183
|
+
const e = o, { inputClass: t } = be(e.style), n = X(o, "modelValue");
|
|
2184
|
+
return (s, a) => K((i(), u("textarea", {
|
|
2158
2185
|
"onUpdate:modelValue": a[0] || (a[0] = (r) => n.value = r),
|
|
2159
2186
|
placeholder: s.placeholder,
|
|
2160
2187
|
disabled: s.disabled,
|
|
2161
2188
|
row: "2",
|
|
2162
|
-
class:
|
|
2189
|
+
class: V(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto", [J(t)]]),
|
|
2163
2190
|
style: {
|
|
2164
2191
|
border: "1px solid #CFD9E0"
|
|
2165
2192
|
}
|
|
2166
|
-
}, null, 10,
|
|
2167
|
-
[
|
|
2193
|
+
}, null, 10, Ia)), [
|
|
2194
|
+
[de, n.value]
|
|
2168
2195
|
]);
|
|
2169
2196
|
}
|
|
2170
|
-
}),
|
|
2197
|
+
}), Aa = {}, Oa = {
|
|
2171
2198
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2172
2199
|
viewBox: "0 0 24 24",
|
|
2173
2200
|
fill: "none",
|
|
@@ -2177,8 +2204,8 @@ const Vo = /* @__PURE__ */ R(_o, [["render", Co]]), Lo = { class: "flex flex-col
|
|
|
2177
2204
|
"stroke-linejoin": "round",
|
|
2178
2205
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"
|
|
2179
2206
|
};
|
|
2180
|
-
function
|
|
2181
|
-
return i(), u("svg",
|
|
2207
|
+
function Ea(o, e) {
|
|
2208
|
+
return i(), u("svg", Oa, e[0] || (e[0] = [
|
|
2182
2209
|
l("path", {
|
|
2183
2210
|
stroke: "none",
|
|
2184
2211
|
d: "M0 0h24v24H0z",
|
|
@@ -2188,7 +2215,7 @@ function Ba(o, e) {
|
|
|
2188
2215
|
l("path", { d: "M21 21l-6 -6" }, null, -1)
|
|
2189
2216
|
]));
|
|
2190
2217
|
}
|
|
2191
|
-
const
|
|
2218
|
+
const Fa = /* @__PURE__ */ R(Aa, [["render", Ea]]), Da = {}, Ua = {
|
|
2192
2219
|
class: "flex-shrink-0 mt-0.5 size-3.5",
|
|
2193
2220
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2194
2221
|
viewBox: "0 0 24 24",
|
|
@@ -2198,15 +2225,15 @@ const ja = /* @__PURE__ */ R(Ma, [["render", Ba]]), Ia = {}, za = {
|
|
|
2198
2225
|
"stroke-linecap": "round",
|
|
2199
2226
|
"stroke-linejoin": "round"
|
|
2200
2227
|
};
|
|
2201
|
-
function
|
|
2202
|
-
return i(), u("svg",
|
|
2228
|
+
function Ta(o, e) {
|
|
2229
|
+
return i(), u("svg", Ua, e[0] || (e[0] = [
|
|
2203
2230
|
l("path", { d: "m3 16 4 4 4-4" }, null, -1),
|
|
2204
2231
|
l("path", { d: "M7 20V4" }, null, -1),
|
|
2205
2232
|
l("path", { d: "m21 8-4-4-4 4" }, null, -1),
|
|
2206
2233
|
l("path", { d: "M17 4v16" }, null, -1)
|
|
2207
2234
|
]));
|
|
2208
2235
|
}
|
|
2209
|
-
const
|
|
2236
|
+
const Ra = /* @__PURE__ */ R(Da, [["render", Ta]]), Pa = {}, Na = {
|
|
2210
2237
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2211
2238
|
width: "14",
|
|
2212
2239
|
height: "14",
|
|
@@ -2217,8 +2244,8 @@ const Ea = /* @__PURE__ */ R(Ia, [["render", Aa]]), Fa = {}, Oa = {
|
|
|
2217
2244
|
"stroke-linecap": "round",
|
|
2218
2245
|
"stroke-linejoin": "round"
|
|
2219
2246
|
};
|
|
2220
|
-
function
|
|
2221
|
-
return i(), u("svg",
|
|
2247
|
+
function Ha(o, e) {
|
|
2248
|
+
return i(), u("svg", Na, e[0] || (e[0] = [
|
|
2222
2249
|
l("path", {
|
|
2223
2250
|
stroke: "none",
|
|
2224
2251
|
d: "M0 0h24v24H0z",
|
|
@@ -2229,7 +2256,7 @@ function Da(o, e) {
|
|
|
2229
2256
|
l("path", { d: "M12 4l0 12" }, null, -1)
|
|
2230
2257
|
]));
|
|
2231
2258
|
}
|
|
2232
|
-
const
|
|
2259
|
+
const qa = /* @__PURE__ */ R(Pa, [["render", Ha]]), Ga = {}, Ja = {
|
|
2233
2260
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2234
2261
|
viewBox: "0 0 24 24",
|
|
2235
2262
|
fill: "none",
|
|
@@ -2238,8 +2265,8 @@ const Ua = /* @__PURE__ */ R(Fa, [["render", Da]]), Ta = {}, Ra = {
|
|
|
2238
2265
|
"stroke-linecap": "round",
|
|
2239
2266
|
"stroke-linejoin": "round"
|
|
2240
2267
|
};
|
|
2241
|
-
function
|
|
2242
|
-
return i(), u("svg",
|
|
2268
|
+
function Ka(o, e) {
|
|
2269
|
+
return i(), u("svg", Ja, e[0] || (e[0] = [
|
|
2243
2270
|
l("path", {
|
|
2244
2271
|
stroke: "none",
|
|
2245
2272
|
d: "M0 0h24v24H0z",
|
|
@@ -2250,7 +2277,7 @@ function Pa(o, e) {
|
|
|
2250
2277
|
l("path", { d: "M12 4l0 12" }, null, -1)
|
|
2251
2278
|
]));
|
|
2252
2279
|
}
|
|
2253
|
-
const
|
|
2280
|
+
const Za = /* @__PURE__ */ R(Ga, [["render", Ka]]), Wa = {}, Qa = {
|
|
2254
2281
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2255
2282
|
viewBox: "0 0 24 24",
|
|
2256
2283
|
fill: "none",
|
|
@@ -2259,22 +2286,22 @@ const Na = /* @__PURE__ */ R(Ta, [["render", Pa]]), Ha = {}, qa = {
|
|
|
2259
2286
|
"stroke-linecap": "round",
|
|
2260
2287
|
"stroke-linejoin": "round"
|
|
2261
2288
|
};
|
|
2262
|
-
function
|
|
2263
|
-
return i(), u("svg",
|
|
2264
|
-
|
|
2289
|
+
function Xa(o, e) {
|
|
2290
|
+
return i(), u("svg", Qa, e[0] || (e[0] = [
|
|
2291
|
+
re('<circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle>', 6)
|
|
2265
2292
|
]));
|
|
2266
2293
|
}
|
|
2267
|
-
const Qe = /* @__PURE__ */ R(
|
|
2294
|
+
const Qe = /* @__PURE__ */ R(Wa, [["render", Xa]]), Ya = {}, es = {
|
|
2268
2295
|
viewBox: "0 0 178 90",
|
|
2269
2296
|
fill: "none",
|
|
2270
2297
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2271
2298
|
};
|
|
2272
|
-
function
|
|
2273
|
-
return i(), u("svg",
|
|
2274
|
-
|
|
2299
|
+
function ts(o, e) {
|
|
2300
|
+
return i(), u("svg", es, e[0] || (e[0] = [
|
|
2301
|
+
re('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>', 12)
|
|
2275
2302
|
]));
|
|
2276
2303
|
}
|
|
2277
|
-
const
|
|
2304
|
+
const ls = /* @__PURE__ */ R(Ya, [["render", ts]]), os = {}, as = {
|
|
2278
2305
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2279
2306
|
viewBox: "0 0 24 24",
|
|
2280
2307
|
fill: "none",
|
|
@@ -2283,18 +2310,18 @@ const Wa = /* @__PURE__ */ R(Ja, [["render", Za]]), Qa = {}, Xa = {
|
|
|
2283
2310
|
"stroke-linecap": "round",
|
|
2284
2311
|
"stroke-linejoin": "round"
|
|
2285
2312
|
};
|
|
2286
|
-
function
|
|
2287
|
-
return i(), u("svg",
|
|
2313
|
+
function ss(o, e) {
|
|
2314
|
+
return i(), u("svg", as, e[0] || (e[0] = [
|
|
2288
2315
|
l("path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }, null, -1)
|
|
2289
2316
|
]));
|
|
2290
2317
|
}
|
|
2291
|
-
const
|
|
2318
|
+
const rs = /* @__PURE__ */ R(os, [["render", ss]]), ns = { class: "vs-datatable border rounded-xl w-full flex-grow" }, is = { class: "flex items-center npm gap-[16px] justify-between p-[20px] pb-[16px]" }, us = { class: "relative w-full" }, ds = { class: "table-wrapper flex gap-2" }, cs = { class: "vs-popover inline-block text-slate-700" }, ps = { class: "text-center" }, fs = { class: "" }, vs = { class: "py-1 px-0 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full" }, ms = { class: "flex flex-col p-[1px] gap-[2px] w-[140px]" }, hs = { class: "text-sm items-center text-gray-800 flex gap-1" }, gs = { class: "w-full overflow-x-auto" }, bs = { class: "w-full table-auto caption-bottom text-sm" }, ys = { class: "[&_tr]:border-b" }, xs = { class: "border-b data-[state=selected]:bg-muted bg-slate-50/50 dark:bg-slate-700/50 hover:bg-slate-50/80 dark:hover:bg-slate-700/80 transition-colors" }, ws = { class: "h-10 px-2 align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] w-12 text-center" }, ks = {
|
|
2292
2319
|
key: 0,
|
|
2293
2320
|
colspan: "100%",
|
|
2294
2321
|
class: "text-center"
|
|
2295
|
-
},
|
|
2322
|
+
}, _s = { class: "w-full" }, $s = { class: "p-5 min-h-[200px] flex flex-col justify-center items-center text-center" }, Cs = ["onDragstart", "onDragover", "onDrop"], Vs = { class: "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] text-center" }, Ms = { class: "flex items-center justify-center" }, Ls = { class: "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-slate-100 dark:bg-slate-700 text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-600 transition-colors" }, Ss = { class: "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]" }, Bs = { class: "flex items-center justify-center gap-2" }, js = ["onClick"], Is = ["onClick"], zs = { class: "vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white" }, As = /* @__PURE__ */ O({
|
|
2296
2323
|
__name: "vs-input-datatable",
|
|
2297
|
-
props: /* @__PURE__ */
|
|
2324
|
+
props: /* @__PURE__ */ Q({
|
|
2298
2325
|
colModel: {},
|
|
2299
2326
|
style: {},
|
|
2300
2327
|
customClass: {},
|
|
@@ -2309,93 +2336,96 @@ const es = /* @__PURE__ */ R(Qa, [["render", Ya]]), ts = { class: "vs-datatable
|
|
|
2309
2336
|
}),
|
|
2310
2337
|
emits: ["update:modelValue"],
|
|
2311
2338
|
setup(o) {
|
|
2312
|
-
const e = o, t =
|
|
2339
|
+
const e = o, t = X(o, "modelValue"), n = x({}), s = x(""), a = D(() => {
|
|
2313
2340
|
if (!s.value) return t.value ?? [];
|
|
2314
|
-
const
|
|
2315
|
-
return t.value.filter((
|
|
2316
|
-
const
|
|
2317
|
-
return
|
|
2341
|
+
const I = s.value.toLowerCase();
|
|
2342
|
+
return t.value.filter(($) => e.colModel?.some((S) => {
|
|
2343
|
+
const q = $[S.key];
|
|
2344
|
+
return q ? Array.isArray(q) ? q.join(", ").toLowerCase().includes(I) : String(q).toLowerCase().includes(I) : !1;
|
|
2318
2345
|
}));
|
|
2319
|
-
}), r =
|
|
2320
|
-
r.value =
|
|
2321
|
-
}, v = (
|
|
2322
|
-
d.value =
|
|
2323
|
-
},
|
|
2324
|
-
if (r.value === null || r.value ===
|
|
2346
|
+
}), r = x(null), d = x(null), p = x(!1), f = x(null), c = x({ top: 0, left: 0 }), g = (I) => {
|
|
2347
|
+
r.value = I;
|
|
2348
|
+
}, v = (I) => {
|
|
2349
|
+
d.value = I;
|
|
2350
|
+
}, C = (I) => {
|
|
2351
|
+
if (r.value === null || r.value === I) {
|
|
2325
2352
|
r.value = null, d.value = null;
|
|
2326
2353
|
return;
|
|
2327
2354
|
}
|
|
2328
|
-
const
|
|
2329
|
-
|
|
2330
|
-
},
|
|
2331
|
-
const
|
|
2332
|
-
c.value = { top:
|
|
2355
|
+
const $ = [...t.value], [S] = $.splice(r.value, 1);
|
|
2356
|
+
$.splice(I, 0, S), t.value = $, r.value = null, d.value = null;
|
|
2357
|
+
}, z = (I) => {
|
|
2358
|
+
const S = I.currentTarget.getBoundingClientRect();
|
|
2359
|
+
c.value = { top: S.bottom + window.scrollY, left: S.left + window.scrollX }, p.value = !p.value;
|
|
2333
2360
|
}, U = () => {
|
|
2334
2361
|
f.value && f.value.click();
|
|
2335
|
-
}, T = (
|
|
2336
|
-
const
|
|
2337
|
-
if (!
|
|
2338
|
-
const
|
|
2339
|
-
|
|
2362
|
+
}, T = (I) => {
|
|
2363
|
+
const S = I.target.files?.[0];
|
|
2364
|
+
if (!S) return;
|
|
2365
|
+
const q = new FileReader();
|
|
2366
|
+
q.onload = (m) => {
|
|
2340
2367
|
try {
|
|
2341
|
-
const
|
|
2342
|
-
if (typeof
|
|
2343
|
-
const
|
|
2344
|
-
Array.isArray(
|
|
2368
|
+
const y = m.target?.result;
|
|
2369
|
+
if (typeof y == "string") {
|
|
2370
|
+
const E = JSON.parse(y);
|
|
2371
|
+
Array.isArray(E) && t.value.push(...E);
|
|
2345
2372
|
}
|
|
2346
|
-
} catch (
|
|
2347
|
-
console.error("Error parsing file:",
|
|
2373
|
+
} catch (y) {
|
|
2374
|
+
console.error("Error parsing file:", y);
|
|
2348
2375
|
}
|
|
2349
|
-
},
|
|
2350
|
-
},
|
|
2351
|
-
const
|
|
2352
|
-
|
|
2376
|
+
}, q.readAsText(S);
|
|
2377
|
+
}, N = () => {
|
|
2378
|
+
const I = JSON.stringify(t.value, null, 2), $ = new Blob([I], { type: "application/json" }), S = URL.createObjectURL($), q = document.createElement("a");
|
|
2379
|
+
q.href = S, q.download = "data.json", q.click(), URL.revokeObjectURL(S);
|
|
2353
2380
|
};
|
|
2354
|
-
|
|
2355
|
-
const
|
|
2356
|
-
|
|
2357
|
-
n.value[
|
|
2381
|
+
ue(async () => {
|
|
2382
|
+
const I = e.colModel?.filter(($) => $.data);
|
|
2383
|
+
I?.length && Promise.all(I.map(async ($) => {
|
|
2384
|
+
n.value[$.key] = await fetch(`/api/suggest/${$.data}`).then((S) => S.json());
|
|
2358
2385
|
}));
|
|
2359
2386
|
});
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
}
|
|
2365
|
-
C && (Array.isArray(t.value) ? t.value = [...t.value, C] : t.value = [C]);
|
|
2387
|
+
const _ = x(""), b = x(!1);
|
|
2388
|
+
let h = "edit", Z = 0;
|
|
2389
|
+
const P = x({}), M = x({});
|
|
2390
|
+
async function H() {
|
|
2391
|
+
_.value = "Додати", b.value = !0, h = "add", P.value = {};
|
|
2366
2392
|
}
|
|
2367
|
-
function
|
|
2368
|
-
return n.value[
|
|
2393
|
+
function Y(I, $) {
|
|
2394
|
+
return n.value[$.key] && I[$.key] ? n.value[$.key].find((S) => S.id.toString() === I[$.key].toString())?.text ?? I[$.key] : I[$.key] || "-";
|
|
2369
2395
|
}
|
|
2370
|
-
async function
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2396
|
+
async function we(I, $) {
|
|
2397
|
+
_.value = "Редагувати", b.value = !0, h = "edit", Z = $, P.value = { ...I };
|
|
2398
|
+
}
|
|
2399
|
+
function ce() {
|
|
2400
|
+
const I = M.value.validate();
|
|
2401
|
+
if (I) {
|
|
2402
|
+
pe({ type: "warning", title: "Помилка валідації", message: Object.entries(I).map(([$, S]) => `${$}: ${S}`).join(`
|
|
2403
|
+
`) });
|
|
2404
|
+
return;
|
|
2405
|
+
}
|
|
2406
|
+
h === "add" ? Array.isArray(t.value) ? t.value = [...t.value, P.value] : t.value = [P.value] : t.value = t.value.map(($, S) => S === Z ? P.value : $), b.value = !1;
|
|
2377
2407
|
}
|
|
2378
|
-
function
|
|
2379
|
-
t.value = t.value.filter((
|
|
2408
|
+
function Ce(I) {
|
|
2409
|
+
t.value = t.value.filter(($, S) => S !== I);
|
|
2380
2410
|
}
|
|
2381
|
-
return (
|
|
2382
|
-
l("div",
|
|
2383
|
-
l("div",
|
|
2384
|
-
|
|
2411
|
+
return (I, $) => (i(), u("div", ns, [
|
|
2412
|
+
l("div", is, [
|
|
2413
|
+
l("div", us, [
|
|
2414
|
+
B(Fa, {
|
|
2385
2415
|
width: "14",
|
|
2386
2416
|
height: "14",
|
|
2387
2417
|
class: "absolute left-3 top-1/2 transform -translate-y-1/2 text-stone-500"
|
|
2388
2418
|
}),
|
|
2389
|
-
|
|
2419
|
+
K(l("input", {
|
|
2390
2420
|
type: "text",
|
|
2391
|
-
"onUpdate:modelValue":
|
|
2421
|
+
"onUpdate:modelValue": $[0] || ($[0] = (S) => s.value = S),
|
|
2392
2422
|
placeholder: "Пошук",
|
|
2393
2423
|
class: "py-2 px-3 pl-10 w-full bg-gray-100 h-[36px] rounded-[8px] text-[15px] leading-[18px] focus:border-1 text-stone-800 placeholder:text-[#6B7280] focus:outline-blue-500 focus:outline-2"
|
|
2394
2424
|
}, null, 512), [
|
|
2395
|
-
[
|
|
2425
|
+
[de, s.value]
|
|
2396
2426
|
])
|
|
2397
2427
|
]),
|
|
2398
|
-
l("div",
|
|
2428
|
+
l("div", ds, [
|
|
2399
2429
|
l("input", {
|
|
2400
2430
|
ref_key: "fileInput",
|
|
2401
2431
|
ref: f,
|
|
@@ -2404,14 +2434,14 @@ const es = /* @__PURE__ */ R(Qa, [["render", Ya]]), ts = { class: "vs-datatable
|
|
|
2404
2434
|
accept: ".json",
|
|
2405
2435
|
type: "file"
|
|
2406
2436
|
}, null, 544),
|
|
2407
|
-
l("div",
|
|
2408
|
-
l("div",
|
|
2409
|
-
l("div",
|
|
2437
|
+
l("div", cs, [
|
|
2438
|
+
l("div", ps, [
|
|
2439
|
+
l("div", fs, [
|
|
2410
2440
|
l("button", {
|
|
2411
|
-
onClick:
|
|
2441
|
+
onClick: z,
|
|
2412
2442
|
class: "bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"
|
|
2413
2443
|
}, [
|
|
2414
|
-
|
|
2444
|
+
B(Ra, {
|
|
2415
2445
|
height: "16",
|
|
2416
2446
|
width: "16"
|
|
2417
2447
|
})
|
|
@@ -2420,139 +2450,167 @@ const es = /* @__PURE__ */ R(Qa, [["render", Ya]]), ts = { class: "vs-datatable
|
|
|
2420
2450
|
])
|
|
2421
2451
|
])
|
|
2422
2452
|
]),
|
|
2423
|
-
(i(),
|
|
2453
|
+
(i(), te(pt, { to: "body" }, [
|
|
2424
2454
|
p.value ? (i(), u("div", {
|
|
2425
2455
|
key: 0,
|
|
2426
2456
|
class: "text-slate-700 vsTailwind vs-popover__content bottom",
|
|
2427
|
-
style:
|
|
2457
|
+
style: he([{ width: "fit-content", "z-index": "10002", position: "fixed" }, { position: "absolute", top: c.value.top + "px", left: c.value.left + "px" }])
|
|
2428
2458
|
}, [
|
|
2429
|
-
l("div",
|
|
2430
|
-
l("div",
|
|
2459
|
+
l("div", vs, [
|
|
2460
|
+
l("div", ms, [
|
|
2431
2461
|
l("button", {
|
|
2432
2462
|
onClick: U,
|
|
2433
2463
|
class: "text-slate-700 flex items-center gap-1 px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"
|
|
2434
2464
|
}, [
|
|
2435
|
-
|
|
2465
|
+
B(qa, {
|
|
2436
2466
|
class: "text-black",
|
|
2437
2467
|
width: "14",
|
|
2438
2468
|
height: "14"
|
|
2439
2469
|
}),
|
|
2440
|
-
|
|
2470
|
+
$[4] || ($[4] = se(" Імпортувати "))
|
|
2441
2471
|
]),
|
|
2442
2472
|
l("button", {
|
|
2443
|
-
onClick:
|
|
2473
|
+
onClick: N,
|
|
2444
2474
|
class: "text-slate-700 flex items-center px-3 py-2 rounded-md cursor-pointer group hover:bg-gray-100"
|
|
2445
2475
|
}, [
|
|
2446
|
-
l("span",
|
|
2447
|
-
|
|
2476
|
+
l("span", hs, [
|
|
2477
|
+
B(Za, {
|
|
2448
2478
|
class: "text-black",
|
|
2449
2479
|
width: "14",
|
|
2450
2480
|
height: "14"
|
|
2451
2481
|
}),
|
|
2452
|
-
|
|
2482
|
+
$[5] || ($[5] = se(" Експортувати "))
|
|
2453
2483
|
])
|
|
2454
2484
|
])
|
|
2455
2485
|
])
|
|
2456
2486
|
])
|
|
2457
|
-
], 4)) :
|
|
2487
|
+
], 4)) : j("", !0)
|
|
2458
2488
|
])),
|
|
2459
2489
|
l("button", {
|
|
2460
|
-
onClick:
|
|
2490
|
+
onClick: H,
|
|
2461
2491
|
class: "text-slate-700 bg-white hover:bg-gray-100 font-semibold text-[15px] leadig-[18.5px] py-[10px] px-[12px] border border-[#E5E7EB] rounded-[8px] h-[38px] max-h-[38px] gap-[8px] flex items-center"
|
|
2462
2492
|
}, [
|
|
2463
|
-
|
|
2464
|
-
|
|
2493
|
+
B(je),
|
|
2494
|
+
$[6] || ($[6] = se(" Додати "))
|
|
2465
2495
|
])
|
|
2466
2496
|
]),
|
|
2467
|
-
l("div",
|
|
2468
|
-
l("table",
|
|
2469
|
-
l("thead",
|
|
2470
|
-
l("tr",
|
|
2471
|
-
l("th",
|
|
2472
|
-
|
|
2497
|
+
l("div", gs, [
|
|
2498
|
+
l("table", bs, [
|
|
2499
|
+
l("thead", ys, [
|
|
2500
|
+
l("tr", xs, [
|
|
2501
|
+
l("th", ws, [
|
|
2502
|
+
B(Qe, {
|
|
2473
2503
|
width: "24",
|
|
2474
2504
|
height: "24",
|
|
2475
2505
|
class: "w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"
|
|
2476
2506
|
})
|
|
2477
2507
|
]),
|
|
2478
|
-
(i(!0), u(
|
|
2479
|
-
key:
|
|
2508
|
+
(i(!0), u(ee, null, le(I.colModel, (S) => (i(), u("th", {
|
|
2509
|
+
key: S.key,
|
|
2480
2510
|
class: "h-10 px-2 text-left align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 min-w-[150px]"
|
|
2481
|
-
}, F(
|
|
2482
|
-
|
|
2511
|
+
}, F(S.ua || S.label), 1))), 128)),
|
|
2512
|
+
$[7] || ($[7] = l("th", { class: "h-10 px-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] font-semibold text-slate-700 dark:text-slate-300 text-center" }, " Дії ", -1))
|
|
2483
2513
|
])
|
|
2484
2514
|
]),
|
|
2485
2515
|
l("tbody", {
|
|
2486
|
-
class:
|
|
2516
|
+
class: V({ "[&_tr:last-child]:border-0": !d.value })
|
|
2487
2517
|
}, [
|
|
2488
|
-
a.value.length === 0 ? (i(), u("td",
|
|
2489
|
-
l("div",
|
|
2490
|
-
l("div",
|
|
2491
|
-
|
|
2492
|
-
|
|
2518
|
+
a.value.length === 0 ? (i(), u("td", ks, [
|
|
2519
|
+
l("div", _s, [
|
|
2520
|
+
l("div", $s, [
|
|
2521
|
+
B(ls, { class: "w-48 mx-auto" }),
|
|
2522
|
+
$[8] || ($[8] = l("div", { class: "max-w-sm mx-auto mt-6" }, [
|
|
2493
2523
|
l("p", { class: "font-medium text-gray-800 dark:text-neutral-200" }, "Нічого не знайдено"),
|
|
2494
2524
|
l("p", { class: "mt-2 text-sm text-gray-500 dark:text-neutral-500" })
|
|
2495
2525
|
], -1))
|
|
2496
2526
|
])
|
|
2497
2527
|
])
|
|
2498
|
-
])) :
|
|
2499
|
-
(i(!0), u(
|
|
2500
|
-
key:
|
|
2501
|
-
class:
|
|
2502
|
-
"opacity-50": r.value ===
|
|
2503
|
-
"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20": d.value ===
|
|
2528
|
+
])) : j("", !0),
|
|
2529
|
+
(i(!0), u(ee, null, le(a.value, (S, q) => (i(), u("tr", {
|
|
2530
|
+
key: S.id,
|
|
2531
|
+
class: V(["border-b data-[state=selected]:bg-muted transition-all duration-200 hover:bg-slate-50/60 dark:hover:bg-slate-700/60 cursor-move", {
|
|
2532
|
+
"opacity-50": r.value === q,
|
|
2533
|
+
"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20": d.value === q
|
|
2504
2534
|
}]),
|
|
2505
2535
|
draggable: "true",
|
|
2506
|
-
onDragstart: (
|
|
2507
|
-
onDragover:
|
|
2508
|
-
onDrop: (
|
|
2536
|
+
onDragstart: (m) => g(q),
|
|
2537
|
+
onDragover: ne((m) => v(q), ["prevent"]),
|
|
2538
|
+
onDrop: (m) => C(q)
|
|
2509
2539
|
}, [
|
|
2510
|
-
l("td",
|
|
2511
|
-
l("div",
|
|
2512
|
-
|
|
2540
|
+
l("td", Vs, [
|
|
2541
|
+
l("div", Ms, [
|
|
2542
|
+
B(Qe, {
|
|
2513
2543
|
width: "24",
|
|
2514
2544
|
height: "24",
|
|
2515
2545
|
class: "w-4 h-4 mx-auto text-slate-400 dark:text-slate-500"
|
|
2516
2546
|
})
|
|
2517
2547
|
])
|
|
2518
2548
|
]),
|
|
2519
|
-
(i(!0), u(
|
|
2520
|
-
key:
|
|
2549
|
+
(i(!0), u(ee, null, le(I.colModel, (m) => (i(), u("td", {
|
|
2550
|
+
key: m.key,
|
|
2521
2551
|
class: "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"
|
|
2522
2552
|
}, [
|
|
2523
|
-
l("div",
|
|
2553
|
+
l("div", Ls, F(Y(S, m)), 1)
|
|
2524
2554
|
]))), 128)),
|
|
2525
|
-
l("td",
|
|
2526
|
-
l("div",
|
|
2555
|
+
l("td", Ss, [
|
|
2556
|
+
l("div", Bs, [
|
|
2527
2557
|
l("button", {
|
|
2528
|
-
onClick: (
|
|
2558
|
+
onClick: (m) => we(S, q),
|
|
2529
2559
|
class: "text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-blue-50 dark:hover:bg-slate-600 hover:border-blue-300 dark:hover:border-slate-500 hover:text-blue-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"
|
|
2530
2560
|
}, [
|
|
2531
|
-
|
|
2561
|
+
B(rs, {
|
|
2532
2562
|
width: "24",
|
|
2533
2563
|
height: "24",
|
|
2534
2564
|
class: "w-3 h-3"
|
|
2535
2565
|
})
|
|
2536
|
-
], 8,
|
|
2566
|
+
], 8, js),
|
|
2537
2567
|
l("button", {
|
|
2538
|
-
onClick: (
|
|
2568
|
+
onClick: (m) => Ce(q),
|
|
2539
2569
|
class: "text-slate-700 inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border rounded-md text-xs h-7 w-7 p-0 border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 hover:bg-red-50 dark:hover:bg-slate-600 hover:border-red-300 dark:hover:border-slate-500 hover:text-red-600 dark:hover:text-slate-200 transition-all duration-200 shadow-sm"
|
|
2540
2570
|
}, [
|
|
2541
|
-
|
|
2571
|
+
B(ze, {
|
|
2542
2572
|
width: "24",
|
|
2543
2573
|
height: "24",
|
|
2544
2574
|
class: "w-3 h-3"
|
|
2545
2575
|
})
|
|
2546
|
-
], 8,
|
|
2576
|
+
], 8, Is)
|
|
2547
2577
|
])
|
|
2548
2578
|
])
|
|
2549
|
-
], 42,
|
|
2579
|
+
], 42, Cs))), 128))
|
|
2550
2580
|
], 2)
|
|
2551
2581
|
])
|
|
2552
|
-
])
|
|
2582
|
+
]),
|
|
2583
|
+
B(J(vt), {
|
|
2584
|
+
visible: b.value,
|
|
2585
|
+
title: _.value,
|
|
2586
|
+
size: "lg"
|
|
2587
|
+
}, {
|
|
2588
|
+
default: $e(() => [
|
|
2589
|
+
B(Ie, {
|
|
2590
|
+
schema: e.colModel,
|
|
2591
|
+
values: P.value,
|
|
2592
|
+
"onUpdate:values": $[1] || ($[1] = (S) => P.value = S),
|
|
2593
|
+
form: M.value,
|
|
2594
|
+
"onUpdate:form": $[2] || ($[2] = (S) => M.value = S)
|
|
2595
|
+
}, null, 8, ["schema", "values", "form"]),
|
|
2596
|
+
l("div", zs, [
|
|
2597
|
+
l("button", {
|
|
2598
|
+
type: "button",
|
|
2599
|
+
onClick: $[3] || ($[3] = (S) => b.value = !1),
|
|
2600
|
+
class: "vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"
|
|
2601
|
+
}, " Скасувати "),
|
|
2602
|
+
l("button", {
|
|
2603
|
+
onClick: ce,
|
|
2604
|
+
type: "button",
|
|
2605
|
+
class: "vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"
|
|
2606
|
+
}, " Зберегти ")
|
|
2607
|
+
])
|
|
2608
|
+
]),
|
|
2609
|
+
_: 1
|
|
2610
|
+
}, 8, ["visible", "title"])
|
|
2553
2611
|
]));
|
|
2554
2612
|
}
|
|
2555
|
-
}),
|
|
2613
|
+
}), Os = {
|
|
2556
2614
|
draw: {
|
|
2557
2615
|
toolbar: {
|
|
2558
2616
|
actions: {
|
|
@@ -2660,7 +2718,7 @@ const es = /* @__PURE__ */ R(Qa, [["render", Ya]]), ts = { class: "vs-datatable
|
|
|
2660
2718
|
}
|
|
2661
2719
|
}
|
|
2662
2720
|
};
|
|
2663
|
-
function
|
|
2721
|
+
function Es(o) {
|
|
2664
2722
|
return o ? o.type === "FeatureCollection" || o.type === "Feature" ? o : o.geom ? {
|
|
2665
2723
|
type: "Feature",
|
|
2666
2724
|
geometry: {
|
|
@@ -2674,7 +2732,7 @@ function Ss(o) {
|
|
|
2674
2732
|
properties: {}
|
|
2675
2733
|
} : null : null;
|
|
2676
2734
|
}
|
|
2677
|
-
const
|
|
2735
|
+
const Fs = {}, Ds = {
|
|
2678
2736
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2679
2737
|
viewBox: "0 0 24 24",
|
|
2680
2738
|
stroke: "currentColor",
|
|
@@ -2684,8 +2742,8 @@ const Bs = {}, js = {
|
|
|
2684
2742
|
"stroke-linejoin": "round",
|
|
2685
2743
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-map-pin"
|
|
2686
2744
|
};
|
|
2687
|
-
function
|
|
2688
|
-
return i(), u("svg",
|
|
2745
|
+
function Us(o, e) {
|
|
2746
|
+
return i(), u("svg", Ds, e[0] || (e[0] = [
|
|
2689
2747
|
l("path", {
|
|
2690
2748
|
stroke: "none",
|
|
2691
2749
|
d: "M0 0h24v24H0z",
|
|
@@ -2695,7 +2753,7 @@ function Is(o, e) {
|
|
|
2695
2753
|
l("path", { d: "M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z" }, null, -1)
|
|
2696
2754
|
]));
|
|
2697
2755
|
}
|
|
2698
|
-
const
|
|
2756
|
+
const Ts = /* @__PURE__ */ R(Fs, [["render", Us]]), Rs = {}, Ps = {
|
|
2699
2757
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2700
2758
|
viewBox: "0 0 24 24",
|
|
2701
2759
|
fill: "none",
|
|
@@ -2705,8 +2763,8 @@ const zs = /* @__PURE__ */ R(Bs, [["render", Is]]), As = {}, Es = {
|
|
|
2705
2763
|
"stroke-linejoin": "round",
|
|
2706
2764
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-line"
|
|
2707
2765
|
};
|
|
2708
|
-
function
|
|
2709
|
-
return i(), u("svg",
|
|
2766
|
+
function Ns(o, e) {
|
|
2767
|
+
return i(), u("svg", Ps, e[0] || (e[0] = [
|
|
2710
2768
|
l("path", {
|
|
2711
2769
|
stroke: "none",
|
|
2712
2770
|
d: "M0 0h24v24H0z",
|
|
@@ -2717,7 +2775,7 @@ function Fs(o, e) {
|
|
|
2717
2775
|
l("path", { d: "M7.5 16.5l9 -9" }, null, -1)
|
|
2718
2776
|
]));
|
|
2719
2777
|
}
|
|
2720
|
-
const
|
|
2778
|
+
const Hs = /* @__PURE__ */ R(Rs, [["render", Ns]]), qs = {}, Gs = {
|
|
2721
2779
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2722
2780
|
viewBox: "0 0 24 24",
|
|
2723
2781
|
fill: "none",
|
|
@@ -2727,12 +2785,12 @@ const Os = /* @__PURE__ */ R(As, [["render", Fs]]), Ds = {}, Us = {
|
|
|
2727
2785
|
"stroke-linejoin": "round",
|
|
2728
2786
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-polygon"
|
|
2729
2787
|
};
|
|
2730
|
-
function
|
|
2731
|
-
return i(), u("svg",
|
|
2732
|
-
|
|
2788
|
+
function Js(o, e) {
|
|
2789
|
+
return i(), u("svg", Gs, e[0] || (e[0] = [
|
|
2790
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>', 9)
|
|
2733
2791
|
]));
|
|
2734
2792
|
}
|
|
2735
|
-
const
|
|
2793
|
+
const Ks = /* @__PURE__ */ R(qs, [["render", Js]]), Zs = {}, Ws = {
|
|
2736
2794
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2737
2795
|
viewBox: "0 0 24 24",
|
|
2738
2796
|
fill: "none",
|
|
@@ -2742,12 +2800,12 @@ const Rs = /* @__PURE__ */ R(Ds, [["render", Ts]]), Ps = {}, Ns = {
|
|
|
2742
2800
|
"stroke-linejoin": "round",
|
|
2743
2801
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-topology-ring-3"
|
|
2744
2802
|
};
|
|
2745
|
-
function
|
|
2746
|
-
return i(), u("svg",
|
|
2747
|
-
|
|
2803
|
+
function Qs(o, e) {
|
|
2804
|
+
return i(), u("svg", Ws, e[0] || (e[0] = [
|
|
2805
|
+
re('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>', 9)
|
|
2748
2806
|
]));
|
|
2749
2807
|
}
|
|
2750
|
-
const
|
|
2808
|
+
const Xs = /* @__PURE__ */ R(Zs, [["render", Qs]]), Ys = {}, er = {
|
|
2751
2809
|
version: "1.1",
|
|
2752
2810
|
viewBox: "0 0 14 14",
|
|
2753
2811
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2755,8 +2813,8 @@ const qs = /* @__PURE__ */ R(Ps, [["render", Hs]]), Gs = {}, Js = {
|
|
|
2755
2813
|
"xmlns:xlink": "http://www.w3.org/1999/xlink",
|
|
2756
2814
|
class: "fullscreen-icon"
|
|
2757
2815
|
};
|
|
2758
|
-
function
|
|
2759
|
-
return i(), u("svg",
|
|
2816
|
+
function tr(o, e) {
|
|
2817
|
+
return i(), u("svg", er, e[0] || (e[0] = [
|
|
2760
2818
|
l("title", null, null, -1),
|
|
2761
2819
|
l("desc", null, null, -1),
|
|
2762
2820
|
l("defs", null, null, -1),
|
|
@@ -2785,10 +2843,10 @@ function Ks(o, e) {
|
|
|
2785
2843
|
], -1)
|
|
2786
2844
|
]));
|
|
2787
2845
|
}
|
|
2788
|
-
const
|
|
2846
|
+
const lr = /* @__PURE__ */ R(Ys, [["render", tr]]), or = { class: "form-geom__search" }, ar = { class: "map-search__input" }, sr = { class: "flex flex-nowrap relative" }, rr = { class: "form-autocomplete relative min-w-[6rem] vsTailwind map-search__select hidden" }, nr = { class: "flex items-center w-full" }, ir = { class: "max-w-[90%] truncate" }, ur = {
|
|
2789
2847
|
key: 0,
|
|
2790
2848
|
class: "absolute z-[3100] mt-0.5 left-0 right-0"
|
|
2791
|
-
},
|
|
2849
|
+
}, dr = { class: "form-autocomplete__wrapper mt-[10px] z-50 w-full min-w-36 max-h-72 p-0 space-y-0.5 bg-white rounded-xl shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] dark:bg-neutral-900 top-full opened" }, cr = { class: "form-autocomplete__list vsTailwind px-2 pb-2 pt-0 max-h-200 relative [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900" }, pr = ["onClick"], fr = { class: "flex justify-between items-center w-full" }, vr = { class: "flex items-center" }, mr = {
|
|
2792
2850
|
key: 0,
|
|
2793
2851
|
class: "flex-shrink-0 w-3.5 h-3.5 text-blue-600",
|
|
2794
2852
|
width: "24",
|
|
@@ -2799,23 +2857,23 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2799
2857
|
"stroke-width": "2",
|
|
2800
2858
|
"stroke-linecap": "round",
|
|
2801
2859
|
"stroke-linejoin": "round"
|
|
2802
|
-
},
|
|
2860
|
+
}, hr = { class: "relative w-full" }, gr = { class: "vs-form-text relative bg-white rounded-lg" }, br = {
|
|
2803
2861
|
key: 1,
|
|
2804
2862
|
class: "absolute left-0 right-0 top-full z-[3200] bg-white border border-gray-200 rounded-b-lg shadow-lg max-h-72 overflow-auto"
|
|
2805
|
-
},
|
|
2863
|
+
}, yr = { key: 0 }, xr = ["onClick"], wr = {
|
|
2806
2864
|
key: 1,
|
|
2807
2865
|
class: "px-3 py-2 text-xs text-gray-500"
|
|
2808
|
-
},
|
|
2866
|
+
}, kr = {
|
|
2809
2867
|
key: 2,
|
|
2810
2868
|
class: "px-3 py-2 text-xs text-gray-400"
|
|
2811
|
-
},
|
|
2869
|
+
}, _r = /* @__PURE__ */ O({
|
|
2812
2870
|
__name: "map-search",
|
|
2813
2871
|
props: {
|
|
2814
2872
|
placeholder: { default: "50, 30" }
|
|
2815
2873
|
},
|
|
2816
2874
|
emits: ["goToCoordinates"],
|
|
2817
2875
|
setup(o, { emit: e }) {
|
|
2818
|
-
const t = e, n =
|
|
2876
|
+
const t = e, n = x(!1), s = x("coordinates"), a = x(""), r = x([]), d = x(!1), p = x(!1);
|
|
2819
2877
|
let f;
|
|
2820
2878
|
const c = [
|
|
2821
2879
|
{ value: "coordinates", label: "Пошук по кординатам" },
|
|
@@ -2826,22 +2884,22 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2826
2884
|
function v(_) {
|
|
2827
2885
|
s.value = _.value, n.value = !1, a.value = "", a.value && U();
|
|
2828
2886
|
}
|
|
2829
|
-
function
|
|
2887
|
+
function C(_) {
|
|
2830
2888
|
_.target.closest(".map-search__input") || (n.value = !1);
|
|
2831
2889
|
}
|
|
2832
|
-
|
|
2833
|
-
async function
|
|
2834
|
-
let
|
|
2835
|
-
s.value === "atu" ?
|
|
2836
|
-
const h = new URL(
|
|
2890
|
+
ue(() => document.addEventListener("click", C)), Ee(() => document.removeEventListener("click", C));
|
|
2891
|
+
async function z(_) {
|
|
2892
|
+
let b;
|
|
2893
|
+
s.value === "atu" ? b = "/api/suggest/atu.nsdi.ato_level" : s.value === "address" ? b = "/api/suggest/map.address_id" : s.value === "search_here" && (b = "/api/gis-url-proxy");
|
|
2894
|
+
const h = new URL(b || "");
|
|
2837
2895
|
return s.value === "search_here" ? h.searchParams.set("searchtext", _) : (s.value === "atu" || s.value === "address") && h.searchParams.set("key", _), h.searchParams.set("limit", "20"), h.searchParams.set("q", _), (await fetch(h.toString())).json();
|
|
2838
2896
|
}
|
|
2839
2897
|
function U() {
|
|
2840
2898
|
if (d.value = !0, p.value = !0, s.value === "coordinates") {
|
|
2841
2899
|
const _ = a.value.trim().split(",");
|
|
2842
2900
|
if (_.length === 2) {
|
|
2843
|
-
const
|
|
2844
|
-
!Number.isNaN(
|
|
2901
|
+
const b = parseFloat(_[0]), h = parseFloat(_[1]);
|
|
2902
|
+
!Number.isNaN(b) && !Number.isNaN(h) && t("goToCoordinates", [b, h]);
|
|
2845
2903
|
}
|
|
2846
2904
|
return;
|
|
2847
2905
|
}
|
|
@@ -2852,8 +2910,8 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2852
2910
|
return;
|
|
2853
2911
|
}
|
|
2854
2912
|
try {
|
|
2855
|
-
const
|
|
2856
|
-
r.value = Array.isArray(
|
|
2913
|
+
const b = await z(_);
|
|
2914
|
+
r.value = Array.isArray(b.features) ? b.features : [];
|
|
2857
2915
|
} catch {
|
|
2858
2916
|
r.value = [];
|
|
2859
2917
|
} finally {
|
|
@@ -2864,22 +2922,22 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2864
2922
|
function T() {
|
|
2865
2923
|
a.value = "", r.value = [], d.value = !1, p.value = !1;
|
|
2866
2924
|
}
|
|
2867
|
-
function
|
|
2925
|
+
function N(_) {
|
|
2868
2926
|
t("goToCoordinates", _), d.value = !1, p.value = !1, r.value = [];
|
|
2869
2927
|
}
|
|
2870
|
-
return (_,
|
|
2871
|
-
l("div",
|
|
2872
|
-
l("div",
|
|
2873
|
-
l("div",
|
|
2928
|
+
return (_, b) => (i(), u("div", or, [
|
|
2929
|
+
l("div", ar, [
|
|
2930
|
+
l("div", sr, [
|
|
2931
|
+
l("div", rr, [
|
|
2874
2932
|
l("button", {
|
|
2875
2933
|
type: "button",
|
|
2876
|
-
onClick:
|
|
2934
|
+
onClick: b[0] || (b[0] = (h) => n.value = !n.value),
|
|
2877
2935
|
class: "h-[40px] relative px-4 pe-9 flex text-nowrap w-full cursor-pointer bg-white border border-solid border-stone-200 rounded-lg text-start text-sm text-stone-800 focus:outline-none focus:ring-1 focus:ring-blue-600 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-200"
|
|
2878
2936
|
}, [
|
|
2879
|
-
l("div",
|
|
2880
|
-
l("span",
|
|
2937
|
+
l("div", nr, [
|
|
2938
|
+
l("span", ir, F(g.value), 1)
|
|
2881
2939
|
]),
|
|
2882
|
-
|
|
2940
|
+
b[3] || (b[3] = l("svg", {
|
|
2883
2941
|
class: "stroke-gray-500 absolute right-3 translate-y-1/2 bottom-1/2",
|
|
2884
2942
|
width: "15",
|
|
2885
2943
|
height: "15",
|
|
@@ -2894,30 +2952,30 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2894
2952
|
})
|
|
2895
2953
|
], -1))
|
|
2896
2954
|
]),
|
|
2897
|
-
n.value ? (i(), u("div",
|
|
2898
|
-
l("div",
|
|
2899
|
-
l("div",
|
|
2900
|
-
(i(), u(
|
|
2901
|
-
onClick: (
|
|
2955
|
+
n.value ? (i(), u("div", ur, [
|
|
2956
|
+
l("div", dr, [
|
|
2957
|
+
l("div", cr, [
|
|
2958
|
+
(i(), u(ee, null, le(c, (h) => l("div", {
|
|
2959
|
+
onClick: (Z) => v(h),
|
|
2902
2960
|
key: h.value,
|
|
2903
2961
|
class: "form-autocomplete__item cursor-pointer hs-selected:bg-stone-100 dark:hs-selected:bg-neutral-800 py-2 px-4 w-full text-sm text-gray-800 hover:bg-gray-100 rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800 cursor-default"
|
|
2904
2962
|
}, [
|
|
2905
|
-
l("div",
|
|
2906
|
-
l("div",
|
|
2963
|
+
l("div", fr, [
|
|
2964
|
+
l("div", vr, [
|
|
2907
2965
|
l("div", null, F(h.label), 1)
|
|
2908
2966
|
]),
|
|
2909
|
-
h.value === s.value ? (i(), u("svg",
|
|
2967
|
+
h.value === s.value ? (i(), u("svg", mr, b[4] || (b[4] = [
|
|
2910
2968
|
l("polyline", { points: "20 6 9 17 4 12" }, null, -1)
|
|
2911
|
-
]))) :
|
|
2969
|
+
]))) : j("", !0)
|
|
2912
2970
|
])
|
|
2913
|
-
], 8,
|
|
2971
|
+
], 8, pr)), 64))
|
|
2914
2972
|
])
|
|
2915
2973
|
])
|
|
2916
|
-
])) :
|
|
2974
|
+
])) : j("", !0)
|
|
2917
2975
|
]),
|
|
2918
|
-
l("div",
|
|
2919
|
-
l("div",
|
|
2920
|
-
|
|
2976
|
+
l("div", hr, [
|
|
2977
|
+
l("div", gr, [
|
|
2978
|
+
b[6] || (b[6] = l("i", { class: "absolute bottom-1/2 translate-y-1/2 left-3 text-gray-500" }, [
|
|
2921
2979
|
l("svg", {
|
|
2922
2980
|
width: "16",
|
|
2923
2981
|
height: "16",
|
|
@@ -2940,15 +2998,15 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2940
2998
|
})
|
|
2941
2999
|
])
|
|
2942
3000
|
], -1)),
|
|
2943
|
-
|
|
3001
|
+
K(l("input", {
|
|
2944
3002
|
type: "text",
|
|
2945
|
-
"onUpdate:modelValue":
|
|
3003
|
+
"onUpdate:modelValue": b[1] || (b[1] = (h) => a.value = h),
|
|
2946
3004
|
onInput: U,
|
|
2947
|
-
onFocus:
|
|
3005
|
+
onFocus: b[2] || (b[2] = (h) => d.value = !0),
|
|
2948
3006
|
placeholder: "lat, lng ex. 50, 30",
|
|
2949
3007
|
class: "bg-white h-[38px] text-sm py-2 px-3 ps-9 pe-8 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"
|
|
2950
3008
|
}, null, 544), [
|
|
2951
|
-
[
|
|
3009
|
+
[de, a.value]
|
|
2952
3010
|
]),
|
|
2953
3011
|
a.value ? (i(), u("button", {
|
|
2954
3012
|
key: 0,
|
|
@@ -2956,7 +3014,7 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2956
3014
|
class: "absolute right-2 bottom-1/2 translate-y-1/2 text-gray-500 hover:text-red-500",
|
|
2957
3015
|
"aria-label": "Очистити",
|
|
2958
3016
|
type: "button"
|
|
2959
|
-
},
|
|
3017
|
+
}, b[5] || (b[5] = [
|
|
2960
3018
|
l("svg", {
|
|
2961
3019
|
width: "15",
|
|
2962
3020
|
height: "15",
|
|
@@ -2971,23 +3029,23 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2971
3029
|
"stroke-linejoin": "round"
|
|
2972
3030
|
})
|
|
2973
3031
|
], -1)
|
|
2974
|
-
]))) :
|
|
2975
|
-
d.value && s.value !== "coordinates" ? (i(), u("div",
|
|
2976
|
-
r.value.length ? (i(), u("ul",
|
|
2977
|
-
(i(!0), u(
|
|
3032
|
+
]))) : j("", !0),
|
|
3033
|
+
d.value && s.value !== "coordinates" ? (i(), u("div", br, [
|
|
3034
|
+
r.value.length ? (i(), u("ul", yr, [
|
|
3035
|
+
(i(!0), u(ee, null, le(r.value, (h) => (i(), u("li", {
|
|
2978
3036
|
key: h.properties.place_id,
|
|
2979
|
-
onClick: (
|
|
3037
|
+
onClick: (Z) => N(h),
|
|
2980
3038
|
class: "px-3 py-2 text-sm cursor-pointer hover:bg-gray-100"
|
|
2981
|
-
}, F(h.properties.display_name), 9,
|
|
2982
|
-
])) : p.value ? (i(), u("div",
|
|
2983
|
-
])) :
|
|
3039
|
+
}, F(h.properties.display_name), 9, xr))), 128))
|
|
3040
|
+
])) : p.value ? (i(), u("div", wr, "Шукаю…")) : (i(), u("div", kr, "Нічого не знайдено"))
|
|
3041
|
+
])) : j("", !0)
|
|
2984
3042
|
])
|
|
2985
3043
|
])
|
|
2986
3044
|
])
|
|
2987
3045
|
])
|
|
2988
3046
|
]));
|
|
2989
3047
|
}
|
|
2990
|
-
}),
|
|
3048
|
+
}), $r = { class: "bg-white/95 p-2 rounded-xl shadow border border-gray-200" }, Cr = { class: "flex gap-2" }, Vr = ["onClick", "title"], Mr = ["src"], Lr = /* @__PURE__ */ O({
|
|
2991
3049
|
__name: "map-layers",
|
|
2992
3050
|
props: {
|
|
2993
3051
|
basemaps: {},
|
|
@@ -2995,15 +3053,15 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
2995
3053
|
},
|
|
2996
3054
|
emits: ["onLayerChange"],
|
|
2997
3055
|
setup(o, { emit: e }) {
|
|
2998
|
-
const n =
|
|
3056
|
+
const n = x(o.defaultLayer ?? ""), s = e;
|
|
2999
3057
|
function a(r) {
|
|
3000
3058
|
s("onLayerChange", r), n.value = r;
|
|
3001
3059
|
}
|
|
3002
|
-
return (r, d) => (i(), u("div",
|
|
3003
|
-
l("div",
|
|
3004
|
-
(i(!0), u(
|
|
3060
|
+
return (r, d) => (i(), u("div", $r, [
|
|
3061
|
+
l("div", Cr, [
|
|
3062
|
+
(i(!0), u(ee, null, le(r.basemaps, (p, f) => (i(), u("div", {
|
|
3005
3063
|
key: f,
|
|
3006
|
-
class:
|
|
3064
|
+
class: V(["cursor-pointer border rounded-lg overflow-hidden hover:shadow-sm", { "ring-2 ring-blue-500 border-blue-300": n.value === f }]),
|
|
3007
3065
|
onClick: (c) => a(f),
|
|
3008
3066
|
title: f,
|
|
3009
3067
|
role: "button",
|
|
@@ -3013,21 +3071,21 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3013
3071
|
src: p.preview,
|
|
3014
3072
|
alt: "",
|
|
3015
3073
|
class: "w-14 h-14 object-cover"
|
|
3016
|
-
}, null, 8,
|
|
3017
|
-
], 10,
|
|
3074
|
+
}, null, 8, Mr)
|
|
3075
|
+
], 10, Vr))), 128))
|
|
3018
3076
|
])
|
|
3019
3077
|
]));
|
|
3020
3078
|
}
|
|
3021
|
-
}),
|
|
3079
|
+
}), Sr = { class: "absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]" }, Br = { class: "form-geom__panel flex gap-1 items-start mt-2" }, jr = { class: "flex items-center gap-1" }, Ir = ["disabled"], zr = { class: "absolute top-4 right-4 z-[1000]" }, Ar = { class: "flex flex-col gap-[2px]" }, Or = ["aria-pressed"], Er = ["aria-pressed"], Fr = ["aria-pressed"], Dr = ["aria-pressed"], Ur = { class: "absolute bottom-0 left-0 right-0 z-[1000] bg-white/95 border-t border-gray-200 text-xs text-gray-700 flex items-center gap-4 pt-1" }, Tr = {
|
|
3022
3080
|
key: 0,
|
|
3023
3081
|
class: "form-geom__feature flex items-center text-xs transition-all gap-2 w-full"
|
|
3024
|
-
},
|
|
3082
|
+
}, Rr = { class: "mr-auto" }, Pr = { class: "font-bold" }, Nr = { class: "flex items-center" }, Hr = { class: "text-xs mr-2" }, qr = {
|
|
3025
3083
|
key: 0,
|
|
3026
3084
|
class: "text-xs"
|
|
3027
|
-
},
|
|
3085
|
+
}, Gr = {
|
|
3028
3086
|
key: 1,
|
|
3029
3087
|
class: "text-xs"
|
|
3030
|
-
},
|
|
3088
|
+
}, Jr = /* @__PURE__ */ O({
|
|
3031
3089
|
__name: "vs-input-map",
|
|
3032
3090
|
props: {
|
|
3033
3091
|
tools: {},
|
|
@@ -3041,11 +3099,9 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3041
3099
|
},
|
|
3042
3100
|
emits: ["update:modelValue"],
|
|
3043
3101
|
setup(o, { emit: e }) {
|
|
3044
|
-
const t = o;
|
|
3045
|
-
console.log(t);
|
|
3046
|
-
const n = e, s = k(null);
|
|
3102
|
+
const t = o, n = e, s = x(null);
|
|
3047
3103
|
let a, r, d;
|
|
3048
|
-
const p =
|
|
3104
|
+
const p = x(null), f = x(null), c = x(6), g = x(0), v = x(null), C = {
|
|
3049
3105
|
topo100: {
|
|
3050
3106
|
url: "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
|
|
3051
3107
|
preview: "https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"
|
|
@@ -3059,108 +3115,108 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3059
3115
|
preview: "https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"
|
|
3060
3116
|
}
|
|
3061
3117
|
};
|
|
3062
|
-
let
|
|
3063
|
-
const U =
|
|
3118
|
+
let z;
|
|
3119
|
+
const U = x("topo100");
|
|
3064
3120
|
function T() {
|
|
3065
|
-
return new Promise((
|
|
3066
|
-
window.L && window.L.Draw &&
|
|
3067
|
-
const
|
|
3068
|
-
if (Array.from(document.styleSheets).some((
|
|
3069
|
-
const
|
|
3070
|
-
|
|
3071
|
-
},
|
|
3072
|
-
const
|
|
3073
|
-
if (
|
|
3074
|
-
|
|
3121
|
+
return new Promise((m, y) => {
|
|
3122
|
+
window.L && window.L.Draw && m(0);
|
|
3123
|
+
const E = (oe) => {
|
|
3124
|
+
if (Array.from(document.styleSheets).some((ye) => ye?.href?.includes(oe))) return;
|
|
3125
|
+
const fe = document.createElement("link");
|
|
3126
|
+
fe.rel = "stylesheet", fe.href = oe, document.head.appendChild(fe);
|
|
3127
|
+
}, G = (oe) => new Promise((Ve, fe) => {
|
|
3128
|
+
const ye = Array.from(document.scripts).find((ve) => ve.src === oe);
|
|
3129
|
+
if (ye) {
|
|
3130
|
+
ye.addEventListener("load", () => Ve()), ye.addEventListener("error", (ve) => fe(ve));
|
|
3075
3131
|
return;
|
|
3076
3132
|
}
|
|
3077
|
-
const
|
|
3078
|
-
|
|
3133
|
+
const xe = document.createElement("script");
|
|
3134
|
+
xe.src = oe, xe.async = !0, xe.onload = () => Ve(), xe.onerror = (ve) => fe(ve), document.body.appendChild(xe);
|
|
3079
3135
|
});
|
|
3080
|
-
|
|
3136
|
+
E("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"), E("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.css"), G("https://unpkg.com/leaflet@1.9.4/dist/leaflet.js").then(() => G("https://unpkg.com/leaflet-draw@1.0.4/dist/leaflet.draw.js")).then(() => m(0)).catch(y);
|
|
3081
3137
|
});
|
|
3082
3138
|
}
|
|
3083
|
-
function
|
|
3084
|
-
const
|
|
3085
|
-
let
|
|
3086
|
-
|
|
3139
|
+
function N() {
|
|
3140
|
+
const m = r.toGeoJSON();
|
|
3141
|
+
let y = null;
|
|
3142
|
+
m?.features?.length && (y = m.features[0].geometry), n("update:modelValue", y), g.value = r.getLayers().length;
|
|
3087
3143
|
}
|
|
3088
|
-
function _(
|
|
3089
|
-
const
|
|
3090
|
-
if (
|
|
3091
|
-
const
|
|
3092
|
-
|
|
3144
|
+
function _(m = 30) {
|
|
3145
|
+
const y = r.getLayers();
|
|
3146
|
+
if (!y.length) return;
|
|
3147
|
+
const G = L.featureGroup(y).getBounds();
|
|
3148
|
+
G && G.isValid() && a.fitBounds(G, { padding: [m, m] });
|
|
3093
3149
|
}
|
|
3094
|
-
function
|
|
3150
|
+
function b() {
|
|
3095
3151
|
p.value?.click();
|
|
3096
3152
|
}
|
|
3097
|
-
const h =
|
|
3098
|
-
function
|
|
3099
|
-
return
|
|
3153
|
+
const h = x("");
|
|
3154
|
+
function Z(m) {
|
|
3155
|
+
return m instanceof L.Circle ? "Circle" : m instanceof L.Rectangle ? "Rectangle" : m instanceof L.Polygon && !(m instanceof L.Rectangle) ? "Polygon" : m instanceof L.Polyline && !(m instanceof L.Polygon) ? "Polyline" : m instanceof L.Marker ? "Point" : "Feature";
|
|
3100
3156
|
}
|
|
3101
|
-
function
|
|
3102
|
-
if (
|
|
3103
|
-
const
|
|
3104
|
-
return Math.PI * (
|
|
3157
|
+
function P(m) {
|
|
3158
|
+
if (m instanceof L.Circle) {
|
|
3159
|
+
const y = m.getRadius();
|
|
3160
|
+
return Math.PI * (y * y) / 1e6;
|
|
3105
3161
|
}
|
|
3106
|
-
if (
|
|
3162
|
+
if (m instanceof L.Polygon || m instanceof L.Rectangle)
|
|
3107
3163
|
try {
|
|
3108
|
-
const
|
|
3109
|
-
return
|
|
3164
|
+
const y = m.getLatLngs(), E = Array.isArray(y[0]) ? y[0] : y, G = L.GeometryUtil?.geodesicArea ? L.GeometryUtil.geodesicArea(E) : 0;
|
|
3165
|
+
return G ? G / 1e6 : 0;
|
|
3110
3166
|
} catch {
|
|
3111
3167
|
return null;
|
|
3112
3168
|
}
|
|
3113
3169
|
return null;
|
|
3114
3170
|
}
|
|
3115
|
-
function m
|
|
3116
|
-
return
|
|
3171
|
+
function M(m) {
|
|
3172
|
+
return m instanceof L.Circle ? m.getLatLng() : m.getBounds ? m.getBounds().getCenter() : m.getLatLng ? m.getLatLng() : a.getCenter();
|
|
3117
3173
|
}
|
|
3118
|
-
function
|
|
3119
|
-
const
|
|
3120
|
-
if (!
|
|
3174
|
+
function H() {
|
|
3175
|
+
const m = r.getLayers();
|
|
3176
|
+
if (!m.length) {
|
|
3121
3177
|
v.value = null, g.value = 0;
|
|
3122
3178
|
return;
|
|
3123
3179
|
}
|
|
3124
|
-
const
|
|
3180
|
+
const y = m[m.length - 1], E = Z(y), G = M(y), oe = P(y);
|
|
3125
3181
|
v.value = {
|
|
3126
|
-
type:
|
|
3127
|
-
center:
|
|
3128
|
-
areaKm2:
|
|
3129
|
-
layer:
|
|
3130
|
-
}, g.value =
|
|
3182
|
+
type: E,
|
|
3183
|
+
center: G,
|
|
3184
|
+
areaKm2: oe,
|
|
3185
|
+
layer: y
|
|
3186
|
+
}, g.value = m.length;
|
|
3131
3187
|
}
|
|
3132
|
-
function
|
|
3133
|
-
const
|
|
3134
|
-
|
|
3188
|
+
function Y() {
|
|
3189
|
+
const m = v.value?.layer;
|
|
3190
|
+
m && (m instanceof L.Circle && m.getBounds ? a.fitBounds(m.getBounds(), { padding: [30, 30] }) : m.getBounds ? a.fitBounds(m.getBounds(), { padding: [30, 30] }) : m.getLatLng && a.setView(m.getLatLng(), Math.max(c.value, 14)));
|
|
3135
3191
|
}
|
|
3136
|
-
function
|
|
3137
|
-
const
|
|
3138
|
-
|
|
3192
|
+
function we() {
|
|
3193
|
+
const m = v.value?.layer;
|
|
3194
|
+
m && (r.removeLayer(m), N(), H());
|
|
3139
3195
|
}
|
|
3140
|
-
|
|
3141
|
-
await T(), L.drawLocal =
|
|
3142
|
-
const { layer:
|
|
3143
|
-
r.clearLayers(), r.addLayer(
|
|
3196
|
+
ue(async () => {
|
|
3197
|
+
await T(), L.drawLocal = Os, a = L.map(s.value, { zoomControl: !1 }).setView([50, 30], 10), L.control.zoom({ position: "bottomright" }).addTo(a), z = L.tileLayer(C.topo100.url, { maxZoom: 19, minZoom: 6 }).addTo(a), U.value = "topo100", r = new L.FeatureGroup().addTo(a), a.on(L.Draw.Event.CREATED, (E) => {
|
|
3198
|
+
const { layer: G } = E;
|
|
3199
|
+
r.clearLayers(), r.addLayer(G), N(), H(), _(), h.value = "";
|
|
3144
3200
|
}), a.on(L.Draw.Event.EDITED, () => {
|
|
3145
|
-
|
|
3201
|
+
N(), H(), _();
|
|
3146
3202
|
}), a.on(L.Draw.Event.DELETED, () => {
|
|
3147
|
-
|
|
3203
|
+
N(), H(), _();
|
|
3148
3204
|
});
|
|
3149
|
-
let
|
|
3150
|
-
a.on("mousemove", (
|
|
3151
|
-
|
|
3205
|
+
let m = !1;
|
|
3206
|
+
a.on("mousemove", (E) => {
|
|
3207
|
+
m || (a.invalidateSize(), m = !0), f.value = E.latlng;
|
|
3152
3208
|
}), a.on("zoomend", () => {
|
|
3153
3209
|
c.value = a.getZoom();
|
|
3154
3210
|
});
|
|
3155
|
-
const
|
|
3156
|
-
if (
|
|
3157
|
-
const
|
|
3158
|
-
L.geoJSON(
|
|
3211
|
+
const y = Es(t.modelValue);
|
|
3212
|
+
if (y) {
|
|
3213
|
+
const E = [];
|
|
3214
|
+
L.geoJSON(y).eachLayer((G) => E.push(G)), E.length && r.addLayer(E[0]), N(), H(), _();
|
|
3159
3215
|
}
|
|
3160
3216
|
});
|
|
3161
|
-
function
|
|
3217
|
+
function ce(m) {
|
|
3162
3218
|
if (a) {
|
|
3163
|
-
switch (d && d.disable(),
|
|
3219
|
+
switch (d && d.disable(), m) {
|
|
3164
3220
|
case "marker":
|
|
3165
3221
|
d = new L.Draw.Marker(a);
|
|
3166
3222
|
break;
|
|
@@ -3177,179 +3233,179 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3177
3233
|
d = new L.Draw.Rectangle(a);
|
|
3178
3234
|
break;
|
|
3179
3235
|
}
|
|
3180
|
-
d && (d.enable(), h.value =
|
|
3236
|
+
d && (d.enable(), h.value = m);
|
|
3181
3237
|
}
|
|
3182
3238
|
}
|
|
3183
|
-
function
|
|
3184
|
-
const
|
|
3185
|
-
|
|
3239
|
+
function Ce() {
|
|
3240
|
+
const m = r.toGeoJSON(), y = new Blob([JSON.stringify(m, null, 2)], { type: "application/json" }), E = URL.createObjectURL(y), G = document.createElement("a");
|
|
3241
|
+
G.href = E, G.download = "data.geojson", G.click(), URL.revokeObjectURL(E);
|
|
3186
3242
|
}
|
|
3187
|
-
function
|
|
3188
|
-
const
|
|
3189
|
-
if (
|
|
3190
|
-
const
|
|
3191
|
-
|
|
3192
|
-
if (typeof
|
|
3243
|
+
function I(m) {
|
|
3244
|
+
const y = m.target.files?.[0];
|
|
3245
|
+
if (!y) return;
|
|
3246
|
+
const E = new FileReader();
|
|
3247
|
+
E.onload = () => {
|
|
3248
|
+
if (typeof E.result == "string")
|
|
3193
3249
|
try {
|
|
3194
|
-
const
|
|
3195
|
-
r.clearLayers(),
|
|
3196
|
-
r.addLayer(
|
|
3197
|
-
}),
|
|
3250
|
+
const G = JSON.parse(E.result);
|
|
3251
|
+
r.clearLayers(), G && L.geoJSON({ type: "Feature", geometry: G }).eachLayer((oe) => {
|
|
3252
|
+
r.addLayer(oe);
|
|
3253
|
+
}), N(), H(), _();
|
|
3198
3254
|
} finally {
|
|
3199
|
-
|
|
3255
|
+
m.target.value = "";
|
|
3200
3256
|
}
|
|
3201
|
-
},
|
|
3257
|
+
}, E.readAsText(y);
|
|
3202
3258
|
}
|
|
3203
|
-
function
|
|
3204
|
-
a && (
|
|
3259
|
+
function $(m) {
|
|
3260
|
+
a && (z && a.removeLayer(z), z = L.tileLayer(C[m].url, { maxZoom: 19, minZoom: 6 }).addTo(a), U.value = m);
|
|
3205
3261
|
}
|
|
3206
|
-
function
|
|
3207
|
-
const
|
|
3208
|
-
a.setView(
|
|
3262
|
+
function S(m) {
|
|
3263
|
+
const y = L.latLng(m[0], m[1]);
|
|
3264
|
+
a.setView(y, 13);
|
|
3209
3265
|
}
|
|
3210
|
-
|
|
3266
|
+
ie(
|
|
3211
3267
|
() => t.modelValue,
|
|
3212
|
-
(
|
|
3213
|
-
r.clearLayers(),
|
|
3214
|
-
r.addLayer(
|
|
3215
|
-
}), g.value = r.getLayers().length,
|
|
3268
|
+
(m) => {
|
|
3269
|
+
r.clearLayers(), m && L.geoJSON({ type: "Feature", geometry: m }).eachLayer((y) => {
|
|
3270
|
+
r.addLayer(y);
|
|
3271
|
+
}), g.value = r.getLayers().length, H(), _();
|
|
3216
3272
|
}
|
|
3217
3273
|
);
|
|
3218
|
-
const
|
|
3219
|
-
return (
|
|
3220
|
-
class:
|
|
3274
|
+
const q = x(!1);
|
|
3275
|
+
return (m, y) => (i(), u("div", {
|
|
3276
|
+
class: V(["leaflet-map-wrapper relative w-full h-[400px]", { fullscreen: q.value }])
|
|
3221
3277
|
}, [
|
|
3222
3278
|
l("div", {
|
|
3223
3279
|
ref_key: "mapContainer",
|
|
3224
3280
|
ref: s,
|
|
3225
3281
|
class: "w-full h-full"
|
|
3226
3282
|
}, null, 512),
|
|
3227
|
-
l("div",
|
|
3228
|
-
|
|
3229
|
-
l("div",
|
|
3230
|
-
l("div",
|
|
3283
|
+
l("div", Sr, [
|
|
3284
|
+
B(_r, { onGoToCoordinates: S }),
|
|
3285
|
+
l("div", Br, [
|
|
3286
|
+
l("div", jr, [
|
|
3231
3287
|
l("button", {
|
|
3232
3288
|
type: "button",
|
|
3233
3289
|
class: "vs-btn-row",
|
|
3234
|
-
onClick:
|
|
3290
|
+
onClick: b
|
|
3235
3291
|
}, "Import"),
|
|
3236
3292
|
l("button", {
|
|
3237
3293
|
type: "button",
|
|
3238
3294
|
class: "vs-btn-row",
|
|
3239
|
-
onClick:
|
|
3295
|
+
onClick: Ce,
|
|
3240
3296
|
disabled: g.value === 0
|
|
3241
|
-
}, "Export ", 8,
|
|
3297
|
+
}, "Export ", 8, Ir)
|
|
3242
3298
|
]),
|
|
3243
3299
|
l("input", {
|
|
3244
3300
|
ref_key: "importRef",
|
|
3245
3301
|
ref: p,
|
|
3246
3302
|
type: "file",
|
|
3247
|
-
onChange:
|
|
3303
|
+
onChange: I,
|
|
3248
3304
|
accept: ".json,.geojson",
|
|
3249
3305
|
class: "hidden"
|
|
3250
3306
|
}, null, 544)
|
|
3251
3307
|
])
|
|
3252
3308
|
]),
|
|
3253
|
-
l("div",
|
|
3254
|
-
l("div",
|
|
3309
|
+
l("div", zr, [
|
|
3310
|
+
l("div", Ar, [
|
|
3255
3311
|
l("button", {
|
|
3256
|
-
class:
|
|
3312
|
+
class: V(["vs-btn", { "vs-active": h.value === "marker" }]),
|
|
3257
3313
|
"aria-pressed": h.value === "marker",
|
|
3258
3314
|
title: "Point (P)",
|
|
3259
3315
|
"aria-label": "Draw point",
|
|
3260
|
-
onClick:
|
|
3316
|
+
onClick: y[0] || (y[0] = (E) => ce("marker"))
|
|
3261
3317
|
}, [
|
|
3262
|
-
|
|
3263
|
-
], 10,
|
|
3318
|
+
B(Ts)
|
|
3319
|
+
], 10, Or),
|
|
3264
3320
|
l("button", {
|
|
3265
|
-
class:
|
|
3321
|
+
class: V(["vs-btn", { "vs-active": h.value === "polyline" }]),
|
|
3266
3322
|
"aria-pressed": h.value === "polyline",
|
|
3267
3323
|
title: "Line (L)",
|
|
3268
3324
|
"aria-label": "Draw polyline",
|
|
3269
|
-
onClick:
|
|
3325
|
+
onClick: y[1] || (y[1] = (E) => ce("polyline"))
|
|
3270
3326
|
}, [
|
|
3271
|
-
|
|
3272
|
-
], 10,
|
|
3327
|
+
B(Hs)
|
|
3328
|
+
], 10, Er),
|
|
3273
3329
|
l("button", {
|
|
3274
|
-
class:
|
|
3330
|
+
class: V(["vs-btn", { "vs-active": h.value === "polygon" }]),
|
|
3275
3331
|
"aria-pressed": h.value === "polygon",
|
|
3276
3332
|
title: "Polygon (G)",
|
|
3277
3333
|
"aria-label": "Draw polygon",
|
|
3278
|
-
onClick:
|
|
3334
|
+
onClick: y[2] || (y[2] = (E) => ce("polygon"))
|
|
3279
3335
|
}, [
|
|
3280
|
-
|
|
3281
|
-
], 10,
|
|
3336
|
+
B(Ks)
|
|
3337
|
+
], 10, Fr),
|
|
3282
3338
|
l("button", {
|
|
3283
|
-
class:
|
|
3339
|
+
class: V(["vs-btn", { "vs-active": h.value === "rectangle" }]),
|
|
3284
3340
|
"aria-pressed": h.value === "rectangle",
|
|
3285
3341
|
title: "Rectangle (R)",
|
|
3286
3342
|
"aria-label": "Draw rectangle",
|
|
3287
|
-
onClick:
|
|
3343
|
+
onClick: y[3] || (y[3] = (E) => ce("rectangle"))
|
|
3288
3344
|
}, [
|
|
3289
|
-
|
|
3290
|
-
], 10,
|
|
3345
|
+
B(Xs)
|
|
3346
|
+
], 10, Dr),
|
|
3291
3347
|
l("button", {
|
|
3292
3348
|
class: "vs-btn mt-5",
|
|
3293
|
-
onClick:
|
|
3349
|
+
onClick: y[4] || (y[4] = (E) => q.value = !q.value),
|
|
3294
3350
|
title: "Full Screen",
|
|
3295
3351
|
"aria-label": "Full Screen"
|
|
3296
3352
|
}, [
|
|
3297
|
-
|
|
3353
|
+
B(lr, { style: { width: "12px", height: "12px" } })
|
|
3298
3354
|
])
|
|
3299
3355
|
])
|
|
3300
3356
|
]),
|
|
3301
3357
|
l("div", {
|
|
3302
|
-
class:
|
|
3358
|
+
class: V(["absolute left-4 z-[1000]", v.value ? "bottom-8" : "bottom-4"])
|
|
3303
3359
|
}, [
|
|
3304
|
-
|
|
3305
|
-
basemaps:
|
|
3360
|
+
B(Lr, {
|
|
3361
|
+
basemaps: C,
|
|
3306
3362
|
"default-layer": "topo100",
|
|
3307
|
-
onOnLayerChange:
|
|
3363
|
+
onOnLayerChange: $
|
|
3308
3364
|
})
|
|
3309
3365
|
], 2),
|
|
3310
|
-
l("div",
|
|
3311
|
-
v.value ? (i(), u("div",
|
|
3312
|
-
l("div",
|
|
3313
|
-
|
|
3314
|
-
l("span",
|
|
3366
|
+
l("div", Ur, [
|
|
3367
|
+
v.value ? (i(), u("div", Tr, [
|
|
3368
|
+
l("div", Rr, [
|
|
3369
|
+
y[7] || (y[7] = se(" Тип: ")),
|
|
3370
|
+
l("span", Pr, F(v.value.type), 1)
|
|
3315
3371
|
]),
|
|
3316
|
-
l("div",
|
|
3317
|
-
l("div",
|
|
3318
|
-
|
|
3372
|
+
l("div", Nr, [
|
|
3373
|
+
l("div", Hr, [
|
|
3374
|
+
y[8] || (y[8] = se(" Центр: ")),
|
|
3319
3375
|
l("b", null, F(v.value.center.lat.toFixed(5)) + ", " + F(v.value.center.lng.toFixed(5)), 1)
|
|
3320
3376
|
]),
|
|
3321
|
-
v.value.areaKm2 !== null ? (i(), u("div",
|
|
3322
|
-
|
|
3377
|
+
v.value.areaKm2 !== null ? (i(), u("div", qr, [
|
|
3378
|
+
y[9] || (y[9] = se(" Площа: ")),
|
|
3323
3379
|
l("b", null, F(v.value.areaKm2.toFixed(1)) + "км²", 1)
|
|
3324
|
-
])) : (i(), u("div",
|
|
3325
|
-
|
|
3380
|
+
])) : (i(), u("div", Gr, y[10] || (y[10] = [
|
|
3381
|
+
se(" Площа: "),
|
|
3326
3382
|
l("b", null, "—", -1)
|
|
3327
3383
|
]))),
|
|
3328
3384
|
l("button", {
|
|
3329
3385
|
class: "tool bg-gray-100 py-1.5 px-2 rounded-lg text-md mr-1 cursor-pointer hover:bg-blue-500 hover:text-white transition-all",
|
|
3330
3386
|
title: "Наблизити",
|
|
3331
|
-
onClick:
|
|
3332
|
-
},
|
|
3333
|
-
|
|
3387
|
+
onClick: y[5] || (y[5] = (E) => Y())
|
|
3388
|
+
}, y[11] || (y[11] = [
|
|
3389
|
+
re('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3 h-3" data-v-ac23d238><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" data-v-ac23d238></path><path d="M7 10l6 0" data-v-ac23d238></path><path d="M10 7l0 6" data-v-ac23d238></path><path d="M21 21l-6 -6" data-v-ac23d238></path></svg>', 1)
|
|
3334
3390
|
])),
|
|
3335
3391
|
l("button", {
|
|
3336
3392
|
class: "tool bg-gray-100 py-1.5 px-2 rounded-lg text-md cursor-pointer hover:bg-blue-500 hover:text-white transition-all",
|
|
3337
3393
|
title: "Видалити",
|
|
3338
|
-
onClick:
|
|
3394
|
+
onClick: y[6] || (y[6] = (E) => we())
|
|
3339
3395
|
}, [
|
|
3340
|
-
|
|
3396
|
+
B(ze, { class: "w-3 h-3" })
|
|
3341
3397
|
])
|
|
3342
3398
|
])
|
|
3343
|
-
])) :
|
|
3399
|
+
])) : j("", !0)
|
|
3344
3400
|
])
|
|
3345
3401
|
], 2));
|
|
3346
3402
|
}
|
|
3347
|
-
}),
|
|
3403
|
+
}), Kr = /* @__PURE__ */ R(Jr, [["__scopeId", "data-v-ac23d238"]]), Zr = ["data-focus"], Wr = { class: "flex items-center" }, Qr = { class: "overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border" }, Xr = ["onClick", "aria-label"], Yr = {
|
|
3348
3404
|
key: 0,
|
|
3349
3405
|
class: "absolute text-gray-500 truncate pl-2"
|
|
3350
|
-
},
|
|
3406
|
+
}, en = { class: "flex-1 min-w-[2px]" }, tn = ["placeholder"], ln = { class: "flex items-center shrink-0" }, on = ["disabled"], an = /* @__PURE__ */ O({
|
|
3351
3407
|
__name: "vs-input-tag",
|
|
3352
|
-
props: /* @__PURE__ */
|
|
3408
|
+
props: /* @__PURE__ */ Q({
|
|
3353
3409
|
unique: { type: Boolean, default: !0 },
|
|
3354
3410
|
style: { default: () => ({}) },
|
|
3355
3411
|
customClass: { default: "" },
|
|
@@ -3362,71 +3418,71 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3362
3418
|
modelValue: { default: [] },
|
|
3363
3419
|
modelModifiers: {}
|
|
3364
3420
|
}),
|
|
3365
|
-
emits: /* @__PURE__ */
|
|
3421
|
+
emits: /* @__PURE__ */ Q(["update:modelValue"], ["update:modelValue"]),
|
|
3366
3422
|
setup(o, { emit: e }) {
|
|
3367
3423
|
const t = o, n = e;
|
|
3368
|
-
|
|
3369
|
-
const s =
|
|
3370
|
-
|
|
3371
|
-
}, U = (
|
|
3372
|
-
const
|
|
3373
|
-
|
|
3424
|
+
be(t.style);
|
|
3425
|
+
const s = x(null), a = x(null), r = x(null), d = x(!1), p = x(""), f = X(o, "modelValue"), c = D(() => t.placeholder || "Add tag…"), g = D(() => f.value?.length === 0 && p.value === ""), v = D(() => !t.disabled && f.value?.length > 0), C = D(() => t.disabled), z = async () => {
|
|
3426
|
+
C.value || await Me(() => r.value?.focus());
|
|
3427
|
+
}, U = (P) => {
|
|
3428
|
+
const M = P.trim();
|
|
3429
|
+
M !== "" && (!f.value || !Array.isArray(f.value) ? f.value = [M] : t.unique ? f.value.includes(M) || (f.value = [...f.value, M]) : f.value = [...f.value, M], p.value = "");
|
|
3374
3430
|
}, T = () => {
|
|
3375
|
-
const
|
|
3376
|
-
|
|
3377
|
-
},
|
|
3378
|
-
const
|
|
3379
|
-
|
|
3431
|
+
const P = p.value;
|
|
3432
|
+
P.trim() !== "" && U(P), p.value = "";
|
|
3433
|
+
}, N = (P) => {
|
|
3434
|
+
const M = f.value.slice();
|
|
3435
|
+
M.splice(P, 1), n("update:modelValue", M);
|
|
3380
3436
|
}, _ = () => {
|
|
3381
3437
|
n("update:modelValue", []);
|
|
3382
|
-
},
|
|
3383
|
-
|
|
3438
|
+
}, b = () => {
|
|
3439
|
+
C.value || (d.value = !0);
|
|
3384
3440
|
}, h = () => {
|
|
3385
3441
|
d.value = !1;
|
|
3386
|
-
},
|
|
3387
|
-
const { key:
|
|
3388
|
-
|
|
3442
|
+
}, Z = (P) => {
|
|
3443
|
+
const { key: M } = P;
|
|
3444
|
+
M === "Enter" ? (P.preventDefault(), T()) : M === "Backspace" && p.value === "" && f.value.length > 0 && N(f.value.length - 1);
|
|
3389
3445
|
};
|
|
3390
|
-
return (
|
|
3446
|
+
return (P, M) => (i(), u("div", {
|
|
3391
3447
|
class: "flex gap-1 w-full",
|
|
3392
3448
|
ref_key: "root",
|
|
3393
3449
|
ref: s,
|
|
3394
|
-
onClick:
|
|
3450
|
+
onClick: M[1] || (M[1] = ne(() => {
|
|
3395
3451
|
}, ["stop"]))
|
|
3396
3452
|
}, [
|
|
3397
3453
|
l("div", {
|
|
3398
|
-
class:
|
|
3454
|
+
class: V(["relative w-full font-sans", t.customClass]),
|
|
3399
3455
|
role: "group",
|
|
3400
3456
|
"aria-label": "Tag input"
|
|
3401
3457
|
}, [
|
|
3402
3458
|
l("div", {
|
|
3403
|
-
class:
|
|
3459
|
+
class: V([
|
|
3404
3460
|
"flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white",
|
|
3405
3461
|
"border-gray-300 hover:border-gray-400",
|
|
3406
3462
|
d.value ? "border-blue-500 ring-1 ring-blue-500" : "",
|
|
3407
|
-
|
|
3463
|
+
C.value ? "bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300" : ""
|
|
3408
3464
|
]),
|
|
3409
3465
|
"data-focus": d.value ? "true" : "false",
|
|
3410
|
-
onClick:
|
|
3466
|
+
onClick: z
|
|
3411
3467
|
}, [
|
|
3412
3468
|
l("div", {
|
|
3413
3469
|
class: "flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",
|
|
3414
3470
|
ref_key: "chipsRef",
|
|
3415
3471
|
ref: a
|
|
3416
3472
|
}, [
|
|
3417
|
-
(i(!0), u(
|
|
3418
|
-
key:
|
|
3473
|
+
(i(!0), u(ee, null, le(f.value, (H, Y) => (i(), u("div", {
|
|
3474
|
+
key: Y,
|
|
3419
3475
|
class: "flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"
|
|
3420
3476
|
}, [
|
|
3421
|
-
l("div",
|
|
3422
|
-
l("div",
|
|
3477
|
+
l("div", Wr, [
|
|
3478
|
+
l("div", Qr, F(H), 1)
|
|
3423
3479
|
]),
|
|
3424
3480
|
l("div", {
|
|
3425
3481
|
role: "button",
|
|
3426
3482
|
class: "flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",
|
|
3427
|
-
onClick:
|
|
3428
|
-
"aria-label": `Remove ${
|
|
3429
|
-
},
|
|
3483
|
+
onClick: ne((we) => N(Y), ["stop"]),
|
|
3484
|
+
"aria-label": `Remove ${H}`
|
|
3485
|
+
}, M[2] || (M[2] = [
|
|
3430
3486
|
l("svg", {
|
|
3431
3487
|
height: "14",
|
|
3432
3488
|
width: "14",
|
|
@@ -3437,11 +3493,11 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3437
3493
|
}, [
|
|
3438
3494
|
l("path", { d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z" })
|
|
3439
3495
|
], -1)
|
|
3440
|
-
]), 8,
|
|
3496
|
+
]), 8, Xr)
|
|
3441
3497
|
]))), 128)),
|
|
3442
|
-
g.value ? (i(), u("div",
|
|
3443
|
-
l("div",
|
|
3444
|
-
|
|
3498
|
+
g.value ? (i(), u("div", Yr, F(c.value), 1)) : j("", !0),
|
|
3499
|
+
l("div", en, [
|
|
3500
|
+
C.value ? j("", !0) : K((i(), u("input", {
|
|
3445
3501
|
key: 0,
|
|
3446
3502
|
ref_key: "inputRef",
|
|
3447
3503
|
ref: r,
|
|
@@ -3453,25 +3509,25 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3453
3509
|
type: "text",
|
|
3454
3510
|
tabindex: "0",
|
|
3455
3511
|
"aria-label": "Add tag",
|
|
3456
|
-
"onUpdate:modelValue":
|
|
3457
|
-
onFocus:
|
|
3512
|
+
"onUpdate:modelValue": M[0] || (M[0] = (H) => p.value = H),
|
|
3513
|
+
onFocus: b,
|
|
3458
3514
|
onBlur: h,
|
|
3459
|
-
onKeydown:
|
|
3515
|
+
onKeydown: Z,
|
|
3460
3516
|
placeholder: f.value && f.value.length ? "" : void 0
|
|
3461
|
-
}, null, 40,
|
|
3462
|
-
[
|
|
3517
|
+
}, null, 40, tn)), [
|
|
3518
|
+
[de, p.value]
|
|
3463
3519
|
])
|
|
3464
3520
|
])
|
|
3465
3521
|
], 512),
|
|
3466
|
-
l("div",
|
|
3522
|
+
l("div", ln, [
|
|
3467
3523
|
v.value ? (i(), u("button", {
|
|
3468
3524
|
key: 0,
|
|
3469
3525
|
type: "button",
|
|
3470
3526
|
class: "px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50",
|
|
3471
3527
|
"aria-label": "Clear all tags",
|
|
3472
|
-
disabled:
|
|
3473
|
-
onClick:
|
|
3474
|
-
},
|
|
3528
|
+
disabled: C.value,
|
|
3529
|
+
onClick: ne(_, ["stop"])
|
|
3530
|
+
}, M[3] || (M[3] = [
|
|
3475
3531
|
l("svg", {
|
|
3476
3532
|
height: "20",
|
|
3477
3533
|
width: "20",
|
|
@@ -3480,34 +3536,34 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3480
3536
|
}, [
|
|
3481
3537
|
l("path", { d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z" })
|
|
3482
3538
|
], -1)
|
|
3483
|
-
]), 8,
|
|
3539
|
+
]), 8, on)) : j("", !0)
|
|
3484
3540
|
])
|
|
3485
|
-
], 10,
|
|
3541
|
+
], 10, Zr)
|
|
3486
3542
|
], 2)
|
|
3487
3543
|
], 512));
|
|
3488
3544
|
}
|
|
3489
|
-
}),
|
|
3545
|
+
}), sn = {
|
|
3490
3546
|
VsInputText: Ge,
|
|
3491
3547
|
VsInputRadio: Ke,
|
|
3492
3548
|
"vs-input-text": Ge,
|
|
3493
|
-
"vs-input-textarea":
|
|
3494
|
-
"vs-input-mask":
|
|
3495
|
-
"vs-input-number":
|
|
3549
|
+
"vs-input-textarea": za,
|
|
3550
|
+
"vs-input-mask": nl,
|
|
3551
|
+
"vs-input-number": jt,
|
|
3496
3552
|
"vs-input-radio": Ke,
|
|
3497
|
-
"vs-input-select":
|
|
3553
|
+
"vs-input-select": ja,
|
|
3498
3554
|
"vs-input-switcher": ot,
|
|
3499
3555
|
"vs-input-static": Je,
|
|
3500
|
-
"vs-input-container":
|
|
3501
|
-
"vs-input-date":
|
|
3502
|
-
"vs-input-checkbox":
|
|
3503
|
-
"vs-input-file":
|
|
3556
|
+
"vs-input-container": ia,
|
|
3557
|
+
"vs-input-date": wl,
|
|
3558
|
+
"vs-input-checkbox": yl,
|
|
3559
|
+
"vs-input-file": ro,
|
|
3504
3560
|
"vs-input-html": Je,
|
|
3505
|
-
"vs-input-email":
|
|
3506
|
-
"vs-input-datatable":
|
|
3507
|
-
"vs-input-map":
|
|
3561
|
+
"vs-input-email": dl,
|
|
3562
|
+
"vs-input-datatable": As,
|
|
3563
|
+
"vs-input-map": Kr,
|
|
3508
3564
|
"vs-input-file-list": Fo,
|
|
3509
|
-
"vs-input-tag":
|
|
3510
|
-
},
|
|
3565
|
+
"vs-input-tag": an
|
|
3566
|
+
}, rn = /* @__PURE__ */ O({
|
|
3511
3567
|
__name: "behavior",
|
|
3512
3568
|
props: {
|
|
3513
3569
|
api: {},
|
|
@@ -3523,7 +3579,7 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3523
3579
|
if (!e.api) return;
|
|
3524
3580
|
const s = e.api.replace("{{value}}", e.value), a = await fetch(s);
|
|
3525
3581
|
if (!a.ok) {
|
|
3526
|
-
|
|
3582
|
+
pe({ type: "warning", title: "Validation", message: "При спробі завантажити дані виникла помилка." });
|
|
3527
3583
|
return;
|
|
3528
3584
|
}
|
|
3529
3585
|
const r = await a.json();
|
|
@@ -3539,9 +3595,9 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3539
3595
|
class: "vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"
|
|
3540
3596
|
}, F(s.button), 1));
|
|
3541
3597
|
}
|
|
3542
|
-
}),
|
|
3598
|
+
}), nn = { class: "flex w-full" }, rt = /* @__PURE__ */ O({
|
|
3543
3599
|
__name: "vs-compact-form-layout",
|
|
3544
|
-
props: /* @__PURE__ */
|
|
3600
|
+
props: /* @__PURE__ */ Q({
|
|
3545
3601
|
item: { default: {} },
|
|
3546
3602
|
layout: { default: "default" },
|
|
3547
3603
|
style: { default: {} },
|
|
@@ -3553,8 +3609,8 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3553
3609
|
}),
|
|
3554
3610
|
emits: ["update:modelValue"],
|
|
3555
3611
|
setup(o) {
|
|
3556
|
-
const e = o, t =
|
|
3557
|
-
const d =
|
|
3612
|
+
const e = o, t = X(o, "modelValue"), n = D(() => Lt[`${e.layout}`]), s = D(() => sn?.[`vs-input-${e.item.type}`]), a = D(() => {
|
|
3613
|
+
const d = J(s);
|
|
3558
3614
|
if (!d) return /* @__PURE__ */ new Set();
|
|
3559
3615
|
const p = d.props ?? d.__vccOpts?.props;
|
|
3560
3616
|
if (!p) return /* @__PURE__ */ new Set();
|
|
@@ -3564,19 +3620,19 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3564
3620
|
const d = e.item ?? {}, p = a.value;
|
|
3565
3621
|
return p.size ? Object.fromEntries(Object.entries(d).filter(([f]) => p.has(f))) : {};
|
|
3566
3622
|
});
|
|
3567
|
-
return (d, p) => (i(),
|
|
3623
|
+
return (d, p) => (i(), te(_e(n.value), {
|
|
3568
3624
|
ua: e.item.ua,
|
|
3569
3625
|
error: e.error || "",
|
|
3570
3626
|
item: d.item,
|
|
3571
3627
|
label: e.item.label
|
|
3572
3628
|
}, {
|
|
3573
|
-
default:
|
|
3574
|
-
l("div",
|
|
3575
|
-
(i(),
|
|
3629
|
+
default: $e(() => [
|
|
3630
|
+
l("div", nn, [
|
|
3631
|
+
(i(), te(_e(s.value), Le(r.value, {
|
|
3576
3632
|
modelValue: t.value,
|
|
3577
3633
|
"onUpdate:modelValue": p[0] || (p[0] = (f) => t.value = f)
|
|
3578
3634
|
}), null, 16, ["modelValue"])),
|
|
3579
|
-
d.item.behavior ? (i(),
|
|
3635
|
+
d.item.behavior ? (i(), te(rn, Le({ key: 0 }, d.item.behavior, { value: t.value }), null, 16, ["value"])) : j("", !0)
|
|
3580
3636
|
])
|
|
3581
3637
|
]),
|
|
3582
3638
|
_: 1
|
|
@@ -3585,23 +3641,23 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3585
3641
|
}), nt = {
|
|
3586
3642
|
required: "Це поле є обов’язковим",
|
|
3587
3643
|
email: "Неправильний email"
|
|
3588
|
-
},
|
|
3644
|
+
}, un = (o) => o ? !1 : nt.required, dn = (o) => !o && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o) ? nt.email : !1, cn = (o, e) => {
|
|
3589
3645
|
const t = e.pattern ?? e.regexp;
|
|
3590
3646
|
return !(typeof t == "string" ? new RegExp(t) : t).test(o) && o ? e.message : !1;
|
|
3591
|
-
},
|
|
3647
|
+
}, pn = (o, e) => !1, fn = (o, e) => {
|
|
3592
3648
|
switch (typeof e == "string" ? e : e.type) {
|
|
3593
3649
|
case "required":
|
|
3594
|
-
return
|
|
3650
|
+
return un(o);
|
|
3595
3651
|
case "email":
|
|
3596
|
-
return
|
|
3652
|
+
return dn(o);
|
|
3597
3653
|
case "regexp":
|
|
3598
|
-
return
|
|
3654
|
+
return cn(o, e);
|
|
3599
3655
|
case "custom":
|
|
3600
|
-
return
|
|
3656
|
+
return pn();
|
|
3601
3657
|
default:
|
|
3602
3658
|
return !1;
|
|
3603
3659
|
}
|
|
3604
|
-
},
|
|
3660
|
+
}, vn = {
|
|
3605
3661
|
autocomplete: "select",
|
|
3606
3662
|
combobox: "select",
|
|
3607
3663
|
datepicker: "date",
|
|
@@ -3615,9 +3671,9 @@ const Zs = /* @__PURE__ */ R(Gs, [["render", Ks]]), Ws = { class: "form-geom__se
|
|
|
3615
3671
|
};
|
|
3616
3672
|
function Xe(o) {
|
|
3617
3673
|
const e = o.toLowerCase();
|
|
3618
|
-
return
|
|
3674
|
+
return vn[e] || e;
|
|
3619
3675
|
}
|
|
3620
|
-
function
|
|
3676
|
+
function mn(o) {
|
|
3621
3677
|
if (Array.isArray(o)) {
|
|
3622
3678
|
const t = [];
|
|
3623
3679
|
return o.forEach((n) => {
|
|
@@ -3637,8 +3693,8 @@ function nn(o) {
|
|
|
3637
3693
|
t[1].type.includes("list") && (n.multiple = !0), t[1].data && (n.api = `/api/suggest/${t[1].data}`), e.push(n);
|
|
3638
3694
|
}), e;
|
|
3639
3695
|
}
|
|
3640
|
-
function
|
|
3641
|
-
const t =
|
|
3696
|
+
function hn(o, e) {
|
|
3697
|
+
const t = mn(e), n = x({});
|
|
3642
3698
|
function s(p) {
|
|
3643
3699
|
const f = p?.conditions;
|
|
3644
3700
|
if (!f) return !0;
|
|
@@ -3652,7 +3708,7 @@ function un(o, e) {
|
|
|
3652
3708
|
return;
|
|
3653
3709
|
}
|
|
3654
3710
|
c.rules.forEach((g) => {
|
|
3655
|
-
const v =
|
|
3711
|
+
const v = fn(o.value[c.name], g);
|
|
3656
3712
|
v ? n.value[c.name] = v : delete n.value[c.name];
|
|
3657
3713
|
});
|
|
3658
3714
|
}
|
|
@@ -3667,9 +3723,9 @@ function un(o, e) {
|
|
|
3667
3723
|
visibleSchema: r
|
|
3668
3724
|
};
|
|
3669
3725
|
}
|
|
3670
|
-
const
|
|
3726
|
+
const Ie = /* @__PURE__ */ O({
|
|
3671
3727
|
__name: "vs-compact-form",
|
|
3672
|
-
props: /* @__PURE__ */
|
|
3728
|
+
props: /* @__PURE__ */ Q({
|
|
3673
3729
|
schema: { default: () => [] },
|
|
3674
3730
|
style: { default: () => ({}) },
|
|
3675
3731
|
modelValue: {},
|
|
@@ -3681,74 +3737,74 @@ const Ee = /* @__PURE__ */ A({
|
|
|
3681
3737
|
values: { default: () => ({}) },
|
|
3682
3738
|
valuesModifiers: {}
|
|
3683
3739
|
}),
|
|
3684
|
-
emits: /* @__PURE__ */
|
|
3740
|
+
emits: /* @__PURE__ */ Q(["handle-submit", "update:modelValue"], ["update:form", "update:values"]),
|
|
3685
3741
|
setup(o, { expose: e, emit: t }) {
|
|
3686
|
-
const n = t, s = o, a =
|
|
3742
|
+
const n = t, s = o, a = X(o, "form"), r = X(o, "values"), {
|
|
3687
3743
|
errors: d,
|
|
3688
3744
|
validate: p,
|
|
3689
3745
|
reset: f,
|
|
3690
3746
|
visibleSchema: c
|
|
3691
|
-
} =
|
|
3747
|
+
} = hn(r, s.schema), g = () => {
|
|
3692
3748
|
n("update:modelValue", r.value), p(), n("handle-submit", r.value);
|
|
3693
3749
|
};
|
|
3694
3750
|
e({
|
|
3695
3751
|
validate: p,
|
|
3696
3752
|
reset: f,
|
|
3697
3753
|
errors: d
|
|
3698
|
-
}),
|
|
3754
|
+
}), ue(() => {
|
|
3699
3755
|
s.modelValue && (r.value = s.modelValue), a.value.value = r.value, a.value.errors = d.value, a.value.reset = f, a.value.validate = p, a.value.formId = s.formId;
|
|
3700
3756
|
});
|
|
3701
|
-
function v(
|
|
3702
|
-
if (
|
|
3703
|
-
if (typeof
|
|
3704
|
-
const U = Object.keys(
|
|
3705
|
-
return U.length !== T.length ? !1 : U.every((
|
|
3757
|
+
function v(C, z) {
|
|
3758
|
+
if (C === z) return !0;
|
|
3759
|
+
if (typeof C != "object" || typeof z != "object" || !C || !z) return !1;
|
|
3760
|
+
const U = Object.keys(C), T = Object.keys(z);
|
|
3761
|
+
return U.length !== T.length ? !1 : U.every((N) => C[N] === z[N]);
|
|
3706
3762
|
}
|
|
3707
|
-
return He("form", a), He("values", r), (
|
|
3708
|
-
onSubmit:
|
|
3709
|
-
class:
|
|
3763
|
+
return He("form", a), He("values", r), (C, z) => (i(), u("form", {
|
|
3764
|
+
onSubmit: ne(g, ["prevent"]),
|
|
3765
|
+
class: V(["grid grid-cols-12", C.layout === "default" ? "gap-6" : "gap-4"])
|
|
3710
3766
|
}, [
|
|
3711
|
-
(i(!0), u(
|
|
3767
|
+
(i(!0), u(ee, null, le(J(c), (U) => (i(), te(rt, {
|
|
3712
3768
|
key: U.name,
|
|
3713
|
-
class:
|
|
3714
|
-
style:
|
|
3769
|
+
class: V(C.layout === "horizontal" ? "col-span-12" : `col-span-${U.col || 12} `),
|
|
3770
|
+
style: he(C.style),
|
|
3715
3771
|
item: U,
|
|
3716
|
-
layout:
|
|
3772
|
+
layout: C.layout,
|
|
3717
3773
|
"model-value": r.value[U.name],
|
|
3718
3774
|
"onUpdate:modelValue": (T) => {
|
|
3719
|
-
const
|
|
3720
|
-
v(
|
|
3775
|
+
const N = r.value[U.name];
|
|
3776
|
+
v(N, T) || (r.value[U.name] = T);
|
|
3721
3777
|
},
|
|
3722
|
-
error:
|
|
3778
|
+
error: J(d)[U.name]
|
|
3723
3779
|
}, null, 8, ["class", "style", "item", "layout", "model-value", "onUpdate:modelValue", "error"]))), 128))
|
|
3724
3780
|
], 34));
|
|
3725
3781
|
}
|
|
3726
3782
|
});
|
|
3727
|
-
|
|
3728
|
-
e.component("VForm",
|
|
3729
|
-
$form:
|
|
3730
|
-
}), e.provide("form",
|
|
3783
|
+
Ie.install = function(e) {
|
|
3784
|
+
e.component("VForm", Ie), Object.assign(e.config.globalProperties, {
|
|
3785
|
+
$form: Oe
|
|
3786
|
+
}), e.provide("form", Oe), window.v3plugin || (window.v3plugin = {});
|
|
3731
3787
|
};
|
|
3732
3788
|
export {
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3789
|
+
ma as ModalEdit,
|
|
3790
|
+
Ie as VForm,
|
|
3791
|
+
yl as VsInputCheckbox,
|
|
3792
|
+
ia as VsInputContainer,
|
|
3793
|
+
wl as VsInputDate,
|
|
3794
|
+
dl as VsInputEmail,
|
|
3795
|
+
ro as VsInputFile,
|
|
3740
3796
|
Fo as VsInputFileList,
|
|
3741
|
-
|
|
3742
|
-
|
|
3797
|
+
nl as VsInputMask,
|
|
3798
|
+
jt as VsInputNumber,
|
|
3743
3799
|
Ke as VsInputRadio,
|
|
3744
|
-
|
|
3800
|
+
ja as VsInputSelect,
|
|
3745
3801
|
Je as VsInputStatic,
|
|
3746
3802
|
ot as VsInputSwitcher,
|
|
3747
|
-
|
|
3803
|
+
an as VsInputTag,
|
|
3748
3804
|
Ge as VsInputText,
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3805
|
+
za as VsInputTextarea,
|
|
3806
|
+
Ie as default,
|
|
3807
|
+
sn as inputs,
|
|
3808
|
+
As as vsInputDatatable,
|
|
3809
|
+
Kr as vsInputMap
|
|
3754
3810
|
};
|