@dskripchenko/laravel-admin 1.40.0 → 1.41.0

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.mjs CHANGED
@@ -1,13 +1,13 @@
1
- import { h as Ae, ref as V, computed as f, defineComponent as J, openBlock as r, createElementBlock as h, createVNode as _, unref as o, createBlock as z, withCtx as L, Fragment as N, renderList as Y, createTextVNode as T, toDisplayString as v, createElementVNode as M, createCommentVNode as j, onMounted as Ve, onBeforeUnmount as Et, resolveComponent as ni, normalizeClass as pe, resolveDynamicComponent as Pe, renderSlot as Fe, withKeys as Nt, withModifiers as be, onUnmounted as mb, watch as ge, normalizeStyle as Ce, nextTick as Ke, withDirectives as Ct, vModelText as Ot, Teleport as cw, Transition as ob, reactive as po, inject as cc, normalizeProps as Mo, mergeProps as mt, getCurrentScope as Wx, onScopeDispose as Zx, provide as rw, vModelSelect as Gx, createSlots as oi, guardReactiveProps as MI, useSlots as Kx, isRef as bI, useAttrs as Xx, createApp as Jx } from "vue";
2
- import { defineStore as st, createPinia as Yx } from "pinia";
3
- import { useRouter as Be, useRoute as ut, createWebHistory as wI, createRouter as Qx } from "vue-router";
4
- import { UidIcon as oe, UidMenu as Re, UidMenuItem as et, UidTooltip as zw, UidMenuSeparator as eL, UidAvatar as dw, UidBreadcrumb as tL, UidBreadcrumbItem as aL, UidSidebarItem as nL, UidSidebar as oL, UidSkeleton as Ge, UidSidebarGroup as iL, UidModal as Wt, UidSpinner as sw, UidSidebarLayout as lL, UidButton as ee, useToast as Mc, provideLocale as cL, en as rL, ru as dL, UidToastProvider as sL, UidAlert as Xe, UidInput as qe, UidCard as Ie, UidSubMenu as uL, UidProgress as II, UidCheckbox as uw, UidImage as hL, UidBadge as vb, UidLink as fb, UidErrorState as gb, UidEmptyState as Mb, UidTreeView as yL, UidTable as ii, UidPagination as xI, UidGrid as bb, UidStack as xo, UidSelect as bo, UidStat as mi, UidGauge as pL, UidFormField as De, UidSwitch as kL, UidTextarea as hw, UidNumberInput as mL, UidCombobox as vL, UidCheckboxGroup as fL, UidDatePicker as $w, UidTimePicker as LI, usePopover as gL, UidCode as wb, UidColorPicker as ML, UidSlider as bL, UidRating as _I, UidRadioGroup as wL, UidRadio as IL, UidDateRangePicker as xL, UidTreeSelect as LL, UidCascader as _L, UidAccordion as CI, UidAccordionItem as SI, UidTabs as CL, UidTabPanel as SL, UidTab as qL, UidWizard as AL, UidWizardLayout as zL, UidWizardStep as $L, UidStepper as qI, UidDrawer as HL, UidDescriptionList as VL, UidDescriptionItem as PL, UidFileUpload as FL } from "@dskripchenko/ui";
5
- import { t as g, a as fe, u as rc, c as jL } from "./i18n-Vgxu-A6P.js";
6
- import { t as li, p as dc, u as Le, a as BL } from "./formState-DVU2igtT.js";
7
- import DL from "axios";
8
- import { DskWysiwyg as RL } from "@dskripchenko/wysiwyg";
1
+ import { h as Ae, ref as V, computed as f, defineComponent as J, openBlock as r, createElementBlock as h, createVNode as _, unref as o, createBlock as z, withCtx as L, Fragment as N, renderList as Y, createTextVNode as T, toDisplayString as v, createElementVNode as M, createCommentVNode as j, onMounted as Ve, onBeforeUnmount as Et, resolveComponent as ni, normalizeClass as pe, resolveDynamicComponent as Pe, renderSlot as Fe, withKeys as Nt, withModifiers as be, onUnmounted as kb, watch as ge, normalizeStyle as Ce, nextTick as Ke, withDirectives as Ct, vModelText as Ot, Teleport as lw, Transition as ob, reactive as po, inject as cc, normalizeProps as Mo, mergeProps as mt, getCurrentScope as Nx, onScopeDispose as Wx, provide as cw, vModelSelect as Zx, createSlots as oi, guardReactiveProps as gI, useSlots as Gx, isRef as MI, useAttrs as Kx, createApp as Xx } from "vue";
2
+ import { defineStore as st, createPinia as Jx } from "pinia";
3
+ import { useRouter as Be, useRoute as ut, createWebHistory as bI, createRouter as Yx } from "vue-router";
4
+ import { UidIcon as oe, UidMenu as Re, UidMenuItem as et, UidTooltip as Aw, UidMenuSeparator as Qx, UidAvatar as rw, UidBreadcrumb as eL, UidBreadcrumbItem as tL, UidSidebarItem as aL, UidSidebar as nL, UidSkeleton as Ge, UidSidebarGroup as oL, UidModal as Wt, UidSpinner as dw, UidSidebarLayout as iL, UidButton as ee, useToast as Mc, provideLocale as lL, en as cL, ru as rL, UidToastProvider as dL, UidAlert as Xe, UidInput as qe, UidCard as Ie, UidSubMenu as sL, UidProgress as wI, UidCheckbox as sw, UidImage as uL, UidBadge as mb, UidLink as vb, UidErrorState as fb, UidEmptyState as gb, UidTreeView as hL, UidTable as ii, UidPagination as II, UidGrid as Mb, UidStack as xo, UidSelect as bo, UidStat as mi, UidGauge as yL, UidFormField as De, UidSwitch as pL, UidTextarea as uw, UidNumberInput as kL, UidCombobox as mL, UidCheckboxGroup as vL, UidDatePicker as zw, UidTimePicker as xI, usePopover as fL, UidCode as bb, UidColorPicker as gL, UidSlider as ML, UidRating as LI, UidRadioGroup as bL, UidRadio as wL, UidDateRangePicker as IL, UidTreeSelect as xL, UidCascader as LL, UidAccordion as _I, UidAccordionItem as CI, UidTabs as _L, UidTabPanel as CL, UidTab as SL, UidWizard as qL, UidWizardLayout as AL, UidWizardStep as zL, UidStepper as SI, UidDrawer as $L, UidDescriptionList as HL, UidDescriptionItem as VL, UidFileUpload as PL } from "@dskripchenko/ui";
5
+ import { t as g, a as fe, u as rc, c as FL } from "./i18n-Vgxu-A6P.js";
6
+ import { t as li, p as dc, u as Le, a as jL } from "./formState-DVU2igtT.js";
7
+ import BL from "axios";
8
+ import { DskWysiwyg as DL } from "@dskripchenko/wysiwyg";
9
9
  import "@dskripchenko/wysiwyg/style.css";
10
- const TL = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
10
+ const RL = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
11
11
  var bc = {
12
12
  xmlns: "http://www.w3.org/2000/svg",
13
13
  width: 24,
@@ -19,7 +19,7 @@ var bc = {
19
19
  "stroke-linecap": "round",
20
20
  "stroke-linejoin": "round"
21
21
  };
22
- const AI = ({ size: e, strokeWidth: t = 2, absoluteStrokeWidth: n, color: l, iconNode: i, name: c, class: s, ...u }, { slots: d }) => Ae(
22
+ const qI = ({ size: e, strokeWidth: t = 2, absoluteStrokeWidth: n, color: l, iconNode: i, name: c, class: s, ...u }, { slots: d }) => Ae(
23
23
  "svg",
24
24
  {
25
25
  ...bc,
@@ -27,13 +27,13 @@ const AI = ({ size: e, strokeWidth: t = 2, absoluteStrokeWidth: n, color: l, ico
27
27
  height: e || bc.height,
28
28
  stroke: l || bc.stroke,
29
29
  "stroke-width": n ? Number(t) * 24 / Number(e) : t,
30
- class: ["lucide", `lucide-${TL(c ?? "icon")}`],
30
+ class: ["lucide", `lucide-${RL(c ?? "icon")}`],
31
31
  ...u
32
32
  },
33
33
  [...i.map((y) => Ae(...y)), ...d.default ? [d.default()] : []]
34
34
  );
35
35
  const a = (e, t) => (n, { slots: l }) => Ae(
36
- AI,
36
+ qI,
37
37
  {
38
38
  ...n,
39
39
  iconNode: t,
@@ -12716,7 +12716,7 @@ const ab = a("ZoomOutIcon", [
12716
12716
  ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
12717
12717
  ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
12718
12718
  ]);
12719
- const UL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12719
+ const TL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12720
12720
  __proto__: null,
12721
12721
  AArrowDown: zc,
12722
12722
  AArrowUp: $c,
@@ -14258,7 +14258,7 @@ const UL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14258
14258
  ZoomIn: tb,
14259
14259
  ZoomOut: ab
14260
14260
  }, Symbol.toStringTag, { value: "Module" }));
14261
- const yw = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14261
+ const hw = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14262
14262
  __proto__: null,
14263
14263
  AArrowDown: zc,
14264
14264
  AArrowDownIcon: zc,
@@ -15984,7 +15984,7 @@ const yw = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
15984
15984
  IceCreamCone: wn,
15985
15985
  IceCreamConeIcon: wn,
15986
15986
  IceCreamIcon: wn,
15987
- Icon: AI,
15987
+ Icon: qI,
15988
15988
  IdCard: G4,
15989
15989
  IdCardIcon: G4,
15990
15990
  Image: go,
@@ -19473,10 +19473,10 @@ const yw = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19473
19473
  ZoomOut: ab,
19474
19474
  ZoomOutIcon: ab,
19475
19475
  createLucideIcon: a,
19476
- icons: UL
19476
+ icons: TL
19477
19477
  }, Symbol.toStringTag, { value: "Module" }));
19478
19478
  let oc = null;
19479
- function zI(e) {
19479
+ function AI(e) {
19480
19480
  oc = e;
19481
19481
  }
19482
19482
  function we() {
@@ -19486,19 +19486,19 @@ function we() {
19486
19486
  );
19487
19487
  return oc;
19488
19488
  }
19489
- function OL() {
19489
+ function UL() {
19490
19490
  oc = null;
19491
19491
  }
19492
- function $I() {
19492
+ function zI() {
19493
19493
  return oc !== null;
19494
19494
  }
19495
19495
  const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19496
19496
  __proto__: null,
19497
- clearAdminClient: OL,
19497
+ clearAdminClient: UL,
19498
19498
  getAdminClient: we,
19499
- hasAdminClient: $I,
19500
- setAdminClient: zI
19501
- }, Symbol.toStringTag, { value: "Module" })), pw = st("admin-theme", () => {
19499
+ hasAdminClient: zI,
19500
+ setAdminClient: AI
19501
+ }, Symbol.toStringTag, { value: "Module" })), yw = st("admin-theme", () => {
19502
19502
  const e = V("light"), t = V(["light", "dark"]), n = f(() => e.value === "dark");
19503
19503
  function l(u) {
19504
19504
  e.value = u.theme, t.value = u.availableThemes, s(u.theme);
@@ -19530,10 +19530,10 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19530
19530
  applyLocal: i,
19531
19531
  setTheme: c
19532
19532
  };
19533
- }), EL = ["aria-label", "aria-pressed"], HI = /* @__PURE__ */ J({
19533
+ }), OL = ["aria-label", "aria-pressed"], $I = /* @__PURE__ */ J({
19534
19534
  __name: "ThemeToggle",
19535
19535
  setup(e) {
19536
- const t = pw(), n = f(() => t.current === "dark"), l = f(() => n.value ? Jo : No), i = f(() => n.value ? "sun" : "moon"), c = f(
19536
+ const t = yw(), n = f(() => t.current === "dark"), l = f(() => n.value ? Jo : No), i = f(() => n.value ? "sun" : "moon"), c = f(
19537
19537
  () => n.value ? g("Переключить на светлую тему") : g("Переключить на тёмную тему")
19538
19538
  );
19539
19539
  async function s() {
@@ -19552,7 +19552,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19552
19552
  size: 18,
19553
19553
  "data-icon": i.value
19554
19554
  }, null, 8, ["icon", "data-icon"])
19555
- ], 8, EL));
19555
+ ], 8, OL));
19556
19556
  }
19557
19557
  }), wo = st("admin-locale", () => {
19558
19558
  const e = V("ru"), t = V(["ru", "en"]);
@@ -19593,7 +19593,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19593
19593
  setLocale: c,
19594
19594
  release: i
19595
19595
  };
19596
- }), NL = ["aria-label"], VI = /* @__PURE__ */ J({
19596
+ }), EL = ["aria-label"], HI = /* @__PURE__ */ J({
19597
19597
  __name: "LocaleSwitcher",
19598
19598
  setup(e) {
19599
19599
  const t = wo();
@@ -19614,7 +19614,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19614
19614
  "data-icon": "globe"
19615
19615
  }, null, 8, ["icon"]),
19616
19616
  M("span", null, v((o(t).current ?? "").toUpperCase()), 1)
19617
- ], 8, NL)
19617
+ ], 8, EL)
19618
19618
  ]),
19619
19619
  default: L(() => [
19620
19620
  (r(!0), h(N, null, Y(o(t).available, (c) => (r(), z(o(et), {
@@ -19630,7 +19630,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19630
19630
  _: 1
19631
19631
  }));
19632
19632
  }
19633
- }), Ib = st("admin-notifications", () => {
19633
+ }), wb = st("admin-notifications", () => {
19634
19634
  const e = V([]), t = V(0), n = V(!1), l = V("all"), i = V(null), c = V(!1), s = f(() => t.value > 0);
19635
19635
  function u() {
19636
19636
  c.value = !0;
@@ -19702,10 +19702,10 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19702
19702
  closeDrawer: d,
19703
19703
  toggleDrawer: y
19704
19704
  };
19705
- }), WL = ["aria-label", "aria-expanded"], ZL = ["title"], GL = /* @__PURE__ */ J({
19705
+ }), NL = ["aria-label", "aria-expanded"], WL = ["title"], ZL = /* @__PURE__ */ J({
19706
19706
  __name: "NotificationBell",
19707
19707
  setup(e) {
19708
- const t = Ib(), n = f(() => {
19708
+ const t = wb(), n = f(() => {
19709
19709
  const i = t.unreadCount;
19710
19710
  return i <= 0 ? null : i > 99 ? "99+" : String(i);
19711
19711
  });
@@ -19729,10 +19729,10 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19729
19729
  key: 0,
19730
19730
  class: "admin-topbar__bell-badge",
19731
19731
  title: o(fe)("Непрочитанных: :count", { count: o(t).unreadCount })
19732
- }, v(n.value), 9, ZL)) : j("", !0)
19733
- ], 8, WL));
19732
+ }, v(n.value), 9, WL)) : j("", !0)
19733
+ ], 8, NL));
19734
19734
  }
19735
- }), KL = ["aria-label"], XL = { class: "admin-topbar__status-inner" }, JL = { class: "admin-topbar__status-label" }, YL = { class: "admin-topbar__status-inner" }, QL = { class: "admin-topbar__status-label" }, wc = 6e4, e_ = /* @__PURE__ */ J({
19735
+ }), GL = ["aria-label"], KL = { class: "admin-topbar__status-inner" }, XL = { class: "admin-topbar__status-label" }, JL = { class: "admin-topbar__status-inner" }, YL = { class: "admin-topbar__status-label" }, wc = 6e4, QL = /* @__PURE__ */ J({
19736
19736
  __name: "StatusIndicators",
19737
19737
  setup(e) {
19738
19738
  const t = V([]);
@@ -19809,16 +19809,16 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19809
19809
  "data-testid": `status-${x.key}`
19810
19810
  }, {
19811
19811
  default: L(() => [
19812
- _(o(zw), {
19812
+ _(o(Aw), {
19813
19813
  content: p(x)
19814
19814
  }, {
19815
19815
  default: L(() => [
19816
- M("span", XL, [
19816
+ M("span", KL, [
19817
19817
  _(o(oe), {
19818
19818
  icon: l[x.status],
19819
19819
  size: 16
19820
19820
  }, null, 8, ["icon"]),
19821
- M("span", JL, v(x.label), 1)
19821
+ M("span", XL, v(x.label), 1)
19822
19822
  ])
19823
19823
  ]),
19824
19824
  _: 2
@@ -19835,16 +19835,16 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19835
19835
  "data-testid": `status-${x.key}`
19836
19836
  }, {
19837
19837
  default: L(() => [
19838
- _(o(zw), {
19838
+ _(o(Aw), {
19839
19839
  content: p(x)
19840
19840
  }, {
19841
19841
  default: L(() => [
19842
- M("span", YL, [
19842
+ M("span", JL, [
19843
19843
  _(o(oe), {
19844
19844
  icon: l[x.status],
19845
19845
  size: 16
19846
19846
  }, null, 8, ["icon"]),
19847
- M("span", QL, v(x.label), 1)
19847
+ M("span", YL, v(x.label), 1)
19848
19848
  ])
19849
19849
  ]),
19850
19850
  _: 2
@@ -19853,7 +19853,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19853
19853
  _: 2
19854
19854
  }, 1032, ["href", "target", "rel", "class", "data-status", "data-testid"]))
19855
19855
  ], 64))), 128))
19856
- ], 8, KL)) : j("", !0);
19856
+ ], 8, GL)) : j("", !0);
19857
19857
  };
19858
19858
  }
19859
19859
  }), Je = (e, t) => {
@@ -19861,7 +19861,7 @@ const ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
19861
19861
  for (const [l, i] of t)
19862
19862
  n[l] = i;
19863
19863
  return n;
19864
- }, t_ = /* @__PURE__ */ Je(e_, [["__scopeId", "data-v-dbf1c8df"]]);
19864
+ }, e_ = /* @__PURE__ */ Je(QL, [["__scopeId", "data-v-dbf1c8df"]]);
19865
19865
  class at extends Error {
19866
19866
  status;
19867
19867
  errorKey;
@@ -19870,17 +19870,17 @@ class at extends Error {
19870
19870
  super(n.message ?? `API error ${t}`), this.name = "ApiError", this.status = t, this.errorKey = n.errorKey ?? "unknown", this.payload = n;
19871
19871
  }
19872
19872
  }
