@dskripchenko/laravel-admin 1.1.5 → 1.1.7
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.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +775 -736
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { ref as E, computed as p, defineComponent as L, openBlock as s, createElementBlock as c, createElementVNode as d, createBlock as w, unref as r, withCtx as m, Fragment as T, renderList as I, createTextVNode as C, toDisplayString as h, createCommentVNode as F, createVNode as x, renderSlot as H, resolveDynamicComponent as
|
|
2
|
-
import { defineStore as
|
|
3
|
-
import { RouterLink as
|
|
4
|
-
import { UidMenu as
|
|
5
|
-
import
|
|
6
|
-
import { p as
|
|
1
|
+
import { ref as E, computed as p, defineComponent as L, openBlock as s, createElementBlock as c, createElementVNode as d, createBlock as w, unref as r, withCtx as m, Fragment as T, renderList as I, createTextVNode as C, toDisplayString as h, createCommentVNode as F, createVNode as x, renderSlot as H, resolveDynamicComponent as ue, normalizeClass as Y, createSlots as qe, h as wt, watch as te, onBeforeUnmount as $t, resolveComponent as lt, withModifiers as Oe, nextTick as Ie, onMounted as Re, withKeys as xt, normalizeProps as Ue, mergeProps as Ee, normalizeStyle as Fe, inject as st, provide as Ct, createApp as St, reactive as At } from "vue";
|
|
2
|
+
import { defineStore as ne, createPinia as Rt } from "pinia";
|
|
3
|
+
import { RouterLink as Ut, useRouter as le, useRoute as _e, createWebHistory as it, createRouter as Et } from "vue-router";
|
|
4
|
+
import { UidMenu as ot, UidMenuItem as De, UidMenuSeparator as Ft, UidAvatar as rt, UidSidebar as Lt, UidSidebarGroup as Pt, UidSidebarItem as Tt, UidSidebarLayout as Mt, UidCard as q, UidButton as B, UidAlert as Q, UidInput as re, UidCheckbox as Se, UidSkeleton as We, UidErrorState as Nt, UidEmptyState as It, UidTable as je, UidPagination as Bt, UidBadge as Ke, UidSelect as Ae, UidStat as xe, UidHeatmap as Vt, UidGauge as zt, UidFormField as ye, UidTextarea as qt, UidNumberInput as Dt, UidDatePicker as Ot, UidStack as Wt, UidGrid as jt, UidTabs as ut, UidTabPanel as dt, UidTab as Ce, UidDescriptionList as Kt, UidDescriptionItem as Gt, UidDrawer as Ht, UidStepper as Xt, UidFileUpload as Jt, UidProgress as Yt } from "@dskripchenko/ui";
|
|
5
|
+
import Qt from "axios";
|
|
6
|
+
import { p as ct, u as de } from "./formState-DGNcH1XQ.js";
|
|
7
7
|
import { t as co } from "./formState-DGNcH1XQ.js";
|
|
8
|
-
let
|
|
9
|
-
function
|
|
10
|
-
|
|
8
|
+
let he = null;
|
|
9
|
+
function Zt(e) {
|
|
10
|
+
he = e;
|
|
11
11
|
}
|
|
12
12
|
function W() {
|
|
13
|
-
if (
|
|
13
|
+
if (he === null)
|
|
14
14
|
throw new Error(
|
|
15
15
|
"[admin] AdminClient is not registered. Call setAdminClient(...) before using stores."
|
|
16
16
|
);
|
|
17
|
-
return
|
|
17
|
+
return he;
|
|
18
18
|
}
|
|
19
19
|
function Ii() {
|
|
20
|
-
|
|
20
|
+
he = null;
|
|
21
21
|
}
|
|
22
22
|
function Bi() {
|
|
23
|
-
return
|
|
23
|
+
return he !== null;
|
|
24
24
|
}
|
|
25
|
-
const
|
|
25
|
+
const Ge = ne("admin-theme", () => {
|
|
26
26
|
const e = E("light"), t = E(["light", "dark"]), n = p(() => e.value === "dark");
|
|
27
27
|
function o(u) {
|
|
28
28
|
e.value = u.theme, t.value = u.availableThemes, i(u.theme);
|
|
@@ -54,10 +54,10 @@ const De = ee("admin-theme", () => {
|
|
|
54
54
|
applyLocal: a,
|
|
55
55
|
setTheme: l
|
|
56
56
|
};
|
|
57
|
-
}),
|
|
57
|
+
}), en = ["aria-label", "aria-pressed"], tn = ["data-icon"], mt = /* @__PURE__ */ L({
|
|
58
58
|
__name: "ThemeToggle",
|
|
59
59
|
setup(e) {
|
|
60
|
-
const t =
|
|
60
|
+
const t = Ge(), n = p(() => t.current === "dark"), o = p(() => n.value ? "sun" : "moon"), a = p(
|
|
61
61
|
() => n.value ? "Переключить на светлую тему" : "Переключить на тёмную тему"
|
|
62
62
|
);
|
|
63
63
|
async function l() {
|
|
@@ -74,10 +74,10 @@ const De = ee("admin-theme", () => {
|
|
|
74
74
|
d("span", {
|
|
75
75
|
class: "admin-topbar__icon",
|
|
76
76
|
"data-icon": o.value
|
|
77
|
-
}, null, 8,
|
|
78
|
-
], 8,
|
|
77
|
+
}, null, 8, tn)
|
|
78
|
+
], 8, en));
|
|
79
79
|
}
|
|
80
|
-
}),
|
|
80
|
+
}), He = ne("admin-locale", () => {
|
|
81
81
|
const e = E("ru"), t = E(["ru", "en"]);
|
|
82
82
|
function n(i) {
|
|
83
83
|
e.value = i.locale, t.value = i.availableLocales, l(i.locale);
|
|
@@ -112,21 +112,21 @@ const De = ee("admin-theme", () => {
|
|
|
112
112
|
applyLocal: o,
|
|
113
113
|
setLocale: a
|
|
114
114
|
};
|
|
115
|
-
}),
|
|
115
|
+
}), nn = {
|
|
116
116
|
type: "button",
|
|
117
117
|
class: "admin-topbar__icon-btn",
|
|
118
118
|
style: { width: "auto", padding: "0 8px", gap: "4px", "font-size": "12px" },
|
|
119
119
|
"aria-label": "Сменить локаль"
|
|
120
|
-
},
|
|
120
|
+
}, ft = /* @__PURE__ */ L({
|
|
121
121
|
__name: "LocaleSwitcher",
|
|
122
122
|
setup(e) {
|
|
123
|
-
const t =
|
|
123
|
+
const t = He();
|
|
124
124
|
async function n(o) {
|
|
125
125
|
o !== t.current && await t.setLocale(o);
|
|
126
126
|
}
|
|
127
|
-
return (o, a) => (s(), w(r(
|
|
127
|
+
return (o, a) => (s(), w(r(ot), null, {
|
|
128
128
|
trigger: m(() => [
|
|
129
|
-
d("button",
|
|
129
|
+
d("button", nn, [
|
|
130
130
|
a[0] || (a[0] = d("span", {
|
|
131
131
|
class: "admin-topbar__icon",
|
|
132
132
|
"data-icon": "globe"
|
|
@@ -135,7 +135,7 @@ const De = ee("admin-theme", () => {
|
|
|
135
135
|
])
|
|
136
136
|
]),
|
|
137
137
|
default: m(() => [
|
|
138
|
-
(s(!0), c(T, null, I(r(t).available, (l) => (s(), w(r(
|
|
138
|
+
(s(!0), c(T, null, I(r(t).available, (l) => (s(), w(r(De), {
|
|
139
139
|
key: l,
|
|
140
140
|
onClick: (i) => n(l)
|
|
141
141
|
}, {
|
|
@@ -148,46 +148,46 @@ const De = ee("admin-theme", () => {
|
|
|
148
148
|
_: 1
|
|
149
149
|
}));
|
|
150
150
|
}
|
|
151
|
-
}),
|
|
151
|
+
}), Xe = ne("admin-notifications", () => {
|
|
152
152
|
const e = E([]), t = E(0), n = E(!1), o = E("all"), a = E(null), l = p(() => t.value > 0);
|
|
153
|
-
function i(
|
|
154
|
-
t.value =
|
|
153
|
+
function i(A) {
|
|
154
|
+
t.value = A.unread_notifications_count;
|
|
155
155
|
}
|
|
156
|
-
async function u(
|
|
156
|
+
async function u(A = "all", R = 1) {
|
|
157
157
|
n.value = !0;
|
|
158
158
|
try {
|
|
159
|
-
const g = await W().get(`/notifications/list?type=${
|
|
159
|
+
const g = await W().get(`/notifications/list?type=${A}&page=${R}`);
|
|
160
160
|
e.value = g.data, t.value = g.meta.unread_count, a.value = {
|
|
161
161
|
page: g.meta.page,
|
|
162
162
|
per_page: g.meta.per_page,
|
|
163
163
|
total: g.meta.total,
|
|
164
164
|
last_page: g.meta.last_page
|
|
165
|
-
}, o.value =
|
|
165
|
+
}, o.value = A;
|
|
166
166
|
} finally {
|
|
167
167
|
n.value = !1;
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
async function f() {
|
|
171
|
-
const
|
|
171
|
+
const R = await W().get(
|
|
172
172
|
"/notifications/unread"
|
|
173
173
|
);
|
|
174
|
-
t.value =
|
|
174
|
+
t.value = R.count, o.value === "unread" && (e.value = R.data);
|
|
175
175
|
}
|
|
176
|
-
async function v(
|
|
177
|
-
await W().post("/notifications/markAsRead", { id:
|
|
178
|
-
const _ = e.value.find((g) => g.id ===
|
|
176
|
+
async function v(A) {
|
|
177
|
+
await W().post("/notifications/markAsRead", { id: A });
|
|
178
|
+
const _ = e.value.find((g) => g.id === A);
|
|
179
179
|
_ && _.read_at === null && (_.read_at = (/* @__PURE__ */ new Date()).toISOString(), t.value = Math.max(0, t.value - 1));
|
|
180
180
|
}
|
|
181
181
|
async function b() {
|
|
182
182
|
await W().post("/notifications/markAllAsRead");
|
|
183
|
-
const
|
|
183
|
+
const R = (/* @__PURE__ */ new Date()).toISOString();
|
|
184
184
|
for (const _ of e.value)
|
|
185
|
-
_.read_at === null && (_.read_at =
|
|
185
|
+
_.read_at === null && (_.read_at = R);
|
|
186
186
|
t.value = 0;
|
|
187
187
|
}
|
|
188
|
-
async function S(
|
|
189
|
-
await W().post("/notifications/destroy", { id:
|
|
190
|
-
const _ = e.value.findIndex((g) => g.id ===
|
|
188
|
+
async function S(A) {
|
|
189
|
+
await W().post("/notifications/destroy", { id: A });
|
|
190
|
+
const _ = e.value.findIndex((g) => g.id === A);
|
|
191
191
|
if (_ !== -1) {
|
|
192
192
|
const g = e.value[_].read_at === null;
|
|
193
193
|
e.value.splice(_, 1), g && (t.value = Math.max(0, t.value - 1));
|
|
@@ -207,14 +207,14 @@ const De = ee("admin-theme", () => {
|
|
|
207
207
|
markAllAsRead: b,
|
|
208
208
|
destroy: S
|
|
209
209
|
};
|
|
210
|
-
}),
|
|
210
|
+
}), an = ["title"], ln = /* @__PURE__ */ L({
|
|
211
211
|
__name: "NotificationBell",
|
|
212
212
|
setup(e) {
|
|
213
|
-
const t =
|
|
213
|
+
const t = Xe(), n = p(() => {
|
|
214
214
|
const o = t.unreadCount;
|
|
215
215
|
return o <= 0 ? null : o > 99 ? "99+" : String(o);
|
|
216
216
|
});
|
|
217
|
-
return (o, a) => (s(), w(r(
|
|
217
|
+
return (o, a) => (s(), w(r(Ut), {
|
|
218
218
|
to: "/notifications",
|
|
219
219
|
class: "admin-topbar__icon-btn",
|
|
220
220
|
"aria-label": "Уведомления"
|
|
@@ -228,13 +228,13 @@ const De = ee("admin-theme", () => {
|
|
|
228
228
|
key: 0,
|
|
229
229
|
class: "admin-topbar__bell-badge",
|
|
230
230
|
title: `Непрочитанных: ${r(t).unreadCount}`
|
|
231
|
-
}, h(n.value), 9,
|
|
231
|
+
}, h(n.value), 9, an)) : F("", !0)
|
|
232
232
|
]),
|
|
233
233
|
_: 1
|
|
234
234
|
}));
|
|
235
235
|
}
|
|
236
236
|
});
|
|
237
|
-
class
|
|
237
|
+
class Z extends Error {
|
|
238
238
|
status;
|
|
239
239
|
errorKey;
|
|
240
240
|
payload;
|
|
@@ -242,22 +242,22 @@ class Q extends Error {
|
|
|
242
242
|
super(n.message ?? `API error ${t}`), this.name = "ApiError", this.status = t, this.errorKey = n.errorKey ?? "unknown", this.payload = n;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
class
|
|
245
|
+
class vt extends Z {
|
|
246
246
|
constructor(t) {
|
|
247
247
|
super(401, t), this.name = "UnauthenticatedError";
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
-
class
|
|
250
|
+
class sn extends Z {
|
|
251
251
|
constructor(t) {
|
|
252
252
|
super(403, t), this.name = "ForbiddenError";
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
class
|
|
255
|
+
class on extends Z {
|
|
256
256
|
constructor(t) {
|
|
257
257
|
super(404, t), this.name = "NotFoundError";
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
-
class
|
|
260
|
+
class Le extends Z {
|
|
261
261
|
/** Field-keyed map of error messages. */
|
|
262
262
|
fields;
|
|
263
263
|
constructor(t) {
|
|
@@ -271,26 +271,26 @@ class Re extends Q {
|
|
|
271
271
|
return null;
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
-
class
|
|
274
|
+
class Pe extends Error {
|
|
275
275
|
constructor(t = "Network error") {
|
|
276
276
|
super(t), this.name = "NetworkError";
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
function
|
|
279
|
+
function Ye(e, t) {
|
|
280
280
|
switch (e) {
|
|
281
281
|
case 401:
|
|
282
|
-
return new
|
|
282
|
+
return new vt(t);
|
|
283
283
|
case 403:
|
|
284
|
-
return new
|
|
284
|
+
return new sn(t);
|
|
285
285
|
case 404:
|
|
286
|
-
return new
|
|
286
|
+
return new on(t);
|
|
287
287
|
case 422:
|
|
288
|
-
return new
|
|
288
|
+
return new Le(t);
|
|
289
289
|
default:
|
|
290
|
-
return new
|
|
290
|
+
return new Z(e, t);
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
|
-
const
|
|
293
|
+
const J = ne("admin-auth", () => {
|
|
294
294
|
const e = E(null), t = E([]), n = E(null), o = p(() => e.value !== null), a = p(() => n.value !== null);
|
|
295
295
|
function l(_) {
|
|
296
296
|
e.value = _.user, t.value = _.permissions;
|
|
@@ -317,7 +317,7 @@ const X = ee("admin-auth", () => {
|
|
|
317
317
|
);
|
|
318
318
|
return U?.user && (e.value = U.user), Array.isArray(U?.permissions) && (t.value = U.permissions), n.value = null, "authenticated";
|
|
319
319
|
} catch (U) {
|
|
320
|
-
if (U instanceof
|
|
320
|
+
if (U instanceof Z && U.errorKey === "two_factor_required") {
|
|
321
321
|
const P = U.payload.challenge_token;
|
|
322
322
|
return n.value = {
|
|
323
323
|
challengeToken: typeof P == "string" ? P : "",
|
|
@@ -345,10 +345,10 @@ const X = ee("admin-auth", () => {
|
|
|
345
345
|
});
|
|
346
346
|
return e.value = U.user, n.value = null, { remaining: U.recovery_codes_remaining };
|
|
347
347
|
}
|
|
348
|
-
function
|
|
348
|
+
function A() {
|
|
349
349
|
n.value = null;
|
|
350
350
|
}
|
|
351
|
-
async function
|
|
351
|
+
async function R() {
|
|
352
352
|
const _ = W();
|
|
353
353
|
try {
|
|
354
354
|
await _.post("/auth/logout");
|
|
@@ -372,19 +372,19 @@ const X = ee("admin-auth", () => {
|
|
|
372
372
|
login: v,
|
|
373
373
|
twoFactorChallenge: b,
|
|
374
374
|
twoFactorRecovery: S,
|
|
375
|
-
cancelChallenge:
|
|
376
|
-
logout:
|
|
375
|
+
cancelChallenge: A,
|
|
376
|
+
logout: R
|
|
377
377
|
};
|
|
378
|
-
}),
|
|
378
|
+
}), rn = {
|
|
379
379
|
type: "button",
|
|
380
380
|
class: "admin-topbar__icon-btn admin-user-menu__trigger",
|
|
381
381
|
"aria-label": "Меню пользователя",
|
|
382
382
|
"aria-haspopup": "menu",
|
|
383
383
|
style: { width: "auto", padding: "0 4px", gap: "8px" }
|
|
384
|
-
},
|
|
384
|
+
}, un = /* @__PURE__ */ L({
|
|
385
385
|
__name: "UserMenu",
|
|
386
386
|
setup(e) {
|
|
387
|
-
const t =
|
|
387
|
+
const t = J(), n = le();
|
|
388
388
|
async function o() {
|
|
389
389
|
try {
|
|
390
390
|
await t.logout();
|
|
@@ -395,10 +395,10 @@ const X = ee("admin-auth", () => {
|
|
|
395
395
|
function a() {
|
|
396
396
|
n.push({ name: "admin.profile" });
|
|
397
397
|
}
|
|
398
|
-
return (l, i) => (s(), w(r(
|
|
398
|
+
return (l, i) => (s(), w(r(ot), null, {
|
|
399
399
|
trigger: m(() => [
|
|
400
|
-
d("button",
|
|
401
|
-
x(r(
|
|
400
|
+
d("button", rn, [
|
|
401
|
+
x(r(rt), {
|
|
402
402
|
src: r(t).user?.avatar ?? void 0,
|
|
403
403
|
name: r(t).user?.name ?? "?",
|
|
404
404
|
alt: r(t).user?.name ?? "User",
|
|
@@ -407,14 +407,14 @@ const X = ee("admin-auth", () => {
|
|
|
407
407
|
])
|
|
408
408
|
]),
|
|
409
409
|
default: m(() => [
|
|
410
|
-
x(r(
|
|
410
|
+
x(r(De), { onClick: a }, {
|
|
411
411
|
default: m(() => [...i[0] || (i[0] = [
|
|
412
412
|
C("Профиль", -1)
|
|
413
413
|
])]),
|
|
414
414
|
_: 1
|
|
415
415
|
}),
|
|
416
|
-
x(r(
|
|
417
|
-
x(r(
|
|
416
|
+
x(r(Ft)),
|
|
417
|
+
x(r(De), {
|
|
418
418
|
variant: "danger",
|
|
419
419
|
onClick: o
|
|
420
420
|
}, {
|
|
@@ -427,10 +427,10 @@ const X = ee("admin-auth", () => {
|
|
|
427
427
|
_: 1
|
|
428
428
|
}));
|
|
429
429
|
}
|
|
430
|
-
}),
|
|
430
|
+
}), dn = { class: "admin-topbar" }, cn = { class: "admin-topbar__breadcrumbs" }, mn = {
|
|
431
431
|
key: 0,
|
|
432
432
|
class: "sep"
|
|
433
|
-
},
|
|
433
|
+
}, fn = /* @__PURE__ */ L({
|
|
434
434
|
__name: "AdminTopBar",
|
|
435
435
|
props: {
|
|
436
436
|
breadcrumbs: { default: () => [] },
|
|
@@ -439,7 +439,7 @@ const X = ee("admin-auth", () => {
|
|
|
439
439
|
emits: ["toggle-sidebar"],
|
|
440
440
|
setup(e, { emit: t }) {
|
|
441
441
|
const n = e, o = t, a = p(() => n.breadcrumbs.length - 1);
|
|
442
|
-
return (l, i) => (s(), c("header",
|
|
442
|
+
return (l, i) => (s(), c("header", dn, [
|
|
443
443
|
e.showCollapseToggle ? (s(), c("button", {
|
|
444
444
|
key: 0,
|
|
445
445
|
type: "button",
|
|
@@ -452,13 +452,13 @@ const X = ee("admin-auth", () => {
|
|
|
452
452
|
"data-icon": "panel-left"
|
|
453
453
|
}, null, -1)
|
|
454
454
|
])])) : F("", !0),
|
|
455
|
-
d("div",
|
|
455
|
+
d("div", cn, [
|
|
456
456
|
H(l.$slots, "breadcrumbs", {}, () => [
|
|
457
457
|
(s(!0), c(T, null, I(e.breadcrumbs, (u, f) => (s(), c(T, { key: f }, [
|
|
458
|
-
f > 0 ? (s(), c("span",
|
|
459
|
-
(s(), w(
|
|
458
|
+
f > 0 ? (s(), c("span", mn, "›")) : F("", !0),
|
|
459
|
+
(s(), w(ue(u.to ? "a" : "span"), {
|
|
460
460
|
href: typeof u.to == "string" ? u.to : void 0,
|
|
461
|
-
class:
|
|
461
|
+
class: Y(f === a.value ? "cur" : "")
|
|
462
462
|
}, {
|
|
463
463
|
default: m(() => [
|
|
464
464
|
C(h(u.label), 1)
|
|
@@ -484,33 +484,33 @@ const X = ee("admin-auth", () => {
|
|
|
484
484
|
], -1))
|
|
485
485
|
]),
|
|
486
486
|
H(l.$slots, "actions"),
|
|
487
|
-
x(
|
|
488
|
-
x(
|
|
489
|
-
x(
|
|
490
|
-
x(
|
|
487
|
+
x(ln),
|
|
488
|
+
x(mt),
|
|
489
|
+
x(ft),
|
|
490
|
+
x(un)
|
|
491
491
|
]));
|
|
492
492
|
}
|
|
493
|
-
}),
|
|
493
|
+
}), vn = ne("admin-menu", () => {
|
|
494
494
|
const e = E([]), t = E(!1), n = E(null), o = E(!1), a = p(() => {
|
|
495
|
-
const v =
|
|
495
|
+
const v = J(), b = (S) => {
|
|
496
496
|
if (Array.isArray(S.permissions) && S.permissions.length > 0 && !v.hasAnyPermission(S.permissions))
|
|
497
497
|
return null;
|
|
498
|
-
const
|
|
499
|
-
return { ...S, children:
|
|
498
|
+
const A = (S.children ?? []).map(b).filter((R) => R !== null);
|
|
499
|
+
return { ...S, children: A };
|
|
500
500
|
};
|
|
501
501
|
return e.value.map(b).filter((S) => S !== null);
|
|
502
502
|
}), l = p(() => {
|
|
503
503
|
const v = /* @__PURE__ */ new Map();
|
|
504
504
|
for (const S of a.value) {
|
|
505
|
-
const
|
|
506
|
-
v.has(
|
|
505
|
+
const A = S.group ?? null;
|
|
506
|
+
v.has(A) || v.set(A, []), v.get(A).push(S);
|
|
507
507
|
}
|
|
508
508
|
const b = [];
|
|
509
|
-
for (const [S,
|
|
510
|
-
|
|
511
|
-
const g = (
|
|
512
|
-
return g !== 0 ? g :
|
|
513
|
-
}), b.push({ group: S, items:
|
|
509
|
+
for (const [S, A] of v)
|
|
510
|
+
A.sort((R, _) => {
|
|
511
|
+
const g = (R.order ?? 0) - (_.order ?? 0);
|
|
512
|
+
return g !== 0 ? g : R.label.localeCompare(_.label);
|
|
513
|
+
}), b.push({ group: S, items: A });
|
|
514
514
|
return b;
|
|
515
515
|
});
|
|
516
516
|
async function i(v = !1) {
|
|
@@ -542,16 +542,16 @@ const X = ee("admin-auth", () => {
|
|
|
542
542
|
setItems: u,
|
|
543
543
|
reset: f
|
|
544
544
|
};
|
|
545
|
-
}),
|
|
545
|
+
}), pn = { class: "admin-sidebar-brand" }, gn = { class: "admin-sidebar-brand__mark" }, hn = {
|
|
546
546
|
key: 0,
|
|
547
547
|
class: "admin-sidebar-brand__name"
|
|
548
|
-
},
|
|
548
|
+
}, _n = {
|
|
549
549
|
key: 0,
|
|
550
550
|
class: "admin-sidebar-tenant"
|
|
551
|
-
},
|
|
551
|
+
}, yn = { class: "admin-sidebar-foot" }, bn = {
|
|
552
552
|
key: 0,
|
|
553
553
|
class: "admin-sidebar-foot__text"
|
|
554
|
-
},
|
|
554
|
+
}, kn = ["href"], wn = /* @__PURE__ */ L({
|
|
555
555
|
__name: "AdminSidebar",
|
|
556
556
|
props: {
|
|
557
557
|
collapsed: { type: Boolean, default: !1 },
|
|
@@ -562,41 +562,41 @@ const X = ee("admin-auth", () => {
|
|
|
562
562
|
docsUrl: { default: null }
|
|
563
563
|
},
|
|
564
564
|
setup(e) {
|
|
565
|
-
const t =
|
|
565
|
+
const t = vn(), n = _e(), o = p(() => t.groupedItems);
|
|
566
566
|
function a(u) {
|
|
567
567
|
return !!(u.routeName && n.name === u.routeName || u.url && n.path === u.url);
|
|
568
568
|
}
|
|
569
569
|
function l(u) {
|
|
570
570
|
if (u)
|
|
571
|
-
return () =>
|
|
571
|
+
return () => wt("span", { class: "admin-sidebar__icon", "data-icon": u });
|
|
572
572
|
}
|
|
573
573
|
function i(u) {
|
|
574
574
|
if (u.routeName) return { name: u.routeName };
|
|
575
575
|
if (u.url) return u.url;
|
|
576
576
|
}
|
|
577
|
-
return (u, f) => (s(), w(r(
|
|
577
|
+
return (u, f) => (s(), w(r(Lt), { collapsed: e.collapsed }, qe({
|
|
578
578
|
header: m(() => [
|
|
579
|
-
d("div",
|
|
580
|
-
d("div",
|
|
581
|
-
e.collapsed ? F("", !0) : (s(), c("div",
|
|
579
|
+
d("div", pn, [
|
|
580
|
+
d("div", gn, h(e.brandMark), 1),
|
|
581
|
+
e.collapsed ? F("", !0) : (s(), c("div", hn, h(e.brandName), 1))
|
|
582
582
|
]),
|
|
583
|
-
e.tenant && !e.collapsed ? (s(), c("div",
|
|
583
|
+
e.tenant && !e.collapsed ? (s(), c("div", _n, [
|
|
584
584
|
d("span", null, h(e.tenant.label), 1),
|
|
585
585
|
d("b", null, h(e.tenant.name), 1)
|
|
586
586
|
])) : F("", !0)
|
|
587
587
|
]),
|
|
588
588
|
nav: m(() => [
|
|
589
|
-
(s(!0), c(T, null, I(o.value, (v, b) => (s(), w(r(
|
|
589
|
+
(s(!0), c(T, null, I(o.value, (v, b) => (s(), w(r(Pt), {
|
|
590
590
|
key: `grp-${b}`,
|
|
591
591
|
title: v.group ?? void 0
|
|
592
592
|
}, {
|
|
593
593
|
default: m(() => [
|
|
594
|
-
(s(!0), c(T, null, I(v.items, (S) => (s(), w(r(
|
|
594
|
+
(s(!0), c(T, null, I(v.items, (S) => (s(), w(r(Tt), {
|
|
595
595
|
key: S.key,
|
|
596
596
|
to: i(S),
|
|
597
597
|
active: a(S),
|
|
598
598
|
badge: S.badge ?? void 0
|
|
599
|
-
},
|
|
599
|
+
}, qe({
|
|
600
600
|
default: m(() => [
|
|
601
601
|
C(" " + h(S.label), 1)
|
|
602
602
|
]),
|
|
@@ -605,7 +605,7 @@ const X = ee("admin-auth", () => {
|
|
|
605
605
|
S.icon ? {
|
|
606
606
|
name: "icon",
|
|
607
607
|
fn: m(() => [
|
|
608
|
-
(s(), w(
|
|
608
|
+
(s(), w(ue(l(S.icon))))
|
|
609
609
|
]),
|
|
610
610
|
key: "0"
|
|
611
611
|
} : void 0
|
|
@@ -619,24 +619,24 @@ const X = ee("admin-auth", () => {
|
|
|
619
619
|
e.version || e.docsUrl ? {
|
|
620
620
|
name: "footer",
|
|
621
621
|
fn: m(() => [
|
|
622
|
-
d("div",
|
|
623
|
-
e.version ? (s(), c("span",
|
|
622
|
+
d("div", yn, [
|
|
623
|
+
e.version ? (s(), c("span", bn, h(e.version), 1)) : F("", !0),
|
|
624
624
|
e.docsUrl ? (s(), c("a", {
|
|
625
625
|
key: 1,
|
|
626
626
|
href: e.docsUrl,
|
|
627
627
|
class: "admin-sidebar-foot__text admin-sidebar-foot__link"
|
|
628
|
-
}, " Docs ", 8,
|
|
628
|
+
}, " Docs ", 8, kn)) : F("", !0)
|
|
629
629
|
])
|
|
630
630
|
]),
|
|
631
631
|
key: "0"
|
|
632
632
|
} : void 0
|
|
633
633
|
]), 1032, ["collapsed"]));
|
|
634
634
|
}
|
|
635
|
-
}),
|
|
635
|
+
}), $n = { class: "admin-shell-root" }, xn = {
|
|
636
636
|
key: 0,
|
|
637
637
|
class: "admin-impersonation-banner",
|
|
638
638
|
role: "status"
|
|
639
|
-
},
|
|
639
|
+
}, Be = "data-admin-impersonating", Cn = /* @__PURE__ */ L({
|
|
640
640
|
__name: "AdminShell",
|
|
641
641
|
props: {
|
|
642
642
|
collapsed: { type: Boolean, default: !1 },
|
|
@@ -651,16 +651,16 @@ const X = ee("admin-auth", () => {
|
|
|
651
651
|
function l() {
|
|
652
652
|
o("exit-impersonation");
|
|
653
653
|
}
|
|
654
|
-
return
|
|
654
|
+
return te(
|
|
655
655
|
() => n.impersonation,
|
|
656
656
|
(i) => {
|
|
657
|
-
typeof document > "u" || (i !== null ? document.documentElement.setAttribute(
|
|
657
|
+
typeof document > "u" || (i !== null ? document.documentElement.setAttribute(Be, "true") : document.documentElement.removeAttribute(Be));
|
|
658
658
|
},
|
|
659
659
|
{ immediate: !0 }
|
|
660
|
-
),
|
|
661
|
-
typeof document < "u" && document.documentElement.removeAttribute(
|
|
662
|
-
}), (i, u) => (s(), c("div",
|
|
663
|
-
e.impersonation ? (s(), c("div",
|
|
660
|
+
), $t(() => {
|
|
661
|
+
typeof document < "u" && document.documentElement.removeAttribute(Be);
|
|
662
|
+
}), (i, u) => (s(), c("div", $n, [
|
|
663
|
+
e.impersonation ? (s(), c("div", xn, [
|
|
664
664
|
d("span", null, [
|
|
665
665
|
u[1] || (u[1] = C(" Вы вошли как ", -1)),
|
|
666
666
|
d("b", null, h(e.impersonation.asName), 1),
|
|
@@ -672,18 +672,18 @@ const X = ee("admin-auth", () => {
|
|
|
672
672
|
onClick: l
|
|
673
673
|
}, " Выйти из режима ")
|
|
674
674
|
])) : F("", !0),
|
|
675
|
-
x(r(
|
|
675
|
+
x(r(Mt), {
|
|
676
676
|
"model-value": e.collapsed,
|
|
677
677
|
"onUpdate:modelValue": a
|
|
678
678
|
}, {
|
|
679
679
|
sidebar: m(() => [
|
|
680
680
|
H(i.$slots, "sidebar", {}, () => [
|
|
681
|
-
x(
|
|
681
|
+
x(wn, { collapsed: e.collapsed }, null, 8, ["collapsed"])
|
|
682
682
|
])
|
|
683
683
|
]),
|
|
684
684
|
header: m(() => [
|
|
685
685
|
H(i.$slots, "topbar", {}, () => [
|
|
686
|
-
x(
|
|
686
|
+
x(fn, {
|
|
687
687
|
onToggleSidebar: u[0] || (u[0] = (f) => a(!e.collapsed))
|
|
688
688
|
})
|
|
689
689
|
])
|
|
@@ -695,13 +695,13 @@ const X = ee("admin-auth", () => {
|
|
|
695
695
|
}, 8, ["model-value"])
|
|
696
696
|
]));
|
|
697
697
|
}
|
|
698
|
-
}),
|
|
698
|
+
}), Sn = /* @__PURE__ */ L({
|
|
699
699
|
__name: "AdminApp",
|
|
700
700
|
setup(e) {
|
|
701
|
-
const t =
|
|
701
|
+
const t = _e(), n = p(() => !(t.meta?.fullscreen === !0 || t.meta?.kind === "auth" || t.name === "admin.notFound"));
|
|
702
702
|
return (o, a) => {
|
|
703
|
-
const l =
|
|
704
|
-
return n.value ? (s(), w(
|
|
703
|
+
const l = lt("router-view");
|
|
704
|
+
return n.value ? (s(), w(Cn, { key: 0 }, {
|
|
705
705
|
default: m(() => [
|
|
706
706
|
x(l)
|
|
707
707
|
]),
|
|
@@ -709,7 +709,7 @@ const X = ee("admin-auth", () => {
|
|
|
709
709
|
})) : (s(), w(l, { key: 1 }));
|
|
710
710
|
};
|
|
711
711
|
}
|
|
712
|
-
}),
|
|
712
|
+
}), se = ne("admin-manifest", () => {
|
|
713
713
|
const e = E(null), t = E(!1), n = E(null), o = p(() => e.value !== null), a = p(() => e.value?.version ?? null), l = p(() => e.value?.resources ?? []), i = p(() => e.value?.screens ?? []), u = p(() => e.value?.settings ?? []), f = p(() => e.value?.plugins ?? []);
|
|
714
714
|
function v(_) {
|
|
715
715
|
return l.value.find((g) => g.slug === _) ?? null;
|
|
@@ -720,7 +720,7 @@ const X = ee("admin-auth", () => {
|
|
|
720
720
|
function S(_) {
|
|
721
721
|
return u.value.find((g) => g.slug === _) ?? null;
|
|
722
722
|
}
|
|
723
|
-
async function
|
|
723
|
+
async function A(_ = !1) {
|
|
724
724
|
if (e.value !== null && !_)
|
|
725
725
|
return e.value;
|
|
726
726
|
t.value = !0, n.value = null;
|
|
@@ -733,7 +733,7 @@ const X = ee("admin-auth", () => {
|
|
|
733
733
|
t.value = !1;
|
|
734
734
|
}
|
|
735
735
|
}
|
|
736
|
-
function
|
|
736
|
+
function R() {
|
|
737
737
|
e.value = null, n.value = null, t.value = !1;
|
|
738
738
|
}
|
|
739
739
|
return {
|
|
@@ -752,30 +752,30 @@ const X = ee("admin-auth", () => {
|
|
|
752
752
|
getResource: v,
|
|
753
753
|
getScreen: b,
|
|
754
754
|
getSettings: S,
|
|
755
|
-
load:
|
|
756
|
-
reset:
|
|
755
|
+
load: A,
|
|
756
|
+
reset: R
|
|
757
757
|
};
|
|
758
|
-
}),
|
|
758
|
+
}), An = { class: "admin-home" }, Rn = { class: "admin-home__title" }, Un = {
|
|
759
759
|
key: 0,
|
|
760
760
|
class: "admin-home__resources"
|
|
761
|
-
},
|
|
761
|
+
}, En = { class: "admin-home__grid" }, Fn = ["onClick"], Ln = { class: "admin-home__card-label" }, Pn = { class: "admin-home__card-slug" }, Tn = /* @__PURE__ */ L({
|
|
762
762
|
__name: "HomePage",
|
|
763
763
|
setup(e) {
|
|
764
|
-
const t =
|
|
765
|
-
return (i, u) => (s(), c("div",
|
|
764
|
+
const t = se(), n = J(), o = le(), a = p(() => n.user?.name ?? ""), l = p(() => t.manifest?.resources ?? []);
|
|
765
|
+
return (i, u) => (s(), c("div", An, [
|
|
766
766
|
x(r(q), {
|
|
767
767
|
padding: "lg",
|
|
768
768
|
class: "admin-home__hero"
|
|
769
769
|
}, {
|
|
770
770
|
default: m(() => [
|
|
771
|
-
d("h1",
|
|
771
|
+
d("h1", Rn, "Добро пожаловать" + h(a.value ? ", " + a.value : ""), 1),
|
|
772
772
|
u[0] || (u[0] = d("p", { class: "admin-home__lead" }, " Админ-панель готова. Воспользуйтесь сайдбаром или переходите к ресурсам ниже. ", -1))
|
|
773
773
|
]),
|
|
774
774
|
_: 1
|
|
775
775
|
}),
|
|
776
|
-
l.value.length ? (s(), c("section",
|
|
776
|
+
l.value.length ? (s(), c("section", Un, [
|
|
777
777
|
u[1] || (u[1] = d("h2", { class: "admin-home__heading" }, "Ресурсы", -1)),
|
|
778
|
-
d("ul",
|
|
778
|
+
d("ul", En, [
|
|
779
779
|
(s(!0), c(T, null, I(l.value, (f) => (s(), c("li", {
|
|
780
780
|
key: f.slug
|
|
781
781
|
}, [
|
|
@@ -784,19 +784,19 @@ const X = ee("admin-auth", () => {
|
|
|
784
784
|
class: "admin-home__card",
|
|
785
785
|
onClick: (v) => r(o).push({ name: `admin.resource.${f.slug}.index` })
|
|
786
786
|
}, [
|
|
787
|
-
d("span",
|
|
788
|
-
d("span",
|
|
789
|
-
], 8,
|
|
787
|
+
d("span", Ln, h(f.label), 1),
|
|
788
|
+
d("span", Pn, h(f.slug), 1)
|
|
789
|
+
], 8, Fn)
|
|
790
790
|
]))), 128))
|
|
791
791
|
])
|
|
792
792
|
])) : F("", !0)
|
|
793
793
|
]));
|
|
794
794
|
}
|
|
795
|
-
}),
|
|
795
|
+
}), Mn = { class: "admin-status-page" }, Nn = /* @__PURE__ */ L({
|
|
796
796
|
__name: "ForbiddenPage",
|
|
797
797
|
setup(e) {
|
|
798
|
-
const t =
|
|
799
|
-
return (n, o) => (s(), c("div",
|
|
798
|
+
const t = le();
|
|
799
|
+
return (n, o) => (s(), c("div", Mn, [
|
|
800
800
|
x(r(q), {
|
|
801
801
|
padding: "lg",
|
|
802
802
|
class: "admin-status-page__card"
|
|
@@ -818,11 +818,11 @@ const X = ee("admin-auth", () => {
|
|
|
818
818
|
})
|
|
819
819
|
]));
|
|
820
820
|
}
|
|
821
|
-
}),
|
|
821
|
+
}), In = { class: "admin-status-page" }, Bn = /* @__PURE__ */ L({
|
|
822
822
|
__name: "NotFoundPage",
|
|
823
823
|
setup(e) {
|
|
824
|
-
const t =
|
|
825
|
-
return (n, o) => (s(), c("div",
|
|
824
|
+
const t = le();
|
|
825
|
+
return (n, o) => (s(), c("div", In, [
|
|
826
826
|
x(r(q), {
|
|
827
827
|
padding: "lg",
|
|
828
828
|
class: "admin-status-page__card"
|
|
@@ -844,38 +844,38 @@ const X = ee("admin-auth", () => {
|
|
|
844
844
|
})
|
|
845
845
|
]));
|
|
846
846
|
}
|
|
847
|
-
}),
|
|
847
|
+
}), Vn = { class: "admin-settings-page" }, zn = { class: "admin-settings-page__title" }, qn = {
|
|
848
848
|
key: 0,
|
|
849
849
|
class: "admin-settings-page__hint"
|
|
850
|
-
},
|
|
850
|
+
}, Dn = {
|
|
851
851
|
key: 1,
|
|
852
852
|
class: "admin-settings-page__debug"
|
|
853
|
-
},
|
|
853
|
+
}, On = /* @__PURE__ */ L({
|
|
854
854
|
__name: "SettingsPage",
|
|
855
855
|
setup(e) {
|
|
856
|
-
const t =
|
|
857
|
-
return (l, i) => (s(), c("div",
|
|
856
|
+
const t = _e(), n = se(), o = p(() => String(t.params.slug ?? "")), a = p(() => n.manifest?.settings?.find((l) => l.slug === o.value) ?? null);
|
|
857
|
+
return (l, i) => (s(), c("div", Vn, [
|
|
858
858
|
x(r(q), { padding: "lg" }, {
|
|
859
859
|
default: m(() => [
|
|
860
|
-
d("h1",
|
|
861
|
-
a.value ? (s(), c("pre",
|
|
860
|
+
d("h1", zn, h(a.value?.label ?? o.value), 1),
|
|
861
|
+
a.value ? (s(), c("pre", Dn, h(JSON.stringify(a.value.fields, null, 2)), 1)) : (s(), c("p", qn, " Settings «" + h(o.value) + "» не найдено в manifest'е. ", 1))
|
|
862
862
|
]),
|
|
863
863
|
_: 1
|
|
864
864
|
})
|
|
865
865
|
]));
|
|
866
866
|
}
|
|
867
|
-
}),
|
|
867
|
+
}), Wn = { class: "admin-status-page" }, jn = { class: "admin-status-page__title" }, Kn = { class: "admin-status-page__hint" }, Gn = /* @__PURE__ */ L({
|
|
868
868
|
__name: "UnknownScreenPage",
|
|
869
869
|
setup(e) {
|
|
870
|
-
const t =
|
|
871
|
-
return (a, l) => (s(), c("div",
|
|
870
|
+
const t = _e(), n = p(() => String(t.params.slug ?? "")), o = p(() => String(t.meta?.title ?? n.value));
|
|
871
|
+
return (a, l) => (s(), c("div", Wn, [
|
|
872
872
|
x(r(q), {
|
|
873
873
|
padding: "lg",
|
|
874
874
|
class: "admin-status-page__card"
|
|
875
875
|
}, {
|
|
876
876
|
default: m(() => [
|
|
877
|
-
d("h1",
|
|
878
|
-
d("p",
|
|
877
|
+
d("h1", jn, h(o.value), 1),
|
|
878
|
+
d("p", Kn, [
|
|
879
879
|
C(" Это заглушка для screen «" + h(n.value) + "». Передайте свой компонент через ", 1),
|
|
880
880
|
l[0] || (l[0] = d("code", null, "createAdminApp(" + h("{") + " pages: " + h("{") + " screen: MyScreen " + h("}") + " " + h("}") + ")", -1)),
|
|
881
881
|
l[1] || (l[1] = C(". ", -1))
|
|
@@ -885,10 +885,10 @@ const X = ee("admin-auth", () => {
|
|
|
885
885
|
})
|
|
886
886
|
]));
|
|
887
887
|
}
|
|
888
|
-
}),
|
|
888
|
+
}), Hn = { class: "admin-auth-card__row" }, Xn = ["href"], Jn = {
|
|
889
889
|
key: 1,
|
|
890
890
|
style: { "text-align": "center", "font-size": "var(--uid-font-size-xs)", color: "var(--uid-text-secondary)", "padding-top": "4px" }
|
|
891
|
-
},
|
|
891
|
+
}, Yn = ["href"], Qn = /* @__PURE__ */ L({
|
|
892
892
|
__name: "LoginForm",
|
|
893
893
|
props: {
|
|
894
894
|
forgotUrl: { default: null },
|
|
@@ -897,30 +897,30 @@ const X = ee("admin-auth", () => {
|
|
|
897
897
|
},
|
|
898
898
|
emits: ["success"],
|
|
899
899
|
setup(e, { emit: t }) {
|
|
900
|
-
const n = t, o =
|
|
901
|
-
async function
|
|
900
|
+
const n = t, o = J(), a = E(""), l = E(""), i = E(!1), u = E(!1), f = E(null), v = E({}), b = p(() => v.value.email?.[0]), S = p(() => v.value.password?.[0]);
|
|
901
|
+
async function A() {
|
|
902
902
|
if (!u.value) {
|
|
903
903
|
u.value = !0, f.value = null, v.value = {};
|
|
904
904
|
try {
|
|
905
|
-
const
|
|
905
|
+
const R = await o.login({
|
|
906
906
|
email: a.value,
|
|
907
907
|
password: l.value,
|
|
908
908
|
remember: i.value
|
|
909
909
|
});
|
|
910
|
-
n("success",
|
|
911
|
-
} catch (
|
|
912
|
-
|
|
910
|
+
n("success", R);
|
|
911
|
+
} catch (R) {
|
|
912
|
+
R instanceof Le ? (v.value = R.fields, f.value = R.firstFieldMessage()) : R instanceof Pe ? f.value = "Нет соединения с сервером" : R instanceof Z ? f.value = R.message || "Не удалось войти" : f.value = R.message;
|
|
913
913
|
} finally {
|
|
914
914
|
u.value = !1;
|
|
915
915
|
}
|
|
916
916
|
}
|
|
917
917
|
}
|
|
918
|
-
return (
|
|
918
|
+
return (R, _) => (s(), c("form", {
|
|
919
919
|
class: "admin-auth-card__bd",
|
|
920
920
|
novalidate: "",
|
|
921
|
-
onSubmit:
|
|
921
|
+
onSubmit: Oe(A, ["prevent"])
|
|
922
922
|
}, [
|
|
923
|
-
f.value ? (s(), w(r(
|
|
923
|
+
f.value ? (s(), w(r(Q), {
|
|
924
924
|
key: 0,
|
|
925
925
|
variant: "danger",
|
|
926
926
|
class: "admin-auth-card__alert",
|
|
@@ -931,7 +931,7 @@ const X = ee("admin-auth", () => {
|
|
|
931
931
|
]),
|
|
932
932
|
_: 1
|
|
933
933
|
})) : F("", !0),
|
|
934
|
-
x(r(
|
|
934
|
+
x(r(re), {
|
|
935
935
|
modelValue: a.value,
|
|
936
936
|
"onUpdate:modelValue": _[0] || (_[0] = (g) => a.value = g),
|
|
937
937
|
type: "email",
|
|
@@ -943,7 +943,7 @@ const X = ee("admin-auth", () => {
|
|
|
943
943
|
error: b.value,
|
|
944
944
|
name: "email"
|
|
945
945
|
}, null, 8, ["modelValue", "disabled", "error"]),
|
|
946
|
-
x(r(
|
|
946
|
+
x(r(re), {
|
|
947
947
|
modelValue: l.value,
|
|
948
948
|
"onUpdate:modelValue": _[1] || (_[1] = (g) => l.value = g),
|
|
949
949
|
type: "password",
|
|
@@ -954,8 +954,8 @@ const X = ee("admin-auth", () => {
|
|
|
954
954
|
error: S.value,
|
|
955
955
|
name: "password"
|
|
956
956
|
}, null, 8, ["modelValue", "disabled", "error"]),
|
|
957
|
-
d("div",
|
|
958
|
-
x(r(
|
|
957
|
+
d("div", Hn, [
|
|
958
|
+
x(r(Se), {
|
|
959
959
|
modelValue: i.value,
|
|
960
960
|
"onUpdate:modelValue": _[2] || (_[2] = (g) => i.value = g),
|
|
961
961
|
disabled: u.value
|
|
@@ -969,7 +969,7 @@ const X = ee("admin-auth", () => {
|
|
|
969
969
|
key: 0,
|
|
970
970
|
href: e.forgotUrl,
|
|
971
971
|
class: "admin-auth-card__link"
|
|
972
|
-
}, " Забыли пароль? ", 8,
|
|
972
|
+
}, " Забыли пароль? ", 8, Xn)) : F("", !0)
|
|
973
973
|
]),
|
|
974
974
|
x(r(B), {
|
|
975
975
|
type: "submit",
|
|
@@ -983,29 +983,29 @@ const X = ee("admin-auth", () => {
|
|
|
983
983
|
]),
|
|
984
984
|
_: 1
|
|
985
985
|
}, 8, ["loading", "disabled"]),
|
|
986
|
-
e.ssoLinkLabel && e.ssoUrl ? (s(), c("div",
|
|
986
|
+
e.ssoLinkLabel && e.ssoUrl ? (s(), c("div", Jn, [
|
|
987
987
|
_[4] || (_[4] = C(" или войдите через ", -1)),
|
|
988
988
|
d("a", {
|
|
989
989
|
href: e.ssoUrl,
|
|
990
990
|
class: "admin-auth-card__link"
|
|
991
|
-
}, h(e.ssoLinkLabel), 9,
|
|
991
|
+
}, h(e.ssoLinkLabel), 9, Yn)
|
|
992
992
|
])) : F("", !0)
|
|
993
993
|
], 32));
|
|
994
994
|
}
|
|
995
|
-
}),
|
|
995
|
+
}), Zn = ["value", "disabled", "aria-label", "onInput", "onKeydown"], ea = { class: "admin-auth-card__row" }, ta = /* @__PURE__ */ L({
|
|
996
996
|
__name: "TwoFactorForm",
|
|
997
997
|
emits: ["success", "cancel"],
|
|
998
998
|
setup(e, { emit: t }) {
|
|
999
|
-
const n = t, o =
|
|
1000
|
-
function
|
|
999
|
+
const n = t, o = J(), a = E("totp"), l = E(["", "", "", "", "", ""]), i = E(""), u = E([]), f = E(!1), v = E(null), b = E(null), S = p(() => l.value.join("")), A = p(() => a.value === "totp" ? S.value.length === 6 : i.value.trim().length > 0);
|
|
1000
|
+
function R($, V) {
|
|
1001
1001
|
V instanceof HTMLInputElement && (u.value[$] = V);
|
|
1002
1002
|
}
|
|
1003
1003
|
function _($, V) {
|
|
1004
1004
|
const j = V.target, D = j.value.replace(/\D/g, "").slice(-1);
|
|
1005
|
-
l.value[$] = D, j.value = D, D && $ < l.value.length - 1 &&
|
|
1005
|
+
l.value[$] = D, j.value = D, D && $ < l.value.length - 1 && Ie(() => u.value[$ + 1]?.focus()), S.value.length === l.value.length && P();
|
|
1006
1006
|
}
|
|
1007
1007
|
function g($, V) {
|
|
1008
|
-
V.key === "Backspace" && !l.value[$] && $ > 0 ?
|
|
1008
|
+
V.key === "Backspace" && !l.value[$] && $ > 0 ? Ie(() => u.value[$ - 1]?.focus()) : V.key === "ArrowLeft" && $ > 0 ? (u.value[$ - 1]?.focus(), V.preventDefault()) : V.key === "ArrowRight" && $ < l.value.length - 1 && (u.value[$ + 1]?.focus(), V.preventDefault());
|
|
1009
1009
|
}
|
|
1010
1010
|
function U($) {
|
|
1011
1011
|
const j = ($.clipboardData?.getData("text") ?? "").replace(/\D/g, "").slice(0, l.value.length);
|
|
@@ -1013,13 +1013,13 @@ const X = ee("admin-auth", () => {
|
|
|
1013
1013
|
$.preventDefault();
|
|
1014
1014
|
for (let D = 0; D < l.value.length; D++)
|
|
1015
1015
|
l.value[D] = j[D] ?? "";
|
|
1016
|
-
|
|
1016
|
+
Ie(() => {
|
|
1017
1017
|
u.value[Math.min(j.length, l.value.length - 1)]?.focus(), j.length === l.value.length && P();
|
|
1018
1018
|
});
|
|
1019
1019
|
}
|
|
1020
1020
|
}
|
|
1021
1021
|
async function P() {
|
|
1022
|
-
if (!(f.value || !
|
|
1022
|
+
if (!(f.value || !A.value)) {
|
|
1023
1023
|
f.value = !0, v.value = null;
|
|
1024
1024
|
try {
|
|
1025
1025
|
if (a.value === "totp")
|
|
@@ -1030,7 +1030,7 @@ const X = ee("admin-auth", () => {
|
|
|
1030
1030
|
}
|
|
1031
1031
|
n("success");
|
|
1032
1032
|
} catch ($) {
|
|
1033
|
-
$ instanceof
|
|
1033
|
+
$ instanceof Le ? v.value = $.firstFieldMessage() ?? "Неверный код" : $ instanceof Pe ? v.value = "Нет соединения с сервером" : $ instanceof Z ? v.value = $.message || "Не удалось проверить код" : v.value = $.message;
|
|
1034
1034
|
} finally {
|
|
1035
1035
|
f.value = !1;
|
|
1036
1036
|
}
|
|
@@ -1045,9 +1045,9 @@ const X = ee("admin-auth", () => {
|
|
|
1045
1045
|
return ($, V) => (s(), c("form", {
|
|
1046
1046
|
class: "admin-auth-card__bd",
|
|
1047
1047
|
novalidate: "",
|
|
1048
|
-
onSubmit:
|
|
1048
|
+
onSubmit: Oe(P, ["prevent"])
|
|
1049
1049
|
}, [
|
|
1050
|
-
v.value ? (s(), w(r(
|
|
1050
|
+
v.value ? (s(), w(r(Q), {
|
|
1051
1051
|
key: 0,
|
|
1052
1052
|
variant: "danger",
|
|
1053
1053
|
class: "admin-auth-card__alert",
|
|
@@ -1058,7 +1058,7 @@ const X = ee("admin-auth", () => {
|
|
|
1058
1058
|
]),
|
|
1059
1059
|
_: 1
|
|
1060
1060
|
})) : F("", !0),
|
|
1061
|
-
b.value !== null ? (s(), w(r(
|
|
1061
|
+
b.value !== null ? (s(), w(r(Q), {
|
|
1062
1062
|
key: 1,
|
|
1063
1063
|
variant: "info",
|
|
1064
1064
|
class: "admin-auth-card__alert",
|
|
@@ -1077,7 +1077,7 @@ const X = ee("admin-auth", () => {
|
|
|
1077
1077
|
(s(!0), c(T, null, I(l.value, (j, D) => (s(), c("input", {
|
|
1078
1078
|
key: D,
|
|
1079
1079
|
ref_for: !0,
|
|
1080
|
-
ref: (M) =>
|
|
1080
|
+
ref: (M) => R(D, M),
|
|
1081
1081
|
value: l.value[D],
|
|
1082
1082
|
type: "text",
|
|
1083
1083
|
inputmode: "numeric",
|
|
@@ -1087,8 +1087,8 @@ const X = ee("admin-auth", () => {
|
|
|
1087
1087
|
"aria-label": `Цифра ${D + 1}`,
|
|
1088
1088
|
onInput: (M) => _(D, M),
|
|
1089
1089
|
onKeydown: (M) => g(D, M)
|
|
1090
|
-
}, null, 40,
|
|
1091
|
-
], 32)) : (s(), w(r(
|
|
1090
|
+
}, null, 40, Zn))), 128))
|
|
1091
|
+
], 32)) : (s(), w(r(re), {
|
|
1092
1092
|
key: 3,
|
|
1093
1093
|
modelValue: i.value,
|
|
1094
1094
|
"onUpdate:modelValue": V[0] || (V[0] = (j) => i.value = j),
|
|
@@ -1103,14 +1103,14 @@ const X = ee("admin-auth", () => {
|
|
|
1103
1103
|
variant: "primary",
|
|
1104
1104
|
size: "lg",
|
|
1105
1105
|
loading: f.value,
|
|
1106
|
-
disabled: f.value || !
|
|
1106
|
+
disabled: f.value || !A.value
|
|
1107
1107
|
}, {
|
|
1108
1108
|
default: m(() => [
|
|
1109
1109
|
C(h(f.value ? "Проверка…" : "Подтвердить"), 1)
|
|
1110
1110
|
]),
|
|
1111
1111
|
_: 1
|
|
1112
1112
|
}, 8, ["loading", "disabled"]),
|
|
1113
|
-
d("div",
|
|
1113
|
+
d("div", ea, [
|
|
1114
1114
|
d("button", {
|
|
1115
1115
|
type: "button",
|
|
1116
1116
|
class: "admin-auth-card__link",
|
|
@@ -1130,13 +1130,13 @@ const X = ee("admin-auth", () => {
|
|
|
1130
1130
|
])
|
|
1131
1131
|
], 32));
|
|
1132
1132
|
}
|
|
1133
|
-
}),
|
|
1133
|
+
}), na = { class: "admin-auth-page" }, aa = {
|
|
1134
1134
|
key: 0,
|
|
1135
1135
|
class: "admin-auth-page__corner"
|
|
1136
|
-
},
|
|
1136
|
+
}, la = { class: "admin-auth-card__hd" }, sa = ["src", "alt"], ia = {
|
|
1137
1137
|
key: 1,
|
|
1138
1138
|
"aria-hidden": "true"
|
|
1139
|
-
},
|
|
1139
|
+
}, oa = { key: 2 }, ra = { class: "admin-auth-card__title" }, ua = { class: "admin-auth-card__sub" }, da = /* @__PURE__ */ L({
|
|
1140
1140
|
__name: "LoginPage",
|
|
1141
1141
|
props: {
|
|
1142
1142
|
brandName: { default: "Laravel Admin" },
|
|
@@ -1150,7 +1150,7 @@ const X = ee("admin-auth", () => {
|
|
|
1150
1150
|
showCornerActions: { type: Boolean, default: !0 }
|
|
1151
1151
|
},
|
|
1152
1152
|
setup(e) {
|
|
1153
|
-
const t = e, n =
|
|
1153
|
+
const t = e, n = J(), o = le(), a = _e();
|
|
1154
1154
|
async function l() {
|
|
1155
1155
|
const i = a.query[t.redirectQueryKey];
|
|
1156
1156
|
if (typeof i == "string" && i.length > 0 && i.startsWith("/")) {
|
|
@@ -1159,41 +1159,41 @@ const X = ee("admin-auth", () => {
|
|
|
1159
1159
|
}
|
|
1160
1160
|
await o.push({ name: t.homeRouteName });
|
|
1161
1161
|
}
|
|
1162
|
-
return
|
|
1162
|
+
return te(
|
|
1163
1163
|
() => n.isAuthenticated,
|
|
1164
1164
|
(i) => {
|
|
1165
1165
|
i && l();
|
|
1166
1166
|
}
|
|
1167
|
-
),
|
|
1167
|
+
), Re(() => {
|
|
1168
1168
|
n.isAuthenticated && l();
|
|
1169
|
-
}), (i, u) => (s(), c("div",
|
|
1170
|
-
e.showCornerActions ? (s(), c("div",
|
|
1171
|
-
x(
|
|
1172
|
-
x(
|
|
1169
|
+
}), (i, u) => (s(), c("div", na, [
|
|
1170
|
+
e.showCornerActions ? (s(), c("div", aa, [
|
|
1171
|
+
x(mt),
|
|
1172
|
+
x(ft)
|
|
1173
1173
|
])) : F("", !0),
|
|
1174
1174
|
x(r(q), {
|
|
1175
|
-
class:
|
|
1175
|
+
class: Y(["admin-auth-card", r(n).isChallengePending ? "admin-auth-card--wide" : ""]),
|
|
1176
1176
|
padding: "none"
|
|
1177
1177
|
}, {
|
|
1178
1178
|
default: m(() => [
|
|
1179
|
-
d("div",
|
|
1179
|
+
d("div", la, [
|
|
1180
1180
|
d("div", {
|
|
1181
|
-
class:
|
|
1181
|
+
class: Y(["admin-auth-card__logo", r(n).isChallengePending ? "admin-auth-card__logo--accent" : ""])
|
|
1182
1182
|
}, [
|
|
1183
1183
|
e.brandLogo && !r(n).isChallengePending ? (s(), c("img", {
|
|
1184
1184
|
key: 0,
|
|
1185
1185
|
src: e.brandLogo,
|
|
1186
1186
|
alt: e.brandName
|
|
1187
|
-
}, null, 8,
|
|
1187
|
+
}, null, 8, sa)) : r(n).isChallengePending ? (s(), c("span", ia, "🛡")) : (s(), c("span", oa, h(e.brandMark), 1))
|
|
1188
1188
|
], 2),
|
|
1189
|
-
d("div",
|
|
1189
|
+
d("div", ra, [
|
|
1190
1190
|
r(n).isChallengePending ? (s(), c(T, { key: 0 }, [
|
|
1191
1191
|
C("Двухфакторная проверка")
|
|
1192
1192
|
], 64)) : (s(), c(T, { key: 1 }, [
|
|
1193
1193
|
C(h(e.brandName), 1)
|
|
1194
1194
|
], 64))
|
|
1195
1195
|
]),
|
|
1196
|
-
d("div",
|
|
1196
|
+
d("div", ua, [
|
|
1197
1197
|
r(n).isChallengePending ? (s(), c(T, { key: 0 }, [
|
|
1198
1198
|
C(" Введите 6-значный код из приложения-аутентификатора ")
|
|
1199
1199
|
], 64)) : (s(), c(T, { key: 1 }, [
|
|
@@ -1201,13 +1201,13 @@ const X = ee("admin-auth", () => {
|
|
|
1201
1201
|
], 64))
|
|
1202
1202
|
])
|
|
1203
1203
|
]),
|
|
1204
|
-
r(n).isChallengePending ? (s(), w(
|
|
1204
|
+
r(n).isChallengePending ? (s(), w(ta, {
|
|
1205
1205
|
key: 0,
|
|
1206
1206
|
onSuccess: u[0] || (u[0] = () => {
|
|
1207
1207
|
}),
|
|
1208
1208
|
onCancel: u[1] || (u[1] = () => {
|
|
1209
1209
|
})
|
|
1210
|
-
})) : (s(), w(
|
|
1210
|
+
})) : (s(), w(Qn, {
|
|
1211
1211
|
key: 1,
|
|
1212
1212
|
"forgot-url": e.forgotUrl,
|
|
1213
1213
|
"sso-link-label": e.ssoLinkLabel,
|
|
@@ -1220,8 +1220,8 @@ const X = ee("admin-auth", () => {
|
|
|
1220
1220
|
}, 8, ["class"])
|
|
1221
1221
|
]));
|
|
1222
1222
|
}
|
|
1223
|
-
}),
|
|
1224
|
-
const e = E(null), t = E([]), n = E({ ...
|
|
1223
|
+
}), Qe = { page: 1, per_page: 20, total: 0, last_page: 1 }, ca = ne("admin-resource-index", () => {
|
|
1224
|
+
const e = E(null), t = E([]), n = E({ ...Qe }), o = E(!1), a = E(null), l = E(""), i = E({}), u = E(null), f = E("asc"), v = E(/* @__PURE__ */ new Set()), b = p(() => !o.value && a.value === null && t.value.length === 0), S = p(() => v.value.size), A = p(() => v.value.size > 0), R = p(() => a.value !== null), _ = p(() => v.value.size === 0 || t.value.length === 0 ? "none" : t.value.every((z) => v.value.has(g(z))) ? "all" : "mixed");
|
|
1225
1225
|
function g(N) {
|
|
1226
1226
|
return N.id ?? N.key ?? "";
|
|
1227
1227
|
}
|
|
@@ -1229,28 +1229,28 @@ const X = ee("admin-auth", () => {
|
|
|
1229
1229
|
e.value !== N && (e.value = N, P());
|
|
1230
1230
|
}
|
|
1231
1231
|
function P() {
|
|
1232
|
-
t.value = [], n.value = { ...
|
|
1232
|
+
t.value = [], n.value = { ...Qe }, o.value = !1, a.value = null, l.value = "", i.value = {}, u.value = null, f.value = "asc", v.value = /* @__PURE__ */ new Set();
|
|
1233
1233
|
}
|
|
1234
1234
|
function k(N = {}) {
|
|
1235
1235
|
const z = {
|
|
1236
1236
|
page: N.page ?? n.value.page,
|
|
1237
1237
|
per_page: N.per_page ?? n.value.per_page
|
|
1238
|
-
},
|
|
1239
|
-
|
|
1240
|
-
const
|
|
1241
|
-
|
|
1242
|
-
const
|
|
1243
|
-
for (const [
|
|
1244
|
-
|
|
1245
|
-
return Object.keys(
|
|
1238
|
+
}, ke = N.search ?? l.value;
|
|
1239
|
+
ke && (z.q = ke);
|
|
1240
|
+
const pe = N.sort ?? u.value;
|
|
1241
|
+
pe && (z.order = [{ column: pe, direction: N.direction ?? f.value }]);
|
|
1242
|
+
const bt = N.filters ?? i.value, Ne = {};
|
|
1243
|
+
for (const [kt, ie] of Object.entries(bt))
|
|
1244
|
+
ie == null || ie === "" || (Ne[kt] = Array.isArray(ie) ? ie.join(",") : ie);
|
|
1245
|
+
return Object.keys(Ne).length > 0 && (z.filters = Ne), z;
|
|
1246
1246
|
}
|
|
1247
1247
|
async function y(N = {}) {
|
|
1248
1248
|
if (!e.value)
|
|
1249
1249
|
throw new Error("useResourceIndexStore.load() called before setSlug()");
|
|
1250
1250
|
o.value = !0, a.value = null;
|
|
1251
1251
|
try {
|
|
1252
|
-
const z = W(),
|
|
1253
|
-
t.value =
|
|
1252
|
+
const z = W(), ke = k(N), pe = await z.post(`/${e.value}/search`, ke);
|
|
1253
|
+
t.value = pe.data, n.value = pe.meta;
|
|
1254
1254
|
} catch (z) {
|
|
1255
1255
|
throw a.value = z instanceof Error ? z : new Error(String(z)), z;
|
|
1256
1256
|
} finally {
|
|
@@ -1288,10 +1288,10 @@ const X = ee("admin-auth", () => {
|
|
|
1288
1288
|
for (const z of t.value) N.add(g(z));
|
|
1289
1289
|
v.value = N;
|
|
1290
1290
|
}
|
|
1291
|
-
function
|
|
1291
|
+
function ae() {
|
|
1292
1292
|
v.value = /* @__PURE__ */ new Set();
|
|
1293
1293
|
}
|
|
1294
|
-
function
|
|
1294
|
+
function yt(N) {
|
|
1295
1295
|
return v.value.has(N);
|
|
1296
1296
|
}
|
|
1297
1297
|
return {
|
|
@@ -1308,8 +1308,8 @@ const X = ee("admin-auth", () => {
|
|
|
1308
1308
|
selection: v,
|
|
1309
1309
|
// getters
|
|
1310
1310
|
isEmpty: b,
|
|
1311
|
-
hasError:
|
|
1312
|
-
hasSelection:
|
|
1311
|
+
hasError: R,
|
|
1312
|
+
hasSelection: A,
|
|
1313
1313
|
selectedCount: S,
|
|
1314
1314
|
selectionState: _,
|
|
1315
1315
|
// actions
|
|
@@ -1324,30 +1324,30 @@ const X = ee("admin-auth", () => {
|
|
|
1324
1324
|
setPage: O,
|
|
1325
1325
|
toggleRow: G,
|
|
1326
1326
|
toggleAllOnPage: K,
|
|
1327
|
-
clearSelection:
|
|
1328
|
-
isSelected:
|
|
1327
|
+
clearSelection: ae,
|
|
1328
|
+
isSelected: yt,
|
|
1329
1329
|
rowId: g
|
|
1330
1330
|
};
|
|
1331
|
-
}),
|
|
1331
|
+
}), ma = { class: "admin-page admin-resource-index" }, fa = { class: "admin-page__hd" }, va = { class: "admin-page__title-wrap" }, pa = { class: "admin-page__title" }, ga = {
|
|
1332
1332
|
key: 0,
|
|
1333
1333
|
class: "admin-page__count"
|
|
1334
|
-
},
|
|
1334
|
+
}, ha = { class: "admin-page__actions" }, _a = {
|
|
1335
1335
|
key: 0,
|
|
1336
1336
|
class: "admin-bulk-toolbar",
|
|
1337
1337
|
role: "toolbar"
|
|
1338
|
-
},
|
|
1338
|
+
}, ya = { class: "admin-bulk-toolbar__count" }, ba = {
|
|
1339
1339
|
key: 1,
|
|
1340
1340
|
class: "admin-filter-bar"
|
|
1341
|
-
},
|
|
1341
|
+
}, ka = ["value"], wa = {
|
|
1342
1342
|
key: 2,
|
|
1343
1343
|
class: "admin-resource-index__loading"
|
|
1344
|
-
},
|
|
1344
|
+
}, $a = {
|
|
1345
1345
|
key: 5,
|
|
1346
1346
|
class: "admin-resource-index__table"
|
|
1347
|
-
},
|
|
1347
|
+
}, xa = { class: "admin-resource-index__select-header" }, Ca = { class: "admin-resource-index__select-overlay" }, Sa = ["onClick"], Aa = {
|
|
1348
1348
|
key: 6,
|
|
1349
1349
|
class: "admin-resource-index__footer"
|
|
1350
|
-
},
|
|
1350
|
+
}, Ra = /* @__PURE__ */ L({
|
|
1351
1351
|
__name: "ResourceIndexPage",
|
|
1352
1352
|
props: {
|
|
1353
1353
|
slug: {},
|
|
@@ -1358,7 +1358,7 @@ const X = ee("admin-auth", () => {
|
|
|
1358
1358
|
},
|
|
1359
1359
|
emits: ["bulk-action", "row-click"],
|
|
1360
1360
|
setup(e, { emit: t }) {
|
|
1361
|
-
const n = e, o = t, a =
|
|
1361
|
+
const n = e, o = t, a = ca(), l = se(), i = p(() => l.getResource(n.slug)), u = p(
|
|
1362
1362
|
() => n.title ?? i.value?.label ?? n.slug
|
|
1363
1363
|
), f = p(() => (i.value?.columns ?? []).map((k) => {
|
|
1364
1364
|
const y = k;
|
|
@@ -1373,11 +1373,11 @@ const X = ee("admin-auth", () => {
|
|
|
1373
1373
|
const P = a.meta.total;
|
|
1374
1374
|
return P === 0 ? "" : `${a.items.length} из ${P}`;
|
|
1375
1375
|
});
|
|
1376
|
-
|
|
1376
|
+
Re(async () => {
|
|
1377
1377
|
a.setSlug(n.slug), l.manifest === null && await l.load().catch(() => {
|
|
1378
1378
|
}), await a.load().catch(() => {
|
|
1379
1379
|
});
|
|
1380
|
-
}),
|
|
1380
|
+
}), te(
|
|
1381
1381
|
() => n.slug,
|
|
1382
1382
|
async (P, k) => {
|
|
1383
1383
|
P !== k && (a.setSlug(P), await a.load().catch(() => {
|
|
@@ -1390,10 +1390,10 @@ const X = ee("admin-auth", () => {
|
|
|
1390
1390
|
async function S(P) {
|
|
1391
1391
|
await a.setPage(P);
|
|
1392
1392
|
}
|
|
1393
|
-
function
|
|
1393
|
+
function A() {
|
|
1394
1394
|
a.toggleAllOnPage();
|
|
1395
1395
|
}
|
|
1396
|
-
function
|
|
1396
|
+
function R(P) {
|
|
1397
1397
|
a.toggleRow(P);
|
|
1398
1398
|
}
|
|
1399
1399
|
function _(P) {
|
|
@@ -1406,11 +1406,11 @@ const X = ee("admin-auth", () => {
|
|
|
1406
1406
|
await a.load().catch(() => {
|
|
1407
1407
|
});
|
|
1408
1408
|
}
|
|
1409
|
-
return (P, k) => (s(), c("section",
|
|
1410
|
-
d("header",
|
|
1411
|
-
d("div",
|
|
1412
|
-
d("h1",
|
|
1413
|
-
e.subtitle || v.value ? (s(), c("div",
|
|
1409
|
+
return (P, k) => (s(), c("section", ma, [
|
|
1410
|
+
d("header", fa, [
|
|
1411
|
+
d("div", va, [
|
|
1412
|
+
d("h1", pa, h(u.value), 1),
|
|
1413
|
+
e.subtitle || v.value ? (s(), c("div", ga, [
|
|
1414
1414
|
e.subtitle ? (s(), c(T, { key: 0 }, [
|
|
1415
1415
|
C(h(e.subtitle), 1)
|
|
1416
1416
|
], 64)) : F("", !0),
|
|
@@ -1422,7 +1422,7 @@ const X = ee("admin-auth", () => {
|
|
|
1422
1422
|
], 64)) : F("", !0)
|
|
1423
1423
|
])) : F("", !0)
|
|
1424
1424
|
]),
|
|
1425
|
-
d("div",
|
|
1425
|
+
d("div", ha, [
|
|
1426
1426
|
H(P.$slots, "actions"),
|
|
1427
1427
|
e.createRouteName ? (s(), w(r(B), {
|
|
1428
1428
|
key: 0,
|
|
@@ -1436,8 +1436,8 @@ const X = ee("admin-auth", () => {
|
|
|
1436
1436
|
})) : F("", !0)
|
|
1437
1437
|
])
|
|
1438
1438
|
]),
|
|
1439
|
-
r(a).hasSelection ? (s(), c("div",
|
|
1440
|
-
d("span",
|
|
1439
|
+
r(a).hasSelection ? (s(), c("div", _a, [
|
|
1440
|
+
d("span", ya, [
|
|
1441
1441
|
k[8] || (k[8] = C(" Выбрано ", -1)),
|
|
1442
1442
|
d("b", null, h(r(a).selectedCount), 1)
|
|
1443
1443
|
]),
|
|
@@ -1493,14 +1493,14 @@ const X = ee("admin-auth", () => {
|
|
|
1493
1493
|
])]),
|
|
1494
1494
|
_: 1
|
|
1495
1495
|
}, 8, ["onClick"])
|
|
1496
|
-
])) : (s(), c("div",
|
|
1496
|
+
])) : (s(), c("div", ba, [
|
|
1497
1497
|
d("input", {
|
|
1498
1498
|
value: r(a).search,
|
|
1499
1499
|
type: "search",
|
|
1500
1500
|
placeholder: "Поиск…",
|
|
1501
1501
|
class: "admin-filter-bar__search",
|
|
1502
|
-
onKeydown: k[5] || (k[5] =
|
|
1503
|
-
}, null, 40,
|
|
1502
|
+
onKeydown: k[5] || (k[5] = xt((y) => r(a).setSearch(y.target.value), ["enter"]))
|
|
1503
|
+
}, null, 40, ka),
|
|
1504
1504
|
H(P.$slots, "filters", {
|
|
1505
1505
|
filters: r(a).filters,
|
|
1506
1506
|
setFilter: r(a).setFilter
|
|
@@ -1518,12 +1518,12 @@ const X = ee("admin-auth", () => {
|
|
|
1518
1518
|
_: 1
|
|
1519
1519
|
}, 8, ["onClick"])) : F("", !0)
|
|
1520
1520
|
])),
|
|
1521
|
-
r(a).loading ? (s(), c("div",
|
|
1522
|
-
(s(), c(T, null, I(8, (y) => x(r(
|
|
1521
|
+
r(a).loading ? (s(), c("div", wa, [
|
|
1522
|
+
(s(), c(T, null, I(8, (y) => x(r(We), {
|
|
1523
1523
|
key: y,
|
|
1524
1524
|
height: "40px"
|
|
1525
1525
|
})), 64))
|
|
1526
|
-
])) : r(a).hasError ? (s(), w(r(
|
|
1526
|
+
])) : r(a).hasError ? (s(), w(r(Nt), {
|
|
1527
1527
|
key: 3,
|
|
1528
1528
|
title: "Не удалось загрузить данные",
|
|
1529
1529
|
description: r(a).error?.message ?? "Попробуйте обновить страницу.",
|
|
@@ -1541,7 +1541,7 @@ const X = ee("admin-auth", () => {
|
|
|
1541
1541
|
})
|
|
1542
1542
|
]),
|
|
1543
1543
|
_: 1
|
|
1544
|
-
}, 8, ["description"])) : r(a).isEmpty ? (s(), w(r(
|
|
1544
|
+
}, 8, ["description"])) : r(a).isEmpty ? (s(), w(r(It), {
|
|
1545
1545
|
key: 4,
|
|
1546
1546
|
title: "Пока пусто",
|
|
1547
1547
|
description: "Создайте первую запись или измените фильтры.",
|
|
@@ -1560,22 +1560,22 @@ const X = ee("admin-auth", () => {
|
|
|
1560
1560
|
})) : F("", !0)
|
|
1561
1561
|
]),
|
|
1562
1562
|
_: 1
|
|
1563
|
-
})) : (s(), c("div",
|
|
1564
|
-
d("div",
|
|
1565
|
-
x(r(
|
|
1563
|
+
})) : (s(), c("div", $a, [
|
|
1564
|
+
d("div", xa, [
|
|
1565
|
+
x(r(Se), {
|
|
1566
1566
|
"model-value": r(a).selectionState === "all",
|
|
1567
1567
|
indeterminate: r(a).selectionState === "mixed",
|
|
1568
1568
|
"aria-label": "Выделить всё",
|
|
1569
|
-
"onUpdate:modelValue":
|
|
1569
|
+
"onUpdate:modelValue": A
|
|
1570
1570
|
}, null, 8, ["model-value", "indeterminate"])
|
|
1571
1571
|
]),
|
|
1572
|
-
x(r(
|
|
1572
|
+
x(r(je), {
|
|
1573
1573
|
columns: f.value,
|
|
1574
1574
|
data: r(a).items,
|
|
1575
1575
|
"sort-key": r(a).sortKey ?? "",
|
|
1576
1576
|
"sort-direction": r(a).sortDirection,
|
|
1577
1577
|
"onUpdate:sortKey": b
|
|
1578
|
-
},
|
|
1578
|
+
}, qe({ _: 2 }, [
|
|
1579
1579
|
I(f.value, (y) => ({
|
|
1580
1580
|
name: `cell-${y.key}`,
|
|
1581
1581
|
fn: m(($) => [
|
|
@@ -1585,27 +1585,27 @@ const X = ee("admin-auth", () => {
|
|
|
1585
1585
|
])
|
|
1586
1586
|
}))
|
|
1587
1587
|
]), 1032, ["columns", "data", "sort-key", "sort-direction"]),
|
|
1588
|
-
d("div",
|
|
1588
|
+
d("div", Ca, [
|
|
1589
1589
|
(s(!0), c(T, null, I(r(a).items, (y) => (s(), c("div", {
|
|
1590
1590
|
key: String(r(a).rowId(y)),
|
|
1591
|
-
class:
|
|
1591
|
+
class: Y([
|
|
1592
1592
|
"admin-resource-index__row",
|
|
1593
1593
|
{ "admin-resource-index__row--selected": r(a).isSelected(r(a).rowId(y)) }
|
|
1594
1594
|
]),
|
|
1595
1595
|
onClick: ($) => _(y)
|
|
1596
1596
|
}, [
|
|
1597
|
-
x(r(
|
|
1597
|
+
x(r(Se), {
|
|
1598
1598
|
"model-value": r(a).isSelected(r(a).rowId(y)),
|
|
1599
1599
|
"aria-label": `Строка ${r(a).rowId(y)}`,
|
|
1600
|
-
"onUpdate:modelValue": ($) =>
|
|
1601
|
-
onClick: k[7] || (k[7] =
|
|
1600
|
+
"onUpdate:modelValue": ($) => R(r(a).rowId(y)),
|
|
1601
|
+
onClick: k[7] || (k[7] = Oe(() => {
|
|
1602
1602
|
}, ["stop"]))
|
|
1603
1603
|
}, null, 8, ["model-value", "aria-label", "onUpdate:modelValue"])
|
|
1604
|
-
], 10,
|
|
1604
|
+
], 10, Sa))), 128))
|
|
1605
1605
|
])
|
|
1606
1606
|
])),
|
|
1607
|
-
!r(a).loading && !r(a).hasError && !r(a).isEmpty ? (s(), c("footer",
|
|
1608
|
-
x(r(
|
|
1607
|
+
!r(a).loading && !r(a).hasError && !r(a).isEmpty ? (s(), c("footer", Aa, [
|
|
1608
|
+
x(r(Bt), {
|
|
1609
1609
|
"model-value": r(a).meta.page,
|
|
1610
1610
|
total: r(a).meta.total,
|
|
1611
1611
|
"per-page": r(a).meta.per_page,
|
|
@@ -1614,8 +1614,8 @@ const X = ee("admin-auth", () => {
|
|
|
1614
1614
|
])) : F("", !0)
|
|
1615
1615
|
]));
|
|
1616
1616
|
}
|
|
1617
|
-
}),
|
|
1618
|
-
const e = E(null), t = E("create"), n = E(null), o = E({}), a = E({}), l = E({}), i = E(!1), u = E(!1), f = E(!1), v = E(null), b = p(() => t.value === "create"), S = p(() => t.value === "edit"),
|
|
1617
|
+
}), pt = ne("admin-resource-form", () => {
|
|
1618
|
+
const e = E(null), t = E("create"), n = E(null), o = E({}), a = E({}), l = E({}), i = E(!1), u = E(!1), f = E(!1), v = E(null), b = p(() => t.value === "create"), S = p(() => t.value === "edit"), A = p(() => t.value === "view"), R = p(() => v.value !== null), _ = p(() => {
|
|
1619
1619
|
const M = o.value, O = a.value, G = /* @__PURE__ */ new Set([...Object.keys(M), ...Object.keys(O)]);
|
|
1620
1620
|
for (const K of G)
|
|
1621
1621
|
if (!Object.is(M[K], O[K]))
|
|
@@ -1638,10 +1638,10 @@ const X = ee("admin-auth", () => {
|
|
|
1638
1638
|
async function k(M, O, G = "edit") {
|
|
1639
1639
|
e.value = M, t.value = G, n.value = O, i.value = !0, v.value = null, l.value = {};
|
|
1640
1640
|
try {
|
|
1641
|
-
const
|
|
1641
|
+
const ae = await W().get(`/${M}/read`, {
|
|
1642
1642
|
params: { id: O }
|
|
1643
1643
|
});
|
|
1644
|
-
g(o.value,
|
|
1644
|
+
g(o.value, ae.data), g(a.value, ae.data);
|
|
1645
1645
|
} catch (K) {
|
|
1646
1646
|
throw v.value = K instanceof Error ? K : new Error(String(K)), K;
|
|
1647
1647
|
} finally {
|
|
@@ -1665,10 +1665,10 @@ const X = ee("admin-auth", () => {
|
|
|
1665
1665
|
if (u.value) throw new Error("Already saving");
|
|
1666
1666
|
u.value = !0, v.value = null, l.value = {};
|
|
1667
1667
|
try {
|
|
1668
|
-
const M = W(), O = t.value === "create" ? `/${e.value}/create` : `/${e.value}/update`, G = t.value === "create" ? o.value : { id: n.value, ...o.value },
|
|
1669
|
-
return n.value =
|
|
1668
|
+
const M = W(), O = t.value === "create" ? `/${e.value}/create` : `/${e.value}/update`, G = t.value === "create" ? o.value : { id: n.value, ...o.value }, ae = (await M.post(O, G)).id;
|
|
1669
|
+
return n.value = ae, g(a.value, { ...o.value }), t.value = "edit", ae;
|
|
1670
1670
|
} catch (M) {
|
|
1671
|
-
throw M instanceof
|
|
1671
|
+
throw M instanceof Le ? l.value = { ...M.fields } : (M instanceof Z || M instanceof Error) && (v.value = M), M;
|
|
1672
1672
|
} finally {
|
|
1673
1673
|
u.value = !1;
|
|
1674
1674
|
}
|
|
@@ -1701,9 +1701,9 @@ const X = ee("admin-auth", () => {
|
|
|
1701
1701
|
// getters
|
|
1702
1702
|
isCreate: b,
|
|
1703
1703
|
isEdit: S,
|
|
1704
|
-
isView:
|
|
1704
|
+
isView: A,
|
|
1705
1705
|
isDirty: _,
|
|
1706
|
-
hasError:
|
|
1706
|
+
hasError: R,
|
|
1707
1707
|
// actions
|
|
1708
1708
|
reset: U,
|
|
1709
1709
|
prepareCreate: P,
|
|
@@ -1715,7 +1715,7 @@ const X = ee("admin-auth", () => {
|
|
|
1715
1715
|
destroy: D
|
|
1716
1716
|
};
|
|
1717
1717
|
});
|
|
1718
|
-
function
|
|
1718
|
+
function Te() {
|
|
1719
1719
|
const e = /* @__PURE__ */ new Map();
|
|
1720
1720
|
return {
|
|
1721
1721
|
register(t, n) {
|
|
@@ -1739,21 +1739,21 @@ function Ee() {
|
|
|
1739
1739
|
}
|
|
1740
1740
|
};
|
|
1741
1741
|
}
|
|
1742
|
-
const
|
|
1742
|
+
const ce = Te(), me = Te(), Vi = ce.register, gt = ce.get, zi = ce.has, qi = ce.list, Di = me.register, Ze = me.get, Oi = me.has, Wi = me.list;
|
|
1743
1743
|
function ji() {
|
|
1744
|
-
|
|
1744
|
+
ce.clear(), me.clear();
|
|
1745
1745
|
}
|
|
1746
|
-
function
|
|
1747
|
-
e.fields &&
|
|
1746
|
+
function Ua(e) {
|
|
1747
|
+
e.fields && ce.registerBundle(e.fields), e.layouts && me.registerBundle(e.layouts);
|
|
1748
1748
|
}
|
|
1749
|
-
const
|
|
1749
|
+
const ht = /* @__PURE__ */ L({
|
|
1750
1750
|
__name: "UnknownField",
|
|
1751
1751
|
props: {
|
|
1752
1752
|
type: {},
|
|
1753
1753
|
name: {}
|
|
1754
1754
|
},
|
|
1755
1755
|
setup(e) {
|
|
1756
|
-
return (t, n) => (s(), w(r(
|
|
1756
|
+
return (t, n) => (s(), w(r(Q), { variant: "warning" }, {
|
|
1757
1757
|
title: m(() => [
|
|
1758
1758
|
C("Неизвестный тип поля: " + h(e.type), 1)
|
|
1759
1759
|
]),
|
|
@@ -1768,23 +1768,23 @@ const ft = /* @__PURE__ */ L({
|
|
|
1768
1768
|
_: 1
|
|
1769
1769
|
}));
|
|
1770
1770
|
}
|
|
1771
|
-
}),
|
|
1771
|
+
}), _t = /* @__PURE__ */ L({
|
|
1772
1772
|
__name: "FieldRenderer",
|
|
1773
1773
|
props: {
|
|
1774
1774
|
node: {}
|
|
1775
1775
|
},
|
|
1776
1776
|
setup(e) {
|
|
1777
|
-
const t = e, n = p(() =>
|
|
1777
|
+
const t = e, n = p(() => gt(t.node.type)), o = p(() => {
|
|
1778
1778
|
const { type: a, ...l } = t.node;
|
|
1779
1779
|
return l;
|
|
1780
1780
|
});
|
|
1781
|
-
return (a, l) => n.value ? (s(), w(
|
|
1781
|
+
return (a, l) => n.value ? (s(), w(ue(n.value), Ue(Ee({ key: 0 }, o.value)), null, 16)) : (s(), w(ht, {
|
|
1782
1782
|
key: 1,
|
|
1783
1783
|
type: e.node.type,
|
|
1784
1784
|
name: e.node.name
|
|
1785
1785
|
}, null, 8, ["type", "name"]));
|
|
1786
1786
|
}
|
|
1787
|
-
}),
|
|
1787
|
+
}), be = /* @__PURE__ */ L({
|
|
1788
1788
|
__name: "LayoutRenderer",
|
|
1789
1789
|
props: {
|
|
1790
1790
|
node: {}
|
|
@@ -1794,31 +1794,31 @@ const ft = /* @__PURE__ */ L({
|
|
|
1794
1794
|
if (t.node.kind === "field")
|
|
1795
1795
|
return { kind: "field" };
|
|
1796
1796
|
if (t.node.kind === "layout") {
|
|
1797
|
-
const i =
|
|
1797
|
+
const i = Ze(t.node.type);
|
|
1798
1798
|
return i ? { kind: "layout", component: i } : { kind: "unknown" };
|
|
1799
1799
|
}
|
|
1800
|
-
const l =
|
|
1801
|
-
return l ? { kind: "layout", component: l } :
|
|
1800
|
+
const l = Ze(t.node.type);
|
|
1801
|
+
return l ? { kind: "layout", component: l } : gt(t.node.type) ? { kind: "field" } : { kind: "unknown" };
|
|
1802
1802
|
}), o = p(() => {
|
|
1803
1803
|
const { type: l, kind: i, ...u } = t.node;
|
|
1804
1804
|
return u;
|
|
1805
1805
|
}), a = p(() => t.node);
|
|
1806
|
-
return (l, i) => n.value.kind === "layout" && n.value.component ? (s(), w(
|
|
1806
|
+
return (l, i) => n.value.kind === "layout" && n.value.component ? (s(), w(ue(n.value.component), Ue(Ee({ key: 0 }, o.value)), null, 16)) : n.value.kind === "field" ? (s(), w(_t, {
|
|
1807
1807
|
key: 1,
|
|
1808
1808
|
node: a.value
|
|
1809
|
-
}, null, 8, ["node"])) : (s(), w(
|
|
1809
|
+
}, null, 8, ["node"])) : (s(), w(ht, {
|
|
1810
1810
|
key: 2,
|
|
1811
1811
|
type: e.node.type,
|
|
1812
1812
|
name: e.node.name
|
|
1813
1813
|
}, null, 8, ["type", "name"]));
|
|
1814
1814
|
}
|
|
1815
|
-
}),
|
|
1815
|
+
}), Ea = { class: "admin-page admin-resource-form" }, Fa = { class: "admin-page__hd" }, La = { class: "admin-page__title-wrap" }, Pa = { class: "admin-page__title" }, Ta = { class: "admin-page__actions" }, Ma = {
|
|
1816
1816
|
key: 1,
|
|
1817
1817
|
class: "admin-resource-form__loading"
|
|
1818
|
-
},
|
|
1818
|
+
}, Na = {
|
|
1819
1819
|
key: 3,
|
|
1820
1820
|
class: "admin-resource-form__savebar"
|
|
1821
|
-
},
|
|
1821
|
+
}, et = /* @__PURE__ */ L({
|
|
1822
1822
|
__name: "ResourceFormPage",
|
|
1823
1823
|
props: {
|
|
1824
1824
|
slug: {},
|
|
@@ -1826,8 +1826,8 @@ const ft = /* @__PURE__ */ L({
|
|
|
1826
1826
|
indexRouteName: { default: "admin.home" }
|
|
1827
1827
|
},
|
|
1828
1828
|
setup(e) {
|
|
1829
|
-
const t = e, n =
|
|
1830
|
-
|
|
1829
|
+
const t = e, n = pt(), o = se(), a = le(), l = ct(n.state, n.errors);
|
|
1830
|
+
te(
|
|
1831
1831
|
() => n.errors,
|
|
1832
1832
|
(_) => {
|
|
1833
1833
|
l.setErrors({ ..._ });
|
|
@@ -1851,11 +1851,11 @@ const ft = /* @__PURE__ */ L({
|
|
|
1851
1851
|
return "default";
|
|
1852
1852
|
}
|
|
1853
1853
|
});
|
|
1854
|
-
|
|
1854
|
+
Re(async () => {
|
|
1855
1855
|
o.manifest === null && await o.load().catch(() => {
|
|
1856
1856
|
}), t.id !== null && t.id !== void 0 ? await n.load(t.slug, t.id, "edit").catch(() => {
|
|
1857
1857
|
}) : n.prepareCreate(t.slug);
|
|
1858
|
-
}),
|
|
1858
|
+
}), te(
|
|
1859
1859
|
() => [t.slug, t.id],
|
|
1860
1860
|
async ([_, g]) => {
|
|
1861
1861
|
g != null ? await n.load(_, g, "edit").catch(() => {
|
|
@@ -1873,24 +1873,24 @@ const ft = /* @__PURE__ */ L({
|
|
|
1873
1873
|
} catch {
|
|
1874
1874
|
}
|
|
1875
1875
|
}
|
|
1876
|
-
async function
|
|
1876
|
+
async function A() {
|
|
1877
1877
|
confirm("Удалить запись?") && (await n.destroy().catch(() => {
|
|
1878
1878
|
}), n.hasError || a.push({ name: t.indexRouteName }).catch(() => {
|
|
1879
1879
|
}));
|
|
1880
1880
|
}
|
|
1881
|
-
function
|
|
1881
|
+
function R() {
|
|
1882
1882
|
n.isDirty && !confirm("Несохранённые изменения будут потеряны. Продолжить?") || a.push({ name: t.indexRouteName }).catch(() => {
|
|
1883
1883
|
});
|
|
1884
1884
|
}
|
|
1885
|
-
return (_, g) => (s(), c("section",
|
|
1886
|
-
d("header",
|
|
1887
|
-
d("div",
|
|
1885
|
+
return (_, g) => (s(), c("section", Ea, [
|
|
1886
|
+
d("header", Fa, [
|
|
1887
|
+
d("div", La, [
|
|
1888
1888
|
d("a", {
|
|
1889
1889
|
class: "admin-resource-form__back",
|
|
1890
|
-
onClick:
|
|
1890
|
+
onClick: R
|
|
1891
1891
|
}, "← Назад"),
|
|
1892
|
-
d("h1",
|
|
1893
|
-
v.value ? (s(), w(r(
|
|
1892
|
+
d("h1", Pa, h(f.value), 1),
|
|
1893
|
+
v.value ? (s(), w(r(Ke), {
|
|
1894
1894
|
key: 0,
|
|
1895
1895
|
variant: b.value
|
|
1896
1896
|
}, {
|
|
@@ -1900,11 +1900,11 @@ const ft = /* @__PURE__ */ L({
|
|
|
1900
1900
|
_: 1
|
|
1901
1901
|
}, 8, ["variant"])) : F("", !0)
|
|
1902
1902
|
]),
|
|
1903
|
-
d("div",
|
|
1903
|
+
d("div", Ta, [
|
|
1904
1904
|
x(r(B), {
|
|
1905
1905
|
variant: "ghost",
|
|
1906
1906
|
disabled: r(n).saving || r(n).deleting,
|
|
1907
|
-
onClick:
|
|
1907
|
+
onClick: R
|
|
1908
1908
|
}, {
|
|
1909
1909
|
default: m(() => [...g[0] || (g[0] = [
|
|
1910
1910
|
C(" Отмена ", -1)
|
|
@@ -1916,7 +1916,7 @@ const ft = /* @__PURE__ */ L({
|
|
|
1916
1916
|
variant: "danger",
|
|
1917
1917
|
disabled: r(n).saving || r(n).deleting,
|
|
1918
1918
|
loading: r(n).deleting,
|
|
1919
|
-
onClick:
|
|
1919
|
+
onClick: A
|
|
1920
1920
|
}, {
|
|
1921
1921
|
default: m(() => [...g[1] || (g[1] = [
|
|
1922
1922
|
C(" Удалить ", -1)
|
|
@@ -1936,7 +1936,7 @@ const ft = /* @__PURE__ */ L({
|
|
|
1936
1936
|
}, 8, ["disabled", "loading"])
|
|
1937
1937
|
])
|
|
1938
1938
|
]),
|
|
1939
|
-
r(n).hasError ? (s(), w(r(
|
|
1939
|
+
r(n).hasError ? (s(), w(r(Q), {
|
|
1940
1940
|
key: 0,
|
|
1941
1941
|
variant: "danger",
|
|
1942
1942
|
class: "admin-resource-form__alert",
|
|
@@ -1947,8 +1947,8 @@ const ft = /* @__PURE__ */ L({
|
|
|
1947
1947
|
]),
|
|
1948
1948
|
_: 1
|
|
1949
1949
|
})) : F("", !0),
|
|
1950
|
-
r(n).loading ? (s(), c("div",
|
|
1951
|
-
(s(), c(T, null, I(6, (U) => x(r(
|
|
1950
|
+
r(n).loading ? (s(), c("div", Ma, [
|
|
1951
|
+
(s(), c(T, null, I(6, (U) => x(r(We), {
|
|
1952
1952
|
key: U,
|
|
1953
1953
|
height: "40px"
|
|
1954
1954
|
})), 64))
|
|
@@ -1958,19 +1958,19 @@ const ft = /* @__PURE__ */ L({
|
|
|
1958
1958
|
class: "admin-resource-form__body"
|
|
1959
1959
|
}, {
|
|
1960
1960
|
default: m(() => [
|
|
1961
|
-
(s(!0), c(T, null, I(u.value, (U, P) => (s(), w(
|
|
1961
|
+
(s(!0), c(T, null, I(u.value, (U, P) => (s(), w(be, {
|
|
1962
1962
|
key: P,
|
|
1963
1963
|
node: U
|
|
1964
1964
|
}, null, 8, ["node"]))), 128))
|
|
1965
1965
|
]),
|
|
1966
1966
|
_: 1
|
|
1967
1967
|
})),
|
|
1968
|
-
r(n).isDirty && !r(n).loading ? (s(), c("div",
|
|
1968
|
+
r(n).isDirty && !r(n).loading ? (s(), c("div", Na, [
|
|
1969
1969
|
g[4] || (g[4] = d("span", { class: "admin-resource-form__savebar-hint" }, " Есть несохранённые изменения ", -1)),
|
|
1970
1970
|
x(r(B), {
|
|
1971
1971
|
variant: "ghost",
|
|
1972
1972
|
size: "sm",
|
|
1973
|
-
onClick:
|
|
1973
|
+
onClick: R
|
|
1974
1974
|
}, {
|
|
1975
1975
|
default: m(() => [...g[2] || (g[2] = [
|
|
1976
1976
|
C("Отмена", -1)
|
|
@@ -1992,14 +1992,14 @@ const ft = /* @__PURE__ */ L({
|
|
|
1992
1992
|
])) : F("", !0)
|
|
1993
1993
|
]));
|
|
1994
1994
|
}
|
|
1995
|
-
}),
|
|
1995
|
+
}), fe = Te(), Ki = fe.register, tt = fe.get, Gi = fe.has, Hi = fe.list, Xi = fe.clear, Ia = fe.registerBundle, Ba = /* @__PURE__ */ L({
|
|
1996
1996
|
__name: "UnknownEntry",
|
|
1997
1997
|
props: {
|
|
1998
1998
|
type: {},
|
|
1999
1999
|
name: {}
|
|
2000
2000
|
},
|
|
2001
2001
|
setup(e) {
|
|
2002
|
-
return (t, n) => (s(), w(r(
|
|
2002
|
+
return (t, n) => (s(), w(r(Q), { variant: "warning" }, {
|
|
2003
2003
|
title: m(() => [
|
|
2004
2004
|
C("Неизвестный тип infolist-entry: " + h(e.type), 1)
|
|
2005
2005
|
]),
|
|
@@ -2011,31 +2011,31 @@ const ft = /* @__PURE__ */ L({
|
|
|
2011
2011
|
_: 1
|
|
2012
2012
|
}));
|
|
2013
2013
|
}
|
|
2014
|
-
}),
|
|
2014
|
+
}), Va = {
|
|
2015
2015
|
key: 1,
|
|
2016
2016
|
class: "admin-infolist-rows"
|
|
2017
|
-
},
|
|
2017
|
+
}, za = {
|
|
2018
2018
|
key: 2,
|
|
2019
2019
|
class: "admin-infolist-cols"
|
|
2020
|
-
},
|
|
2020
|
+
}, qa = {
|
|
2021
2021
|
key: 3,
|
|
2022
2022
|
class: "admin-infolist-section"
|
|
2023
|
-
},
|
|
2023
|
+
}, Da = {
|
|
2024
2024
|
key: 0,
|
|
2025
2025
|
class: "admin-infolist-section__hd"
|
|
2026
|
-
},
|
|
2026
|
+
}, Oa = {
|
|
2027
2027
|
key: 0,
|
|
2028
2028
|
class: "admin-infolist-section__title"
|
|
2029
|
-
},
|
|
2029
|
+
}, Wa = {
|
|
2030
2030
|
key: 1,
|
|
2031
2031
|
class: "admin-infolist-section__description"
|
|
2032
|
-
},
|
|
2032
|
+
}, ja = { class: "admin-infolist-section__body" }, Ka = {
|
|
2033
2033
|
key: 4,
|
|
2034
2034
|
class: "admin-infolist-tabs"
|
|
2035
|
-
},
|
|
2035
|
+
}, Ga = {
|
|
2036
2036
|
class: "admin-infolist-tabs__list",
|
|
2037
2037
|
role: "tablist"
|
|
2038
|
-
},
|
|
2038
|
+
}, Ha = { class: "admin-infolist-tabs__panel" }, Xa = /* @__PURE__ */ L({
|
|
2039
2039
|
__name: "InfolistRenderer",
|
|
2040
2040
|
props: {
|
|
2041
2041
|
node: {}
|
|
@@ -2043,18 +2043,18 @@ const ft = /* @__PURE__ */ L({
|
|
|
2043
2043
|
setup(e) {
|
|
2044
2044
|
const t = e, n = /* @__PURE__ */ new Set(["rows", "columns", "section", "block", "tabs"]), o = p(() => {
|
|
2045
2045
|
if (t.node.kind === "entry") {
|
|
2046
|
-
const S =
|
|
2046
|
+
const S = tt(t.node.type);
|
|
2047
2047
|
return S ? { kind: "entry", component: S } : { kind: "unknown" };
|
|
2048
2048
|
}
|
|
2049
2049
|
if (t.node.kind === "layout")
|
|
2050
2050
|
return n.has(t.node.type) ? { kind: "layout", layoutType: t.node.type } : { kind: "unknown" };
|
|
2051
2051
|
if (n.has(t.node.type))
|
|
2052
2052
|
return { kind: "layout", layoutType: t.node.type };
|
|
2053
|
-
const b =
|
|
2053
|
+
const b = tt(t.node.type);
|
|
2054
2054
|
return b ? { kind: "entry", component: b } : { kind: "unknown" };
|
|
2055
2055
|
}), a = p(() => {
|
|
2056
|
-
const { type: b, kind: S, items:
|
|
2057
|
-
return
|
|
2056
|
+
const { type: b, kind: S, items: A, ...R } = t.node;
|
|
2057
|
+
return R;
|
|
2058
2058
|
}), l = p(
|
|
2059
2059
|
() => t.node.items ?? []
|
|
2060
2060
|
), i = p(() => t.node.title ?? null), u = p(
|
|
@@ -2064,73 +2064,73 @@ const ft = /* @__PURE__ */ L({
|
|
|
2064
2064
|
return typeof b == "number" ? b : 0;
|
|
2065
2065
|
}), v = p(() => t.node.items ?? []);
|
|
2066
2066
|
return (b, S) => {
|
|
2067
|
-
const
|
|
2068
|
-
return o.value.kind === "entry" ? (s(), w(
|
|
2069
|
-
(s(!0), c(T, null, I(l.value, (
|
|
2067
|
+
const A = lt("InfolistRenderer", !0);
|
|
2068
|
+
return o.value.kind === "entry" ? (s(), w(ue(o.value.component), Ue(Ee({ key: 0 }, a.value)), null, 16)) : o.value.kind === "layout" && o.value.layoutType === "rows" ? (s(), c("div", Va, [
|
|
2069
|
+
(s(!0), c(T, null, I(l.value, (R, _) => (s(), w(A, {
|
|
2070
2070
|
key: _,
|
|
2071
|
-
node:
|
|
2071
|
+
node: R
|
|
2072
2072
|
}, null, 8, ["node"]))), 128))
|
|
2073
|
-
])) : o.value.kind === "layout" && o.value.layoutType === "columns" ? (s(), c("div",
|
|
2074
|
-
(s(!0), c(T, null, I(l.value, (
|
|
2073
|
+
])) : o.value.kind === "layout" && o.value.layoutType === "columns" ? (s(), c("div", za, [
|
|
2074
|
+
(s(!0), c(T, null, I(l.value, (R, _) => (s(), c("div", {
|
|
2075
2075
|
key: _,
|
|
2076
2076
|
class: "admin-infolist-cols__item",
|
|
2077
|
-
style:
|
|
2078
|
-
gridColumn: `span ${typeof
|
|
2077
|
+
style: Fe({
|
|
2078
|
+
gridColumn: `span ${typeof R.span == "number" ? R.span : Math.max(1, Math.floor(12 / l.value.length))}`
|
|
2079
2079
|
})
|
|
2080
2080
|
}, [
|
|
2081
|
-
x(
|
|
2081
|
+
x(A, { node: R }, null, 8, ["node"])
|
|
2082
2082
|
], 4))), 128))
|
|
2083
|
-
])) : o.value.kind === "layout" && (o.value.layoutType === "section" || o.value.layoutType === "block") ? (s(), c("section",
|
|
2084
|
-
i.value || u.value ? (s(), c("header",
|
|
2085
|
-
i.value ? (s(), c("h3",
|
|
2086
|
-
u.value ? (s(), c("p",
|
|
2083
|
+
])) : o.value.kind === "layout" && (o.value.layoutType === "section" || o.value.layoutType === "block") ? (s(), c("section", qa, [
|
|
2084
|
+
i.value || u.value ? (s(), c("header", Da, [
|
|
2085
|
+
i.value ? (s(), c("h3", Oa, h(i.value), 1)) : F("", !0),
|
|
2086
|
+
u.value ? (s(), c("p", Wa, h(u.value), 1)) : F("", !0)
|
|
2087
2087
|
])) : F("", !0),
|
|
2088
|
-
d("div",
|
|
2089
|
-
(s(!0), c(T, null, I(l.value, (
|
|
2088
|
+
d("div", ja, [
|
|
2089
|
+
(s(!0), c(T, null, I(l.value, (R, _) => (s(), w(A, {
|
|
2090
2090
|
key: _,
|
|
2091
|
-
node:
|
|
2091
|
+
node: R
|
|
2092
2092
|
}, null, 8, ["node"]))), 128))
|
|
2093
2093
|
])
|
|
2094
|
-
])) : o.value.kind === "layout" && o.value.layoutType === "tabs" ? (s(), c("div",
|
|
2095
|
-
d("ul",
|
|
2096
|
-
(s(!0), c(T, null, I(v.value, (
|
|
2097
|
-
key:
|
|
2098
|
-
class:
|
|
2094
|
+
])) : o.value.kind === "layout" && o.value.layoutType === "tabs" ? (s(), c("div", Ka, [
|
|
2095
|
+
d("ul", Ga, [
|
|
2096
|
+
(s(!0), c(T, null, I(v.value, (R, _) => (s(), c("li", {
|
|
2097
|
+
key: R.key ?? _,
|
|
2098
|
+
class: Y([
|
|
2099
2099
|
"admin-infolist-tabs__tab",
|
|
2100
2100
|
{ "admin-infolist-tabs__tab--active": _ === f.value }
|
|
2101
2101
|
])
|
|
2102
|
-
}, h(
|
|
2102
|
+
}, h(R.label), 3))), 128))
|
|
2103
2103
|
]),
|
|
2104
|
-
d("div",
|
|
2105
|
-
(s(!0), c(T, null, I(v.value[f.value]?.items ?? [], (
|
|
2104
|
+
d("div", Ha, [
|
|
2105
|
+
(s(!0), c(T, null, I(v.value[f.value]?.items ?? [], (R, _) => (s(), w(A, {
|
|
2106
2106
|
key: _,
|
|
2107
|
-
node:
|
|
2107
|
+
node: R
|
|
2108
2108
|
}, null, 8, ["node"]))), 128))
|
|
2109
2109
|
])
|
|
2110
|
-
])) : (s(), w(
|
|
2110
|
+
])) : (s(), w(Ba, {
|
|
2111
2111
|
key: 5,
|
|
2112
2112
|
type: e.node.type,
|
|
2113
2113
|
name: e.node.name
|
|
2114
2114
|
}, null, 8, ["type", "name"]));
|
|
2115
2115
|
};
|
|
2116
2116
|
}
|
|
2117
|
-
}),
|
|
2118
|
-
function
|
|
2119
|
-
|
|
2117
|
+
}), Je = /* @__PURE__ */ Symbol("admin.infolist-record");
|
|
2118
|
+
function Ja(e) {
|
|
2119
|
+
Ct(Je, e);
|
|
2120
2120
|
}
|
|
2121
2121
|
function Ji() {
|
|
2122
|
-
const e =
|
|
2122
|
+
const e = st(Je);
|
|
2123
2123
|
if (!e)
|
|
2124
2124
|
throw new Error("useRecord() called outside of provideRecord() scope");
|
|
2125
2125
|
return e;
|
|
2126
2126
|
}
|
|
2127
|
-
function
|
|
2128
|
-
return
|
|
2127
|
+
function Me() {
|
|
2128
|
+
return st(Je, null);
|
|
2129
2129
|
}
|
|
2130
|
-
const
|
|
2130
|
+
const Ya = { class: "admin-page admin-resource-view" }, Qa = { class: "admin-page__hd" }, Za = { class: "admin-page__title-wrap" }, el = { class: "admin-page__title" }, tl = { class: "admin-page__actions" }, nl = {
|
|
2131
2131
|
key: 1,
|
|
2132
2132
|
class: "admin-resource-view__loading"
|
|
2133
|
-
},
|
|
2133
|
+
}, al = /* @__PURE__ */ L({
|
|
2134
2134
|
__name: "ResourceViewPage",
|
|
2135
2135
|
props: {
|
|
2136
2136
|
slug: {},
|
|
@@ -2139,18 +2139,18 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2139
2139
|
indexRouteName: { default: "admin.home" }
|
|
2140
2140
|
},
|
|
2141
2141
|
setup(e) {
|
|
2142
|
-
const t = e, n =
|
|
2143
|
-
|
|
2142
|
+
const t = e, n = pt(), o = se(), a = le();
|
|
2143
|
+
Ja(n.state);
|
|
2144
2144
|
const l = p(() => o.getResource(t.slug)), i = p(
|
|
2145
2145
|
() => l.value?.fields ?? []
|
|
2146
2146
|
), u = p(
|
|
2147
2147
|
() => `${l.value?.label ?? t.slug}: запись #${t.id}`
|
|
2148
2148
|
);
|
|
2149
|
-
|
|
2149
|
+
Re(async () => {
|
|
2150
2150
|
o.manifest === null && await o.load().catch(() => {
|
|
2151
2151
|
}), await n.load(t.slug, t.id, "view").catch(() => {
|
|
2152
2152
|
});
|
|
2153
|
-
}),
|
|
2153
|
+
}), te(
|
|
2154
2154
|
() => [t.slug, t.id],
|
|
2155
2155
|
async ([b, S]) => {
|
|
2156
2156
|
await n.load(b, S, "view").catch(() => {
|
|
@@ -2171,12 +2171,12 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2171
2171
|
}), n.hasError || a.push({ name: t.indexRouteName }).catch(() => {
|
|
2172
2172
|
}));
|
|
2173
2173
|
}
|
|
2174
|
-
return (b, S) => (s(), c("section",
|
|
2175
|
-
d("header",
|
|
2176
|
-
d("div",
|
|
2177
|
-
d("h1",
|
|
2174
|
+
return (b, S) => (s(), c("section", Ya, [
|
|
2175
|
+
d("header", Qa, [
|
|
2176
|
+
d("div", Za, [
|
|
2177
|
+
d("h1", el, h(u.value), 1)
|
|
2178
2178
|
]),
|
|
2179
|
-
d("div",
|
|
2179
|
+
d("div", tl, [
|
|
2180
2180
|
x(r(B), {
|
|
2181
2181
|
variant: "ghost",
|
|
2182
2182
|
onClick: f
|
|
@@ -2199,7 +2199,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2199
2199
|
}, 8, ["loading", "disabled"])
|
|
2200
2200
|
])
|
|
2201
2201
|
]),
|
|
2202
|
-
r(n).hasError ? (s(), w(r(
|
|
2202
|
+
r(n).hasError ? (s(), w(r(Q), {
|
|
2203
2203
|
key: 0,
|
|
2204
2204
|
variant: "danger",
|
|
2205
2205
|
class: "admin-resource-view__alert",
|
|
@@ -2210,9 +2210,9 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2210
2210
|
]),
|
|
2211
2211
|
_: 1
|
|
2212
2212
|
})) : F("", !0),
|
|
2213
|
-
r(n).loading ? (s(), c("div",
|
|
2214
|
-
(s(), c(T, null, I(8, (
|
|
2215
|
-
key:
|
|
2213
|
+
r(n).loading ? (s(), c("div", nl, [
|
|
2214
|
+
(s(), c(T, null, I(8, (A) => x(r(We), {
|
|
2215
|
+
key: A,
|
|
2216
2216
|
height: "24px"
|
|
2217
2217
|
})), 64))
|
|
2218
2218
|
])) : (s(), w(r(q), {
|
|
@@ -2221,25 +2221,25 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2221
2221
|
class: "admin-resource-view__body"
|
|
2222
2222
|
}, {
|
|
2223
2223
|
default: m(() => [
|
|
2224
|
-
(s(!0), c(T, null, I(i.value, (
|
|
2225
|
-
key:
|
|
2226
|
-
node:
|
|
2224
|
+
(s(!0), c(T, null, I(i.value, (A, R) => (s(), w(Xa, {
|
|
2225
|
+
key: R,
|
|
2226
|
+
node: A
|
|
2227
2227
|
}, null, 8, ["node"]))), 128))
|
|
2228
2228
|
]),
|
|
2229
2229
|
_: 1
|
|
2230
2230
|
}))
|
|
2231
2231
|
]));
|
|
2232
2232
|
}
|
|
2233
|
-
}),
|
|
2233
|
+
}), ll = { class: "admin-page admin-profile" }, sl = { class: "admin-page__hd" }, il = { class: "admin-page__title-wrap" }, ol = { class: "admin-page__title" }, rl = { class: "admin-page__count" }, ul = { class: "admin-profile__layout" }, dl = {
|
|
2234
2234
|
class: "admin-profile__nav",
|
|
2235
2235
|
"aria-label": "Profile sections"
|
|
2236
|
-
},
|
|
2236
|
+
}, cl = ["onClick"], ml = ["data-icon"], fl = { class: "admin-profile__content" }, vl = { class: "admin-profile__hero" }, pl = { class: "admin-profile__hero-text" }, gl = { class: "admin-profile__hero-name" }, hl = { class: "admin-profile__hero-meta" }, _l = { class: "admin-profile__form" }, yl = { class: "admin-profile__card-ft" }, bl = { class: "admin-profile__card-hd" }, kl = {
|
|
2237
2237
|
key: 0,
|
|
2238
2238
|
class: "admin-profile__hint"
|
|
2239
|
-
},
|
|
2239
|
+
}, wl = {
|
|
2240
2240
|
key: 1,
|
|
2241
2241
|
class: "admin-profile__hint"
|
|
2242
|
-
},
|
|
2242
|
+
}, $l = { class: "admin-profile__card-ft" }, xl = { class: "admin-profile__hint" }, Cl = /* @__PURE__ */ L({
|
|
2243
2243
|
__name: "ProfilePage",
|
|
2244
2244
|
props: {
|
|
2245
2245
|
title: { default: "Profile" },
|
|
@@ -2248,7 +2248,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2248
2248
|
},
|
|
2249
2249
|
emits: ["update:section", "avatar-replace", "two-factor-disable", "two-factor-regenerate", "save"],
|
|
2250
2250
|
setup(e, { emit: t }) {
|
|
2251
|
-
const n = e, o = t, a =
|
|
2251
|
+
const n = e, o = t, a = J(), l = Ge(), i = He(), u = [
|
|
2252
2252
|
{ id: "general", label: "Основное", icon: "user" },
|
|
2253
2253
|
{ id: "security", label: "Безопасность", icon: "shield" },
|
|
2254
2254
|
{ id: "tokens", label: "API токены", icon: "key" },
|
|
@@ -2264,10 +2264,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2264
2264
|
theme: l.current
|
|
2265
2265
|
}), S = p(
|
|
2266
2266
|
() => i.available.map((k) => ({ value: k, label: k.toUpperCase() }))
|
|
2267
|
-
),
|
|
2267
|
+
), A = p(
|
|
2268
2268
|
() => l.available.map((k) => ({ value: k, label: k === "dark" ? "Тёмная" : k === "light" ? "Светлая" : k }))
|
|
2269
2269
|
);
|
|
2270
|
-
function
|
|
2270
|
+
function R() {
|
|
2271
2271
|
o("save", { ...b.value });
|
|
2272
2272
|
}
|
|
2273
2273
|
function _() {
|
|
@@ -2280,19 +2280,19 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2280
2280
|
o("two-factor-regenerate");
|
|
2281
2281
|
}
|
|
2282
2282
|
const P = p(() => !!a.user?.twoFactorEnabled);
|
|
2283
|
-
return (k, y) => (s(), c("section",
|
|
2284
|
-
d("header",
|
|
2285
|
-
d("div",
|
|
2286
|
-
d("h1",
|
|
2287
|
-
d("div",
|
|
2283
|
+
return (k, y) => (s(), c("section", ll, [
|
|
2284
|
+
d("header", sl, [
|
|
2285
|
+
d("div", il, [
|
|
2286
|
+
d("h1", ol, h(e.title), 1),
|
|
2287
|
+
d("div", rl, h(e.subtitle), 1)
|
|
2288
2288
|
])
|
|
2289
2289
|
]),
|
|
2290
|
-
d("div",
|
|
2291
|
-
d("nav",
|
|
2290
|
+
d("div", ul, [
|
|
2291
|
+
d("nav", dl, [
|
|
2292
2292
|
(s(), c(T, null, I(u, ($) => d("button", {
|
|
2293
2293
|
key: $.id,
|
|
2294
2294
|
type: "button",
|
|
2295
|
-
class:
|
|
2295
|
+
class: Y([
|
|
2296
2296
|
"admin-profile__nav-item",
|
|
2297
2297
|
{ "admin-profile__nav-item--active": f.value === $.id }
|
|
2298
2298
|
]),
|
|
@@ -2301,11 +2301,11 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2301
2301
|
d("span", {
|
|
2302
2302
|
class: "admin-profile__nav-icon",
|
|
2303
2303
|
"data-icon": $.icon
|
|
2304
|
-
}, null, 8,
|
|
2304
|
+
}, null, 8, ml),
|
|
2305
2305
|
d("span", null, h($.label), 1)
|
|
2306
|
-
], 10,
|
|
2306
|
+
], 10, cl)), 64))
|
|
2307
2307
|
]),
|
|
2308
|
-
d("div",
|
|
2308
|
+
d("div", fl, [
|
|
2309
2309
|
f.value === "general" ? (s(), w(r(q), {
|
|
2310
2310
|
key: 0,
|
|
2311
2311
|
padding: "md"
|
|
@@ -2314,15 +2314,15 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2314
2314
|
y[7] || (y[7] = d("header", { class: "admin-profile__card-hd" }, [
|
|
2315
2315
|
d("h3", { class: "admin-profile__card-title" }, "Профиль")
|
|
2316
2316
|
], -1)),
|
|
2317
|
-
d("div",
|
|
2318
|
-
x(r(
|
|
2317
|
+
d("div", vl, [
|
|
2318
|
+
x(r(rt), {
|
|
2319
2319
|
src: r(a).user?.avatar ?? void 0,
|
|
2320
2320
|
name: r(a).user?.name ?? "?",
|
|
2321
2321
|
size: "lg"
|
|
2322
2322
|
}, null, 8, ["src", "name"]),
|
|
2323
|
-
d("div",
|
|
2324
|
-
d("div",
|
|
2325
|
-
d("div",
|
|
2323
|
+
d("div", pl, [
|
|
2324
|
+
d("div", gl, h(r(a).user?.name ?? "—"), 1),
|
|
2325
|
+
d("div", hl, h(r(a).user?.email ?? "—"), 1)
|
|
2326
2326
|
]),
|
|
2327
2327
|
y[5] || (y[5] = d("div", { style: { flex: "1" } }, null, -1)),
|
|
2328
2328
|
x(r(B), {
|
|
@@ -2336,37 +2336,37 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2336
2336
|
_: 1
|
|
2337
2337
|
})
|
|
2338
2338
|
]),
|
|
2339
|
-
d("div",
|
|
2340
|
-
x(r(
|
|
2339
|
+
d("div", _l, [
|
|
2340
|
+
x(r(re), {
|
|
2341
2341
|
modelValue: b.value.name,
|
|
2342
2342
|
"onUpdate:modelValue": y[0] || (y[0] = ($) => b.value.name = $),
|
|
2343
2343
|
label: "Имя",
|
|
2344
2344
|
name: "name"
|
|
2345
2345
|
}, null, 8, ["modelValue"]),
|
|
2346
|
-
x(r(
|
|
2346
|
+
x(r(re), {
|
|
2347
2347
|
modelValue: b.value.email,
|
|
2348
2348
|
"onUpdate:modelValue": y[1] || (y[1] = ($) => b.value.email = $),
|
|
2349
2349
|
label: "Email",
|
|
2350
2350
|
type: "email",
|
|
2351
2351
|
name: "email"
|
|
2352
2352
|
}, null, 8, ["modelValue"]),
|
|
2353
|
-
x(r(
|
|
2353
|
+
x(r(Ae), {
|
|
2354
2354
|
modelValue: b.value.locale,
|
|
2355
2355
|
"onUpdate:modelValue": y[2] || (y[2] = ($) => b.value.locale = $),
|
|
2356
2356
|
options: S.value,
|
|
2357
2357
|
label: "Язык"
|
|
2358
2358
|
}, null, 8, ["modelValue", "options"]),
|
|
2359
|
-
x(r(
|
|
2359
|
+
x(r(Ae), {
|
|
2360
2360
|
modelValue: b.value.theme,
|
|
2361
2361
|
"onUpdate:modelValue": y[3] || (y[3] = ($) => b.value.theme = $),
|
|
2362
|
-
options:
|
|
2362
|
+
options: A.value,
|
|
2363
2363
|
label: "Тема"
|
|
2364
2364
|
}, null, 8, ["modelValue", "options"])
|
|
2365
2365
|
]),
|
|
2366
|
-
d("footer",
|
|
2366
|
+
d("footer", yl, [
|
|
2367
2367
|
x(r(B), {
|
|
2368
2368
|
variant: "primary",
|
|
2369
|
-
onClick:
|
|
2369
|
+
onClick: R
|
|
2370
2370
|
}, {
|
|
2371
2371
|
default: m(() => [...y[6] || (y[6] = [
|
|
2372
2372
|
C("Сохранить", -1)
|
|
@@ -2381,9 +2381,9 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2381
2381
|
padding: "md"
|
|
2382
2382
|
}, {
|
|
2383
2383
|
default: m(() => [
|
|
2384
|
-
d("header",
|
|
2384
|
+
d("header", bl, [
|
|
2385
2385
|
y[8] || (y[8] = d("h3", { class: "admin-profile__card-title" }, "Двухфакторная аутентификация", -1)),
|
|
2386
|
-
x(r(
|
|
2386
|
+
x(r(Ke), {
|
|
2387
2387
|
variant: P.value ? "success" : "default"
|
|
2388
2388
|
}, {
|
|
2389
2389
|
default: m(() => [
|
|
@@ -2392,8 +2392,8 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2392
2392
|
_: 1
|
|
2393
2393
|
}, 8, ["variant"])
|
|
2394
2394
|
]),
|
|
2395
|
-
P.value ? (s(), c("p",
|
|
2396
|
-
d("footer",
|
|
2395
|
+
P.value ? (s(), c("p", kl, " 2FA включена. У вас остались recovery-коды на случай потери устройства. ")) : (s(), c("p", wl, " Включите 2FA для дополнительной защиты аккаунта. ")),
|
|
2396
|
+
d("footer", $l, [
|
|
2397
2397
|
P.value ? (s(), c(T, { key: 0 }, [
|
|
2398
2398
|
x(r(B), {
|
|
2399
2399
|
variant: "ghost",
|
|
@@ -2435,7 +2435,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2435
2435
|
}, () => [
|
|
2436
2436
|
x(r(q), { padding: "md" }, {
|
|
2437
2437
|
default: m(() => [
|
|
2438
|
-
d("p",
|
|
2438
|
+
d("p", xl, " Section «" + h(f.value) + "» не реализована библиотекой — host-проект подключает её через slot " + h(f.value) + ". ", 1)
|
|
2439
2439
|
]),
|
|
2440
2440
|
_: 1
|
|
2441
2441
|
})
|
|
@@ -2444,13 +2444,13 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2444
2444
|
])
|
|
2445
2445
|
]));
|
|
2446
2446
|
}
|
|
2447
|
-
}),
|
|
2447
|
+
}), ve = Te(), Yi = ve.register, Sl = ve.get, Qi = ve.has, Zi = ve.list, eo = ve.clear, Al = ve.registerBundle, Rl = /* @__PURE__ */ L({
|
|
2448
2448
|
__name: "UnknownWidget",
|
|
2449
2449
|
props: {
|
|
2450
2450
|
type: {}
|
|
2451
2451
|
},
|
|
2452
2452
|
setup(e) {
|
|
2453
|
-
return (t, n) => (s(), w(r(
|
|
2453
|
+
return (t, n) => (s(), w(r(Q), { variant: "warning" }, {
|
|
2454
2454
|
title: m(() => [
|
|
2455
2455
|
C("Неизвестный widget-тип: " + h(e.type), 1)
|
|
2456
2456
|
]),
|
|
@@ -2462,25 +2462,25 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2462
2462
|
_: 1
|
|
2463
2463
|
}));
|
|
2464
2464
|
}
|
|
2465
|
-
}),
|
|
2465
|
+
}), Ul = /* @__PURE__ */ L({
|
|
2466
2466
|
__name: "WidgetRenderer",
|
|
2467
2467
|
props: {
|
|
2468
2468
|
node: {}
|
|
2469
2469
|
},
|
|
2470
2470
|
setup(e) {
|
|
2471
|
-
const t = e, n = p(() =>
|
|
2471
|
+
const t = e, n = p(() => Sl(t.node.type)), o = p(() => {
|
|
2472
2472
|
const { type: a, span: l, ...i } = t.node;
|
|
2473
2473
|
return i;
|
|
2474
2474
|
});
|
|
2475
|
-
return (a, l) => n.value ? (s(), w(
|
|
2475
|
+
return (a, l) => n.value ? (s(), w(ue(n.value), Ue(Ee({ key: 0 }, o.value)), null, 16)) : (s(), w(Rl, {
|
|
2476
2476
|
key: 1,
|
|
2477
2477
|
type: e.node.type
|
|
2478
2478
|
}, null, 8, ["type"]));
|
|
2479
2479
|
}
|
|
2480
|
-
}),
|
|
2480
|
+
}), El = { class: "admin-page admin-dashboard" }, Fl = { class: "admin-page__hd" }, Ll = { class: "admin-page__title-wrap" }, Pl = { class: "admin-page__title" }, Tl = {
|
|
2481
2481
|
key: 0,
|
|
2482
2482
|
class: "admin-page__count"
|
|
2483
|
-
},
|
|
2483
|
+
}, Ml = { class: "admin-page__actions" }, Nl = { class: "admin-dashboard__grid" }, Il = /* @__PURE__ */ L({
|
|
2484
2484
|
__name: "DashboardPage",
|
|
2485
2485
|
props: {
|
|
2486
2486
|
slug: { default: void 0 },
|
|
@@ -2489,7 +2489,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2489
2489
|
subtitle: { default: void 0 }
|
|
2490
2490
|
},
|
|
2491
2491
|
setup(e) {
|
|
2492
|
-
const t = e, n =
|
|
2492
|
+
const t = e, n = se(), o = p(() => !t.slug || !n.manifest ? null : n.manifest.dashboards?.find((v) => v.slug === t.slug) ?? null), a = p(() => t.widgets ? t.widgets : o.value ? o.value.widgets ?? [] : []), l = p(
|
|
2493
2493
|
() => t.title ?? o.value?.label ?? "Dashboard"
|
|
2494
2494
|
), i = p(
|
|
2495
2495
|
() => t.subtitle ?? o.value?.description ?? null
|
|
@@ -2498,28 +2498,28 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2498
2498
|
const v = typeof f.span == "number" ? f.span : 12;
|
|
2499
2499
|
return Math.max(1, Math.min(12, v));
|
|
2500
2500
|
}
|
|
2501
|
-
return (f, v) => (s(), c("section",
|
|
2502
|
-
d("header",
|
|
2503
|
-
d("div",
|
|
2504
|
-
d("h1",
|
|
2505
|
-
i.value ? (s(), c("div",
|
|
2501
|
+
return (f, v) => (s(), c("section", El, [
|
|
2502
|
+
d("header", Fl, [
|
|
2503
|
+
d("div", Ll, [
|
|
2504
|
+
d("h1", Pl, h(l.value), 1),
|
|
2505
|
+
i.value ? (s(), c("div", Tl, h(i.value), 1)) : F("", !0)
|
|
2506
2506
|
]),
|
|
2507
|
-
d("div",
|
|
2507
|
+
d("div", Ml, [
|
|
2508
2508
|
H(f.$slots, "actions")
|
|
2509
2509
|
])
|
|
2510
2510
|
]),
|
|
2511
|
-
d("div",
|
|
2511
|
+
d("div", Nl, [
|
|
2512
2512
|
(s(!0), c(T, null, I(a.value, (b, S) => (s(), c("div", {
|
|
2513
2513
|
key: S,
|
|
2514
2514
|
class: "admin-dashboard__cell",
|
|
2515
|
-
style:
|
|
2515
|
+
style: Fe({ gridColumn: `span ${u(b)} / span ${u(b)}` })
|
|
2516
2516
|
}, [
|
|
2517
|
-
x(
|
|
2517
|
+
x(Ul, { node: b }, null, 8, ["node"])
|
|
2518
2518
|
], 4))), 128))
|
|
2519
2519
|
])
|
|
2520
2520
|
]));
|
|
2521
2521
|
}
|
|
2522
|
-
}),
|
|
2522
|
+
}), Bl = /* @__PURE__ */ L({
|
|
2523
2523
|
__name: "StatWidget",
|
|
2524
2524
|
props: {
|
|
2525
2525
|
title: { default: "" },
|
|
@@ -2539,7 +2539,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2539
2539
|
warning: "warning",
|
|
2540
2540
|
info: "info"
|
|
2541
2541
|
}, o = p(() => n[t.tone]);
|
|
2542
|
-
return (a, l) => (s(), w(r(
|
|
2542
|
+
return (a, l) => (s(), w(r(xe), {
|
|
2543
2543
|
title: e.title,
|
|
2544
2544
|
value: e.value,
|
|
2545
2545
|
prefix: e.prefix,
|
|
@@ -2550,16 +2550,16 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2550
2550
|
loading: e.loading
|
|
2551
2551
|
}, null, 8, ["title", "value", "prefix", "suffix", "trend", "precision", "tone", "loading"]));
|
|
2552
2552
|
}
|
|
2553
|
-
}),
|
|
2553
|
+
}), Vl = {
|
|
2554
2554
|
key: 0,
|
|
2555
2555
|
class: "admin-widget__hd"
|
|
2556
|
-
},
|
|
2556
|
+
}, zl = {
|
|
2557
2557
|
key: 0,
|
|
2558
2558
|
class: "admin-widget__title"
|
|
2559
|
-
},
|
|
2559
|
+
}, ql = {
|
|
2560
2560
|
key: 1,
|
|
2561
2561
|
class: "admin-widget__desc"
|
|
2562
|
-
},
|
|
2562
|
+
}, Dl = ["viewBox", "height", "aria-label"], Ol = ["x", "y", "width", "height", "fill", "data-label", "data-value"], Wl = /* @__PURE__ */ L({
|
|
2563
2563
|
__name: "BarChartWidget",
|
|
2564
2564
|
props: {
|
|
2565
2565
|
title: { default: "" },
|
|
@@ -2584,9 +2584,9 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2584
2584
|
class: "admin-widget"
|
|
2585
2585
|
}, {
|
|
2586
2586
|
default: m(() => [
|
|
2587
|
-
e.title || e.description ? (s(), c("header",
|
|
2588
|
-
e.title ? (s(), c("h3",
|
|
2589
|
-
e.description ? (s(), c("p",
|
|
2587
|
+
e.title || e.description ? (s(), c("header", Vl, [
|
|
2588
|
+
e.title ? (s(), c("h3", zl, h(e.title), 1)) : F("", !0),
|
|
2589
|
+
e.description ? (s(), c("p", ql, h(e.description), 1)) : F("", !0)
|
|
2590
2590
|
])) : F("", !0),
|
|
2591
2591
|
(s(), c("svg", {
|
|
2592
2592
|
class: "admin-widget-bar-chart",
|
|
@@ -2609,16 +2609,16 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2609
2609
|
"data-value": i.value
|
|
2610
2610
|
}, [
|
|
2611
2611
|
d("title", null, h(i.label) + ": " + h(i.value), 1)
|
|
2612
|
-
], 8,
|
|
2613
|
-
], 8,
|
|
2612
|
+
], 8, Ol))), 128))
|
|
2613
|
+
], 8, Dl))
|
|
2614
2614
|
]),
|
|
2615
2615
|
_: 1
|
|
2616
2616
|
}));
|
|
2617
2617
|
}
|
|
2618
|
-
}),
|
|
2618
|
+
}), jl = {
|
|
2619
2619
|
key: 0,
|
|
2620
2620
|
class: "admin-widget__hd"
|
|
2621
|
-
},
|
|
2621
|
+
}, Kl = { class: "admin-widget__title" }, Gl = { class: "admin-donut-widget__row" }, Hl = ["aria-label"], Xl = ["d", "fill"], Jl = { class: "admin-donut-widget__legend" }, Yl = { class: "admin-donut-widget__label" }, Ql = { class: "admin-donut-widget__value" }, Zl = /* @__PURE__ */ L({
|
|
2622
2622
|
__name: "DonutChartWidget",
|
|
2623
2623
|
props: {
|
|
2624
2624
|
title: { default: "" },
|
|
@@ -2636,7 +2636,7 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2636
2636
|
return t.data.map((i, u) => {
|
|
2637
2637
|
const f = l / o.value * 2 * Math.PI;
|
|
2638
2638
|
l += i.value;
|
|
2639
|
-
const v = l / o.value * 2 * Math.PI, b = 50, S = 60,
|
|
2639
|
+
const v = l / o.value * 2 * Math.PI, b = 50, S = 60, A = 60, R = S + b * Math.cos(f - Math.PI / 2), _ = A + b * Math.sin(f - Math.PI / 2), g = S + b * Math.cos(v - Math.PI / 2), U = A + b * Math.sin(v - Math.PI / 2), P = v - f > Math.PI ? 1 : 0, k = t.data.length === 1 ? `M ${S - b} ${A} a ${b} ${b} 0 1 0 ${b * 2} 0 a ${b} ${b} 0 1 0 ${-b * 2} 0` : `M ${S} ${A} L ${R} ${_} A ${b} ${b} 0 ${P} 1 ${g} ${U} Z`;
|
|
2640
2640
|
return {
|
|
2641
2641
|
...i,
|
|
2642
2642
|
path: k,
|
|
@@ -2650,10 +2650,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2650
2650
|
class: "admin-widget admin-donut-widget"
|
|
2651
2651
|
}, {
|
|
2652
2652
|
default: m(() => [
|
|
2653
|
-
e.title ? (s(), c("header",
|
|
2654
|
-
d("h3",
|
|
2653
|
+
e.title ? (s(), c("header", jl, [
|
|
2654
|
+
d("h3", Kl, h(e.title), 1)
|
|
2655
2655
|
])) : F("", !0),
|
|
2656
|
-
d("div",
|
|
2656
|
+
d("div", Gl, [
|
|
2657
2657
|
(s(), c("svg", {
|
|
2658
2658
|
viewBox: "0 0 120 120",
|
|
2659
2659
|
class: "admin-donut-widget__svg",
|
|
@@ -2666,22 +2666,22 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2666
2666
|
fill: u.color
|
|
2667
2667
|
}, [
|
|
2668
2668
|
d("title", null, h(u.label) + ": " + h(u.value) + " (" + h(u.pct) + "%)", 1)
|
|
2669
|
-
], 8,
|
|
2669
|
+
], 8, Xl))), 128)),
|
|
2670
2670
|
i[0] || (i[0] = d("circle", {
|
|
2671
2671
|
cx: "60",
|
|
2672
2672
|
cy: "60",
|
|
2673
2673
|
r: "30",
|
|
2674
2674
|
fill: "var(--uid-surface-raised)"
|
|
2675
2675
|
}, null, -1))
|
|
2676
|
-
], 8,
|
|
2677
|
-
d("ul",
|
|
2676
|
+
], 8, Hl)),
|
|
2677
|
+
d("ul", Jl, [
|
|
2678
2678
|
(s(!0), c(T, null, I(a.value, (u, f) => (s(), c("li", { key: f }, [
|
|
2679
2679
|
d("span", {
|
|
2680
2680
|
class: "admin-donut-widget__dot",
|
|
2681
|
-
style:
|
|
2681
|
+
style: Fe({ background: u.color })
|
|
2682
2682
|
}, null, 4),
|
|
2683
|
-
d("span",
|
|
2684
|
-
d("span",
|
|
2683
|
+
d("span", Yl, h(u.label), 1),
|
|
2684
|
+
d("span", Ql, h(u.pct) + "%", 1)
|
|
2685
2685
|
]))), 128))
|
|
2686
2686
|
])
|
|
2687
2687
|
])
|
|
@@ -2689,10 +2689,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2689
2689
|
_: 1
|
|
2690
2690
|
}));
|
|
2691
2691
|
}
|
|
2692
|
-
}),
|
|
2692
|
+
}), es = {
|
|
2693
2693
|
key: 0,
|
|
2694
2694
|
class: "admin-widget__hd"
|
|
2695
|
-
},
|
|
2695
|
+
}, ts = { class: "admin-widget__title" }, ns = /* @__PURE__ */ L({
|
|
2696
2696
|
__name: "RecentTableWidget",
|
|
2697
2697
|
props: {
|
|
2698
2698
|
title: { default: "" },
|
|
@@ -2706,10 +2706,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2706
2706
|
class: "admin-widget"
|
|
2707
2707
|
}, {
|
|
2708
2708
|
default: m(() => [
|
|
2709
|
-
e.title ? (s(), c("header",
|
|
2710
|
-
d("h3",
|
|
2709
|
+
e.title ? (s(), c("header", es, [
|
|
2710
|
+
d("h3", ts, h(e.title), 1)
|
|
2711
2711
|
])) : F("", !0),
|
|
2712
|
-
x(r(
|
|
2712
|
+
x(r(je), {
|
|
2713
2713
|
columns: e.columns,
|
|
2714
2714
|
data: e.rows,
|
|
2715
2715
|
"empty-text": e.emptyText
|
|
@@ -2718,10 +2718,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2718
2718
|
_: 1
|
|
2719
2719
|
}));
|
|
2720
2720
|
}
|
|
2721
|
-
}),
|
|
2721
|
+
}), as = {
|
|
2722
2722
|
key: 0,
|
|
2723
2723
|
class: "admin-widget__hd"
|
|
2724
|
-
},
|
|
2724
|
+
}, ls = { class: "admin-widget__title" }, ss = /* @__PURE__ */ L({
|
|
2725
2725
|
__name: "HeatmapWidget",
|
|
2726
2726
|
props: {
|
|
2727
2727
|
title: { default: "" },
|
|
@@ -2736,10 +2736,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2736
2736
|
class: "admin-widget"
|
|
2737
2737
|
}, {
|
|
2738
2738
|
default: m(() => [
|
|
2739
|
-
e.title ? (s(), c("header",
|
|
2740
|
-
d("h3",
|
|
2739
|
+
e.title ? (s(), c("header", as, [
|
|
2740
|
+
d("h3", ls, h(e.title), 1)
|
|
2741
2741
|
])) : F("", !0),
|
|
2742
|
-
x(r(
|
|
2742
|
+
x(r(Vt), {
|
|
2743
2743
|
data: e.data,
|
|
2744
2744
|
levels: e.levels,
|
|
2745
2745
|
color: e.color,
|
|
@@ -2749,10 +2749,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2749
2749
|
_: 1
|
|
2750
2750
|
}));
|
|
2751
2751
|
}
|
|
2752
|
-
}),
|
|
2752
|
+
}), is = {
|
|
2753
2753
|
key: 0,
|
|
2754
2754
|
class: "admin-widget__hd"
|
|
2755
|
-
},
|
|
2755
|
+
}, os = { class: "admin-widget__title" }, rs = { style: { display: "flex", "justify-content": "center" } }, us = /* @__PURE__ */ L({
|
|
2756
2756
|
__name: "GaugeWidget",
|
|
2757
2757
|
props: {
|
|
2758
2758
|
title: { default: "" },
|
|
@@ -2779,11 +2779,11 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2779
2779
|
class: "admin-widget"
|
|
2780
2780
|
}, {
|
|
2781
2781
|
default: m(() => [
|
|
2782
|
-
e.title ? (s(), c("header",
|
|
2783
|
-
d("h3",
|
|
2782
|
+
e.title ? (s(), c("header", is, [
|
|
2783
|
+
d("h3", os, h(e.title), 1)
|
|
2784
2784
|
])) : F("", !0),
|
|
2785
|
-
d("div",
|
|
2786
|
-
x(r(
|
|
2785
|
+
d("div", rs, [
|
|
2786
|
+
x(r(zt), {
|
|
2787
2787
|
value: e.value,
|
|
2788
2788
|
min: e.min,
|
|
2789
2789
|
max: e.max,
|
|
@@ -2800,10 +2800,10 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2800
2800
|
_: 1
|
|
2801
2801
|
}));
|
|
2802
2802
|
}
|
|
2803
|
-
}),
|
|
2803
|
+
}), ds = {
|
|
2804
2804
|
key: 0,
|
|
2805
2805
|
class: "admin-widget__hd"
|
|
2806
|
-
},
|
|
2806
|
+
}, cs = { class: "admin-widget__title" }, ms = { class: "admin-markdown-widget" }, fs = /* @__PURE__ */ L({
|
|
2807
2807
|
__name: "MarkdownWidget",
|
|
2808
2808
|
props: {
|
|
2809
2809
|
title: { default: "" },
|
|
@@ -2815,34 +2815,34 @@ const Ga = { class: "admin-page admin-resource-view" }, Ha = { class: "admin-pag
|
|
|
2815
2815
|
class: "admin-widget"
|
|
2816
2816
|
}, {
|
|
2817
2817
|
default: m(() => [
|
|
2818
|
-
e.title ? (s(), c("header",
|
|
2819
|
-
d("h3",
|
|
2818
|
+
e.title ? (s(), c("header", ds, [
|
|
2819
|
+
d("h3", cs, h(e.title), 1)
|
|
2820
2820
|
])) : F("", !0),
|
|
2821
|
-
d("div",
|
|
2821
|
+
d("div", ms, h(e.content), 1)
|
|
2822
2822
|
]),
|
|
2823
2823
|
_: 1
|
|
2824
2824
|
}));
|
|
2825
2825
|
}
|
|
2826
2826
|
});
|
|
2827
|
-
function
|
|
2828
|
-
|
|
2829
|
-
stat:
|
|
2830
|
-
"bar-chart":
|
|
2831
|
-
"donut-chart":
|
|
2832
|
-
"recent-table":
|
|
2833
|
-
heatmap:
|
|
2834
|
-
gauge:
|
|
2835
|
-
markdown:
|
|
2827
|
+
function vs() {
|
|
2828
|
+
Al({
|
|
2829
|
+
stat: Bl,
|
|
2830
|
+
"bar-chart": Wl,
|
|
2831
|
+
"donut-chart": Zl,
|
|
2832
|
+
"recent-table": ns,
|
|
2833
|
+
heatmap: ss,
|
|
2834
|
+
gauge: us,
|
|
2835
|
+
markdown: fs
|
|
2836
2836
|
});
|
|
2837
2837
|
}
|
|
2838
|
-
function
|
|
2838
|
+
function ps(e) {
|
|
2839
2839
|
return e.success === !0;
|
|
2840
2840
|
}
|
|
2841
2841
|
function to(e) {
|
|
2842
2842
|
return e.success === !1;
|
|
2843
2843
|
}
|
|
2844
|
-
function
|
|
2845
|
-
const t =
|
|
2844
|
+
function gs(e) {
|
|
2845
|
+
const t = Qt.create({
|
|
2846
2846
|
baseURL: e.baseURL,
|
|
2847
2847
|
withCredentials: !0,
|
|
2848
2848
|
headers: {
|
|
@@ -2851,15 +2851,15 @@ function ms(e) {
|
|
|
2851
2851
|
}
|
|
2852
2852
|
});
|
|
2853
2853
|
e.csrfToken && (t.defaults.headers.common["X-CSRF-TOKEN"] = e.csrfToken), e.locale && (t.defaults.headers.common["X-Admin-Locale"] = e.locale), t.interceptors.request.use((a) => {
|
|
2854
|
-
const l =
|
|
2854
|
+
const l = hs("XSRF-TOKEN");
|
|
2855
2855
|
return l && a.headers.set("X-XSRF-TOKEN", decodeURIComponent(l)), a;
|
|
2856
2856
|
}), t.interceptors.response.use(
|
|
2857
2857
|
(a) => {
|
|
2858
2858
|
const l = a.data;
|
|
2859
2859
|
if (l && typeof l == "object" && "success" in l) {
|
|
2860
|
-
if (
|
|
2860
|
+
if (ps(l))
|
|
2861
2861
|
return a.data = l.payload, a;
|
|
2862
|
-
throw
|
|
2862
|
+
throw Ye(a.status, l.payload);
|
|
2863
2863
|
}
|
|
2864
2864
|
return a;
|
|
2865
2865
|
},
|
|
@@ -2868,10 +2868,10 @@ function ms(e) {
|
|
|
2868
2868
|
const l = a.response.status, i = a.response.data?.payload ?? {
|
|
2869
2869
|
errorKey: "unknown",
|
|
2870
2870
|
message: a.message
|
|
2871
|
-
}, u =
|
|
2872
|
-
return u instanceof
|
|
2871
|
+
}, u = Ye(l, i);
|
|
2872
|
+
return u instanceof vt && e.onUnauthenticated?.(), Promise.reject(u);
|
|
2873
2873
|
}
|
|
2874
|
-
return Promise.reject(new
|
|
2874
|
+
return Promise.reject(new Pe(a.message));
|
|
2875
2875
|
}
|
|
2876
2876
|
);
|
|
2877
2877
|
const n = (a, l, i) => t[a](l, i).then((u) => u.data), o = (a, l, i, u) => t[a](l, i, u).then((f) => f.data);
|
|
@@ -2887,26 +2887,26 @@ function ms(e) {
|
|
|
2887
2887
|
}
|
|
2888
2888
|
};
|
|
2889
2889
|
}
|
|
2890
|
-
function
|
|
2890
|
+
function hs(e) {
|
|
2891
2891
|
if (typeof document > "u") return null;
|
|
2892
|
-
const t = document.cookie.match(new RegExp("(^|; )" +
|
|
2892
|
+
const t = document.cookie.match(new RegExp("(^|; )" + _s(e) + "=([^;]*)"));
|
|
2893
2893
|
return t ? t[2] : null;
|
|
2894
2894
|
}
|
|
2895
|
-
function
|
|
2895
|
+
function _s(e) {
|
|
2896
2896
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
2897
2897
|
}
|
|
2898
|
-
function
|
|
2898
|
+
function we(e, t) {
|
|
2899
2899
|
const n = e.permissions?.[t];
|
|
2900
2900
|
return typeof n == "string" && n.length > 0 ? [n] : [];
|
|
2901
2901
|
}
|
|
2902
|
-
function
|
|
2902
|
+
function ys(e, t) {
|
|
2903
2903
|
const n = e.permissions?.[t];
|
|
2904
2904
|
return typeof n == "string" && n.length > 0 ? [n] : [];
|
|
2905
2905
|
}
|
|
2906
|
-
function
|
|
2906
|
+
function bs(e) {
|
|
2907
2907
|
return Array.isArray(e.permission) ? e.permission : typeof e.permission == "string" && e.permission.length > 0 ? [e.permission] : [];
|
|
2908
2908
|
}
|
|
2909
|
-
function
|
|
2909
|
+
function ks(e, t) {
|
|
2910
2910
|
const n = e.slug, o = `/r/${n}`;
|
|
2911
2911
|
return [
|
|
2912
2912
|
{
|
|
@@ -2918,8 +2918,12 @@ function hs(e, t) {
|
|
|
2918
2918
|
kind: "resource",
|
|
2919
2919
|
slug: n,
|
|
2920
2920
|
title: e.label,
|
|
2921
|
-
permissions:
|
|
2922
|
-
}
|
|
2921
|
+
permissions: we(e, "view")
|
|
2922
|
+
},
|
|
2923
|
+
// slug передаётся в page-component'ы как prop. Конкретный slug запекаем в
|
|
2924
|
+
// function-mode, чтобы page видел его одинаково и через named-route, и через
|
|
2925
|
+
// path-routing (без params).
|
|
2926
|
+
props: { slug: n }
|
|
2923
2927
|
},
|
|
2924
2928
|
{
|
|
2925
2929
|
path: `${o}/create`,
|
|
@@ -2930,8 +2934,9 @@ function hs(e, t) {
|
|
|
2930
2934
|
kind: "resource",
|
|
2931
2935
|
slug: n,
|
|
2932
2936
|
title: `${e.label}: создать`,
|
|
2933
|
-
permissions:
|
|
2934
|
-
}
|
|
2937
|
+
permissions: we(e, "create")
|
|
2938
|
+
},
|
|
2939
|
+
props: { slug: n }
|
|
2935
2940
|
},
|
|
2936
2941
|
{
|
|
2937
2942
|
path: `${o}/:id/edit`,
|
|
@@ -2942,9 +2947,10 @@ function hs(e, t) {
|
|
|
2942
2947
|
kind: "resource",
|
|
2943
2948
|
slug: n,
|
|
2944
2949
|
title: `${e.label}: редактирование`,
|
|
2945
|
-
permissions:
|
|
2950
|
+
permissions: we(e, "update")
|
|
2946
2951
|
},
|
|
2947
|
-
|
|
2952
|
+
// slug запекаем, id из route-params.
|
|
2953
|
+
props: (a) => ({ slug: n, id: a.params.id })
|
|
2948
2954
|
},
|
|
2949
2955
|
{
|
|
2950
2956
|
path: `${o}/:id`,
|
|
@@ -2955,13 +2961,13 @@ function hs(e, t) {
|
|
|
2955
2961
|
kind: "resource",
|
|
2956
2962
|
slug: n,
|
|
2957
2963
|
title: e.label,
|
|
2958
|
-
permissions:
|
|
2964
|
+
permissions: we(e, "view")
|
|
2959
2965
|
},
|
|
2960
|
-
props:
|
|
2966
|
+
props: (a) => ({ slug: n, id: a.params.id })
|
|
2961
2967
|
}
|
|
2962
2968
|
];
|
|
2963
2969
|
}
|
|
2964
|
-
function
|
|
2970
|
+
function ws(e, t) {
|
|
2965
2971
|
return {
|
|
2966
2972
|
path: `/screens/${e.slug}`,
|
|
2967
2973
|
name: `admin.screen.${e.slug}`,
|
|
@@ -2971,11 +2977,11 @@ function _s(e, t) {
|
|
|
2971
2977
|
kind: "screen",
|
|
2972
2978
|
slug: e.slug,
|
|
2973
2979
|
title: e.name,
|
|
2974
|
-
permissions:
|
|
2980
|
+
permissions: bs(e)
|
|
2975
2981
|
}
|
|
2976
2982
|
};
|
|
2977
2983
|
}
|
|
2978
|
-
function
|
|
2984
|
+
function $s(e, t) {
|
|
2979
2985
|
return {
|
|
2980
2986
|
path: `/settings/${e.slug}`,
|
|
2981
2987
|
name: `admin.settings.${e.slug}`,
|
|
@@ -2985,11 +2991,11 @@ function ys(e, t) {
|
|
|
2985
2991
|
kind: "settings",
|
|
2986
2992
|
slug: e.slug,
|
|
2987
2993
|
title: e.label,
|
|
2988
|
-
permissions:
|
|
2994
|
+
permissions: ys(e, "view")
|
|
2989
2995
|
}
|
|
2990
2996
|
};
|
|
2991
2997
|
}
|
|
2992
|
-
function
|
|
2998
|
+
function xs(e, t) {
|
|
2993
2999
|
if (typeof e.slug != "string" || e.slug.length === 0) return null;
|
|
2994
3000
|
const n = e.permission, o = Array.isArray(n) ? n : typeof n == "string" && n.length > 0 ? [n] : [];
|
|
2995
3001
|
return {
|
|
@@ -3005,27 +3011,27 @@ function bs(e, t) {
|
|
|
3005
3011
|
}
|
|
3006
3012
|
};
|
|
3007
3013
|
}
|
|
3008
|
-
function
|
|
3014
|
+
function Cs(e, t) {
|
|
3009
3015
|
if (e === null) return [];
|
|
3010
3016
|
const n = [];
|
|
3011
3017
|
for (const o of e.resources)
|
|
3012
|
-
n.push(...
|
|
3018
|
+
n.push(...ks(o, t));
|
|
3013
3019
|
for (const o of e.screens)
|
|
3014
|
-
n.push(
|
|
3020
|
+
n.push(ws(o, t));
|
|
3015
3021
|
for (const o of e.settings)
|
|
3016
|
-
n.push(
|
|
3022
|
+
n.push($s(o, t));
|
|
3017
3023
|
for (const o of e.dashboards) {
|
|
3018
|
-
const a =
|
|
3024
|
+
const a = xs(o, t);
|
|
3019
3025
|
a && n.push(a);
|
|
3020
3026
|
}
|
|
3021
3027
|
return n;
|
|
3022
3028
|
}
|
|
3023
|
-
function
|
|
3029
|
+
function Ss(e = {}) {
|
|
3024
3030
|
const t = e.loginRouteName ?? "admin.login", n = e.forbiddenRouteName ?? "admin.forbidden", o = e.redirectQueryKey ?? "redirect";
|
|
3025
3031
|
return (a) => {
|
|
3026
3032
|
if (a.name === t)
|
|
3027
3033
|
return !0;
|
|
3028
|
-
const l =
|
|
3034
|
+
const l = J();
|
|
3029
3035
|
if (a.meta?.requiresAuth === !0 && !l.isAuthenticated)
|
|
3030
3036
|
return {
|
|
3031
3037
|
name: t,
|
|
@@ -3040,7 +3046,7 @@ function ws(e = {}) {
|
|
|
3040
3046
|
return Array.isArray(u) && u.length > 0 && !l.hasAnyPermission(u) ? { name: n } : !0;
|
|
3041
3047
|
};
|
|
3042
3048
|
}
|
|
3043
|
-
function
|
|
3049
|
+
function As(e = {}) {
|
|
3044
3050
|
const t = e.template, n = e.brand ?? "", o = e.fallback ?? "";
|
|
3045
3051
|
return (a) => {
|
|
3046
3052
|
if (typeof document > "u") return;
|
|
@@ -3049,17 +3055,17 @@ function $s(e = {}) {
|
|
|
3049
3055
|
t ? i = t.replace("{title}", l).replace("{brand}", n) : l && n ? i = `${l} · ${n}` : i = l || n, document.title = i;
|
|
3050
3056
|
};
|
|
3051
3057
|
}
|
|
3052
|
-
const
|
|
3058
|
+
const Rs = [
|
|
3053
3059
|
"admin.resource.",
|
|
3054
3060
|
"admin.screen.",
|
|
3055
3061
|
"admin.settings.",
|
|
3056
3062
|
"admin.dashboard."
|
|
3057
3063
|
];
|
|
3058
|
-
function
|
|
3059
|
-
return typeof e != "string" ? !1 :
|
|
3064
|
+
function Us(e) {
|
|
3065
|
+
return typeof e != "string" ? !1 : Rs.some((t) => e.startsWith(t));
|
|
3060
3066
|
}
|
|
3061
|
-
function
|
|
3062
|
-
const t = e.base ?? "/admin", n = e.history ??
|
|
3067
|
+
function Es(e) {
|
|
3068
|
+
const t = e.base ?? "/admin", n = e.history ?? it(t), o = [
|
|
3063
3069
|
{
|
|
3064
3070
|
path: "/login",
|
|
3065
3071
|
name: "admin.login",
|
|
@@ -3095,22 +3101,22 @@ function Ss(e) {
|
|
|
3095
3101
|
name: "admin.notFound",
|
|
3096
3102
|
component: e.components.notFound,
|
|
3097
3103
|
meta: { kind: "system", title: "404" }
|
|
3098
|
-
}, l =
|
|
3104
|
+
}, l = Et({
|
|
3099
3105
|
history: n,
|
|
3100
3106
|
routes: [...o, ...e.extraRoutes ?? [], a]
|
|
3101
3107
|
});
|
|
3102
|
-
return l.beforeEach(
|
|
3108
|
+
return l.beforeEach(Ss(e.authGuard)), l.afterEach(As(e.titleGuard)), l.replaceManifestRoutes = (i) => {
|
|
3103
3109
|
const u = l.getRoutes();
|
|
3104
3110
|
for (const v of u)
|
|
3105
|
-
|
|
3111
|
+
Us(v.name) && l.removeRoute(v.name);
|
|
3106
3112
|
l.hasRoute("admin.notFound") && l.removeRoute("admin.notFound");
|
|
3107
|
-
const f =
|
|
3113
|
+
const f = Cs(i, e.components);
|
|
3108
3114
|
for (const v of f)
|
|
3109
3115
|
l.addRoute(v);
|
|
3110
3116
|
l.addRoute(a);
|
|
3111
3117
|
}, l;
|
|
3112
3118
|
}
|
|
3113
|
-
const
|
|
3119
|
+
const X = /* @__PURE__ */ L({
|
|
3114
3120
|
__name: "TextField",
|
|
3115
3121
|
props: {
|
|
3116
3122
|
name: {},
|
|
@@ -3124,11 +3130,11 @@ const se = /* @__PURE__ */ L({
|
|
|
3124
3130
|
autocomplete: { default: null }
|
|
3125
3131
|
},
|
|
3126
3132
|
setup(e) {
|
|
3127
|
-
const t = e, n =
|
|
3133
|
+
const t = e, n = de(), o = p(() => n.getField(t.name) ?? ""), a = p(() => n.errors[t.name]?.[0]);
|
|
3128
3134
|
function l(i) {
|
|
3129
3135
|
n.setField(t.name, i);
|
|
3130
3136
|
}
|
|
3131
|
-
return (i, u) => (s(), w(r(
|
|
3137
|
+
return (i, u) => (s(), w(r(re), {
|
|
3132
3138
|
"model-value": o.value,
|
|
3133
3139
|
type: e.inputType,
|
|
3134
3140
|
label: e.label ?? void 0,
|
|
@@ -3143,7 +3149,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3143
3149
|
"onUpdate:modelValue": l
|
|
3144
3150
|
}, null, 8, ["model-value", "type", "label", "hint", "error", "placeholder", "required", "disabled", "readonly", "name", "autocomplete"]));
|
|
3145
3151
|
}
|
|
3146
|
-
}),
|
|
3152
|
+
}), $e = /* @__PURE__ */ L({
|
|
3147
3153
|
__name: "TextAreaField",
|
|
3148
3154
|
props: {
|
|
3149
3155
|
name: {},
|
|
@@ -3156,11 +3162,11 @@ const se = /* @__PURE__ */ L({
|
|
|
3156
3162
|
readonly: { type: Boolean, default: !1 }
|
|
3157
3163
|
},
|
|
3158
3164
|
setup(e) {
|
|
3159
|
-
const t = e, n =
|
|
3165
|
+
const t = e, n = de(), o = p(() => n.getField(t.name) ?? ""), a = p(() => n.errors[t.name]?.[0]);
|
|
3160
3166
|
function l(i) {
|
|
3161
3167
|
n.setField(t.name, i);
|
|
3162
3168
|
}
|
|
3163
|
-
return (i, u) => (s(), w(r(
|
|
3169
|
+
return (i, u) => (s(), w(r(ye), {
|
|
3164
3170
|
label: e.label ?? void 0,
|
|
3165
3171
|
hint: e.help ?? void 0,
|
|
3166
3172
|
error: a.value,
|
|
@@ -3168,7 +3174,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3168
3174
|
disabled: e.disabled
|
|
3169
3175
|
}, {
|
|
3170
3176
|
default: m(() => [
|
|
3171
|
-
x(r(
|
|
3177
|
+
x(r(qt), {
|
|
3172
3178
|
"model-value": o.value,
|
|
3173
3179
|
rows: e.rows,
|
|
3174
3180
|
placeholder: e.placeholder ?? void 0,
|
|
@@ -3181,7 +3187,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3181
3187
|
_: 1
|
|
3182
3188
|
}, 8, ["label", "hint", "error", "required", "disabled"]));
|
|
3183
3189
|
}
|
|
3184
|
-
}),
|
|
3190
|
+
}), Ve = /* @__PURE__ */ L({
|
|
3185
3191
|
__name: "NumberField",
|
|
3186
3192
|
props: {
|
|
3187
3193
|
name: {},
|
|
@@ -3196,14 +3202,14 @@ const se = /* @__PURE__ */ L({
|
|
|
3196
3202
|
readonly: { type: Boolean, default: !1 }
|
|
3197
3203
|
},
|
|
3198
3204
|
setup(e) {
|
|
3199
|
-
const t = e, n =
|
|
3205
|
+
const t = e, n = de(), o = p(() => {
|
|
3200
3206
|
const i = n.getField(t.name);
|
|
3201
3207
|
return i == null || i === "" ? null : typeof i == "number" ? i : Number(i);
|
|
3202
3208
|
}), a = p(() => n.errors[t.name]?.[0]);
|
|
3203
3209
|
function l(i) {
|
|
3204
3210
|
n.setField(t.name, i);
|
|
3205
3211
|
}
|
|
3206
|
-
return (i, u) => (s(), w(r(
|
|
3212
|
+
return (i, u) => (s(), w(r(ye), {
|
|
3207
3213
|
label: e.label ?? void 0,
|
|
3208
3214
|
hint: e.help ?? void 0,
|
|
3209
3215
|
error: a.value,
|
|
@@ -3211,7 +3217,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3211
3217
|
disabled: e.disabled
|
|
3212
3218
|
}, {
|
|
3213
3219
|
default: m(() => [
|
|
3214
|
-
x(r(
|
|
3220
|
+
x(r(Dt), {
|
|
3215
3221
|
"model-value": o.value,
|
|
3216
3222
|
min: e.min ?? void 0,
|
|
3217
3223
|
max: e.max ?? void 0,
|
|
@@ -3226,7 +3232,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3226
3232
|
_: 1
|
|
3227
3233
|
}, 8, ["label", "hint", "error", "required", "disabled"]));
|
|
3228
3234
|
}
|
|
3229
|
-
}),
|
|
3235
|
+
}), ee = /* @__PURE__ */ L({
|
|
3230
3236
|
__name: "SelectField",
|
|
3231
3237
|
props: {
|
|
3232
3238
|
name: {},
|
|
@@ -3241,14 +3247,14 @@ const se = /* @__PURE__ */ L({
|
|
|
3241
3247
|
size: { default: "md" }
|
|
3242
3248
|
},
|
|
3243
3249
|
setup(e) {
|
|
3244
|
-
const t = e, n =
|
|
3250
|
+
const t = e, n = de(), o = p(() => {
|
|
3245
3251
|
const i = n.getField(t.name);
|
|
3246
3252
|
return i == null || i === "" ? null : i;
|
|
3247
3253
|
}), a = p(() => n.errors[t.name]?.[0]);
|
|
3248
3254
|
function l(i) {
|
|
3249
3255
|
n.setField(t.name, i);
|
|
3250
3256
|
}
|
|
3251
|
-
return (i, u) => (s(), w(r(
|
|
3257
|
+
return (i, u) => (s(), w(r(ye), {
|
|
3252
3258
|
label: e.label ?? void 0,
|
|
3253
3259
|
hint: e.help ?? void 0,
|
|
3254
3260
|
error: a.value,
|
|
@@ -3256,7 +3262,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3256
3262
|
disabled: e.disabled
|
|
3257
3263
|
}, {
|
|
3258
3264
|
default: m(() => [
|
|
3259
|
-
x(r(
|
|
3265
|
+
x(r(Ae), {
|
|
3260
3266
|
"model-value": o.value,
|
|
3261
3267
|
options: e.options,
|
|
3262
3268
|
placeholder: e.placeholder ?? void 0,
|
|
@@ -3270,7 +3276,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3270
3276
|
_: 1
|
|
3271
3277
|
}, 8, ["label", "hint", "error", "required", "disabled"]));
|
|
3272
3278
|
}
|
|
3273
|
-
}),
|
|
3279
|
+
}), ze = /* @__PURE__ */ L({
|
|
3274
3280
|
__name: "CheckboxField",
|
|
3275
3281
|
props: {
|
|
3276
3282
|
name: {},
|
|
@@ -3281,11 +3287,11 @@ const se = /* @__PURE__ */ L({
|
|
|
3281
3287
|
disabled: { type: Boolean, default: !1 }
|
|
3282
3288
|
},
|
|
3283
3289
|
setup(e) {
|
|
3284
|
-
const t = e, n =
|
|
3290
|
+
const t = e, n = de(), o = p(() => !!n.getField(t.name)), a = p(() => n.errors[t.name]?.[0]);
|
|
3285
3291
|
function l(i) {
|
|
3286
3292
|
n.setField(t.name, i);
|
|
3287
3293
|
}
|
|
3288
|
-
return (i, u) => (s(), w(r(
|
|
3294
|
+
return (i, u) => (s(), w(r(ye), {
|
|
3289
3295
|
label: e.label ?? void 0,
|
|
3290
3296
|
hint: e.help ?? void 0,
|
|
3291
3297
|
error: a.value,
|
|
@@ -3293,7 +3299,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3293
3299
|
disabled: e.disabled
|
|
3294
3300
|
}, {
|
|
3295
3301
|
default: m(() => [
|
|
3296
|
-
x(r(
|
|
3302
|
+
x(r(Se), {
|
|
3297
3303
|
"model-value": o.value,
|
|
3298
3304
|
disabled: e.disabled,
|
|
3299
3305
|
name: e.name,
|
|
@@ -3310,7 +3316,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3310
3316
|
_: 1
|
|
3311
3317
|
}, 8, ["label", "hint", "error", "required", "disabled"]));
|
|
3312
3318
|
}
|
|
3313
|
-
}),
|
|
3319
|
+
}), oe = /* @__PURE__ */ L({
|
|
3314
3320
|
__name: "DateField",
|
|
3315
3321
|
props: {
|
|
3316
3322
|
name: {},
|
|
@@ -3323,14 +3329,14 @@ const se = /* @__PURE__ */ L({
|
|
|
3323
3329
|
disabled: { type: Boolean, default: !1 }
|
|
3324
3330
|
},
|
|
3325
3331
|
setup(e) {
|
|
3326
|
-
const t = e, n =
|
|
3332
|
+
const t = e, n = de(), o = p(() => {
|
|
3327
3333
|
const i = n.getField(t.name);
|
|
3328
3334
|
return i == null || i === "" ? null : String(i);
|
|
3329
3335
|
}), a = p(() => n.errors[t.name]?.[0]);
|
|
3330
3336
|
function l(i) {
|
|
3331
3337
|
n.setField(t.name, i);
|
|
3332
3338
|
}
|
|
3333
|
-
return (i, u) => (s(), w(r(
|
|
3339
|
+
return (i, u) => (s(), w(r(ye), {
|
|
3334
3340
|
label: e.label ?? void 0,
|
|
3335
3341
|
hint: e.help ?? void 0,
|
|
3336
3342
|
error: a.value,
|
|
@@ -3338,7 +3344,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3338
3344
|
disabled: e.disabled
|
|
3339
3345
|
}, {
|
|
3340
3346
|
default: m(() => [
|
|
3341
|
-
x(r(
|
|
3347
|
+
x(r(Ot), {
|
|
3342
3348
|
"model-value": o.value,
|
|
3343
3349
|
min: e.min ?? void 0,
|
|
3344
3350
|
max: e.max ?? void 0,
|
|
@@ -3350,20 +3356,20 @@ const se = /* @__PURE__ */ L({
|
|
|
3350
3356
|
_: 1
|
|
3351
3357
|
}, 8, ["label", "hint", "error", "required", "disabled"]));
|
|
3352
3358
|
}
|
|
3353
|
-
}),
|
|
3359
|
+
}), nt = /* @__PURE__ */ L({
|
|
3354
3360
|
__name: "RowsLayout",
|
|
3355
3361
|
props: {
|
|
3356
3362
|
items: {},
|
|
3357
3363
|
gap: { default: "var(--uid-space-md)" }
|
|
3358
3364
|
},
|
|
3359
3365
|
setup(e) {
|
|
3360
|
-
return (t, n) => (s(), w(r(
|
|
3366
|
+
return (t, n) => (s(), w(r(Wt), {
|
|
3361
3367
|
direction: "column",
|
|
3362
3368
|
gap: e.gap,
|
|
3363
3369
|
align: "stretch"
|
|
3364
3370
|
}, {
|
|
3365
3371
|
default: m(() => [
|
|
3366
|
-
(s(!0), c(T, null, I(e.items, (o, a) => (s(), w(
|
|
3372
|
+
(s(!0), c(T, null, I(e.items, (o, a) => (s(), w(be, {
|
|
3367
3373
|
key: a,
|
|
3368
3374
|
node: o
|
|
3369
3375
|
}, null, 8, ["node"]))), 128))
|
|
@@ -3384,7 +3390,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3384
3390
|
const l = a.span;
|
|
3385
3391
|
return typeof l == "number" && l > 0 ? Math.min(l, t.cols) : n.value;
|
|
3386
3392
|
}
|
|
3387
|
-
return (a, l) => (s(), w(r(
|
|
3393
|
+
return (a, l) => (s(), w(r(jt), {
|
|
3388
3394
|
cols: e.cols,
|
|
3389
3395
|
gap: e.gap
|
|
3390
3396
|
}, {
|
|
@@ -3392,9 +3398,9 @@ const se = /* @__PURE__ */ L({
|
|
|
3392
3398
|
(s(!0), c(T, null, I(e.items, (i, u) => (s(), c("div", {
|
|
3393
3399
|
key: u,
|
|
3394
3400
|
class: "admin-columns__item",
|
|
3395
|
-
style:
|
|
3401
|
+
style: Fe({ gridColumn: `span ${o(i)} / span ${o(i)}` })
|
|
3396
3402
|
}, [
|
|
3397
|
-
x(
|
|
3403
|
+
x(be, { node: i }, null, 8, ["node"])
|
|
3398
3404
|
], 4))), 128))
|
|
3399
3405
|
]),
|
|
3400
3406
|
_: 1
|
|
@@ -3409,7 +3415,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3409
3415
|
}, Ts = {
|
|
3410
3416
|
key: 1,
|
|
3411
3417
|
class: "admin-section__description"
|
|
3412
|
-
}, Ms = { class: "admin-section__body" },
|
|
3418
|
+
}, Ms = { class: "admin-section__body" }, ge = /* @__PURE__ */ L({
|
|
3413
3419
|
__name: "SectionLayout",
|
|
3414
3420
|
props: {
|
|
3415
3421
|
items: {},
|
|
@@ -3427,7 +3433,7 @@ const se = /* @__PURE__ */ L({
|
|
|
3427
3433
|
e.description ? (s(), c("p", Ts, h(e.description), 1)) : F("", !0)
|
|
3428
3434
|
])) : F("", !0),
|
|
3429
3435
|
d("div", Ms, [
|
|
3430
|
-
(s(!0), c(T, null, I(e.items, (o, a) => (s(), w(
|
|
3436
|
+
(s(!0), c(T, null, I(e.items, (o, a) => (s(), w(be, {
|
|
3431
3437
|
key: a,
|
|
3432
3438
|
node: o
|
|
3433
3439
|
}, null, 8, ["node"]))), 128))
|
|
@@ -3452,12 +3458,12 @@ const se = /* @__PURE__ */ L({
|
|
|
3452
3458
|
function i(u) {
|
|
3453
3459
|
l.value = u, o("update:active", u);
|
|
3454
3460
|
}
|
|
3455
|
-
return (u, f) => (s(), w(r(
|
|
3461
|
+
return (u, f) => (s(), w(r(ut), {
|
|
3456
3462
|
"model-value": l.value,
|
|
3457
3463
|
"onUpdate:modelValue": i
|
|
3458
3464
|
}, {
|
|
3459
3465
|
list: m(() => [
|
|
3460
|
-
(s(!0), c(T, null, I(e.items, (v, b) => (s(), w(r(
|
|
3466
|
+
(s(!0), c(T, null, I(e.items, (v, b) => (s(), w(r(Ce), {
|
|
3461
3467
|
key: a(v, b),
|
|
3462
3468
|
value: a(v, b)
|
|
3463
3469
|
}, {
|
|
@@ -3468,13 +3474,13 @@ const se = /* @__PURE__ */ L({
|
|
|
3468
3474
|
}, 1032, ["value"]))), 128))
|
|
3469
3475
|
]),
|
|
3470
3476
|
default: m(() => [
|
|
3471
|
-
(s(!0), c(T, null, I(e.items, (v, b) => (s(), w(r(
|
|
3477
|
+
(s(!0), c(T, null, I(e.items, (v, b) => (s(), w(r(dt), {
|
|
3472
3478
|
key: `panel-${a(v, b)}`,
|
|
3473
3479
|
value: a(v, b)
|
|
3474
3480
|
}, {
|
|
3475
3481
|
default: m(() => [
|
|
3476
|
-
(s(!0), c(T, null, I(v.items, (S,
|
|
3477
|
-
key:
|
|
3482
|
+
(s(!0), c(T, null, I(v.items, (S, A) => (s(), w(be, {
|
|
3483
|
+
key: A,
|
|
3478
3484
|
node: S
|
|
3479
3485
|
}, null, 8, ["node"]))), 128))
|
|
3480
3486
|
]),
|
|
@@ -3486,29 +3492,60 @@ const se = /* @__PURE__ */ L({
|
|
|
3486
3492
|
}
|
|
3487
3493
|
});
|
|
3488
3494
|
function Is() {
|
|
3489
|
-
|
|
3495
|
+
Ua({
|
|
3490
3496
|
fields: {
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3497
|
+
// Backend Field-классы из dskripchenko/laravel-admin отдают эти fieldType()
|
|
3498
|
+
// строки. Соответствие см. core/src/Field/{Input,TextArea,Select,...}.php.
|
|
3499
|
+
input: X,
|
|
3500
|
+
text: X,
|
|
3501
|
+
email: X,
|
|
3502
|
+
url: X,
|
|
3503
|
+
password: X,
|
|
3504
|
+
tel: X,
|
|
3505
|
+
search: X,
|
|
3506
|
+
slug: X,
|
|
3507
|
+
hidden: X,
|
|
3508
|
+
label: X,
|
|
3509
|
+
textarea: $e,
|
|
3510
|
+
// Fallback для wysiwyg/markdown/code — обычный TextAreaField.
|
|
3511
|
+
// Реальный rich-editor host подключает через subpath:
|
|
3512
|
+
// import { QuillField } from '@dskripchenko/laravel-admin/quill'
|
|
3513
|
+
// registerField('wysiwyg', QuillField)
|
|
3514
|
+
wysiwyg: $e,
|
|
3515
|
+
markdown: $e,
|
|
3516
|
+
code: $e,
|
|
3517
|
+
number: Ve,
|
|
3518
|
+
slider: Ve,
|
|
3519
|
+
rating: Ve,
|
|
3520
|
+
select: ee,
|
|
3521
|
+
combobox: ee,
|
|
3522
|
+
radio: ee,
|
|
3523
|
+
tags: ee,
|
|
3524
|
+
"morph-switcher": ee,
|
|
3525
|
+
relation: ee,
|
|
3526
|
+
cascader: ee,
|
|
3527
|
+
"tree-select": ee,
|
|
3528
|
+
checkbox: ze,
|
|
3529
|
+
switcher: ze,
|
|
3530
|
+
boolean: ze,
|
|
3531
|
+
date: oe,
|
|
3532
|
+
datetime: oe,
|
|
3533
|
+
datepicker: oe,
|
|
3534
|
+
"date-range": oe,
|
|
3535
|
+
time: oe,
|
|
3536
|
+
"time-picker": oe,
|
|
3537
|
+
"color-picker": X
|
|
3505
3538
|
},
|
|
3506
3539
|
layouts: {
|
|
3507
|
-
rows:
|
|
3540
|
+
rows: nt,
|
|
3508
3541
|
columns: Fs,
|
|
3509
|
-
section:
|
|
3510
|
-
block:
|
|
3511
|
-
tabs: Ns
|
|
3542
|
+
section: ge,
|
|
3543
|
+
block: ge,
|
|
3544
|
+
tabs: Ns,
|
|
3545
|
+
accordion: ge,
|
|
3546
|
+
group: nt,
|
|
3547
|
+
step: ge,
|
|
3548
|
+
wizard: ge
|
|
3512
3549
|
}
|
|
3513
3550
|
});
|
|
3514
3551
|
}
|
|
@@ -3522,12 +3559,12 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3522
3559
|
mono: { type: Boolean, default: !1 }
|
|
3523
3560
|
},
|
|
3524
3561
|
setup(e) {
|
|
3525
|
-
const t = e, n =
|
|
3562
|
+
const t = e, n = Me(), o = p(() => {
|
|
3526
3563
|
let a = t.value;
|
|
3527
3564
|
return a === void 0 && n && t.name && (a = n[t.name]), a == null || a === "" ? t.placeholder : String(a);
|
|
3528
3565
|
});
|
|
3529
3566
|
return (a, l) => (s(), c("span", {
|
|
3530
|
-
class:
|
|
3567
|
+
class: Y(["admin-infolist-text", e.mono ? "admin-infolist-text--mono" : ""])
|
|
3531
3568
|
}, h(o.value), 3));
|
|
3532
3569
|
}
|
|
3533
3570
|
}), Vs = {
|
|
@@ -3543,11 +3580,11 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3543
3580
|
variant: { default: void 0 }
|
|
3544
3581
|
},
|
|
3545
3582
|
setup(e) {
|
|
3546
|
-
const t = e, n =
|
|
3583
|
+
const t = e, n = Me(), o = p(() => {
|
|
3547
3584
|
let l = t.value;
|
|
3548
3585
|
return l === void 0 && n && t.name && (l = n[t.name]), l == null ? "" : String(l);
|
|
3549
3586
|
}), a = p(() => t.variant ? t.variant : t.map[o.value] ?? "default");
|
|
3550
|
-
return (l, i) => o.value ? (s(), w(r(
|
|
3587
|
+
return (l, i) => o.value ? (s(), w(r(Ke), {
|
|
3551
3588
|
key: 0,
|
|
3552
3589
|
variant: a.value
|
|
3553
3590
|
}, {
|
|
@@ -3569,12 +3606,12 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3569
3606
|
falseLabel: { default: "" }
|
|
3570
3607
|
},
|
|
3571
3608
|
setup(e) {
|
|
3572
|
-
const t = e, n =
|
|
3609
|
+
const t = e, n = Me(), o = p(() => {
|
|
3573
3610
|
let i = t.value;
|
|
3574
3611
|
return i === void 0 && n && t.name && (i = n[t.name]), !!i;
|
|
3575
3612
|
}), a = p(() => o.value ? t.trueLabel : t.falseLabel), l = p(() => o.value ? t.trueIcon : t.falseIcon);
|
|
3576
3613
|
return (i, u) => (s(), c("span", {
|
|
3577
|
-
class:
|
|
3614
|
+
class: Y(["admin-infolist-icon", o.value ? "admin-infolist-icon--on" : "admin-infolist-icon--off"])
|
|
3578
3615
|
}, [
|
|
3579
3616
|
d("span", {
|
|
3580
3617
|
class: "admin-infolist-icon__glyph",
|
|
@@ -3586,7 +3623,7 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3586
3623
|
}), Ws = {
|
|
3587
3624
|
key: 1,
|
|
3588
3625
|
class: "admin-infolist-text"
|
|
3589
|
-
},
|
|
3626
|
+
}, at = /* @__PURE__ */ L({
|
|
3590
3627
|
__name: "KeyValueEntry",
|
|
3591
3628
|
props: {
|
|
3592
3629
|
name: { default: "" },
|
|
@@ -3594,20 +3631,20 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3594
3631
|
value: { default: void 0 }
|
|
3595
3632
|
},
|
|
3596
3633
|
setup(e) {
|
|
3597
|
-
const t = e, n =
|
|
3634
|
+
const t = e, n = Me(), o = p(() => {
|
|
3598
3635
|
let l = t.value;
|
|
3599
3636
|
return l === void 0 && n && t.name && (l = n[t.name]), l == null ? [] : typeof l != "object" ? [] : Object.entries(l);
|
|
3600
3637
|
});
|
|
3601
3638
|
function a(l) {
|
|
3602
3639
|
return l == null ? "—" : typeof l == "object" ? JSON.stringify(l) : String(l);
|
|
3603
3640
|
}
|
|
3604
|
-
return (l, i) => o.value.length > 0 ? (s(), w(r(
|
|
3641
|
+
return (l, i) => o.value.length > 0 ? (s(), w(r(Kt), {
|
|
3605
3642
|
key: 0,
|
|
3606
3643
|
direction: "vertical",
|
|
3607
3644
|
columns: 1
|
|
3608
3645
|
}, {
|
|
3609
3646
|
default: m(() => [
|
|
3610
|
-
(s(!0), c(T, null, I(o.value, ([u, f]) => (s(), w(r(
|
|
3647
|
+
(s(!0), c(T, null, I(o.value, ([u, f]) => (s(), w(r(Gt), {
|
|
3611
3648
|
key: u,
|
|
3612
3649
|
label: u
|
|
3613
3650
|
}, {
|
|
@@ -3622,55 +3659,57 @@ const Bs = /* @__PURE__ */ L({
|
|
|
3622
3659
|
}
|
|
3623
3660
|
});
|
|
3624
3661
|
function js() {
|
|
3625
|
-
|
|
3662
|
+
Ia({
|
|
3626
3663
|
text: Bs,
|
|
3627
3664
|
badge: zs,
|
|
3628
3665
|
icon: Os,
|
|
3629
|
-
keyvalue:
|
|
3630
|
-
"key-value":
|
|
3666
|
+
keyvalue: at,
|
|
3667
|
+
"key-value": at
|
|
3631
3668
|
});
|
|
3632
3669
|
}
|
|
3633
3670
|
function no(e, t = {}) {
|
|
3634
|
-
const n = t.pages ?? {}, o = t.base ?? Ks(e.baseUrl) ?? "/admin", a =
|
|
3671
|
+
const n = t.pages ?? {}, o = t.base ?? Ks(e.baseUrl) ?? "/admin", a = gs({
|
|
3635
3672
|
baseURL: e.apiUrl,
|
|
3636
3673
|
csrfToken: e.csrf
|
|
3637
3674
|
});
|
|
3638
|
-
|
|
3639
|
-
const l =
|
|
3640
|
-
l.use(i),
|
|
3641
|
-
const u =
|
|
3675
|
+
Zt(a);
|
|
3676
|
+
const l = St(Sn), i = Rt();
|
|
3677
|
+
l.use(i), J().hydrate(e), He().hydrate(e), Ge().hydrate(e), Xe().hydrate(e), Is(), vs(), js();
|
|
3678
|
+
const u = Es({
|
|
3642
3679
|
base: o,
|
|
3643
|
-
history: t.router?.history ??
|
|
3680
|
+
history: t.router?.history ?? it(o),
|
|
3644
3681
|
components: {
|
|
3645
|
-
login: n.login ??
|
|
3646
|
-
home: n.home ??
|
|
3647
|
-
forbidden: n.forbidden ??
|
|
3648
|
-
notFound: n.notFound ??
|
|
3649
|
-
profile: n.profile ??
|
|
3650
|
-
resourceIndex: n.resourceIndex ??
|
|
3651
|
-
resourceCreate: n.resourceCreate ??
|
|
3652
|
-
resourceEdit: n.resourceEdit ??
|
|
3653
|
-
resourceView: n.resourceView ??
|
|
3654
|
-
dashboard: n.dashboard ??
|
|
3655
|
-
settings: n.settings ??
|
|
3656
|
-
screen: n.screen ??
|
|
3682
|
+
login: n.login ?? da,
|
|
3683
|
+
home: n.home ?? Tn,
|
|
3684
|
+
forbidden: n.forbidden ?? Nn,
|
|
3685
|
+
notFound: n.notFound ?? Bn,
|
|
3686
|
+
profile: n.profile ?? Cl,
|
|
3687
|
+
resourceIndex: n.resourceIndex ?? Ra,
|
|
3688
|
+
resourceCreate: n.resourceCreate ?? et,
|
|
3689
|
+
resourceEdit: n.resourceEdit ?? et,
|
|
3690
|
+
resourceView: n.resourceView ?? al,
|
|
3691
|
+
dashboard: n.dashboard ?? Il,
|
|
3692
|
+
settings: n.settings ?? On,
|
|
3693
|
+
screen: n.screen ?? Gn
|
|
3657
3694
|
},
|
|
3658
3695
|
extraRoutes: t.router?.extraRoutes,
|
|
3659
3696
|
authGuard: t.router?.authGuard,
|
|
3660
3697
|
titleGuard: t.router?.titleGuard
|
|
3661
3698
|
});
|
|
3662
3699
|
if (l.use(u), !t.skipManifestLoad) {
|
|
3663
|
-
const f =
|
|
3700
|
+
const f = se(), v = J(), b = () => {
|
|
3664
3701
|
f.load().then((S) => {
|
|
3665
3702
|
u.replaceManifestRoutes(S);
|
|
3703
|
+
const A = u.currentRoute.value;
|
|
3704
|
+
A.name === "admin.notFound" && A.fullPath !== "/" && u.replace(A.fullPath);
|
|
3666
3705
|
}).catch((S) => {
|
|
3667
3706
|
typeof console < "u" && console.error("[laravel-admin] manifest load failed:", S);
|
|
3668
3707
|
});
|
|
3669
3708
|
};
|
|
3670
|
-
v.isAuthenticated && b(),
|
|
3709
|
+
v.isAuthenticated && b(), te(
|
|
3671
3710
|
() => v.user,
|
|
3672
|
-
(S,
|
|
3673
|
-
S && !
|
|
3711
|
+
(S, A) => {
|
|
3712
|
+
S && !A && b();
|
|
3674
3713
|
}
|
|
3675
3714
|
);
|
|
3676
3715
|
}
|
|
@@ -3693,7 +3732,7 @@ async function ao(e = {}) {
|
|
|
3693
3732
|
const n = e.xhrUrl ?? "/system/bootstrap";
|
|
3694
3733
|
return await e.client.get(n);
|
|
3695
3734
|
} catch (n) {
|
|
3696
|
-
if (n instanceof
|
|
3735
|
+
if (n instanceof Pe)
|
|
3697
3736
|
return null;
|
|
3698
3737
|
throw n;
|
|
3699
3738
|
}
|
|
@@ -3730,11 +3769,11 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3730
3769
|
},
|
|
3731
3770
|
emits: ["update:open", "select-item"],
|
|
3732
3771
|
setup(e, { emit: t }) {
|
|
3733
|
-
const n = e, o = t, a =
|
|
3772
|
+
const n = e, o = t, a = Xe();
|
|
3734
3773
|
function l(g) {
|
|
3735
3774
|
o("update:open", g);
|
|
3736
3775
|
}
|
|
3737
|
-
|
|
3776
|
+
te(
|
|
3738
3777
|
() => n.open,
|
|
3739
3778
|
async (g) => {
|
|
3740
3779
|
g && await a.load(a.lastFilter ?? "all", 1).catch(() => {
|
|
@@ -3763,10 +3802,10 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3763
3802
|
const U = g.data.level;
|
|
3764
3803
|
return U === "success" || U === "warning" || U === "danger" ? U : "info";
|
|
3765
3804
|
}
|
|
3766
|
-
function
|
|
3805
|
+
function A(g) {
|
|
3767
3806
|
return g.data.title ?? "—";
|
|
3768
3807
|
}
|
|
3769
|
-
function
|
|
3808
|
+
function R(g) {
|
|
3770
3809
|
return g.data.body ?? "";
|
|
3771
3810
|
}
|
|
3772
3811
|
function _(g) {
|
|
@@ -3779,7 +3818,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3779
3818
|
const $ = Math.floor(y / 24);
|
|
3780
3819
|
return $ < 7 ? `${$} д назад` : U.toLocaleDateString("ru-RU");
|
|
3781
3820
|
}
|
|
3782
|
-
return (g, U) => (s(), w(r(
|
|
3821
|
+
return (g, U) => (s(), w(r(Ht), {
|
|
3783
3822
|
"model-value": e.open,
|
|
3784
3823
|
side: "right",
|
|
3785
3824
|
width: "400px",
|
|
@@ -3806,18 +3845,18 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3806
3845
|
])
|
|
3807
3846
|
]),
|
|
3808
3847
|
default: m(() => [
|
|
3809
|
-
x(r(
|
|
3848
|
+
x(r(ut), {
|
|
3810
3849
|
"model-value": i.value,
|
|
3811
3850
|
"onUpdate:modelValue": u
|
|
3812
3851
|
}, {
|
|
3813
3852
|
list: m(() => [
|
|
3814
|
-
x(r(
|
|
3853
|
+
x(r(Ce), { value: "all" }, {
|
|
3815
3854
|
default: m(() => [...U[2] || (U[2] = [
|
|
3816
3855
|
C("Все", -1)
|
|
3817
3856
|
])]),
|
|
3818
3857
|
_: 1
|
|
3819
3858
|
}),
|
|
3820
|
-
x(r(
|
|
3859
|
+
x(r(Ce), { value: "unread" }, {
|
|
3821
3860
|
default: m(() => [
|
|
3822
3861
|
U[3] || (U[3] = C(" Непрочитанные", -1)),
|
|
3823
3862
|
r(a).unreadCount > 0 ? (s(), c(T, { key: 0 }, [
|
|
@@ -3826,7 +3865,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3826
3865
|
]),
|
|
3827
3866
|
_: 1
|
|
3828
3867
|
}),
|
|
3829
|
-
x(r(
|
|
3868
|
+
x(r(Ce), { value: "read" }, {
|
|
3830
3869
|
default: m(() => [...U[4] || (U[4] = [
|
|
3831
3870
|
C("Прочитанные", -1)
|
|
3832
3871
|
])]),
|
|
@@ -3834,7 +3873,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3834
3873
|
})
|
|
3835
3874
|
]),
|
|
3836
3875
|
default: m(() => [
|
|
3837
|
-
(s(), c(T, null, I(["all", "unread", "read"], (P) => x(r(
|
|
3876
|
+
(s(), c(T, null, I(["all", "unread", "read"], (P) => x(r(dt), {
|
|
3838
3877
|
key: P,
|
|
3839
3878
|
value: P
|
|
3840
3879
|
}, {
|
|
@@ -3843,7 +3882,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3843
3882
|
r(a).loading ? (s(), c("li", Qs, " Загрузка… ")) : r(a).items.length === 0 ? (s(), c("li", Zs, " Нет уведомлений ")) : F("", !0),
|
|
3844
3883
|
(s(!0), c(T, null, I(r(a).items, (k) => (s(), c("li", {
|
|
3845
3884
|
key: k.id,
|
|
3846
|
-
class:
|
|
3885
|
+
class: Y([
|
|
3847
3886
|
"admin-notifs__item",
|
|
3848
3887
|
`admin-notifs__item--${S(k)}`,
|
|
3849
3888
|
{ "admin-notifs__item--unread": !k.read_at }
|
|
@@ -3856,10 +3895,10 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3856
3895
|
}, null, 8, ti),
|
|
3857
3896
|
d("div", ni, [
|
|
3858
3897
|
d("div", ai, [
|
|
3859
|
-
k.read_at ? (s(), c("span", si, h(
|
|
3898
|
+
k.read_at ? (s(), c("span", si, h(A(k)), 1)) : (s(), c("strong", li, h(A(k)), 1)),
|
|
3860
3899
|
d("span", ii, h(_(k.created_at)), 1)
|
|
3861
3900
|
]),
|
|
3862
|
-
|
|
3901
|
+
R(k) ? (s(), c("p", oi, h(R(k)), 1)) : F("", !0)
|
|
3863
3902
|
]),
|
|
3864
3903
|
d("button", {
|
|
3865
3904
|
type: "button",
|
|
@@ -3924,14 +3963,14 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3924
3963
|
function S(y, $) {
|
|
3925
3964
|
b.value[y] = $ === null || $ === "" ? null : String($);
|
|
3926
3965
|
}
|
|
3927
|
-
function
|
|
3966
|
+
function A() {
|
|
3928
3967
|
return n.headers.map((y) => ({
|
|
3929
3968
|
source: y.key,
|
|
3930
3969
|
target: b.value[y.key] ?? null
|
|
3931
3970
|
}));
|
|
3932
3971
|
}
|
|
3933
|
-
function
|
|
3934
|
-
o("mapping-submit",
|
|
3972
|
+
function R() {
|
|
3973
|
+
o("mapping-submit", A()), u(2);
|
|
3935
3974
|
}
|
|
3936
3975
|
function _() {
|
|
3937
3976
|
o("run-import"), u(3);
|
|
@@ -3971,7 +4010,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3971
4010
|
})
|
|
3972
4011
|
])
|
|
3973
4012
|
]),
|
|
3974
|
-
x(r(
|
|
4013
|
+
x(r(Xt), {
|
|
3975
4014
|
steps: a,
|
|
3976
4015
|
current: i.value
|
|
3977
4016
|
}, null, 8, ["current"]),
|
|
@@ -3985,7 +4024,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
3985
4024
|
d("h3", null, "1. Загрузите файл"),
|
|
3986
4025
|
d("p", null, "CSV / TSV / XLSX, до 50 MB")
|
|
3987
4026
|
], -1)),
|
|
3988
|
-
x(r(
|
|
4027
|
+
x(r(Jt), {
|
|
3989
4028
|
"model-value": f.value,
|
|
3990
4029
|
accept: ".csv,.tsv,.xlsx",
|
|
3991
4030
|
"max-size": 50 * 1024 * 1024,
|
|
@@ -4016,7 +4055,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4016
4055
|
V.sample ? (s(), c("span", hi, " «" + h(V.sample) + "» ", 1)) : F("", !0)
|
|
4017
4056
|
]),
|
|
4018
4057
|
$[4] || ($[4] = d("span", { class: "admin-import-wizard__map-arrow" }, "→", -1)),
|
|
4019
|
-
x(r(
|
|
4058
|
+
x(r(Ae), {
|
|
4020
4059
|
"model-value": b.value[V.key] ?? "",
|
|
4021
4060
|
options: P.value,
|
|
4022
4061
|
placeholder: "Не импортировать",
|
|
@@ -4036,7 +4075,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4036
4075
|
$[6] || ($[6] = d("h3", null, "3. Предпросмотр", -1)),
|
|
4037
4076
|
d("p", null, "Первые " + h(e.preview.length) + " строк перед импортом", 1)
|
|
4038
4077
|
]),
|
|
4039
|
-
e.preview.some((V) => V.__warning) ? (s(), w(r(
|
|
4078
|
+
e.preview.some((V) => V.__warning) ? (s(), w(r(Q), {
|
|
4040
4079
|
key: 0,
|
|
4041
4080
|
variant: "warning",
|
|
4042
4081
|
style: { "margin-bottom": "var(--uid-space-md)" }
|
|
@@ -4046,7 +4085,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4046
4085
|
])]),
|
|
4047
4086
|
_: 1
|
|
4048
4087
|
})) : F("", !0),
|
|
4049
|
-
e.previewColumns.length > 0 ? (s(), w(r(
|
|
4088
|
+
e.previewColumns.length > 0 ? (s(), w(r(je), {
|
|
4050
4089
|
key: 1,
|
|
4051
4090
|
columns: e.previewColumns,
|
|
4052
4091
|
data: e.preview
|
|
@@ -4063,23 +4102,23 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4063
4102
|
d("h3", null, "4. Импорт")
|
|
4064
4103
|
], -1)),
|
|
4065
4104
|
e.progress ? (s(), c(T, { key: 1 }, [
|
|
4066
|
-
e.progress.total > 0 ? (s(), w(r(
|
|
4105
|
+
e.progress.total > 0 ? (s(), w(r(Yt), {
|
|
4067
4106
|
key: 0,
|
|
4068
4107
|
"model-value": e.progress.created + e.progress.updated + e.progress.errors,
|
|
4069
4108
|
max: e.progress.total
|
|
4070
4109
|
}, null, 8, ["model-value", "max"])) : F("", !0),
|
|
4071
4110
|
d("div", ki, [
|
|
4072
|
-
x(r(
|
|
4111
|
+
x(r(xe), {
|
|
4073
4112
|
title: "Создано",
|
|
4074
4113
|
value: e.progress.created,
|
|
4075
4114
|
tone: "success"
|
|
4076
4115
|
}, null, 8, ["value"]),
|
|
4077
|
-
x(r(
|
|
4116
|
+
x(r(xe), {
|
|
4078
4117
|
title: "Обновлено",
|
|
4079
4118
|
value: e.progress.updated,
|
|
4080
4119
|
tone: "info"
|
|
4081
4120
|
}, null, 8, ["value"]),
|
|
4082
|
-
x(r(
|
|
4121
|
+
x(r(xe), {
|
|
4083
4122
|
title: "Ошибки",
|
|
4084
4123
|
value: e.progress.errors,
|
|
4085
4124
|
tone: "danger"
|
|
@@ -4115,7 +4154,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4115
4154
|
key: 2,
|
|
4116
4155
|
variant: "primary",
|
|
4117
4156
|
disabled: !U.value,
|
|
4118
|
-
onClick:
|
|
4157
|
+
onClick: R
|
|
4119
4158
|
}, {
|
|
4120
4159
|
default: m(() => [...$[11] || ($[11] = [
|
|
4121
4160
|
C(" Подтвердить mapping ", -1)
|
|
@@ -4198,10 +4237,10 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4198
4237
|
node: { type: "date", name: "demo_date", label: "Дата публикации", inputType: "date" },
|
|
4199
4238
|
initial: { demo_date: "2026-05-01" }
|
|
4200
4239
|
}
|
|
4201
|
-
], n = t.reduce((a, l) => (a[l.group] || (a[l.group] = []), a[l.group].push(l), a), {}), o =
|
|
4240
|
+
], n = t.reduce((a, l) => (a[l.group] || (a[l.group] = []), a[l.group].push(l), a), {}), o = At(
|
|
4202
4241
|
t.reduce((a, l) => Object.assign(a, l.initial), {})
|
|
4203
4242
|
);
|
|
4204
|
-
return
|
|
4243
|
+
return ct(o), (a, l) => (s(), c("section", $i, [
|
|
4205
4244
|
l[0] || (l[0] = d("header", { class: "admin-page__hd" }, [
|
|
4206
4245
|
d("div", { class: "admin-page__title-wrap" }, [
|
|
4207
4246
|
d("h1", { class: "admin-page__title" }, "Field Gallery"),
|
|
@@ -4226,7 +4265,7 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4226
4265
|
]),
|
|
4227
4266
|
d("p", Ui, h(f.description), 1),
|
|
4228
4267
|
d("div", Ei, [
|
|
4229
|
-
x(
|
|
4268
|
+
x(_t, {
|
|
4230
4269
|
node: f.node
|
|
4231
4270
|
}, null, 8, ["node"])
|
|
4232
4271
|
])
|
|
@@ -4239,118 +4278,118 @@ const Hs = { class: "admin-notifs__hd" }, Xs = { class: "admin-notifs__title" },
|
|
|
4239
4278
|
}
|
|
4240
4279
|
});
|
|
4241
4280
|
export {
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4281
|
+
Sn as AdminApp,
|
|
4282
|
+
Cn as AdminShell,
|
|
4283
|
+
wn as AdminSidebar,
|
|
4284
|
+
fn as AdminTopBar,
|
|
4285
|
+
Z as ApiError,
|
|
4247
4286
|
zs as BadgeEntry,
|
|
4248
|
-
|
|
4249
|
-
|
|
4287
|
+
Wl as BarChartWidget,
|
|
4288
|
+
ze as CheckboxField,
|
|
4250
4289
|
Fs as ColumnsLayout,
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4290
|
+
Il as DashboardPage,
|
|
4291
|
+
oe as DateField,
|
|
4292
|
+
Zl as DonutChartWidget,
|
|
4254
4293
|
oo as FieldGalleryPage,
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4294
|
+
_t as FieldRenderer,
|
|
4295
|
+
sn as ForbiddenError,
|
|
4296
|
+
Nn as ForbiddenPage,
|
|
4297
|
+
us as GaugeWidget,
|
|
4298
|
+
ss as HeatmapWidget,
|
|
4299
|
+
Tn as HomePage,
|
|
4261
4300
|
Os as IconEntry,
|
|
4262
4301
|
io as ImportWizardPage,
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4302
|
+
Xa as InfolistRenderer,
|
|
4303
|
+
at as KeyValueEntry,
|
|
4304
|
+
be as LayoutRenderer,
|
|
4305
|
+
ft as LocaleSwitcher,
|
|
4306
|
+
Qn as LoginForm,
|
|
4307
|
+
da as LoginPage,
|
|
4308
|
+
fs as MarkdownWidget,
|
|
4309
|
+
Pe as NetworkError,
|
|
4310
|
+
on as NotFoundError,
|
|
4311
|
+
Bn as NotFoundPage,
|
|
4312
|
+
ln as NotificationBell,
|
|
4274
4313
|
so as NotificationsDrawer,
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4314
|
+
Ve as NumberField,
|
|
4315
|
+
Cl as ProfilePage,
|
|
4316
|
+
ns as RecentTableWidget,
|
|
4317
|
+
et as ResourceFormPage,
|
|
4318
|
+
Ra as ResourceIndexPage,
|
|
4319
|
+
al as ResourceViewPage,
|
|
4320
|
+
nt as RowsLayout,
|
|
4321
|
+
ge as SectionLayout,
|
|
4322
|
+
ee as SelectField,
|
|
4323
|
+
On as SettingsPage,
|
|
4324
|
+
Bl as StatWidget,
|
|
4286
4325
|
Ns as TabsLayout,
|
|
4287
|
-
|
|
4326
|
+
$e as TextAreaField,
|
|
4288
4327
|
Bs as TextEntry,
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4328
|
+
X as TextField,
|
|
4329
|
+
mt as ThemeToggle,
|
|
4330
|
+
ta as TwoFactorForm,
|
|
4331
|
+
vt as UnauthenticatedError,
|
|
4332
|
+
Ba as UnknownEntry,
|
|
4333
|
+
ht as UnknownField,
|
|
4334
|
+
Gn as UnknownScreenPage,
|
|
4335
|
+
Rl as UnknownWidget,
|
|
4336
|
+
un as UserMenu,
|
|
4337
|
+
Le as ValidationError,
|
|
4338
|
+
Ul as WidgetRenderer,
|
|
4339
|
+
Cs as buildRoutesFromManifest,
|
|
4301
4340
|
Ii as clearAdminClient,
|
|
4302
4341
|
Xi as clearInfolistRegistry,
|
|
4303
4342
|
ji as clearRegistry,
|
|
4304
4343
|
eo as clearWidgetRegistry,
|
|
4305
4344
|
no as createAdminApp,
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4345
|
+
gs as createAdminClient,
|
|
4346
|
+
Es as createAdminRouter,
|
|
4347
|
+
Ss as createAuthGuard,
|
|
4348
|
+
As as createTitleGuard,
|
|
4310
4349
|
W as getAdminClient,
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4350
|
+
gt as getField,
|
|
4351
|
+
tt as getInfolistEntry,
|
|
4352
|
+
Ze as getLayout,
|
|
4353
|
+
Sl as getWidget,
|
|
4315
4354
|
Bi as hasAdminClient,
|
|
4316
4355
|
zi as hasField,
|
|
4317
4356
|
Gi as hasInfolistEntry,
|
|
4318
4357
|
Oi as hasLayout,
|
|
4319
4358
|
Qi as hasWidget,
|
|
4320
4359
|
to as isError,
|
|
4321
|
-
|
|
4360
|
+
ps as isSuccess,
|
|
4322
4361
|
qi as listFields,
|
|
4323
4362
|
Hi as listInfolistEntries,
|
|
4324
4363
|
Wi as listLayouts,
|
|
4325
4364
|
Zi as listWidgets,
|
|
4326
4365
|
ao as loadBootstrap,
|
|
4327
|
-
|
|
4328
|
-
|
|
4366
|
+
ct as provideFormState,
|
|
4367
|
+
Ja as provideRecord,
|
|
4329
4368
|
lo as readCsrfFromMeta,
|
|
4330
4369
|
Gs as readInlineBootstrap,
|
|
4331
4370
|
Is as registerBuiltinComponents,
|
|
4332
4371
|
js as registerBuiltinInfolistEntries,
|
|
4333
|
-
|
|
4334
|
-
|
|
4372
|
+
vs as registerBuiltinWidgets,
|
|
4373
|
+
Ua as registerComponents,
|
|
4335
4374
|
Vi as registerField,
|
|
4336
|
-
|
|
4375
|
+
Ia as registerInfolistEntries,
|
|
4337
4376
|
Ki as registerInfolistEntry,
|
|
4338
4377
|
Di as registerLayout,
|
|
4339
4378
|
Yi as registerWidget,
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4379
|
+
Al as registerWidgets,
|
|
4380
|
+
Zt as setAdminClient,
|
|
4381
|
+
Ye as toApiError,
|
|
4343
4382
|
co as tryUseFormState,
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4383
|
+
Me as tryUseRecord,
|
|
4384
|
+
J as useAuthStore,
|
|
4385
|
+
de as useFormState,
|
|
4386
|
+
He as useLocaleStore,
|
|
4387
|
+
se as useManifestStore,
|
|
4388
|
+
vn as useMenuStore,
|
|
4389
|
+
Xe as useNotificationsStore,
|
|
4351
4390
|
Ji as useRecord,
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4391
|
+
pt as useResourceFormStore,
|
|
4392
|
+
ca as useResourceIndexStore,
|
|
4393
|
+
Ge as useThemeStore
|
|
4355
4394
|
};
|
|
4356
4395
|
//# sourceMappingURL=index.mjs.map
|