19873
- class PI extends at {
19873
+ class VI extends at {
19874
19874
  constructor(t) {
19875
19875
  super(401, t), this.name = "UnauthenticatedError";
19876
19876
  }
19877
19877
  }
19878
- class a_ extends at {
19878
+ class t_ extends at {
19879
19879
  constructor(t) {
19880
19880
  super(403, t), this.name = "ForbiddenError";
19881
19881
  }
19882
19882
  }
19883
- class n_ extends at {
19883
+ class a_ extends at {
19884
19884
  constructor(t) {
19885
19885
  super(404, t), this.name = "NotFoundError";
19886
19886
  }
@@ -19899,19 +19899,19 @@ class Jt extends at {
19899
19899
  return null;
19900
19900
  }
19901
19901
  }
19902
- class xb extends Error {
19902
+ class Ib extends Error {
19903
19903
  constructor(t = "Network error") {
19904
19904
  super(t), this.name = "NetworkError";
19905
19905
  }
19906
19906
  }
19907
- function Hw(e, t) {
19907
+ function $w(e, t) {
19908
19908
  switch (e) {
19909
19909
  case 401:
19910
- return new PI(t);
19910
+ return new VI(t);
19911
19911
  case 403:
19912
- return new a_(t);
19912
+ return new t_(t);
19913
19913
  case 404:
19914
- return new n_(t);
19914
+ return new a_(t);
19915
19915
  case 422:
19916
19916
  return new Jt(t);
19917
19917
  default:
@@ -20022,7 +20022,7 @@ const Oe = st("admin-auth", () => {
20022
20022
  cancelChallenge: b,
20023
20023
  logout: S
20024
20024
  };
20025
- }), o_ = ["aria-label"], i_ = /* @__PURE__ */ J({
20025
+ }), n_ = ["aria-label"], o_ = /* @__PURE__ */ J({
20026
20026
  __name: "UserMenu",
20027
20027
  setup(e) {
20028
20028
  const t = Oe(), n = Be();
@@ -20045,13 +20045,13 @@ const Oe = st("admin-auth", () => {
20045
20045
  "aria-haspopup": "menu",
20046
20046
  style: { width: "auto", padding: "0 4px", gap: "8px" }
20047
20047
  }, [
20048
- _(o(dw), {
20048
+ _(o(rw), {
20049
20049
  src: o(t).user?.avatar ?? void 0,
20050
20050
  name: o(t).user?.name ?? "?",
20051
20051
  alt: o(t).user?.name ?? "User",
20052
20052
  size: "sm"
20053
20053
  }, null, 8, ["src", "name", "alt"])
20054
- ], 8, o_)
20054
+ ], 8, n_)
20055
20055
  ]),
20056
20056
  default: L(() => [
20057
20057
  _(o(et), { onClick: i }, {
@@ -20060,7 +20060,7 @@ const Oe = st("admin-auth", () => {
20060
20060
  ]),
20061
20061
  _: 1
20062
20062
  }),
20063
- _(o(eL)),
20063
+ _(o(Qx)),
20064
20064
  _(o(et), {
20065
20065
  variant: "danger",
20066
20066
  onClick: l
@@ -20074,7 +20074,7 @@ const Oe = st("admin-auth", () => {
20074
20074
  _: 1
20075
20075
  }));
20076
20076
  }
20077
- }), l_ = { class: "admin-topbar" }, c_ = ["aria-label"], r_ = { class: "admin-topbar__breadcrumbs" }, d_ = /* @__PURE__ */ J({
20077
+ }), i_ = { class: "admin-topbar" }, l_ = ["aria-label"], c_ = { class: "admin-topbar__breadcrumbs" }, r_ = ["aria-label"], d_ = /* @__PURE__ */ J({
20078
20078
  __name: "AdminTopBar",
20079
20079
  props: {
20080
20080
  breadcrumbs: { default: () => [] },
@@ -20093,7 +20093,7 @@ const Oe = st("admin-auth", () => {
20093
20093
  return u.to;
20094
20094
  }
20095
20095
  }
20096
- return (u, d) => (r(), h("header", l_, [
20096
+ return (u, d) => (r(), h("header", i_, [
20097
20097
  e.showCollapseToggle ? (r(), h("button", {
20098
20098
  key: 0,
20099
20099
  type: "button",
@@ -20106,16 +20106,17 @@ const Oe = st("admin-auth", () => {
20106
20106
  size: 18,
20107
20107
  "data-icon": "panel-left"
20108
20108
  }, null, 8, ["icon"])
20109
- ], 8, c_)) : j("", !0),
20110
- M("div", r_, [
20109
+ ], 8, l_)) : j("", !0),
20110
+ M("div", c_, [
20111
20111
  Fe(u.$slots, "breadcrumbs", {}, () => [
20112
- e.breadcrumbs.length > 0 ? (r(), z(o(tL), {
20112
+ e.breadcrumbs.length > 0 ? (r(), z(o(eL), {
20113
20113
  key: 0,
20114
20114
  label: o(g)("Навигация"),
20115
- separator: "›"
20115
+ separator: "›",
20116
+ collapse: ""
20116
20117
  }, {
20117
20118
  default: L(() => [
20118
- (r(!0), h(N, null, Y(e.breadcrumbs, (y, p) => (r(), z(o(aL), {
20119
+ (r(!0), h(N, null, Y(e.breadcrumbs, (y, p) => (r(), z(o(tL), {
20119
20120
  key: p,
20120
20121
  to: s(y),
20121
20122
  current: p === i.value,
@@ -20138,6 +20139,7 @@ const Oe = st("admin-auth", () => {
20138
20139
  "data-testid": "topbar-search",
20139
20140
  role: "button",
20140
20141
  tabindex: "0",
20142
+ "aria-label": o(g)("Поиск везде…"),
20141
20143
  onClick: d[1] || (d[1] = (y) => l("open-search")),
20142
20144
  onKeydown: [
20143
20145
  d[2] || (d[2] = Nt(be((y) => l("open-search"), ["prevent"]), ["enter"])),
@@ -20151,14 +20153,14 @@ const Oe = st("admin-auth", () => {
20151
20153
  }, null, 8, ["icon"]),
20152
20154
  M("span", null, v(o(g)("Поиск везде…")), 1),
20153
20155
  d[4] || (d[4] = M("kbd", null, "⌘K", -1))
20154
- ], 32)
20156
+ ], 40, r_)
20155
20157
  ]),
20156
20158
  Fe(u.$slots, "actions"),
20157
- _(t_),
20158
- _(GL),
20159
+ _(e_),
20160
+ _(ZL),
20161
+ _($I),
20159
20162
  _(HI),
20160
- _(VI),
20161
- _(i_)
20163
+ _(o_)
20162
20164
  ]));
20163
20165
  }
20164
20166
  }), sc = st("admin-menu", () => {
@@ -20266,14 +20268,14 @@ const Oe = st("admin-auth", () => {
20266
20268
  reset: b
20267
20269
  };
20268
20270
  }), s_ = 1500;
20269
- function FI() {
20271
+ function PI() {
20270
20272
  const e = Ee(), t = sc(), n = V(!1);
20271
20273
  let l = null;
20272
20274
  return Ve(() => {
20273
20275
  l = setTimeout(() => {
20274
20276
  n.value = !0;
20275
20277
  }, s_);
20276
- }), mb(() => {
20278
+ }), kb(() => {
20277
20279
  l !== null && clearTimeout(l);
20278
20280
  }), f(() => n.value || e.bootResolved && !t.loading);
20279
20281
  }
@@ -20516,7 +20518,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20516
20518
  size: 14
20517
20519
  }, null, 8, ["icon"])
20518
20520
  ], 2))
20519
- ], 10, y_)) : (r(), z(o(nL), {
20521
+ ], 10, y_)) : (r(), z(o(aL), {
20520
20522
  key: 1,
20521
20523
  class: "admin-sidebar-node__leaf",
20522
20524
  "data-testid": `menu-${e.item.key}`,
@@ -20546,7 +20548,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20546
20548
  ], 14, h_);
20547
20549
  };
20548
20550
  }
20549
- }), f_ = ["aria-label"], g_ = "#2dd4bf", M_ = "#18181b", Lb = /* @__PURE__ */ J({
20551
+ }), f_ = ["aria-label"], g_ = "#2dd4bf", M_ = "#18181b", xb = /* @__PURE__ */ J({
20550
20552
  __name: "BrandLogo",
20551
20553
  props: {
20552
20554
  size: { default: 28 },
@@ -20611,10 +20613,10 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20611
20613
  docsUrl: { default: null }
20612
20614
  },
20613
20615
  setup(e) {
20614
- const t = sc(), n = f(() => t.groupedItems), l = FI(), i = f(() => l.value || t.isLoaded);
20616
+ const t = sc(), n = f(() => t.groupedItems), l = PI(), i = f(() => l.value || t.isLoaded);
20615
20617
  return (c, s) => {
20616
20618
  const u = ni("router-link");
20617
- return r(), z(o(oL), { collapsed: e.collapsed }, {
20619
+ return r(), z(o(nL), { collapsed: e.collapsed }, {
20618
20620
  header: L(() => [
20619
20621
  _(u, {
20620
20622
  to: { name: e.homeRouteName },
@@ -20628,7 +20630,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20628
20630
  class: "admin-sidebar-brand__logo",
20629
20631
  src: e.brandLogo,
20630
20632
  alt: e.brandName
20631
- }, null, 8, b_)) : e.brandMark ? (r(), h("div", w_, v(e.brandMark), 1)) : (r(), z(Lb, {
20633
+ }, null, 8, b_)) : e.brandMark ? (r(), h("div", w_, v(e.brandMark), 1)) : (r(), z(xb, {
20632
20634
  key: 2,
20633
20635
  size: 28
20634
20636
  })),
@@ -20642,7 +20644,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20642
20644
  ])) : j("", !0)
20643
20645
  ]),
20644
20646
  nav: L(() => [
20645
- i.value ? (r(!0), h(N, { key: 1 }, Y(n.value, (d, y) => (r(), z(o(iL), {
20647
+ i.value ? (r(!0), h(N, { key: 1 }, Y(n.value, (d, y) => (r(), z(o(oL), {
20646
20648
  key: `grp-${y}`,
20647
20649
  title: d.group ?? void 0
20648
20650
  }, {
@@ -20793,7 +20795,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20793
20795
  }, null, 40, z_), [
20794
20796
  [Ot, d.value]
20795
20797
  ]),
20796
- y.value ? (r(), z(o(sw), {
20798
+ y.value ? (r(), z(o(dw), {
20797
20799
  key: 0,
20798
20800
  size: "sm"
20799
20801
  })) : j("", !0)
@@ -20835,7 +20837,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20835
20837
  _: 1
20836
20838
  }, 8, ["modelValue"]));
20837
20839
  }
20838
- }), _b = st("admin-resource-form", () => {
20840
+ }), Lb = st("admin-resource-form", () => {
20839
20841
  const e = V(null), t = V("create"), n = V(null), l = V({}), i = V({}), c = V(null), s = V({}), u = V(!1), d = V(!1), y = V(!1), p = V(null), k = f(() => t.value === "create"), m = f(() => t.value === "edit"), w = f(() => t.value === "view"), I = f(() => p.value !== null), x = f(() => {
20840
20842
  const R = l.value, Z = i.value, K = /* @__PURE__ */ new Set([...Object.keys(R), ...Object.keys(Z)]);
20841
20843
  for (const G of K)
@@ -20946,7 +20948,7 @@ const h_ = ["data-depth"], y_ = ["aria-expanded", "title"], p_ = { class: "uid-s
20946
20948
  destroy: O
20947
20949
  };
20948
20950
  });
20949
- function jI(e, t) {
20951
+ function FI(e, t) {
20950
20952
  const n = typeof t.name == "string" ? t.name : "";
20951
20953
  if (e.routeName && n === e.routeName || e.url && t.path === e.url) return 1e4;
20952
20954
  if (e.routeName && n !== "") {
@@ -20959,7 +20961,7 @@ function R_(e, t) {
20959
20961
  let n = [], l = 0;
20960
20962
  const i = (c, s) => {
20961
20963
  for (const u of c) {
20962
- const d = jI(u, t);
20964
+ const d = FI(u, t);
20963
20965
  (d > l || d > 0 && d === l && s.length + 1 < n.length) && (l = d, n = [...s, u]), u.children?.length && i(u.children, [...s, u]);
20964
20966
  }
20965
20967
  };
@@ -20968,7 +20970,7 @@ function R_(e, t) {
20968
20970
  function T_(e) {
20969
20971
  return e.routeName ? { name: e.routeName } : e.url ? e.url : null;
20970
20972
  }
20971
- function Vw(e, t) {
20973
+ function Hw(e, t) {
20972
20974
  for (const n of ["title", "name", "label"]) {
20973
20975
  const l = e[n];
20974
20976
  if (typeof l == "string" && l.trim() !== "") return l;
@@ -20977,7 +20979,7 @@ function Vw(e, t) {
20977
20979
  return `#${t}`;
20978
20980
  }
20979
20981
  function U_() {
20980
- const e = ut(), t = sc(), n = Ee(), l = _b();
20982
+ const e = ut(), t = sc(), n = Ee(), l = Lb();
20981
20983
  return f(() => {
20982
20984
  const i = e, c = typeof i.name == "string" ? i.name : "", s = i.meta.kind, u = typeof i.meta.slug == "string" ? i.meta.slug : "", d = R_(t.visibleItems, i), y = [], p = d[0]?.group;
20983
20985
  p && y.push({ label: p });
@@ -20993,13 +20995,13 @@ function U_() {
20993
20995
  const m = `admin.resource.${u}.index`, w = d[d.length - 1];
20994
20996
  w !== void 0 && (w.routeName === m || w.url === `/r/${u}`) || k({ label: n.getResource(u)?.label ?? u, to: { name: m } });
20995
20997
  const x = typeof i.params.id == "string" ? i.params.id : "", S = l.slug === u && String(l.recordId ?? "") === x ? { ...l.state, ...l.initial, ...l.recordTitle ? { title: l.recordTitle } : {} } : {};
20996
- c.endsWith(".create") ? y.push({ label: g("Создание") }) : c.endsWith(".view") && x !== "" ? y.push({ label: Vw(S, x) }) : c.endsWith(".edit") && x !== "" && (y.push({
20997
- label: Vw(S, x),
20998
+ c.endsWith(".create") ? y.push({ label: g("Создание") }) : c.endsWith(".view") && x !== "" ? y.push({ label: Hw(S, x) }) : c.endsWith(".edit") && x !== "" && (y.push({
20999
+ label: Hw(S, x),
20998
21000
  to: { name: `admin.resource.${u}.view`, params: { id: x } }
20999
21001
  }), y.push({ label: g("Редактирование") }));
21000
21002
  } else if (typeof i.meta.title == "string" && i.meta.title !== "") {
21001
21003
  const m = s === "screen" && u !== "" ? n.getScreen(u)?.name ?? i.meta.title : i.meta.title;
21002
- (d.length === 0 || jI(d[d.length - 1], i) < 1e4) && k({ label: g(m) });
21004
+ (d.length === 0 || FI(d[d.length - 1], i) < 1e4) && k({ label: g(m) });
21003
21005
  }
21004
21006
  if (y.length > 0) {
21005
21007
  const m = y[y.length - 1];
@@ -21015,7 +21017,7 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21015
21017
  }, N_ = { class: "admin-main-footer" }, W_ = {
21016
21018
  key: 0,
21017
21019
  class: "admin-main-footer__copyright"
21018
- }, Z_ = "(max-width: 768px)", Ub = "data-admin-impersonating", G_ = /* @__PURE__ */ J({
21020
+ }, Z_ = "(max-width: 768px)", Tb = "data-admin-impersonating", G_ = /* @__PURE__ */ J({
21019
21021
  __name: "AdminShell",
21020
21022
  props: {
21021
21023
  collapsed: { type: Boolean, default: void 0 },
@@ -21049,11 +21051,11 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21049
21051
  ge(
21050
21052
  () => n.impersonation,
21051
21053
  (H) => {
21052
- typeof document > "u" || (H !== null ? document.documentElement.setAttribute(Ub, "true") : document.documentElement.removeAttribute(Ub));
21054
+ typeof document > "u" || (H !== null ? document.documentElement.setAttribute(Tb, "true") : document.documentElement.removeAttribute(Tb));
21053
21055
  },
21054
21056
  { immediate: !0 }
21055
21057
  ), Et(() => {
21056
- typeof document < "u" && document.documentElement.removeAttribute(Ub);
21058
+ typeof document < "u" && document.documentElement.removeAttribute(Tb);
21057
21059
  }), Ve(() => {
21058
21060
  typeof window > "u" || typeof window.matchMedia != "function" || (k = window.matchMedia(Z_), p.value = k.matches, k.matches && S(!0), k.addEventListener("change", B));
21059
21061
  });
@@ -21084,7 +21086,7 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21084
21086
  onClick: C
21085
21087
  }, v(o(g)("Выйти из режима")), 1)
21086
21088
  ])) : j("", !0),
21087
- _(o(lL), {
21089
+ _(o(iL), {
21088
21090
  "model-value": b.value,
21089
21091
  class: "admin-shell",
21090
21092
  "onUpdate:modelValue": S
@@ -21155,7 +21157,7 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21155
21157
  _(o(Ge), { height: "240px" })
21156
21158
  ]));
21157
21159
  }
21158
- }), kw = st("admin-navigation", () => {
21160
+ }), pw = st("admin-navigation", () => {
21159
21161
  const e = V(0), t = f(() => e.value > 0);
21160
21162
  function n() {
21161
21163
  e.value += 1;
@@ -21170,7 +21172,7 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21170
21172
  }), Q_ = ["aria-label"], eC = /* @__PURE__ */ J({
21171
21173
  __name: "AdminLoadingBar",
21172
21174
  setup(e) {
21173
- const t = kw(), n = V(!1);
21175
+ const t = pw(), n = V(!1);
21174
21176
  let l = null;
21175
21177
  ge(
21176
21178
  () => t.isLoading,
@@ -21193,14 +21195,14 @@ const O_ = { class: "admin-shell-root" }, E_ = {
21193
21195
  }, null, 10, Q_));
21194
21196
  }
21195
21197
  }), yo = (e) => typeof e == "string" && e !== "" ? e : null;
21196
- function BI(e, t) {
21198
+ function jI(e, t) {
21197
21199
  return yo(e.data.title) ?? yo(e.data.subject) ?? t;
21198
21200
  }
21199
- function DI(e) {
21201
+ function BI(e) {
21200
21202
  const t = e.data;
21201
21203
  return yo(t.body) ?? yo(t.description) ?? yo(t.message) ?? yo(t.text) ?? "";
21202
21204
  }
21203
- function mw(e) {
21205
+ function kw(e) {
21204
21206
  switch (e.data.level) {
21205
21207
  case "success":
21206
21208
  return "success";
@@ -21230,7 +21232,7 @@ function aC(e) {
21230
21232
  if (n.includes("comment") || n.includes("message") || n.includes("mention")) return Eo;
21231
21233
  if (n.includes("user") || n.includes("member") || n.includes("role")) return Qo;
21232
21234
  }
21233
- return tC[mw(e)];
21235
+ return tC[kw(e)];
21234
21236
  }
21235
21237
  const nC = {
21236
21238
  key: 0,
@@ -21266,7 +21268,7 @@ const nC = {
21266
21268
  }, LC = ["aria-label", "onClick"], _C = { class: "admin-notif-drawer__ft" }, CC = /* @__PURE__ */ J({
21267
21269
  __name: "NotificationsDrawer",
21268
21270
  setup(e) {
21269
- const t = Ib(), n = Be(), l = f(() => t.isOpen), i = [
21271
+ const t = wb(), n = Be(), l = f(() => t.isOpen), i = [
21270
21272
  { key: "all", label: g("Все") },
21271
21273
  { key: "unread", label: g("Непрочитанные") },
21272
21274
  { key: "read", label: g("Прочитанные") }
@@ -21304,7 +21306,7 @@ const nC = {
21304
21306
  return S < 60 ? fe(":n сек назад", { n: Math.max(1, Math.floor(S)) }) : S < 3600 ? fe(":n мин назад", { n: Math.floor(S / 60) }) : S < 86400 ? fe(":n ч назад", { n: Math.floor(S / 3600) }) : S < 86400 * 2 ? g("вчера") : S < 86400 * 7 ? fe(":n д назад", { n: Math.floor(S / 86400) }) : new Date(x).toLocaleDateString("ru-RU");
21305
21307
  }
21306
21308
  function m(x) {
21307
- return { title: BI(x, g("Уведомление")), description: DI(x) };
21309
+ return { title: jI(x, g("Уведомление")), description: BI(x) };
21308
21310
  }
21309
21311
  const w = f(() => {
21310
21312
  const b = t.meta?.total ?? t.items.length, S = t.unreadCount, C = Math.max(0, b - S);
@@ -21317,9 +21319,9 @@ const nC = {
21317
21319
  function I(x) {
21318
21320
  x.key === "Escape" && p();
21319
21321
  }
21320
- return mb(() => {
21322
+ return kb(() => {
21321
21323
  document.removeEventListener("keydown", I);
21322
- }), (x, b) => (r(), z(cw, { to: "body" }, [
21324
+ }), (x, b) => (r(), z(lw, { to: "body" }, [
21323
21325
  _(ob, { name: "admin-notif-drawer" }, {
21324
21326
  default: L(() => [
21325
21327
  l.value ? (r(), h("div", nC, [
@@ -21389,7 +21391,7 @@ const nC = {
21389
21391
  }, [
21390
21392
  M("span", {
21391
21393
  class: "admin-notif-drawer__icon",
21392
- "data-variant": o(mw)(S),
21394
+ "data-variant": o(kw)(S),
21393
21395
  "aria-hidden": "true"
21394
21396
  }, [
21395
21397
  _(o(oe), {
@@ -21447,7 +21449,7 @@ function St(e) {
21447
21449
  ib = n;
21448
21450
  });
21449
21451
  }
21450
- function Ob(e) {
21452
+ function Ub(e) {
21451
21453
  Qe.open = !1;
21452
21454
  const t = ib;
21453
21455
  ib = null, t?.(e);
@@ -21464,7 +21466,7 @@ const SC = {
21464
21466
  const t = f({
21465
21467
  get: () => Qe.open,
21466
21468
  set: (n) => {
21467
- n || Ob(!1);
21469
+ n || Ub(!1);
21468
21470
  }
21469
21471
  });
21470
21472
  return (n, l) => (r(), z(o(Wt), {
@@ -21477,7 +21479,7 @@ const SC = {
21477
21479
  _(o(ee), {
21478
21480
  variant: "ghost",
21479
21481
  "data-testid": "confirm-cancel",
21480
- onClick: l[0] || (l[0] = (i) => o(Ob)(!1))
21482
+ onClick: l[0] || (l[0] = (i) => o(Ub)(!1))
21481
21483
  }, {
21482
21484
  default: L(() => [
21483
21485
  T(v(o(Qe).cancelLabel), 1)
@@ -21487,7 +21489,7 @@ const SC = {
21487
21489
  _(o(ee), {
21488
21490
  variant: o(Qe).destructive ? "danger" : "primary",
21489
21491
  "data-testid": "confirm-ok",
21490
- onClick: l[1] || (l[1] = (i) => o(Ob)(!0))
21492
+ onClick: l[1] || (l[1] = (i) => o(Ub)(!0))
21491
21493
  }, {
21492
21494
  default: L(() => [
21493
21495
  T(v(o(Qe).confirmLabel), 1)
@@ -21505,16 +21507,16 @@ const SC = {
21505
21507
  function Ic(e, t) {
21506
21508
  return { message: e, ...t ?? {} };
21507
21509
  }
21508
- let RI = 0;
21509
- function Pw(e = 1500) {
21510
- RI = Date.now() + e;
21510
+ let DI = 0;
21511
+ function Vw(e = 1500) {
21512
+ DI = Date.now() + e;
21511
21513
  }
21512
21514
  const se = {
21513
21515
  success(e, t) {
21514
21516
  Mc().success(Ic(e, t));
21515
21517
  },
21516
21518
  error(e, t) {
21517
- Date.now() < RI || Mc().error(Ic(e, { duration: 6e3, ...t ?? {} }));
21519
+ Date.now() < DI || Mc().error(Ic(e, { duration: 6e3, ...t ?? {} }));
21518
21520
  },
21519
21521
  warning(e, t) {
21520
21522
  Mc().warning(Ic(e, t));
@@ -21523,7 +21525,7 @@ const se = {
21523
21525
  Mc().info(Ic(e, t));
21524
21526
  }
21525
21527
  };
21526
- function TI(e, t = g("Произошла ошибка")) {
21528
+ function RI(e, t = g("Произошла ошибка")) {
21527
21529
  const n = e instanceof Error ? e.message || t : typeof e == "string" ? e : t;
21528
21530
  se.error(n);
21529
21531
  }
@@ -21555,9 +21557,9 @@ function zC(e, t) {
21555
21557
  }
21556
21558
  return n;
21557
21559
  }
21558
- const UI = /* @__PURE__ */ Symbol("adminBrand");
21559
- function Cb() {
21560
- return cc(UI, {});
21560
+ const TI = /* @__PURE__ */ Symbol("adminBrand");
21561
+ function _b() {
21562
+ return cc(TI, {});
21561
21563
  }
21562
21564
  function $C(e, t) {
21563
21565
  const n = f(
@@ -21568,8 +21570,8 @@ function $C(e, t) {
21568
21570
  const HC = { class: "admin-page-host" }, VC = /* @__PURE__ */ J({
21569
21571
  __name: "AdminApp",
21570
21572
  setup(e) {
21571
- const t = ut(), n = Oe(), l = Cb(), i = wo();
21572
- cL(f(() => i.current === "en" ? rL : dL));
21573
+ const t = ut(), n = Oe(), l = _b(), i = wo();
21574
+ lL(f(() => i.current === "en" ? cL : rL));
21573
21575
  const c = f(() => {
21574
21576
  const m = n.user;
21575
21577
  return m?.impersonator ? { asName: String(m?.name ?? "?") } : null;
@@ -21582,7 +21584,7 @@ const HC = { class: "admin-page-host" }, VC = /* @__PURE__ */ J({
21582
21584
  se.error(g("Не удалось выйти из режима импертонации."));
21583
21585
  }
21584
21586
  }
21585
- const u = FI(), { useShell: d } = $C(t, u), y = u, p = V(!1);
21587
+ const u = PI(), { useShell: d } = $C(t, u), y = u, p = V(!1);
21586
21588
  ge(y, (m) => {
21587
21589
  m && Ke(() => p.value = !0);
21588
21590
  }, { immediate: !0 });
@@ -21625,12 +21627,12 @@ const HC = { class: "admin-page-host" }, VC = /* @__PURE__ */ J({
21625
21627
  _: 1
21626
21628
  })),
21627
21629
  _(CC),
21628
- _(o(sL)),
21630
+ _(o(dL)),
21629
21631
  _(qC)
21630
21632
  ], 64);
21631
21633
  };
21632
21634
  }
21633
- }), OI = st("admin-dashboard", () => {
21635
+ }), UI = st("admin-dashboard", () => {
21634
21636
  const e = V(null), t = V(!1), n = V([]), l = V([]), i = V(!1), c = V(!1), s = V(null), u = f(() => JSON.stringify(n.value) !== JSON.stringify(l.value));
21635
21637
  async function d(H) {
21636
21638
  e.value = H, c.value = !0;
@@ -21749,7 +21751,7 @@ const HC = { class: "admin-page-host" }, VC = /* @__PURE__ */ J({
21749
21751
  reset: $
21750
21752
  };
21751
21753
  });
21752
- function Sb() {
21754
+ function Cb() {
21753
21755
  const e = /* @__PURE__ */ new Map();
21754
21756
  return {
21755
21757
  register(t, n) {
@@ -21773,7 +21775,7 @@ function Sb() {
21773
21775
  }
21774
21776
  };
21775
21777
  }
21776
- const ci = Sb(), PC = ci.register, FC = ci.get, jC = ci.has, BC = ci.list, KU = ci.clear, XU = ci.registerBundle, EI = /* @__PURE__ */ J({
21778
+ const ci = Cb(), PC = ci.register, FC = ci.get, jC = ci.has, BC = ci.list, KU = ci.clear, XU = ci.registerBundle, OI = /* @__PURE__ */ J({
21777
21779
  __name: "UnknownWidget",
21778
21780
  props: {
21779
21781
  type: {}
@@ -21791,7 +21793,7 @@ const ci = Sb(), PC = ci.register, FC = ci.get, jC = ci.has, BC = ci.list, KU =
21791
21793
  _: 1
21792
21794
  }));
21793
21795
  }
21794
- }), NI = /* @__PURE__ */ J({
21796
+ }), EI = /* @__PURE__ */ J({
21795
21797
  __name: "WidgetRenderer",
21796
21798
  props: {
21797
21799
  node: {}
@@ -21813,7 +21815,7 @@ const ci = Sb(), PC = ci.register, FC = ci.get, jC = ci.has, BC = ci.list, KU =
21813
21815
  } = t.node;
21814
21816
  return w && typeof w == "object" && !Array.isArray(w) ? { ...I, ...w, data: w } : w !== void 0 ? { ...I, data: w } : I;
21815
21817
  });
21816
- return (i, c) => n.value ? (r(), z(Pe(n.value), Mo(mt({ key: 0 }, l.value)), null, 16)) : (r(), z(EI, {
21818
+ return (i, c) => n.value ? (r(), z(Pe(n.value), Mo(mt({ key: 0 }, l.value)), null, 16)) : (r(), z(OI, {
21817
21819
  key: 1,
21818
21820
  type: e.node.type
21819
21821
  }, null, 8, ["type"]));
@@ -21997,7 +21999,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
21997
21999
  function H() {
21998
22000
  l("close");
21999
22001
  }
22000
- return (P, U) => (r(), z(cw, { to: "body" }, [
22002
+ return (P, U) => (r(), z(lw, { to: "body" }, [
22001
22003
  _(ob, { name: "admin-dialog" }, {
22002
22004
  default: L(() => [
22003
22005
  e.open ? (r(), h("div", EC, [
@@ -22182,7 +22184,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22182
22184
  }), VS = { class: "admin-page admin-dashboard" }, PS = { class: "admin-page__hd" }, FS = { class: "admin-page__title-wrap" }, jS = { class: "admin-page__title" }, BS = {
22183
22185
  key: 0,
22184
22186
  class: "admin-page__count"
22185
- }, DS = { class: "admin-page__actions" }, RS = ["draggable", "onDragstart", "onDragover", "onDrop"], TS = ["aria-label", "onMousedown"], US = 140, OS = 16, WI = /* @__PURE__ */ J({
22187
+ }, DS = { class: "admin-page__actions" }, RS = ["draggable", "onDragstart", "onDragover", "onDrop"], TS = ["aria-label", "onMousedown"], US = 140, OS = 16, NI = /* @__PURE__ */ J({
22186
22188
  __name: "DashboardPage",
22187
22189
  props: {
22188
22190
  slug: { default: void 0 },
@@ -22192,7 +22194,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22192
22194
  },
22193
22195
  emits: ["change-period", "export"],
22194
22196
  setup(e, { emit: t }) {
22195
- const n = e, l = t, i = Ee(), c = OI(), s = rc(), u = (te) => s.tr(te), d = ut(), y = f(() => {
22197
+ const n = e, l = t, i = Ee(), c = UI(), s = rc(), u = (te) => s.tr(te), d = ut(), y = f(() => {
22196
22198
  if (n.slug) return n.slug;
22197
22199
  const te = d?.meta?.slug;
22198
22200
  if (typeof te == "string" && te.length > 0) return te;
@@ -22311,7 +22313,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22311
22313
  const te = y.value;
22312
22314
  te && (H.value = D.value, await c.openDashboard(te).catch(() => {
22313
22315
  }), await U()), G();
22314
- }), mb(() => {
22316
+ }), kb(() => {
22315
22317
  W();
22316
22318
  }), ge(
22317
22319
  () => y.value,
@@ -22382,10 +22384,10 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22382
22384
  };
22383
22385
  });
22384
22386
  });
22385
- function $b(te) {
22387
+ function zb(te) {
22386
22388
  c.restoreWidget(te);
22387
22389
  }
22388
- function Hb(te) {
22390
+ function $b(te) {
22389
22391
  if (!E.value) return;
22390
22392
  const le = E.value.slug;
22391
22393
  if (c.draft.some((de) => de.slug === le)) {
@@ -22402,7 +22404,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22402
22404
  });
22403
22405
  }
22404
22406
  const Te = V(null), Ye = V(null), Co = V(!1);
22405
- function Vb(te) {
22407
+ function Hb(te) {
22406
22408
  if (!c.editMode) {
22407
22409
  Co.value = !1;
22408
22410
  return;
@@ -22410,7 +22412,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22410
22412
  const le = te.target;
22411
22413
  Co.value = !!le?.closest('[data-drag-handle="true"]');
22412
22414
  }
22413
- function Pb(te, le) {
22415
+ function Vb(te, le) {
22414
22416
  if (c.editMode && le.dataTransfer !== null) {
22415
22417
  if (!Co.value) {
22416
22418
  le.preventDefault();
@@ -22419,10 +22421,10 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22419
22421
  Te.value = te, le.dataTransfer.effectAllowed = "move", le.dataTransfer.setData("text/plain", String(te));
22420
22422
  }
22421
22423
  }
22422
- function Fb() {
22424
+ function Pb() {
22423
22425
  Co.value = !1, Te.value = null, Ye.value = null;
22424
22426
  }
22425
- function jb(te, le) {
22427
+ function Fb(te, le) {
22426
22428
  c.editMode && Te.value !== null && (le.preventDefault(), Ye.value !== te && (Ye.value = te));
22427
22429
  }
22428
22430
  function Yt(te, le) {
@@ -22448,7 +22450,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22448
22450
  }
22449
22451
  const Ne = V(null);
22450
22452
  let yc = 0;
22451
- function Bb(te, le, re, de) {
22453
+ function jb(te, le, re, de) {
22452
22454
  if (!c.editMode) return;
22453
22455
  te.preventDefault(), te.stopPropagation(), lt(), Ne.value = {
22454
22456
  slug: le,
@@ -22460,10 +22462,10 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22460
22462
  }
22461
22463
  function pc(te) {
22462
22464
  if (!Ne.value) return;
22463
- const le = yc / 12, re = Math.round((te.clientX - Ne.value.startX) / le), de = Math.max(1, Math.min(12, Ne.value.startSpan + re)), xe = US + OS, _e = Math.round((te.clientY - Ne.value.startY) / xe), We = Math.max(1, Math.min(6, Ne.value.startRowSpan + _e)), qo = c.draft.find((Rb) => Rb.slug === Ne.value.slug);
22465
+ const le = yc / 12, re = Math.round((te.clientX - Ne.value.startX) / le), de = Math.max(1, Math.min(12, Ne.value.startSpan + re)), xe = US + OS, _e = Math.round((te.clientY - Ne.value.startY) / xe), We = Math.max(1, Math.min(6, Ne.value.startRowSpan + _e)), qo = c.draft.find((Db) => Db.slug === Ne.value.slug);
22464
22466
  if (!qo) return;
22465
- const Db = qo.config?.rowSpan, Ao = {};
22466
- qo.size !== de && (Ao.size = de), Db !== We && (Ao.config = { ...qo.config ?? {}, rowSpan: We }), Object.keys(Ao).length > 0 && c.updateWidget(Ne.value.slug, Ao);
22467
+ const Bb = qo.config?.rowSpan, Ao = {};
22468
+ qo.size !== de && (Ao.size = de), Bb !== We && (Ao.config = { ...qo.config ?? {}, rowSpan: We }), Object.keys(Ao).length > 0 && c.updateWidget(Ne.value.slug, Ao);
22467
22469
  }
22468
22470
  function kc() {
22469
22471
  Ne.value = null, window.removeEventListener("mousemove", pc), window.removeEventListener("mouseup", kc);
@@ -22642,13 +22644,13 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22642
22644
  gridColumn: `span ${b(re.node)} / span ${b(re.node)}`,
22643
22645
  gridRow: `span ${S(re.layoutSlug, re.node)} / span ${S(re.layoutSlug, re.node)}`
22644
22646
  }),
22645
- onPointerdown: Vb,
22646
- onDragstart: (xe) => Pb(de, xe),
22647
- onDragover: (xe) => jb(de, xe),
22647
+ onPointerdown: Hb,
22648
+ onDragstart: (xe) => Vb(de, xe),
22649
+ onDragover: (xe) => Fb(de, xe),
22648
22650
  onDrop: (xe) => Yt(de, xe),
22649
- onDragend: Fb
22651
+ onDragend: Pb
22650
22652
  }, [
22651
- _(NI, {
22653
+ _(EI, {
22652
22654
  node: re.node
22653
22655
  }, null, 8, ["node"]),
22654
22656
  o(c).editMode ? (r(), z(OC, {
@@ -22660,7 +22662,7 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22660
22662
  key: 1,
22661
22663
  class: "admin-dashboard__resize",
22662
22664
  "aria-label": u("Изменить размер"),
22663
- onMousedown: (xe) => Bb(xe, re.layoutSlug, b(re.node), S(re.layoutSlug, re.node))
22665
+ onMousedown: (xe) => jb(xe, re.layoutSlug, b(re.node), S(re.layoutSlug, re.node))
22664
22666
  }, null, 40, TS)) : j("", !0)
22665
22667
  ], 46, RS))), 128))
22666
22668
  ], 2),
@@ -22672,8 +22674,8 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22672
22674
  restorable: _o.value,
22673
22675
  onClose: ce,
22674
22676
  onAdd: it,
22675
- onSave: Hb,
22676
- onRestore: $b
22677
+ onSave: $b,
22678
+ onRestore: zb
22677
22679
  }, null, 8, ["open", "mode", "item", "initial-title", "restorable"])
22678
22680
  ]));
22679
22681
  }
@@ -22690,14 +22692,14 @@ ${g("Текст…")}`), p = V("LABEL"), k = V("0"), m = V("50"), w = V(g("Ян
22690
22692
  () => t.manifest?.dashboards ?? []
22691
22693
  ), u = f(
22692
22694
  () => s.value[0]?.slug ?? null
22693
- ), d = OI();
22695
+ ), d = UI();
22694
22696
  return ge(
22695
22697
  u,
22696
22698
  (y) => {
22697
22699
  y && d.openDashboard(y);
22698
22700
  },
22699
22701
  { immediate: !0 }
22700
- ), (y, p) => u.value ? (r(), z(WI, {
22702
+ ), (y, p) => u.value ? (r(), z(NI, {
22701
22703
  key: 0,
22702
22704
  slug: u.value
22703
22705
  }, null, 8, ["slug"])) : (r(), h("div", ES, [
@@ -22913,7 +22915,7 @@ function yq(e) {
22913
22915
  }
22914
22916
  return null;
22915
22917
  }
22916
- function ZI(e) {
22918
+ function WI(e) {
22917
22919
  if (!e || typeof e != "object") return null;
22918
22920
  const t = e, n = String(t.name ?? t.key ?? ""), l = String(t.label ?? n);
22919
22921
  if (n === "" || l === "") return null;
@@ -22928,16 +22930,16 @@ function ZI(e) {
22928
22930
  destructive: !!t.destructive,
22929
22931
  position: Array.isArray(t.position) ? t.position : [],
22930
22932
  attributes: i,
22931
- items: qb(t.items)
22933
+ items: Sb(t.items)
22932
22934
  };
22933
22935
  }
22934
- function qb(e) {
22935
- return Array.isArray(e) ? e.map(ZI).filter((t) => t !== null) : [];
22936
+ function Sb(e) {
22937
+ return Array.isArray(e) ? e.map(WI).filter((t) => t !== null) : [];
22936
22938
  }
22937
22939
  function gt(e) {
22938
22940
  return e.type === "bulk" ? !0 : e.attributes.standalone === !0 ? !1 : e.position.includes("row") || e.position.includes("bulk");
22939
22941
  }
22940
- function GI(e, t) {
22942
+ function ZI(e, t) {
22941
22943
  const n = Number(e.attributes.requiresAtLeast ?? 0), l = e.attributes.requiresAtMost;
22942
22944
  return !(Number.isFinite(n) && t < n || l != null && t > Number(l));
22943
22945
  }
@@ -22958,7 +22960,7 @@ function kq(e, t) {
22958
22960
  function mq(e) {
22959
22961
  return new Promise((t) => setTimeout(t, e));
22960
22962
  }
22961
- function Eb(e, t) {
22963
+ function Ob(e, t) {
22962
22964
  return e instanceof Jt ? e.firstFieldMessage() ?? e.message ?? t : e instanceof Error && e.message ? e.message : t;
22963
22965
  }
22964
22966
  function vq(e) {
@@ -22967,7 +22969,7 @@ function vq(e) {
22967
22969
  t[n.startsWith("payload.") ? n.slice(8) : n] = l;
22968
22970
  return t;
22969
22971
  }
22970
- function vw(e) {
22972
+ function mw(e) {
22971
22973
  let t;
22972
22974
  try {
22973
22975
  t = Be();
@@ -23029,7 +23031,7 @@ function vw(e) {
23029
23031
  } catch ($) {
23030
23032
  $ instanceof Jt ? (u.errors = vq($), (Object.keys(u.errors).filter(
23031
23033
  (H) => !u.fields.some((P) => P.name === H)
23032
- ).length > 0 || Object.keys(u.errors).length === 0) && se.error(Eb($, g("Проверьте заполнение формы.")))) : b(C, $);
23034
+ ).length > 0 || Object.keys(u.errors).length === 0) && se.error(Ob($, g("Проверьте заполнение формы.")))) : b(C, $);
23033
23035
  } finally {
23034
23036
  u.submitting = !1, n.value = !1;
23035
23037
  }
@@ -23043,7 +23045,7 @@ function vw(e) {
23043
23045
  finished: !1
23044
23046
  });
23045
23047
  let m = !1;
23046
- Wx() && Zx(() => {
23048
+ Nx() && Wx(() => {
23047
23049
  m = !0;
23048
23050
  });
23049
23051
  function w() {
@@ -23082,7 +23084,7 @@ function vw(e) {
23082
23084
  ), k.status = O.status, k.progress = Math.max(0, Math.min(100, Number(O.progress ?? 0)));
23083
23085
  }
23084
23086
  } catch (R) {
23085
- return k.finished = !0, k.error = Eb(R, g("Не удалось выполнить действие.")), se.error(fe("Не удалось выполнить действие «:action».", { action: C.label })), !1;
23087
+ return k.finished = !0, k.error = Ob(R, g("Не удалось выполнить действие.")), se.error(fe("Не удалось выполнить действие «:action».", { action: C.label })), !1;
23086
23088
  }
23087
23089
  if (k.finished = !0, O.status === "done") {
23088
23090
  k.progress = 100;
@@ -23120,12 +23122,12 @@ function vw(e) {
23120
23122
  e.onError(C, B);
23121
23123
  return;
23122
23124
  }
23123
- se.error(Eb(B, fe("Не удалось выполнить действие «:action».", { action: C.label })));
23125
+ se.error(Ob(B, fe("Не удалось выполнить действие «:action».", { action: C.label })));
23124
23126
  }
23125
23127
  async function S(C, B) {
23126
23128
  if (C.type === "dropdown") return !1;
23127
23129
  const $ = B?.ids ?? e.ids?.();
23128
- if ($ && gt(C) && !GI(C, $.length))
23130
+ if ($ && gt(C) && !ZI(C, $.length))
23129
23131
  return se.warning(fe("Действие «:action» недоступно для выбранного числа записей.", { action: C.label })), !1;
23130
23132
  if (C.confirm && !await c(C.confirm, C.destructive)) return !1;
23131
23133
  if (C.type === "link")
@@ -23169,7 +23171,7 @@ const ic = /* @__PURE__ */ J({
23169
23171
  return (l, i) => (r(!0), h(N, null, Y(e.actions, (c) => (r(), h(N, {
23170
23172
  key: c.name
23171
23173
  }, [
23172
- c.type === "dropdown" ? (r(), z(o(uL), {
23174
+ c.type === "dropdown" ? (r(), z(o(sL), {
23173
23175
  key: 0,
23174
23176
  label: c.label,
23175
23177
  icon: o(nt)(c.icon) ?? void 0,
@@ -23198,7 +23200,7 @@ const ic = /* @__PURE__ */ J({
23198
23200
  }, 1032, ["variant", "icon", "disabled", "data-testid", "onClick"]))
23199
23201
  ], 64))), 128));
23200
23202
  }
23201
- }), KI = /* @__PURE__ */ J({
23203
+ }), GI = /* @__PURE__ */ J({
23202
23204
  __name: "AdminActionButton",
23203
23205
  props: {
23204
23206
  action: {},
@@ -23252,14 +23254,14 @@ const ic = /* @__PURE__ */ J({
23252
23254
  _: 1
23253
23255
  }, 8, ["size", "variant", "disabled", "loading", "icon", "data-testid"]));
23254
23256
  }
23255
- }), ri = Sb(), di = Sb(), fq = ri.register, XI = ri.get, gq = ri.has, JU = ri.list, Mq = di.register, Qb = di.get, bq = di.has, YU = di.list;
23257
+ }), ri = Cb(), di = Cb(), fq = ri.register, KI = ri.get, gq = ri.has, JU = ri.list, Mq = di.register, Yb = di.get, bq = di.has, YU = di.list;
23256
23258
  function QU() {
23257
23259
  ri.clear(), di.clear();
23258
23260
  }
23259
23261
  function eO(e) {
23260
23262
  e.fields && ri.registerBundle(e.fields), e.layouts && di.registerBundle(e.layouts);
23261
23263
  }
23262
- const JI = /* @__PURE__ */ J({
23264
+ const XI = /* @__PURE__ */ J({
23263
23265
  __name: "UnknownField",
23264
23266
  props: {
23265
23267
  type: {},
@@ -23287,7 +23289,7 @@ const JI = /* @__PURE__ */ J({
23287
23289
  node: {}
23288
23290
  },
23289
23291
  setup(e) {
23290
- const t = e, n = f(() => XI(t.node.type)), l = li(), i = f(() => {
23292
+ const t = e, n = f(() => KI(t.node.type)), l = li(), i = f(() => {
23291
23293
  const u = l?.mode;
23292
23294
  return u ? t.node.visibility?.[u] !== !1 : !0;
23293
23295
  }), c = f(() => {
@@ -23306,7 +23308,7 @@ const JI = /* @__PURE__ */ J({
23306
23308
  return { ...y, ...d ?? {} };
23307
23309
  });
23308
23310
  return (u, d) => i.value && c.value ? (r(), h(N, { key: 0 }, [
23309
- n.value ? (r(), z(Pe(n.value), Mo(mt({ key: 0 }, s.value)), null, 16)) : (r(), z(JI, {
23311
+ n.value ? (r(), z(Pe(n.value), Mo(mt({ key: 0 }, s.value)), null, 16)) : (r(), z(XI, {
23310
23312
  key: 1,
23311
23313
  type: e.node.type,
23312
23314
  name: e.node.name
@@ -23323,11 +23325,11 @@ const JI = /* @__PURE__ */ J({
23323
23325
  if (t.node.kind === "field")
23324
23326
  return { kind: "field" };
23325
23327
  if (t.node.kind === "layout") {
23326
- const s = Qb(t.node.type);
23328
+ const s = Yb(t.node.type);
23327
23329
  return s ? { kind: "layout", component: s } : { kind: "unknown" };
23328
23330
  }
23329
- const c = Qb(t.node.type);
23330
- return c ? { kind: "layout", component: c } : XI(t.node.type) ? { kind: "field" } : { kind: "unknown" };
23331
+ const c = Yb(t.node.type);
23332
+ return c ? { kind: "layout", component: c } : KI(t.node.type) ? { kind: "field" } : { kind: "unknown" };
23331
23333
  }), l = f(() => {
23332
23334
  const { type: c, kind: s, ...u } = t.node;
23333
23335
  return u;
@@ -23335,7 +23337,7 @@ const JI = /* @__PURE__ */ J({
23335
23337
  return (c, s) => n.value.kind === "layout" && n.value.component ? (r(), z(Pe(n.value.component), Mo(mt({ key: 0 }, l.value)), null, 16)) : n.value.kind === "field" ? (r(), z(lc, {
23336
23338
  key: 1,
23337
23339
  node: i.value
23338
- }, null, 8, ["node"])) : (r(), z(JI, {
23340
+ }, null, 8, ["node"])) : (r(), z(XI, {
23339
23341
  key: 2,
23340
23342
  type: e.node.type,
23341
23343
  name: e.node.name
@@ -23373,7 +23375,7 @@ const JI = /* @__PURE__ */ J({
23373
23375
  }, _q = {
23374
23376
  key: 1,
23375
23377
  class: "admin-action-async__hint"
23376
- }, fw = /* @__PURE__ */ J({
23378
+ }, vw = /* @__PURE__ */ J({
23377
23379
  __name: "AdminActionDialogs",
23378
23380
  props: {
23379
23381
  runner: {}
@@ -23498,7 +23500,7 @@ const JI = /* @__PURE__ */ J({
23498
23500
  ]),
23499
23501
  default: L(() => [
23500
23502
  M("div", Lq, [
23501
- _(o(II), {
23503
+ _(o(wI), {
23502
23504
  value: e.runner.asyncState.progress,
23503
23505
  max: 100,
23504
23506
  label: c.value,
@@ -23520,20 +23522,20 @@ const JI = /* @__PURE__ */ J({
23520
23522
  }, 8, ["modelValue", "title"])
23521
23523
  ], 64));
23522
23524
  }
23523
- }), gw = /* @__PURE__ */ Symbol("admin.infolist-record");
23524
- function Ab(e) {
23525
- rw(gw, e);
23525
+ }), fw = /* @__PURE__ */ Symbol("admin.infolist-record");
23526
+ function qb(e) {
23527
+ cw(fw, e);
23526
23528
  }
23527
23529
  function tO() {
23528
- const e = cc(gw);
23530
+ const e = cc(fw);
23529
23531
  if (!e)
23530
23532
  throw new Error("useRecord() called outside of provideRecord() scope");
23531
23533
  return e;
23532
23534
  }
23533
23535
  function ht() {
23534
- return cc(gw, null);
23536
+ return cc(fw, null);
23535
23537
  }
23536
- const YI = /* @__PURE__ */ Symbol("admin.screen-context");
23538
+ const JI = /* @__PURE__ */ Symbol("admin.screen-context");
23537
23539
  function Cq(e) {
23538
23540
  const t = po(/* @__PURE__ */ new Set()), n = e.confirm ?? ((i) => St(i)), l = {
23539
23541
  isOpen: (i) => t.has(i),
@@ -23560,17 +23562,17 @@ function Cq(e) {
23560
23562
  }
23561
23563
  function Sq(e) {
23562
23564
  const t = Cq(e);
23563
- return rw(YI, t), t;
23565
+ return cw(JI, t), t;
23564
23566
  }
23565
- function QI() {
23566
- return cc(YI, null);
23567
+ function YI() {
23568
+ return cc(JI, null);
23567
23569
  }
23568
- const ex = /* @__PURE__ */ Symbol("admin.listener-endpoint");
23569
- function tx(e) {
23570
- rw(ex, e);
23570
+ const QI = /* @__PURE__ */ Symbol("admin.listener-endpoint");
23571
+ function ex(e) {
23572
+ cw(QI, e);
23571
23573
  }
23572
23574
  function qq() {
23573
- return cc(ex, null);
23575
+ return cc(QI, null);
23574
23576
  }
23575
23577
  const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page__hd" }, $q = { class: "admin-page__title-wrap" }, Hq = { class: "admin-page__title" }, Vq = {
23576
23578
  key: 0,
@@ -23600,8 +23602,8 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23600
23602
  return i.load(b, s.value);
23601
23603
  }
23602
23604
  const y = dc(i.state, i.errors);
23603
- Ab(i.state), tx({ url: () => `/${c.value}/listener` });
23604
- const p = f(() => qb(i.commandBar)), k = vw({
23605
+ qb(i.state), ex({ url: () => `/${c.value}/listener` });
23606
+ const p = f(() => Sb(i.commandBar)), k = mw({
23605
23607
  execute(b, S) {
23606
23608
  const C = b.attributes.method;
23607
23609
  return typeof C != "string" || C === "" ? Promise.reject(new Error(`Action \`${b.name}\` has no method`)) : i.runMethod(C, S ? { ...i.state, ...S } : void 0);
@@ -23609,7 +23611,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23609
23611
  // A failed runMethod is already the page's alert; anything else — an action
23610
23612
  // with no method, say — gets a toast.
23611
23613
  onError: (b, S) => {
23612
- i.hasError || TI(S);
23614
+ i.hasError || RI(S);
23613
23615
  },
23614
23616
  refresh: async () => {
23615
23617
  c.value && await d(c.value).catch(() => {
@@ -23626,7 +23628,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23626
23628
  },
23627
23629
  confirm: (b) => k.confirm(b),
23628
23630
  run: async (b) => {
23629
- const S = ZI(b);
23631
+ const S = WI(b);
23630
23632
  return S ? k.run(S) : !1;
23631
23633
  }
23632
23634
  });
@@ -23669,7 +23671,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23669
23671
  o(i).description ? (r(), h("p", Vq, v(o(i).description), 1)) : j("", !0)
23670
23672
  ]),
23671
23673
  p.value.length > 0 ? (r(), h("div", Pq, [
23672
- (r(!0), h(N, null, Y(p.value, (B) => (r(), z(KI, {
23674
+ (r(!0), h(N, null, Y(p.value, (B) => (r(), z(GI, {
23673
23675
  key: B.name,
23674
23676
  action: B,
23675
23677
  loading: o(i).running,
@@ -23733,7 +23735,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23733
23735
  ]),
23734
23736
  _: 1
23735
23737
  })) : j("", !0),
23736
- _(fw, { runner: o(k) }, null, 8, ["runner"])
23738
+ _(vw, { runner: o(k) }, null, 8, ["runner"])
23737
23739
  ]);
23738
23740
  };
23739
23741
  }
@@ -23771,7 +23773,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23771
23773
  });
23772
23774
  n("success", x);
23773
23775
  } catch (x) {
23774
- (x instanceof at ? x.status : x?.response?.status) === 429 ? d.value = g("Слишком много попыток входа. Подождите минуту и попробуйте снова") : x instanceof Jt ? (y.value = x.fields, d.value = x.firstFieldMessage()) : x instanceof xb ? d.value = g("Нет соединения с сервером") : x instanceof at ? d.value = x.message || g("Не удалось войти") : d.value = x.message;
23776
+ (x instanceof at ? x.status : x?.response?.status) === 429 ? d.value = g("Слишком много попыток входа. Подождите минуту и попробуйте снова") : x instanceof Jt ? (y.value = x.fields, d.value = x.firstFieldMessage()) : x instanceof Ib ? d.value = g("Нет соединения с сервером") : x instanceof at ? d.value = x.message || g("Не удалось войти") : d.value = x.message;
23775
23777
  } finally {
23776
23778
  u.value = !1;
23777
23779
  }
@@ -23819,7 +23821,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23819
23821
  "data-testid": "login-password"
23820
23822
  }, null, 8, ["modelValue", "label", "disabled", "error"]),
23821
23823
  M("div", Dq, [
23822
- _(o(uw), {
23824
+ _(o(sw), {
23823
23825
  modelValue: s.value,
23824
23826
  "onUpdate:modelValue": b[2] || (b[2] = (S) => s.value = S),
23825
23827
  disabled: u.value,
@@ -23909,7 +23911,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
23909
23911
  }
23910
23912
  n("success");
23911
23913
  } catch ($) {
23912
- $ instanceof Jt ? y.value = $.firstFieldMessage() ?? g("Неверный код") : $ instanceof xb ? y.value = g("Нет соединения с сервером") : $ instanceof at ? y.value = $.message || g("Не удалось проверить код") : y.value = $.message;
23914
+ $ instanceof Jt ? y.value = $.firstFieldMessage() ?? g("Неверный код") : $ instanceof Ib ? y.value = g("Нет соединения с сервером") : $ instanceof at ? y.value = $.message || g("Не удалось проверить код") : y.value = $.message;
23913
23915
  } finally {
23914
23916
  d.value = !1;
23915
23917
  }
@@ -24029,7 +24031,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24029
24031
  showCornerActions: { type: Boolean, default: !0 }
24030
24032
  },
24031
24033
  setup(e) {
24032
- const t = e, n = Oe(), l = Be(), i = ut(), c = Cb(), s = f(() => t.brandName ?? c.name ?? "Laravel Admin"), u = f(() => t.brandLogo ?? c.logo ?? null), d = f(() => t.brandMark ?? c.mark ?? null);
24034
+ const t = e, n = Oe(), l = Be(), i = ut(), c = _b(), s = f(() => t.brandName ?? c.name ?? "Laravel Admin"), u = f(() => t.brandLogo ?? c.logo ?? null), d = f(() => t.brandMark ?? c.mark ?? null);
24033
24035
  async function y() {
24034
24036
  const p = i.query[t.redirectQueryKey];
24035
24037
  if (typeof p == "string" && p.length > 0 && p.startsWith("/")) {
@@ -24047,8 +24049,8 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24047
24049
  n.isAuthenticated && y();
24048
24050
  }), (p, k) => (r(), h("div", Jq, [
24049
24051
  e.showCornerActions ? (r(), h("div", Yq, [
24050
- _(HI),
24051
- _(VI)
24052
+ _($I),
24053
+ _(HI)
24052
24054
  ])) : j("", !0),
24053
24055
  _(o(Ie), {
24054
24056
  class: pe(["admin-auth-card", o(n).isChallengePending ? "admin-auth-card--wide" : ""]),
@@ -24063,7 +24065,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24063
24065
  key: 0,
24064
24066
  src: u.value,
24065
24067
  alt: s.value
24066
- }, null, 8, eA)) : o(n).isChallengePending ? (r(), h("span", tA, "🛡")) : d.value ? (r(), h("span", aA, v(d.value), 1)) : (r(), z(Lb, {
24068
+ }, null, 8, eA)) : o(n).isChallengePending ? (r(), h("span", tA, "🛡")) : d.value ? (r(), h("span", aA, v(d.value), 1)) : (r(), z(xb, {
24067
24069
  key: 3,
24068
24070
  size: 40
24069
24071
  }))
@@ -24109,7 +24111,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24109
24111
  loginRouteName: { default: "admin.login" }
24110
24112
  },
24111
24113
  setup(e) {
24112
- const t = Cb(), n = Be(), l = V(""), i = V(!1), c = V(!1);
24114
+ const t = _b(), n = Be(), l = V(""), i = V(!1), c = V(!1);
24113
24115
  async function s() {
24114
24116
  if (l.value.trim() === "") {
24115
24117
  se.error(g("Введите email."));
@@ -24137,7 +24139,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24137
24139
  key: 0,
24138
24140
  src: o(t).logo,
24139
24141
  alt: o(t).name ?? "Logo"
24140
- }, null, 8, dA)) : o(t).mark ? (r(), h("span", sA, v(o(t).mark), 1)) : (r(), z(Lb, {
24142
+ }, null, 8, dA)) : o(t).mark ? (r(), h("span", sA, v(o(t).mark), 1)) : (r(), z(xb, {
24141
24143
  key: 2,
24142
24144
  size: 40
24143
24145
  }))
@@ -24201,7 +24203,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24201
24203
  loginRouteName: { default: "admin.login" }
24202
24204
  },
24203
24205
  setup(e) {
24204
- const t = Cb(), n = e, l = Be(), i = ut(), c = f(() => String(i.query.token ?? "")), s = V(String(i.query.email ?? "")), u = V(""), d = V(""), y = V(!1), p = V("");
24206
+ const t = _b(), n = e, l = Be(), i = ut(), c = f(() => String(i.query.token ?? "")), s = V(String(i.query.email ?? "")), u = V(""), d = V(""), y = V(!1), p = V("");
24205
24207
  async function k() {
24206
24208
  if (p.value = "", u.value.length < 8) {
24207
24209
  p.value = g("Пароль должен быть не менее 8 символов.");
@@ -24238,7 +24240,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24238
24240
  key: 0,
24239
24241
  src: o(t).logo,
24240
24242
  alt: o(t).name ?? "Logo"
24241
- }, null, 8, fA)) : o(t).mark ? (r(), h("span", gA, v(o(t).mark), 1)) : (r(), z(Lb, {
24243
+ }, null, 8, fA)) : o(t).mark ? (r(), h("span", gA, v(o(t).mark), 1)) : (r(), z(xb, {
24242
24244
  key: 2,
24243
24245
  size: 40
24244
24246
  }))
@@ -24298,8 +24300,8 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24298
24300
  })
24299
24301
  ]));
24300
24302
  }
24301
- }), Fw = { page: 1, per_page: 20, total: 0, last_page: 1 }, ax = st("admin-resource-index", () => {
24302
- const e = V(null), t = V([]), n = V({ ...Fw }), l = V(!1), i = V(!1), c = V(null);
24303
+ }), Pw = { page: 1, per_page: 20, total: 0, last_page: 1 }, tx = st("admin-resource-index", () => {
24304
+ const e = V(null), t = V([]), n = V({ ...Pw }), l = V(!1), i = V(!1), c = V(null);
24303
24305
  let s = null;
24304
24306
  const u = 200, d = V(""), y = V({}), p = V(null), k = V(null), m = V(/* @__PURE__ */ new Set()), w = f(() => !l.value && c.value === null && t.value.length === 0), I = f(() => m.value.size), x = f(() => m.value.size > 0), b = f(() => c.value !== null), S = f(() => m.value.size === 0 || t.value.length === 0 ? "none" : t.value.every((E) => m.value.has(C(E))) ? "all" : "mixed");
24305
24307
  function C(A) {
@@ -24309,7 +24311,7 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24309
24311
  e.value !== A && (e.value = A, $(), l.value = !0);
24310
24312
  }
24311
24313
  function $() {
24312
- t.value = [], n.value = { ...Fw }, l.value = !1, c.value = null, d.value = "", y.value = {}, p.value = null, k.value = null, m.value = /* @__PURE__ */ new Set();
24314
+ t.value = [], n.value = { ...Pw }, l.value = !1, c.value = null, d.value = "", y.value = {}, p.value = null, k.value = null, m.value = /* @__PURE__ */ new Set();
24313
24315
  }
24314
24316
  function D(A = {}) {
24315
24317
  const E = {
@@ -24413,17 +24415,17 @@ const Aq = { class: "admin-page admin-screen-page" }, zq = { class: "admin-page_
24413
24415
  };
24414
24416
  }), LA = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
24415
24417
  __proto__: null,
24416
- useResourceIndexStore: ax
24417
- }, Symbol.toStringTag, { value: "Module" })), jw = "d.m.Y H:i:s", _A = "d.m.Y", CA = /^\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/;
24418
- function zb(e, t, n = {}) {
24418
+ useResourceIndexStore: tx
24419
+ }, Symbol.toStringTag, { value: "Module" })), Fw = "d.m.Y H:i:s", _A = "d.m.Y", CA = /^\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/;
24420
+ function Ab(e, t, n = {}) {
24419
24421
  if (e == null) return "";
24420
24422
  if (!t && typeof e == "string" && CA.test(e))
24421
- return Nb(e, jw);
24423
+ return Eb(e, Fw);
24422
24424
  switch (t) {
24423
24425
  case "date":
24424
- return Nb(String(e), n.format ?? _A);
24426
+ return Eb(String(e), n.format ?? _A);
24425
24427
  case "datetime":
24426
- return Nb(String(e), n.format ?? jw);
24428
+ return Eb(String(e), n.format ?? Fw);
24427
24429
  case "money":
24428
24430
  return PA(e, n.currency ?? "RUB", n.decimals ?? 2);
24429
24431
  case "boolean":
@@ -24433,9 +24435,9 @@ function zb(e, t, n = {}) {
24433
24435
  case "badge":
24434
24436
  return AA(e, n);
24435
24437
  case "json":
24436
- return Bw(e);
24438
+ return jw(e);
24437
24439
  default:
24438
- return Array.isArray(e) || e !== null && typeof e == "object" ? Bw(e) : String(e);
24440
+ return Array.isArray(e) || e !== null && typeof e == "object" ? jw(e) : String(e);
24439
24441
  }
24440
24442
  }
24441
24443
  const SA = {
@@ -24471,7 +24473,7 @@ function zA(e, t, n) {
24471
24473
  }).replace(/:value/g, l(n));
24472
24474
  return i || c === "" ? "" : c;
24473
24475
  }
24474
- function Bw(e) {
24476
+ function jw(e) {
24475
24477
  try {
24476
24478
  return JSON.stringify(e, null, 2);
24477
24479
  } catch {
@@ -24488,7 +24490,7 @@ function $A(e) {
24488
24490
  return isNaN(l.getTime()) ? null : l;
24489
24491
  }
24490
24492
  function HA() {
24491
- const e = jL();
24493
+ const e = FL();
24492
24494
  try {
24493
24495
  return Intl.DateTimeFormat.supportedLocalesOf([e]).length > 0 ? e : "en";
24494
24496
  } catch {
@@ -24505,7 +24507,7 @@ function ea(e, t, n, l) {
24505
24507
  function VA(e) {
24506
24508
  return e % 100 >= 11 && e % 100 <= 13 ? "th" : ["th", "st", "nd", "rd"][e % 10] ?? "th";
24507
24509
  }
24508
- function Dw(e) {
24510
+ function Bw(e) {
24509
24511
  const t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = t.getUTCDay() || 7;
24510
24512
  t.setUTCDate(t.getUTCDate() + 4 - n);
24511
24513
  const l = new Date(Date.UTC(t.getUTCFullYear(), 0, 1));
@@ -24515,7 +24517,7 @@ function xc(e, t) {
24515
24517
  const n = -e.getTimezoneOffset(), l = n >= 0 ? "+" : "-", i = Math.abs(n), c = String(Math.floor(i / 60)).padStart(2, "0"), s = String(i % 60).padStart(2, "0");
24516
24518
  return t ? `${l}${c}:${s}` : `${l}${c}${s}`;
24517
24519
  }
24518
- function nx(e, t) {
24520
+ function ax(e, t) {
24519
24521
  const n = HA(), l = (w, I = 2) => String(w).padStart(I, "0"), i = e.getDate(), c = e.getMonth(), s = e.getFullYear(), u = e.getHours(), d = s % 4 === 0 && s % 100 !== 0 || s % 400 === 0, y = Math.round(
24520
24522
  (Date.UTC(s, c, i) - Date.UTC(s, 0, 1)) / 864e5
24521
24523
  ), p = /(^|[^\\])[dj]/.test(t), k = (w) => {
@@ -24537,7 +24539,7 @@ function nx(e, t) {
24537
24539
  case "z":
24538
24540
  return String(y);
24539
24541
  case "W":
24540
- return l(Dw(e).week);
24542
+ return l(Bw(e).week);
24541
24543
  case "F":
24542
24544
  return p ? ea(e, n, { day: "numeric", month: "long" }, "month") : ea(e, n, { month: "long" }, "month");
24543
24545
  case "m":
@@ -24551,7 +24553,7 @@ function nx(e, t) {
24551
24553
  case "L":
24552
24554
  return d ? "1" : "0";
24553
24555
  case "o":
24554
- return String(Dw(e).year);
24556
+ return String(Bw(e).year);
24555
24557
  case "X":
24556
24558
  case "x":
24557
24559
  case "Y":
@@ -24603,7 +24605,7 @@ function nx(e, t) {
24603
24605
  case "Z":
24604
24606
  return String(-e.getTimezoneOffset() * 60);
24605
24607
  case "c":
24606
- return nx(e, "Y-m-d\\TH:i:sP");
24608
+ return ax(e, "Y-m-d\\TH:i:sP");
24607
24609
  case "r": {
24608
24610
  const I = (x, b) => ea(e, "en", x, b);
24609
24611
  return `${I({ weekday: "short" }, "weekday")}, ${l(i)} ${I({ month: "short" }, "month")} ${s} ${l(u)}:${l(e.getMinutes())}:${l(e.getSeconds())} ${xc(e, !1)}`;
@@ -24625,9 +24627,9 @@ function nx(e, t) {
24625
24627
  }
24626
24628
  return m;
24627
24629
  }
24628
- function Nb(e, t) {
24630
+ function Eb(e, t) {
24629
24631
  const n = $A(e);
24630
- return n === null ? e : nx(n, t);
24632
+ return n === null ? e : ax(n, t);
24631
24633
  }
24632
24634
  function PA(e, t, n) {
24633
24635
  const l = typeof e == "number" ? e : Number(e);
@@ -24652,7 +24654,7 @@ const BA = {
24652
24654
  row: { default: null }
24653
24655
  },
24654
24656
  setup(e) {
24655
- const t = e, n = f(() => t.meta ?? {}), l = f(() => zb(t.value, t.preset ?? void 0, n.value)), i = f(() => {
24657
+ const t = e, n = f(() => t.meta ?? {}), l = f(() => Ab(t.value, t.preset ?? void 0, n.value)), i = f(() => {
24656
24658
  if (t.preset !== "image") return "";
24657
24659
  const p = t.value;
24658
24660
  if (typeof p == "string") return p;
@@ -24670,7 +24672,7 @@ const BA = {
24670
24672
  () => t.preset === "link" ? zA(n.value.template, t.row ?? {}, t.value) : ""
24671
24673
  ), y = f(() => n.value.target || void 0);
24672
24674
  return (p, k) => e.preset === "image" ? (r(), h("span", BA, [
24673
- i.value ? (r(), z(o(hL), {
24675
+ i.value ? (r(), z(o(uL), {
24674
24676
  key: 0,
24675
24677
  src: i.value,
24676
24678
  alt: "",
@@ -24679,7 +24681,7 @@ const BA = {
24679
24681
  fit: "cover",
24680
24682
  radius: "sm"
24681
24683
  }, null, 8, ["src", "width", "height"])) : j("", !0)
24682
- ])) : e.preset === "badge" && l.value !== "" ? (r(), z(o(vb), {
24684
+ ])) : e.preset === "badge" && l.value !== "" ? (r(), z(o(mb), {
24683
24685
  key: 1,
24684
24686
  variant: o(qA)(e.value, n.value)
24685
24687
  }, {
@@ -24687,7 +24689,7 @@ const BA = {
24687
24689
  T(v(l.value), 1)
24688
24690
  ]),
24689
24691
  _: 1
24690
- }, 8, ["variant"])) : e.preset === "link" && d.value ? (r(), z(o(fb), {
24692
+ }, 8, ["variant"])) : e.preset === "link" && d.value ? (r(), z(o(vb), {
24691
24693
  key: 2,
24692
24694
  class: "admin-cell-truncate",
24693
24695
  href: d.value,
@@ -24706,7 +24708,7 @@ const BA = {
24706
24708
  title: l.value
24707
24709
  }, v(l.value), 9, DA));
24708
24710
  }
24709
- }), Rw = J({
24711
+ }), Dw = J({
24710
24712
  name: "FilterEditor",
24711
24713
  props: {
24712
24714
  filter: { type: Object, required: !0 },
@@ -24839,7 +24841,7 @@ const BA = {
24839
24841
  }, iz = { class: "admin-toolbar__chip-text" }, lz = {
24840
24842
  type: "button",
24841
24843
  class: "admin-toolbar__chip"
24842
- }, cz = { class: "admin-toolbar__chip-text" }, rz = ["placeholder"], dz = { class: "admin-toolbar__popover-actions" }, Tw = 4, ox = /* @__PURE__ */ J({
24844
+ }, cz = { class: "admin-toolbar__chip-text" }, rz = ["placeholder"], dz = { class: "admin-toolbar__popover-actions" }, Rw = 4, nx = /* @__PURE__ */ J({
24843
24845
  __name: "AdminFilterToolbar",
24844
24846
  props: {
24845
24847
  search: {},
@@ -24872,11 +24874,11 @@ const BA = {
24872
24874
  () => n.filters.filter((q) => !s(n.values[q.name]))
24873
24875
  ), y = V(/* @__PURE__ */ new Set()), p = f(
24874
24876
  () => d.value.filter(
24875
- (q, F) => y.value.has(q.name) || F < Tw
24877
+ (q, F) => y.value.has(q.name) || F < Rw
24876
24878
  )
24877
24879
  ), k = f(
24878
24880
  () => d.value.filter(
24879
- (q, F) => !y.value.has(q.name) && F >= Tw
24881
+ (q, F) => !y.value.has(q.name) && F >= Rw
24880
24882
  )
24881
24883
  );
24882
24884
  function m(q) {
@@ -25006,7 +25008,7 @@ const BA = {
25006
25008
  onKeydown: F[1] || (F[1] = be(() => {
25007
25009
  }, ["stop"]))
25008
25010
  }, [
25009
- _(o(Rw), {
25011
+ _(o(Dw), {
25010
25012
  filter: A,
25011
25013
  draft: S(A.name),
25012
25014
  "is-checked": (E) => D(A.name, E),
@@ -25059,7 +25061,7 @@ const BA = {
25059
25061
  onKeydown: F[2] || (F[2] = be(() => {
25060
25062
  }, ["stop"]))
25061
25063
  }, [
25062
- _(o(Rw), {
25064
+ _(o(Dw), {
25063
25065
  filter: A,
25064
25066
  draft: S(A.name),
25065
25067
  "is-checked": (E) => D(A.name, E),
@@ -25215,7 +25217,7 @@ const BA = {
25215
25217
  key: U(A),
25216
25218
  class: "admin-toolbar__list-item admin-toolbar__list-item--checkbox"
25217
25219
  }, [
25218
- _(o(uw), {
25220
+ _(o(sw), {
25219
25221
  "model-value": R(A),
25220
25222
  label: O(A),
25221
25223
  disabled: A.cantHide === !0,
@@ -25273,7 +25275,7 @@ const BA = {
25273
25275
  ])
25274
25276
  ]));
25275
25277
  }
25276
- }), sz = ["title"], uz = ["disabled"], hz = ["disabled"], yz = ["disabled"], pz = ["value"], kz = ["disabled"], mz = ["disabled"], ix = /* @__PURE__ */ J({
25278
+ }), sz = ["title"], uz = ["disabled"], hz = ["disabled"], yz = ["disabled"], pz = ["value"], kz = ["disabled"], mz = ["disabled"], ox = /* @__PURE__ */ J({
25277
25279
  __name: "InlineEditCell",
25278
25280
  props: {
25279
25281
  resourceSlug: {},
@@ -25379,7 +25381,7 @@ const BA = {
25379
25381
  value: S.value
25380
25382
  }, v(S.label), 9, pz))), 128))
25381
25383
  ], 40, yz)), [
25382
- [Gx, c.value]
25384
+ [Zx, c.value]
25383
25385
  ]) : e.inputType === "textarea" ? Ct((r(), h("textarea", {
25384
25386
  key: 4,
25385
25387
  ref_key: "inputRef",
@@ -25645,15 +25647,15 @@ const BA = {
25645
25647
  ], 64)) : j("", !0)
25646
25648
  ]),
25647
25649
  M("div", Lz, [
25648
- u.value && c.value.length === 0 ? (r(), h(N, { key: 0 }, Y(6, (ne) => _(o(Ge), { key: ne })), 64)) : d.value ? (r(), z(o(gb), {
25650
+ u.value && c.value.length === 0 ? (r(), h(N, { key: 0 }, Y(6, (ne) => _(o(Ge), { key: ne })), 64)) : d.value ? (r(), z(o(fb), {
25649
25651
  key: 1,
25650
25652
  message: d.value.message,
25651
25653
  onRetry: b
25652
- }, null, 8, ["message"])) : c.value.length === 0 ? (r(), z(o(Mb), {
25654
+ }, null, 8, ["message"])) : c.value.length === 0 ? (r(), z(o(gb), {
25653
25655
  key: 2,
25654
25656
  title: o(g)("Нет данных"),
25655
25657
  hint: y.value.length > 0 ? o(g)("Ничего не найдено по запросу.") : null
25656
- }, null, 8, ["title", "hint"])) : (r(), z(o(yL), {
25658
+ }, null, 8, ["title", "hint"])) : (r(), z(o(hL), {
25657
25659
  key: 3,
25658
25660
  nodes: c.value,
25659
25661
  "virtual-root": x.value,
@@ -25697,7 +25699,7 @@ const BA = {
25697
25699
  }, Wz = ["title", "onClick"], Zz = ["title", "onClick"], Gz = ["title", "onClick"], Kz = ["title", "onClick"], Xz = ["title", "onClick"], Jz = {
25698
25700
  key: 6,
25699
25701
  class: "admin-resource-index__footer"
25700
- }, Uw = "__row_actions__", Ow = "__row_reorder__", Yz = /* @__PURE__ */ J({
25702
+ }, Tw = "__row_actions__", Uw = "__row_reorder__", Yz = /* @__PURE__ */ J({
25701
25703
  __name: "ResourceIndexPage",
25702
25704
  props: {
25703
25705
  slug: {},
@@ -25708,16 +25710,16 @@ const BA = {
25708
25710
  },
25709
25711
  emits: ["bulk-action", "row-click", "import", "header-action"],
25710
25712
  setup(e, { emit: t }) {
25711
- const n = rc(), l = (X) => n.tr(X), i = (X, Q) => n.t(X, Q), c = (X, Q, ae) => n.has(X) ? n.t(X, ae) : Q, s = e, u = t, d = ax(), y = Ee(), p = kw(), k = Be(), m = f(() => y.getResource(s.slug)), w = f(
25713
+ const n = rc(), l = (X) => n.tr(X), i = (X, Q) => n.t(X, Q), c = (X, Q, ae) => n.has(X) ? n.t(X, ae) : Q, s = e, u = t, d = tx(), y = Ee(), p = pw(), k = Be(), m = f(() => y.getResource(s.slug)), w = f(
25712
25714
  () => s.title ?? m.value?.label ?? s.slug
25713
25715
  ), I = f(() => {
25714
25716
  if (s.createRouteName !== null)
25715
25717
  return k.hasRoute(s.createRouteName) ? s.createRouteName : null;
25716
25718
  const X = `admin.resource.${s.slug}.create`;
25717
25719
  return k.hasRoute(X) ? X : null;
25718
- }), x = f(() => qb(m.value?.actions)), b = f(() => x.value.filter((X) => !gt(X))), S = f(() => x.value.filter((X) => gt(X))), C = f(
25720
+ }), x = f(() => Sb(m.value?.actions)), b = f(() => x.value.filter((X) => !gt(X))), S = f(() => x.value.filter((X) => gt(X))), C = f(
25719
25721
  () => x.value.filter((X) => X.position.includes("row") && gt(X))
25720
- ), B = (X) => gt(X) && !GI(X, d.selectedCount), $ = vw({
25722
+ ), B = (X) => gt(X) && !ZI(X, d.selectedCount), $ = mw({
25721
25723
  ids: () => [...d.selection],
25722
25724
  async execute(X, Q, ae) {
25723
25725
  p.start();
@@ -25816,15 +25818,15 @@ const BA = {
25816
25818
  ), hi = await ve.post(
25817
25819
  "/import/preview",
25818
25820
  { resource: s.slug, upload_id: vc.upload_id }
25819
- ), Tb = await ve.post(
25821
+ ), Rb = await ve.post(
25820
25822
  "/import/start",
25821
25823
  {
25822
25824
  resource: s.slug,
25823
25825
  upload_id: vc.upload_id,
25824
25826
  mapping: hi.mapping
25825
25827
  }
25826
- ), fc = await G(ve, Tb.process_id), gc = fc.imported ?? 0, Aw = fc.failed ?? 0;
25827
- Aw > 0 ? se.warning(i("Импорт завершён с ошибками: :imported записей, :failed ошибок.", { imported: gc, failed: Aw })) : se.success(i("Импортировано записей: :count.", { count: gc })), await d.load().catch(() => {
25828
+ ), fc = await G(ve, Rb.process_id), gc = fc.imported ?? 0, qw = fc.failed ?? 0;
25829
+ qw > 0 ? se.warning(i("Импорт завершён с ошибками: :imported записей, :failed ошибок.", { imported: gc, failed: qw })) : se.success(i("Импортировано записей: :count.", { count: gc })), await d.load().catch(() => {
25828
25830
  });
25829
25831
  } catch (ie) {
25830
25832
  typeof console < "u" && console.error("[admin] import failed:", ie), se.error(
@@ -25866,17 +25868,17 @@ const BA = {
25866
25868
  }).filter((ie) => ie.key).filter((ie) => Me(ie.key));
25867
25869
  return [
25868
25870
  ...W.value ? [{
25869
- key: Ow,
25871
+ key: Uw,
25870
25872
  label: "",
25871
25873
  sortable: !1,
25872
25874
  align: "center",
25873
25875
  width: "32px",
25874
- // Pinned to the left edge, and the selection column with it.
25876
+ // Pinned to the left edge, next to the selection column.
25875
25877
  fixed: "left"
25876
25878
  }] : [],
25877
25879
  ...Q,
25878
25880
  {
25879
- key: Uw,
25881
+ key: Tw,
25880
25882
  label: "",
25881
25883
  sortable: !1,
25882
25884
  align: "right",
@@ -25937,25 +25939,25 @@ const BA = {
25937
25939
  () => !d.isEmpty || $e.value
25938
25940
  ), _o = f(
25939
25941
  () => m.value?.filters ?? []
25940
- ), $b = f(
25942
+ ), zb = f(
25941
25943
  () => m.value?.columns ?? []
25942
- ), Hb = f(() => {
25944
+ ), $b = f(() => {
25943
25945
  const X = (m.value?.label ?? s.slug).toLowerCase();
25944
25946
  return i("Поиск по :label…", { label: X });
25945
25947
  }), Te = V(null), Ye = V({});
25946
25948
  async function Co(X, Q) {
25947
25949
  await d.setFilter(X, Q);
25948
25950
  }
25949
- async function Vb(X) {
25951
+ async function Hb(X) {
25950
25952
  await d.setSearch(X);
25951
25953
  }
25952
- async function Pb() {
25954
+ async function Vb() {
25953
25955
  d.search = "", await d.clearFilters();
25954
25956
  }
25955
- async function Fb(X) {
25957
+ async function Pb(X) {
25956
25958
  Te.value = X, await d.load({ group_by: X });
25957
25959
  }
25958
- function jb(X) {
25960
+ function Fb(X) {
25959
25961
  Ye.value = X;
25960
25962
  }
25961
25963
  const Yt = V([]), lt = V(null);
@@ -25976,7 +25978,7 @@ const BA = {
25976
25978
  const Q = X.state;
25977
25979
  d.search = Q.search ?? "", d.filters = { ...Q.filters ?? {} }, d.sortKey = Q.sort?.key ?? null, d.sortDirection = Q.sort?.direction ?? null, Te.value = Q.group_by ?? null, Ye.value = { ...Q.columns ?? {} }, d.meta.page = 1, await We();
25978
25980
  }
25979
- async function Bb() {
25981
+ async function jb() {
25980
25982
  lt.value = null, d.search = "", d.filters = {}, d.sortKey = null, d.sortDirection = null, Te.value = null, Ye.value = {}, d.meta.page = 1, await We();
25981
25983
  }
25982
25984
  async function pc(X, Q) {
@@ -26035,7 +26037,7 @@ const BA = {
26035
26037
  de = setInterval(() => {
26036
26038
  re.value += 1;
26037
26039
  }, 3e4);
26038
- }), mb(() => {
26040
+ }), kb(() => {
26039
26041
  de !== null && clearInterval(de);
26040
26042
  });
26041
26043
  const xe = f(() => {
@@ -26075,38 +26077,38 @@ const BA = {
26075
26077
  async function qo(X) {
26076
26078
  await Ke(), await d.setSort(X, d.sortDirection);
26077
26079
  }
26078
- async function Db(X) {
26080
+ async function Bb(X) {
26079
26081
  await Ke(), await d.setSort(d.sortKey, X);
26080
26082
  }
26081
26083
  function Ao(X) {
26082
26084
  d.selection = X;
26083
26085
  }
26084
- async function Rb(X) {
26086
+ async function Db(X) {
26085
26087
  await d.setPage(X);
26086
26088
  }
26087
26089
  function qt(X) {
26088
26090
  const Q = X?.id ?? X?.key;
26089
26091
  return typeof Q == "string" || typeof Q == "number" ? Q : null;
26090
26092
  }
26091
- function Vx(X) {
26093
+ function Hx(X) {
26092
26094
  return qt(ke(X) ?? {}) ?? "";
26093
26095
  }
26094
- function Px(X) {
26096
+ function Vx(X) {
26095
26097
  u("row-click", X);
26096
26098
  const Q = qt(X);
26097
26099
  Q !== null && k.push({ name: `admin.resource.${s.slug}.view`, params: { id: String(Q) } });
26098
26100
  }
26099
- function Fx(X, Q) {
26101
+ function Px(X, Q) {
26100
26102
  Q?.stopPropagation();
26101
26103
  const ae = qt(X);
26102
26104
  ae !== null && k.push({ name: `admin.resource.${s.slug}.view`, params: { id: String(ae) } });
26103
26105
  }
26104
- function jx(X, Q) {
26106
+ function Fx(X, Q) {
26105
26107
  Q?.stopPropagation();
26106
26108
  const ae = qt(X);
26107
26109
  ae !== null && k.push({ name: `admin.resource.${s.slug}.edit`, params: { id: String(ae) } });
26108
26110
  }
26109
- async function Bx(X, Q) {
26111
+ async function jx(X, Q) {
26110
26112
  Q?.stopPropagation();
26111
26113
  const ae = qt(X);
26112
26114
  if (ae !== null && await $.confirm(c("admin.resource.delete_confirm", "Удалить запись?"), !0))
@@ -26121,10 +26123,10 @@ const BA = {
26121
26123
  p.end();
26122
26124
  }
26123
26125
  }
26124
- function Dx(X) {
26126
+ function Bx(X) {
26125
26127
  return X.deleted_at !== null && X.deleted_at !== void 0;
26126
26128
  }
26127
- async function Rx(X, Q) {
26129
+ async function Dx(X, Q) {
26128
26130
  Q?.stopPropagation();
26129
26131
  const ae = qt(X);
26130
26132
  if (ae !== null)
@@ -26140,7 +26142,7 @@ const BA = {
26140
26142
  }
26141
26143
  }
26142
26144
  const At = V(null), Qt = V(null), mc = V("before");
26143
- function Tx(X, Q) {
26145
+ function Rx(X, Q) {
26144
26146
  if (!W.value || !Q.dataTransfer) return;
26145
26147
  if (!Q.target?.closest('[data-row-drag-handle="true"]')) {
26146
26148
  Q.preventDefault();
@@ -26148,7 +26150,7 @@ const BA = {
26148
26150
  }
26149
26151
  At.value = X, Q.dataTransfer.effectAllowed = "move", Q.dataTransfer.setData("text/plain", String(X));
26150
26152
  }
26151
- function Ux(X, Q) {
26153
+ function Tx(X, Q) {
26152
26154
  if (!W.value || At.value === null) return;
26153
26155
  Q.preventDefault();
26154
26156
  const ae = Q.currentTarget;
@@ -26158,10 +26160,10 @@ const BA = {
26158
26160
  }
26159
26161
  Qt.value = X;
26160
26162
  }
26161
- function Ox() {
26163
+ function Ux() {
26162
26164
  At.value = null, Qt.value = null;
26163
26165
  }
26164
- async function Ex(X, Q) {
26166
+ async function Ox(X, Q) {
26165
26167
  if (Q.preventDefault(), !W.value || At.value === null) return;
26166
26168
  const ae = At.value, ie = mc.value === "after" ? X + 1 : X, ve = ie > ae ? ie - 1 : ie;
26167
26169
  if (At.value = null, Qt.value = null, ae === ve) return;
@@ -26169,8 +26171,8 @@ const BA = {
26169
26171
  He.splice(ve, 0, vc), d.items = He;
26170
26172
  try {
26171
26173
  p.start();
26172
- const { getAdminClient: hi } = await Promise.resolve().then(() => ze), Tb = hi(), fc = He.map((gc) => d.rowId(gc));
26173
- await Tb.post(`/${s.slug}/reorder`, { ids: fc }), se.success(c("admin.resource.reorder_saved", "Порядок сохранён."));
26174
+ const { getAdminClient: hi } = await Promise.resolve().then(() => ze), Rb = hi(), fc = He.map((gc) => d.rowId(gc));
26175
+ await Rb.post(`/${s.slug}/reorder`, { ids: fc }), se.success(c("admin.resource.reorder_saved", "Порядок сохранён."));
26174
26176
  } catch (hi) {
26175
26177
  typeof console < "u" && console.error("[admin] reorder failed:", hi), se.error(c("admin.resource.reorder_failed", "Не удалось сохранить порядок.")), await d.load().catch(() => {
26176
26178
  });
@@ -26178,7 +26180,7 @@ const BA = {
26178
26180
  p.end();
26179
26181
  }
26180
26182
  }
26181
- async function Nx(X, Q) {
26183
+ async function Ex(X, Q) {
26182
26184
  Q?.stopPropagation();
26183
26185
  const ae = qt(X);
26184
26186
  if (ae !== null && await $.confirm(c("admin.resource.force_delete_confirm", "Удалить запись НАВСЕГДА? Действие необратимо."), !0))
@@ -26193,7 +26195,7 @@ const BA = {
26193
26195
  p.end();
26194
26196
  }
26195
26197
  }
26196
- async function qw() {
26198
+ async function Sw() {
26197
26199
  await d.load().catch(() => {
26198
26200
  });
26199
26201
  }
@@ -26255,7 +26257,7 @@ const BA = {
26255
26257
  })
26256
26258
  ]),
26257
26259
  default: L(() => [
26258
- _(o(et), { onClick: Bb }, {
26260
+ _(o(et), { onClick: jb }, {
26259
26261
  default: L(() => [
26260
26262
  T(v(l("Все")) + " " + v((m.value?.label ?? e.slug).toLowerCase()), 1)
26261
26263
  ]),
@@ -26308,7 +26310,7 @@ const BA = {
26308
26310
  }, 8, ["aria-label"])
26309
26311
  ]),
26310
26312
  default: L(() => [
26311
- _(o(et), { onClick: qw }, {
26313
+ _(o(et), { onClick: Sw }, {
26312
26314
  default: L(() => [
26313
26315
  T(v(l("Обновить")), 1)
26314
26316
  ]),
@@ -26382,7 +26384,7 @@ const BA = {
26382
26384
  M("b", null, v(o(d).selectedCount), 1)
26383
26385
  ]),
26384
26386
  Q[5] || (Q[5] = M("span", { class: "admin-bulk-toolbar__divider" }, null, -1)),
26385
- (r(!0), h(N, null, Y(S.value, (ae) => (r(), z(KI, {
26387
+ (r(!0), h(N, null, Y(S.value, (ae) => (r(), z(GI, {
26386
26388
  key: ae.name,
26387
26389
  action: ae,
26388
26390
  size: "sm",
@@ -26423,21 +26425,21 @@ const BA = {
26423
26425
  ]),
26424
26426
  _: 1
26425
26427
  }, 8, ["onClick"])
26426
- ])) : it.value ? (r(), z(ox, {
26428
+ ])) : it.value ? (r(), z(nx, {
26427
26429
  key: 1,
26428
26430
  search: o(d).search,
26429
- "search-placeholder": Hb.value,
26431
+ "search-placeholder": $b.value,
26430
26432
  filters: _o.value,
26431
26433
  values: o(d).filters,
26432
- columns: $b.value,
26434
+ columns: zb.value,
26433
26435
  "group-by": Te.value,
26434
26436
  "column-visibility": Ye.value,
26435
26437
  "enable-saved-views": A.value,
26436
- "onUpdate:search": Vb,
26438
+ "onUpdate:search": Hb,
26437
26439
  onApplyFilter: Co,
26438
- onReset: Pb,
26439
- onGroupBy: Fb,
26440
- onColumnsVisibility: jb,
26440
+ onReset: Vb,
26441
+ onGroupBy: Pb,
26442
+ onColumnsVisibility: Fb,
26441
26443
  onSaveView: kc
26442
26444
  }, {
26443
26445
  extra: L(() => [
@@ -26453,7 +26455,7 @@ const BA = {
26453
26455
  key: ae,
26454
26456
  height: "40px"
26455
26457
  })), 64)) : j("", !0)
26456
- ])) : o(d).hasError ? (r(), z(o(gb), {
26458
+ ])) : o(d).hasError ? (r(), z(o(fb), {
26457
26459
  key: 3,
26458
26460
  title: l("Не удалось загрузить данные"),
26459
26461
  description: o(d).error?.message ?? l("Попробуйте обновить страницу."),
@@ -26462,7 +26464,7 @@ const BA = {
26462
26464
  actions: L(() => [
26463
26465
  _(o(ee), {
26464
26466
  variant: "primary",
26465
- onClick: qw
26467
+ onClick: Sw
26466
26468
  }, {
26467
26469
  default: L(() => [
26468
26470
  T(v(l("Обновить")), 1)
@@ -26471,7 +26473,7 @@ const BA = {
26471
26473
  })
26472
26474
  ]),
26473
26475
  _: 1
26474
- }, 8, ["title", "description"])) : o(d).isEmpty ? (r(), z(o(Mb), {
26476
+ }, 8, ["title", "description"])) : o(d).isEmpty ? (r(), z(o(gb), {
26475
26477
  key: 4,
26476
26478
  title: l("Пока пусто"),
26477
26479
  description: l("Создайте первую запись или измените фильтры."),
@@ -26497,17 +26499,18 @@ const BA = {
26497
26499
  "sort-key": o(d).sortKey,
26498
26500
  "sort-direction": o(d).sortDirection,
26499
26501
  selectable: "",
26502
+ "selection-fixed": "",
26500
26503
  selection: o(d).selection,
26501
26504
  "row-key": (ae) => o(d).rowId(ae),
26502
26505
  "onUpdate:sortKey": qo,
26503
- "onUpdate:sortDirection": Db,
26506
+ "onUpdate:sortDirection": Bb,
26504
26507
  "onUpdate:selection": Ao,
26505
- onRowClick: Px
26508
+ onRowClick: Vx
26506
26509
  }, oi({ _: 2 }, [
26507
26510
  Y(ce.value, (ae) => ({
26508
26511
  name: ae.key,
26509
26512
  fn: L((ie) => [
26510
- ae.key === Ow ? (r(), h("span", {
26513
+ ae.key === Uw ? (r(), h("span", {
26511
26514
  key: 0,
26512
26515
  class: pe([
26513
26516
  "admin-resource-index__row-drag",
@@ -26520,16 +26523,16 @@ const BA = {
26520
26523
  "data-row-drag-handle": "true",
26521
26524
  draggable: W.value,
26522
26525
  title: l("Перетащить"),
26523
- onDragstart: (ve) => Tx(
26526
+ onDragstart: (ve) => Rx(
26524
26527
  o(d).items.indexOf(ke(ie) ?? {}),
26525
26528
  ve
26526
26529
  ),
26527
- onDragover: (ve) => Ux(
26530
+ onDragover: (ve) => Tx(
26528
26531
  o(d).items.indexOf(ke(ie) ?? {}),
26529
26532
  ve
26530
26533
  ),
26531
- onDragend: Ox,
26532
- onDrop: (ve) => Ex(
26534
+ onDragend: Ux,
26535
+ onDrop: (ve) => Ox(
26533
26536
  o(d).items.indexOf(ke(ie) ?? {}),
26534
26537
  ve
26535
26538
  )
@@ -26538,24 +26541,24 @@ const BA = {
26538
26541
  icon: o(jo),
26539
26542
  size: 14
26540
26543
  }, null, 8, ["icon"])
26541
- ], 42, Ez)) : ae.key === Uw ? (r(), h("div", Nz, [
26544
+ ], 42, Ez)) : ae.key === Tw ? (r(), h("div", Nz, [
26542
26545
  M("button", {
26543
26546
  type: "button",
26544
26547
  class: "admin-resource-index__row-action",
26545
26548
  title: l("Просмотр"),
26546
- onClick: be((ve) => Fx(ke(ie) ?? {}, ve), ["stop"])
26549
+ onClick: be((ve) => Px(ke(ie) ?? {}, ve), ["stop"])
26547
26550
  }, [
26548
26551
  _(o(oe), {
26549
26552
  icon: o(Po),
26550
26553
  size: 16
26551
26554
  }, null, 8, ["icon"])
26552
26555
  ], 8, Wz),
26553
- Dx(ke(ie) ?? {}) ? (r(), h(N, { key: 1 }, [
26556
+ Bx(ke(ie) ?? {}) ? (r(), h(N, { key: 1 }, [
26554
26557
  M("button", {
26555
26558
  type: "button",
26556
26559
  class: "admin-resource-index__row-action",
26557
26560
  title: l("Восстановить"),
26558
- onClick: be((ve) => Rx(ke(ie) ?? {}, ve), ["stop"])
26561
+ onClick: be((ve) => Dx(ke(ie) ?? {}, ve), ["stop"])
26559
26562
  }, [
26560
26563
  _(o(oe), {
26561
26564
  icon: o(Gt),
@@ -26566,7 +26569,7 @@ const BA = {
26566
26569
  type: "button",
26567
26570
  class: "admin-resource-index__row-action admin-resource-index__row-action--danger",
26568
26571
  title: l("Удалить навсегда"),
26569
- onClick: be((ve) => Nx(ke(ie) ?? {}, ve), ["stop"])
26572
+ onClick: be((ve) => Ex(ke(ie) ?? {}, ve), ["stop"])
26570
26573
  }, [
26571
26574
  _(o(oe), {
26572
26575
  icon: o(tt),
@@ -26579,7 +26582,7 @@ const BA = {
26579
26582
  type: "button",
26580
26583
  class: "admin-resource-index__row-action",
26581
26584
  title: l("Редактировать"),
26582
- onClick: be((ve) => jx(ke(ie) ?? {}, ve), ["stop"])
26585
+ onClick: be((ve) => Fx(ke(ie) ?? {}, ve), ["stop"])
26583
26586
  }, [
26584
26587
  _(o(oe), {
26585
26588
  icon: o(ft),
@@ -26591,7 +26594,7 @@ const BA = {
26591
26594
  type: "button",
26592
26595
  class: "admin-resource-index__row-action admin-resource-index__row-action--danger",
26593
26596
  title: l("Удалить"),
26594
- onClick: be((ve) => Bx(ke(ie) ?? {}, ve), ["stop"])
26597
+ onClick: be((ve) => jx(ke(ie) ?? {}, ve), ["stop"])
26595
26598
  }, [
26596
26599
  _(o(oe), {
26597
26600
  icon: o(tt),
@@ -26628,10 +26631,10 @@ const BA = {
26628
26631
  ])) : Fe(X.$slots, `cell-${ae.key}`, {
26629
26632
  row: ke(ie)
26630
26633
  }, () => [
26631
- ye(ae.key) ? (r(), z(ix, {
26634
+ ye(ae.key) ? (r(), z(ox, {
26632
26635
  key: 0,
26633
26636
  "resource-slug": e.slug,
26634
- "row-id": Vx(ie),
26637
+ "row-id": Hx(ie),
26635
26638
  column: ae.key,
26636
26639
  value: (ke(ie) ?? {})[ae.key],
26637
26640
  editable: !0,
@@ -26665,24 +26668,24 @@ const BA = {
26665
26668
  ]), 1032, ["columns", "data", "sort-key", "sort-direction", "selection", "row-key"])
26666
26669
  ])),
26667
26670
  !o(d).loading && !o(d).hasError && !o(d).isEmpty ? (r(), h("footer", Jz, [
26668
- _(o(xI), {
26671
+ _(o(II), {
26669
26672
  "model-value": o(d).meta.page,
26670
26673
  total: o(d).meta.total,
26671
26674
  "per-page": o(d).meta.per_page,
26672
- "onUpdate:modelValue": Rb
26675
+ "onUpdate:modelValue": Db
26673
26676
  }, null, 8, ["model-value", "total", "per-page"])
26674
26677
  ])) : j("", !0),
26675
- _(fw, { runner: o($) }, null, 8, ["runner"])
26678
+ _(vw, { runner: o($) }, null, 8, ["runner"])
26676
26679
  ]));
26677
26680
  }
26678
26681
  });
26679
- function lx(e, t) {
26682
+ function ix(e, t) {
26680
26683
  for (const n of e) {
26681
26684
  const l = n;
26682
26685
  if (l.kind === "field" && l.name === t) return l;
26683
26686
  const i = l.items ?? l.children;
26684
26687
  if (Array.isArray(i)) {
26685
- const c = lx(i, t);
26688
+ const c = ix(i, t);
26686
26689
  if (c !== null) return c;
26687
26690
  }
26688
26691
  }
@@ -26690,7 +26693,7 @@ function lx(e, t) {
26690
26693
  }
26691
26694
  function Qz(e, t) {
26692
26695
  if (t === null) return null;
26693
- const n = lx(e, "status"), i = n?.attributes?.options ?? n?.options;
26696
+ const n = ix(e, "status"), i = n?.attributes?.options ?? n?.options;
26694
26697
  if (Array.isArray(i)) {
26695
26698
  const c = i.find(
26696
26699
  (s) => String(s?.value) === t
@@ -26715,7 +26718,7 @@ const lb = /* @__PURE__ */ J({
26715
26718
  return Number.isFinite(u) && u >= 1 && u <= 12 ? u : 0;
26716
26719
  }
26717
26720
  const l = f(() => t.items.some((i) => n(i) > 0));
26718
- return (i, c) => l.value ? (r(), z(o(bb), {
26721
+ return (i, c) => l.value ? (r(), z(o(Mb), {
26719
26722
  key: 0,
26720
26723
  cols: 12,
26721
26724
  "col-gap": e.gap,
@@ -26751,7 +26754,7 @@ const lb = /* @__PURE__ */ J({
26751
26754
  }, r$ = {
26752
26755
  key: 2,
26753
26756
  class: "admin-resource-form__savebar"
26754
- }, d$ = { class: "admin-resource-form__savebar-hint" }, Ew = /* @__PURE__ */ J({
26757
+ }, d$ = { class: "admin-resource-form__savebar-hint" }, Ow = /* @__PURE__ */ J({
26755
26758
  __name: "ResourceFormPage",
26756
26759
  props: {
26757
26760
  slug: {},
@@ -26759,7 +26762,7 @@ const lb = /* @__PURE__ */ J({
26759
26762
  indexRouteName: { default: null }
26760
26763
  },
26761
26764
  setup(e) {
26762
- const t = e, n = _b(), l = Ee(), i = Be(), c = ut();
26765
+ const t = e, n = Lb(), l = Ee(), i = Be(), c = ut();
26763
26766
  function s() {
26764
26767
  const D = {};
26765
26768
  for (const [H, P] of Object.entries(c.query))
@@ -26777,7 +26780,7 @@ const lb = /* @__PURE__ */ J({
26777
26780
  n.errors,
26778
26781
  t.id !== null && t.id !== void 0 ? "update" : "create"
26779
26782
  );
26780
- tx({
26783
+ ex({
26781
26784
  url: () => `/${t.slug}/listener`,
26782
26785
  extra: () => n.isCreate ? { context: "create" } : { context: "update", id: t.id }
26783
26786
  }), ge(
@@ -26865,7 +26868,7 @@ const lb = /* @__PURE__ */ J({
26865
26868
  onClick: $
26866
26869
  }, v(o(g)("← Назад")), 1),
26867
26870
  M("h1", n$, v(w.value), 1),
26868
- x.value ? (r(), z(o(vb), {
26871
+ x.value ? (r(), z(o(mb), {
26869
26872
  key: 0,
26870
26873
  variant: b.value
26871
26874
  }, {
@@ -26989,7 +26992,7 @@ const lb = /* @__PURE__ */ J({
26989
26992
  ])) : j("", !0)
26990
26993
  ]));
26991
26994
  }
26992
- }), si = Sb(), aO = si.register, cb = si.get, nO = si.has, oO = si.list, iO = si.clear, s$ = si.registerBundle, u$ = /* @__PURE__ */ J({
26995
+ }), si = Cb(), aO = si.register, cb = si.get, nO = si.has, oO = si.list, iO = si.clear, s$ = si.registerBundle, u$ = /* @__PURE__ */ J({
26993
26996
  __name: "UnknownEntry",
26994
26997
  props: {
26995
26998
  type: {},
@@ -27067,7 +27070,7 @@ const lb = /* @__PURE__ */ J({
27067
27070
  const w = ni("InfolistRenderer", !0);
27068
27071
  return l.value.kind === "entry" && e.node.label ? (r(), h("div", h$, [
27069
27072
  M("span", y$, v(e.node.label), 1),
27070
- (r(), z(Pe(l.value.component), Mo(MI(i.value)), null, 16))
27073
+ (r(), z(Pe(l.value.component), Mo(gI(i.value)), null, 16))
27071
27074
  ])) : l.value.kind === "entry" ? (r(), z(Pe(l.value.component), Mo(mt({ key: 1 }, i.value)), null, 16)) : l.value.kind === "layout" && l.value.layoutType === "rows" ? (r(), h("div", p$, [
27072
27075
  (r(!0), h(N, null, Y(c.value, (I, x) => (r(), z(w, {
27073
27076
  key: x,
@@ -27149,7 +27152,7 @@ const lb = /* @__PURE__ */ J({
27149
27152
  }, T$ = { class: "admin-audit-timeline__diff-before" }, U$ = { class: "admin-audit-timeline__diff-after" }, O$ = {
27150
27153
  key: 1,
27151
27154
  class: "admin-audit-timeline__detail"
27152
- }, cx = /* @__PURE__ */ J({
27155
+ }, lx = /* @__PURE__ */ J({
27153
27156
  __name: "AuditTimeline",
27154
27157
  props: {
27155
27158
  subjectType: {},
@@ -27240,7 +27243,7 @@ const lb = /* @__PURE__ */ J({
27240
27243
  ]),
27241
27244
  M("div", z$, [
27242
27245
  M("div", $$, [
27243
- _(o(dw), {
27246
+ _(o(rw), {
27244
27247
  name: b.actor?.name ?? "?",
27245
27248
  alt: b.actor?.name ?? o(g)("Неизвестный"),
27246
27249
  size: "xs"
@@ -27296,8 +27299,8 @@ const lb = /* @__PURE__ */ J({
27296
27299
  uidPrefix: { default: "#" }
27297
27300
  },
27298
27301
  setup(e) {
27299
- const t = e, n = _b(), l = Ee(), i = Be();
27300
- Ab(n.state);
27302
+ const t = e, n = Lb(), l = Ee(), i = Be();
27303
+ qb(n.state);
27301
27304
  const c = f(() => l.getResource(t.slug)), s = f(() => (c.value?.features ?? {}).editable !== !1), u = f(
27302
27305
  () => c.value?.infolist ?? c.value?.fields ?? []
27303
27306
  ), d = f(() => t.auditSubjectType !== null ? t.auditSubjectType : c.value?.subject_type ?? null), y = f(() => {
@@ -27343,7 +27346,7 @@ const lb = /* @__PURE__ */ J({
27343
27346
  function x(H) {
27344
27347
  return I[H.toLowerCase()] ?? "neutral";
27345
27348
  }
27346
- const b = f(() => qb(c.value?.actions)), S = vw({
27349
+ const b = f(() => Sb(c.value?.actions)), S = mw({
27347
27350
  ids: () => [t.id],
27348
27351
  async execute(H, P) {
27349
27352
  const { getAdminClient: U } = await Promise.resolve().then(() => ze);
@@ -27522,7 +27525,7 @@ const lb = /* @__PURE__ */ J({
27522
27525
  class: "admin-resource-view__card"
27523
27526
  }, {
27524
27527
  default: L(() => [
27525
- _(cx, {
27528
+ _(lx, {
27526
27529
  "subject-type": d.value,
27527
27530
  "subject-id": e.id
27528
27531
  }, null, 8, ["subject-type", "subject-id"])
@@ -27555,7 +27558,7 @@ const lb = /* @__PURE__ */ J({
27555
27558
  })
27556
27559
  ])
27557
27560
  ])),
27558
- _(fw, { runner: o(S) }, null, 8, ["runner"])
27561
+ _(vw, { runner: o(S) }, null, 8, ["runner"])
27559
27562
  ]));
27560
27563
  }
27561
27564
  }), rH = [0.2, 3 / 8, 5 / 9, 2 / 3], dH = (e, t) => (n) => {
@@ -27564,37 +27567,37 @@ const lb = /* @__PURE__ */ J({
27564
27567
  }, sH = { min: 0, L: 0, M: 1, Q: 2, H: 3, max: 3 }, Lo = (e) => new Uint8Array(e), pi = (e) => {
27565
27568
  const t = new Error(`lean-qr error ${e}`);
27566
27569
  throw t.code = e, t;
27567
- }, Lc = (e) => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".indexOf(e), ew = (e) => e.charCodeAt(0), rx = (...e) => (t, n) => e.forEach((l) => l(t, n)), dx = (e) => (t) => {
27570
+ }, Lc = (e) => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".indexOf(e), Qb = (e) => e.charCodeAt(0), cx = (...e) => (t, n) => e.forEach((l) => l(t, n)), rx = (e) => (t) => {
27568
27571
  t.eci !== e && (t.push(7, 4), e < 128 ? t.push(e, 8) : e < 16384 ? t.push(32768 | e, 16) : t.push(12582912 | e, 24), t.eci = e);
27569
- }, Mw = (e) => (t, n) => {
27572
+ }, gw = (e) => (t, n) => {
27570
27573
  t.push(4, 4), t.push(e.length, 8 + 8 * (n > 9)), e.forEach((l) => t.push(l, 8));
27571
- }, ui = (e, t, n, l, i = (s, u) => n(s.length, u), c = l ? (s) => rx(dx(l), e(s)) : e) => (c.test = t, c.l = n, c.est = i, c.eci = l && [l], c), sx = ui((e) => (t, n) => {
27574
+ }, ui = (e, t, n, l, i = (s, u) => n(s.length, u), c = l ? (s) => cx(rx(l), e(s)) : e) => (c.test = t, c.l = n, c.est = i, c.eci = l && [l], c), dx = ui((e) => (t, n) => {
27572
27575
  t.push(1, 4), t.push(e.length, 10 + 2 * (n > 26) + 2 * (n > 9));
27573
27576
  let l = 0;
27574
27577
  for (; l < e.length - 2; l += 3) t.push(+e.slice(l, l + 3), 10);
27575
27578
  l < e.length - 1 ? t.push(+e.slice(l), 7) : l < e.length && t.push(+e[l], 4);
27576
- }, (e) => /[0-9]/.test(e), (e, t) => 14 + 2 * (t > 26) + 2 * (t > 9) + 10 * e / 3), ux = ui((e) => (t, n) => {
27579
+ }, (e) => /[0-9]/.test(e), (e, t) => 14 + 2 * (t > 26) + 2 * (t > 9) + 10 * e / 3), sx = ui((e) => (t, n) => {
27577
27580
  t.push(2, 4), t.push(e.length, 9 + 2 * (n > 26) + 2 * (n > 9));
27578
27581
  let l = 0;
27579
27582
  for (; l < e.length - 1; l += 2) t.push(45 * Lc(e[l]) + Lc(e[l + 1]), 11);
27580
27583
  l < e.length && t.push(Lc(e[l]), 6);
27581
- }, (e) => Lc(e) >= 0, (e, t) => 13 + 2 * (t > 26) + 2 * (t > 9) + 5.5 * e), ti = ui((e) => Mw([...e].map(ew)), (e) => ew(e) < 128, (e, t) => 12 + 8 * (t > 9) + 8 * e);
27584
+ }, (e) => Lc(e) >= 0, (e, t) => 13 + 2 * (t > 26) + 2 * (t > 9) + 5.5 * e), ti = ui((e) => gw([...e].map(Qb)), (e) => Qb(e) < 128, (e, t) => 12 + 8 * (t > 9) + 8 * e);
27582
27585
  ti._ = !0, ti.u = !0;
27583
- const bw = ui(ti, (e) => ew(e) < 256, ti.l, 3);
27586
+ const Mw = ui(ti, (e) => Qb(e) < 256, ti.l, 3);
27587
+ Mw._ = !0;
27588
+ const Ew = new TextEncoder(), bw = ui((e) => gw(Ew.encode(e)), () => 1, 0, 26, (e, t) => 12 + 8 * (t > 9) + 8 * Ew.encode(e).length);
27584
27589
  bw._ = !0;
27585
- const Nw = new TextEncoder(), ww = ui((e) => Mw(Nw.encode(e)), () => 1, 0, 26, (e, t) => 12 + 8 * (t > 9) + 8 * Nw.encode(e).length);
27586
- ww._ = !0;
27587
- let tw = () => {
27590
+ let ew = () => {
27588
27591
  const e = /* @__PURE__ */ new Map(), t = new TextDecoder("sjis"), n = Lo(2);
27589
27592
  for (let l = 0; l < 7973; ++l) n[0] = l / 192 + 129 + 64 * (l > 5951), n[1] = l % 192 + 64, e.set(t.decode(n), l);
27590
- return e.delete("�"), tw = () => e, e;
27593
+ return e.delete("�"), ew = () => e, e;
27591
27594
  };
27592
- const Iw = ui((e) => (t, n) => {
27595
+ const ww = ui((e) => (t, n) => {
27593
27596
  t.push(8, 4), t.push(e.length, 8 + 2 * (n > 26) + 2 * (n > 9));
27594
- for (const l of e) t.push(tw().get(l), 13);
27595
- }, (e) => tw().has(e), (e, t) => 12 + 2 * (t > 26) + 2 * (t > 9) + 13 * e);
27596
- Iw._ = !0;
27597
- const hx = [sx, ux, ti, bw, Iw, ww], uH = { auto: (e, { modes: t = hx } = {}) => (n, l) => {
27597
+ for (const l of e) t.push(ew().get(l), 13);
27598
+ }, (e) => ew().has(e), (e, t) => 12 + 2 * (t > 26) + 2 * (t > 9) + 13 * e);
27599
+ ww._ = !0;
27600
+ const ux = [dx, sx, ti, Mw, ww, bw], uH = { auto: (e, { modes: t = ux } = {}) => (n, l) => {
27598
27601
  const i = t.map((p, k) => {
27599
27602
  const m = /* @__PURE__ */ new Map(), w = (I, x) => (m.has(I) || m.set(I, x(I, l)), m.get(I));
27600
27603
  return { m: p, h: 1 << k, C: p.est("", l), S: p.l ? (I, x) => w(x - I, p.l) : (I, x) => w(e.slice(I, x), p.est) };
@@ -27627,9 +27630,9 @@ const hx = [sx, ux, ti, bw, Iw, ww], uH = { auto: (e, { modes: t = hx } = {}) =>
27627
27630
  const y = [];
27628
27631
  for (let p = c.reduce((k, m) => m.v < k.v ? m : k); p.m; p = p.V) y.push(p.m(e.slice(p.$, p.A)));
27629
27632
  y.reverse().forEach((p) => p(n, l));
27630
- }, multi: rx, eci: dx, bytes: Mw, numeric: sx, alphaNumeric: ux, ascii: ti, iso8859_1: bw, shift_jis: Iw, utf8: ww }, hH = () => ({ F: Lo(2956), I: 0, push(e, t) {
27633
+ }, multi: cx, eci: rx, bytes: gw, numeric: dx, alphaNumeric: sx, ascii: ti, iso8859_1: Mw, shift_jis: ww, utf8: bw }, hH = () => ({ F: Lo(2956), I: 0, push(e, t) {
27631
27634
  for (let n = t, l = 8 - (7 & this.I); n > 0; n -= l, l = 8) this.F[this.I >> 3] |= e << l >> n, this.I += n < l ? n : l;
27632
- } }), Wb = (e, t = e * e, n = Lo(t)) => ({ size: e, K: n, get: (l, i) => l >= 0 && l < e && !!(1 & n[i * e + l]), toString({ on: l = "##", off: i = " ", lf: c = `
27635
+ } }), Nb = (e, t = e * e, n = Lo(t)) => ({ size: e, K: n, get: (l, i) => l >= 0 && l < e && !!(1 & n[i * e + l]), toString({ on: l = "##", off: i = " ", lf: c = `
27633
27636
  `, pad: s = 4, padX: u = s, padY: d = s } = {}) {
27634
27637
  let y = "";
27635
27638
  for (let p = -d; p < e + d; ++p) {
@@ -27653,26 +27656,26 @@ const hx = [sx, ux, ti, bw, Iw, ww], uH = { auto: (e, { modes: t = hx } = {}) =>
27653
27656
  return s.width = d.width * i, s.height = d.height * i, u.putImageData(d, 0, 0), u.imageSmoothingEnabled = !1, u.globalCompositeOperation = "copy", u.drawImage(s, 0, 0, d.width, d.height, 0, 0, s.width, s.height), s.toDataURL(l, 1);
27654
27657
  } }), _c = [(e, t) => 1 & (e ^ t), (e, t) => 1 & t, (e) => e % 3, (e, t) => (e + t) % 3, (e, t) => 1 & (e / 3 ^ t >> 1), (e, t) => (e & t & 1) + e * t % 3, (e, t) => (e & t) + e * t % 3 & 1, (e, t) => (e ^ t) + e * t % 3 & 1], db = Lo(511);
27655
27658
  for (let e = 0, t = 1; e < 255; t = 2 * t ^ 285 * (t > 127)) db[db[t + 255] = e++] = t;
27656
- const yx = (e) => db[e % 255], px = (e) => db[e + 255], yH = (e, t) => {
27659
+ const hx = (e) => db[e % 255], yx = (e) => db[e + 255], yH = (e, t) => {
27657
27660
  const n = Lo(e.length + t.length - 1);
27658
- for (let l = 0; l < e.length; ++l) for (let i = 0; i < t.length; ++i) n[l + i] ^= yx(e[l] + t[i]);
27659
- return n.map(px);
27661
+ for (let l = 0; l < e.length; ++l) for (let i = 0; i < t.length; ++i) n[l + i] ^= hx(e[l] + t[i]);
27662
+ return n.map(yx);
27660
27663
  }, pH = (e, t) => {
27661
27664
  const n = Lo(e.length + t.length - 1);
27662
27665
  n.set(e, 0);
27663
27666
  for (let l = 0; l < e.length; ++l) if (n[l]) {
27664
- const i = px(n[l]);
27665
- for (let c = 0; c < t.length; ++c) n[l + c] ^= yx(t[c] + i);
27667
+ const i = yx(n[l]);
27668
+ for (let c = 0; c < t.length; ++c) n[l + c] ^= hx(t[c] + i);
27666
27669
  }
27667
27670
  return n.slice(e.length);
27668
- }, aw = [[0], [0, 0]];
27669
- for (let e = 1; e < 30; ++e) aw.push(yH(aw[e], [0, e]));
27671
+ }, tw = [[0], [0, 0]];
27672
+ for (let e = 1; e < 30; ++e) tw.push(yH(tw[e], [0, e]));
27670
27673
  const kH = (e, t) => {
27671
27674
  const n = [[], []];
27672
27675
  let l = 0, i = 0;
27673
27676
  for (const [s, u] of t.o) for (let d = 0; d < s; ++d, l += u) {
27674
27677
  const y = e.slice(l, l + u);
27675
- n[0].push(y), n[1].push(pH(y, aw[t.i])), i += u + t.i;
27678
+ n[0].push(y), n[1].push(pH(y, tw[t.i])), i += u + t.i;
27676
27679
  }
27677
27680
  const c = Lo(i);
27678
27681
  i = 0;
@@ -27681,7 +27684,7 @@ const kH = (e, t) => {
27681
27684
  for (const y of s) u < y.length && (c[i++] = y[u]);
27682
27685
  }
27683
27686
  return c;
27684
- }, kx = (e, t, n) => {
27687
+ }, px = (e, t, n) => {
27685
27688
  let l = e <<= n;
27686
27689
  for (let i = 134217728; i >>= 1; ) l & i && (l ^= t * (i >> n));
27687
27690
  return l | e;
@@ -27695,7 +27698,7 @@ const kH = (e, t) => {
27695
27698
  for (let u = s; u > 8; u -= c) i(s, u, 5);
27696
27699
  s < e - 7 && i(s, 6, 5);
27697
27700
  }
27698
- if (n > 6) for (let s = kx(n, 7973, 12), u = 1; u < 7; ++u) for (let d = 12; d-- > 9; s >>= 1) t[u * e - d] = 2 | 1 & s;
27701
+ if (n > 6) for (let s = px(n, 7973, 12), u = 1; u < 7; ++u) for (let d = 12; d-- > 9; s >>= 1) t[u * e - d] = 2 | 1 & s;
27699
27702
  l(7, 2, 9, 2), l(e - 8, 8, 9, 2);
27700
27703
  for (let s = 0; s < e; ++s) t[6 * e + s] = 3 ^ 1 & s;
27701
27704
  i(3, 3, 7), i(e - 4, 3, 7);
@@ -27716,7 +27719,7 @@ const kH = (e, t) => {
27716
27719
  const d = s * e + u;
27717
27720
  t[d] ^= !(n(u, s) || 2 & t[d]);
27718
27721
  }
27719
- let c = 21522 ^ kx((1 ^ i) << 3 | l, 1335, 10);
27722
+ let c = 21522 ^ px((1 ^ i) << 3 | l, 1335, 10);
27720
27723
  for (let s = 0; s++ < 8; c >>= 1) t[(s - (s < 7)) * e + 8] = 1 & c, t[9 * e - s] = 1 & c;
27721
27724
  for (let s = 8; --s, c; c >>= 1) t[8 * e + s - (s < 7)] = 1 & c, t[(e - s) * e + 8] = 1 & c;
27722
27725
  }, MH = ({ size: e, K: t }, n = 0, l = 0) => {
@@ -27731,11 +27734,11 @@ const kH = (e, t) => {
27731
27734
  }
27732
27735
  }
27733
27736
  return n + 10 * (10 * Math.abs(l / (e * e) - 1) | 0);
27734
- }, Ww = [], nw = (e = pi(1), { minCorrectionLevel: t = 0, maxCorrectionLevel: n = 3, minVersion: l = 1, maxVersion: i = 40, mask: c, trailer: s = 60433, ...u } = {}) => {
27737
+ }, Nw = [], aw = (e = pi(1), { minCorrectionLevel: t = 0, maxCorrectionLevel: n = 3, minVersion: l = 1, maxVersion: i = 40, mask: c, trailer: s = 60433, ...u } = {}) => {
27735
27738
  n < t && pi(3), i < l && pi(2), typeof e == "string" && (e = uH.auto(e, u));
27736
27739
  for (let d = l, y = 0; d <= i; ++d) {
27737
- let p = Ww[d];
27738
- p || (Ww[d] = p = Wb(4 * d + 17), mH(p, d), p.p = vH(p));
27740
+ let p = Nw[d];
27741
+ p || (Nw[d] = p = Nb(4 * d + 17), mH(p, d), p.p = vH(p));
27739
27742
  const k = dH(d, p.p.length >> 3);
27740
27743
  if (8 * k(t).t < y) continue;
27741
27744
  const m = hH();
@@ -27744,16 +27747,16 @@ const kH = (e, t) => {
27744
27747
  const I = k(w);
27745
27748
  if (8 * I.t < y) continue;
27746
27749
  for (m.I = y + 11 & -8; m.I < 8 * I.t; ) m.push(s, 16);
27747
- const x = Wb(p.size, p.K);
27750
+ const x = Nb(p.size, p.K);
27748
27751
  return fH(x, p.p, kH(m.F, I)), (_c[c] ? [_c[c]] : _c).map((b, S) => {
27749
- const C = Wb(x.size, x.K);
27752
+ const C = Nb(x.size, x.K);
27750
27753
  return gH(C, b, c ?? S, w), C.s = _c[c] ? 0 : MH(C), C;
27751
27754
  }).reduce((b, S) => S.s < b.s ? S : b);
27752
27755
  }
27753
27756
  }
27754
27757
  pi(4);
27755
27758
  };
27756
- nw.with = (...e) => (t, n) => nw(t, { modes: [...hx, ...e], ...n });
27759
+ aw.with = (...e) => (t, n) => aw(t, { modes: [...ux, ...e], ...n });
27757
27760
  const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...Object.entries(n).map(([i, c]) => ` ${i}="${`${c}`.replace(/[^ -~]|["&]/g, "")}"`), ">", ...l, `</${t}>`].join(""), IH = (e) => {
27758
27761
  const t = [];
27759
27762
  let n = "";
@@ -27888,7 +27891,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
27888
27891
  const C = f(() => c.value.match(/.{1,4}/g)?.join(" ") ?? c.value), B = f(() => {
27889
27892
  if (s.value === "") return "";
27890
27893
  try {
27891
- const $ = nw(s.value, { minCorrectionLevel: sH.M });
27894
+ const $ = aw(s.value, { minCorrectionLevel: sH.M });
27892
27895
  return LH($, { on: "#18181b", off: "transparent", padX: 1, padY: 1 });
27893
27896
  } catch {
27894
27897
  return "";
@@ -28069,7 +28072,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28069
28072
  },
28070
28073
  emits: ["update:section", "avatar-replace", "two-factor-disable", "two-factor-regenerate", "save"],
28071
28074
  setup(e, { emit: t }) {
28072
- const n = e, l = t, i = Oe(), c = pw(), s = wo(), u = Kx(), d = V(!!i.user?.twoFactorEnabled), y = f(() => [
28075
+ const n = e, l = t, i = Oe(), c = yw(), s = wo(), u = Gx(), d = V(!!i.user?.twoFactorEnabled), y = f(() => [
28073
28076
  { id: "general", label: g("Основное"), icon: "user" },
28074
28077
  // Two-factor setup is the section's only content: with the feature off
28075
28078
  // (admin.auth.two_factor.enabled) it stays for those who enrolled earlier,
@@ -28164,7 +28167,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28164
28167
  M("h3", oV, v(o(g)("Профиль")), 1)
28165
28168
  ]),
28166
28169
  M("div", iV, [
28167
- _(o(dw), {
28170
+ _(o(rw), {
28168
28171
  src: o(i).user?.avatar ?? void 0,
28169
28172
  name: o(i).user?.name ?? "?",
28170
28173
  size: "lg"
@@ -28232,7 +28235,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28232
28235
  default: L(() => [
28233
28236
  M("header", uV, [
28234
28237
  M("h3", hV, v(o(g)("Двухфакторная аутентификация")), 1),
28235
- _(o(vb), {
28238
+ _(o(mb), {
28236
28239
  variant: C.value ? "success" : "default"
28237
28240
  }, {
28238
28241
  default: L(() => [
@@ -28284,7 +28287,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28284
28287
  }, qV = { class: "admin-notifs-page__pager-info" }, AV = /* @__PURE__ */ J({
28285
28288
  __name: "NotificationsPage",
28286
28289
  setup(e) {
28287
- const t = Ib(), n = V("all"), l = [
28290
+ const t = wb(), n = V("all"), l = [
28288
28291
  { id: "all", label: g("Все") },
28289
28292
  { id: "unread", label: g("Непрочитанные") },
28290
28293
  { id: "read", label: g("Прочитанные") }
@@ -28310,9 +28313,9 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28310
28313
  }), await t.load(n.value, i.value).catch(() => {
28311
28314
  });
28312
28315
  }
28313
- const m = (S) => BI(S, "—"), w = (S) => DI(S), I = (S) => S.data.url ?? null;
28316
+ const m = (S) => jI(S, "—"), w = (S) => BI(S), I = (S) => S.data.url ?? null;
28314
28317
  function x(S) {
28315
- const C = mw(S);
28318
+ const C = kw(S);
28316
28319
  return C === "neutral" ? "info" : C;
28317
28320
  }
28318
28321
  function b(S) {
@@ -28347,7 +28350,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28347
28350
  onClick: ($) => u(B.id)
28348
28351
  }, v(B.label), 11, MV)), 64))
28349
28352
  ]),
28350
- o(t).loading ? (r(), z(o(sw), { key: 0 })) : o(t).items.length === 0 ? (r(), h("p", bV, v(n.value === "unread" ? o(g)("Непрочитанных нет.") : o(g)("Уведомлений пока нет.")), 1)) : (r(!0), h(N, { key: 2 }, Y(o(t).items, (B) => (r(), z(o(Ie), {
28353
+ o(t).loading ? (r(), z(o(dw), { key: 0 })) : o(t).items.length === 0 ? (r(), h("p", bV, v(n.value === "unread" ? o(g)("Непрочитанных нет.") : o(g)("Уведомлений пока нет.")), 1)) : (r(!0), h(N, { key: 2 }, Y(o(t).items, (B) => (r(), z(o(Ie), {
28351
28354
  key: B.id,
28352
28355
  padding: "sm",
28353
28356
  class: pe(["admin-notifs-page__item", { "admin-notifs-page__item--unread": !B.read_at }])
@@ -28432,7 +28435,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28432
28435
  }, HV = {
28433
28436
  key: 0,
28434
28437
  class: "admin-stats-widget__hd"
28435
- }, VV = { class: "admin-stats-widget__title" }, PV = { class: "admin-stats-widget__grid" }, Zw = /* @__PURE__ */ J({
28438
+ }, VV = { class: "admin-stats-widget__title" }, PV = { class: "admin-stats-widget__grid" }, Ww = /* @__PURE__ */ J({
28436
28439
  __name: "StatWidget",
28437
28440
  props: {
28438
28441
  title: { default: "" },
@@ -28525,7 +28528,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28525
28528
  loading: e.loading
28526
28529
  }, null, 8, ["title", "value", "prefix", "suffix", "trend", "precision", "tone", "icon", "loading"]));
28527
28530
  }
28528
- }), FV = { class: "admin-chart-legend" }, jV = { class: "admin-chart-legend__label" }, mx = /* @__PURE__ */ J({
28531
+ }), FV = { class: "admin-chart-legend" }, jV = { class: "admin-chart-legend__label" }, kx = /* @__PURE__ */ J({
28529
28532
  __name: "ChartLegend",
28530
28533
  props: {
28531
28534
  items: {}
@@ -28544,7 +28547,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28544
28547
  ]))), 128))
28545
28548
  ]));
28546
28549
  }
28547
- }), BV = { class: "admin-chart-tooltip__title" }, DV = { class: "admin-chart-tooltip__label" }, RV = { class: "admin-chart-tooltip__value" }, vx = /* @__PURE__ */ J({
28550
+ }), BV = { class: "admin-chart-tooltip__title" }, DV = { class: "admin-chart-tooltip__label" }, RV = { class: "admin-chart-tooltip__value" }, mx = /* @__PURE__ */ J({
28548
28551
  __name: "ChartTooltip",
28549
28552
  props: {
28550
28553
  x: {},
@@ -28581,7 +28584,7 @@ const bH = "http://www.w3.org/2000/svg", wH = (e, t, n, l = []) => [`<${t}`, ...
28581
28584
  ], 4));
28582
28585
  }
28583
28586
  });
28584
- function fx(e, t) {
28587
+ function vx(e, t) {
28585
28588
  const n = V(t.width), l = V(t.height);
28586
28589
  let i = null;
28587
28590
  function c(s, u) {
@@ -28628,7 +28631,7 @@ function ai(e) {
28628
28631
  const t = e.trim();
28629
28632
  return t === "" ? "" : TV[t.toLowerCase()] ?? t;
28630
28633
  }
28631
- const Gw = [
28634
+ const Zw = [
28632
28635
  "var(--admin-chart-series-1, #2563eb)",
28633
28636
  "var(--admin-chart-series-2, #d97706)",
28634
28637
  "var(--admin-chart-series-3, #059669)",
@@ -28649,7 +28652,7 @@ function EV(e, t = UV) {
28649
28652
  return n.map((l, i) => ({
28650
28653
  label: typeof l.label == "string" && l.label !== "" ? l.label : `#${i + 1}`,
28651
28654
  data: Array.isArray(l.data) ? l.data.map(OV) : [],
28652
- color: ai(l.color) !== "" ? ai(l.color) : n.length === 1 ? t : Gw[i % Gw.length]
28655
+ color: ai(l.color) !== "" ? ai(l.color) : n.length === 1 ? t : Zw[i % Zw.length]
28653
28656
  }));
28654
28657
  }
28655
28658
  function NV(e, t) {
@@ -28657,7 +28660,7 @@ function NV(e, t) {
28657
28660
  for (let c = 0; c < l; c++) i.push(n[c] ?? String(c + 1));
28658
28661
  return i;
28659
28662
  }
28660
- function gx(e) {
28663
+ function fx(e) {
28661
28664
  return !e.some((t) => t.data.some((n) => n !== null && n !== 0));
28662
28665
  }
28663
28666
  function WV(e, t) {
@@ -28670,7 +28673,7 @@ function ZV(e, t) {
28670
28673
  const n = e / Math.max(1, t), l = Math.pow(10, Math.floor(Math.log10(n))), i = n / l;
28671
28674
  return (i <= 1 ? 1 : i <= 2 ? 2 : i <= 2.5 ? 2.5 : i <= 5 ? 5 : 10) * l;
28672
28675
  }
28673
- function Mx(e, t, n = 4) {
28676
+ function gx(e, t, n = 4) {
28674
28677
  let l = Math.min(0, e), i = Math.max(0, t);
28675
28678
  l === i && (i = l + 1);
28676
28679
  const c = ZV(i - l, n);
@@ -28680,13 +28683,13 @@ function Mx(e, t, n = 4) {
28680
28683
  return { min: l, max: i, ticks: s };
28681
28684
  }
28682
28685
  const GV = new Intl.NumberFormat(void 0, { notation: "compact", maximumFractionDigits: 1 }), KV = new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 });
28683
- function bx(e) {
28686
+ function Mx(e) {
28684
28687
  return GV.format(e);
28685
28688
  }
28686
28689
  function sb(e) {
28687
28690
  return e === null ? "—" : KV.format(e);
28688
28691
  }
28689
- function Kw(e, t = 11) {
28692
+ function Gw(e, t = 11) {
28690
28693
  return e.length * t * 0.6;
28691
28694
  }
28692
28695
  const XV = {
@@ -28707,7 +28710,7 @@ const XV = {
28707
28710
  }, lP = ["x", "y", "width", "height", "fill", "rx", "data-series", "data-label", "data-value"], cP = {
28708
28711
  key: 2,
28709
28712
  class: "admin-chart__series"
28710
- }, rP = ["data-series"], dP = ["d", "fill", "fill-opacity"], sP = ["d", "stroke"], uP = ["cx", "cy", "r", "fill"], hP = ["cx", "cy", "fill"], yP = ["x1", "x2", "y2"], pP = ["x", "y"], kP = { class: "admin-chart__sr" }, mP = { scope: "row" }, ta = 8, vP = 12, fP = 22, Xw = 11, wx = /* @__PURE__ */ J({
28713
+ }, rP = ["data-series"], dP = ["d", "fill", "fill-opacity"], sP = ["d", "stroke"], uP = ["cx", "cy", "r", "fill"], hP = ["cx", "cy", "fill"], yP = ["x1", "x2", "y2"], pP = ["x", "y"], kP = { class: "admin-chart__sr" }, mP = { scope: "row" }, ta = 8, vP = 12, fP = 22, Kw = 11, bx = /* @__PURE__ */ J({
28711
28714
  __name: "CartesianChartWidget",
28712
28715
  props: {
28713
28716
  kind: { default: "line" },
@@ -28719,7 +28722,7 @@ const XV = {
28719
28722
  height: { default: 200 }
28720
28723
  },
28721
28724
  setup(e) {
28722
- const t = e, n = V(null), l = V(null), { width: i, height: c } = fx(n, { width: 480, height: t.height }), s = f(() => t.labels.length), u = f(() => s.value === 0 || gx(t.series)), d = f(() => t.kind === "bar"), y = f(() => t.stacked ? WV(t.series, s.value).map((F, A) => F.map((E, ne) => t.series[A].data[ne] === null ? null : E)) : t.series.map((F) => F.data.slice(0, s.value))), p = f(() => {
28725
+ const t = e, n = V(null), l = V(null), { width: i, height: c } = vx(n, { width: 480, height: t.height }), s = f(() => t.labels.length), u = f(() => s.value === 0 || fx(t.series)), d = f(() => t.kind === "bar"), y = f(() => t.stacked ? WV(t.series, s.value).map((F, A) => F.map((E, ne) => t.series[A].data[ne] === null ? null : E)) : t.series.map((F) => F.data.slice(0, s.value))), p = f(() => {
28723
28726
  const q = [];
28724
28727
  for (const E of y.value) for (const ne of E) ne !== null && q.push(ne);
28725
28728
  if (t.stacked && d.value)
@@ -28732,9 +28735,9 @@ const XV = {
28732
28735
  q.push(ne);
28733
28736
  }
28734
28737
  const F = q.length ? Math.min(...q) : 0, A = q.length ? Math.max(...q) : 1;
28735
- return Mx(F, A, c.value < 160 ? 3 : 4);
28736
- }), k = f(() => p.value.ticks.map((q) => bx(q))), m = f(
28737
- () => Math.ceil(Math.max(...k.value.map((q) => Kw(q, Xw)), 8)) + 10
28738
+ return gx(F, A, c.value < 160 ? 3 : 4);
28739
+ }), k = f(() => p.value.ticks.map((q) => Mx(q))), m = f(
28740
+ () => Math.ceil(Math.max(...k.value.map((q) => Gw(q, Kw)), 8)) + 10
28738
28741
  ), w = f(() => Math.max(20, i.value - m.value - vP)), I = f(() => Math.max(20, c.value - ta - fP)), x = f(() => w.value / Math.max(1, s.value));
28739
28742
  function b(q) {
28740
28743
  const { min: F, max: A } = p.value;
@@ -28747,7 +28750,7 @@ const XV = {
28747
28750
  const B = f(
28748
28751
  () => p.value.ticks.map((q, F) => ({ y: b(q), label: k.value[F], zero: q === 0 }))
28749
28752
  ), $ = f(() => {
28750
- const q = t.labels.map((ce) => ce.length > 16 ? `${ce.slice(0, 15)}…` : ce), F = q.map((ce) => Kw(ce, Xw)), A = Math.max(...F, 1) + 12, E = d.value ? x.value : w.value / Math.max(1, s.value - 1), ne = Math.max(1, Math.ceil(A / Math.max(1, E))), ue = [];
28753
+ const q = t.labels.map((ce) => ce.length > 16 ? `${ce.slice(0, 15)}…` : ce), F = q.map((ce) => Gw(ce, Kw)), A = Math.max(...F, 1) + 12, E = d.value ? x.value : w.value / Math.max(1, s.value - 1), ne = Math.max(1, Math.ceil(A / Math.max(1, E))), ue = [];
28751
28754
  for (let ce = 0; ce < s.value; ce += ne) {
28752
28755
  const Me = F[ce] / 2;
28753
28756
  ue.push({ text: q[ce], x: Math.min(Math.max(C(ce), Me + 2), i.value - Me - 2) });
@@ -28949,7 +28952,7 @@ const XV = {
28949
28952
  "text-anchor": "middle"
28950
28953
  }, v(A.text), 9, pP))), 128))
28951
28954
  ], 40, eP)),
28952
- G.value ? (r(), z(vx, {
28955
+ G.value ? (r(), z(mx, {
28953
28956
  key: 0,
28954
28957
  x: G.value.x,
28955
28958
  y: G.value.y,
@@ -28958,7 +28961,7 @@ const XV = {
28958
28961
  "bounds-width": o(i)
28959
28962
  }, null, 8, ["x", "y", "title", "rows", "bounds-width"])) : j("", !0)
28960
28963
  ], 4),
28961
- e.series.length > 1 ? (r(), z(mx, {
28964
+ e.series.length > 1 ? (r(), z(kx, {
28962
28965
  key: 0,
28963
28966
  items: W.value
28964
28967
  }, null, 8, ["items"])) : j("", !0),
@@ -29002,7 +29005,7 @@ const XV = {
29002
29005
  color: t.accent
29003
29006
  }
29004
29007
  ]);
29005
- return (i, c) => (r(), z(wx, {
29008
+ return (i, c) => (r(), z(bx, {
29006
29009
  kind: "bar",
29007
29010
  title: e.title,
29008
29011
  description: e.description,
@@ -29026,7 +29029,7 @@ const XV = {
29026
29029
  cy: "60",
29027
29030
  r: "30",
29028
29031
  fill: "var(--uid-surface-raised)"
29029
- }, CP = { class: "admin-donut-widget__legend" }, SP = { class: "admin-donut-widget__label" }, qP = { class: "admin-donut-widget__value" }, Ix = /* @__PURE__ */ J({
29032
+ }, CP = { class: "admin-donut-widget__legend" }, SP = { class: "admin-donut-widget__label" }, qP = { class: "admin-donut-widget__value" }, wx = /* @__PURE__ */ J({
29030
29033
  __name: "DonutChartWidget",
29031
29034
  props: {
29032
29035
  title: { default: "" },
@@ -29128,7 +29131,7 @@ const XV = {
29128
29131
  () => t.rows.map((s) => {
29129
29132
  const u = { ...s };
29130
29133
  for (const d of i.value)
29131
- u[d.key] = zb(s[d.key], void 0, {});
29134
+ u[d.key] = Ab(s[d.key], void 0, {});
29132
29135
  return u;
29133
29136
  })
29134
29137
  );
@@ -29151,7 +29154,7 @@ const XV = {
29151
29154
  _: 1
29152
29155
  }));
29153
29156
  }
29154
- }), Zb = /* @__PURE__ */ Je($P, [["__scopeId", "data-v-c9bc6a1d"]]), HP = {
29157
+ }), Wb = /* @__PURE__ */ Je($P, [["__scopeId", "data-v-c9bc6a1d"]]), HP = {
29155
29158
  key: 0,
29156
29159
  class: "admin-widget__hd"
29157
29160
  }, VP = { class: "admin-widget__title" }, PP = {
@@ -29274,7 +29277,7 @@ const XV = {
29274
29277
  M("h3", UP, v(e.title), 1)
29275
29278
  ])) : j("", !0),
29276
29279
  M("div", OP, [
29277
- _(o(pL), {
29280
+ _(o(yL), {
29278
29281
  value: e.value,
29279
29282
  min: e.min,
29280
29283
  max: e.max,
@@ -29301,7 +29304,7 @@ const XV = {
29301
29304
  function ub(e) {
29302
29305
  return e.replace(/[&<>"']/g, (t) => NP[t] ?? t);
29303
29306
  }
29304
- function xw(e) {
29307
+ function Iw(e) {
29305
29308
  return e.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&amp;/g, "&");
29306
29309
  }
29307
29310
  function WP() {
@@ -29311,15 +29314,15 @@ function WP() {
29311
29314
  return e.set(n, l + 1), l === 0 ? n : `${n}-${l}`;
29312
29315
  };
29313
29316
  }
29314
- function Jw(e) {
29317
+ function Xw(e) {
29315
29318
  const t = e.trim(), n = t.replace(/&#0*58;|&colon;/gi, ":").replace(/\s+/g, "").toLowerCase(), l = /^([a-z][a-z0-9+.-]*):/.exec(n);
29316
29319
  return l && !["http", "https", "mailto"].includes(l[1] ?? "") ? null : t;
29317
29320
  }
29318
- function Yw(e) {
29321
+ function Jw(e) {
29319
29322
  return !/^([a-z][a-z0-9+.-]*:|\/|#|\?)/i.test(e);
29320
29323
  }
29321
- function Qw(e, t, n = !1) {
29322
- let l = xw(e);
29324
+ function Yw(e, t, n = !1) {
29325
+ let l = Iw(e);
29323
29326
  n && (l = l.replace(/\.md(?=$|[?#])/i, ""));
29324
29327
  try {
29325
29328
  const i = /^[a-z][a-z0-9+.-]*:\/\//i.test(t), c = new URL(l, i ? t : `http://base.invalid${t.startsWith("/") ? "" : "/"}${t}`), s = i ? c.href : c.pathname + c.search + c.hash;
@@ -29328,17 +29331,17 @@ function Qw(e, t, n = !1) {
29328
29331
  return e;
29329
29332
  }
29330
29333
  }
29331
- function xx(e, t = {}) {
29334
+ function Ix(e, t = {}) {
29332
29335
  const n = [], l = (c) => `${n.push(c) - 1}`;
29333
29336
  let i = e.replace(/`([^`]+)`/g, (c, s) => l(`<code>${s}</code>`));
29334
29337
  return i = i.replace(/!\[([^\]]*)\]\(([^)\s]+)(?:\s+&quot;[^)]*&quot;)?\)/g, (c, s, u) => {
29335
- let d = Jw(u);
29336
- return d === null ? c : (t.imageBase && Yw(d) && (d = Qw(d, t.imageBase)), l(`<img src="${d}" alt="${s}" loading="lazy">`));
29338
+ let d = Xw(u);
29339
+ return d === null ? c : (t.imageBase && Jw(d) && (d = Yw(d, t.imageBase)), l(`<img src="${d}" alt="${s}" loading="lazy">`));
29337
29340
  }), i = i.replace(/\[([^\]]+)\]\(([^)\s]+)(?:\s+&quot;[^)]*&quot;)?\)/g, (c, s, u) => {
29338
- let d = Jw(u);
29341
+ let d = Xw(u);
29339
29342
  if (d === null) return c;
29340
- const y = Yw(d);
29341
- t.linkBase && y && (d = Qw(d, t.linkBase, t.stripMdExtension ?? !1));
29343
+ const y = Jw(d);
29344
+ t.linkBase && y && (d = Yw(d, t.linkBase, t.stripMdExtension ?? !1));
29342
29345
  const p = /^(https?:)?\/\//i.test(d) || /^mailto:/i.test(d), k = t.internalLinksInPlace === !0 && !p;
29343
29346
  return l(
29344
29347
  k ? `<a href="${d}">${s}</a>` : `<a href="${d}" target="_blank" rel="noopener noreferrer">${s}</a>`
@@ -29346,14 +29349,14 @@ function xx(e, t = {}) {
29346
29349
  }), i = i.replace(/\*\*(?=\S)(.+?)(?<=\S)\*\*/g, "<strong>$1</strong>").replace(/(?<!\w)__(?=\S)(.+?)(?<=\S)__(?!\w)/g, "<strong>$1</strong>").replace(/\*(?=\S)(.+?)(?<=\S)\*/g, "<em>$1</em>").replace(/(?<!\w)_(?=\S)(.+?)(?<=\S)_(?!\w)/g, "<em>$1</em>").replace(/~~(?=\S)(.+?)(?<=\S)~~/g, "<del>$1</del>"), i.replace(/(\d+)/g, (c, s) => n[Number(s)] ?? "");
29347
29350
  }
29348
29351
  function ZP(e) {
29349
- return xw(e.replace(/<[^>]+>/g, ""));
29352
+ return Iw(e.replace(/<[^>]+>/g, ""));
29350
29353
  }
29351
29354
  const ki = /^(\s*)([-*+]|\d+[.)])\s+(.*)$/, GP = /^\s*\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;
29352
- function Gb(e) {
29355
+ function Zb(e) {
29353
29356
  let t = e.trim();
29354
29357
  return t.startsWith("|") && (t = t.slice(1)), t.endsWith("|") && !t.endsWith("\\|") && (t = t.slice(0, -1)), t.split(/(?<!\\)\|/).map((n) => n.trim().replace(/\\\|/g, "|"));
29355
29358
  }
29356
- const eI = {
29359
+ const Qw = {
29357
29360
  note: "note",
29358
29361
  info: "note",
29359
29362
  tip: "tip",
@@ -29390,7 +29393,7 @@ function uc(e, t = {}) {
29390
29393
  `)).split(`
29391
29394
  `), l = [];
29392
29395
  let i = [];
29393
- const c = (u) => xx(u, t), s = () => {
29396
+ const c = (u) => Ix(u, t), s = () => {
29394
29397
  i.length > 0 && (l.push(`<p>${c(i.join(`
29395
29398
  `))}</p>`), i = []);
29396
29399
  };
@@ -29427,7 +29430,7 @@ function uc(e, t = {}) {
29427
29430
  }
29428
29431
  if (d.includes("|") && GP.test(n[u + 1] ?? "") && (n[u + 1] ?? "").includes("|")) {
29429
29432
  s();
29430
- const k = Gb(d), m = Gb(n[u + 1] ?? "").map((x) => {
29433
+ const k = Zb(d), m = Zb(n[u + 1] ?? "").map((x) => {
29431
29434
  const b = x.startsWith(":"), S = x.endsWith(":");
29432
29435
  return b && S ? "center" : S ? "right" : b ? "left" : "";
29433
29436
  }), w = (x, b, S) => {
@@ -29435,7 +29438,7 @@ function uc(e, t = {}) {
29435
29438
  return `<${x}${C}>${c(b)}</${x}>`;
29436
29439
  }, I = [];
29437
29440
  for (u += 2; u < n.length && (n[u] ?? "").includes("|") && (n[u] ?? "").trim() !== ""; ) {
29438
- const x = Gb(n[u] ?? "");
29441
+ const x = Zb(n[u] ?? "");
29439
29442
  I.push(`<tr>${k.map((b, S) => w("td", x[S] ?? "", S)).join("")}</tr>`), u++;
29440
29443
  }
29441
29444
  u--, l.push(
@@ -29496,7 +29499,7 @@ function JP(e, t, n) {
29496
29499
  }
29497
29500
  break;
29498
29501
  }
29499
- let I = xx(m.join(`
29502
+ let I = Ix(m.join(`
29500
29503
  `), n);
29501
29504
  if (w.some((S) => S.trim() !== "")) {
29502
29505
  const S = Math.min(...w.filter((B) => B.trim() !== "").map(zt)), C = w.map((B) => B.replace(/\t/g, " ").slice(S));
@@ -29514,7 +29517,7 @@ function JP(e, t, n) {
29514
29517
  function YP(e, t) {
29515
29518
  const n = (e[0] ?? "").trim(), l = /^\[!(\w+)\]\s*$/.exec(n);
29516
29519
  if (l) {
29517
- const c = eI[(l[1] ?? "").toLowerCase()];
29520
+ const c = Qw[(l[1] ?? "").toLowerCase()];
29518
29521
  if (c) {
29519
29522
  const s = `<p class="admin-markdown__callout-title">${ub(KP(c))}</p>`;
29520
29523
  return `<blockquote class="admin-markdown__callout admin-markdown__callout--${c}">${s}${nb(e.slice(1), t)}</blockquote>`;
@@ -29522,14 +29525,14 @@ function YP(e, t) {
29522
29525
  }
29523
29526
  const i = /^\*\*([^*]+?):?\*\*:?/.exec(n);
29524
29527
  if (i) {
29525
- const c = eI[(i[1] ?? "").trim().toLowerCase()];
29528
+ const c = Qw[(i[1] ?? "").trim().toLowerCase()];
29526
29529
  if (c)
29527
29530
  return `<blockquote class="admin-markdown__callout admin-markdown__callout--${c}">${nb(e, t)}</blockquote>`;
29528
29531
  }
29529
29532
  return `<blockquote>${nb(e, t)}</blockquote>`;
29530
29533
  }
29531
29534
  function nb(e, t) {
29532
- return uc(xw(e.join(`
29535
+ return uc(Iw(e.join(`
29533
29536
  `)), t);
29534
29537
  }
29535
29538
  function QP(e) {
@@ -29596,7 +29599,7 @@ const eF = {
29596
29599
  }, cF = {
29597
29600
  key: 1,
29598
29601
  class: "admin-widget__empty"
29599
- }, rF = ["width", "height", "viewBox", "aria-label"], dF = { class: "admin-chart__grid" }, sF = ["d"], uF = ["x1", "y1", "x2", "y2"], hF = ["x", "y"], yF = { class: "admin-chart__series" }, pF = ["data-series"], kF = ["d", "fill", "stroke"], mF = ["cx", "cy", "r", "fill"], vF = ["x", "y", "text-anchor"], fF = { class: "admin-chart__sr" }, gF = { scope: "row" }, Kb = 16, MF = /* @__PURE__ */ J({
29602
+ }, rF = ["width", "height", "viewBox", "aria-label"], dF = { class: "admin-chart__grid" }, sF = ["d"], uF = ["x1", "y1", "x2", "y2"], hF = ["x", "y"], yF = { class: "admin-chart__series" }, pF = ["data-series"], kF = ["d", "fill", "stroke"], mF = ["cx", "cy", "r", "fill"], vF = ["x", "y", "text-anchor"], fF = { class: "admin-chart__sr" }, gF = { scope: "row" }, Gb = 16, MF = /* @__PURE__ */ J({
29600
29603
  __name: "RadarChartWidget",
29601
29604
  props: {
29602
29605
  title: { default: "" },
@@ -29606,10 +29609,10 @@ const eF = {
29606
29609
  height: { default: 180 }
29607
29610
  },
29608
29611
  setup(e) {
29609
- const t = e, n = V(null), l = V(null), { width: i, height: c } = fx(n, { width: 360, height: t.height }), s = f(() => t.labels.length), u = f(() => s.value < 3 || gx(t.series)), d = f(() => i.value / 2), y = f(() => c.value / 2), p = f(() => Math.max(20, Math.min(i.value / 2 - 56, c.value / 2 - Kb - 8))), k = f(() => {
29612
+ const t = e, n = V(null), l = V(null), { width: i, height: c } = vx(n, { width: 360, height: t.height }), s = f(() => t.labels.length), u = f(() => s.value < 3 || fx(t.series)), d = f(() => i.value / 2), y = f(() => c.value / 2), p = f(() => Math.max(20, Math.min(i.value / 2 - 56, c.value / 2 - Gb - 8))), k = f(() => {
29610
29613
  let P = 0;
29611
29614
  for (const U of t.series) for (const O of U.data) O !== null && O > P && (P = O);
29612
- return Mx(0, P, 4);
29615
+ return gx(0, P, 4);
29613
29616
  });
29614
29617
  function m(P) {
29615
29618
  return -Math.PI / 2 + 2 * Math.PI * P / Math.max(1, s.value);
@@ -29621,7 +29624,7 @@ const eF = {
29621
29624
  const I = (P) => (Math.round(P * 100) / 100).toString(), x = f(
29622
29625
  () => k.value.ticks.filter((P) => P > 0).map((P) => ({
29623
29626
  value: P,
29624
- label: bx(P),
29627
+ label: Mx(P),
29625
29628
  d: t.labels.map((U, O) => {
29626
29629
  const R = w(O, P);
29627
29630
  return `${O === 0 ? "M" : "L"}${I(R.x)} ${I(R.y)}`;
@@ -29629,7 +29632,7 @@ const eF = {
29629
29632
  }))
29630
29633
  ), b = f(
29631
29634
  () => t.labels.map((P, U) => {
29632
- const O = w(U, k.value.max), R = m(U), Z = d.value + (p.value + Kb) * Math.cos(R), K = y.value + (p.value + Kb) * Math.sin(R), G = Math.cos(R);
29635
+ const O = w(U, k.value.max), R = m(U), Z = d.value + (p.value + Gb) * Math.cos(R), K = y.value + (p.value + Gb) * Math.sin(R), G = Math.cos(R);
29633
29636
  return {
29634
29637
  x2: O.x,
29635
29638
  y2: O.y,
@@ -29754,7 +29757,7 @@ const eF = {
29754
29757
  "dominant-baseline": "middle"
29755
29758
  }, v(O.text), 9, vF))), 128))
29756
29759
  ], 40, rF)),
29757
- D.value ? (r(), z(vx, {
29760
+ D.value ? (r(), z(mx, {
29758
29761
  key: 0,
29759
29762
  x: D.value.x,
29760
29763
  y: D.value.y,
@@ -29763,7 +29766,7 @@ const eF = {
29763
29766
  "bounds-width": o(i)
29764
29767
  }, null, 8, ["x", "y", "title", "rows", "bounds-width"])) : j("", !0)
29765
29768
  ], 4),
29766
- e.series.length > 1 ? (r(), z(mx, {
29769
+ e.series.length > 1 ? (r(), z(kx, {
29767
29770
  key: 0,
29768
29771
  items: H.value
29769
29772
  }, null, 8, ["items"])) : j("", !0),
@@ -29840,7 +29843,7 @@ const eF = {
29840
29843
  color: ai(p.color) || c[m % c.length]
29841
29844
  }));
29842
29845
  });
29843
- return (p, k) => i.value === "donut" || i.value === "pie" ? (r(), z(Ix, {
29846
+ return (p, k) => i.value === "donut" || i.value === "pie" ? (r(), z(wx, {
29844
29847
  key: 0,
29845
29848
  title: e.title,
29846
29849
  data: y.value,
@@ -29851,7 +29854,7 @@ const eF = {
29851
29854
  description: e.description,
29852
29855
  labels: u.value,
29853
29856
  series: s.value
29854
- }, null, 8, ["title", "description", "labels", "series"])) : i.value === "bar" || i.value === "line" || i.value === "area" ? (r(), z(wx, {
29857
+ }, null, 8, ["title", "description", "labels", "series"])) : i.value === "bar" || i.value === "line" || i.value === "area" ? (r(), z(bx, {
29855
29858
  key: 2,
29856
29859
  kind: i.value,
29857
29860
  title: e.title,
@@ -29859,7 +29862,7 @@ const eF = {
29859
29862
  labels: u.value,
29860
29863
  series: s.value,
29861
29864
  stacked: d.value
29862
- }, null, 8, ["kind", "title", "description", "labels", "series", "stacked"])) : (r(), z(EI, {
29865
+ }, null, 8, ["kind", "title", "description", "labels", "series", "stacked"])) : (r(), z(OI, {
29863
29866
  key: 3,
29864
29867
  type: `chart:${l.value}`
29865
29868
  }, null, 8, ["type"]));
@@ -29962,16 +29965,16 @@ function $F() {
29962
29965
  jC(n) || PC(n, l);
29963
29966
  })({
29964
29967
  // Stat / Stats overview
29965
- stat: Zw,
29966
- stats: Zw,
29968
+ stat: Ww,
29969
+ stats: Ww,
29967
29970
  // Charts: one dispatcher over data.type → bar, donut and the rest
29968
29971
  chart: wF,
29969
29972
  "bar-chart": gP,
29970
- "donut-chart": Ix,
29973
+ "donut-chart": wx,
29971
29974
  // The recent list — a table of the latest records
29972
- "recent-table": Zb,
29973
- recent_list: Zb,
29974
- "recent-list": Zb,
29975
+ "recent-table": Wb,
29976
+ recent_list: Wb,
29977
+ "recent-list": Wb,
29975
29978
  // Heatmap / Gauge / Markdown
29976
29979
  heatmap: RP,
29977
29980
  gauge: EP,
@@ -29988,7 +29991,7 @@ function lO(e) {
29988
29991
  return e.success === !1;
29989
29992
  }
29990
29993
  function VF(e) {
29991
- const t = DL.create({
29994
+ const t = BL.create({
29992
29995
  baseURL: e.baseURL,
29993
29996
  withCredentials: !0,
29994
29997
  headers: {
@@ -30005,7 +30008,7 @@ function VF(e) {
30005
30008
  if (c && typeof c == "object" && "success" in c) {
30006
30009
  if (HF(c))
30007
30010
  return i.data = c.payload, i;
30008
- throw Hw(i.status, c.payload);
30011
+ throw $w(i.status, c.payload);
30009
30012
  }
30010
30013
  return i;
30011
30014
  },
@@ -30014,10 +30017,10 @@ function VF(e) {
30014
30017
  const c = i.response.status, s = i.response.data?.payload ?? {
30015
30018
  errorKey: "unknown",
30016
30019
  message: i.message
30017
- }, u = Hw(c, s);
30018
- return u instanceof PI && e.onUnauthenticated?.(), Promise.reject(u);
30020
+ }, u = $w(c, s);
30021
+ return u instanceof VI && e.onUnauthenticated?.(), Promise.reject(u);
30019
30022
  }
30020
- return Promise.reject(new xb(i.message));
30023
+ return Promise.reject(new Ib(i.message));
30021
30024
  }
30022
30025
  );
30023
30026
  const n = (i, c, s) => t[i](c, s).then((u) => u.data), l = (i, c, s, u) => t[i](c, s, u).then((d) => d.data);
@@ -30216,7 +30219,7 @@ function ZF(e) {
30216
30219
  return typeof e != "string" ? !1 : WF.some((t) => e.startsWith(t));
30217
30220
  }
30218
30221
  function GF(e) {
30219
- const t = e.base ?? "/admin", n = e.history ?? wI(t), l = [
30222
+ const t = e.base ?? "/admin", n = e.history ?? bI(t), l = [
30220
30223
  {
30221
30224
  path: "/login",
30222
30225
  name: "admin.login",
@@ -30264,7 +30267,7 @@ function GF(e) {
30264
30267
  name: "admin.notFound",
30265
30268
  component: e.components.notFound,
30266
30269
  meta: { kind: "system", title: "404", requiresAuth: !0 }
30267
- }, c = Qx({
30270
+ }, c = Yx({
30268
30271
  history: n,
30269
30272
  routes: [...l, ...e.extraRoutes ?? [], i]
30270
30273
  });
@@ -30279,7 +30282,7 @@ function GF(e) {
30279
30282
  c.addRoute(i);
30280
30283
  }, c;
30281
30284
  }
30282
- const ow = /* @__PURE__ */ J({
30285
+ const nw = /* @__PURE__ */ J({
30283
30286
  __name: "TextField",
30284
30287
  props: {
30285
30288
  name: {},
@@ -30338,7 +30341,7 @@ function QF(e) {
30338
30341
  const t = e.codePointAt(0) ?? 0;
30339
30342
  return t >= 8192 && t <= 8202 || t >= 8208 && t <= 8213;
30340
30343
  }
30341
- function tI(e, t = "-") {
30344
+ function eI(e, t = "-") {
30342
30345
  const n = e == null ? "" : String(e);
30343
30346
  let l = "";
30344
30347
  for (const c of n) l += c.toLowerCase();
@@ -30381,13 +30384,13 @@ const ej = /* @__PURE__ */ J({
30381
30384
  return String(y);
30382
30385
  }
30383
30386
  const u = V(
30384
- l.value === "" || t.follow && l.value === tI(s(), c.value)
30387
+ l.value === "" || t.follow && l.value === eI(s(), c.value)
30385
30388
  );
30386
30389
  ge(
30387
30390
  () => s(),
30388
30391
  (y) => {
30389
30392
  if (!u.value || t.disabled || t.readonly) return;
30390
- const p = tI(y, c.value);
30393
+ const p = eI(y, c.value);
30391
30394
  p !== l.value && n.setField(t.name, p);
30392
30395
  }
30393
30396
  );
@@ -30409,7 +30412,7 @@ const ej = /* @__PURE__ */ J({
30409
30412
  "onUpdate:modelValue": d
30410
30413
  }, null, 8, ["model-value", "label", "hint", "error", "placeholder", "required", "disabled", "readonly", "name"]));
30411
30414
  }
30412
- }), aI = /* @__PURE__ */ J({
30415
+ }), tI = /* @__PURE__ */ J({
30413
30416
  __name: "SwitchField",
30414
30417
  props: {
30415
30418
  name: {},
@@ -30436,7 +30439,7 @@ const ej = /* @__PURE__ */ J({
30436
30439
  disabled: e.disabled
30437
30440
  }, {
30438
30441
  default: L(() => [
30439
- _(o(kL), {
30442
+ _(o(pL), {
30440
30443
  "model-value": l.value,
30441
30444
  disabled: e.disabled || e.readonly,
30442
30445
  required: e.required,
@@ -30474,7 +30477,7 @@ const ej = /* @__PURE__ */ J({
30474
30477
  disabled: e.disabled
30475
30478
  }, {
30476
30479
  default: L(() => [
30477
- _(o(hw), {
30480
+ _(o(uw), {
30478
30481
  "model-value": l.value,
30479
30482
  rows: e.rows,
30480
30483
  placeholder: e.placeholder ?? void 0,
@@ -30517,7 +30520,7 @@ const ej = /* @__PURE__ */ J({
30517
30520
  disabled: e.disabled
30518
30521
  }, {
30519
30522
  default: L(() => [
30520
- _(o(mL), {
30523
+ _(o(kL), {
30521
30524
  "model-value": l.value,
30522
30525
  min: e.min ?? void 0,
30523
30526
  max: e.max ?? void 0,
@@ -30532,11 +30535,7 @@ const ej = /* @__PURE__ */ J({
30532
30535
  _: 1
30533
30536
  }, 8, ["label", "hint", "error", "required", "disabled"]));
30534
30537
  }
30535
- });
30536
- function hb(e) {
30537
- return Array.isArray(e) ? e[0] ?? null : e ?? null;
30538
- }
30539
- const Xb = /* @__PURE__ */ J({
30538
+ }), Kb = /* @__PURE__ */ J({
30540
30539
  __name: "SelectField",
30541
30540
  props: {
30542
30541
  name: {},
@@ -30558,7 +30557,7 @@ const Xb = /* @__PURE__ */ J({
30558
30557
  return y == null || y === "" ? null : y;
30559
30558
  }), c = f(() => l.errors[t.name]?.[0]);
30560
30559
  function s(y) {
30561
- l.setField(t.name, hb(y));
30560
+ l.setField(t.name, y);
30562
30561
  }
30563
30562
  const u = f(() => {
30564
30563
  let y = l.getField(t.name);
@@ -30571,7 +30570,7 @@ const Xb = /* @__PURE__ */ J({
30571
30570
  return (Array.isArray(y) ? y : y == null || y === "" ? [] : [y]).filter((k) => typeof k == "string" || typeof k == "number").map((k) => t.options.find((m) => String(m.value) === String(k))?.value ?? k);
30572
30571
  });
30573
30572
  function d(y) {
30574
- t.readonly || l.setField(t.name, Array.isArray(y) ? y : y == null ? [] : [y]);
30573
+ t.readonly || l.setField(t.name, y);
30575
30574
  }
30576
30575
  return (y, p) => (r(), z(o(De), {
30577
30576
  label: e.label ?? void 0,
@@ -30641,7 +30640,7 @@ const Xb = /* @__PURE__ */ J({
30641
30640
  disabled: n.value
30642
30641
  }, {
30643
30642
  default: L(() => [
30644
- _(o(vL), {
30643
+ _(o(mL), {
30645
30644
  "model-value": i.value,
30646
30645
  options: s.value,
30647
30646
  placeholder: e.placeholder ?? void 0,
@@ -30655,7 +30654,7 @@ const Xb = /* @__PURE__ */ J({
30655
30654
  _: 1
30656
30655
  }, 8, ["label", "hint", "error", "required", "disabled"]));
30657
30656
  }
30658
- }), nI = /* @__PURE__ */ J({
30657
+ }), aI = /* @__PURE__ */ J({
30659
30658
  __name: "CheckboxField",
30660
30659
  props: {
30661
30660
  name: {},
@@ -30686,7 +30685,7 @@ const Xb = /* @__PURE__ */ J({
30686
30685
  function y(p) {
30687
30686
  t.readonly || n.setField(t.name, p);
30688
30687
  }
30689
- return (p, k) => i.value ? (r(), z(o(fL), {
30688
+ return (p, k) => i.value ? (r(), z(o(vL), {
30690
30689
  key: 0,
30691
30690
  "model-value": d.value,
30692
30691
  options: e.options ?? [],
@@ -30705,7 +30704,7 @@ const Xb = /* @__PURE__ */ J({
30705
30704
  disabled: c.value
30706
30705
  }, {
30707
30706
  default: L(() => [
30708
- _(o(uw), {
30707
+ _(o(sw), {
30709
30708
  "model-value": s.value,
30710
30709
  disabled: c.value,
30711
30710
  required: e.required,
@@ -30718,22 +30717,22 @@ const Xb = /* @__PURE__ */ J({
30718
30717
  }, 8, ["hint", "error", "disabled"]));
30719
30718
  }
30720
30719
  });
30721
- function oI(e) {
30720
+ function nI(e) {
30722
30721
  if (e == null || e === "") return { date: null, time: null };
30723
30722
  const t = /^(\d{4}-\d{2}-\d{2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(String(e));
30724
30723
  if (!t) return { date: null, time: null };
30725
30724
  const n = t[2] !== void 0 ? `${t[2].padStart(2, "0")}:${t[3]}${t[4] !== void 0 ? `:${t[4]}` : ""}` : null;
30726
30725
  return { date: t[1] ?? null, time: n };
30727
30726
  }
30728
- function Lx(e) {
30727
+ function xx(e) {
30729
30728
  return /[sS]/.test(e ?? "Y-m-d H:i:s");
30730
30729
  }
30731
30730
  function oj(e) {
30732
30731
  return /\\?T/.test(e ?? "") ? "T" : " ";
30733
30732
  }
30734
- function iI(e, t, n) {
30733
+ function oI(e, t, n) {
30735
30734
  if (!e) return null;
30736
- const l = Lx(n), [i = "00", c = "00", s = "00"] = (t ?? "").split(":"), u = `${i.padStart(2, "0")}:${c.padStart(2, "0")}`;
30735
+ const l = xx(n), [i = "00", c = "00", s = "00"] = (t ?? "").split(":"), u = `${i.padStart(2, "0")}:${c.padStart(2, "0")}`;
30737
30736
  return `${e}${oj(n)}${l ? `${u}:${s.padStart(2, "0")}` : u}`;
30738
30737
  }
30739
30738
  const ij = {
@@ -30755,7 +30754,7 @@ const ij = {
30755
30754
  format: { default: null }
30756
30755
  },
30757
30756
  setup(e) {
30758
- const t = e, n = Le(), l = f(() => n.errors[t.name]?.[0]), i = f(() => t.withTime || t.inputType === "datetime-local"), c = f(() => oI(n.getField(t.name))), s = f(() => i.value ? u(c.value.date) : u(oI(n.getField(t.name)).date));
30757
+ const t = e, n = Le(), l = f(() => n.errors[t.name]?.[0]), i = f(() => t.withTime || t.inputType === "datetime-local"), c = f(() => nI(n.getField(t.name))), s = f(() => i.value ? u(c.value.date) : u(nI(n.getField(t.name)).date));
30759
30758
  function u(m) {
30760
30759
  if (!m) return null;
30761
30760
  const [w, I, x] = m.split("-").map(Number), b = new Date(w ?? NaN, (I ?? NaN) - 1, x ?? NaN);
@@ -30774,7 +30773,7 @@ const ij = {
30774
30773
  n.setField(t.name, m);
30775
30774
  return;
30776
30775
  }
30777
- n.setField(t.name, iI(m, y.value, t.format));
30776
+ n.setField(t.name, oI(m, y.value, t.format));
30778
30777
  }
30779
30778
  }
30780
30779
  function k(m) {
@@ -30783,7 +30782,7 @@ const ij = {
30783
30782
  d.value = m;
30784
30783
  return;
30785
30784
  }
30786
- n.setField(t.name, iI(c.value.date, m, t.format));
30785
+ n.setField(t.name, oI(c.value.date, m, t.format));
30787
30786
  }
30788
30787
  }
30789
30788
  return (m, w) => (r(), z(o(De), {
@@ -30795,7 +30794,7 @@ const ij = {
30795
30794
  }, {
30796
30795
  default: L(() => [
30797
30796
  i.value ? (r(), h("div", ij, [
30798
- _(o($w), {
30797
+ _(o(zw), {
30799
30798
  "model-value": s.value,
30800
30799
  min: e.min ?? void 0,
30801
30800
  max: e.max ?? void 0,
@@ -30803,14 +30802,14 @@ const ij = {
30803
30802
  name: e.name,
30804
30803
  "onUpdate:modelValue": p
30805
30804
  }, null, 8, ["model-value", "min", "max", "disabled", "name"]),
30806
- _(o(LI), {
30805
+ _(o(xI), {
30807
30806
  "model-value": y.value,
30808
- "with-seconds": o(Lx)(e.format),
30807
+ "with-seconds": o(xx)(e.format),
30809
30808
  disabled: e.disabled || e.readonly,
30810
30809
  clearable: !1,
30811
30810
  "onUpdate:modelValue": k
30812
30811
  }, null, 8, ["model-value", "with-seconds", "disabled"])
30813
- ])) : (r(), z(o($w), {
30812
+ ])) : (r(), z(o(zw), {
30814
30813
  key: 1,
30815
30814
  "model-value": s.value,
30816
30815
  min: e.min ?? void 0,
@@ -30823,7 +30822,7 @@ const ij = {
30823
30822
  _: 1
30824
30823
  }, 8, ["label", "hint", "error", "required", "disabled"]));
30825
30824
  }
30826
- }), Jb = /* @__PURE__ */ Je(lj, [["__scopeId", "data-v-e3b3fe0c"]]), cj = {
30825
+ }), Xb = /* @__PURE__ */ Je(lj, [["__scopeId", "data-v-e3b3fe0c"]]), cj = {
30827
30826
  key: 0,
30828
30827
  class: "admin-field__label"
30829
30828
  }, rj = {
@@ -30854,7 +30853,7 @@ const ij = {
30854
30853
  const t = e, n = Le(), l = f(() => {
30855
30854
  const K = n.getField(t.name);
30856
30855
  return Array.isArray(K) ? K.map((G) => String(G)) : typeof K == "string" && K !== "" ? K.split(",").map((G) => G.trim()).filter(Boolean) : [];
30857
- }), i = f(() => n.errors[t.name]?.[0]), c = V(""), s = V(!1), u = V(null), d = V(null), y = V(null), { floatingStyle: p, update: k } = gL(d, y, {
30856
+ }), i = f(() => n.errors[t.name]?.[0]), c = V(""), s = V(!1), u = V(null), d = V(null), y = V(null), { floatingStyle: p, update: k } = fL(d, y, {
30858
30857
  placement: "bottom-start",
30859
30858
  offset: 4
30860
30859
  }), m = V(0);
@@ -30989,7 +30988,7 @@ const ij = {
30989
30988
  onFocus: G[0] || (G[0] = (W) => s.value = !0),
30990
30989
  onBlur: Z
30991
30990
  }, null, 40, uj),
30992
- (r(), z(cw, { to: "body" }, [
30991
+ (r(), z(lw, { to: "body" }, [
30993
30992
  s.value && P.value.length > 0 ? (r(), h("div", {
30994
30993
  key: 0,
30995
30994
  ref_key: "dropdownRef",
@@ -31053,7 +31052,7 @@ const ij = {
31053
31052
  }, Cj = {
31054
31053
  key: 2,
31055
31054
  class: "admin-field__help"
31056
- }, lI = /* @__PURE__ */ J({
31055
+ }, iI = /* @__PURE__ */ J({
31057
31056
  __name: "TranslatableField",
31058
31057
  props: {
31059
31058
  name: {},
@@ -31323,7 +31322,7 @@ const ij = {
31323
31322
  ref: d,
31324
31323
  class: "admin-field__control admin-wysiwyg-wrap"
31325
31324
  }, [
31326
- _(o(RL), {
31325
+ _(o(DL), {
31327
31326
  "model-value": l.value,
31328
31327
  placeholder: e.placeholder ?? void 0,
31329
31328
  readonly: e.disabled,
@@ -31478,7 +31477,7 @@ const ij = {
31478
31477
  i.value ? (r(), h("p", Wj, v(i.value), 1)) : j("", !0)
31479
31478
  ]));
31480
31479
  }
31481
- }), cI = /* @__PURE__ */ Je(Zj, [["__scopeId", "data-v-afcb2d73"]]), Gj = { class: "admin-image-cropper" }, Kj = {
31480
+ }), lI = /* @__PURE__ */ Je(Zj, [["__scopeId", "data-v-afcb2d73"]]), Gj = { class: "admin-image-cropper" }, Kj = {
31482
31481
  key: 0,
31483
31482
  class: "admin-image-cropper__label"
31484
31483
  }, Xj = {
@@ -31924,7 +31923,7 @@ const ij = {
31924
31923
  }, null, 8, ["node"]))), 128))
31925
31924
  ]));
31926
31925
  }
31927
- }), _x = /* @__PURE__ */ Je(CB, [["__scopeId", "data-v-df29c244"]]), SB = {
31926
+ }), Lx = /* @__PURE__ */ Je(CB, [["__scopeId", "data-v-df29c244"]]), SB = {
31928
31927
  key: 0,
31929
31928
  class: "uid-form-field__label"
31930
31929
  }, qB = {
@@ -32055,7 +32054,7 @@ const ij = {
32055
32054
  }, 8, ["aria-label", "onClick"])) : j("", !0)
32056
32055
  ])
32057
32056
  ]),
32058
- _(_x, {
32057
+ _(Lx, {
32059
32058
  fields: e.fields,
32060
32059
  "model-value": x,
32061
32060
  "onUpdate:modelValue": (S) => s(b, S)
@@ -32213,7 +32212,7 @@ const ij = {
32213
32212
  }, 8, ["aria-label", "onClick"])
32214
32213
  ])
32215
32214
  ]),
32216
- m(b.type) ? (r(), z(_x, {
32215
+ m(b.type) ? (r(), z(Lx, {
32217
32216
  key: 0,
32218
32217
  fields: m(b.type).fields,
32219
32218
  "model-value": b.data,
@@ -32315,7 +32314,7 @@ const ij = {
32315
32314
  e.help ? (r(), h("p", KB, v(e.help), 1)) : j("", !0)
32316
32315
  ]));
32317
32316
  }
32318
- }), JB = { class: "admin-picker-item__thumb" }, YB = ["src", "alt"], QB = { class: "admin-picker-item__text" }, eD = ["title"], tD = ["title"], yb = /* @__PURE__ */ J({
32317
+ }), JB = { class: "admin-picker-item__thumb" }, YB = ["src", "alt"], QB = { class: "admin-picker-item__text" }, eD = ["title"], tD = ["title"], hb = /* @__PURE__ */ J({
32319
32318
  __name: "PickerItemView",
32320
32319
  props: {
32321
32320
  item: {},
@@ -32354,13 +32353,13 @@ const ij = {
32354
32353
  ])
32355
32354
  ], 2));
32356
32355
  }
32357
- }), iw = 100, pb = (e) => typeof e == "number" || typeof e == "string" && e !== "", nc = (e, t) => String(e) === String(t);
32358
- function Cx(e) {
32359
- return Array.isArray(e) ? e.filter(pb) : pb(e) ? [e] : [];
32356
+ }), ow = 100, yb = (e) => typeof e == "number" || typeof e == "string" && e !== "", nc = (e, t) => String(e) === String(t);
32357
+ function _x(e) {
32358
+ return Array.isArray(e) ? e.filter(yb) : yb(e) ? [e] : [];
32360
32359
  }
32361
- function Sx(e) {
32360
+ function Cx(e) {
32362
32361
  const t = e._picker, n = t?.id ?? e.id;
32363
- if (!pb(n)) return null;
32362
+ if (!yb(n)) return null;
32364
32363
  const l = t?.title ?? e.title ?? e.name ?? e.label ?? `#${n}`;
32365
32364
  return {
32366
32365
  id: n,
@@ -32379,12 +32378,12 @@ async function nD(e, t = {}) {
32379
32378
  const n = {
32380
32379
  picker: !0,
32381
32380
  page: t.page ?? 1,
32382
- per_page: Math.min(t.perPage ?? 24, iw)
32381
+ per_page: Math.min(t.perPage ?? 24, ow)
32383
32382
  };
32384
32383
  t.q && (n.q = t.q);
32385
32384
  const l = aD(t.filters ?? {});
32386
32385
  Object.keys(l).length > 0 && (n.filters = l);
32387
- const i = await we().post(`/${e}/search`, n), c = (i.data ?? []).map(Sx).filter((s) => s !== null);
32386
+ const i = await we().post(`/${e}/search`, n), c = (i.data ?? []).map(Cx).filter((s) => s !== null);
32388
32387
  return {
32389
32388
  items: c,
32390
32389
  total: Number(i.meta?.total ?? c.length),
@@ -32392,17 +32391,17 @@ async function nD(e, t = {}) {
32392
32391
  lastPage: Number(i.meta?.last_page ?? 1)
32393
32392
  };
32394
32393
  }
32395
- async function Lw(e, t) {
32394
+ async function xw(e, t) {
32396
32395
  const n = [];
32397
- for (let l = 0; l < t.length; l += iw) {
32398
- const i = t.slice(l, l + iw), c = await we().post(`/${e}/search`, {
32396
+ for (let l = 0; l < t.length; l += ow) {
32397
+ const i = t.slice(l, l + ow), c = await we().post(`/${e}/search`, {
32399
32398
  picker: !0,
32400
32399
  ids: i,
32401
32400
  page: 1,
32402
32401
  per_page: i.length
32403
32402
  });
32404
32403
  for (const s of c.data ?? []) {
32405
- const u = Sx(s);
32404
+ const u = Cx(s);
32406
32405
  u && n.push(u);
32407
32406
  }
32408
32407
  }
@@ -32416,7 +32415,7 @@ async function oD(e, t) {
32416
32415
  const l = await we().post(e.url, n, {
32417
32416
  headers: { "Content-Type": "multipart/form-data" }
32418
32417
  }), c = (e.responseKey ? l?.[e.responseKey] : l)?.id;
32419
- return pb(c) ? c : null;
32418
+ return yb(c) ? c : null;
32420
32419
  }
32421
32420
  const iD = {
32422
32421
  class: "admin-picker-dialog",
@@ -32514,7 +32513,7 @@ const iD = {
32514
32513
  try {
32515
32514
  const F = await oD(n.upload, q);
32516
32515
  if (s.value = 1, await S(), F !== null) {
32517
- const A = i.value.find((E) => nc(E.id, F)) ?? (await Lw(n.resource, [F]))[0];
32516
+ const A = i.value.find((E) => nc(E.id, F)) ?? (await xw(n.resource, [F]))[0];
32518
32517
  A && !H(A) && (n.multiple ? b.value || (k.value = [...k.value, A]) : k.value = [A]);
32519
32518
  }
32520
32519
  } catch (F) {
@@ -32564,7 +32563,7 @@ const iD = {
32564
32563
  default: L(() => [
32565
32564
  M("div", iD, [
32566
32565
  M("div", lD, [
32567
- _(ox, {
32566
+ _(nx, {
32568
32567
  class: "admin-picker-dialog__filters",
32569
32568
  search: u.value,
32570
32569
  filters: I.value,
@@ -32609,7 +32608,7 @@ const iD = {
32609
32608
  key: q,
32610
32609
  height: "120px"
32611
32610
  })), 64))
32612
- ])) : p.value ? (r(), z(o(gb), {
32611
+ ])) : p.value ? (r(), z(o(fb), {
32613
32612
  key: 1,
32614
32613
  title: o(g)("Не удалось загрузить записи"),
32615
32614
  description: p.value.message
@@ -32627,7 +32626,7 @@ const iD = {
32627
32626
  })
32628
32627
  ]),
32629
32628
  _: 1
32630
- }, 8, ["title", "description"])) : i.value.length === 0 ? (r(), z(o(Mb), {
32629
+ }, 8, ["title", "description"])) : i.value.length === 0 ? (r(), z(o(gb), {
32631
32630
  key: 2,
32632
32631
  title: o(g)("Ничего не найдено")
32633
32632
  }, null, 8, ["title"])) : (r(), h("div", {
@@ -32649,7 +32648,7 @@ const iD = {
32649
32648
  onDblclick: (F) => U(q)
32650
32649
  }, {
32651
32650
  default: L(() => [
32652
- _(yb, {
32651
+ _(hb, {
32653
32652
  item: q,
32654
32653
  variant: x.value === "grid" ? "tile" : "row"
32655
32654
  }, null, 8, ["item", "variant"]),
@@ -32666,7 +32665,7 @@ const iD = {
32666
32665
  _: 2
32667
32666
  }, 1032, ["class", "aria-pressed", "data-testid", "onClick", "onDblclick"]))), 128))
32668
32667
  ], 10, dD)),
32669
- c.value > e.perPage ? (r(), z(o(xI), {
32668
+ c.value > e.perPage ? (r(), z(o(II), {
32670
32669
  key: 4,
32671
32670
  class: "admin-picker-dialog__pagination",
32672
32671
  "model-value": s.value,
@@ -32714,7 +32713,7 @@ const iD = {
32714
32713
  viewPermission: { default: null }
32715
32714
  },
32716
32715
  setup(e) {
32717
- const t = e, n = Le(), l = Ee(), i = Oe(), c = f(() => Cx(n.getField(t.name))), s = f(() => {
32716
+ const t = e, n = Le(), l = Ee(), i = Oe(), c = f(() => _x(n.getField(t.name))), s = f(() => {
32718
32717
  const O = n.errors[t.name]?.[0];
32719
32718
  if (O) return O;
32720
32719
  const R = Object.keys(n.errors).find((Z) => Z.startsWith(`${t.name}.`));
@@ -32737,7 +32736,7 @@ const iD = {
32737
32736
  const O = c.value.filter((R) => !w.value.has(String(R)) && !I.value.has(String(R)));
32738
32737
  if (O.length !== 0)
32739
32738
  try {
32740
- const R = await Lw(t.resource, O);
32739
+ const R = await xw(t.resource, O);
32741
32740
  b(R);
32742
32741
  const Z = new Set(I.value);
32743
32742
  for (const K of O)
@@ -32786,7 +32785,7 @@ const iD = {
32786
32785
  key: String(Z.id),
32787
32786
  class: pe(["admin-resource-picker__item", { "admin-resource-picker__item--missing": I.value.has(String(Z.id)) }])
32788
32787
  }, [
32789
- _(yb, { item: Z }, null, 8, ["item"]),
32788
+ _(hb, { item: Z }, null, 8, ["item"]),
32790
32789
  p.value ? j("", !0) : (r(), h("span", mD, [
32791
32790
  e.multiple && x.value.length > 1 ? (r(), h(N, { key: 0 }, [
32792
32791
  _(o(ee), {
@@ -33087,7 +33086,7 @@ const iD = {
33087
33086
  class: "admin-markdown-field__editor",
33088
33087
  style: Ce(p.value ? { "--admin-md-height": p.value } : void 0)
33089
33088
  }, [
33090
- _(o(hw), {
33089
+ _(o(uw), {
33091
33090
  "model-value": l.value,
33092
33091
  rows: e.rows,
33093
33092
  placeholder: e.placeholder ?? void 0,
@@ -33196,7 +33195,7 @@ const iD = {
33196
33195
  disabled: e.disabled
33197
33196
  }, {
33198
33197
  default: L(() => [
33199
- c.value ? (r(), z(o(wb), {
33198
+ c.value ? (r(), z(o(bb), {
33200
33199
  key: 0,
33201
33200
  code: l.value,
33202
33201
  language: e.language ?? void 0,
@@ -33215,7 +33214,7 @@ const iD = {
33215
33214
  M("div", VD, [
33216
33215
  e.lineNumbers ? (r(), h("pre", PD, v(Array.from({ length: u.value }, (S, C) => C < s.value ? String(C + 1) : "").join(`
33217
33216
  `)), 1)) : j("", !0),
33218
- _(o(hw), {
33217
+ _(o(uw), {
33219
33218
  class: "admin-code-field__input",
33220
33219
  "model-value": l.value,
33221
33220
  rows: u.value,
@@ -33230,8 +33229,8 @@ const iD = {
33230
33229
  _: 1
33231
33230
  }, 8, ["label", "hint", "error", "required", "disabled"]));
33232
33231
  }
33233
- }), _w = (e, t, n) => Math.min(n, Math.max(t, e));
33234
- function rI(e) {
33232
+ }), Lw = (e, t, n) => Math.min(n, Math.max(t, e));
33233
+ function cI(e) {
33235
33234
  let t = e.replace(/^#/, "");
33236
33235
  if (!/^[0-9a-f]+$/i.test(t) || ((t.length === 3 || t.length === 4) && (t = t.split("").map((l) => l + l).join("")), t.length !== 6 && t.length !== 8)) return null;
33237
33236
  const n = (l) => parseInt(t.slice(l, l + 2), 16);
@@ -33240,7 +33239,7 @@ function rI(e) {
33240
33239
  function jD(e) {
33241
33240
  if (e === void 0) return 1;
33242
33241
  const t = e.trim();
33243
- return _w(t.endsWith("%") ? parseFloat(t) / 100 : parseFloat(t), 0, 1);
33242
+ return Lw(t.endsWith("%") ? parseFloat(t) / 100 : parseFloat(t), 0, 1);
33244
33243
  }
33245
33244
  function BD(e, t, n) {
33246
33245
  const l = t / 100, i = n / 100, c = (d) => (d + e / 30) % 12, s = l * Math.min(i, 1 - i), u = (d) => i - s * Math.max(-1, Math.min(c(d) - 3, Math.min(9 - c(d), 1)));
@@ -33253,25 +33252,25 @@ function DD(e, t, n) {
33253
33252
  let k;
33254
33253
  return s === l ? k = (i - c) / y + (i < c ? 6 : 0) : s === i ? k = (c - l) / y + 2 : k = (l - i) / y + 4, [Math.round(k * 60), Math.round(p * 100), Math.round(d * 100)];
33255
33254
  }
33256
- function Cw(e) {
33255
+ function _w(e) {
33257
33256
  if (typeof e != "string") return null;
33258
33257
  const t = e.trim().toLowerCase();
33259
33258
  if (t === "") return null;
33260
- if (t.startsWith("#")) return rI(t);
33259
+ if (t.startsWith("#")) return cI(t);
33261
33260
  const n = /^(rgba?|hsla?)\(([^)]*)\)$/.exec(t);
33262
- if (!n) return rI(t);
33261
+ if (!n) return cI(t);
33263
33262
  const l = (n[2] ?? "").split(/[\s,/]+/).filter((m) => m !== "");
33264
33263
  if (l.length < 3) return null;
33265
33264
  const [i = "0", c = "0", s = "0", u] = l, d = jD(u);
33266
33265
  if (n[1]?.startsWith("rgb")) {
33267
- const m = (b) => _w(Math.round(b.endsWith("%") ? parseFloat(b) / 100 * 255 : parseFloat(b)), 0, 255), [w, I, x] = [m(i), m(c), m(s)];
33266
+ const m = (b) => Lw(Math.round(b.endsWith("%") ? parseFloat(b) / 100 * 255 : parseFloat(b)), 0, 255), [w, I, x] = [m(i), m(c), m(s)];
33268
33267
  return [w, I, x].some(Number.isNaN) ? null : { r: w, g: I, b: x, a: d };
33269
33268
  }
33270
33269
  const [y, p, k] = BD(parseFloat(i), parseFloat(c), parseFloat(s));
33271
33270
  return [y, p, k].some(Number.isNaN) ? null : { r: y, g: p, b: k, a: d };
33272
33271
  }
33273
- const Sc = (e) => _w(Math.round(e), 0, 255).toString(16).padStart(2, "0");
33274
- function kb(e, t = "hex") {
33272
+ const Sc = (e) => Lw(Math.round(e), 0, 255).toString(16).padStart(2, "0");
33273
+ function pb(e, t = "hex") {
33275
33274
  const n = e.a < 1, l = Math.round(e.a * 100) / 100;
33276
33275
  if (t === "rgb")
33277
33276
  return n ? `rgba(${e.r}, ${e.g}, ${e.b}, ${l})` : `rgb(${e.r}, ${e.g}, ${e.b})`;
@@ -33281,11 +33280,11 @@ function kb(e, t = "hex") {
33281
33280
  }
33282
33281
  return `#${Sc(e.r)}${Sc(e.g)}${Sc(e.b)}${n ? Sc(e.a * 255) : ""}`;
33283
33282
  }
33284
- function dI(e) {
33285
- const t = Cw(e);
33286
- return t === null ? null : kb(t, "hex");
33283
+ function rI(e) {
33284
+ const t = _w(e);
33285
+ return t === null ? null : pb(t, "hex");
33287
33286
  }
33288
- const sI = /* @__PURE__ */ J({
33287
+ const dI = /* @__PURE__ */ J({
33289
33288
  __name: "ColorField",
33290
33289
  props: {
33291
33290
  name: {},
@@ -33299,18 +33298,18 @@ const sI = /* @__PURE__ */ J({
33299
33298
  withAlpha: { type: Boolean, default: !1 }
33300
33299
  },
33301
33300
  setup(e) {
33302
- const t = e, n = Le(), l = f(() => dI(n.getField(t.name))), i = f(() => {
33301
+ const t = e, n = Le(), l = f(() => rI(n.getField(t.name))), i = f(() => {
33303
33302
  if (!(!t.palette || t.palette.length === 0))
33304
- return t.palette.map((u) => dI(u)).filter((u) => u !== null);
33303
+ return t.palette.map((u) => rI(u)).filter((u) => u !== null);
33305
33304
  }), c = f(() => n.errors[t.name]?.[0]);
33306
33305
  function s(u) {
33307
33306
  if (t.readonly) return;
33308
- const d = Cw(u);
33307
+ const d = _w(u);
33309
33308
  if (d === null) {
33310
33309
  n.setField(t.name, null);
33311
33310
  return;
33312
33311
  }
33313
- t.withAlpha || (d.a = 1), n.setField(t.name, kb(d, t.format));
33312
+ t.withAlpha || (d.a = 1), n.setField(t.name, pb(d, t.format));
33314
33313
  }
33315
33314
  return (u, d) => (r(), z(o(De), {
33316
33315
  label: e.label ?? void 0,
@@ -33320,7 +33319,7 @@ const sI = /* @__PURE__ */ J({
33320
33319
  disabled: e.disabled
33321
33320
  }, {
33322
33321
  default: L(() => [
33323
- _(o(ML), {
33322
+ _(o(gL), {
33324
33323
  "model-value": l.value,
33325
33324
  presets: i.value,
33326
33325
  alpha: e.withAlpha,
@@ -33369,7 +33368,7 @@ const sI = /* @__PURE__ */ J({
33369
33368
  }, {
33370
33369
  default: L(() => [
33371
33370
  M("div", RD, [
33372
- _(o(bL), {
33371
+ _(o(ML), {
33373
33372
  "model-value": l.value,
33374
33373
  min: e.min,
33375
33374
  max: e.max,
@@ -33411,7 +33410,7 @@ const sI = /* @__PURE__ */ J({
33411
33410
  }), i = f(() => n.errors[t.name]?.[0]), c = f(() => {
33412
33411
  if (!t.icon) return;
33413
33412
  const u = t.icon.split("-").map((d) => d.charAt(0).toUpperCase() + d.slice(1)).join("");
33414
- return yw[u];
33413
+ return hw[u];
33415
33414
  });
33416
33415
  function s(u) {
33417
33416
  n.setField(t.name, u);
@@ -33424,7 +33423,7 @@ const sI = /* @__PURE__ */ J({
33424
33423
  disabled: e.disabled
33425
33424
  }, {
33426
33425
  default: L(() => [
33427
- _(o(_I), {
33426
+ _(o(LI), {
33428
33427
  "model-value": l.value,
33429
33428
  max: e.count,
33430
33429
  "allow-half": e.half,
@@ -33460,7 +33459,7 @@ const sI = /* @__PURE__ */ J({
33460
33459
  function c(s) {
33461
33460
  t.readonly || n.setField(t.name, s ?? null);
33462
33461
  }
33463
- return (s, u) => (r(), z(o(wL), {
33462
+ return (s, u) => (r(), z(o(bL), {
33464
33463
  "model-value": l.value,
33465
33464
  name: e.name,
33466
33465
  label: e.label ?? void 0,
@@ -33472,7 +33471,7 @@ const sI = /* @__PURE__ */ J({
33472
33471
  "onUpdate:modelValue": c
33473
33472
  }, {
33474
33473
  default: L(() => [
33475
- (r(!0), h(N, null, Y(e.options, (d) => (r(), z(o(IL), {
33474
+ (r(!0), h(N, null, Y(e.options, (d) => (r(), z(o(wL), {
33476
33475
  key: String(d.value),
33477
33476
  value: d.value,
33478
33477
  label: d.label,
@@ -33482,7 +33481,7 @@ const sI = /* @__PURE__ */ J({
33482
33481
  _: 1
33483
33482
  }, 8, ["model-value", "name", "label", "hint", "error", "required", "disabled", "direction"]));
33484
33483
  }
33485
- }), uI = /* @__PURE__ */ J({
33484
+ }), sI = /* @__PURE__ */ J({
33486
33485
  __name: "TimeField",
33487
33486
  props: {
33488
33487
  name: {},
@@ -33514,7 +33513,7 @@ const sI = /* @__PURE__ */ J({
33514
33513
  disabled: e.disabled
33515
33514
  }, {
33516
33515
  default: L(() => [
33517
- _(o(LI), {
33516
+ _(o(xI), {
33518
33517
  "model-value": i.value,
33519
33518
  "with-seconds": n.value,
33520
33519
  step: e.step ?? void 0,
@@ -33528,7 +33527,7 @@ const sI = /* @__PURE__ */ J({
33528
33527
  }, 8, ["label", "hint", "error", "required", "disabled"]));
33529
33528
  }
33530
33529
  }), qc = (e) => typeof e == "string" && /^\d{4}-\d{2}-\d{2}/.test(e) ? e.slice(0, 10) : null;
33531
- function qx(e) {
33530
+ function Sx(e) {
33532
33531
  if (Array.isArray(e)) return { start: qc(e[0]), end: qc(e[1]) };
33533
33532
  if (e && typeof e == "object") {
33534
33533
  const t = e;
@@ -33539,7 +33538,7 @@ function qx(e) {
33539
33538
  const ND = { class: "admin-date-range-field" }, WD = {
33540
33539
  key: 0,
33541
33540
  class: "admin-date-range-field__presets"
33542
- }, hI = /* @__PURE__ */ J({
33541
+ }, uI = /* @__PURE__ */ J({
33543
33542
  __name: "DateRangeField",
33544
33543
  props: {
33545
33544
  name: {},
@@ -33554,7 +33553,7 @@ const ND = { class: "admin-date-range-field" }, WD = {
33554
33553
  presets: { default: null }
33555
33554
  },
33556
33555
  setup(e) {
33557
- const t = e, n = Le(), l = f(() => qx(n.getField(t.name))), i = f(
33556
+ const t = e, n = Le(), l = f(() => Sx(n.getField(t.name))), i = f(
33558
33557
  () => n.errors[t.name]?.[0] ?? n.errors[`${t.name}.from`]?.[0] ?? n.errors[`${t.name}.to`]?.[0]
33559
33558
  ), c = f(() => t.disabled || t.readonly);
33560
33559
  function s(m) {
@@ -33616,7 +33615,7 @@ const ND = { class: "admin-date-range-field" }, WD = {
33616
33615
  }, {
33617
33616
  default: L(() => [
33618
33617
  M("div", ND, [
33619
- _(o(xL), {
33618
+ _(o(IL), {
33620
33619
  "model-value": l.value,
33621
33620
  min: e.min ?? void 0,
33622
33621
  max: e.max ?? void 0,
@@ -33659,11 +33658,11 @@ function Io(e) {
33659
33658
  }
33660
33659
  return t;
33661
33660
  }
33662
- function Ax(e, t) {
33661
+ function qx(e, t) {
33663
33662
  for (const n of e) {
33664
33663
  if (String(n.value) === String(t)) return [n.label];
33665
33664
  if (n.children) {
33666
- const l = Ax(n.children, t);
33665
+ const l = qx(n.children, t);
33667
33666
  if (l) return [n.label, ...l];
33668
33667
  }
33669
33668
  }
@@ -33682,7 +33681,7 @@ function ZD(e, t) {
33682
33681
  }
33683
33682
  return n;
33684
33683
  }
33685
- function zx(e, t) {
33684
+ function Ax(e, t) {
33686
33685
  if (Array.isArray(e)) {
33687
33686
  for (const n of e)
33688
33687
  if (n && typeof n == "object" && String(n.value) === String(t))
@@ -33693,7 +33692,7 @@ function zx(e, t) {
33693
33692
  }
33694
33693
  return String(t);
33695
33694
  }
33696
- const yI = /* @__PURE__ */ J({
33695
+ const hI = /* @__PURE__ */ J({
33697
33696
  __name: "TreeSelectField",
33698
33697
  props: {
33699
33698
  name: {},
@@ -33729,7 +33728,7 @@ const yI = /* @__PURE__ */ J({
33729
33728
  function k(m) {
33730
33729
  t.readonly || d.setField(t.name, m);
33731
33730
  }
33732
- return (m, w) => (r(), z(o(LL), {
33731
+ return (m, w) => (r(), z(o(xL), {
33733
33732
  "model-value": y.value,
33734
33733
  nodes: c.value,
33735
33734
  multiple: n.value,
@@ -33787,7 +33786,7 @@ const yI = /* @__PURE__ */ J({
33787
33786
  disabled: e.disabled
33788
33787
  }, {
33789
33788
  default: L(() => [
33790
- _(o(_L), {
33789
+ _(o(LL), {
33791
33790
  "model-value": c.value,
33792
33791
  options: n.value,
33793
33792
  separator: e.separator,
@@ -33800,7 +33799,7 @@ const yI = /* @__PURE__ */ J({
33800
33799
  _: 1
33801
33800
  }, 8, ["label", "hint", "error", "required", "disabled"]));
33802
33801
  }
33803
- }), KD = { class: "admin-morph-field" }, pI = /* @__PURE__ */ J({
33802
+ }), KD = { class: "admin-morph-field" }, yI = /* @__PURE__ */ J({
33804
33803
  __name: "MorphSwitcherField",
33805
33804
  props: {
33806
33805
  name: {},
@@ -33833,11 +33832,11 @@ const yI = /* @__PURE__ */ J({
33833
33832
  );
33834
33833
  function y(k) {
33835
33834
  if (l.value) return;
33836
- const m = hb(k), w = m === null || m === "" ? null : String(m);
33837
- n.setField(t.name, w === null ? null : { type: w, id: null });
33835
+ const m = k === null || k === "" ? null : String(k);
33836
+ n.setField(t.name, m === null ? null : { type: m, id: null });
33838
33837
  }
33839
33838
  function p(k) {
33840
- l.value || i.value.type === null || n.setField(t.name, { type: i.value.type, id: hb(k) });
33839
+ l.value || i.value.type === null || n.setField(t.name, { type: i.value.type, id: k });
33841
33840
  }
33842
33841
  return (k, m) => (r(), z(o(De), {
33843
33842
  label: e.label ?? void 0,
@@ -33947,19 +33946,19 @@ const yI = /* @__PURE__ */ J({
33947
33946
  },
33948
33947
  setup(e) {
33949
33948
  const t = e, n = Le();
33950
- BL(n, t.name);
33949
+ jL(n, t.name);
33951
33950
  const l = f(() => n.errors[t.name]?.[0]), i = f(() => t.description ?? t.help), c = V(t.collapsed ? "" : t.name), s = f(() => t.label ?? t.name);
33952
33951
  return (u, d) => (r(), h("div", {
33953
33952
  class: pe(["admin-group-field", `admin-group-field--${e.layout}`]),
33954
33953
  "data-name": e.name
33955
33954
  }, [
33956
- e.collapsible || e.collapsed ? (r(), z(o(CI), {
33955
+ e.collapsible || e.collapsed ? (r(), z(o(_I), {
33957
33956
  key: 0,
33958
33957
  modelValue: c.value,
33959
33958
  "onUpdate:modelValue": d[0] || (d[0] = (y) => c.value = y)
33960
33959
  }, {
33961
33960
  default: L(() => [
33962
- _(o(SI), {
33961
+ _(o(CI), {
33963
33962
  value: e.name,
33964
33963
  title: s.value
33965
33964
  }, {
@@ -34002,7 +34001,7 @@ const yI = /* @__PURE__ */ J({
34002
34001
  const c = i.span;
34003
34002
  return typeof c == "number" && c > 0 ? Math.min(c, t.cols) : n.value;
34004
34003
  }
34005
- return (i, c) => (r(), z(o(bb), {
34004
+ return (i, c) => (r(), z(o(Mb), {
34006
34005
  cols: e.cols,
34007
34006
  gap: e.gap
34008
34007
  }, {
@@ -34027,7 +34026,7 @@ const yI = /* @__PURE__ */ J({
34027
34026
  }, hR = {
34028
34027
  key: 1,
34029
34028
  class: "admin-section__description"
34030
- }, yR = { class: "admin-section__body" }, lw = /* @__PURE__ */ J({
34029
+ }, yR = { class: "admin-section__body" }, iw = /* @__PURE__ */ J({
34031
34030
  __name: "SectionLayout",
34032
34031
  props: {
34033
34032
  items: {},
@@ -34081,12 +34080,12 @@ const yI = /* @__PURE__ */ J({
34081
34080
  function s(u) {
34082
34081
  c.value = u, l("update:active", u);
34083
34082
  }
34084
- return (u, d) => (r(), z(o(CL), {
34083
+ return (u, d) => (r(), z(o(_L), {
34085
34084
  "model-value": c.value,
34086
34085
  "onUpdate:modelValue": s
34087
34086
  }, {
34088
34087
  list: L(() => [
34089
- (r(!0), h(N, null, Y(e.items, (y, p) => (r(), z(o(qL), {
34088
+ (r(!0), h(N, null, Y(e.items, (y, p) => (r(), z(o(SL), {
34090
34089
  key: i(y, p),
34091
34090
  value: i(y, p)
34092
34091
  }, {
@@ -34097,7 +34096,7 @@ const yI = /* @__PURE__ */ J({
34097
34096
  }, 1032, ["value"]))), 128))
34098
34097
  ]),
34099
34098
  default: L(() => [
34100
- (r(!0), h(N, null, Y(e.items, (y, p) => (r(), z(o(SL), {
34099
+ (r(!0), h(N, null, Y(e.items, (y, p) => (r(), z(o(CL), {
34101
34100
  key: `panel-${i(y, p)}`,
34102
34101
  value: i(y, p)
34103
34102
  }, {
@@ -34135,7 +34134,7 @@ const yI = /* @__PURE__ */ J({
34135
34134
  features: { default: () => ({ create: !1, delete: !1, bulkDelete: !1 }) }
34136
34135
  },
34137
34136
  setup(e) {
34138
- const t = e, n = Ee(), l = _b(), i = f(() => n.getResource(t.resource)), c = V([]), s = V(!1), u = V(null), d = V(/* @__PURE__ */ new Set()), y = V(null), p = f(() => {
34137
+ const t = e, n = Ee(), l = Lb(), i = f(() => n.getResource(t.resource)), c = V([]), s = V(!1), u = V(null), d = V(/* @__PURE__ */ new Set()), y = V(null), p = f(() => {
34139
34138
  const q = l.state[t.parent_field];
34140
34139
  return q ?? null;
34141
34140
  }), k = f(() => (i.value?.columns ?? []).filter((F) => {
@@ -34264,11 +34263,11 @@ const yI = /* @__PURE__ */ J({
34264
34263
  _: 1
34265
34264
  })) : j("", !0)
34266
34265
  ]),
34267
- s.value && c.value.length === 0 ? (r(), z(o(Ge), { key: 0 })) : u.value ? (r(), z(o(gb), {
34266
+ s.value && c.value.length === 0 ? (r(), z(o(Ge), { key: 0 })) : u.value ? (r(), z(o(fb), {
34268
34267
  key: 1,
34269
34268
  message: u.value.message,
34270
34269
  onRetry: S
34271
- }, null, 8, ["message"])) : !s.value && c.value.length === 0 && y.value === null ? (r(), z(o(Mb), {
34270
+ }, null, 8, ["message"])) : !s.value && c.value.length === 0 && y.value === null ? (r(), z(o(gb), {
34272
34271
  key: 2,
34273
34272
  title: o(g)("Нет данных"),
34274
34273
  hint: o(g)("Нажмите «Добавить», чтобы создать первую запись.")
@@ -34285,7 +34284,7 @@ const yI = /* @__PURE__ */ J({
34285
34284
  Y(m.value, (A) => ({
34286
34285
  name: A.key,
34287
34286
  fn: L((E) => [
34288
- B(E) && b(A.key) ? (r(), z(ix, {
34287
+ B(E) && b(A.key) ? (r(), z(ox, {
34289
34288
  key: 0,
34290
34289
  "resource-slug": e.resource,
34291
34290
  "row-id": C(B(E)),
@@ -34403,7 +34402,7 @@ const yI = /* @__PURE__ */ J({
34403
34402
  const i = l.size ?? l.span, c = Number(i), s = Number.isFinite(c) && c >= 1 ? c : t.gridColumns;
34404
34403
  return Math.min(s, t.gridColumns);
34405
34404
  }
34406
- return (l, i) => (r(), z(o(bb), {
34405
+ return (l, i) => (r(), z(o(Mb), {
34407
34406
  cols: e.gridColumns,
34408
34407
  "col-gap": e.gap,
34409
34408
  "row-gap": "var(--uid-space-lg)"
@@ -34414,7 +34413,7 @@ const yI = /* @__PURE__ */ J({
34414
34413
  class: "admin-dashboard-layout__cell",
34415
34414
  style: Ce({ gridColumn: `span ${n(c)}` })
34416
34415
  }, [
34417
- _(NI, { node: c }, null, 8, ["node"])
34416
+ _(EI, { node: c }, null, 8, ["node"])
34418
34417
  ], 4))), 128))
34419
34418
  ]),
34420
34419
  _: 1
@@ -34436,14 +34435,14 @@ const yI = /* @__PURE__ */ J({
34436
34435
  return s.children ?? s.items ?? [];
34437
34436
  }
34438
34437
  const i = t.sections.map((s, u) => s.defaultOpen ? n(u) : null).filter((s) => s !== null), c = V(t.multi ? i : i[0] ?? "");
34439
- return (s, u) => (r(), z(o(CI), {
34438
+ return (s, u) => (r(), z(o(_I), {
34440
34439
  modelValue: c.value,
34441
34440
  "onUpdate:modelValue": u[0] || (u[0] = (d) => c.value = d),
34442
34441
  multiple: e.multi,
34443
34442
  class: "admin-accordion-layout"
34444
34443
  }, {
34445
34444
  default: L(() => [
34446
- (r(!0), h(N, null, Y(e.sections, (d, y) => (r(), z(o(SI), {
34445
+ (r(!0), h(N, null, Y(e.sections, (d, y) => (r(), z(o(CI), {
34447
34446
  key: n(y),
34448
34447
  value: n(y),
34449
34448
  title: d.title
@@ -34473,7 +34472,7 @@ const yI = /* @__PURE__ */ J({
34473
34472
  function Ac(e) {
34474
34473
  return Array.isArray(e) ? e.filter((t) => typeof t == "object" && t !== null) : [];
34475
34474
  }
34476
- function $x(e) {
34475
+ function zx(e) {
34477
34476
  return (Array.isArray(e) ? e : typeof e == "string" ? [e] : []).filter((n) => typeof n == "string").flatMap((n) => n.split("|")).map((n) => n.trim()).filter((n) => n !== "");
34478
34477
  }
34479
34478
  function qR(e) {
@@ -34481,7 +34480,7 @@ function qR(e) {
34481
34480
  for (const i of l) {
34482
34481
  if (i.kind === "field" || i.kind === void 0 && typeof i.name == "string" && i.items === void 0) {
34483
34482
  if (typeof i.name != "string" || i.name === "") continue;
34484
- const c = $x(i.rules);
34483
+ const c = zx(i.rules);
34485
34484
  i.required === !0 && !c.includes("required") && c.unshift("required"), t.push({
34486
34485
  name: i.name,
34487
34486
  type: typeof i.type == "string" ? i.type : "",
@@ -34501,7 +34500,7 @@ function AR(e) {
34501
34500
  return e == null ? !0 : typeof e == "string" ? e.trim() === "" : Array.isArray(e) ? e.length === 0 : !1;
34502
34501
  }
34503
34502
  const zR = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
34504
- function kI(e, t) {
34503
+ function pI(e, t) {
34505
34504
  if (t || typeof e == "number") {
34506
34505
  const n = Number(e);
34507
34506
  return Number.isFinite(n) ? n : null;
@@ -34526,12 +34525,12 @@ function $R(e, t, n) {
34526
34525
  Number.isInteger(Number(e)) || c.push(fe("Поле «:field» должно быть целым числом.", { field: n }));
34527
34526
  break;
34528
34527
  case "min": {
34529
- const y = kI(e, i);
34528
+ const y = pI(e, i);
34530
34529
  y !== null && y < Number(d) && c.push(fe("Поле «:field»: не меньше :min.", { field: n, min: d }));
34531
34530
  break;
34532
34531
  }
34533
34532
  case "max": {
34534
- const y = kI(e, i);
34533
+ const y = pI(e, i);
34535
34534
  y !== null && y > Number(d) && c.push(fe("Поле «:field»: не больше :max.", { field: n, max: d }));
34536
34535
  break;
34537
34536
  }
@@ -34544,7 +34543,7 @@ function $R(e, t, n) {
34544
34543
  }
34545
34544
  function HR(e, t, n) {
34546
34545
  const l = t && typeof t == "object" && !Array.isArray(t) ? Object.fromEntries(
34547
- Object.entries(t).map(([u, d]) => [u, $x(d)])
34546
+ Object.entries(t).map(([u, d]) => [u, zx(d)])
34548
34547
  ) : {}, i = new Map(e.map((u) => [u.name, u.label])), c = /* @__PURE__ */ new Map();
34549
34548
  for (const u of e) c.set(u.name, [...u.rules]);
34550
34549
  for (const [u, d] of Object.entries(l))
@@ -34560,12 +34559,12 @@ const VR = /* @__PURE__ */ new Set(["password", "file", "image", "image_cropper"
34560
34559
  function PR(e) {
34561
34560
  return e.filter((t) => !VR.has(t.type));
34562
34561
  }
34563
- function Sw(e) {
34562
+ function Cw(e) {
34564
34563
  return `admin.wizard.${e}`;
34565
34564
  }
34566
34565
  function FR(e) {
34567
34566
  try {
34568
- const t = window.localStorage.getItem(Sw(e));
34567
+ const t = window.localStorage.getItem(Cw(e));
34569
34568
  if (!t) return null;
34570
34569
  const n = JSON.parse(t);
34571
34570
  return typeof n != "object" || n === null ? null : {
@@ -34578,13 +34577,13 @@ function FR(e) {
34578
34577
  }
34579
34578
  function jR(e, t) {
34580
34579
  try {
34581
- window.localStorage.setItem(Sw(e), JSON.stringify(t));
34580
+ window.localStorage.setItem(Cw(e), JSON.stringify(t));
34582
34581
  } catch {
34583
34582
  }
34584
34583
  }
34585
34584
  function BR(e) {
34586
34585
  try {
34587
- window.localStorage.removeItem(Sw(e));
34586
+ window.localStorage.removeItem(Cw(e));
34588
34587
  } catch {
34589
34588
  }
34590
34589
  }
@@ -34598,7 +34597,7 @@ const DR = /* @__PURE__ */ J({
34598
34597
  persistKey: { default: null }
34599
34598
  },
34600
34599
  setup(e) {
34601
- const t = e, n = li(), l = QI(), i = V(0), c = V(null), s = f(
34600
+ const t = e, n = li(), l = YI(), i = V(0), c = V(null), s = f(
34602
34601
  () => t.items.map((C, B) => ({
34603
34602
  label: C.title ?? `${B + 1}`,
34604
34603
  description: C.description ?? void 0
@@ -34658,7 +34657,7 @@ const DR = /* @__PURE__ */ J({
34658
34657
  jR(t.persistKey, { step: i.value, values: C });
34659
34658
  },
34660
34659
  { deep: !0 }
34661
- ), (C, B) => (r(), z(o(AL), {
34660
+ ), (C, B) => (r(), z(o(qL), {
34662
34661
  ref_key: "wizard",
34663
34662
  ref: c,
34664
34663
  modelValue: i.value,
@@ -34667,9 +34666,9 @@ const DR = /* @__PURE__ */ J({
34667
34666
  class: "admin-wizard-layout"
34668
34667
  }, {
34669
34668
  default: L(() => [
34670
- _(o(zL), null, {
34669
+ _(o(AL), null, {
34671
34670
  stepper: L(() => [
34672
- _(o(qI), {
34671
+ _(o(SI), {
34673
34672
  class: "admin-wizard-layout__stepper",
34674
34673
  steps: s.value,
34675
34674
  current: i.value,
@@ -34714,7 +34713,7 @@ const DR = /* @__PURE__ */ J({
34714
34713
  }))
34715
34714
  ]),
34716
34715
  default: L(() => [
34717
- (r(!0), h(N, null, Y(e.items, ($, D) => (r(), z(o($L), {
34716
+ (r(!0), h(N, null, Y(e.items, ($, D) => (r(), z(o(zL), {
34718
34717
  key: D,
34719
34718
  index: D,
34720
34719
  validate: k.value[D]
@@ -34752,7 +34751,7 @@ const DR = /* @__PURE__ */ J({
34752
34751
  description: { default: null }
34753
34752
  },
34754
34753
  setup(e) {
34755
- return (t, n) => (r(), z(lw, {
34754
+ return (t, n) => (r(), z(iw, {
34756
34755
  items: e.items,
34757
34756
  title: e.title,
34758
34757
  description: e.description,
@@ -34760,8 +34759,8 @@ const DR = /* @__PURE__ */ J({
34760
34759
  }, null, 8, ["items", "title", "description"]));
34761
34760
  }
34762
34761
  }), TR = /* @__PURE__ */ new Set(["close", "cancel"]);
34763
- function Hx(e) {
34764
- const t = QI(), n = V(e.open === !0);
34762
+ function $x(e) {
34763
+ const t = YI(), n = V(e.open === !0);
34765
34764
  t && e.id && e.open === !0 && t.open(e.id);
34766
34765
  function l() {
34767
34766
  return t && e.id ? t.isOpen(e.id) : n.value;
@@ -34806,12 +34805,12 @@ const UR = /* @__PURE__ */ J({
34806
34805
  open: { type: Boolean, default: !1 }
34807
34806
  },
34808
34807
  setup(e) {
34809
- const t = e, n = Hx(t), l = n.model, i = /* @__PURE__ */ new Set(["sm", "md", "lg", "xl", "full"]), c = f(
34808
+ const t = e, n = $x(t), l = n.model, i = /* @__PURE__ */ new Set(["sm", "md", "lg", "xl", "full"]), c = f(
34810
34809
  () => t.size && i.has(t.size) ? t.size : "md"
34811
34810
  );
34812
34811
  return (s, u) => (r(), z(o(Wt), {
34813
34812
  modelValue: o(l),
34814
- "onUpdate:modelValue": u[0] || (u[0] = (d) => bI(l) ? l.value = d : null),
34813
+ "onUpdate:modelValue": u[0] || (u[0] = (d) => MI(l) ? l.value = d : null),
34815
34814
  title: e.title ?? void 0,
34816
34815
  size: c.value,
34817
34816
  "close-on-overlay": e.dismissable,
@@ -34870,12 +34869,12 @@ const UR = /* @__PURE__ */ J({
34870
34869
  open: { type: Boolean, default: !1 }
34871
34870
  },
34872
34871
  setup(e) {
34873
- const t = e, n = Hx(t), l = n.model, i = /* @__PURE__ */ new Set(["left", "right", "top", "bottom"]), c = f(
34872
+ const t = e, n = $x(t), l = n.model, i = /* @__PURE__ */ new Set(["left", "right", "top", "bottom"]), c = f(
34874
34873
  () => t.position && i.has(t.position) ? t.position : "right"
34875
34874
  ), s = f(() => c.value === "top" || c.value === "bottom"), u = { sm: "320px", md: "480px", lg: "640px", xl: "800px" }, d = { sm: "25vh", md: "40vh", lg: "60vh", xl: "80vh" }, y = f(() => t.size ? s.value ? { height: d[t.size] ?? t.size } : { width: u[t.size] ?? t.size } : {});
34876
- return (p, k) => (r(), z(o(HL), mt({
34875
+ return (p, k) => (r(), z(o($L), mt({
34877
34876
  modelValue: o(l),
34878
- "onUpdate:modelValue": k[0] || (k[0] = (m) => bI(l) ? l.value = m : null),
34877
+ "onUpdate:modelValue": k[0] || (k[0] = (m) => MI(l) ? l.value = m : null),
34879
34878
  title: e.title ?? void 0,
34880
34879
  side: c.value
34881
34880
  }, y.value, {
@@ -34928,7 +34927,7 @@ const UR = /* @__PURE__ */ J({
34928
34927
  component: { default: null }
34929
34928
  },
34930
34929
  setup(e) {
34931
- const t = e, n = Xx(), l = f(() => !t.component || t.component === "view" ? null : Qb(t.component) ?? null), i = f(() => {
34930
+ const t = e, n = Kx(), l = f(() => !t.component || t.component === "view" ? null : Yb(t.component) ?? null), i = f(() => {
34932
34931
  const { props: c, children: s, ...u } = n;
34933
34932
  return u;
34934
34933
  });
@@ -34992,9 +34991,9 @@ const UR = /* @__PURE__ */ J({
34992
34991
  },
34993
34992
  setup(e) {
34994
34993
  const t = e;
34995
- ht() || Ab(li()?.state ?? {});
34994
+ ht() || qb(li()?.state ?? {});
34996
34995
  const n = f(() => t.layout === "columns" ? Math.max(1, t.items.length) : t.layout === "grid" ? t.columns && t.columns > 0 ? t.columns : 2 : 1);
34997
- return (l, i) => n.value > 1 ? (r(), z(o(bb), {
34996
+ return (l, i) => n.value > 1 ? (r(), z(o(Mb), {
34998
34997
  key: 0,
34999
34998
  cols: n.value,
35000
34999
  gap: "var(--uid-space-md)",
@@ -35046,7 +35045,7 @@ const UR = /* @__PURE__ */ J({
35046
35045
  }
35047
35046
  }
35048
35047
  const s = f(() => c(t.permission));
35049
- return (u, d) => s.value && i.value !== null && i.value !== "" ? (r(), z(cx, {
35048
+ return (u, d) => s.value && i.value !== null && i.value !== "" ? (r(), z(lx, {
35050
35049
  key: 0,
35051
35050
  class: "admin-audit-trail-layout",
35052
35051
  "subject-type": e.subjectType,
@@ -35158,7 +35157,7 @@ const UR = /* @__PURE__ */ J({
35158
35157
  key: 0,
35159
35158
  class: "admin-markdown-layout__html",
35160
35159
  innerHTML: w.html
35161
- }, null, 8, GR)) : (r(), z(o(wb), {
35160
+ }, null, 8, GR)) : (r(), z(o(bb), {
35162
35161
  key: 1,
35163
35162
  class: "admin-markdown-layout__code",
35164
35163
  code: w.code,
@@ -35207,7 +35206,7 @@ const UR = /* @__PURE__ */ J({
35207
35206
  setup(e) {
35208
35207
  return (t, n) => (r(), h("figure", QR, [
35209
35208
  e.title ? (r(), h("figcaption", eT, v(e.title), 1)) : j("", !0),
35210
- _(o(wb), {
35209
+ _(o(bb), {
35211
35210
  class: "admin-code-layout__code",
35212
35211
  code: e.code ?? "",
35213
35212
  language: e.language ?? void 0,
@@ -35256,7 +35255,7 @@ const UR = /* @__PURE__ */ J({
35256
35255
  return b == null || b === "" ? !1 : Array.isArray(b) ? b.length > 0 : !0;
35257
35256
  }
35258
35257
  async function I(b) {
35259
- if (!n || !l || !$I()) return;
35258
+ if (!n || !l || !zI()) return;
35260
35259
  k?.abort();
35261
35260
  const S = new AbortController();
35262
35261
  k = S;
@@ -35279,7 +35278,7 @@ const UR = /* @__PURE__ */ J({
35279
35278
  if ($ instanceof Jt)
35280
35279
  for (const [D, H] of Object.entries($.fields)) n.setError(D, H);
35281
35280
  else
35282
- TI($, g("Не удалось обновить форму"));
35281
+ RI($, g("Не удалось обновить форму"));
35283
35282
  } finally {
35284
35283
  C === m && (c.value = !1, k = null);
35285
35284
  }
@@ -35306,7 +35305,7 @@ const UR = /* @__PURE__ */ J({
35306
35305
  }, [
35307
35306
  _(lb, { items: i.value }, null, 8, ["items"]),
35308
35307
  c.value ? (r(), h("span", nT, [
35309
- _(o(sw), {
35308
+ _(o(dw), {
35310
35309
  size: "sm",
35311
35310
  label: o(g)("Обновление…")
35312
35311
  }, null, 8, ["label"])
@@ -35320,7 +35319,7 @@ function yi(e) {
35320
35319
  inheritAttrs: !1,
35321
35320
  setup(t, { attrs: n }) {
35322
35321
  const l = { ...n, inputType: n.inputType ?? e };
35323
- return () => Ae(ow, l);
35322
+ return () => Ae(nw, l);
35324
35323
  }
35325
35324
  });
35326
35325
  }
@@ -35335,8 +35334,8 @@ function lT() {
35335
35334
  fields: {
35336
35335
  // The backend field classes of dskripchenko/laravel-admin return these
35337
35336
  // fieldType() strings; see core/src/Field/{Input,TextArea,Select,...}.php.
35338
- input: ow,
35339
- text: ow,
35337
+ input: nw,
35338
+ text: nw,
35340
35339
  email: yi("email"),
35341
35340
  url: yi("url"),
35342
35341
  password: yi("password"),
@@ -35356,40 +35355,40 @@ function lT() {
35356
35355
  number: aj,
35357
35356
  slider: UD,
35358
35357
  rating: OD,
35359
- select: Xb,
35358
+ select: Kb,
35360
35359
  combobox: nj,
35361
35360
  radio: ED,
35362
35361
  tags: vj,
35363
35362
  // Translatable: the backend's Field\TranslatableInput has
35364
35363
  // fieldType()='translatable'. The value is a Record<locale, string>, and
35365
35364
  // the UI shows a tab per locale.
35366
- translatable: lI,
35367
- "translatable-text": lI,
35365
+ translatable: iI,
35366
+ "translatable-text": iI,
35368
35367
  // The backend's fieldType() returns snake_case, so that is what we
35369
35368
  // register; the dashed variants remain as historical aliases for host
35370
35369
  // code.
35371
- morph_switcher: pI,
35372
- "morph-switcher": pI,
35373
- relation_select: Xb,
35374
- relation: Xb,
35370
+ morph_switcher: yI,
35371
+ "morph-switcher": yI,
35372
+ relation_select: Kb,
35373
+ relation: Kb,
35375
35374
  cascader: GD,
35376
- tree_select: yI,
35377
- "tree-select": yI,
35378
- checkbox: nI,
35379
- switch: aI,
35380
- switcher: aI,
35381
- boolean: nI,
35382
- date: Jb,
35383
- datetime: Jb,
35384
- datepicker: Jb,
35385
- date_range: hI,
35386
- "date-range": hI,
35387
- time: uI,
35388
- "time-picker": uI,
35389
- color: sI,
35390
- "color-picker": sI,
35391
- file: cI,
35392
- image: cI,
35375
+ tree_select: hI,
35376
+ "tree-select": hI,
35377
+ checkbox: aI,
35378
+ switch: tI,
35379
+ switcher: tI,
35380
+ boolean: aI,
35381
+ date: Xb,
35382
+ datetime: Xb,
35383
+ datepicker: Xb,
35384
+ date_range: uI,
35385
+ "date-range": uI,
35386
+ time: sI,
35387
+ "time-picker": sI,
35388
+ color: dI,
35389
+ "color-picker": dI,
35390
+ file: lI,
35391
+ image: lI,
35393
35392
  image_cropper: kB,
35394
35393
  // The composite fields, which used to be drawn by UnknownField.
35395
35394
  key_value: LB,
@@ -35405,8 +35404,8 @@ function lT() {
35405
35404
  layouts: {
35406
35405
  rows: lb,
35407
35406
  columns: dR,
35408
- section: lw,
35409
- block: lw,
35407
+ section: iw,
35408
+ block: iw,
35410
35409
  tabs: pR,
35411
35410
  accordion: SR,
35412
35411
  group: lb,
@@ -35447,7 +35446,7 @@ const Se = /* @__PURE__ */ J({
35447
35446
  const t = e, n = ht(), l = f(() => {
35448
35447
  let i = t.value;
35449
35448
  if (i === void 0 && n && t.name && (i = n[t.name]), i == null || i === "") return t.placeholder;
35450
- const c = zb(i, t.preset, t.meta);
35449
+ const c = Ab(i, t.preset, t.meta);
35451
35450
  return c === "" ? t.placeholder : c;
35452
35451
  });
35453
35452
  return (i, c) => (r(), h("span", {
@@ -35476,7 +35475,7 @@ const Se = /* @__PURE__ */ J({
35476
35475
  ...t.map,
35477
35476
  ...t.colors
35478
35477
  })), c = f(() => t.variant ? t.variant : i.value[l.value] ?? "default"), s = f(() => t.labels[l.value] ?? l.value);
35479
- return (u, d) => l.value ? (r(), z(o(vb), {
35478
+ return (u, d) => l.value ? (r(), z(o(mb), {
35480
35479
  key: 0,
35481
35480
  variant: c.value
35482
35481
  }, {
@@ -35507,7 +35506,7 @@ const Se = /* @__PURE__ */ J({
35507
35506
  }
35508
35507
  const c = f(() => {
35509
35508
  const u = i(l.value ? t.trueIcon : t.falseIcon);
35510
- return yw[u];
35509
+ return hw[u];
35511
35510
  }), s = f(() => l.value ? t.trueLabel : t.falseLabel);
35512
35511
  return (u, d) => (r(), h("span", {
35513
35512
  class: pe(["admin-infolist-icon", l.value ? "admin-infolist-icon--on" : "admin-infolist-icon--off"])
@@ -35524,7 +35523,7 @@ const Se = /* @__PURE__ */ J({
35524
35523
  }), uT = {
35525
35524
  key: 1,
35526
35525
  class: "admin-infolist-text"
35527
- }, Yb = /* @__PURE__ */ J({
35526
+ }, Jb = /* @__PURE__ */ J({
35528
35527
  __name: "KeyValueEntry",
35529
35528
  props: {
35530
35529
  name: { default: "" },
@@ -35539,13 +35538,13 @@ const Se = /* @__PURE__ */ J({
35539
35538
  function i(c) {
35540
35539
  return c == null ? "—" : typeof c == "boolean" ? c ? g("Да") : g("Нет") : c === 0 ? g("Нет") : c === 1 ? g("Да") : typeof c == "object" ? JSON.stringify(c) : String(c);
35541
35540
  }
35542
- return (c, s) => l.value.length > 0 ? (r(), z(o(VL), {
35541
+ return (c, s) => l.value.length > 0 ? (r(), z(o(HL), {
35543
35542
  key: 0,
35544
35543
  direction: "vertical",
35545
35544
  columns: 1
35546
35545
  }, {
35547
35546
  default: L(() => [
35548
- (r(!0), h(N, null, Y(l.value, ([u, d]) => (r(), z(o(PL), {
35547
+ (r(!0), h(N, null, Y(l.value, ([u, d]) => (r(), z(o(VL), {
35549
35548
  key: u,
35550
35549
  label: u
35551
35550
  }, {
@@ -35666,7 +35665,7 @@ function ot(e) {
35666
35665
  const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, bT = { class: "admin-infolist-color" }, wT = ["aria-label"], IT = {
35667
35666
  key: 1,
35668
35667
  class: "admin-infolist-color__value"
35669
- }, mI = /* @__PURE__ */ J({
35668
+ }, kI = /* @__PURE__ */ J({
35670
35669
  __name: "ColorEntry",
35671
35670
  props: {
35672
35671
  name: { default: "" },
@@ -35676,10 +35675,10 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35676
35675
  meta: { default: () => ({}) }
35677
35676
  },
35678
35677
  setup(e) {
35679
- const t = e, n = ot(t), l = f(() => Cw(n.value)), i = f(() => l.value ? kb(l.value, "rgb") : null), c = f(() => {
35678
+ const t = e, n = ot(t), l = f(() => _w(n.value)), i = f(() => l.value ? pb(l.value, "rgb") : null), c = f(() => {
35680
35679
  if (!l.value) return typeof n.value == "string" && n.value !== "" ? n.value : t.placeholder;
35681
35680
  const s = t.meta.format;
35682
- return s === "hex" || s === "rgb" || s === "hsl" ? kb(l.value, s) : String(n.value);
35681
+ return s === "hex" || s === "rgb" || s === "hsl" ? pb(l.value, s) : String(n.value);
35683
35682
  });
35684
35683
  return (s, u) => (r(), h("span", bT, [
35685
35684
  i.value ? (r(), h("span", {
@@ -35821,7 +35820,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35821
35820
  "aria-hidden": "true"
35822
35821
  }, null, 8, ["icon"])) : j("", !0),
35823
35822
  M("span", AT, v(s.value), 1),
35824
- u.value ? (r(), z(o(fb), {
35823
+ u.value ? (r(), z(o(vb), {
35825
35824
  key: 1,
35826
35825
  href: u.value,
35827
35826
  external: "",
@@ -35877,7 +35876,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35877
35876
  }), d = (y) => t.linkTo && y.id !== null && y.id !== "" ? `/r/${t.linkTo}/${encodeURIComponent(String(y.id))}` : null;
35878
35877
  return (y, p) => u.value.length === 0 ? (r(), h("span", $T, v(e.placeholder), 1)) : (r(), h("span", HT, [
35879
35878
  (r(!0), h(N, null, Y(u.value, (k, m) => (r(), h(N, { key: m }, [
35880
- d(k) ? (r(), z(o(fb), {
35879
+ d(k) ? (r(), z(o(vb), {
35881
35880
  key: 0,
35882
35881
  to: d(k) ?? void 0,
35883
35882
  class: "admin-infolist-relation__item"
@@ -35913,7 +35912,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35913
35912
  meta: i !== void 0 ? { format: i } : {}
35914
35913
  };
35915
35914
  });
35916
- return (i, c) => (r(), z(Pe(n.value), Mo(MI(l.value)), null, 16));
35915
+ return (i, c) => (r(), z(Pe(n.value), Mo(gI(l.value)), null, 16));
35917
35916
  }
35918
35917
  }), jT = {
35919
35918
  key: 0,
@@ -35951,7 +35950,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35951
35950
  const c = n.value;
35952
35951
  return hc(c) ? "" : typeof c == "string" ? c : JSON.stringify(c, null, 2);
35953
35952
  }), i = f(() => t.height === null || t.height === "" ? "320px" : typeof t.height == "number" ? `${t.height}px` : t.height);
35954
- return (c, s) => l.value === "" ? (r(), h("span", RT, v(e.placeholder), 1)) : (r(), z(o(wb), {
35953
+ return (c, s) => l.value === "" ? (r(), h("span", RT, v(e.placeholder), 1)) : (r(), z(o(bb), {
35955
35954
  key: 1,
35956
35955
  class: "admin-infolist-code",
35957
35956
  code: l.value,
@@ -35983,14 +35982,14 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
35983
35982
  }), i = f(() => {
35984
35983
  if (!t.icon) return;
35985
35984
  const c = t.icon.split("-").map((s) => s.charAt(0).toUpperCase() + s.slice(1)).join("");
35986
- return yw[c];
35985
+ return hw[c];
35987
35986
  });
35988
35987
  return (c, s) => l.value === null ? (r(), h("span", UT, v(e.placeholder), 1)) : (r(), h("span", {
35989
35988
  key: 1,
35990
35989
  class: "admin-infolist-rating",
35991
35990
  title: `${l.value} / ${e.count}`
35992
35991
  }, [
35993
- _(o(_I), {
35992
+ _(o(LI), {
35994
35993
  "model-value": l.value,
35995
35994
  max: e.count,
35996
35995
  "allow-half": e.half,
@@ -36012,7 +36011,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36012
36011
  setup(e) {
36013
36012
  const t = e, n = ot(t), l = f(() => {
36014
36013
  const i = n.value;
36015
- return hc(i) ? t.placeholder : (Array.isArray(i) ? i : [i]).map((s) => zx(t.options, s)).join(", ");
36014
+ return hc(i) ? t.placeholder : (Array.isArray(i) ? i : [i]).map((s) => Ax(t.options, s)).join(", ");
36016
36015
  });
36017
36016
  return (i, c) => (r(), h("span", NT, v(l.value), 1));
36018
36017
  }
@@ -36022,7 +36021,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36022
36021
  }, GT = {
36023
36022
  key: 1,
36024
36023
  class: "admin-infolist-text"
36025
- }, vI = /* @__PURE__ */ J({
36024
+ }, mI = /* @__PURE__ */ J({
36026
36025
  __name: "TreeSelectEntry",
36027
36026
  props: {
36028
36027
  name: { default: "" },
@@ -36036,7 +36035,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36036
36035
  const i = n.value;
36037
36036
  if (hc(i)) return [];
36038
36037
  const c = Io(t.tree);
36039
- return (Array.isArray(i) ? i : [i]).map((s) => (Ax(c, s) ?? [String(s)]).join(t.separator));
36038
+ return (Array.isArray(i) ? i : [i]).map((s) => (qx(c, s) ?? [String(s)]).join(t.separator));
36040
36039
  });
36041
36040
  return (i, c) => l.value.length === 0 ? (r(), h("span", ZT, v(e.placeholder), 1)) : (r(), h("span", GT, v(l.value.join(`
36042
36041
  `)), 1));
@@ -36060,7 +36059,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36060
36059
  });
36061
36060
  return (i, c) => (r(), h("span", KT, v(l.value), 1));
36062
36061
  }
36063
- }), JT = { class: "admin-infolist-text" }, fI = /* @__PURE__ */ J({
36062
+ }), JT = { class: "admin-infolist-text" }, vI = /* @__PURE__ */ J({
36064
36063
  __name: "DateRangeEntry",
36065
36064
  props: {
36066
36065
  name: { default: "" },
@@ -36069,14 +36068,14 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36069
36068
  },
36070
36069
  setup(e) {
36071
36070
  const t = e, n = ot(t), l = f(() => {
36072
- const { start: i, end: c } = qx(n.value);
36071
+ const { start: i, end: c } = Sx(n.value);
36073
36072
  if (i === null && c === null) return t.placeholder;
36074
- const s = (u) => u === null ? "…" : zb(u, "date");
36073
+ const s = (u) => u === null ? "…" : Ab(u, "date");
36075
36074
  return `${s(i)} — ${s(c)}`;
36076
36075
  });
36077
36076
  return (i, c) => (r(), h("span", JT, v(l.value), 1));
36078
36077
  }
36079
- }), YT = { class: "admin-infolist-text" }, gI = /* @__PURE__ */ J({
36078
+ }), YT = { class: "admin-infolist-text" }, fI = /* @__PURE__ */ J({
36080
36079
  __name: "MorphEntry",
36081
36080
  props: {
36082
36081
  name: { default: "" },
@@ -36092,7 +36091,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36092
36091
  if (typeof c.type != "string" || c.type === "") return t.placeholder;
36093
36092
  const s = t.morphTypes?.[c.type], u = s?.label ?? c.type;
36094
36093
  if (c.id === null || c.id === void 0 || c.id === "") return u;
36095
- const d = zx(s?.options ?? [], c.id);
36094
+ const d = Ax(s?.options ?? [], c.id);
36096
36095
  return d === String(c.id) ? `${u} #${d}` : `${u}: ${d}`;
36097
36096
  });
36098
36097
  return (i, c) => (r(), h("span", YT, v(l.value), 1));
@@ -36110,7 +36109,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36110
36109
  const c = t.value !== void 0 ? t.value : n?.[t.name];
36111
36110
  return c !== null && typeof c == "object" && !Array.isArray(c) ? c : {};
36112
36111
  };
36113
- Ab(
36112
+ qb(
36114
36113
  new Proxy({}, {
36115
36114
  get: (c, s) => typeof s == "string" ? l()[s] : void 0,
36116
36115
  has: (c, s) => typeof s == "string" && s in l()
@@ -36154,7 +36153,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36154
36153
  placeholder: { default: "—" }
36155
36154
  },
36156
36155
  setup(e) {
36157
- const t = e, n = ot(t), l = Oe(), i = f(() => Cx(n.value)), c = f(() => t.viewPermission ? l.hasPermission(t.viewPermission) : !0), s = V([]);
36156
+ const t = e, n = ot(t), l = Oe(), i = f(() => _x(n.value)), c = f(() => t.viewPermission ? l.hasPermission(t.viewPermission) : !0), s = V([]);
36158
36157
  ge(
36159
36158
  i,
36160
36159
  async (y) => {
@@ -36163,7 +36162,7 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36163
36162
  return;
36164
36163
  }
36165
36164
  try {
36166
- s.value = await Lw(t.resource, y);
36165
+ s.value = await xw(t.resource, y);
36167
36166
  } catch {
36168
36167
  s.value = [];
36169
36168
  }
@@ -36182,16 +36181,16 @@ const hc = (e) => e == null || e === "" || Array.isArray(e) && e.length === 0, b
36182
36181
  key: String(k.id),
36183
36182
  class: "admin-infolist-picker__item"
36184
36183
  }, [
36185
- d(k) ? (r(), z(o(fb), {
36184
+ d(k) ? (r(), z(o(vb), {
36186
36185
  key: 0,
36187
36186
  to: d(k) ?? void 0,
36188
36187
  class: "admin-infolist-picker__link"
36189
36188
  }, {
36190
36189
  default: L(() => [
36191
- _(yb, { item: k }, null, 8, ["item"])
36190
+ _(hb, { item: k }, null, 8, ["item"])
36192
36191
  ]),
36193
36192
  _: 2
36194
- }, 1032, ["to"])) : (r(), z(yb, {
36193
+ }, 1032, ["to"])) : (r(), z(hb, {
36195
36194
  key: 1,
36196
36195
  item: k
36197
36196
  }, null, 8, ["item"]))
@@ -36205,12 +36204,12 @@ function oU() {
36205
36204
  text: Se,
36206
36205
  badge: rT,
36207
36206
  icon: sT,
36208
- keyvalue: Yb,
36209
- key_value: Yb,
36210
- "key-value": Yb,
36207
+ keyvalue: Jb,
36208
+ key_value: Jb,
36209
+ "key-value": Jb,
36211
36210
  // Repeatable: a collection of objects with nested entries — a table, cards or inline.
36212
36211
  repeatable: MT,
36213
- color: mI,
36212
+ color: kI,
36214
36213
  image: ST,
36215
36214
  map: zT,
36216
36215
  relation: PT,
@@ -36239,11 +36238,11 @@ function oU() {
36239
36238
  combobox: Se,
36240
36239
  radio: WT,
36241
36240
  tags: Se,
36242
- morph_switcher: gI,
36243
- "morph-switcher": gI,
36241
+ morph_switcher: fI,
36242
+ "morph-switcher": fI,
36244
36243
  cascader: XT,
36245
- tree_select: vI,
36246
- "tree-select": vI,
36244
+ tree_select: mI,
36245
+ "tree-select": mI,
36247
36246
  group: QT,
36248
36247
  checkbox: Se,
36249
36248
  switch: Se,
@@ -36252,11 +36251,11 @@ function oU() {
36252
36251
  date: Se,
36253
36252
  datetime: Se,
36254
36253
  datepicker: Se,
36255
- date_range: fI,
36256
- "date-range": fI,
36254
+ date_range: vI,
36255
+ "date-range": vI,
36257
36256
  time: Se,
36258
36257
  "time-picker": Se,
36259
- "color-picker": mI,
36258
+ "color-picker": kI,
36260
36259
  resource_picker: nU
36261
36260
  });
36262
36261
  }
@@ -36295,14 +36294,14 @@ function cO(e, t = {}) {
36295
36294
  window.location.assign(`${l}/login?redirect=${encodeURIComponent(m)}`);
36296
36295
  }
36297
36296
  });
36298
- zI(i);
36299
- const c = Jx(VC), s = Yx();
36297
+ AI(i);
36298
+ const c = Xx(VC), s = Jx();
36300
36299
  c.use(s);
36301
36300
  const u = e.brand ?? {};
36302
- c.provide(UI, u), lU(u.favicon), Oe().hydrate(e), wo().hydrate(e), pw().hydrate(e), Ib().hydrate(e), rc().hydrate(e), lT(), $F(), oU();
36301
+ c.provide(TI, u), lU(u.favicon), Oe().hydrate(e), wo().hydrate(e), yw().hydrate(e), wb().hydrate(e), rc().hydrate(e), lT(), $F(), oU();
36303
36302
  const d = GF({
36304
36303
  base: l,
36305
- history: t.router?.history ?? wI(l),
36304
+ history: t.router?.history ?? bI(l),
36306
36305
  components: {
36307
36306
  login: n.login ?? iA,
36308
36307
  home: n.home ?? QS,
@@ -36317,10 +36316,10 @@ function cO(e, t = {}) {
36317
36316
  forgotPassword: n.forgotPassword ?? pA,
36318
36317
  resetPassword: n.resetPassword ?? xA,
36319
36318
  resourceIndex: n.resourceIndex ?? Yz,
36320
- resourceCreate: n.resourceCreate ?? Ew,
36321
- resourceEdit: n.resourceEdit ?? Ew,
36319
+ resourceCreate: n.resourceCreate ?? Ow,
36320
+ resourceEdit: n.resourceEdit ?? Ow,
36322
36321
  resourceView: n.resourceView ?? cH,
36323
- dashboard: n.dashboard ?? WI,
36322
+ dashboard: n.dashboard ?? NI,
36324
36323
  settings: n.settings ?? sq,
36325
36324
  screen: n.screen ?? Bq
36326
36325
  },
@@ -36329,7 +36328,7 @@ function cO(e, t = {}) {
36329
36328
  titleGuard: t.router?.titleGuard
36330
36329
  });
36331
36330
  c.use(d);
36332
- const y = kw();
36331
+ const y = pw();
36333
36332
  if (d.beforeEach((p, k, m) => {
36334
36333
  p.fullPath !== k.fullPath && y.start(), m();
36335
36334
  }), d.afterEach(() => {
@@ -36377,11 +36376,11 @@ function cO(e, t = {}) {
36377
36376
  return i.raw.interceptors.response.use(void 0, (p) => {
36378
36377
  if (p instanceof at) {
36379
36378
  if (p.errorKey === "demo_readonly")
36380
- se.warning(p.message), Pw();
36379
+ se.warning(p.message), Vw();
36381
36380
  else if (p.errorKey === "two_factor_setup_required") {
36382
36381
  const k = Oe();
36383
36382
  k.user && (k.user.twoFactorRequired = !0), d.currentRoute.value.name !== "admin.profile" && (se.warning(p.message), d.push({ name: "admin.profile", query: { section: "security" } }).catch(() => {
36384
- })), Pw();
36383
+ })), Vw();
36385
36384
  }
36386
36385
  }
36387
36386
  return Promise.reject(p);
@@ -36431,7 +36430,7 @@ async function dO(e = {}) {
36431
36430
  const n = e.xhrUrl ?? "/system/bootstrap";
36432
36431
  return await e.client.get(n);
36433
36432
  } catch (n) {
36434
- if (n instanceof xb)
36433
+ if (n instanceof Ib)
36435
36434
  return null;
36436
36435
  throw n;
36437
36436
  }
@@ -36486,8 +36485,7 @@ const uU = { class: "admin-page admin-import-wizard" }, hU = { class: "admin-pag
36486
36485
  }
36487
36486
  const p = V({});
36488
36487
  function k(B, $) {
36489
- const D = hb($);
36490
- p.value[B] = D === null || D === "" ? null : String(D);
36488
+ p.value[B] = $ === null || $ === "" ? null : String($);
36491
36489
  }
36492
36490
  function m() {
36493
36491
  return n.headers.map((B) => ({
@@ -36536,7 +36534,7 @@ const uU = { class: "admin-page admin-import-wizard" }, hU = { class: "admin-pag
36536
36534
  })
36537
36535
  ])
36538
36536
  ]),
36539
- _(o(qI), {
36537
+ _(o(SI), {
36540
36538
  steps: i,
36541
36539
  current: s.value
36542
36540
  }, null, 8, ["current"]),
@@ -36550,7 +36548,7 @@ const uU = { class: "admin-page admin-import-wizard" }, hU = { class: "admin-pag
36550
36548
  M("h3", null, v(o(g)("1. Загрузите файл")), 1),
36551
36549
  M("p", null, v(o(g)("CSV / TSV / XLSX, до 50 MB")), 1)
36552
36550
  ]),
36553
- _(o(FL), {
36551
+ _(o(PL), {
36554
36552
  "model-value": d.value,
36555
36553
  accept: ".csv,.tsv,.xlsx",
36556
36554
  "max-size": 50 * 1024 * 1024,
@@ -36628,7 +36626,7 @@ const uU = { class: "admin-page admin-import-wizard" }, hU = { class: "admin-pag
36628
36626
  M("h3", null, v(o(g)("4. Импорт")), 1)
36629
36627
  ]),
36630
36628
  e.progress ? (r(), h(N, { key: 1 }, [
36631
- e.progress.total > 0 ? (r(), z(o(II), {
36629
+ e.progress.total > 0 ? (r(), z(o(wI), {
36632
36630
  key: 0,
36633
36631
  "model-value": e.progress.created + e.progress.updated + e.progress.errors,
36634
36632
  max: e.progress.total
@@ -36808,8 +36806,8 @@ const uU = { class: "admin-page admin-import-wizard" }, hU = { class: "admin-pag
36808
36806
  });
36809
36807
  export {
36810
36808
  SR as AccordionLayout,
36811
- KI as AdminActionButton,
36812
- fw as AdminActionDialogs,
36809
+ GI as AdminActionButton,
36810
+ vw as AdminActionDialogs,
36813
36811
  ic as AdminActionMenuItems,
36814
36812
  VC as AdminApp,
36815
36813
  qC as AdminConfirmDialog,
@@ -36818,20 +36816,20 @@ export {
36818
36816
  d_ as AdminTopBar,
36819
36817
  at as ApiError,
36820
36818
  ZR as AuditTrailLayout,
36821
- UI as BRAND_KEY,
36819
+ TI as BRAND_KEY,
36822
36820
  rT as BadgeEntry,
36823
36821
  gP as BarChartWidget,
36824
- nI as CheckboxField,
36822
+ aI as CheckboxField,
36825
36823
  tT as CodeLayout,
36826
36824
  dR as ColumnsLayout,
36827
36825
  nj as ComboboxField,
36828
- WI as DashboardPage,
36829
- Jb as DateField,
36830
- Ix as DonutChartWidget,
36826
+ NI as DashboardPage,
36827
+ Xb as DateField,
36828
+ wx as DonutChartWidget,
36831
36829
  OR as DrawerLayout,
36832
36830
  hO as FieldGalleryPage,
36833
36831
  lc as FieldRenderer,
36834
- a_ as ForbiddenError,
36832
+ t_ as ForbiddenError,
36835
36833
  aq as ForbiddenPage,
36836
36834
  EP as GaugeWidget,
36837
36835
  D_ as GlobalSearch,
@@ -36841,54 +36839,54 @@ export {
36841
36839
  uO as ImportWizardPage,
36842
36840
  WR as InfolistLayout,
36843
36841
  rb as InfolistRenderer,
36844
- Yb as KeyValueEntry,
36842
+ Jb as KeyValueEntry,
36845
36843
  rt as LayoutRenderer,
36846
36844
  oT as ListenerLayout,
36847
- VI as LocaleSwitcher,
36845
+ HI as LocaleSwitcher,
36848
36846
  Zq as LoginForm,
36849
36847
  iA as LoginPage,
36850
36848
  YR as MarkdownLayout,
36851
36849
  nF as MarkdownWidget,
36852
36850
  UR as ModalLayout,
36853
- xb as NetworkError,
36854
- n_ as NotFoundError,
36851
+ Ib as NetworkError,
36852
+ a_ as NotFoundError,
36855
36853
  iq as NotFoundPage,
36856
- GL as NotificationBell,
36854
+ ZL as NotificationBell,
36857
36855
  CC as NotificationsDrawer,
36858
36856
  zV as NotificationsPage,
36859
36857
  aj as NumberField,
36860
36858
  pV as ProfilePage,
36861
- Zb as RecentTableWidget,
36862
- Ew as ResourceFormPage,
36859
+ Wb as RecentTableWidget,
36860
+ Ow as ResourceFormPage,
36863
36861
  Yz as ResourceIndexPage,
36864
36862
  cH as ResourceViewPage,
36865
36863
  lb as RowsLayout,
36866
36864
  Bq as ScreenPage,
36867
- lw as SectionLayout,
36868
- Xb as SelectField,
36865
+ iw as SectionLayout,
36866
+ Kb as SelectField,
36869
36867
  sq as SettingsPage,
36870
36868
  ej as SlugField,
36871
- Zw as StatWidget,
36872
- aI as SwitchField,
36869
+ Ww as StatWidget,
36870
+ tI as SwitchField,
36873
36871
  pR as TabsLayout,
36874
36872
  tj as TextAreaField,
36875
36873
  Se as TextEntry,
36876
- ow as TextField,
36877
- HI as ThemeToggle,
36874
+ nw as TextField,
36875
+ $I as ThemeToggle,
36878
36876
  Xq as TwoFactorForm,
36879
- PI as UnauthenticatedError,
36877
+ VI as UnauthenticatedError,
36880
36878
  u$ as UnknownEntry,
36881
- JI as UnknownField,
36879
+ XI as UnknownField,
36882
36880
  rO as UnknownScreenPage,
36883
- EI as UnknownWidget,
36884
- i_ as UserMenu,
36881
+ OI as UnknownWidget,
36882
+ o_ as UserMenu,
36885
36883
  Jt as ValidationError,
36886
36884
  ER as ViewLayout,
36887
- NI as WidgetRenderer,
36885
+ EI as WidgetRenderer,
36888
36886
  DR as WizardLayout,
36889
36887
  NR as WrapperLayout,
36890
36888
  OF as buildRoutesFromManifest,
36891
- OL as clearAdminClient,
36889
+ UL as clearAdminClient,
36892
36890
  iO as clearInfolistRegistry,
36893
36891
  QU as clearRegistry,
36894
36892
  KU as clearWidgetRegistry,
@@ -36900,11 +36898,11 @@ export {
36900
36898
  Cq as createScreenContext,
36901
36899
  NF as createTitleGuard,
36902
36900
  we as getAdminClient,
36903
- XI as getField,
36901
+ KI as getField,
36904
36902
  cb as getInfolistEntry,
36905
- Qb as getLayout,
36903
+ Yb as getLayout,
36906
36904
  FC as getWidget,
36907
- $I as hasAdminClient,
36905
+ zI as hasAdminClient,
36908
36906
  gq as hasField,
36909
36907
  nO as hasInfolistEntry,
36910
36908
  bq as hasLayout,
@@ -36916,11 +36914,11 @@ export {
36916
36914
  YU as listLayouts,
36917
36915
  BC as listWidgets,
36918
36916
  dO as loadBootstrap,
36919
- ZI as normalizeAction,
36920
- qb as normalizeActions,
36917
+ WI as normalizeAction,
36918
+ Sb as normalizeActions,
36921
36919
  dc as provideFormState,
36922
- tx as provideListenerEndpoint,
36923
- Ab as provideRecord,
36920
+ ex as provideListenerEndpoint,
36921
+ qb as provideRecord,
36924
36922
  Sq as provideScreenContext,
36925
36923
  sO as readCsrfFromMeta,
36926
36924
  sU as readInlineBootstrap,
@@ -36934,16 +36932,16 @@ export {
36934
36932
  Mq as registerLayout,
36935
36933
  PC as registerWidget,
36936
36934
  XU as registerWidgets,
36937
- zI as setAdminClient,
36938
- tI as slugify,
36935
+ AI as setAdminClient,
36936
+ eI as slugify,
36939
36937
  fe as tRaw,
36940
- Hw as toApiError,
36938
+ $w as toApiError,
36941
36939
  g as trSafe,
36942
36940
  li as tryUseFormState,
36943
36941
  ht as tryUseRecord,
36944
- vw as useActionRunner,
36942
+ mw as useActionRunner,
36945
36943
  Oe as useAuthStore,
36946
- Cb as useBrand,
36944
+ _b as useBrand,
36947
36945
  GU as useConfirm,
36948
36946
  Le as useFormState,
36949
36947
  rc as useI18nStore,
@@ -36951,11 +36949,11 @@ export {
36951
36949
  wo as useLocaleStore,
36952
36950
  Ee as useManifestStore,
36953
36951
  sc as useMenuStore,
36954
- Ib as useNotificationsStore,
36952
+ wb as useNotificationsStore,
36955
36953
  tO as useRecord,
36956
- _b as useResourceFormStore,
36957
- ax as useResourceIndexStore,
36958
- QI as useScreenContext,
36959
- pw as useThemeStore
36954
+ Lb as useResourceFormStore,
36955
+ tx as useResourceIndexStore,
36956
+ YI as useScreenContext,
36957
+ yw as useThemeStore
36960
36958
  };
36961
36959
  //# sourceMappingURL=index.mjs.map