@dskripchenko/laravel-admin 1.2.0 → 1.2.1
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/components/resource/ResourceIndexPage.vue.d.ts +5 -5
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +3128 -3044
- package/dist/index.mjs.map +1 -1
- package/dist/stores/i18n.d.ts +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),le=require("pinia"),Z=require("vue-router"),c=require("@dskripchenko/ui"),la=require("axios"),ne=require("./formState-GlJBphEn.cjs");const ra=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var Ie={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const ia=({size:t,strokeWidth:n=2,absoluteStrokeWidth:a,color:r,iconNode:l,name:o,class:i,...s},{slots:u})=>e.h("svg",{...Ie,width:t||Ie.width,height:t||Ie.height,stroke:r||Ie.stroke,"stroke-width":a?Number(n)*24/Number(t):n,class:["lucide",`lucide-${ra(o??"icon")}`],...s},[...l.map(f=>e.h(...f)),...u.default?[u.default()]:[]]);const $=(t,n)=>(a,{slots:r})=>e.h(ia,{...a,iconNode:n,name:t},r);const sa=$("ActivityIcon",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);const ca=$("ArchiveIcon",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);const da=$("ArrowLeftIcon",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const Ge=$("BellIcon",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);const nt=$("BookmarkIcon",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]);const At=$("BoxIcon",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);const ua=$("BriefcaseIcon",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);const Lt=$("CalendarIcon",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const We=$("ChartColumnIcon",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);const ma=$("ChartLineIcon",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);const fa=$("ChartPieIcon",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]);const ze=$("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const zt=$("ChevronDownIcon",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const pa=$("CircleAlertIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const Re=$("CircleCheckBigIcon",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const va=$("CircleHelpIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const ha=$("CircleUserIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);const ya=$("CircleXIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const ga=$("ClockIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const ka=$("CodeIcon",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const _a=$("CogIcon",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);const ba=$("Columns2Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]]);const wa=$("CommandIcon",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);const Ba=$("DatabaseIcon",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);const Rt=$("DownloadIcon",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);const Pt=$("EllipsisIcon",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);const Va=$("EyeIcon",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Na=$("FileClockIcon",[["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"37hlfg"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}],["path",{d:"M9.5 17.5 8 16.25V14",key:"1o80t2"}]]);const Et=$("FileTextIcon",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const xa=$("FilesIcon",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]);const Ca=$("FlagIcon",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);const Ea=$("FolderOpenIcon",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);const $a=$("FolderIcon",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);const Sa=$("GaugeIcon",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);const qt=$("GlobeIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);const Ua=$("Grid3x3Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);const Ma=$("GripVerticalIcon",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);const Ta=$("HardDriveIcon",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);const Ia=$("HashIcon",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const Da=$("HeartIcon",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);const Fa=$("HistoryIcon",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);const Aa=$("HouseIcon",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);const $t=$("ImageIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const La=$("ImagesIcon",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]);const za=$("InboxIcon",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);const Ra=$("InfoIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);const Pa=$("KeyIcon",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);const qa=$("LayersIcon",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);const ja=$("LayoutDashboardIcon",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);const Oa=$("LayoutGridIcon",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const Wa=$("LifeBuoyIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);const Ha=$("LinkIcon",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const Ka=$("ListChecksIcon",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const Ga=$("ListIcon",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const Xa=$("LockIcon",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);const Za=$("LogOutIcon",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);const jt=$("MailIcon",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);const Ya=$("MapPinIcon",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);const Ja=$("MapIcon",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);const Ot=$("MessageSquareIcon",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);const Qa=$("MonitorIcon",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const eo=$("MoonIcon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);const to=$("PackageIcon",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);const no=$("PanelLeftIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);const ao=$("PanelsTopLeftIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);const oo=$("PaperclipIcon",[["path",{d:"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48",key:"1u3ebp"}]]);const at=$("PencilIcon",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);const Pe=$("PlusIcon",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const lo=$("RefreshCwIcon",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const ot=$("RotateCcwIcon",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);const lt=$("SearchIcon",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);const ro=$("SendIcon",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);const io=$("ServerIcon",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);const Wt=$("SettingsIcon",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const St=$("ShieldIcon",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);const so=$("ShoppingBagIcon",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);const co=$("ShoppingCartIcon",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]);const uo=$("SlidersVerticalIcon",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);const mo=$("SquarePenIcon",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);const fo=$("StarIcon",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const po=$("StoreIcon",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);const vo=$("SunIcon",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const Ht=$("TagIcon",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);const ho=$("TagsIcon",[["path",{d:"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19",key:"1cbfv1"}],["path",{d:"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z",key:"135mg7"}],["circle",{cx:"6.5",cy:"9.5",r:".5",fill:"currentColor",key:"5pm5xn"}]]);const yo=$("TerminalIcon",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);const he=$("Trash2Icon",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);const go=$("TrendingUpIcon",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);const ko=$("TriangleAlertIcon",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Kt=$("UploadIcon",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);const _o=$("UserPlusIcon",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);const bo=$("UserIcon",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);const wo=$("UsersIcon",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);const ye=$("XIcon",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);const Bo=$("ZapIcon",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);let xe=null;function rt(t){xe=t}function G(){if(xe===null)throw new Error("[admin] AdminClient is not registered. Call setAdminClient(...) before using stores.");return xe}function Gt(){xe=null}function Xt(){return xe!==null}const Q=Object.freeze(Object.defineProperty({__proto__:null,clearAdminClient:Gt,getAdminClient:G,hasAdminClient:Xt,setAdminClient:rt},Symbol.toStringTag,{value:"Module"})),qe=le.defineStore("admin-theme",()=>{const t=e.ref("light"),n=e.ref(["light","dark"]),a=e.computed(()=>t.value==="dark");function r(s){t.value=s.theme,n.value=s.availableThemes,i(s.theme)}function l(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);t.value=s,i(s)}async function o(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);const u=t.value;l(s);try{await G().post("/system/setTheme",{theme:s})}catch(f){throw l(u),f}}function i(s){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("data-theme",s)}return{current:t,available:n,isDark:a,hydrate:r,applyLocal:l,setTheme:o}}),Vo=["aria-label","aria-pressed"],it=e.defineComponent({__name:"ThemeToggle",setup(t){const n=qe(),a=e.computed(()=>n.current==="dark"),r=e.computed(()=>a.value?vo:eo),l=e.computed(()=>a.value?"sun":"moon"),o=e.computed(()=>a.value?"Переключить на светлую тему":"Переключить на тёмную тему");async function i(){const s=a.value?"light":"dark";await n.setTheme(s)}return(s,u)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"admin-topbar__icon-btn","aria-label":o.value,"aria-pressed":a.value,onClick:i},[e.createVNode(e.unref(c.UidIcon),{icon:r.value,size:18,"data-icon":l.value},null,8,["icon","data-icon"])],8,Vo))}}),Ce=le.defineStore("admin-locale",()=>{const t=e.ref("ru"),n=e.ref(["ru","en"]);function a(i){t.value=i.locale,n.value=i.availableLocales,o(i.locale)}function r(i){if(!n.value.includes(i))throw new Error(`Locale "${i}" is not available`);t.value=i,o(i)}async function l(i){if(!n.value.includes(i))throw new Error(`Locale "${i}" is not available`);const s=t.value;r(i);try{await G().post("/system/setLocale",{locale:i})}catch(u){throw r(s),u}}function o(i){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("lang",i);try{G().setLocale(i)}catch{}}return{current:t,available:n,hydrate:a,applyLocal:r,setLocale:l}}),No={type:"button",class:"admin-topbar__icon-btn",style:{width:"auto",padding:"0 8px",gap:"4px","font-size":"12px"},"aria-label":"Сменить локаль"},st=e.defineComponent({__name:"LocaleSwitcher",setup(t){const n=Ce();async function a(r){r!==n.current&&await n.setLocale(r)}return(r,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",No,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(qt),size:14,"data-icon":"globe"},null,8,["icon"]),e.createElementVNode("span",null,e.toDisplayString((e.unref(n).current??"").toUpperCase()),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).available,o=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:o,onClick:i=>a(o)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.toUpperCase()),1)]),_:2},1032,["onClick"]))),128))]),_:1}))}}),Ee=le.defineStore("admin-notifications",()=>{const t=e.ref([]),n=e.ref(0),a=e.ref(!1),r=e.ref("all"),l=e.ref(null),o=e.ref(!1),i=e.computed(()=>n.value>0);function s(){o.value=!0}function u(){o.value=!1}function f(){o.value=!o.value}function p(m){n.value=m.unread_notifications_count}async function g(m="all",w=1){a.value=!0;try{const x=await G().get(`/notifications/list?type=${m}&page=${w}`);t.value=x.data,n.value=x.meta.unread_count,l.value={page:x.meta.page,per_page:x.meta.per_page,total:x.meta.total,last_page:x.meta.last_page},r.value=m}finally{a.value=!1}}async function d(){const w=await G().get("/notifications/unread");n.value=w.count,r.value==="unread"&&(t.value=w.data)}async function N(m){await G().post("/notifications/markAsRead",{id:m});const B=t.value.find(x=>x.id===m);B&&B.read_at===null&&(B.read_at=new Date().toISOString(),n.value=Math.max(0,n.value-1))}async function h(){await G().post("/notifications/markAllAsRead");const w=new Date().toISOString();for(const B of t.value)B.read_at===null&&(B.read_at=w);n.value=0}async function k(m){await G().post("/notifications/destroy",{id:m});const B=t.value.findIndex(x=>x.id===m);if(B!==-1){const x=t.value[B].read_at===null;t.value.splice(B,1),x&&(n.value=Math.max(0,n.value-1))}}return{items:t,unreadCount:n,loading:a,meta:l,lastFilter:r,isOpen:o,hasUnread:i,hydrate:p,load:g,loadUnread:d,markAsRead:N,markAllAsRead:h,destroy:k,openDrawer:s,closeDrawer:u,toggleDrawer:f}}),xo=["aria-expanded"],Co=["title"],Zt=e.defineComponent({__name:"NotificationBell",setup(t){const n=Ee(),a=e.computed(()=>{const l=n.unreadCount;return l<=0?null:l>99?"99+":String(l)});function r(){n.toggleDrawer()}return(l,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"admin-topbar__icon-btn","aria-label":"Уведомления","aria-haspopup":"dialog","aria-expanded":e.unref(n).isOpen,onClick:r},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ge),size:18,"data-icon":"bell"},null,8,["icon"]),a.value!==null?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-topbar__bell-badge",title:`Непрочитанных: ${e.unref(n).unreadCount}`},e.toDisplayString(a.value),9,Co)):e.createCommentVNode("",!0)],8,xo))}});class se extends Error{status;errorKey;payload;constructor(n,a){super(a.message??`API error ${n}`),this.name="ApiError",this.status=n,this.errorKey=a.errorKey??"unknown",this.payload=a}}class ct extends se{constructor(n){super(401,n),this.name="UnauthenticatedError"}}class Yt extends se{constructor(n){super(403,n),this.name="ForbiddenError"}}class Jt extends se{constructor(n){super(404,n),this.name="NotFoundError"}}class $e extends se{fields;constructor(n){super(422,n),this.name="ValidationError",this.fields=n.messages??{}}firstFieldMessage(){for(const n of Object.values(this.fields))if(n.length>0)return n[0];return null}}class Se extends Error{constructor(n="Network error"){super(n),this.name="NetworkError"}}function Xe(t,n){switch(t){case 401:return new ct(n);case 403:return new Yt(n);case 404:return new Jt(n);case 422:return new $e(n);default:return new se(t,n)}}const oe=le.defineStore("admin-auth",()=>{const t=e.ref(null),n=e.ref([]),a=e.ref(null),r=e.computed(()=>t.value!==null),l=e.computed(()=>a.value!==null);function o(h){t.value=h.user,n.value=h.permissions}function i(h){return n.value.includes("*")||n.value.includes(h)?!0:n.value.some(k=>{if(!k.endsWith(".*"))return!1;const m=k.slice(0,-1);return h.startsWith(m)})}function s(h){return h.some(i)}function u(h){return h.every(i)}async function f(h){const k=G();try{const m=await k.post("/auth/login",h);return m?.user&&(t.value=m.user),Array.isArray(m?.permissions)&&(n.value=m.permissions),a.value=null,"authenticated"}catch(m){if(m instanceof se&&m.errorKey==="two_factor_required"){const w=m.payload.challenge_token;return a.value={challengeToken:typeof w=="string"?w:"",remember:h.remember??!1},"two_factor_required"}throw m}}async function p(h){if(a.value===null)throw new Error("No pending 2FA challenge");const m=await G().post("/auth/twoFactorChallenge",{challenge_token:a.value.challengeToken,code:h});t.value=m.user,a.value=null}async function g(h){if(a.value===null)throw new Error("No pending 2FA challenge");const m=await G().post("/auth/twoFactorRecovery",{challenge_token:a.value.challengeToken,recovery_code:h});return t.value=m.user,a.value=null,{remaining:m.recovery_codes_remaining}}function d(){a.value=null}async function N(){const h=G();try{await h.post("/auth/logout")}finally{t.value=null,n.value=[],a.value=null}}return{user:t,permissions:n,pendingChallenge:a,isAuthenticated:r,isChallengePending:l,hydrate:o,hasPermission:i,hasAnyPermission:s,hasAllPermissions:u,login:f,twoFactorChallenge:p,twoFactorRecovery:g,cancelChallenge:d,logout:N}}),Eo={type:"button",class:"admin-topbar__icon-btn admin-user-menu__trigger","aria-label":"Меню пользователя","aria-haspopup":"menu",style:{width:"auto",padding:"0 4px",gap:"8px"}},Qt=e.defineComponent({__name:"UserMenu",setup(t){const n=oe(),a=Z.useRouter();async function r(){try{await n.logout()}finally{await a.push({name:"admin.login"})}}function l(){a.push({name:"admin.profile"})}return(o,i)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",Eo,[e.createVNode(e.unref(c.UidAvatar),{src:e.unref(n).user?.avatar??void 0,name:e.unref(n).user?.name??"?",alt:e.unref(n).user?.name??"User",size:"sm"},null,8,["src","name","alt"])])]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:l},{default:e.withCtx(()=>[...i[0]||(i[0]=[e.createTextVNode("Профиль",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuSeparator)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:r},{default:e.withCtx(()=>[...i[1]||(i[1]=[e.createTextVNode("Выйти",-1)])]),_:1})]),_:1}))}}),$o={class:"admin-topbar"},So={class:"admin-topbar__breadcrumbs"},Uo={key:0,class:"sep"},Mo={class:"admin-topbar__search",role:"button",tabindex:"0"},en=e.defineComponent({__name:"AdminTopBar",props:{breadcrumbs:{default:()=>[]},showCollapseToggle:{type:Boolean,default:!0}},emits:["toggle-sidebar"],setup(t,{emit:n}){const a=t,r=n,l=e.computed(()=>a.breadcrumbs.length-1);return(o,i)=>(e.openBlock(),e.createElementBlock("header",$o,[t.showCollapseToggle?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-topbar__icon-btn","aria-label":"Свернуть меню",onClick:i[0]||(i[0]=s=>r("toggle-sidebar"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(no),size:18,"data-icon":"panel-left"},null,8,["icon"])])):e.createCommentVNode("",!0),e.createElementVNode("div",So,[e.renderSlot(o.$slots,"breadcrumbs",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>0?(e.openBlock(),e.createElementBlock("span",Uo,"›")):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.to?"a":"span"),{href:typeof s.to=="string"?s.to:void 0,class:e.normalizeClass(u===l.value?"cur":"")},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["href","class"]))],64))),128))])]),i[3]||(i[3]=e.createElementVNode("div",{class:"admin-topbar__spacer"},null,-1)),e.renderSlot(o.$slots,"search",{},()=>[e.createElementVNode("div",Mo,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(lt),size:14,"data-icon":"search"},null,8,["icon"]),i[1]||(i[1]=e.createElementVNode("span",null,"Поиск везде…",-1)),i[2]||(i[2]=e.createElementVNode("kbd",null,"⌘K",-1))])]),e.renderSlot(o.$slots,"actions"),e.createVNode(Zt),e.createVNode(it),e.createVNode(st),e.createVNode(Qt)]))}}),dt=le.defineStore("admin-menu",()=>{const t=e.ref([]),n=e.ref(!1),a=e.ref(null),r=e.ref(!1),l=e.computed(()=>{const f=oe(),p=g=>{if(Array.isArray(g.permissions)&&g.permissions.length>0&&!f.hasAnyPermission(g.permissions))return null;const d=(g.children??[]).map(p).filter(N=>N!==null);return{...g,children:d}};return t.value.map(p).filter(g=>g!==null)}),o=e.computed(()=>{const f=new Map;for(const g of l.value){const d=g.group??null;f.has(d)||f.set(d,[]),f.get(d).push(g)}const p=[];for(const[g,d]of f)d.sort((N,h)=>{const k=(N.order??0)-(h.order??0);return k!==0?k:N.label.localeCompare(h.label)}),p.push({group:g,items:d});return p});async function i(f=!1){if(r.value&&!f)return t.value;n.value=!0,a.value=null;try{const g=await G().get("/system/menu");return t.value=Array.isArray(g.items)?g.items:[],r.value=!0,t.value}catch(p){throw a.value=p instanceof Error?p:new Error(String(p)),p}finally{n.value=!1}}function s(f){t.value=f,r.value=!0,a.value=null}function u(){t.value=[],r.value=!1,a.value=null,n.value=!1}return{items:t,loading:n,error:a,isLoaded:r,visibleItems:l,groupedItems:o,load:i,setItems:s,reset:u}}),To=["aria-label"],Io="#2dd4bf",Do="#18181b",je=e.defineComponent({__name:"BrandLogo",props:{size:{default:28},animated:{type:Boolean,default:!0},variant:{default:"color"},title:{default:"LAdmin"}},setup(t){const n=t,a=e.computed(()=>Math.round(n.size*.25)),r=e.computed(()=>Math.round(n.size*.42)),l=e.computed(()=>Math.round(n.size*.18)),o=e.computed(()=>Math.max(2,Math.round(n.size*.18))),i=e.computed(()=>Math.round(n.size*.3)),s=e.computed(()=>Math.max(1,Math.round(n.size*.04))),u=e.computed(()=>n.variant==="mono"?"currentColor":Do),f=e.computed(()=>n.variant==="mono"?"var(--ladmin-logo-fg, #fff)":Io),p=e.computed(()=>({width:`${n.size}px`,height:`${n.size}px`,padding:`0 ${l.value}px`,borderRadius:`${a.value}px`,background:u.value,color:f.value,fontSize:`${r.value}px`})),g=e.computed(()=>({width:`${o.value}px`,height:`${i.value}px`,marginLeft:`${s.value}px`,background:f.value}));return(d,N)=>(e.openBlock(),e.createElementBlock("span",{role:"img","aria-label":t.title,class:e.normalizeClass(["ladmin-logo",{"ladmin-logo--animated":t.animated}]),style:e.normalizeStyle(p.value)},[N[0]||(N[0]=e.createElementVNode("span",{"aria-hidden":"true"},">_",-1)),e.createElementVNode("span",{"aria-hidden":"true",class:"ladmin-logo__cursor",style:e.normalizeStyle(g.value)},null,4)],14,To))}}),Fo={activity:sa,"alert-circle":pa,archive:ca,"bar-chart":We,"bar-chart-3":We,bell:Ge,bookmark:nt,box:At,briefcase:ua,calendar:Lt,"check-circle":Re,clock:ga,code:ka,cog:_a,command:wa,database:Ba,download:Rt,file:Et,"file-text":Et,"file-clock":Na,files:xa,flag:Ca,folder:$a,"folder-open":Ea,gauge:Sa,globe:qt,grid:Ua,"hard-drive":Ta,hash:Ia,"health-check":Re,heart:Da,"help-circle":va,history:Fa,home:Aa,image:$t,images:La,inbox:za,info:Ra,key:Pa,layers:qa,layout:ao,"layout-dashboard":ja,"life-buoy":Wa,"line-chart":ma,link:Ha,list:Ga,"list-checks":Ka,lock:Xa,"log-out":Za,mail:jt,map:Ja,"map-pin":Ya,media:$t,"message-square":Ot,monitor:Qa,notifications:Ge,package:to,paperclip:oo,"pie-chart":fa,"refresh-cw":lo,reports:We,roles:St,search:lt,send:ro,server:io,settings:Wt,shield:St,"shopping-bag":so,"shopping-cart":co,sliders:uo,star:fo,store:po,tag:Ht,tags:ho,terminal:yo,"trending-up":go,upload:Kt,user:bo,"user-circle":ha,users:wo,"x-circle":ya,zap:Bo};function tn(t){return t?Fo[t]??null:null}const Ao={key:0,class:"admin-sidebar-brand__mark"},Lo={key:2,class:"admin-sidebar-brand__name"},zo={key:0,class:"admin-sidebar-tenant"},Ro={class:"admin-sidebar-foot"},Po=["title"],qo=["href"],nn=e.defineComponent({__name:"AdminSidebar",props:{collapsed:{type:Boolean,default:!1},brandName:{default:"Laravel Admin"},brandMark:{default:null},homeRouteName:{default:"admin.home"},tenant:{default:null},version:{default:null},docsUrl:{default:null}},setup(t){const n=dt(),a=Z.useRoute(),r=e.computed(()=>n.groupedItems);function l(s){return!!(s.routeName&&a.name===s.routeName||s.url&&a.path===s.url)}function o(s){const u=tn(s)??At;return()=>e.h(c.UidIcon,{icon:u,size:16})}function i(s){if(s.url)return s.url;if(s.routeName)return{name:s.routeName}}return(s,u)=>{const f=e.resolveComponent("router-link");return e.openBlock(),e.createBlock(e.unref(c.UidSidebar),{collapsed:t.collapsed},{header:e.withCtx(()=>[e.createVNode(f,{to:{name:t.homeRouteName},class:"admin-sidebar-brand",title:t.collapsed?t.brandName:void 0,"aria-label":t.brandName},{default:e.withCtx(()=>[t.brandMark?(e.openBlock(),e.createElementBlock("div",Ao,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(je,{key:1,size:28})),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Lo,e.toDisplayString(t.brandName),1))]),_:1},8,["to","title","aria-label"]),t.tenant&&!t.collapsed?(e.openBlock(),e.createElementBlock("div",zo,[e.createElementVNode("span",null,e.toDisplayString(t.tenant.label),1),e.createElementVNode("b",null,e.toDisplayString(t.tenant.name),1)])):e.createCommentVNode("",!0)]),nav:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(p,g)=>(e.openBlock(),e.createBlock(e.unref(c.UidSidebarGroup),{key:`grp-${g}`,title:p.group??void 0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.items,d=>(e.openBlock(),e.createBlock(e.unref(c.UidSidebarItem),{key:d.key,to:i(d),active:l(d),badge:d.badge??void 0,title:t.collapsed?d.label:void 0},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(d.icon))))]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(d.label),1)]),_:2},1032,["to","active","badge","title"]))),128))]),_:2},1032,["title"]))),128))]),footer:e.withCtx(()=>[e.createElementVNode("div",Ro,[e.createElementVNode("span",{class:"admin-sidebar-foot__text",title:t.version??"Laravel Admin"},[t.collapsed?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("·")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.version??"Laravel Admin"),1)],64))],8,Po),t.docsUrl&&!t.collapsed?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.docsUrl,class:"admin-sidebar-foot__text admin-sidebar-foot__link"}," Docs ",8,qo)):e.createCommentVNode("",!0)])]),_:1},8,["collapsed"])}}}),jo={class:"admin-shell-root"},Oo={key:0,class:"admin-impersonation-banner",role:"status"},He="data-admin-impersonating",an=e.defineComponent({__name:"AdminShell",props:{collapsed:{type:Boolean,default:void 0},impersonation:{default:null}},emits:["update:collapsed","exit-impersonation"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(!1),o=e.computed(()=>a.collapsed!==void 0),i=e.computed(()=>o.value?a.collapsed:l.value);function s(f){o.value||(l.value=f),r("update:collapsed",f)}function u(){r("exit-impersonation")}return e.watch(()=>a.impersonation,f=>{typeof document>"u"||(f!==null?document.documentElement.setAttribute(He,"true"):document.documentElement.removeAttribute(He))},{immediate:!0}),e.onBeforeUnmount(()=>{typeof document<"u"&&document.documentElement.removeAttribute(He)}),(f,p)=>(e.openBlock(),e.createElementBlock("div",jo,[t.impersonation?(e.openBlock(),e.createElementBlock("div",Oo,[e.createElementVNode("span",null,[p[1]||(p[1]=e.createTextVNode(" Вы вошли как ",-1)),e.createElementVNode("b",null,e.toDisplayString(t.impersonation.asName),1),p[2]||(p[2]=e.createTextVNode(" · режим имперсонации ",-1))]),e.createElementVNode("button",{type:"button",class:"admin-impersonation-banner__exit",onClick:u}," Выйти из режима ")])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidSidebarLayout),{"model-value":i.value,class:"admin-shell","onUpdate:modelValue":s},{sidebar:e.withCtx(()=>[e.renderSlot(f.$slots,"sidebar",{},()=>[e.createVNode(nn,{collapsed:i.value},null,8,["collapsed"])])]),header:e.withCtx(()=>[e.renderSlot(f.$slots,"topbar",{},()=>[e.createVNode(en,{onToggleSidebar:p[0]||(p[0]=g=>s(!i.value))})])]),footer:e.withCtx(()=>[e.renderSlot(f.$slots,"footer",{},()=>[p[3]||(p[3]=e.createElementVNode("div",{class:"admin-main-footer"},null,-1))])]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},8,["model-value"])]))}}),ut=le.defineStore("admin-navigation",()=>{const t=e.ref(0),n=e.computed(()=>t.value>0);function a(){t.value+=1}function r(){t.value>0&&(t.value-=1)}function l(){t.value=0}return{pending:t,isLoading:n,start:a,end:r,reset:l}}),Wo=e.defineComponent({__name:"AdminLoadingBar",setup(t){const n=ut(),a=e.ref(!1);let r=null;e.watch(()=>n.isLoading,o=>{o?(r!==null&&(clearTimeout(r),r=null),a.value=!0):r=setTimeout(()=>{a.value=!1,r=null},120)},{immediate:!0});const l=e.computed(()=>({"admin-loading-bar":!0,"admin-loading-bar--visible":a.value}));return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),role:"progressbar","aria-busy":"true"},null,2))}}),Ho={key:0,class:"admin-notif-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"admin-notif-drawer-title"},Ko={class:"admin-notif-drawer__panel"},Go={class:"admin-notif-drawer__hd"},Xo={id:"admin-notif-drawer-title",class:"admin-notif-drawer__title"},Zo={key:0,class:"admin-notif-drawer__unread-badge"},Yo={class:"admin-notif-drawer__hd-actions"},Jo={class:"admin-notif-drawer__tabs",role:"tablist"},Qo=["aria-selected","onClick"],el={class:"admin-notif-drawer__tab-count"},tl={class:"admin-notif-drawer__body"},nl={key:0,class:"admin-notif-drawer__empty"},al={key:1,class:"admin-notif-drawer__empty"},ol={key:2,class:"admin-notif-drawer__list"},ll=["onClick"],rl=["data-variant"],il={class:"admin-notif-drawer__content"},sl={class:"admin-notif-drawer__row"},cl={class:"admin-notif-drawer__item-title"},dl={class:"admin-notif-drawer__item-time"},ul={key:0,class:"admin-notif-drawer__item-description"},ml={key:0,class:"admin-notif-drawer__unread-dot","aria-hidden":"true"},fl=["onClick"],pl=e.defineComponent({__name:"NotificationsDrawer",setup(t){const n=Ee(),a=e.computed(()=>n.isOpen),r=[{key:"all",label:"Все"},{key:"unread",label:"Непрочитанные"},{key:"read",label:"Прочитанные"}];async function l(k){n.lastFilter!==k&&await n.load(k,1).catch(()=>{})}async function o(){await n.markAllAsRead().catch(()=>{})}async function i(k){k.read_at===null&&await n.markAsRead(k.id).catch(()=>{});const m=k.data.url;typeof m=="string"&&m.length>0&&(m.startsWith("http://")||m.startsWith("https://")?window.open(m,"_blank","noopener"):(n.closeDrawer(),window.location.href=m))}async function s(k,m){m.stopPropagation(),await n.destroy(k.id).catch(()=>{})}function u(){n.closeDrawer()}function f(k){const m=k.type.toLowerCase();return m.includes("import")||m.includes("finished")||m.includes("success")?Re:m.includes("comment")||m.includes("message")||m.includes("mention")?Ot:m.includes("user")||m.includes("member")||m.includes("role")?_o:m.includes("warning")||m.includes("schedule")?ko:m.includes("delete")||m.includes("failed")||m.includes("error")?he:Re}function p(k){const m=k.type.toLowerCase();return m.includes("import")||m.includes("success")||m.includes("finished")?"success":m.includes("warning")||m.includes("schedule")?"warning":m.includes("delete")||m.includes("failed")||m.includes("error")?"danger":m.includes("comment")||m.includes("message")?"info":"neutral"}function g(k){if(!k)return"";const m=new Date(k).getTime();if(Number.isNaN(m))return"";const w=(Date.now()-m)/1e3;return w<60?`${Math.max(1,Math.floor(w))} сек назад`:w<3600?`${Math.floor(w/60)} мин назад`:w<86400?`${Math.floor(w/3600)} ч назад`:w<86400*2?"вчера":w<86400*7?`${Math.floor(w/86400)} д назад`:new Date(k).toLocaleDateString("ru-RU")}function d(k){const m=k.data,w=typeof m.title=="string"?m.title:typeof m.subject=="string"?m.subject:"Уведомление",B=typeof m.description=="string"?m.description:typeof m.message=="string"?m.message:typeof m.text=="string"?m.text:"";return{title:w,description:B}}const N=e.computed(()=>{const m=n.meta?.total??n.items.length,w=n.unreadCount,B=Math.max(0,m-w);return{all:m,unread:w,read:B}});e.watch(a,async k=>{k?(await n.load(n.lastFilter,1).catch(()=>{}),document.addEventListener("keydown",h)):document.removeEventListener("keydown",h)});function h(k){k.key==="Escape"&&u()}return e.onUnmounted(()=>{document.removeEventListener("keydown",h)}),(k,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"admin-notif-drawer"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",Ho,[e.createElementVNode("div",{class:"admin-notif-drawer__backdrop",onClick:u}),e.createElementVNode("aside",Ko,[e.createElementVNode("header",Go,[e.createElementVNode("h2",Xo,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(n).unreadCount>0?(e.openBlock(),e.createElementBlock("span",Zo,e.toDisplayString(e.unref(n).unreadCount),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Yo,[e.unref(n).unreadCount>0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-notif-drawer__mark-all",onClick:o},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ze),size:14},null,8,["icon"]),m[1]||(m[1]=e.createTextVNode(" Прочитать все ",-1))])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"admin-notif-drawer__close","aria-label":"Закрыть",onClick:u},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:16},null,8,["icon"])])])]),e.createElementVNode("nav",Jo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,w=>e.createElementVNode("button",{key:w.key,type:"button",role:"tab",class:e.normalizeClass(["admin-notif-drawer__tab",{"admin-notif-drawer__tab--active":e.unref(n).lastFilter===w.key}]),"aria-selected":e.unref(n).lastFilter===w.key,onClick:B=>l(w.key)},[e.createTextVNode(e.toDisplayString(w.label)+" ",1),e.createElementVNode("span",el,e.toDisplayString(N.value[w.key]),1)],10,Qo)),64))]),e.createElementVNode("div",tl,[e.unref(n).loading&&e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",nl," Загрузка… ")):e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",al," Нет уведомлений ")):(e.openBlock(),e.createElementBlock("ol",ol,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).items,w=>(e.openBlock(),e.createElementBlock("li",{key:w.id,class:e.normalizeClass(["admin-notif-drawer__item",{"admin-notif-drawer__item--unread":w.read_at===null}]),onClick:B=>i(w)},[e.createElementVNode("span",{class:"admin-notif-drawer__icon","data-variant":p(w),"aria-hidden":"true"},[e.createVNode(e.unref(c.UidIcon),{icon:f(w),size:14},null,8,["icon"])],8,rl),e.createElementVNode("div",il,[e.createElementVNode("div",sl,[e.createElementVNode("span",cl,e.toDisplayString(d(w).title),1),e.createElementVNode("span",dl,e.toDisplayString(g(w.created_at)),1)]),d(w).description?(e.openBlock(),e.createElementBlock("div",ul,e.toDisplayString(d(w).description),1)):e.createCommentVNode("",!0)]),w.read_at===null?(e.openBlock(),e.createElementBlock("span",ml)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"admin-notif-drawer__item-delete","aria-label":"Удалить",onClick:e.withModifiers(B=>s(w,B),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:12},null,8,["icon"])],8,fl)],10,ll))),128))]))])])])):e.createCommentVNode("",!0)]),_:1})]))}}),ie=le.defineStore("admin-manifest",()=>{const t=e.ref(null),n=e.ref(!1),a=e.ref(null),r=e.ref(!1),l=e.computed(()=>t.value!==null),o=e.computed(()=>t.value?.version??null),i=e.computed(()=>t.value?.resources??[]),s=e.computed(()=>t.value?.screens??[]),u=e.computed(()=>t.value?.settings??[]),f=e.computed(()=>t.value?.plugins??[]);function p(k){return i.value.find(m=>m.slug===k)??null}function g(k){return s.value.find(m=>m.slug===k)??null}function d(k){return u.value.find(m=>m.slug===k)??null}async function N(k=!1){if(t.value!==null&&!k)return t.value;n.value=!0,a.value=null;try{const w=await G().get("/system/manifest");return t.value=w,w}catch(m){throw a.value=m instanceof Error?m:new Error(String(m)),m}finally{n.value=!1}}function h(){t.value=null,a.value=null,n.value=!1,r.value=!1}return{manifest:t,loading:n,error:a,bootResolved:r,isLoaded:l,version:o,resources:i,screens:s,settings:u,plugins:f,getResource:p,getScreen:g,getSettings:d,load:N,reset:h}});function De(t,n){return{message:t,...n??{}}}const Y={success(t,n){c.useToast().success(De(t,n))},error(t,n){c.useToast().error(De(t,{duration:6e3,...n??{}}))},warning(t,n){c.useToast().warning(De(t,n))},info(t,n){c.useToast().info(De(t,n))}},vl={class:"admin-page-host"},hl={key:1,class:"admin-page-host__suspended","aria-busy":"true"},yl={key:1,class:"admin-page-host__suspended","aria-busy":"true"},on=e.defineComponent({__name:"AdminApp",setup(t){const n=Z.useRoute(),a=ie(),r=oe(),l=e.computed(()=>{const u=r.user;return u?.impersonator?{asName:String(u?.name??"?")}:null});async function o(){try{const{getAdminClient:u}=await Promise.resolve().then(()=>Q);await u().post("/auth/stopImpersonation"),window.location.reload()}catch{Y.error("Не удалось выйти из режима импертонации.")}}const i=e.computed(()=>!(n.meta?.fullscreen===!0||n.meta?.kind==="auth"||n.name==="admin.notFound")),s=e.computed(()=>n.name==="admin.notFound"&&!a.bootResolved);return(u,f)=>{const p=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Wo),i.value?(e.openBlock(),e.createBlock(an,{key:0,impersonation:l.value,onExitImpersonation:o},{default:e.withCtx(()=>[e.createElementVNode("div",vl,[e.createVNode(p,null,{default:e.withCtx(({Component:g})=>[e.createVNode(e.Transition,{name:"admin-page"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",hl)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g),{key:0}))]),_:2},1024)]),_:1})])]),_:1},8,["impersonation"])):(e.openBlock(),e.createBlock(p,{key:1},{default:e.withCtx(({Component:g})=>[e.createVNode(e.Transition,{name:"admin-page"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",yl)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g),{key:0}))]),_:2},1024)]),_:1})),e.createVNode(pl),e.createVNode(e.unref(c.UidToastProvider))],64)}}}),ln=le.defineStore("admin-dashboard",()=>{const t=e.ref(null),n=e.ref(!1),a=e.ref([]),r=e.ref([]),l=e.ref(!1),o=e.ref(!1),i=e.computed(()=>JSON.stringify(a.value)!==JSON.stringify(r.value));async function s(w){t.value=w,o.value=!0;try{const C=((await G().get(`/dashboard/get?key=${encodeURIComponent(w)}`)).layout??[]).map((T,v)=>({...T,position:T.position??v}));r.value=C,a.value=C.map(T=>({...T}))}catch{r.value=[],a.value=[]}finally{o.value=!1}}function u(){n.value=!0}function f(){a.value=r.value.map(w=>({...w})),n.value=!1}async function p(){if(t.value!==null){l.value=!0;try{const w=G(),B=a.value.map((x,C)=>({slug:x.slug,size:x.size,position:C,hidden:x.hidden??!1,type:x.type,config:x.config}));await w.post("/dashboard/save",{key:t.value,widgets:B}),r.value=a.value.map(x=>({...x})),n.value=!1}finally{l.value=!1}}}async function g(){if(t.value!==null){l.value=!0;try{await G().post("/dashboard/reset",{key:t.value}),r.value=[],a.value=[],n.value=!1}finally{l.value=!1}}}function d(w){a.value=[...a.value,{...w,position:a.value.length}]}function N(w){a.value=a.value.filter(B=>B.slug!==w)}function h(w,B){a.value=a.value.map(x=>x.slug===w?{...x,...B}:x)}function k(w,B){if(w===B)return;const x=[...a.value],[C]=x.splice(w,1);x.splice(B,0,C),a.value=x}function m(){t.value=null,n.value=!1,a.value=[],r.value=[]}return{slug:t,editMode:n,draft:a,original:r,saving:l,loading:o,isDirty:i,openDashboard:s,enterEditMode:u,cancelEdit:f,saveLayout:p,resetToDefault:g,addWidget:d,removeWidget:N,updateWidget:h,moveWidget:k,reset:m}});function Oe(){const t=new Map;return{register(n,a){t.set(n,a)},get(n){return t.get(n)??null},has(n){return t.has(n)},list(){return[...t.keys()]},clear(){t.clear()},registerBundle(n){for(const[a,r]of Object.entries(n))t.set(a,r)}}}const ge=Oe(),gl=ge.register,rn=ge.get,kl=ge.has,sn=ge.list,_l=ge.clear,cn=ge.registerBundle,mt=e.defineComponent({__name:"UnknownWidget",props:{type:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный widget-тип: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[a[0]||(a[0]=e.createTextVNode(" Зарегистрируйте через ",-1)),e.createElementVNode("code",null,"registerWidget('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))]),_:1}))}}),dn=e.defineComponent({__name:"WidgetRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>rn(n.node.type)),r=e.computed(()=>{const{type:l,span:o,...i}=n.node;return i});return(l,o)=>a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):(e.openBlock(),e.createBlock(mt,{key:1,type:t.node.type},null,8,["type"]))}}),bl={class:"admin-widget-actions",role:"toolbar","aria-label":"Действия с виджетом"},wl={type:"button",class:"admin-widget-actions__btn admin-widget-actions__drag","aria-label":"Перетащить",title:"Перетащить","data-drag-handle":"true"},Bl=e.defineComponent({__name:"WidgetActionsOverlay",emits:["configure","remove"],setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",bl,[e.createElementVNode("button",wl,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ma),size:14},null,8,["icon"])]),e.createElementVNode("button",{type:"button",class:"admin-widget-actions__btn","aria-label":"Настройки",title:"Настройки",onClick:a[0]||(a[0]=r=>n.$emit("configure"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Wt),size:14},null,8,["icon"])]),e.createElementVNode("button",{type:"button",class:"admin-widget-actions__btn admin-widget-actions__btn--danger","aria-label":"Удалить",title:"Удалить",onClick:a[1]||(a[1]=r=>n.$emit("remove"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:14},null,8,["icon"])])]))}}),Vl={key:0,class:"admin-dialog-root",role:"dialog","aria-modal":"true","aria-labelledby":"widget-config-title"},Nl={class:"admin-dialog"},xl={class:"admin-dialog__hd"},Cl={id:"widget-config-title",class:"admin-dialog__title"},El={class:"admin-dialog__body"},$l={key:0,class:"admin-dialog__field"},Sl={class:"admin-dialog__type-grid"},Ul=["onClick"],Ml={class:"admin-dialog__type-name"},Tl={class:"admin-dialog__type-help"},Il={key:1,class:"admin-dialog__field"},Dl={class:"admin-dialog__readonly"},Fl={class:"admin-dialog__field"},Al={class:"admin-dialog__field"},Ll={key:2,class:"admin-dialog__field"},zl={class:"admin-dialog__field"},Rl={class:"admin-dialog__field"},Pl={key:4,class:"admin-dialog__field"},ql={class:"admin-dialog__field"},jl={class:"admin-dialog__field"},Ol={class:"admin-dialog__field"},Wl={class:"admin-dialog__field"},Hl={class:"admin-dialog__ft"},Kl=e.defineComponent({__name:"WidgetConfigDialog",props:{open:{type:Boolean},mode:{default:"add"},item:{default:null},initialTitle:{default:""}},emits:["close","add","save"],setup(t,{emit:n}){const a=t,r=n,l=e.computed(()=>sn()),o=e.ref(""),i=e.ref(""),s=e.ref("6"),u=e.ref(`# Новая заметка
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),ie=require("pinia"),Z=require("vue-router"),c=require("@dskripchenko/ui"),fa=require("axios"),ne=require("./formState-GlJBphEn.cjs");const pa=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var Ae={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const va=({size:t,strokeWidth:n=2,absoluteStrokeWidth:a,color:r,iconNode:o,name:l,class:i,...s},{slots:u})=>e.h("svg",{...Ae,width:t||Ae.width,height:t||Ae.height,stroke:r||Ae.stroke,"stroke-width":a?Number(n)*24/Number(t):n,class:["lucide",`lucide-${pa(l??"icon")}`],...s},[...o.map(f=>e.h(...f)),...u.default?[u.default()]:[]]);const $=(t,n)=>(a,{slots:r})=>e.h(va,{...a,iconNode:n,name:t},r);const ha=$("ActivityIcon",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);const ya=$("ArchiveIcon",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);const ga=$("ArrowLeftIcon",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const et=$("BellIcon",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);const st=$("BookmarkIcon",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]);const qt=$("BoxIcon",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);const ka=$("BriefcaseIcon",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);const jt=$("CalendarIcon",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const Ze=$("ChartColumnIcon",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);const _a=$("ChartLineIcon",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);const ba=$("ChartPieIcon",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]);const qe=$("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const Ot=$("ChevronDownIcon",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const wa=$("CircleAlertIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const je=$("CircleCheckBigIcon",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const Ba=$("CircleHelpIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Va=$("CircleUserIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);const Na=$("CircleXIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const xa=$("ClockIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const Ca=$("CodeIcon",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const Ea=$("CogIcon",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);const $a=$("Columns2Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]]);const Sa=$("CommandIcon",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);const Ua=$("DatabaseIcon",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);const Wt=$("DownloadIcon",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);const Ht=$("EllipsisIcon",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);const Ma=$("EyeIcon",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Da=$("FileClockIcon",[["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"37hlfg"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}],["path",{d:"M9.5 17.5 8 16.25V14",key:"1o80t2"}]]);const Mt=$("FileTextIcon",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const Ta=$("FilesIcon",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]);const Ia=$("FlagIcon",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);const Fa=$("FolderOpenIcon",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);const Aa=$("FolderIcon",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);const La=$("GaugeIcon",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);const Kt=$("GlobeIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);const za=$("Grid3x3Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);const Gt=$("GripVerticalIcon",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);const Ra=$("HardDriveIcon",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);const Pa=$("HashIcon",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const qa=$("HeartIcon",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);const ja=$("HistoryIcon",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);const Oa=$("HouseIcon",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);const Dt=$("ImageIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const Wa=$("ImagesIcon",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]);const Ha=$("InboxIcon",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);const Ka=$("InfoIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);const Ga=$("KeyIcon",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);const Xa=$("LayersIcon",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);const Ya=$("LayoutDashboardIcon",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);const Za=$("LayoutGridIcon",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const Ja=$("LifeBuoyIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);const Qa=$("LinkIcon",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const eo=$("ListChecksIcon",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);const to=$("ListIcon",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const no=$("LockIcon",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);const ao=$("LogOutIcon",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);const Xt=$("MailIcon",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);const oo=$("MapPinIcon",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);const lo=$("MapIcon",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);const Yt=$("MessageSquareIcon",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);const ro=$("MonitorIcon",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const io=$("MoonIcon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);const so=$("PackageIcon",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);const co=$("PanelLeftIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);const uo=$("PanelsTopLeftIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);const mo=$("PaperclipIcon",[["path",{d:"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48",key:"1u3ebp"}]]);const ct=$("PencilIcon",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);const Oe=$("PlusIcon",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const fo=$("RefreshCwIcon",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const dt=$("RotateCcwIcon",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);const ut=$("SearchIcon",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);const po=$("SendIcon",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);const vo=$("ServerIcon",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);const Zt=$("SettingsIcon",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Tt=$("ShieldIcon",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);const ho=$("ShoppingBagIcon",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);const yo=$("ShoppingCartIcon",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]);const go=$("SlidersVerticalIcon",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);const ko=$("SquarePenIcon",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);const _o=$("StarIcon",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const bo=$("StoreIcon",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);const wo=$("SunIcon",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const Jt=$("TagIcon",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);const Bo=$("TagsIcon",[["path",{d:"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19",key:"1cbfv1"}],["path",{d:"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z",key:"135mg7"}],["circle",{cx:"6.5",cy:"9.5",r:".5",fill:"currentColor",key:"5pm5xn"}]]);const Vo=$("TerminalIcon",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);const ge=$("Trash2Icon",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);const No=$("TrendingUpIcon",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);const xo=$("TriangleAlertIcon",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Qt=$("UploadIcon",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);const Co=$("UserPlusIcon",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);const Eo=$("UserIcon",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);const $o=$("UsersIcon",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);const ke=$("XIcon",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);const So=$("ZapIcon",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);let Ee=null;function mt(t){Ee=t}function H(){if(Ee===null)throw new Error("[admin] AdminClient is not registered. Call setAdminClient(...) before using stores.");return Ee}function en(){Ee=null}function tn(){return Ee!==null}const Q=Object.freeze(Object.defineProperty({__proto__:null,clearAdminClient:en,getAdminClient:H,hasAdminClient:tn,setAdminClient:mt},Symbol.toStringTag,{value:"Module"})),We=ie.defineStore("admin-theme",()=>{const t=e.ref("light"),n=e.ref(["light","dark"]),a=e.computed(()=>t.value==="dark");function r(s){t.value=s.theme,n.value=s.availableThemes,i(s.theme)}function o(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);t.value=s,i(s)}async function l(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);const u=t.value;o(s);try{await H().post("/system/setTheme",{theme:s})}catch(f){throw o(u),f}}function i(s){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("data-theme",s)}return{current:t,available:n,isDark:a,hydrate:r,applyLocal:o,setTheme:l}}),Uo=["aria-label","aria-pressed"],ft=e.defineComponent({__name:"ThemeToggle",setup(t){const n=We(),a=e.computed(()=>n.current==="dark"),r=e.computed(()=>a.value?wo:io),o=e.computed(()=>a.value?"sun":"moon"),l=e.computed(()=>a.value?"Переключить на светлую тему":"Переключить на тёмную тему");async function i(){const s=a.value?"light":"dark";await n.setTheme(s)}return(s,u)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"admin-topbar__icon-btn","aria-label":l.value,"aria-pressed":a.value,onClick:i},[e.createVNode(e.unref(c.UidIcon),{icon:r.value,size:18,"data-icon":o.value},null,8,["icon","data-icon"])],8,Uo))}}),$e=ie.defineStore("admin-locale",()=>{const t=e.ref("ru"),n=e.ref(["ru","en"]);function a(i){t.value=i.locale,n.value=i.availableLocales,l(i.locale)}function r(i){if(!n.value.includes(i))throw new Error(`Locale "${i}" is not available`);t.value=i,l(i)}async function o(i){if(!n.value.includes(i))throw new Error(`Locale "${i}" is not available`);const s=t.value;r(i);try{await H().post("/system/setLocale",{locale:i})}catch(u){throw r(s),u}}function l(i){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("lang",i);try{H().setLocale(i)}catch{}}return{current:t,available:n,hydrate:a,applyLocal:r,setLocale:o}}),Mo={type:"button",class:"admin-topbar__icon-btn",style:{width:"auto",padding:"0 8px",gap:"4px","font-size":"12px"},"aria-label":"Сменить локаль"},pt=e.defineComponent({__name:"LocaleSwitcher",setup(t){const n=$e();async function a(r){r!==n.current&&await n.setLocale(r)}return(r,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",Mo,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Kt),size:14,"data-icon":"globe"},null,8,["icon"]),e.createElementVNode("span",null,e.toDisplayString((e.unref(n).current??"").toUpperCase()),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).available,l=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:l,onClick:i=>a(l)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.toUpperCase()),1)]),_:2},1032,["onClick"]))),128))]),_:1}))}}),Se=ie.defineStore("admin-notifications",()=>{const t=e.ref([]),n=e.ref(0),a=e.ref(!1),r=e.ref("all"),o=e.ref(null),l=e.ref(!1),i=e.computed(()=>n.value>0);function s(){l.value=!0}function u(){l.value=!1}function f(){l.value=!l.value}function p(m){n.value=m.unread_notifications_count}async function b(m="all",w=1){a.value=!0;try{const E=await H().get(`/notifications/list?type=${m}&page=${w}`);t.value=E.data,n.value=E.meta.unread_count,o.value={page:E.meta.page,per_page:E.meta.per_page,total:E.meta.total,last_page:E.meta.last_page},r.value=m}finally{a.value=!1}}async function d(){const w=await H().get("/notifications/unread");n.value=w.count,r.value==="unread"&&(t.value=w.data)}async function B(m){await H().post("/notifications/markAsRead",{id:m});const V=t.value.find(E=>E.id===m);V&&V.read_at===null&&(V.read_at=new Date().toISOString(),n.value=Math.max(0,n.value-1))}async function y(){await H().post("/notifications/markAllAsRead");const w=new Date().toISOString();for(const V of t.value)V.read_at===null&&(V.read_at=w);n.value=0}async function k(m){await H().post("/notifications/destroy",{id:m});const V=t.value.findIndex(E=>E.id===m);if(V!==-1){const E=t.value[V].read_at===null;t.value.splice(V,1),E&&(n.value=Math.max(0,n.value-1))}}return{items:t,unreadCount:n,loading:a,meta:o,lastFilter:r,isOpen:l,hasUnread:i,hydrate:p,load:b,loadUnread:d,markAsRead:B,markAllAsRead:y,destroy:k,openDrawer:s,closeDrawer:u,toggleDrawer:f}}),Do=["aria-expanded"],To=["title"],nn=e.defineComponent({__name:"NotificationBell",setup(t){const n=Se(),a=e.computed(()=>{const o=n.unreadCount;return o<=0?null:o>99?"99+":String(o)});function r(){n.toggleDrawer()}return(o,l)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"admin-topbar__icon-btn","aria-label":"Уведомления","aria-haspopup":"dialog","aria-expanded":e.unref(n).isOpen,onClick:r},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(et),size:18,"data-icon":"bell"},null,8,["icon"]),a.value!==null?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-topbar__bell-badge",title:`Непрочитанных: ${e.unref(n).unreadCount}`},e.toDisplayString(a.value),9,To)):e.createCommentVNode("",!0)],8,Do))}});class de extends Error{status;errorKey;payload;constructor(n,a){super(a.message??`API error ${n}`),this.name="ApiError",this.status=n,this.errorKey=a.errorKey??"unknown",this.payload=a}}class vt extends de{constructor(n){super(401,n),this.name="UnauthenticatedError"}}class an extends de{constructor(n){super(403,n),this.name="ForbiddenError"}}class on extends de{constructor(n){super(404,n),this.name="NotFoundError"}}class Ue extends de{fields;constructor(n){super(422,n),this.name="ValidationError",this.fields=n.messages??{}}firstFieldMessage(){for(const n of Object.values(this.fields))if(n.length>0)return n[0];return null}}class Me extends Error{constructor(n="Network error"){super(n),this.name="NetworkError"}}function tt(t,n){switch(t){case 401:return new vt(n);case 403:return new an(n);case 404:return new on(n);case 422:return new Ue(n);default:return new de(t,n)}}const re=ie.defineStore("admin-auth",()=>{const t=e.ref(null),n=e.ref([]),a=e.ref(null),r=e.computed(()=>t.value!==null),o=e.computed(()=>a.value!==null);function l(y){t.value=y.user,n.value=y.permissions}function i(y){return n.value.includes("*")||n.value.includes(y)?!0:n.value.some(k=>{if(!k.endsWith(".*"))return!1;const m=k.slice(0,-1);return y.startsWith(m)})}function s(y){return y.some(i)}function u(y){return y.every(i)}async function f(y){const k=H();try{const m=await k.post("/auth/login",y);return m?.user&&(t.value=m.user),Array.isArray(m?.permissions)&&(n.value=m.permissions),a.value=null,"authenticated"}catch(m){if(m instanceof de&&m.errorKey==="two_factor_required"){const w=m.payload.challenge_token;return a.value={challengeToken:typeof w=="string"?w:"",remember:y.remember??!1},"two_factor_required"}throw m}}async function p(y){if(a.value===null)throw new Error("No pending 2FA challenge");const m=await H().post("/auth/twoFactorChallenge",{challenge_token:a.value.challengeToken,code:y});t.value=m.user,a.value=null}async function b(y){if(a.value===null)throw new Error("No pending 2FA challenge");const m=await H().post("/auth/twoFactorRecovery",{challenge_token:a.value.challengeToken,recovery_code:y});return t.value=m.user,a.value=null,{remaining:m.recovery_codes_remaining}}function d(){a.value=null}async function B(){const y=H();try{await y.post("/auth/logout")}finally{t.value=null,n.value=[],a.value=null}}return{user:t,permissions:n,pendingChallenge:a,isAuthenticated:r,isChallengePending:o,hydrate:l,hasPermission:i,hasAnyPermission:s,hasAllPermissions:u,login:f,twoFactorChallenge:p,twoFactorRecovery:b,cancelChallenge:d,logout:B}}),Io={type:"button",class:"admin-topbar__icon-btn admin-user-menu__trigger","aria-label":"Меню пользователя","aria-haspopup":"menu",style:{width:"auto",padding:"0 4px",gap:"8px"}},ln=e.defineComponent({__name:"UserMenu",setup(t){const n=re(),a=Z.useRouter();async function r(){try{await n.logout()}finally{await a.push({name:"admin.login"})}}function o(){a.push({name:"admin.profile"})}return(l,i)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",Io,[e.createVNode(e.unref(c.UidAvatar),{src:e.unref(n).user?.avatar??void 0,name:e.unref(n).user?.name??"?",alt:e.unref(n).user?.name??"User",size:"sm"},null,8,["src","name","alt"])])]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:o},{default:e.withCtx(()=>[...i[0]||(i[0]=[e.createTextVNode("Профиль",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuSeparator)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:r},{default:e.withCtx(()=>[...i[1]||(i[1]=[e.createTextVNode("Выйти",-1)])]),_:1})]),_:1}))}}),Fo={class:"admin-topbar"},Ao={class:"admin-topbar__breadcrumbs"},Lo={key:0,class:"sep"},zo={class:"admin-topbar__search",role:"button",tabindex:"0"},rn=e.defineComponent({__name:"AdminTopBar",props:{breadcrumbs:{default:()=>[]},showCollapseToggle:{type:Boolean,default:!0}},emits:["toggle-sidebar"],setup(t,{emit:n}){const a=t,r=n,o=e.computed(()=>a.breadcrumbs.length-1);return(l,i)=>(e.openBlock(),e.createElementBlock("header",Fo,[t.showCollapseToggle?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-topbar__icon-btn","aria-label":"Свернуть меню",onClick:i[0]||(i[0]=s=>r("toggle-sidebar"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(co),size:18,"data-icon":"panel-left"},null,8,["icon"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ao,[e.renderSlot(l.$slots,"breadcrumbs",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>0?(e.openBlock(),e.createElementBlock("span",Lo,"›")):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.to?"a":"span"),{href:typeof s.to=="string"?s.to:void 0,class:e.normalizeClass(u===o.value?"cur":"")},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["href","class"]))],64))),128))])]),i[3]||(i[3]=e.createElementVNode("div",{class:"admin-topbar__spacer"},null,-1)),e.renderSlot(l.$slots,"search",{},()=>[e.createElementVNode("div",zo,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ut),size:14,"data-icon":"search"},null,8,["icon"]),i[1]||(i[1]=e.createElementVNode("span",null,"Поиск везде…",-1)),i[2]||(i[2]=e.createElementVNode("kbd",null,"⌘K",-1))])]),e.renderSlot(l.$slots,"actions"),e.createVNode(nn),e.createVNode(ft),e.createVNode(pt),e.createVNode(ln)]))}}),ht=ie.defineStore("admin-menu",()=>{const t=e.ref([]),n=e.ref(!1),a=e.ref(null),r=e.ref(!1),o=e.computed(()=>{const f=re(),p=b=>{if(Array.isArray(b.permissions)&&b.permissions.length>0&&!f.hasAnyPermission(b.permissions))return null;const d=(b.children??[]).map(p).filter(B=>B!==null);return{...b,children:d}};return t.value.map(p).filter(b=>b!==null)}),l=e.computed(()=>{const f=new Map;for(const b of o.value){const d=b.group??null;f.has(d)||f.set(d,[]),f.get(d).push(b)}const p=[];for(const[b,d]of f)d.sort((B,y)=>{const k=(B.order??0)-(y.order??0);return k!==0?k:B.label.localeCompare(y.label)}),p.push({group:b,items:d});return p});async function i(f=!1){if(r.value&&!f)return t.value;n.value=!0,a.value=null;try{const b=await H().get("/system/menu");return t.value=Array.isArray(b.items)?b.items:[],r.value=!0,t.value}catch(p){throw a.value=p instanceof Error?p:new Error(String(p)),p}finally{n.value=!1}}function s(f){t.value=f,r.value=!0,a.value=null}function u(){t.value=[],r.value=!1,a.value=null,n.value=!1}return{items:t,loading:n,error:a,isLoaded:r,visibleItems:o,groupedItems:l,load:i,setItems:s,reset:u}}),Ro=["aria-label"],Po="#2dd4bf",qo="#18181b",He=e.defineComponent({__name:"BrandLogo",props:{size:{default:28},animated:{type:Boolean,default:!0},variant:{default:"color"},title:{default:"LAdmin"}},setup(t){const n=t,a=e.computed(()=>Math.round(n.size*.25)),r=e.computed(()=>Math.round(n.size*.42)),o=e.computed(()=>Math.round(n.size*.18)),l=e.computed(()=>Math.max(2,Math.round(n.size*.18))),i=e.computed(()=>Math.round(n.size*.3)),s=e.computed(()=>Math.max(1,Math.round(n.size*.04))),u=e.computed(()=>n.variant==="mono"?"currentColor":qo),f=e.computed(()=>n.variant==="mono"?"var(--ladmin-logo-fg, #fff)":Po),p=e.computed(()=>({width:`${n.size}px`,height:`${n.size}px`,padding:`0 ${o.value}px`,borderRadius:`${a.value}px`,background:u.value,color:f.value,fontSize:`${r.value}px`})),b=e.computed(()=>({width:`${l.value}px`,height:`${i.value}px`,marginLeft:`${s.value}px`,background:f.value}));return(d,B)=>(e.openBlock(),e.createElementBlock("span",{role:"img","aria-label":t.title,class:e.normalizeClass(["ladmin-logo",{"ladmin-logo--animated":t.animated}]),style:e.normalizeStyle(p.value)},[B[0]||(B[0]=e.createElementVNode("span",{"aria-hidden":"true"},">_",-1)),e.createElementVNode("span",{"aria-hidden":"true",class:"ladmin-logo__cursor",style:e.normalizeStyle(b.value)},null,4)],14,Ro))}}),jo={activity:ha,"alert-circle":wa,archive:ya,"bar-chart":Ze,"bar-chart-3":Ze,bell:et,bookmark:st,box:qt,briefcase:ka,calendar:jt,"check-circle":je,clock:xa,code:Ca,cog:Ea,command:Sa,database:Ua,download:Wt,file:Mt,"file-text":Mt,"file-clock":Da,files:Ta,flag:Ia,folder:Aa,"folder-open":Fa,gauge:La,globe:Kt,grid:za,"hard-drive":Ra,hash:Pa,"health-check":je,heart:qa,"help-circle":Ba,history:ja,home:Oa,image:Dt,images:Wa,inbox:Ha,info:Ka,key:Ga,layers:Xa,layout:uo,"layout-dashboard":Ya,"life-buoy":Ja,"line-chart":_a,link:Qa,list:to,"list-checks":eo,lock:no,"log-out":ao,mail:Xt,map:lo,"map-pin":oo,media:Dt,"message-square":Yt,monitor:ro,notifications:et,package:so,paperclip:mo,"pie-chart":ba,"refresh-cw":fo,reports:Ze,roles:Tt,search:ut,send:po,server:vo,settings:Zt,shield:Tt,"shopping-bag":ho,"shopping-cart":yo,sliders:go,star:_o,store:bo,tag:Jt,tags:Bo,terminal:Vo,"trending-up":No,upload:Qt,user:Eo,"user-circle":Va,users:$o,"x-circle":Na,zap:So};function sn(t){return t?jo[t]??null:null}const Oo={key:0,class:"admin-sidebar-brand__mark"},Wo={key:2,class:"admin-sidebar-brand__name"},Ho={key:0,class:"admin-sidebar-tenant"},Ko={class:"admin-sidebar-foot"},Go=["title"],Xo=["href"],cn=e.defineComponent({__name:"AdminSidebar",props:{collapsed:{type:Boolean,default:!1},brandName:{default:"Laravel Admin"},brandMark:{default:null},homeRouteName:{default:"admin.home"},tenant:{default:null},version:{default:null},docsUrl:{default:null}},setup(t){const n=ht(),a=Z.useRoute(),r=e.computed(()=>n.groupedItems);function o(s){return!!(s.routeName&&a.name===s.routeName||s.url&&a.path===s.url)}function l(s){const u=sn(s)??qt;return()=>e.h(c.UidIcon,{icon:u,size:16})}function i(s){if(s.url)return s.url;if(s.routeName)return{name:s.routeName}}return(s,u)=>{const f=e.resolveComponent("router-link");return e.openBlock(),e.createBlock(e.unref(c.UidSidebar),{collapsed:t.collapsed},{header:e.withCtx(()=>[e.createVNode(f,{to:{name:t.homeRouteName},class:"admin-sidebar-brand",title:t.collapsed?t.brandName:void 0,"aria-label":t.brandName},{default:e.withCtx(()=>[t.brandMark?(e.openBlock(),e.createElementBlock("div",Oo,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(He,{key:1,size:28})),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Wo,e.toDisplayString(t.brandName),1))]),_:1},8,["to","title","aria-label"]),t.tenant&&!t.collapsed?(e.openBlock(),e.createElementBlock("div",Ho,[e.createElementVNode("span",null,e.toDisplayString(t.tenant.label),1),e.createElementVNode("b",null,e.toDisplayString(t.tenant.name),1)])):e.createCommentVNode("",!0)]),nav:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(p,b)=>(e.openBlock(),e.createBlock(e.unref(c.UidSidebarGroup),{key:`grp-${b}`,title:p.group??void 0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.items,d=>(e.openBlock(),e.createBlock(e.unref(c.UidSidebarItem),{key:d.key,to:i(d),active:o(d),badge:d.badge??void 0,title:t.collapsed?d.label:void 0},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l(d.icon))))]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(d.label),1)]),_:2},1032,["to","active","badge","title"]))),128))]),_:2},1032,["title"]))),128))]),footer:e.withCtx(()=>[e.createElementVNode("div",Ko,[e.createElementVNode("span",{class:"admin-sidebar-foot__text",title:t.version??"Laravel Admin"},[t.collapsed?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("·")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.version??"Laravel Admin"),1)],64))],8,Go),t.docsUrl&&!t.collapsed?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.docsUrl,class:"admin-sidebar-foot__text admin-sidebar-foot__link"}," Docs ",8,Xo)):e.createCommentVNode("",!0)])]),_:1},8,["collapsed"])}}}),Yo={class:"admin-shell-root"},Zo={key:0,class:"admin-impersonation-banner",role:"status"},Je="data-admin-impersonating",dn=e.defineComponent({__name:"AdminShell",props:{collapsed:{type:Boolean,default:void 0},impersonation:{default:null}},emits:["update:collapsed","exit-impersonation"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(!1),l=e.computed(()=>a.collapsed!==void 0),i=e.computed(()=>l.value?a.collapsed:o.value);function s(f){l.value||(o.value=f),r("update:collapsed",f)}function u(){r("exit-impersonation")}return e.watch(()=>a.impersonation,f=>{typeof document>"u"||(f!==null?document.documentElement.setAttribute(Je,"true"):document.documentElement.removeAttribute(Je))},{immediate:!0}),e.onBeforeUnmount(()=>{typeof document<"u"&&document.documentElement.removeAttribute(Je)}),(f,p)=>(e.openBlock(),e.createElementBlock("div",Yo,[t.impersonation?(e.openBlock(),e.createElementBlock("div",Zo,[e.createElementVNode("span",null,[p[1]||(p[1]=e.createTextVNode(" Вы вошли как ",-1)),e.createElementVNode("b",null,e.toDisplayString(t.impersonation.asName),1),p[2]||(p[2]=e.createTextVNode(" · режим имперсонации ",-1))]),e.createElementVNode("button",{type:"button",class:"admin-impersonation-banner__exit",onClick:u}," Выйти из режима ")])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidSidebarLayout),{"model-value":i.value,class:"admin-shell","onUpdate:modelValue":s},{sidebar:e.withCtx(()=>[e.renderSlot(f.$slots,"sidebar",{},()=>[e.createVNode(cn,{collapsed:i.value},null,8,["collapsed"])])]),header:e.withCtx(()=>[e.renderSlot(f.$slots,"topbar",{},()=>[e.createVNode(rn,{onToggleSidebar:p[0]||(p[0]=b=>s(!i.value))})])]),footer:e.withCtx(()=>[e.renderSlot(f.$slots,"footer",{},()=>[p[3]||(p[3]=e.createElementVNode("div",{class:"admin-main-footer"},null,-1))])]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},8,["model-value"])]))}}),yt=ie.defineStore("admin-navigation",()=>{const t=e.ref(0),n=e.computed(()=>t.value>0);function a(){t.value+=1}function r(){t.value>0&&(t.value-=1)}function o(){t.value=0}return{pending:t,isLoading:n,start:a,end:r,reset:o}}),Jo=e.defineComponent({__name:"AdminLoadingBar",setup(t){const n=yt(),a=e.ref(!1);let r=null;e.watch(()=>n.isLoading,l=>{l?(r!==null&&(clearTimeout(r),r=null),a.value=!0):r=setTimeout(()=>{a.value=!1,r=null},120)},{immediate:!0});const o=e.computed(()=>({"admin-loading-bar":!0,"admin-loading-bar--visible":a.value}));return(l,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),role:"progressbar","aria-busy":"true"},null,2))}}),Qo={key:0,class:"admin-notif-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"admin-notif-drawer-title"},el={class:"admin-notif-drawer__panel"},tl={class:"admin-notif-drawer__hd"},nl={id:"admin-notif-drawer-title",class:"admin-notif-drawer__title"},al={key:0,class:"admin-notif-drawer__unread-badge"},ol={class:"admin-notif-drawer__hd-actions"},ll={class:"admin-notif-drawer__tabs",role:"tablist"},rl=["aria-selected","onClick"],il={class:"admin-notif-drawer__tab-count"},sl={class:"admin-notif-drawer__body"},cl={key:0,class:"admin-notif-drawer__empty"},dl={key:1,class:"admin-notif-drawer__empty"},ul={key:2,class:"admin-notif-drawer__list"},ml=["onClick"],fl=["data-variant"],pl={class:"admin-notif-drawer__content"},vl={class:"admin-notif-drawer__row"},hl={class:"admin-notif-drawer__item-title"},yl={class:"admin-notif-drawer__item-time"},gl={key:0,class:"admin-notif-drawer__item-description"},kl={key:0,class:"admin-notif-drawer__unread-dot","aria-hidden":"true"},_l=["onClick"],bl=e.defineComponent({__name:"NotificationsDrawer",setup(t){const n=Se(),a=e.computed(()=>n.isOpen),r=[{key:"all",label:"Все"},{key:"unread",label:"Непрочитанные"},{key:"read",label:"Прочитанные"}];async function o(k){n.lastFilter!==k&&await n.load(k,1).catch(()=>{})}async function l(){await n.markAllAsRead().catch(()=>{})}async function i(k){k.read_at===null&&await n.markAsRead(k.id).catch(()=>{});const m=k.data.url;typeof m=="string"&&m.length>0&&(m.startsWith("http://")||m.startsWith("https://")?window.open(m,"_blank","noopener"):(n.closeDrawer(),window.location.href=m))}async function s(k,m){m.stopPropagation(),await n.destroy(k.id).catch(()=>{})}function u(){n.closeDrawer()}function f(k){const m=k.type.toLowerCase();return m.includes("import")||m.includes("finished")||m.includes("success")?je:m.includes("comment")||m.includes("message")||m.includes("mention")?Yt:m.includes("user")||m.includes("member")||m.includes("role")?Co:m.includes("warning")||m.includes("schedule")?xo:m.includes("delete")||m.includes("failed")||m.includes("error")?ge:je}function p(k){const m=k.type.toLowerCase();return m.includes("import")||m.includes("success")||m.includes("finished")?"success":m.includes("warning")||m.includes("schedule")?"warning":m.includes("delete")||m.includes("failed")||m.includes("error")?"danger":m.includes("comment")||m.includes("message")?"info":"neutral"}function b(k){if(!k)return"";const m=new Date(k).getTime();if(Number.isNaN(m))return"";const w=(Date.now()-m)/1e3;return w<60?`${Math.max(1,Math.floor(w))} сек назад`:w<3600?`${Math.floor(w/60)} мин назад`:w<86400?`${Math.floor(w/3600)} ч назад`:w<86400*2?"вчера":w<86400*7?`${Math.floor(w/86400)} д назад`:new Date(k).toLocaleDateString("ru-RU")}function d(k){const m=k.data,w=typeof m.title=="string"?m.title:typeof m.subject=="string"?m.subject:"Уведомление",V=typeof m.description=="string"?m.description:typeof m.message=="string"?m.message:typeof m.text=="string"?m.text:"";return{title:w,description:V}}const B=e.computed(()=>{const m=n.meta?.total??n.items.length,w=n.unreadCount,V=Math.max(0,m-w);return{all:m,unread:w,read:V}});e.watch(a,async k=>{k?(await n.load(n.lastFilter,1).catch(()=>{}),document.addEventListener("keydown",y)):document.removeEventListener("keydown",y)});function y(k){k.key==="Escape"&&u()}return e.onUnmounted(()=>{document.removeEventListener("keydown",y)}),(k,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"admin-notif-drawer"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",Qo,[e.createElementVNode("div",{class:"admin-notif-drawer__backdrop",onClick:u}),e.createElementVNode("aside",el,[e.createElementVNode("header",tl,[e.createElementVNode("h2",nl,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(n).unreadCount>0?(e.openBlock(),e.createElementBlock("span",al,e.toDisplayString(e.unref(n).unreadCount),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",ol,[e.unref(n).unreadCount>0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-notif-drawer__mark-all",onClick:l},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(qe),size:14},null,8,["icon"]),m[1]||(m[1]=e.createTextVNode(" Прочитать все ",-1))])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"admin-notif-drawer__close","aria-label":"Закрыть",onClick:u},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:16},null,8,["icon"])])])]),e.createElementVNode("nav",ll,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,w=>e.createElementVNode("button",{key:w.key,type:"button",role:"tab",class:e.normalizeClass(["admin-notif-drawer__tab",{"admin-notif-drawer__tab--active":e.unref(n).lastFilter===w.key}]),"aria-selected":e.unref(n).lastFilter===w.key,onClick:V=>o(w.key)},[e.createTextVNode(e.toDisplayString(w.label)+" ",1),e.createElementVNode("span",il,e.toDisplayString(B.value[w.key]),1)],10,rl)),64))]),e.createElementVNode("div",sl,[e.unref(n).loading&&e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",cl," Загрузка… ")):e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",dl," Нет уведомлений ")):(e.openBlock(),e.createElementBlock("ol",ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).items,w=>(e.openBlock(),e.createElementBlock("li",{key:w.id,class:e.normalizeClass(["admin-notif-drawer__item",{"admin-notif-drawer__item--unread":w.read_at===null}]),onClick:V=>i(w)},[e.createElementVNode("span",{class:"admin-notif-drawer__icon","data-variant":p(w),"aria-hidden":"true"},[e.createVNode(e.unref(c.UidIcon),{icon:f(w),size:14},null,8,["icon"])],8,fl),e.createElementVNode("div",pl,[e.createElementVNode("div",vl,[e.createElementVNode("span",hl,e.toDisplayString(d(w).title),1),e.createElementVNode("span",yl,e.toDisplayString(b(w.created_at)),1)]),d(w).description?(e.openBlock(),e.createElementBlock("div",gl,e.toDisplayString(d(w).description),1)):e.createCommentVNode("",!0)]),w.read_at===null?(e.openBlock(),e.createElementBlock("span",kl)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"admin-notif-drawer__item-delete","aria-label":"Удалить",onClick:e.withModifiers(V=>s(w,V),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:12},null,8,["icon"])],8,_l)],10,ml))),128))]))])])])):e.createCommentVNode("",!0)]),_:1})]))}}),ce=ie.defineStore("admin-manifest",()=>{const t=e.ref(null),n=e.ref(!1),a=e.ref(null),r=e.ref(!1),o=e.computed(()=>t.value!==null),l=e.computed(()=>t.value?.version??null),i=e.computed(()=>t.value?.resources??[]),s=e.computed(()=>t.value?.screens??[]),u=e.computed(()=>t.value?.settings??[]),f=e.computed(()=>t.value?.plugins??[]);function p(k){return i.value.find(m=>m.slug===k)??null}function b(k){return s.value.find(m=>m.slug===k)??null}function d(k){return u.value.find(m=>m.slug===k)??null}async function B(k=!1){if(t.value!==null&&!k)return t.value;n.value=!0,a.value=null;try{const w=await H().get("/system/manifest");return t.value=w,w}catch(m){throw a.value=m instanceof Error?m:new Error(String(m)),m}finally{n.value=!1}}function y(){t.value=null,a.value=null,n.value=!1,r.value=!1}return{manifest:t,loading:n,error:a,bootResolved:r,isLoaded:o,version:l,resources:i,screens:s,settings:u,plugins:f,getResource:p,getScreen:b,getSettings:d,load:B,reset:y}});function Le(t,n){return{message:t,...n??{}}}const X={success(t,n){c.useToast().success(Le(t,n))},error(t,n){c.useToast().error(Le(t,{duration:6e3,...n??{}}))},warning(t,n){c.useToast().warning(Le(t,n))},info(t,n){c.useToast().info(Le(t,n))}},wl={class:"admin-page-host"},Bl={key:1,class:"admin-page-host__suspended","aria-busy":"true"},Vl={key:1,class:"admin-page-host__suspended","aria-busy":"true"},un=e.defineComponent({__name:"AdminApp",setup(t){const n=Z.useRoute(),a=ce(),r=re(),o=e.computed(()=>{const u=r.user;return u?.impersonator?{asName:String(u?.name??"?")}:null});async function l(){try{const{getAdminClient:u}=await Promise.resolve().then(()=>Q);await u().post("/auth/stopImpersonation"),window.location.reload()}catch{X.error("Не удалось выйти из режима импертонации.")}}const i=e.computed(()=>!(n.meta?.fullscreen===!0||n.meta?.kind==="auth"||n.name==="admin.notFound")),s=e.computed(()=>n.name==="admin.notFound"&&!a.bootResolved);return(u,f)=>{const p=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Jo),i.value?(e.openBlock(),e.createBlock(dn,{key:0,impersonation:o.value,onExitImpersonation:l},{default:e.withCtx(()=>[e.createElementVNode("div",wl,[e.createVNode(p,null,{default:e.withCtx(({Component:b})=>[e.createVNode(e.Transition,{name:"admin-page"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",Bl)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b),{key:0}))]),_:2},1024)]),_:1})])]),_:1},8,["impersonation"])):(e.openBlock(),e.createBlock(p,{key:1},{default:e.withCtx(({Component:b})=>[e.createVNode(e.Transition,{name:"admin-page"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",Vl)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b),{key:0}))]),_:2},1024)]),_:1})),e.createVNode(bl),e.createVNode(e.unref(c.UidToastProvider))],64)}}}),mn=ie.defineStore("admin-dashboard",()=>{const t=e.ref(null),n=e.ref(!1),a=e.ref([]),r=e.ref([]),o=e.ref(!1),l=e.ref(!1),i=e.computed(()=>JSON.stringify(a.value)!==JSON.stringify(r.value));async function s(w){t.value=w,l.value=!0;try{const C=((await H().get(`/dashboard/get?key=${encodeURIComponent(w)}`)).layout??[]).map((M,g)=>({...M,position:M.position??g}));r.value=C,a.value=C.map(M=>({...M}))}catch{r.value=[],a.value=[]}finally{l.value=!1}}function u(){n.value=!0}function f(){a.value=r.value.map(w=>({...w})),n.value=!1}async function p(){if(t.value!==null){o.value=!0;try{const w=H(),V=a.value.map((E,C)=>({slug:E.slug,size:E.size,position:C,hidden:E.hidden??!1,type:E.type,config:E.config}));await w.post("/dashboard/save",{key:t.value,widgets:V}),r.value=a.value.map(E=>({...E})),n.value=!1}finally{o.value=!1}}}async function b(){if(t.value!==null){o.value=!0;try{await H().post("/dashboard/reset",{key:t.value}),r.value=[],a.value=[],n.value=!1}finally{o.value=!1}}}function d(w){a.value=[...a.value,{...w,position:a.value.length}]}function B(w){a.value=a.value.filter(V=>V.slug!==w)}function y(w,V){a.value=a.value.map(E=>E.slug===w?{...E,...V}:E)}function k(w,V){if(w===V)return;const E=[...a.value],[C]=E.splice(w,1);E.splice(V,0,C),a.value=E}function m(){t.value=null,n.value=!1,a.value=[],r.value=[]}return{slug:t,editMode:n,draft:a,original:r,saving:o,loading:l,isDirty:i,openDashboard:s,enterEditMode:u,cancelEdit:f,saveLayout:p,resetToDefault:b,addWidget:d,removeWidget:B,updateWidget:y,moveWidget:k,reset:m}}),fn=ie.defineStore("admin-i18n",()=>{const t=e.ref({}),n=e.ref("ru");function a(i){const s=i.translations;s&&typeof s=="object"&&(t.value={...s}),n.value=i.locale??"ru"}function r(i){t.value={...i}}function o(i,s={}){let u=t.value[i]??i;for(const[f,p]of Object.entries(s))u=u.replace(new RegExp(`:${f}`,"g"),String(p));return u}return{messages:t,locale:n,hydrate:a,setMessages:r,t:o,has:i=>i in t.value,keys:e.computed(()=>Object.keys(t.value))}});function Ke(){const t=new Map;return{register(n,a){t.set(n,a)},get(n){return t.get(n)??null},has(n){return t.has(n)},list(){return[...t.keys()]},clear(){t.clear()},registerBundle(n){for(const[a,r]of Object.entries(n))t.set(a,r)}}}const _e=Ke(),Nl=_e.register,pn=_e.get,xl=_e.has,vn=_e.list,Cl=_e.clear,hn=_e.registerBundle,gt=e.defineComponent({__name:"UnknownWidget",props:{type:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный widget-тип: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[a[0]||(a[0]=e.createTextVNode(" Зарегистрируйте через ",-1)),e.createElementVNode("code",null,"registerWidget('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))]),_:1}))}}),yn=e.defineComponent({__name:"WidgetRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>pn(n.node.type)),r=e.computed(()=>{const{type:o,span:l,...i}=n.node;return i});return(o,l)=>a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):(e.openBlock(),e.createBlock(gt,{key:1,type:t.node.type},null,8,["type"]))}}),El={class:"admin-widget-actions",role:"toolbar","aria-label":"Действия с виджетом"},$l={type:"button",class:"admin-widget-actions__btn admin-widget-actions__drag","aria-label":"Перетащить",title:"Перетащить","data-drag-handle":"true"},Sl=e.defineComponent({__name:"WidgetActionsOverlay",emits:["configure","remove"],setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",El,[e.createElementVNode("button",$l,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Gt),size:14},null,8,["icon"])]),e.createElementVNode("button",{type:"button",class:"admin-widget-actions__btn","aria-label":"Настройки",title:"Настройки",onClick:a[0]||(a[0]=r=>n.$emit("configure"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Zt),size:14},null,8,["icon"])]),e.createElementVNode("button",{type:"button",class:"admin-widget-actions__btn admin-widget-actions__btn--danger","aria-label":"Удалить",title:"Удалить",onClick:a[1]||(a[1]=r=>n.$emit("remove"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:14},null,8,["icon"])])]))}}),Ul={key:0,class:"admin-dialog-root",role:"dialog","aria-modal":"true","aria-labelledby":"widget-config-title"},Ml={class:"admin-dialog"},Dl={class:"admin-dialog__hd"},Tl={id:"widget-config-title",class:"admin-dialog__title"},Il={class:"admin-dialog__body"},Fl={key:0,class:"admin-dialog__field"},Al={class:"admin-dialog__type-grid"},Ll=["onClick"],zl={class:"admin-dialog__type-name"},Rl={class:"admin-dialog__type-help"},Pl={key:1,class:"admin-dialog__field"},ql={class:"admin-dialog__readonly"},jl={class:"admin-dialog__field"},Ol={class:"admin-dialog__field"},Wl={key:2,class:"admin-dialog__field"},Hl={class:"admin-dialog__field"},Kl={class:"admin-dialog__field"},Gl={key:4,class:"admin-dialog__field"},Xl={class:"admin-dialog__field"},Yl={class:"admin-dialog__field"},Zl={class:"admin-dialog__field"},Jl={class:"admin-dialog__field"},Ql={class:"admin-dialog__ft"},er=e.defineComponent({__name:"WidgetConfigDialog",props:{open:{type:Boolean},mode:{default:"add"},item:{default:null},initialTitle:{default:""}},emits:["close","add","save"],setup(t,{emit:n}){const a=t,r=n,o=e.computed(()=>vn()),l=e.ref(""),i=e.ref(""),s=e.ref("6"),u=e.ref(`# Новая заметка
|
|
2
2
|
|
|
3
|
-
Текст…`),f=e.ref("LABEL"),p=e.ref("0"),g=e.ref("50"),d=e.ref("Янв, Фев, Мар, Апр"),N=e.ref("10, 20, 15, 30"),h=e.ref(""),k=e.ref("5");e.watch(()=>a.open,v=>{if(v)if(a.mode==="configure"&&a.item){const y=a.item.config??{};o.value=a.item.type??"",i.value=y.title??a.initialTitle,s.value=String(a.item.size??6),u.value=y.content??u.value;const _=y.stats?.[0];_&&(f.value=String(_.label??""),p.value=String(_.value??"")),g.value=String(y.value??50);const A=y.labels,z=y.datasets;A&&A.length>0&&(d.value=A.join(", ")),z&&z[0]?.data&&(N.value=z[0].data.join(", ")),h.value=y.resource??"",k.value=String(y.limit??5)}else o.value="",i.value="",s.value="6"});const m=e.computed(()=>o.value!==""&&i.value.trim()!==""),w={stat:"Stat — карточка с числом",stats:"Stats overview — несколько метрик",chart:"Chart — линия / столбцы / донат","bar-chart":"Bar chart — гистограмма","donut-chart":"Donut — кольцевая диаграмма","recent-table":"Recent list — последние записи",recent_list:"Recent list — последние записи","recent-list":"Recent list — последние записи",heatmap:"Heatmap — тепловая карта",gauge:"Gauge — шкала со значением",markdown:"Markdown — заметка / текст"};function B(v){return v==="markdown"?"markdown":v==="stat"||v==="stats"?"stat":v==="gauge"?"gauge":v==="chart"||v==="bar-chart"||v==="donut-chart"?"chart":v==="recent-table"||v==="recent_list"||v==="recent-list"?"recent":null}function x(){const v={title:i.value};switch(B(o.value)){case"markdown":v.content=u.value;break;case"stat":v.stats=[{label:f.value,value:p.value}];break;case"gauge":v.value=Number(g.value)||0,v.min=0,v.max=100;break;case"chart":{const y=d.value.split(",").map(A=>A.trim()).filter(Boolean),_=N.value.split(",").map(A=>Number(A.trim())).filter(A=>!Number.isNaN(A));v.labels=y,v.datasets=[{label:i.value,data:_}],v.type=o.value==="donut-chart"?"doughnut":"bar";break}case"recent":v.resource=h.value,v.limit=Number(k.value)||5;break}return v}function C(){if(!m.value)return;const v=Math.max(1,Math.min(12,Number(s.value)||6)),y=x();if(a.mode==="configure"&&a.item)r("save",{size:v,type:o.value,config:y});else{const _=`custom.${o.value}.${Date.now()}`;r("add",{slug:_,type:o.value,size:v,config:y})}r("close")}function T(){r("close")}return(v,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"admin-dialog"},{default:e.withCtx(()=>[t.open?(e.openBlock(),e.createElementBlock("div",Vl,[e.createElementVNode("div",{class:"admin-dialog-root__backdrop",onClick:T}),e.createElementVNode("div",Nl,[e.createElementVNode("header",xl,[e.createElementVNode("h2",Cl,e.toDisplayString(t.mode==="add"?"Добавить виджет":"Настроить виджет"),1),e.createElementVNode("button",{type:"button",class:"admin-dialog__close","aria-label":"Закрыть",onClick:T},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:16},null,8,["icon"])])]),e.createElementVNode("div",El,[t.mode==="add"?(e.openBlock(),e.createElementBlock("div",$l,[y[10]||(y[10]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип виджета",-1)),e.createElementVNode("div",Sl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,_=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",class:e.normalizeClass(["admin-dialog__type-card",{"admin-dialog__type-card--active":o.value===_}]),onClick:A=>o.value=_},[e.createElementVNode("span",Ml,e.toDisplayString(_),1),e.createElementVNode("span",Tl,e.toDisplayString(w[_]??""),1)],10,Ul))),128))])])):(e.openBlock(),e.createElementBlock("div",Il,[y[11]||(y[11]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип",-1)),e.createElementVNode("div",Dl,e.toDisplayString(o.value||"unknown"),1)])),e.createElementVNode("div",Fl,[y[12]||(y[12]=e.createElementVNode("label",{class:"admin-dialog__label"},"Заголовок",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=_=>i.value=_),placeholder:"Название виджета"},null,8,["modelValue"])]),e.createElementVNode("div",Al,[y[13]||(y[13]=e.createElementVNode("label",{class:"admin-dialog__label"},"Ширина (1..12)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=_=>s.value=_),type:"number"},null,8,["modelValue"])]),B(o.value)==="markdown"?(e.openBlock(),e.createElementBlock("div",Ll,[y[14]||(y[14]=e.createElementVNode("label",{class:"admin-dialog__label"},"Markdown содержимое",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":y[2]||(y[2]=_=>u.value=_),class:"admin-dialog__textarea",rows:"6"},null,512),[[e.vModelText,u.value]])])):B(o.value)==="stat"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",zl,[y[15]||(y[15]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метка",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:f.value,"onUpdate:modelValue":y[3]||(y[3]=_=>f.value=_)},null,8,["modelValue"])]),e.createElementVNode("div",Rl,[y[16]||(y[16]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:p.value,"onUpdate:modelValue":y[4]||(y[4]=_=>p.value=_)},null,8,["modelValue"])])],64)):B(o.value)==="gauge"?(e.openBlock(),e.createElementBlock("div",Pl,[y[17]||(y[17]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение (0..100)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:g.value,"onUpdate:modelValue":y[5]||(y[5]=_=>g.value=_),type:"number"},null,8,["modelValue"])])):B(o.value)==="chart"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createElementVNode("div",ql,[y[18]||(y[18]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метки (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:d.value,"onUpdate:modelValue":y[6]||(y[6]=_=>d.value=_),placeholder:"Янв, Фев, Мар"},null,8,["modelValue"])]),e.createElementVNode("div",jl,[y[19]||(y[19]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значения (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:N.value,"onUpdate:modelValue":y[7]||(y[7]=_=>N.value=_),placeholder:"10, 20, 15"},null,8,["modelValue"])])],64)):B(o.value)==="recent"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[e.createElementVNode("div",Ol,[y[20]||(y[20]=e.createElementVNode("label",{class:"admin-dialog__label"},"Resource slug",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:h.value,"onUpdate:modelValue":y[8]||(y[8]=_=>h.value=_),placeholder:"articles"},null,8,["modelValue"])]),e.createElementVNode("div",Wl,[y[21]||(y[21]=e.createElementVNode("label",{class:"admin-dialog__label"},"Limit",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:k.value,"onUpdate:modelValue":y[9]||(y[9]=_=>k.value=_),type:"number"},null,8,["modelValue"])])],64)):e.createCommentVNode("",!0)]),e.createElementVNode("footer",Hl,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:T},{default:e.withCtx(()=>[...y[22]||(y[22]=[e.createTextVNode("Отмена",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:!m.value,onClick:C},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.mode==="add"?"Добавить":"Сохранить"),1)]),_:1},8,["disabled"])])])])):e.createCommentVNode("",!0)]),_:1})]))}}),Gl={class:"admin-page admin-dashboard"},Xl={class:"admin-page__hd"},Zl={class:"admin-page__title-wrap"},Yl={class:"admin-page__title"},Jl={key:0,class:"admin-page__count"},Ql={class:"admin-page__actions"},er=["draggable","onDragstart","onDrop"],tr=["onMousedown"],ft=e.defineComponent({__name:"DashboardPage",props:{slug:{default:void 0},widgets:{default:void 0},title:{default:void 0},subtitle:{default:void 0}},emits:["change-period","export"],setup(t,{emit:n}){const a=t,r=n,l=ie(),o=ln(),i=e.computed(()=>!a.slug||!l.manifest?null:l.manifest.dashboards?.find(L=>L.slug===a.slug)??null),s=e.computed(()=>a.widgets?a.widgets:h.value!==null?h.value:i.value?.widgets??[]),u=e.computed(()=>a.title??i.value?.label??"Dashboard"),f=e.computed(()=>a.subtitle??i.value?.description??null),p=e.computed(()=>{const F=new Map;for(const R of s.value){const O=String(R.slug??"");O&&F.set(O,R)}const L=o.draft,q=[];if(L.length>0){for(const R of L){if(R.hidden)continue;let O=null;if(F.has(R.slug)){const te=F.get(R.slug);O={...te,size:R.size??te.size??12},F.delete(R.slug)}else if(R.type){const te=R.config??{};O={slug:R.slug,type:R.type,title:te.title??"",size:R.size??6,data:te}}O&&q.push({node:O,layoutSlug:R.slug})}for(const[R,O]of F.entries())q.push({node:O,layoutSlug:R})}else for(const R of s.value)q.push({node:R,layoutSlug:String(R.slug??"")});return q});function g(F){const L=F.size??F.span;return Math.max(1,Math.min(12,typeof L=="number"?L:12))}const d=[{key:"7d",label:"За 7 дней"},{key:"30d",label:"За 30 дней"},{key:"90d",label:"За 90 дней"},{key:"all",label:"Всё время"}],N=e.ref("30d"),h=e.ref(null);async function k(F,L){N.value=F,r("change-period",F),await m()}async function m(){if(a.slug)try{const{getAdminClient:F}=await Promise.resolve().then(()=>Q),q=await F().get(`/dashboard/widgets?key=${encodeURIComponent(a.slug)}&period=${encodeURIComponent(N.value)}`);h.value=q.widgets}catch{}}const w=e.computed(()=>d.find(F=>F.key===N.value)?.label??"Период"),B=e.ref(null),x=e.ref(null),C=e.ref("");function T(){B.value="add",x.value=null,C.value=""}function v(){B.value=null}function y(){o.enterEditMode()}function _(){o.cancelEdit()}async function A(){await o.saveLayout().catch(()=>{})}function z(F){o.draft.some(q=>q.slug===F)?o.removeWidget(F):o.addWidget({slug:F,hidden:!0})}function W(F){D();const L=o.draft.find(O=>O.slug===F)??null,R=p.value.find(O=>O.layoutSlug===F)?.node;x.value=L??{slug:F,type:R?.type??"",size:R?.size??6,config:{}},C.value=R?.title??"",B.value="configure"}function H(F){o.addWidget(F)}function ee(F){if(!x.value)return;const L=x.value.slug;if(o.draft.some(R=>R.slug===L)){const R=o.draft.find(O=>O.slug===L);o.updateWidget(L,{...F,config:{...R?.config??{},...F.config??{}}})}else o.addWidget({slug:L,type:x.value.type,...F})}const J=e.ref(null);function M(F,L){if(!o.editMode||L.dataTransfer===null)return;if(!L.target?.closest('[data-drag-handle="true"]')){L.preventDefault();return}J.value=F,L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("text/plain",String(F))}function S(F){o.editMode&&J.value!==null&&F.preventDefault()}function V(F,L){if(L.preventDefault(),!o.editMode||J.value===null)return;const q=J.value;D(),o.moveWidget(q,F),J.value=null}function D(){if(o.draft.length===p.value.length)return;const F=p.value.map(({node:L,layoutSlug:q},R)=>{const O=o.draft.find(te=>te.slug===q);return{slug:q,size:g(L),position:R,hidden:O?.hidden??!1,type:O?.type??L.type,config:O?.config}});o.draft=F}const K=e.ref(null);let X=0;function re(F,L,q){if(!o.editMode)return;F.preventDefault(),F.stopPropagation(),D(),K.value={slug:L,startX:F.clientX,startSpan:q},X=F.target.closest(".admin-dashboard__grid")?.getBoundingClientRect().width??1200,window.addEventListener("mousemove",fe),window.addEventListener("mouseup",ce)}function fe(F){if(!K.value)return;const L=X/12,q=Math.round((F.clientX-K.value.startX)/L),R=Math.max(1,Math.min(12,K.value.startSpan+q)),O=o.draft.find(te=>te.slug===K.value.slug);O&&O.size!==R&&o.updateWidget(K.value.slug,{size:R})}function ce(){K.value=null,window.removeEventListener("mousemove",fe),window.removeEventListener("mouseup",ce)}function Be(){r("export")}return(F,L)=>(e.openBlock(),e.createElementBlock("section",Gl,[e.createElementVNode("header",Xl,[e.createElementVNode("div",Zl,[e.createElementVNode("h1",Yl,e.toDisplayString(u.value),1),f.value?(e.openBlock(),e.createElementBlock("div",Jl,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ql,[e.renderSlot(F.$slots,"actions"),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md"},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Lt),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(zt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(w.value)+" ",1)]),_:1})]),default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(d,q=>e.createVNode(e.unref(c.UidMenuItem),{key:q.key,onClick:R=>k(q.key)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(q.label),1)]),_:2},1032,["onClick"])),64))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:Be},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Rt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[0]||(L[0]=e.createTextVNode(" Export ",-1))]),_:1}),e.unref(o).editMode?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:T},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Pe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[2]||(L[2]=e.createTextVNode(" Add widget ",-1))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md",onClick:_},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ot),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[3]||(L[3]=e.createTextVNode(" Отмена ",-1))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",size:"md",loading:e.unref(o).saving,disabled:e.unref(o).saving,onClick:A},{default:e.withCtx(()=>[...L[4]||(L[4]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])],64)):(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"secondary",size:"md",onClick:y},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(at),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[1]||(L[1]=e.createTextVNode(" Редактировать ",-1))]),_:1}))])]),e.createElementVNode("div",{class:e.normalizeClass(["admin-dashboard__grid",{"admin-dashboard__grid--editing":e.unref(o).editMode}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(q,R)=>(e.openBlock(),e.createElementBlock("div",{key:q.layoutSlug,class:e.normalizeClass(["admin-dashboard__cell",{"admin-dashboard__cell--editing":e.unref(o).editMode}]),draggable:e.unref(o).editMode,style:e.normalizeStyle({gridColumn:`span ${g(q.node)} / span ${g(q.node)}`}),onDragstart:O=>M(R,O),onDragover:S,onDrop:O=>V(R,O)},[e.createVNode(dn,{node:q.node},null,8,["node"]),e.unref(o).editMode?(e.openBlock(),e.createBlock(Bl,{key:0,onConfigure:O=>W(q.layoutSlug),onRemove:O=>z(q.layoutSlug)},null,8,["onConfigure","onRemove"])):e.createCommentVNode("",!0),e.unref(o).editMode?(e.openBlock(),e.createElementBlock("span",{key:1,class:"admin-dashboard__resize","aria-label":"Изменить размер",onMousedown:O=>re(O,q.layoutSlug,g(q.node))},null,40,tr)):e.createCommentVNode("",!0)],46,er))),128))],2),e.createVNode(Kl,{open:B.value!==null,mode:B.value??"add",item:x.value,"initial-title":C.value,onClose:v,onAdd:H,onSave:ee},null,8,["open","mode","item","initial-title"])]))}}),nr={key:1,class:"admin-home"},ar={class:"admin-home__title"},or={key:0,class:"admin-home__resources"},lr={class:"admin-home__grid"},rr=["onClick"],ir={class:"admin-home__card-label"},sr={class:"admin-home__card-slug"},un=e.defineComponent({__name:"HomePage",setup(t){const n=ie(),a=oe(),r=Z.useRouter(),l=e.computed(()=>a.user?.name??""),o=e.computed(()=>n.manifest?.resources??[]),i=e.computed(()=>n.manifest?.dashboards??[]),s=e.computed(()=>i.value[0]?.slug??null),u=ln();return e.watch(s,f=>{f&&u.openDashboard(f)},{immediate:!0}),(f,p)=>s.value?(e.openBlock(),e.createBlock(ft,{key:0,slug:s.value},null,8,["slug"])):(e.openBlock(),e.createElementBlock("div",nr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-home__hero"},{default:e.withCtx(()=>[e.createElementVNode("h1",ar,"Добро пожаловать"+e.toDisplayString(l.value?", "+l.value:""),1),p[0]||(p[0]=e.createElementVNode("p",{class:"admin-home__lead"}," Админ-панель готова. Зарегистрируйте DashboardScreen чтобы увидеть widget-grid здесь, либо переходите к ресурсам ниже. ",-1))]),_:1}),o.value.length?(e.openBlock(),e.createElementBlock("section",or,[p[1]||(p[1]=e.createElementVNode("h2",{class:"admin-home__heading"},"Ресурсы",-1)),e.createElementVNode("ul",lr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,g=>(e.openBlock(),e.createElementBlock("li",{key:g.slug},[e.createElementVNode("button",{type:"button",class:"admin-home__card",onClick:d=>e.unref(r).push({name:`admin.resource.${g.slug}.index`})},[e.createElementVNode("span",ir,e.toDisplayString(g.label),1),e.createElementVNode("span",sr,e.toDisplayString(g.slug),1)],8,rr)]))),128))])])):e.createCommentVNode("",!0)]))}}),cr={class:"admin-status-page"},mn=e.defineComponent({__name:"ForbiddenPage",setup(t){const n=Z.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",cr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[r[2]||(r[2]=e.createElementVNode("h1",{class:"admin-status-page__code"},"403",-1)),r[3]||(r[3]=e.createElementVNode("p",{class:"admin-status-page__message"},"Доступ запрещён.",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:r[0]||(r[0]=l=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),dr={class:"admin-status-page"},fn=e.defineComponent({__name:"NotFoundPage",setup(t){const n=Z.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",dr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[r[2]||(r[2]=e.createElementVNode("h1",{class:"admin-status-page__code"},"404",-1)),r[3]||(r[3]=e.createElementVNode("p",{class:"admin-status-page__message"},"Страница не найдена.",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:r[0]||(r[0]=l=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),ur={class:"admin-settings-page"},mr={class:"admin-settings-page__title"},fr={key:0,class:"admin-settings-page__hint"},pr={key:1,class:"admin-settings-page__debug"},pn=e.defineComponent({__name:"SettingsPage",setup(t){const n=Z.useRoute(),a=ie(),r=e.computed(()=>String(n.params.slug??"")),l=e.computed(()=>a.manifest?.settings?.find(o=>o.slug===r.value)??null);return(o,i)=>(e.openBlock(),e.createElementBlock("div",ur,[e.createVNode(e.unref(c.UidCard),{padding:"lg"},{default:e.withCtx(()=>[e.createElementVNode("h1",mr,e.toDisplayString(l.value?.label??r.value),1),l.value?(e.openBlock(),e.createElementBlock("pre",pr,e.toDisplayString(JSON.stringify(l.value.fields,null,2)),1)):(e.openBlock(),e.createElementBlock("p",fr," Settings «"+e.toDisplayString(r.value)+"» не найдено в manifest'е. ",1))]),_:1})]))}}),vr={class:"admin-status-page"},hr={class:"admin-status-page__title"},yr={class:"admin-status-page__hint"},vn=e.defineComponent({__name:"UnknownScreenPage",setup(t){const n=Z.useRoute(),a=e.computed(()=>String(n.params.slug??"")),r=e.computed(()=>String(n.meta?.title??a.value));return(l,o)=>(e.openBlock(),e.createElementBlock("div",vr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[e.createElementVNode("h1",hr,e.toDisplayString(r.value),1),e.createElementVNode("p",yr,[e.createTextVNode(" Это заглушка для screen «"+e.toDisplayString(a.value)+"». Передайте свой компонент через ",1),o[0]||(o[0]=e.createElementVNode("code",null,"createAdminApp("+e.toDisplayString("{")+" pages: "+e.toDisplayString("{")+" screen: MyScreen "+e.toDisplayString("}")+" "+e.toDisplayString("}")+")",-1)),o[1]||(o[1]=e.createTextVNode(". ",-1))])]),_:1})]))}}),gr={class:"admin-auth-card__row"},kr=["href"],_r={key:1,style:{"text-align":"center","font-size":"var(--uid-font-size-xs)",color:"var(--uid-text-secondary)","padding-top":"4px"}},br=["href"],hn=e.defineComponent({__name:"LoginForm",props:{forgotUrl:{default:null},ssoLinkLabel:{default:null},ssoUrl:{default:null}},emits:["success"],setup(t,{emit:n}){const a=n,r=oe(),l=e.ref(""),o=e.ref(""),i=e.ref(!1),s=e.ref(!1),u=e.ref(null),f=e.ref({}),p=e.computed(()=>f.value.email?.[0]),g=e.computed(()=>f.value.password?.[0]);async function d(){if(!s.value){s.value=!0,u.value=null,f.value={};try{const N=await r.login({email:l.value,password:o.value,remember:i.value});a("success",N)}catch(N){N instanceof $e?(f.value=N.fields,u.value=N.firstFieldMessage()):N instanceof Se?u.value="Нет соединения с сервером":N instanceof se?u.value=N.message||"Не удалось войти":u.value=N.message}finally{s.value=!1}}}return(N,h)=>(e.openBlock(),e.createElementBlock("form",{class:"admin-auth-card__bd",novalidate:"",onSubmit:e.withModifiers(d,["prevent"])},[u.value?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-auth-card__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidInput),{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=k=>l.value=k),type:"email",label:"Email",placeholder:"you@company.com",autocomplete:"username",required:!0,disabled:s.value,error:p.value,name:"email"},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(c.UidInput),{modelValue:o.value,"onUpdate:modelValue":h[1]||(h[1]=k=>o.value=k),type:"password",label:"Пароль",autocomplete:"current-password",required:!0,disabled:s.value,error:g.value,name:"password"},null,8,["modelValue","disabled","error"]),e.createElementVNode("div",gr,[e.createVNode(e.unref(c.UidCheckbox),{modelValue:i.value,"onUpdate:modelValue":h[2]||(h[2]=k=>i.value=k),disabled:s.value},{default:e.withCtx(()=>[...h[3]||(h[3]=[e.createTextVNode(" Запомнить меня ",-1)])]),_:1},8,["modelValue","disabled"]),t.forgotUrl?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.forgotUrl,class:"admin-auth-card__link"}," Забыли пароль? ",8,kr)):e.createCommentVNode("",!0)]),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",size:"lg",loading:s.value,disabled:s.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value?"Вход…":"Войти"),1)]),_:1},8,["loading","disabled"]),t.ssoLinkLabel&&t.ssoUrl?(e.openBlock(),e.createElementBlock("div",_r,[h[4]||(h[4]=e.createTextVNode(" или войдите через ",-1)),e.createElementVNode("a",{href:t.ssoUrl,class:"admin-auth-card__link"},e.toDisplayString(t.ssoLinkLabel),9,br)])):e.createCommentVNode("",!0)],32))}}),wr=["value","disabled","aria-label","onInput","onKeydown"],Br={class:"admin-auth-card__row"},yn=e.defineComponent({__name:"TwoFactorForm",emits:["success","cancel"],setup(t,{emit:n}){const a=n,r=oe(),l=e.ref("totp"),o=e.ref(["","","","","",""]),i=e.ref(""),s=e.ref([]),u=e.ref(!1),f=e.ref(null),p=e.ref(null),g=e.computed(()=>o.value.join("")),d=e.computed(()=>l.value==="totp"?g.value.length===6:i.value.trim().length>0);function N(C,T){T instanceof HTMLInputElement&&(s.value[C]=T)}function h(C,T){const v=T.target,y=v.value.replace(/\D/g,"").slice(-1);o.value[C]=y,v.value=y,y&&C<o.value.length-1&&e.nextTick(()=>s.value[C+1]?.focus()),g.value.length===o.value.length&&w()}function k(C,T){T.key==="Backspace"&&!o.value[C]&&C>0?e.nextTick(()=>s.value[C-1]?.focus()):T.key==="ArrowLeft"&&C>0?(s.value[C-1]?.focus(),T.preventDefault()):T.key==="ArrowRight"&&C<o.value.length-1&&(s.value[C+1]?.focus(),T.preventDefault())}function m(C){const v=(C.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,o.value.length);if(v.length!==0){C.preventDefault();for(let y=0;y<o.value.length;y++)o.value[y]=v[y]??"";e.nextTick(()=>{s.value[Math.min(v.length,o.value.length-1)]?.focus(),v.length===o.value.length&&w()})}}async function w(){if(!(u.value||!d.value)){u.value=!0,f.value=null;try{if(l.value==="totp")await r.twoFactorChallenge(g.value);else{const C=await r.twoFactorRecovery(i.value.trim());p.value=C.remaining}a("success")}catch(C){C instanceof $e?f.value=C.firstFieldMessage()??"Неверный код":C instanceof Se?f.value="Нет соединения с сервером":C instanceof se?f.value=C.message||"Не удалось проверить код":f.value=C.message}finally{u.value=!1}}}function B(){r.cancelChallenge(),a("cancel")}function x(){l.value=l.value==="totp"?"recovery":"totp",f.value=null}return(C,T)=>(e.openBlock(),e.createElementBlock("form",{class:"admin-auth-card__bd",novalidate:"",onSubmit:e.withModifiers(w,["prevent"])},[f.value?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-auth-card__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),_:1})):e.createCommentVNode("",!0),p.value!==null?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:1,variant:"info",class:"admin-auth-card__alert",role:"status"},{default:e.withCtx(()=>[e.createTextVNode(" Использован recovery-код. Осталось: "+e.toDisplayString(p.value),1)]),_:1})):e.createCommentVNode("",!0),l.value==="totp"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"admin-code-input",onPaste:m},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(v,y)=>(e.openBlock(),e.createElementBlock("input",{key:y,ref_for:!0,ref:_=>N(y,_),value:o.value[y],type:"text",inputmode:"numeric",autocomplete:"one-time-code",maxlength:"1",disabled:u.value,"aria-label":`Цифра ${y+1}`,onInput:_=>h(y,_),onKeydown:_=>k(y,_)},null,40,wr))),128))],32)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:3,modelValue:i.value,"onUpdate:modelValue":T[0]||(T[0]=v=>i.value=v),type:"text",label:"Recovery-код",autocomplete:"one-time-code",disabled:u.value,name:"recovery-code"},null,8,["modelValue","disabled"])),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",size:"lg",loading:u.value,disabled:u.value||!d.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value?"Проверка…":"Подтвердить"),1)]),_:1},8,["loading","disabled"]),e.createElementVNode("div",Br,[e.createElementVNode("button",{type:"button",class:"admin-auth-card__link",onClick:x},[l.value==="totp"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("Использовать recovery-код")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Вернуться к коду из приложения")],64))]),e.createElementVNode("button",{type:"button",class:"admin-auth-card__link",onClick:B}," Отмена ")])],32))}}),Vr={class:"admin-auth-page"},Nr={key:0,class:"admin-auth-page__corner"},xr={class:"admin-auth-card__hd"},Cr=["src","alt"],Er={key:1,"aria-hidden":"true"},$r={key:2},Sr={class:"admin-auth-card__title"},Ur={class:"admin-auth-card__sub"},gn=e.defineComponent({__name:"LoginPage",props:{brandName:{default:"Laravel Admin"},brandMark:{default:null},brandLogo:{default:null},homeRouteName:{default:"admin.home"},redirectQueryKey:{default:"redirect"},forgotUrl:{default:null},ssoLinkLabel:{default:null},ssoUrl:{default:null},showCornerActions:{type:Boolean,default:!0}},setup(t){const n=t,a=oe(),r=Z.useRouter(),l=Z.useRoute();async function o(){const i=l.query[n.redirectQueryKey];if(typeof i=="string"&&i.length>0&&i.startsWith("/")){await r.push(i);return}await r.push({name:n.homeRouteName})}return e.watch(()=>a.isAuthenticated,i=>{i&&o()}),e.onMounted(()=>{a.isAuthenticated&&o()}),(i,s)=>(e.openBlock(),e.createElementBlock("div",Vr,[t.showCornerActions?(e.openBlock(),e.createElementBlock("div",Nr,[e.createVNode(it),e.createVNode(st)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidCard),{class:e.normalizeClass(["admin-auth-card",e.unref(a).isChallengePending?"admin-auth-card--wide":""]),padding:"none"},{default:e.withCtx(()=>[e.createElementVNode("div",xr,[e.createElementVNode("div",{class:e.normalizeClass(["admin-auth-card__logo",e.unref(a).isChallengePending?"admin-auth-card__logo--accent":""])},[t.brandLogo&&!e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.brandLogo,alt:t.brandName},null,8,Cr)):e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock("span",Er,"🛡")):t.brandMark?(e.openBlock(),e.createElementBlock("span",$r,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(je,{key:3,size:40}))],2),e.createElementVNode("div",Sr,[e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("Двухфакторная проверка")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.brandName),1)],64))]),e.createElementVNode("div",Ur,[e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" Введите 6-значный код из приложения-аутентификатора ")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Войдите, чтобы продолжить работу")],64))])]),e.unref(a).isChallengePending?(e.openBlock(),e.createBlock(yn,{key:0,onSuccess:s[0]||(s[0]=()=>{}),onCancel:s[1]||(s[1]=()=>{})})):(e.openBlock(),e.createBlock(hn,{key:1,"forgot-url":t.forgotUrl,"sso-link-label":t.ssoLinkLabel,"sso-url":t.ssoUrl,onSuccess:s[2]||(s[2]=()=>{})},null,8,["forgot-url","sso-link-label","sso-url"]))]),_:1},8,["class"])]))}}),Mr={class:"admin-auth-page"},Tr={class:"admin-auth-card__hd"},Ir={class:"admin-auth-card__logo"},Dr={class:"admin-auth-card__sub"},Fr={class:"admin-auth-card__body"},Ar=e.defineComponent({__name:"ForgotPasswordPage",props:{brandName:{default:"Laravel Admin"},loginRouteName:{default:"admin.login"}},setup(t){const n=Z.useRouter(),a=e.ref(""),r=e.ref(!1),l=e.ref(!1);async function o(){if(a.value.trim()===""){Y.error("Введите email.");return}l.value=!0;try{const{getAdminClient:i}=await Promise.resolve().then(()=>Q);await i().post("/auth/forgotPassword",{email:a.value.trim()}),r.value=!0}catch{r.value=!0}finally{l.value=!1}}return(i,s)=>(e.openBlock(),e.createElementBlock("div",Mr,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Tr,[e.createElementVNode("div",Ir,[e.createVNode(je,{size:40})]),s[2]||(s[2]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Восстановление пароля",-1)),e.createElementVNode("div",Dr,e.toDisplayString(r.value?"Если такой email зарегистрирован — мы отправили письмо со ссылкой на сброс.":"Введите email — отправим ссылку для сброса пароля."),1)]),e.createElementVNode("div",Fr,[r.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("form",{key:0,onSubmit:e.withModifiers(o,["prevent"])},[e.createVNode(e.unref(c.UidInput),{modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=u=>a.value=u),type:"email",placeholder:"you@example.com",autocomplete:"email",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",class:"admin-auth-card__submit",loading:l.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(jt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[s[3]||(s[3]=e.createTextVNode(" Отправить ссылку ",-1))]),_:1},8,["loading"])],32)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",class:"admin-auth-card__back",onClick:s[1]||(s[1]=u=>e.unref(n).push({name:t.loginRouteName}))},{default:e.withCtx(()=>[...s[4]||(s[4]=[e.createTextVNode(" ← Назад ко входу ",-1)])]),_:1})])]),_:1})]))}}),Lr={class:"admin-auth-page"},zr={class:"admin-auth-card__hd"},Rr={class:"admin-auth-card__logo"},Pr={class:"admin-auth-card__body"},qr={key:0,class:"admin-auth-card__error"},jr=e.defineComponent({__name:"ResetPasswordPage",props:{loginRouteName:{default:"admin.login"}},setup(t){const n=t,a=Z.useRouter(),r=Z.useRoute(),l=e.computed(()=>String(r.query.token??"")),o=e.ref(String(r.query.email??"")),i=e.ref(""),s=e.ref(""),u=e.ref(!1),f=e.ref("");async function p(){if(f.value="",i.value.length<8){f.value="Пароль должен быть не менее 8 символов.";return}if(i.value!==s.value){f.value="Пароли не совпадают.";return}u.value=!0;try{const{getAdminClient:g}=await Promise.resolve().then(()=>Q);await g().post("/auth/resetPassword",{token:l.value,email:o.value,password:i.value,password_confirmation:s.value}),Y.success("Пароль обновлён. Войдите с новым паролем."),await a.push({name:n.loginRouteName})}catch{f.value="Не удалось сбросить пароль. Возможно, ссылка устарела."}finally{u.value=!1}}return(g,d)=>(e.openBlock(),e.createElementBlock("div",Lr,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",zr,[e.createElementVNode("div",Rr,[e.createVNode(je,{size:40})]),d[3]||(d[3]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Новый пароль",-1)),d[4]||(d[4]=e.createElementVNode("div",{class:"admin-auth-card__sub"},"Задайте новый пароль для своего аккаунта.",-1))]),e.createElementVNode("div",Pr,[e.createElementVNode("form",{onSubmit:e.withModifiers(p,["prevent"])},[e.createVNode(e.unref(c.UidInput),{modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=N=>o.value=N),type:"email",placeholder:"email",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:i.value,"onUpdate:modelValue":d[1]||(d[1]=N=>i.value=N),type:"password",placeholder:"Новый пароль (мин. 8)",autocomplete:"new-password",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":d[2]||(d[2]=N=>s.value=N),type:"password",placeholder:"Повторите пароль",autocomplete:"new-password",required:""},null,8,["modelValue"]),f.value?(e.openBlock(),e.createElementBlock("p",qr,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",class:"admin-auth-card__submit",loading:u.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ze),size:14},null,8,["icon"])]),default:e.withCtx(()=>[d[5]||(d[5]=e.createTextVNode(" Сохранить пароль ",-1))]),_:1},8,["loading"])],32)])]),_:1})]))}}),Ut={page:1,per_page:20,total:0,last_page:1},pt=le.defineStore("admin-resource-index",()=>{const t=e.ref(null),n=e.ref([]),a=e.ref({...Ut}),r=e.ref(!1),l=e.ref(!1),o=e.ref(null);let i=null;const s=200,u=e.ref(""),f=e.ref({}),p=e.ref(null),g=e.ref(null),d=e.ref(new Set),N=e.computed(()=>!r.value&&o.value===null&&n.value.length===0),h=e.computed(()=>d.value.size),k=e.computed(()=>d.value.size>0),m=e.computed(()=>o.value!==null),w=e.computed(()=>d.value.size===0||n.value.length===0?"none":n.value.every(D=>d.value.has(B(D)))?"all":"mixed");function B(V){return V.id??V.key??""}function x(V){t.value!==V&&(t.value=V,C(),r.value=!0)}function C(){n.value=[],a.value={...Ut},r.value=!1,o.value=null,u.value="",f.value={},p.value=null,g.value=null,d.value=new Set}function T(V={}){const D={page:V.page??a.value.page,per_page:V.per_page??a.value.per_page},K=V.search??u.value;K&&(D.q=K);const X=V.sort??p.value,re=V.direction??g.value;X&&re!==null&&(D.order=[{column:X,direction:re}]);const fe=V.filters??f.value,ce={};for(const[Be,F]of Object.entries(fe))F==null||F===""||(ce[Be]=Array.isArray(F)?F.join(","):F);return Object.keys(ce).length>0&&(D.filters=ce),D}async function v(V={}){if(!t.value)throw new Error("useResourceIndexStore.load() called before setSlug()");r.value=!0,o.value=null,i!==null&&clearTimeout(i),i=setTimeout(()=>{l.value=!0},s);try{const D=G(),K=T(V),X=await D.post(`/${t.value}/search`,K);n.value=X.data,a.value=X.meta}catch(D){throw o.value=D instanceof Error?D:new Error(String(D)),D}finally{r.value=!1,l.value=!1,i!==null&&(clearTimeout(i),i=null)}}async function y(V){u.value=V,a.value.page=1,await v()}async function _(V,D){D==null||D===""?delete f.value[V]:f.value[V]=D,a.value.page=1,await v()}async function A(){f.value={},a.value.page=1,await v()}async function z(V,D="asc"){p.value=V,g.value=D,await v()}async function W(V){p.value===V?g.value==="asc"?g.value="desc":g.value==="desc"?(p.value=null,g.value=null):g.value="asc":(p.value=V,g.value="asc"),await v()}async function H(V){a.value.page=V,await v()}function ee(V){const D=new Set(d.value);D.has(V)?D.delete(V):D.add(V),d.value=D}function J(){if(w.value==="all"){d.value=new Set;return}const V=new Set(d.value);for(const D of n.value)V.add(B(D));d.value=V}function M(){d.value=new Set}function S(V){return d.value.has(V)}return{slug:t,items:n,meta:a,loading:r,slowLoading:l,error:o,search:u,filters:f,sortKey:p,sortDirection:g,selection:d,isEmpty:N,hasError:m,hasSelection:k,selectedCount:h,selectionState:w,setSlug:x,reset:C,load:v,setSearch:y,setFilter:_,clearFilters:A,setSort:z,toggleSort:W,setPage:H,toggleRow:ee,toggleAllOnPage:J,clearSelection:M,isSelected:S,rowId:B}}),Or=Object.freeze(Object.defineProperty({__proto__:null,useResourceIndexStore:pt},Symbol.toStringTag,{value:"Module"})),Mt="d.m.Y H:i:s",Wr="d.m.Y",Hr=/^\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/;function kn(t,n,a={}){if(t==null)return"";if(!n&&typeof t=="string"&&Hr.test(t))return Ke(t,Mt);switch(n){case"date":return Ke(String(t),a.format??Wr);case"datetime":return Ke(String(t),a.format??Mt);case"money":return Kr(t,a.currency??"RUB",a.decimals??2);case"boolean":return Gr(t,a.trueLabel??"Да",a.falseLabel??"Нет");case"bytes":return Xr(t);default:return String(t)}}function Ke(t,n){const a=new Date(t);if(isNaN(a.getTime()))return t;const r=(i,s=2)=>String(i).padStart(s,"0"),l={d:r(a.getDate()),m:r(a.getMonth()+1),Y:String(a.getFullYear()),y:r(a.getFullYear()%100),H:r(a.getHours()),h:r((a.getHours()+11)%12+1),i:r(a.getMinutes()),s:r(a.getSeconds()),U:String(Math.floor(a.getTime()/1e3)),c:a.toISOString(),N:String((a.getDay()+6)%7+1),w:String(a.getDay())};let o="";for(let i=0;i<n.length;i++){const s=n[i];if(s==="\\"&&i+1<n.length){o+=n[i+1],i++;continue}o+=l[s]??s}return o}function Kr(t,n,a){const r=typeof t=="number"?t:Number(t);return isNaN(r)?String(t):`${r.toFixed(a)} ${n}`}function Gr(t,n,a){return t===!0||t===1||t==="1"||t==="true"?n:a}function Xr(t){const n=typeof t=="number"?t:Number(t);return isNaN(n)?String(t):n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(1)} KB`:n<1024*1024*1024?`${(n/1024/1024).toFixed(1)} MB`:`${(n/1024/1024/1024).toFixed(1)} GB`}const Tt=e.defineComponent({name:"FilterEditor",props:{filter:{type:Object,required:!0},draft:{type:null,required:!1,default:null},isChecked:{type:Function,required:!0}},emits:["toggle-option","set-draft"],setup(t,{emit:n}){return()=>{const a=t.filter;if(a.type==="options"&&a.options&&a.options.length>0)return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--options"},a.options.map(r=>e.h("label",{key:String(r.value),class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:a.multiple?"checkbox":"radio",checked:t.isChecked(r.value),onChange:()=>n("toggle-option",r.value)}),e.h("span",null,r.label)])));if(a.type==="date_range"){const r=t.draft??{};return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--dates"},[e.h("input",{type:"date",value:r.from??"",class:"admin-toolbar__input",placeholder:"От",onChange:l=>n("set-draft",{...r,from:l.target.value})}),e.h("input",{type:"date",value:r.to??"",class:"admin-toolbar__input",placeholder:"До",onChange:l=>n("set-draft",{...r,to:l.target.value})})])}if(a.type==="trashed"){const r=[{value:"without",label:"Без удалённых"},{value:"with",label:"С удалёнными"},{value:"only",label:"Только удалённые"}];return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--options"},r.map(l=>e.h("label",{key:l.value,class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===l.value,onChange:()=>n("set-draft",l.value)}),e.h("span",null,l.label)])))}return a.type==="switcher"?e.h("div",{class:"admin-toolbar__editor"},[e.h("label",{class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===!0,onChange:()=>n("set-draft",!0)}),e.h("span",null,"Да")]),e.h("label",{class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===!1,onChange:()=>n("set-draft",!1)}),e.h("span",null,"Нет")])]):e.h("input",{type:"text",value:t.draft??"",class:"admin-toolbar__input",placeholder:a.placeholder??a.label,onChange:r=>n("set-draft",r.target.value)})}}}),Zr={class:"admin-toolbar"},Yr={class:"admin-toolbar__row admin-toolbar__row--filters"},Jr={class:"admin-toolbar__search"},Qr=["placeholder"],ei={key:0,class:"admin-toolbar__divider"},ti={type:"button",class:"admin-toolbar__chip admin-toolbar__chip--active"},ni={class:"admin-toolbar__chip-text"},ai=["onClick","onKeydown"],oi={class:"admin-toolbar__popover-actions"},li={type:"button",class:"admin-toolbar__chip"},ri={class:"admin-toolbar__chip-text"},ii={class:"admin-toolbar__popover-actions"},si={type:"button",class:"admin-toolbar__chip"},ci=["onClick"],di={key:0,class:"admin-toolbar__row admin-toolbar__row--actions"},ui={type:"button",class:"admin-toolbar__chip"},mi={class:"admin-toolbar__chip-text"},fi=["onClick"],pi={type:"button",class:"admin-toolbar__chip"},vi=["checked","onChange"],hi={type:"button",class:"admin-toolbar__chip"},yi={class:"admin-toolbar__popover-actions"},It=4,gi=e.defineComponent({__name:"AdminFilterToolbar",props:{search:{},searchPlaceholder:{default:"Поиск…"},filters:{},values:{},columns:{},groupBy:{default:null},columnVisibility:{default:()=>({})},enableSavedViews:{type:Boolean,default:!0}},emits:["update:search","apply-filter","reset","group-by","columns-visibility","save-view"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(a.search);e.watch(()=>a.search,M=>{l.value=M});function o(){l.value!==a.search&&r("update:search",l.value)}function i(M){return M==null||M===""||Array.isArray(M)&&M.length===0?!1:typeof M=="object"&&!Array.isArray(M)?Object.values(M).some(V=>V!==null&&V!==""&&V!==void 0):!0}const s=e.computed(()=>a.filters.filter(M=>i(a.values[M.name]))),u=e.computed(()=>a.filters.filter(M=>!i(a.values[M.name]))),f=e.ref(new Set),p=e.computed(()=>u.value.filter((M,S)=>f.value.has(M.name)||S<It)),g=e.computed(()=>u.value.filter((M,S)=>!f.value.has(M.name)&&S>=It));function d(M){const S=new Set(f.value);S.add(M),f.value=S}const N=e.computed(()=>a.search!==""||s.value.length>0);function h(M){r("apply-filter",M,null)}function k(M){const S=a.values[M.name];if(M.options&&M.options.length>0){const D=(Array.isArray(S)?S:[S]).map(K=>M.options?.find(X=>String(X.value)===String(K))?.label??String(K));return`${M.label}: ${D.join(", ")}`}if(M.type==="date_range"&&S&&typeof S=="object"){const V=S;return`${M.label}: ${V.from??""} – ${V.to??""}`}return M.type==="switcher"?`${M.label}: ${S?"да":"нет"}`:`${M.label}: ${String(S)}`}const m=e.ref({});function w(M){return M in m.value||(m.value[M]=a.values[M]??null),m.value[M]}function B(M,S){m.value={...m.value,[M]:S}}function x(M,S){r("apply-filter",M,m.value[M]??null),S()}function C(M,S,V){if(!V){B(M,S);return}const D=w(M),K=Array.isArray(D)?[...D]:[],X=K.findIndex(re=>String(re)===String(S));X>=0?K.splice(X,1):K.push(S),B(M,K)}function T(M,S){const V=w(M);return Array.isArray(V)?V.some(D=>String(D)===String(S)):V!=null&&String(V)===String(S)}const v=e.computed(()=>a.columns.filter(M=>M.groupable===!0&&(M.key??M.name)));function y(M,S){r("group-by",M),S()}function _(M){return String(M.key??M.name??"")}function A(M){return String(M.label??M.name??M.key??"")}function z(M){const S=_(M);return S in a.columnVisibility?a.columnVisibility[S]:!0}function W(M){const S=_(M);r("columns-visibility",{...a.columnVisibility,[S]:!z(M)})}const H=e.ref("");function ee(M){H.value.trim()!==""&&(r("save-view",H.value.trim()),H.value="",M())}function J(M){return tn(M)??null}return(M,S)=>(e.openBlock(),e.createElementBlock("div",Zr,[e.createElementVNode("div",Yr,[e.createElementVNode("label",Jr,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(lt),size:14,class:"admin-toolbar__search-icon"},null,8,["icon"]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=V=>l.value=V),type:"search",placeholder:t.searchPlaceholder,class:"admin-toolbar__search-input",onKeydown:e.withKeys(o,["enter"]),onBlur:o},null,40,Qr),[[e.vModelText,l.value]])]),t.filters.length>0?(e.openBlock(),e.createElementBlock("span",ei)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,V=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:`active-${V.name}`},{trigger:e.withCtx(()=>[e.createElementVNode("button",ti,[J(V.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(V.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",ni,e.toDisplayString(k(V)),1),e.createElementVNode("span",{role:"button",tabindex:"0","aria-label":"Сбросить фильтр",class:"admin-toolbar__chip-x",onClick:e.withModifiers(D=>h(V.name),["stop"]),onKeydown:e.withKeys(e.withModifiers(D=>h(V.name),["stop"]),["enter"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:12},null,8,["icon"])],40,ai)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[1]||(S[1]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(Tt),{filter:V,draft:w(V.name),"is-checked":D=>T(V.name,D),onToggleOption:D=>C(V.name,D,V.multiple??!1),onSetDraft:D=>B(V.name,D)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",oi,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:D=>B(V.name,null)},{default:e.withCtx(()=>[...S[12]||(S[12]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:D=>x(V.name,()=>{})},{default:e.withCtx(()=>[...S[13]||(S[13]=[e.createTextVNode(" Применить ",-1)])]),_:1},8,["onClick"])])],32)]),_:2},1024))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,V=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:`inactive-${V.name}`},{trigger:e.withCtx(()=>[e.createElementVNode("button",li,[J(V.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(V.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",ri,e.toDisplayString(V.label),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[2]||(S[2]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(Tt),{filter:V,draft:w(V.name),"is-checked":D=>T(V.name,D),onToggleOption:D=>C(V.name,D,V.multiple??!1),onSetDraft:D=>B(V.name,D)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",ii,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:D=>B(V.name,null)},{default:e.withCtx(()=>[...S[14]||(S[14]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:D=>x(V.name,()=>{})},{default:e.withCtx(()=>[...S[15]||(S[15]=[e.createTextVNode(" Применить ",-1)])]),_:1},8,["onClick"])])],32)]),_:2},1024))),128)),g.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:1},{trigger:e.withCtx(()=>[e.createElementVNode("button",si,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Pe),size:14},null,8,["icon"]),S[16]||(S[16]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Filter",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[3]||(S[3]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,V=>(e.openBlock(),e.createElementBlock("button",{key:V.name,type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:D=>d(V.name)},[J(V.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(V.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(V.label),1)],8,ci))),128))],32)]),_:1})):e.createCommentVNode("",!0),S[18]||(S[18]=e.createElementVNode("span",{class:"admin-toolbar__spacer"},null,-1)),N.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:2,variant:"ghost",size:"md",onClick:S[4]||(S[4]=V=>r("reset"))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ot),size:14},null,8,["icon"])]),default:e.withCtx(()=>[S[17]||(S[17]=e.createTextVNode(" Сбросить ",-1))]),_:1})):e.createCommentVNode("",!0)]),v.value.length>0||t.columns.length>0||t.enableSavedViews?(e.openBlock(),e.createElementBlock("div",di,[v.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:0},{trigger:e.withCtx(()=>[e.createElementVNode("button",ui,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Oa),size:14},null,8,["icon"]),e.createElementVNode("span",mi,e.toDisplayString(t.groupBy?`Группа: ${A(t.columns.find(V=>_(V)===t.groupBy)??{})}`:"Группировать"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[6]||(S[6]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:S[5]||(S[5]=V=>y(null,()=>{}))},[t.groupBy?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(ze),size:14},null,8,["icon"])),S[19]||(S[19]=e.createElementVNode("span",null,"Без группировки",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,V=>(e.openBlock(),e.createElementBlock("button",{key:_(V),type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:D=>y(_(V),()=>{})},[t.groupBy===_(V)?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(ze),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(A(V)),1)],8,fi))),128))],32)]),_:1})):e.createCommentVNode("",!0),t.columns.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:1},{trigger:e.withCtx(()=>[e.createElementVNode("button",pi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ba),size:14},null,8,["icon"]),S[20]||(S[20]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Колонки",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[7]||(S[7]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns.filter(V=>_(V)!==""),V=>(e.openBlock(),e.createElementBlock("label",{key:_(V),class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.createElementVNode("input",{type:"checkbox",checked:z(V),onChange:D=>W(V)},null,40,vi),e.createElementVNode("span",null,e.toDisplayString(A(V)),1)]))),128))],32)]),_:1})):e.createCommentVNode("",!0),t.enableSavedViews?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:2},{trigger:e.withCtx(()=>[e.createElementVNode("button",hi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(nt),size:14},null,8,["icon"]),S[21]||(S[21]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Сохранить",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[11]||(S[11]=e.withModifiers(()=>{},["stop"]))},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[8]||(S[8]=V=>H.value=V),type:"text",placeholder:"Название view",class:"admin-toolbar__input",onKeydown:S[9]||(S[9]=e.withKeys(V=>ee(()=>{}),["enter"]))},null,544),[[e.vModelText,H.value]]),e.createElementVNode("div",yi,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",disabled:H.value.trim()==="",onClick:S[10]||(S[10]=V=>ee(()=>{}))},{default:e.withCtx(()=>[...S[22]||(S[22]=[e.createTextVNode(" Сохранить view ",-1)])]),_:1},8,["disabled"])])],32)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),ki=["title"],_i=["disabled"],bi=e.defineComponent({__name:"InlineEditCell",props:{resourceSlug:{},rowId:{},column:{},value:{},editable:{type:Boolean,default:!0}},emits:["saved"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(!1),o=e.ref(""),i=e.ref(!1),s=e.ref(null);async function u(){!a.editable||i.value||(o.value=a.value===null||a.value===void 0?"":String(a.value),l.value=!0,await e.nextTick(),s.value?.focus(),s.value?.select())}function f(){l.value=!1}async function p(){if(!(!l.value||i.value)){if(o.value===String(a.value??"")){l.value=!1;return}i.value=!0;try{const{getAdminClient:d}=await Promise.resolve().then(()=>Q);await d().post(`/${a.resourceSlug}/inlineUpdate`,{id:a.rowId,column:a.column,value:o.value}),r("saved",o.value),l.value=!1}catch(d){typeof console<"u"&&console.error("[admin] inline-update failed:",d),Y.error(`Не удалось обновить «${a.column}».`)}finally{i.value=!1}}}function g(d){d.key==="Enter"?(d.preventDefault(),p()):d.key==="Escape"&&(d.preventDefault(),f())}return(d,N)=>l.value?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,ref_key:"inputRef",ref:s,"onUpdate:modelValue":N[0]||(N[0]=h=>o.value=h),type:"text",class:"admin-inline-edit__input",disabled:i.value,onKeydown:g,onBlur:p,onClick:N[1]||(N[1]=e.withModifiers(()=>{},["stop"]))},null,40,_i)),[[e.vModelText,o.value]]):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["admin-inline-edit",{"admin-inline-edit--editable":t.editable}]),title:t.editable?"Двойной клик для редактирования":void 0,onDblclick:e.withModifiers(u,["stop"])},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)])],42,ki))}}),wi={class:"admin-page admin-resource-index"},Bi={class:"admin-page__hd"},Vi={class:"admin-page__title-wrap"},Ni={class:"admin-page__title-row"},xi={class:"admin-page__title"},Ci={key:0,class:"admin-page__live",role:"status"},Ei={key:0,class:"admin-page__count"},$i={class:"admin-page__actions"},Si={class:"admin-page__view-row"},Ui={class:"admin-page__view-name"},Mi={key:0,class:"admin-page__view-badge"},Ti=["onClick"],Ii={key:0,class:"admin-bulk-toolbar",role:"toolbar"},Di={class:"admin-bulk-toolbar__count"},Fi={key:2,class:"admin-resource-index__loading"},Ai={key:5,class:"admin-resource-index__table"},Li={key:0,class:"admin-resource-index__row-actions"},zi=["onClick"],Ri=["onClick"],Pi=["onClick"],qi=["onClick"],ji=["onClick"],Oi={class:"admin-cell-truncate"},Wi=["title"],Hi={key:6,class:"admin-resource-index__footer"},Dt="__row_actions__",_n=e.defineComponent({__name:"ResourceIndexPage",props:{slug:{},title:{default:null},subtitle:{default:null},createLabel:{default:"Создать"},createRouteName:{default:null}},emits:["bulk-action","row-click","import","header-action"],setup(t,{emit:n}){const a=t,r=n,l=pt(),o=ie(),i=ut(),s=Z.useRouter(),u=e.computed(()=>o.getResource(a.slug)),f=e.computed(()=>a.title??u.value?.label??a.slug),p=e.computed(()=>{if(a.createRouteName!==null)return s.hasRoute(a.createRouteName)?a.createRouteName:null;const E=`admin.resource.${a.slug}.create`;return s.hasRoute(E)?E:null}),g=e.computed(()=>(u.value?.actions??[]).map(b=>({key:String(b.key??b.name??""),label:String(b.label??b.name??b.key??""),confirm:typeof b.confirm=="string"?b.confirm:void 0,icon:typeof b.icon=="string"?b.icon:void 0})).filter(b=>b.key!==""&&b.label!==""));async function d(E){if(!(E.confirm&&!window.confirm(E.confirm))){r("header-action",E.key);try{i.start();const{getAdminClient:b}=await Promise.resolve().then(()=>Q),I=await b().post(`/${a.slug}/action`,{key:E.key,ids:[...l.selection]});await l.load().catch(()=>{}),Y.success(I?.message??`Action «${E.label}» применён к ${I?.affected??0} записям.`)}catch(b){typeof console<"u"&&console.error("[admin] header-action failed:",b),Y.error(`Не удалось выполнить action «${E.label}».`)}finally{i.end()}}}async function N(){r("header-action","export");try{i.start();const{getAdminClient:E}=await Promise.resolve().then(()=>Q),U=await E().post(`/${a.slug}/export`,{filters:l.filters,search:l.search},{responseType:"blob"}),I=URL.createObjectURL(U),j=document.createElement("a");j.href=I,j.download=`${a.slug}-${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(j),j.click(),j.remove(),URL.revokeObjectURL(I)}catch(E){typeof console<"u"&&console.error("[admin] export failed:",E),Y.error("Не удалось экспортировать данные. Backend может не поддерживать /export для этого ресурса.")}finally{i.end()}}const h=e.ref(null);function k(){r("import"),h.value?.click()}async function m(E){const b=E.target,U=b.files?.[0];if(U)try{i.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Q),j=I(),pe=new FormData;pe.append("file",U),pe.append("resource",a.slug);const Vt=await j.post("/import/upload",pe),aa=await j.post("/import/preview",{resource:a.slug,upload_id:Vt.upload_id}),oa=await j.post("/import/start",{resource:a.slug,upload_id:Vt.upload_id,mapping:aa.mapping}),Nt=await w(j,oa.process_id),xt=Nt.imported??0,Ct=Nt.failed??0;Ct>0?Y.warning(`Импорт завершён с ошибками: ${xt} записей, ${Ct} ошибок.`):Y.success(`Импортировано записей: ${xt}.`),await l.load().catch(()=>{})}catch(I){typeof console<"u"&&console.error("[admin] import failed:",I),Y.error("Импорт не удался. Проверьте формат файла и поля ресурса либо обратитесь к администратору.")}finally{b.value="",i.end()}}async function w(E,b){const U=Date.now()+9e4;for(;Date.now()<U;){await new Promise(j=>setTimeout(j,800));const I=await E.get(`/import/status?process_id=${encodeURIComponent(b)}`);if(I.status==="done"||I.status==="failed")return I}return{status:"failed",failed:1}}const B=e.computed(()=>{const b=(u.value?.columns??[]).map(U=>{const I=U;return{key:String(I.key??I.name??""),label:String(I.label??I.name??""),sortable:!!I.sortable,align:I.align??"left",width:typeof I.width=="string"?I.width:void 0}}).filter(U=>U.key).filter(U=>ee.value[U.key]!==!1);return b.push({key:Dt,label:"",sortable:!1,align:"right",width:"120px"}),b});function x(E){const b=u.value?.columns??[];for(const U of b){const I=U;if(String(I.key??I.name??"")===E)return I.editable!==null&&I.editable!==void 0}return!1}const C=e.computed(()=>{const E=u.value?.columns??[],b={};for(const U of E){const I=U,j=String(I.key??I.name??"");j&&(b[j]={preset:typeof I.preset=="string"?I.preset:void 0,meta:I.meta??{}})}return b});function T(E,b){const I=b?.row?.[E],j=C.value[E];return kn(I,j?.preset,j?.meta??{})}function v(E){return E?.row}const y=e.computed(()=>l.search!==""||Object.keys(l.filters).length>0),_=e.computed(()=>!l.isEmpty||y.value),A=e.computed(()=>u.value?.filters??[]),z=e.computed(()=>u.value?.columns??[]),W=e.computed(()=>`Поиск по ${(u.value?.label??a.slug).toLowerCase()}…`),H=e.ref(null),ee=e.ref({});async function J(E,b){await l.setFilter(E,b)}async function M(E){await l.setSearch(E)}async function S(){l.search="",await l.clearFilters()}async function V(E){H.value=E,await l.load({group_by:E})}function D(E){ee.value=E}const K=e.ref([]),X=e.ref(null);async function re(){try{const{getAdminClient:E}=await Promise.resolve().then(()=>Q),U=await E().get(`/${a.slug}_views/list`);K.value=U.data??[]}catch{K.value=[]}}async function fe(E){X.value=E.id;const b=E.state;l.search=b.search??"",l.filters={...b.filters??{}},l.sortKey=b.sort?.key??null,l.sortDirection=b.sort?.direction??null,H.value=b.group_by??null,ee.value={...b.columns??{}},l.meta.page=1,await Me()}async function ce(){X.value=null,l.search="",l.filters={},l.sortKey=null,l.sortDirection=null,H.value=null,ee.value={},l.meta.page=1,await Me()}async function Be(E,b){if(b?.stopPropagation(),!!E.owned&&window.confirm(`Удалить view «${E.name}»?`))try{i.start();const{getAdminClient:U}=await Promise.resolve().then(()=>Q);await U().post(`/${a.slug}_views/delete`,{id:E.id}),X.value===E.id&&(X.value=null),await re()}catch(U){typeof console<"u"&&console.error("[admin] delete-view failed:",U)}finally{i.end()}}async function F(E){try{i.start();const{getAdminClient:b}=await Promise.resolve().then(()=>Q),I=await b().post(`/${a.slug}_views/create`,{name:E,state:{search:l.search,filters:l.filters,sort:{key:l.sortKey,direction:l.sortDirection},group_by:H.value,columns:ee.value}});I?.view&&(X.value=I.view.id),await re(),Y.success("Представление сохранено.")}catch(b){typeof console<"u"&&console.error("[admin] save-view failed:",b),Y.error("Не удалось сохранить view. Возможно, недостаточно прав либо ресурс не зарегистрирован.")}finally{i.end()}}const L=e.computed(()=>{const E=l.meta.total;return E===0?"":`${l.items.length} из ${E} ${q(E)}`});function q(E){const b=E%10,U=E%100;return b===1&&U!==11?"запись":b>=2&&b<=4&&(U<10||U>=20)?"записи":"записей"}const R=e.ref(null),O=e.ref(0);let te=null;e.watch(()=>l.loading,(E,b)=>{b&&!E&&l.error===null&&(R.value=Date.now())}),e.onMounted(()=>{te=setInterval(()=>{O.value+=1},3e4)}),e.onUnmounted(()=>{te!==null&&clearInterval(te)});const wt=e.computed(()=>{if(O.value,R.value===null)return null;const E=Math.floor((Date.now()-R.value)/1e3);if(E<5)return"обновлено только что";if(E<60)return`обновлено ${E} сек назад`;const b=Math.floor(E/60);if(b<60)return`обновлено ${b} мин назад`;const U=Math.floor(b/60);return U<24?`обновлено ${U} ч назад`:"обновлено более суток назад"}),Wn=e.computed(()=>{if(X.value!==null){const b=K.value.find(U=>U.id===X.value);if(b)return b.name}return`Все ${(u.value?.label??a.slug).toLowerCase()}`});async function Me(){i.start();try{await l.load()}catch{}finally{i.end()}}e.onMounted(async()=>{l.setSlug(a.slug),o.manifest===null&&await o.load().catch(()=>{}),re(),await Me()}),e.watch(()=>a.slug,async(E,b)=>{E!==b&&(l.setSlug(E),X.value=null,re(),await Me())});async function Hn(E){await e.nextTick(),await l.setSort(E,l.sortDirection)}async function Kn(E){await e.nextTick(),await l.setSort(l.sortKey,E)}function Gn(E){l.selection=E}async function Xn(E){await l.setPage(E)}function ue(E){const b=E?.id??E?.key;return typeof b=="string"||typeof b=="number"?b:null}function Zn(E){r("row-click",E);const b=ue(E);b!==null&&s.push({name:`admin.resource.${a.slug}.view`,params:{id:String(b)}})}function Yn(E,b){b?.stopPropagation();const U=ue(E);U!==null&&s.push({name:`admin.resource.${a.slug}.view`,params:{id:String(U)}})}function Jn(E,b){b?.stopPropagation();const U=ue(E);U!==null&&s.push({name:`admin.resource.${a.slug}.edit`,params:{id:String(U)}})}async function Qn(E,b){b?.stopPropagation();const U=ue(E);if(U!==null&&window.confirm("Удалить запись?"))try{i.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Q);await I().post(`/${a.slug}/delete`,{id:U}),await l.load().catch(()=>{}),Y.success("Запись удалена.")}catch(I){typeof console<"u"&&console.error("[admin] delete failed:",I),Y.error("Не удалось удалить запись.")}finally{i.end()}}function ea(E){return E.deleted_at!==null&&E.deleted_at!==void 0}async function ta(E,b){b?.stopPropagation();const U=ue(E);if(U!==null)try{i.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Q);await I().post(`/${a.slug}/restore`,{id:U}),await l.load().catch(()=>{}),Y.success("Запись восстановлена.")}catch(I){typeof console<"u"&&console.error("[admin] restore failed:",I),Y.error("Не удалось восстановить запись.")}finally{i.end()}}async function na(E,b){b?.stopPropagation();const U=ue(E);if(U!==null&&window.confirm("Удалить запись НАВСЕГДА? Действие необратимо."))try{i.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Q);await I().post(`/${a.slug}/forceDelete`,{id:U}),await l.load().catch(()=>{}),Y.success("Запись удалена навсегда.")}catch(I){typeof console<"u"&&console.error("[admin] force-delete failed:",I),Y.error("Не удалось удалить запись навсегда.")}finally{i.end()}}function Te(E){r("bulk-action",E,[...l.selection])}async function Bt(){await l.load().catch(()=>{})}return(E,b)=>(e.openBlock(),e.createElementBlock("section",wi,[e.createElementVNode("header",Bi,[e.createElementVNode("div",Vi,[e.createElementVNode("div",Ni,[e.createElementVNode("h1",xi,e.toDisplayString(f.value),1),wt.value?(e.openBlock(),e.createElementBlock("span",Ci,[b[6]||(b[6]=e.createElementVNode("span",{class:"admin-page__live-dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(wt.value),1)])):e.createCommentVNode("",!0)]),t.subtitle||L.value?(e.openBlock(),e.createElementBlock("div",Ei,[t.subtitle?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.subtitle),1)],64)):e.createCommentVNode("",!0),t.subtitle&&L.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" · ")],64)):e.createCommentVNode("",!0),L.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(L.value),1)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",$i,[e.renderSlot(E.$slots,"actions"),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md",class:"admin-page__scope"},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(nt),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(zt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(Wn.value)+" ",1)]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:ce},{default:e.withCtx(()=>[e.createTextVNode(" Все "+e.toDisplayString((u.value?.label??t.slug).toLowerCase()),1)]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.id,onClick:I=>fe(U)},{default:e.withCtx(()=>[e.createElementVNode("span",Si,[e.createElementVNode("span",Ui,[e.createTextVNode(e.toDisplayString(U.name)+" ",1),U.is_default?(e.openBlock(),e.createElementBlock("span",Mi,"default")):e.createCommentVNode("",!0)]),U.owned?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-page__view-delete","aria-label":"Удалить view",onClick:e.withModifiers(I=>Be(U,I),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(he),size:12},null,8,["icon"])],8,Ti)):e.createCommentVNode("",!0)])]),_:2},1032,["onClick"]))),128))]),_:1}),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md","aria-label":"Действия",class:"admin-page__more"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Pt),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:Bt},{default:e.withCtx(()=>[...b[7]||(b[7]=[e.createTextVNode("Обновить",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:N},{default:e.withCtx(()=>[...b[8]||(b[8]=[e.createTextVNode("Экспорт",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.key,onClick:I=>d(U)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(U.label),1)]),_:2},1032,["onClick"]))),128)),e.renderSlot(E.$slots,"header-menu")]),_:3}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:k},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Kt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[b[9]||(b[9]=e.createTextVNode(" Import ",-1))]),_:1}),e.createElementVNode("input",{ref_key:"importInput",ref:h,type:"file",class:"admin-page__import-input",accept:".csv,.json,.xlsx,.xls,application/json,text/csv",onChange:m},null,544),p.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"primary",size:"md",onClick:b[0]||(b[0]=U=>E.$router.push({name:p.value}))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Pe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(t.createLabel),1)]),_:1})):e.createCommentVNode("",!0)])]),e.unref(l).hasSelection?(e.openBlock(),e.createElementBlock("div",Ii,[e.createElementVNode("span",Di,[b[10]||(b[10]=e.createTextVNode(" Выбрано ",-1)),e.createElementVNode("b",null,e.toDisplayString(e.unref(l).selectedCount),1)]),b[16]||(b[16]=e.createElementVNode("span",{class:"admin-bulk-toolbar__divider"},null,-1)),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:b[1]||(b[1]=U=>Te("publish"))},{default:e.withCtx(()=>[...b[11]||(b[11]=[e.createTextVNode("Опубликовать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:b[2]||(b[2]=U=>Te("archive"))},{default:e.withCtx(()=>[...b[12]||(b[12]=[e.createTextVNode("Архивировать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:b[3]||(b[3]=U=>Te("export"))},{default:e.withCtx(()=>[...b[13]||(b[13]=[e.createTextVNode("Экспорт",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"danger",onClick:b[4]||(b[4]=U=>Te("delete"))},{default:e.withCtx(()=>[...b[14]||(b[14]=[e.createTextVNode("Удалить",-1)])]),_:1}),b[17]||(b[17]=e.createElementVNode("span",{class:"admin-bulk-toolbar__spacer"},null,-1)),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:e.unref(l).clearSelection},{default:e.withCtx(()=>[...b[15]||(b[15]=[e.createTextVNode(" Снять выделение ",-1)])]),_:1},8,["onClick"])])):_.value?(e.openBlock(),e.createBlock(gi,{key:1,search:e.unref(l).search,"search-placeholder":W.value,filters:A.value,values:e.unref(l).filters,columns:z.value,"group-by":H.value,"column-visibility":ee.value,"onUpdate:search":M,onApplyFilter:J,onReset:S,onGroupBy:V,onColumnsVisibility:D,onSaveView:F},{extra:e.withCtx(()=>[e.renderSlot(E.$slots,"filters",{filters:e.unref(l).filters,setFilter:e.unref(l).setFilter})]),_:3},8,["search","search-placeholder","filters","values","columns","group-by","column-visibility"])):e.createCommentVNode("",!0),e.unref(l).loading&&e.unref(l).items.length===0?(e.openBlock(),e.createElementBlock("div",Fi,[e.unref(l).slowLoading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},e.renderList(8,U=>e.createVNode(e.unref(c.UidSkeleton),{key:U,height:"40px"})),64)):e.createCommentVNode("",!0)])):e.unref(l).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidErrorState),{key:3,title:"Не удалось загрузить данные",description:e.unref(l).error?.message??"Попробуйте обновить страницу.",class:"admin-resource-index__state"},{actions:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"primary",onClick:Bt},{default:e.withCtx(()=>[...b[18]||(b[18]=[e.createTextVNode("Обновить",-1)])]),_:1})]),_:1},8,["description"])):e.unref(l).isEmpty?(e.openBlock(),e.createBlock(e.unref(c.UidEmptyState),{key:4,title:"Пока пусто",description:"Создайте первую запись или измените фильтры.",class:"admin-resource-index__state"},{actions:e.withCtx(()=>[t.createRouteName?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"primary",onClick:b[5]||(b[5]=U=>E.$router.push({name:t.createRouteName}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.createLabel),1)]),_:1})):e.createCommentVNode("",!0)]),_:1})):(e.openBlock(),e.createElementBlock("div",Ai,[e.createVNode(e.unref(c.UidTable),{columns:B.value,data:e.unref(l).items,"sort-key":e.unref(l).sortKey,"sort-direction":e.unref(l).sortDirection,selectable:"",selection:e.unref(l).selection,"row-key":U=>e.unref(l).rowId(U),"onUpdate:sortKey":Hn,"onUpdate:sortDirection":Kn,"onUpdate:selection":Gn,onRowClick:Zn},e.createSlots({_:2},[e.renderList(B.value,U=>({name:U.key,fn:e.withCtx(I=>[U.key===Dt?(e.openBlock(),e.createElementBlock("div",Li,[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Просмотр",onClick:e.withModifiers(j=>Yn(v(I)??{},j),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Va),size:16},null,8,["icon"])],8,zi),ea(v(I)??{})?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Восстановить",onClick:e.withModifiers(j=>ta(v(I)??{},j),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ot),size:16},null,8,["icon"])],8,qi),e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action admin-resource-index__row-action--danger",title:"Удалить навсегда",onClick:e.withModifiers(j=>na(v(I)??{},j),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(he),size:16},null,8,["icon"])],8,ji)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Редактировать",onClick:e.withModifiers(j=>Jn(v(I)??{},j),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(at),size:16},null,8,["icon"])],8,Ri),e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action admin-resource-index__row-action--danger",title:"Удалить",onClick:e.withModifiers(j=>Qn(v(I)??{},j),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(he),size:16},null,8,["icon"])],8,Pi)],64))])):e.renderSlot(E.$slots,`cell-${U.key}`,{key:1,row:v(I)},()=>[x(U.key)?(e.openBlock(),e.createBlock(bi,{key:0,"resource-slug":t.slug,"row-id":ue(v(I)??{})??"",column:U.key,value:(v(I)??{})[U.key],editable:!0,onSaved:j=>{const pe=v(I);pe&&(pe[U.key]=j)}},{default:e.withCtx(()=>[e.createElementVNode("span",Oi,e.toDisplayString(T(U.key,I)),1)]),_:2},1032,["resource-slug","row-id","column","value","onSaved"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:"admin-cell-truncate",title:T(U.key,I)},e.toDisplayString(T(U.key,I)),9,Wi))])])}))]),1032,["columns","data","sort-key","sort-direction","selection","row-key"])])),!e.unref(l).loading&&!e.unref(l).hasError&&!e.unref(l).isEmpty?(e.openBlock(),e.createElementBlock("footer",Hi,[e.createVNode(e.unref(c.UidPagination),{"model-value":e.unref(l).meta.page,total:e.unref(l).meta.total,"per-page":e.unref(l).meta.per_page,"onUpdate:modelValue":Xn},null,8,["model-value","total","per-page"])])):e.createCommentVNode("",!0)]))}}),vt=le.defineStore("admin-resource-form",()=>{const t=e.ref(null),n=e.ref("create"),a=e.ref(null),r=e.ref({}),l=e.ref({}),o=e.ref({}),i=e.ref(!1),s=e.ref(!1),u=e.ref(!1),f=e.ref(null),p=e.computed(()=>n.value==="create"),g=e.computed(()=>n.value==="edit"),d=e.computed(()=>n.value==="view"),N=e.computed(()=>f.value!==null),h=e.computed(()=>{const _=r.value,A=l.value,z=new Set([...Object.keys(_),...Object.keys(A)]);for(const W of z)if(!Object.is(_[W],A[W]))if(typeof _[W]=="object"||typeof A[W]=="object"){if(JSON.stringify(_[W])!==JSON.stringify(A[W]))return!0}else return!0;return!1});function k(_,A){for(const z of Object.keys(_))delete _[z];Object.assign(_,A)}function m(){k(r.value,{}),k(l.value,{}),o.value={},i.value=!1,s.value=!1,u.value=!1,f.value=null,a.value=null}function w(_,A={}){t.value=_,n.value="create",a.value=null,k(r.value,A),k(l.value,A),o.value={},f.value=null}async function B(_,A,z="edit"){t.value=_,n.value=z,a.value=A,i.value=!0,f.value=null,o.value={};try{const H=await G().get(`/${_}/read`,{params:{id:A}});k(r.value,H.record),k(l.value,H.record)}catch(W){throw f.value=W instanceof Error?W:new Error(String(W)),W}finally{i.value=!1}}function x(_,A){if(r.value[_]=A,o.value[_]){const z={...o.value};delete z[_],o.value=z}}function C(_){o.value={..._}}function T(){o.value={}}async function v(){if(!t.value)throw new Error("useResourceFormStore.save() before slug set");if(s.value)throw new Error("Already saving");s.value=!0,f.value=null,o.value={};try{const _=G(),A=n.value==="create"?`/${t.value}/create`:`/${t.value}/update`,z=n.value==="create"?r.value:{id:a.value,...r.value},W=await _.post(A,z),H=W.record?.id??W.id;if(H===void 0)throw new Error("save: backend response does not contain record.id");return a.value=H,k(l.value,{...r.value}),n.value="edit",H}catch(_){throw _ instanceof $e?o.value={..._.fields}:(_ instanceof se||_ instanceof Error)&&(f.value=_),_}finally{s.value=!1}}async function y(){if(!t.value||a.value===null)throw new Error("Nothing to delete");if(u.value)throw new Error("Already deleting");u.value=!0,f.value=null;try{await G().post(`/${t.value}/delete`,{id:a.value})}catch(_){throw _ instanceof Error&&(f.value=_),_}finally{u.value=!1}}return{slug:t,mode:n,recordId:a,state:r,initial:l,errors:o,loading:i,saving:s,deleting:u,error:f,isCreate:p,isEdit:g,isView:d,isDirty:h,hasError:N,reset:m,prepareCreate:w,load:B,setField:x,setErrors:C,clearErrors:T,save:v,destroy:y}}),ke=Oe(),_e=Oe(),Ki=ke.register,ht=ke.get,Gi=ke.has,Xi=ke.list,Zi=_e.register,Ze=_e.get,Yi=_e.has,Ji=_e.list;function Qi(){ke.clear(),_e.clear()}function bn(t){t.fields&&ke.registerBundle(t.fields),t.layouts&&_e.registerBundle(t.layouts)}const yt=e.defineComponent({__name:"UnknownField",props:{type:{},name:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный тип поля: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[t.name?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("code",null,e.toDisplayString(t.name),1),a[0]||(a[0]=e.createTextVNode(" — зарегистрируйте field-компонент через ",-1)),e.createElementVNode("code",null,"registerField('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))],64)):e.createCommentVNode("",!0)]),_:1}))}}),gt=e.defineComponent({__name:"FieldRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>ht(n.node.type)),r=e.computed(()=>{const{type:l,attributes:o,...i}=n.node;return{...i,...o??{}}});return(l,o)=>a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):(e.openBlock(),e.createBlock(yt,{key:1,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),be=e.defineComponent({__name:"LayoutRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>{if(n.node.kind==="field")return{kind:"field"};if(n.node.kind==="layout"){const i=Ze(n.node.type);return i?{kind:"layout",component:i}:{kind:"unknown"}}const o=Ze(n.node.type);return o?{kind:"layout",component:o}:ht(n.node.type)?{kind:"field"}:{kind:"unknown"}}),r=e.computed(()=>{const{type:o,kind:i,...s}=n.node;return s}),l=e.computed(()=>n.node);return(o,i)=>a.value.kind==="layout"&&a.value.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value.component),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):a.value.kind==="field"?(e.openBlock(),e.createBlock(gt,{key:1,node:l.value},null,8,["node"])):(e.openBlock(),e.createBlock(yt,{key:2,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),es={class:"admin-page admin-resource-form"},ts={class:"admin-page__hd"},ns={class:"admin-page__title-wrap"},as={class:"admin-page__title"},os={class:"admin-page__actions"},ls={key:1,class:"admin-resource-form__loading"},rs={key:3,class:"admin-resource-form__savebar"},Ye=e.defineComponent({__name:"ResourceFormPage",props:{slug:{},id:{default:null},indexRouteName:{default:null}},setup(t){const n=t,a=vt(),r=ie(),l=Z.useRouter(),o=ne.provideFormState(a.state,a.errors);e.watch(()=>a.errors,k=>{o.setErrors({...k})});const i=e.computed(()=>r.getResource(n.slug)),s=e.computed(()=>i.value?.fields??[]),u=e.computed(()=>a.isCreate?`Создать: ${i.value?.label??n.slug}`:`${i.value?.label??n.slug}: запись #${n.id}`),f=e.computed(()=>{const k=a.state.status;return typeof k=="string"?k:null}),p=e.computed(()=>{switch(f.value){case"published":return"success";case"review":case"draft":return"warning";case"archived":return"danger";default:return"default"}});e.onMounted(async()=>{r.manifest===null&&await r.load().catch(()=>{}),n.id!==null&&n.id!==void 0?await a.load(n.slug,n.id,"edit").catch(()=>{}):a.prepareCreate(n.slug)}),e.watch(()=>[n.slug,n.id],async([k,m])=>{m!=null?await a.load(k,m,"edit").catch(()=>{}):a.prepareCreate(k)});async function g(){try{const k=await a.save();a.isCreate&&l.push({name:`admin.resource.${n.slug}.edit`,params:{id:k}}).catch(()=>{})}catch{}}const d=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);async function N(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||l.push({name:d.value}).catch(()=>{}))}function h(){a.isDirty&&!confirm("Несохранённые изменения будут потеряны. Продолжить?")||l.push({name:d.value}).catch(()=>{})}return(k,m)=>(e.openBlock(),e.createElementBlock("section",es,[e.createElementVNode("header",ts,[e.createElementVNode("div",ns,[e.createElementVNode("a",{class:"admin-resource-form__back",onClick:h},"← Назад"),e.createElementVNode("h1",as,e.toDisplayString(u.value),1),f.value?(e.openBlock(),e.createBlock(e.unref(c.UidBadge),{key:0,variant:p.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),_:1},8,["variant"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",os,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",disabled:e.unref(a).saving||e.unref(a).deleting,onClick:h},{default:e.withCtx(()=>[...m[0]||(m[0]=[e.createTextVNode(" Отмена ",-1)])]),_:1},8,["disabled"]),e.unref(a).isEdit?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"danger",disabled:e.unref(a).saving||e.unref(a).deleting,loading:e.unref(a).deleting,onClick:N},{default:e.withCtx(()=>[...m[1]||(m[1]=[e.createTextVNode(" Удалить ",-1)])]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:e.unref(a).saving||e.unref(a).loading,loading:e.unref(a).saving,onClick:g},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).isCreate?"Создать":"Сохранить"),1)]),_:1},8,["disabled","loading"])])]),e.unref(a).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-resource-form__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).error?.message??"Не удалось сохранить запись"),1)]),_:1})):e.createCommentVNode("",!0),e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",ls,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(6,w=>e.createVNode(e.unref(c.UidSkeleton),{key:w,height:"40px"})),64))])):(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:2,padding:"md",class:"admin-resource-form__body"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(w,B)=>(e.openBlock(),e.createBlock(be,{key:B,node:w},null,8,["node"]))),128))]),_:1})),e.unref(a).isDirty&&!e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",rs,[m[4]||(m[4]=e.createElementVNode("span",{class:"admin-resource-form__savebar-hint"}," Есть несохранённые изменения ",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:h},{default:e.withCtx(()=>[...m[2]||(m[2]=[e.createTextVNode("Отмена",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",size:"sm",loading:e.unref(a).saving,disabled:e.unref(a).saving,onClick:g},{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])])):e.createCommentVNode("",!0)]))}}),we=Oe(),is=we.register,Je=we.get,ss=we.has,cs=we.list,ds=we.clear,wn=we.registerBundle,Bn=e.defineComponent({__name:"UnknownEntry",props:{type:{},name:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный тип infolist-entry: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[a[0]||(a[0]=e.createTextVNode(" Зарегистрируйте через ",-1)),e.createElementVNode("code",null,"registerInfolistEntry('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))]),_:1}))}}),us={key:1,class:"admin-infolist-rows"},ms={key:2,class:"admin-infolist-cols"},fs={key:3,class:"admin-infolist-section"},ps={key:0,class:"admin-infolist-section__hd"},vs={key:0,class:"admin-infolist-section__title"},hs={key:1,class:"admin-infolist-section__description"},ys={class:"admin-infolist-section__body"},gs={key:4,class:"admin-infolist-tabs"},ks={class:"admin-infolist-tabs__list",role:"tablist"},_s={class:"admin-infolist-tabs__panel"},Vn=e.defineComponent({__name:"InfolistRenderer",props:{node:{}},setup(t){const n=t,a=new Set(["rows","columns","section","block","tabs"]),r=e.computed(()=>{if(n.node.kind==="entry"){const g=Je(n.node.type);return g?{kind:"entry",component:g}:{kind:"unknown"}}if(n.node.kind==="layout")return a.has(n.node.type)?{kind:"layout",layoutType:n.node.type}:{kind:"unknown"};if(a.has(n.node.type))return{kind:"layout",layoutType:n.node.type};const p=Je(n.node.type);return p?{kind:"entry",component:p}:{kind:"unknown"}}),l=e.computed(()=>{const{type:p,kind:g,items:d,attributes:N,...h}=n.node,k=N??{},{preset:m,format:w,currency:B,decimals:x,trueLabel:C,falseLabel:T,...v}=k,y={};return w!==void 0&&(y.format=w),B!==void 0&&(y.currency=B),x!==void 0&&(y.decimals=x),C!==void 0&&(y.trueLabel=C),T!==void 0&&(y.falseLabel=T),{...h,...v,preset:m,meta:y}}),o=e.computed(()=>n.node.items??[]),i=e.computed(()=>n.node.title??null),s=e.computed(()=>n.node.description??null),u=e.computed(()=>{const p=n.node.active;return typeof p=="number"?p:0}),f=e.computed(()=>n.node.items??[]);return(p,g)=>{const d=e.resolveComponent("InfolistRenderer",!0);return r.value.kind==="entry"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value.component),e.normalizeProps(e.mergeProps({key:0},l.value)),null,16)):r.value.kind==="layout"&&r.value.layoutType==="rows"?(e.openBlock(),e.createElementBlock("div",us,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(N,h)=>(e.openBlock(),e.createBlock(d,{key:h,node:N},null,8,["node"]))),128))])):r.value.kind==="layout"&&r.value.layoutType==="columns"?(e.openBlock(),e.createElementBlock("div",ms,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(N,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"admin-infolist-cols__item",style:e.normalizeStyle({gridColumn:`span ${typeof N.span=="number"?N.span:Math.max(1,Math.floor(12/o.value.length))}`})},[e.createVNode(d,{node:N},null,8,["node"])],4))),128))])):r.value.kind==="layout"&&(r.value.layoutType==="section"||r.value.layoutType==="block")?(e.openBlock(),e.createElementBlock("section",fs,[i.value||s.value?(e.openBlock(),e.createElementBlock("header",ps,[i.value?(e.openBlock(),e.createElementBlock("h3",vs,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("p",hs,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",ys,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(N,h)=>(e.openBlock(),e.createBlock(d,{key:h,node:N},null,8,["node"]))),128))])])):r.value.kind==="layout"&&r.value.layoutType==="tabs"?(e.openBlock(),e.createElementBlock("div",gs,[e.createElementVNode("ul",ks,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(N,h)=>(e.openBlock(),e.createElementBlock("li",{key:N.key??h,class:e.normalizeClass(["admin-infolist-tabs__tab",{"admin-infolist-tabs__tab--active":h===u.value}])},e.toDisplayString(N.label),3))),128))]),e.createElementVNode("div",_s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value[u.value]?.items??[],(N,h)=>(e.openBlock(),e.createBlock(d,{key:h,node:N},null,8,["node"]))),128))])])):(e.openBlock(),e.createBlock(Bn,{key:5,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}}),kt=Symbol("admin.infolist-record");function Nn(t){e.provide(kt,t)}function bs(){const t=e.inject(kt);if(!t)throw new Error("useRecord() called outside of provideRecord() scope");return t}function Ue(){return e.inject(kt,null)}const ws={class:"admin-audit-timeline"},Bs={key:0,class:"admin-audit-timeline__loading"},Vs={key:1,class:"admin-audit-timeline__error"},Ns={key:2,class:"admin-audit-timeline__empty"},xs={key:3,class:"admin-audit-timeline__list"},Cs={class:"admin-audit-timeline__icon","aria-hidden":"true"},Es={class:"admin-audit-timeline__body"},$s={class:"admin-audit-timeline__row"},Ss={class:"admin-audit-timeline__actor"},Us={class:"admin-audit-timeline__verb"},Ms={class:"admin-audit-timeline__when"},Ts={key:0,class:"admin-audit-timeline__detail"},Is=e.defineComponent({__name:"AuditTimeline",props:{subjectType:{},subjectId:{}},setup(t){const n=t,a=e.ref([]),r=e.ref(!1),l=e.ref(null);async function o(){if(!n.subjectType||n.subjectType===""){a.value=[],r.value=!1,l.value=null;return}r.value=!0,l.value=null;try{const{getAdminClient:d}=await Promise.resolve().then(()=>Q),h=await d().get(`/audit/timeline?subject_type=${encodeURIComponent(n.subjectType)}&subject_id=${encodeURIComponent(String(n.subjectId))}`);a.value=h.data??[]}catch(d){l.value=d instanceof Error?d:new Error(String(d)),a.value=[]}finally{r.value=!1}}e.onMounted(o),e.watch(()=>[n.subjectType,n.subjectId],o);const i=e.computed(()=>a.value.length>0);function s(d){return d==="created"?Pe:d==="deleted"||d==="destroyed"?he:d.includes("tag")||d.includes("label")?Ht:mo}function u(d){return{created:"создал",updated:"отредактировал",deleted:"удалил",destroyed:"удалил",restored:"восстановил",published:"опубликовал"}[d]??d}function f(d){const N=new Date(d).getTime();if(Number.isNaN(N))return"";const h=(Date.now()-N)/1e3;return h<60?`${Math.max(1,Math.floor(h))} сек назад`:h<3600?`${Math.floor(h/60)} мин назад`:h<86400?`${Math.floor(h/3600)} ч назад`:h<86400*30?`${Math.floor(h/86400)} д назад`:new Date(d).toLocaleDateString("ru-RU")}function p(d){if(d.summary)return d.summary;if(!d.diff||d.diff.length===0)return"";if(d.diff.length===1){const h=d.diff[0];return`Поле ${h.field}: ${g(h.before)} → ${g(h.after)}`}const N=d.diff.slice(0,4).map(h=>h.field).join(", ");return`Изменены ${d.diff.length} поля: ${N}`}function g(d){return d==null?"∅":typeof d=="string"?d.length>20?`${d.slice(0,20)}…`:d:String(d)}return(d,N)=>(e.openBlock(),e.createElementBlock("section",ws,[N[0]||(N[0]=e.createElementVNode("h2",{class:"admin-audit-timeline__title"},"История изменений",-1)),r.value?(e.openBlock(),e.createElementBlock("div",Bs,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,h=>e.createVNode(e.unref(c.UidSkeleton),{key:h,height:"48px"})),64))])):l.value?(e.openBlock(),e.createElementBlock("div",Vs," Не удалось загрузить историю: "+e.toDisplayString(l.value.message),1)):i.value?(e.openBlock(),e.createElementBlock("ol",xs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.id,class:"admin-audit-timeline__item"},[e.createElementVNode("span",Cs,[e.createVNode(e.unref(c.UidIcon),{icon:s(h.event),size:14},null,8,["icon"])]),e.createElementVNode("div",Es,[e.createElementVNode("div",$s,[e.createVNode(e.unref(c.UidAvatar),{name:h.actor?.name??"?",alt:h.actor?.name??"Неизвестный",size:"xs"},null,8,["name","alt"]),e.createElementVNode("span",Ss,e.toDisplayString(h.actor?.name??"Система"),1),e.createElementVNode("span",Us,e.toDisplayString(u(h.event)),1),e.createElementVNode("span",Ms,e.toDisplayString(f(h.created_at)),1)]),p(h)?(e.openBlock(),e.createElementBlock("div",Ts,e.toDisplayString(p(h)),1)):e.createCommentVNode("",!0)])]))),128))])):(e.openBlock(),e.createElementBlock("div",Ns," Записей в истории пока нет. "))]))}}),Ds={class:"admin-page admin-resource-view"},Fs={class:"admin-resource-view__hd"},As={class:"admin-resource-view__hd-left"},Ls={class:"admin-page__title"},zs={class:"admin-resource-view__meta"},Rs=["data-variant","data-status"],Ps={class:"admin-resource-view__uid"},qs={class:"admin-resource-view__hd-right"},js={key:1,class:"admin-resource-view__loading"},Os={key:2,class:"admin-resource-view__grid"},Ws={class:"admin-resource-view__main"},Hs={class:"admin-resource-view__aside"},Ks={class:"admin-resource-view__metrics"},Gs={class:"admin-resource-view__metric-label"},Xs={class:"admin-resource-view__metric-value"},xn=e.defineComponent({__name:"ResourceViewPage",props:{slug:{},id:{},editRouteName:{default:void 0},indexRouteName:{default:null},auditSubjectType:{default:null},statusField:{default:"status"},uidPrefix:{default:"#"}},setup(t){const n=t,a=vt(),r=ie(),l=Z.useRouter();Nn(a.state);const o=e.computed(()=>r.getResource(n.slug)),i=e.computed(()=>o.value?.infolist??o.value?.fields??[]),s=e.computed(()=>n.auditSubjectType!==null?n.auditSubjectType:o.value?.subject_type??null),u=e.computed(()=>{const T=a.state,v=[],y=W=>{if(typeof W!="string"||W==="")return null;const H=new Date(W);return Number.isNaN(H.getTime())?null:H.toLocaleString("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})},_=y(T.created_at);_&&v.push({label:"Создано",value:_});const A=y(T.updated_at);A&&A!==_&&v.push({label:"Обновлено",value:A});const z=typeof T.created_by_name=="string"&&T.created_by_name!==""?T.created_by_name:typeof T.author=="string"?T.author:null;return z&&v.push({label:"Автор",value:z}),v}),f=e.computed(()=>{const T=a.state,v=T.title??T.name??T.label;return typeof v=="string"&&v.length>0?v:`${o.value?.label??n.slug}: запись #${n.id}`}),p=e.computed(()=>o.value?.label??n.slug),g=e.computed(()=>`${n.uidPrefix}${n.id}`),d=e.computed(()=>{const v=a.state[n.statusField];return typeof v=="string"&&v.length>0?v:null}),N={published:"success",active:"success",enabled:"success",draft:"neutral",pending:"warning",review:"warning",archived:"muted",disabled:"muted",inactive:"muted",deleted:"danger",failed:"danger",error:"danger"};function h(T){return N[T.toLowerCase()]??"neutral"}const k=e.computed(()=>(o.value?.actions??[]).map(v=>({key:String(v.key??v.name??""),label:String(v.label??v.name??v.key??""),confirm:typeof v.confirm=="string"?v.confirm:void 0})).filter(v=>v.key!==""&&v.label!==""));async function m(T){if(!(T.confirm&&!window.confirm(T.confirm)))try{const{getAdminClient:v}=await Promise.resolve().then(()=>Q);await v().post(`/${n.slug}/action/${T.key}`,{ids:[n.id]}),await a.load(n.slug,n.id,"view").catch(()=>{})}catch(v){typeof console<"u"&&console.error("[admin] action failed:",v)}}e.onMounted(async()=>{r.manifest===null&&await r.load().catch(()=>{}),await a.load(n.slug,n.id,"view").catch(()=>{})}),e.watch(()=>[n.slug,n.id],async([T,v])=>{await a.load(T,v,"view").catch(()=>{})});const w=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);function B(){l.push({name:w.value}).catch(()=>{l.push(`/r/${n.slug}`)})}function x(){if(!n.editRouteName){l.push(`/r/${n.slug}/${n.id}/edit`).catch(()=>{});return}l.push({name:n.editRouteName,params:{id:n.id}}).catch(()=>{})}async function C(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||l.push({name:w.value}).catch(()=>{}))}return(T,v)=>(e.openBlock(),e.createElementBlock("section",Ds,[e.createElementVNode("header",Fs,[e.createElementVNode("div",As,[e.createElementVNode("button",{type:"button",class:"admin-resource-view__back",onClick:B},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(da),size:14},null,8,["icon"]),e.createTextVNode(" "+e.toDisplayString(p.value),1)]),e.createElementVNode("h1",Ls,e.toDisplayString(f.value),1),e.createElementVNode("div",zs,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-status-badge","data-variant":h(d.value),"data-status":d.value},[v[0]||(v[0]=e.createElementVNode("span",{class:"admin-status-badge__dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(d.value),1)],8,Rs)):e.createCommentVNode("",!0),e.createElementVNode("span",Ps,e.toDisplayString(g.value),1)])]),e.createElementVNode("div",qs,[e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:x},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(at),size:14},null,8,["icon"])]),default:e.withCtx(()=>[v[1]||(v[1]=e.createTextVNode(" Редактировать ",-1))]),_:1}),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md","aria-label":"Действия",class:"admin-page__more"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Pt),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,y=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:y.key,onClick:_=>m(y)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(y.label),1)]),_:2},1032,["onClick"]))),128)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:C},{icon:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(he),size:14},null,8,["icon"])]),default:e.withCtx(()=>[v[2]||(v[2]=e.createTextVNode(" Удалить ",-1))]),_:1})]),_:1})])]),e.unref(a).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-resource-view__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).error?.message??"Не удалось загрузить запись"),1)]),_:1})):e.createCommentVNode("",!0),e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",js,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(8,y=>e.createVNode(e.unref(c.UidSkeleton),{key:y,height:"24px"})),64))])):(e.openBlock(),e.createElementBlock("div",Os,[e.createElementVNode("div",Ws,[e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[v[3]||(v[3]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Основные данные",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(y,_)=>(e.openBlock(),e.createBlock(Vn,{key:_,node:y},null,8,["node"]))),128))]),_:1}),e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[e.createVNode(Is,{"subject-type":s.value,"subject-id":t.id},null,8,["subject-type","subject-id"])]),_:1})]),e.createElementVNode("aside",Hs,[u.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[v[4]||(v[4]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Метрики",-1)),e.createElementVNode("dl",Ks,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,y=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:y.label},[e.createElementVNode("dt",Gs,e.toDisplayString(y.label),1),e.createElementVNode("dd",Xs,e.toDisplayString(y.value),1)],64))),128))])]),_:1})):e.createCommentVNode("",!0),e.renderSlot(T.$slots,"sidebar",{record:e.unref(a).state,resource:o.value})])]))]))}}),Zs={class:"admin-page admin-profile"},Ys={class:"admin-page__hd"},Js={class:"admin-page__title-wrap"},Qs={class:"admin-page__title"},ec={class:"admin-page__count"},tc={class:"admin-profile__layout"},nc={class:"admin-profile__nav","aria-label":"Profile sections"},ac=["onClick"],oc=["data-icon"],lc={class:"admin-profile__content"},rc={class:"admin-profile__hero"},ic={class:"admin-profile__hero-text"},sc={class:"admin-profile__hero-name"},cc={class:"admin-profile__hero-meta"},dc={class:"admin-profile__form"},uc={class:"admin-profile__card-ft"},mc={class:"admin-profile__card-hd"},fc={key:0,class:"admin-profile__hint"},pc={key:1,class:"admin-profile__hint"},vc={class:"admin-profile__card-ft"},hc={class:"admin-profile__hint"},Cn=e.defineComponent({__name:"ProfilePage",props:{title:{default:"Profile"},subtitle:{default:"Личные данные, безопасность, токены"},section:{default:"general"}},emits:["update:section","avatar-replace","two-factor-disable","two-factor-regenerate","save"],setup(t,{emit:n}){const a=t,r=n,l=oe(),o=qe(),i=Ce(),s=[{id:"general",label:"Основное",icon:"user"},{id:"security",label:"Безопасность",icon:"shield"},{id:"tokens",label:"API токены",icon:"key"},{id:"sessions",label:"Сессии",icon:"monitor"}],u=e.ref(a.section);function f(B){u.value=B,r("update:section",B)}const p=e.ref({name:l.user?.name??"",email:l.user?.email??"",locale:i.current,theme:o.current}),g=e.computed(()=>i.available.map(B=>({value:B,label:B.toUpperCase()}))),d=e.computed(()=>o.available.map(B=>({value:B,label:B==="dark"?"Тёмная":B==="light"?"Светлая":B})));e.watch(()=>p.value.locale,(B,x)=>{B===x||!B||i.setLocale(B).catch(()=>{})}),e.watch(()=>p.value.theme,(B,x)=>{B===x||!B||o.setTheme(B).catch(()=>{})});function N(){r("save",{...p.value})}function h(){r("avatar-replace")}function k(){r("two-factor-disable")}function m(){r("two-factor-regenerate")}const w=e.computed(()=>!!l.user?.twoFactorEnabled);return(B,x)=>(e.openBlock(),e.createElementBlock("section",Zs,[e.createElementVNode("header",Ys,[e.createElementVNode("div",Js,[e.createElementVNode("h1",Qs,e.toDisplayString(t.title),1),e.createElementVNode("div",ec,e.toDisplayString(t.subtitle),1)])]),e.createElementVNode("div",tc,[e.createElementVNode("nav",nc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,C=>e.createElementVNode("button",{key:C.id,type:"button",class:e.normalizeClass(["admin-profile__nav-item",{"admin-profile__nav-item--active":u.value===C.id}]),onClick:T=>f(C.id)},[e.createElementVNode("span",{class:"admin-profile__nav-icon","data-icon":C.icon},null,8,oc),e.createElementVNode("span",null,e.toDisplayString(C.label),1)],10,ac)),64))]),e.createElementVNode("div",lc,[u.value==="general"?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md"},{default:e.withCtx(()=>[x[7]||(x[7]=e.createElementVNode("header",{class:"admin-profile__card-hd"},[e.createElementVNode("h3",{class:"admin-profile__card-title"},"Профиль")],-1)),e.createElementVNode("div",rc,[e.createVNode(e.unref(c.UidAvatar),{src:e.unref(l).user?.avatar??void 0,name:e.unref(l).user?.name??"?",size:"lg"},null,8,["src","name"]),e.createElementVNode("div",ic,[e.createElementVNode("div",sc,e.toDisplayString(e.unref(l).user?.name??"—"),1),e.createElementVNode("div",cc,e.toDisplayString(e.unref(l).user?.email??"—"),1)]),x[5]||(x[5]=e.createElementVNode("div",{style:{flex:"1"}},null,-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:h},{default:e.withCtx(()=>[...x[4]||(x[4]=[e.createTextVNode(" Заменить ",-1)])]),_:1})]),e.createElementVNode("div",dc,[e.createVNode(e.unref(c.UidInput),{modelValue:p.value.name,"onUpdate:modelValue":x[0]||(x[0]=C=>p.value.name=C),label:"Имя",name:"name"},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:p.value.email,"onUpdate:modelValue":x[1]||(x[1]=C=>p.value.email=C),label:"Email",type:"email",name:"email"},null,8,["modelValue"]),e.createVNode(e.unref(c.UidSelect),{modelValue:p.value.locale,"onUpdate:modelValue":x[2]||(x[2]=C=>p.value.locale=C),options:g.value,label:"Язык"},null,8,["modelValue","options"]),e.createVNode(e.unref(c.UidSelect),{modelValue:p.value.theme,"onUpdate:modelValue":x[3]||(x[3]=C=>p.value.theme=C),options:d.value,label:"Тема"},null,8,["modelValue","options"])]),e.createElementVNode("footer",uc,[e.createVNode(e.unref(c.UidButton),{variant:"primary",onClick:N},{default:e.withCtx(()=>[...x[6]||(x[6]=[e.createTextVNode("Сохранить",-1)])]),_:1})])]),_:1})):u.value==="security"?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("header",mc,[x[8]||(x[8]=e.createElementVNode("h3",{class:"admin-profile__card-title"},"Двухфакторная аутентификация",-1)),e.createVNode(e.unref(c.UidBadge),{variant:w.value?"success":"default"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.value?"Включена":"Отключена"),1)]),_:1},8,["variant"])]),w.value?(e.openBlock(),e.createElementBlock("p",fc," 2FA включена. У вас остались recovery-коды на случай потери устройства. ")):(e.openBlock(),e.createElementBlock("p",pc," Включите 2FA для дополнительной защиты аккаунта. ")),e.createElementVNode("footer",vc,[w.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:m},{default:e.withCtx(()=>[...x[9]||(x[9]=[e.createTextVNode(" Перегенерировать коды ",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"danger",size:"sm",onClick:k},{default:e.withCtx(()=>[...x[10]||(x[10]=[e.createTextVNode(" Отключить 2FA ",-1)])]),_:1})],64)):e.renderSlot(B.$slots,"enable-2fa",{key:1},()=>[e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:""},{default:e.withCtx(()=>[...x[11]||(x[11]=[e.createTextVNode(" Включить 2FA (host customize) ",-1)])]),_:1})])])]),_:3})):e.renderSlot(B.$slots,u.value,{key:2,section:u.value},()=>[e.createVNode(e.unref(c.UidCard),{padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("p",hc," Section «"+e.toDisplayString(u.value)+"» не реализована библиотекой — host-проект подключает её через slot "+e.toDisplayString(u.value)+". ",1)]),_:1})])])])]))}}),Qe=e.defineComponent({__name:"StatWidget",props:{title:{default:""},value:{default:0},prefix:{default:""},suffix:{default:""},trend:{default:void 0},precision:{default:0},tone:{default:"neutral"},loading:{type:Boolean,default:!1}},setup(t){const n=t,a={neutral:"primary",positive:"success",negative:"danger",warning:"warning",info:"info"},r=e.computed(()=>a[n.tone]);return(l,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidStat),{title:t.title,value:t.value,prefix:t.prefix,suffix:t.suffix,trend:t.trend,precision:t.precision,tone:r.value,loading:t.loading},null,8,["title","value","prefix","suffix","trend","precision","tone","loading"]))}}),yc={key:0,class:"admin-widget__hd"},gc={key:0,class:"admin-widget__title"},kc={key:1,class:"admin-widget__desc"},_c=["viewBox","height","aria-label"],bc=["x","y","width","height","fill","data-label","data-value"],_t=e.defineComponent({__name:"BarChartWidget",props:{title:{default:""},description:{default:""},data:{},accent:{default:"var(--uid-accent)"},height:{default:200}},setup(t){const n=t,a=e.computed(()=>Math.max(1,...n.data.map(l=>l.value))),r=e.computed(()=>{const o=100/Math.max(1,n.data.length);return n.data.map((i,s)=>({label:i.label,value:i.value,x:s*o+o*.1,width:o*.8,heightPct:i.value/a.value*100}))});return(l,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title||t.description?(e.openBlock(),e.createElementBlock("header",yc,[t.title?(e.openBlock(),e.createElementBlock("h3",gc,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",kc,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{class:"admin-widget-bar-chart",viewBox:`0 0 100 ${t.height}`,preserveAspectRatio:"none",height:t.height,width:"100%",role:"img","aria-label":t.title||"Bar chart"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(i,s)=>(e.openBlock(),e.createElementBlock("rect",{key:s,x:i.x,y:t.height-i.heightPct/100*t.height,width:i.width,height:i.heightPct/100*t.height,fill:t.accent,rx:"1","data-label":i.label,"data-value":i.value},[e.createElementVNode("title",null,e.toDisplayString(i.label)+": "+e.toDisplayString(i.value),1)],8,bc))),128))],8,_c))]),_:1}))}}),wc={key:0,class:"admin-widget__hd"},Bc={class:"admin-widget__title"},Vc={class:"admin-donut-widget__row"},Nc=["aria-label"],xc=["d","fill"],Cc={class:"admin-donut-widget__legend"},Ec={class:"admin-donut-widget__label"},$c={class:"admin-donut-widget__value"},bt=e.defineComponent({__name:"DonutChartWidget",props:{title:{default:""},data:{}},setup(t){const n=t,a=["var(--uid-color-teal-500, #14b8a6)","var(--uid-color-zinc-700, #3f3f46)","var(--uid-color-amber-400, #fbbf24)","var(--uid-color-rose-400, #fb7185)","var(--uid-color-blue-400, #60a5fa)"],r=e.computed(()=>n.data.reduce((o,i)=>o+i.value,0)||1),l=e.computed(()=>{let o=0;return n.data.map((i,s)=>{const u=o/r.value*2*Math.PI;o+=i.value;const f=o/r.value*2*Math.PI,p=50,g=60,d=60,N=g+p*Math.cos(u-Math.PI/2),h=d+p*Math.sin(u-Math.PI/2),k=g+p*Math.cos(f-Math.PI/2),m=d+p*Math.sin(f-Math.PI/2),w=f-u>Math.PI?1:0,B=n.data.length===1?`M ${g-p} ${d} a ${p} ${p} 0 1 0 ${p*2} 0 a ${p} ${p} 0 1 0 ${-p*2} 0`:`M ${g} ${d} L ${N} ${h} A ${p} ${p} 0 ${w} 1 ${k} ${m} Z`;return{...i,path:B,color:i.color??a[s%a.length],pct:(i.value/r.value*100).toFixed(1)}})});return(o,i)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget admin-donut-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",wc,[e.createElementVNode("h3",Bc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Vc,[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 120 120",class:"admin-donut-widget__svg",role:"img","aria-label":t.title},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(s,u)=>(e.openBlock(),e.createElementBlock("path",{key:u,d:s.path,fill:s.color},[e.createElementVNode("title",null,e.toDisplayString(s.label)+": "+e.toDisplayString(s.value)+" ("+e.toDisplayString(s.pct)+"%)",1)],8,xc))),128)),i[0]||(i[0]=e.createElementVNode("circle",{cx:"60",cy:"60",r:"30",fill:"var(--uid-surface-raised)"},null,-1))],8,Nc)),e.createElementVNode("ul",Cc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(s,u)=>(e.openBlock(),e.createElementBlock("li",{key:u},[e.createElementVNode("span",{class:"admin-donut-widget__dot",style:e.normalizeStyle({background:s.color})},null,4),e.createElementVNode("span",Ec,e.toDisplayString(s.label),1),e.createElementVNode("span",$c,e.toDisplayString(s.pct)+"%",1)]))),128))])])]),_:1}))}}),Sc={key:0,class:"admin-widget__hd"},Uc={class:"admin-widget__title"},Ae=e.defineComponent({__name:"RecentTableWidget",props:{title:{default:""},columns:{},rows:{},emptyText:{default:"Нет данных"}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Sc,[e.createElementVNode("h3",Uc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidTable),{columns:t.columns,data:t.rows,"empty-text":t.emptyText},null,8,["columns","data","empty-text"])]),_:1}))}}),Mc={key:0,class:"admin-widget__hd"},Tc={class:"admin-widget__title"},En=e.defineComponent({__name:"HeatmapWidget",props:{title:{default:""},data:{},levels:{default:5},color:{default:void 0},gap:{default:2}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Mc,[e.createElementVNode("h3",Tc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidHeatmap),{data:t.data,levels:t.levels,color:t.color,gap:t.gap},null,8,["data","levels","color","gap"])]),_:1}))}}),Ic={key:0,class:"admin-widget__hd"},Dc={class:"admin-widget__title"},Fc={style:{display:"flex","justify-content":"center"}},$n=e.defineComponent({__name:"GaugeWidget",props:{title:{default:""},value:{default:0},min:{default:0},max:{default:100},size:{default:160},ranges:{default:()=>[]},tone:{default:"neutral"},color:{default:void 0},label:{default:""},suffix:{default:""},precision:{default:0}},setup(t){const n=t,a={neutral:"primary",positive:"success",warning:"warning",negative:"danger"},r=e.computed(()=>a[n.tone]);return(l,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Ic,[e.createElementVNode("h3",Dc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Fc,[e.createVNode(e.unref(c.UidGauge),{value:t.value,min:t.min,max:t.max,size:t.size,ranges:t.ranges,tone:r.value,color:t.color,label:t.label,suffix:t.suffix,precision:t.precision},null,8,["value","min","max","size","ranges","tone","color","label","suffix","precision"])])]),_:1}))}}),Ac={key:0,class:"admin-widget__hd"},Lc={class:"admin-widget__title"},zc={class:"admin-markdown-widget"},Sn=e.defineComponent({__name:"MarkdownWidget",props:{title:{default:""},content:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Ac,[e.createElementVNode("h3",Lc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",zc,e.toDisplayString(t.content),1)]),_:1}))}}),Rc=e.defineComponent({__name:"ChartWidget",props:{type:{},title:{},size:{},data:{}},setup(t){const n=t,a=e.computed(()=>n.data?.type??"bar"),r=["#10b981","#f59e0b","#9ca3af","#3b82f6","#dc2626","#a855f7","#ec4899"],l=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((u,f)=>({label:n.data?.labels?.[f]??String(f+1),value:u})):[]}),o=e.computed(()=>n.data?.datasets?.[0]?.color),i=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((u,f)=>({label:n.data?.labels?.[f]??String(f+1),value:u,color:s.color??r[f%r.length]})):[]});return(s,u)=>a.value==="doughnut"||a.value==="pie"?(e.openBlock(),e.createBlock(bt,{key:0,title:t.title,data:i.value},null,8,["title","data"])):a.value==="bar"||a.value==="line"||a.value==="area"?(e.openBlock(),e.createBlock(_t,{key:1,title:t.title,data:l.value,accent:o.value},null,8,["title","data","accent"])):(e.openBlock(),e.createBlock(mt,{key:2,type:`chart:${a.value}`},null,8,["type"]))}});function Un(){cn({stat:Qe,stats:Qe,chart:Rc,"bar-chart":_t,"donut-chart":bt,"recent-table":Ae,recent_list:Ae,"recent-list":Ae,heatmap:En,gauge:$n,markdown:Sn})}function Mn(t){return t.success===!0}function Pc(t){return t.success===!1}function Tn(t){const n=la.create({baseURL:t.baseURL,withCredentials:!0,headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest"}});t.csrfToken&&(n.defaults.headers.common["X-CSRF-TOKEN"]=t.csrfToken),t.locale&&(n.defaults.headers.common["X-Admin-Locale"]=t.locale),n.interceptors.request.use(l=>{const o=qc("XSRF-TOKEN");return o&&l.headers.set("X-XSRF-TOKEN",decodeURIComponent(o)),l}),n.interceptors.response.use(l=>{const o=l.data;if(o&&typeof o=="object"&&"success"in o){if(Mn(o))return l.data=o.payload,l;throw Xe(l.status,o.payload)}return l},l=>{if(l.response){const o=l.response.status,i=l.response.data?.payload??{errorKey:"unknown",message:l.message},s=Xe(o,i);return s instanceof ct&&t.onUnauthenticated?.(),Promise.reject(s)}return Promise.reject(new Se(l.message))});const a=(l,o,i)=>n[l](o,i).then(s=>s.data),r=(l,o,i,s)=>n[l](o,i,s).then(u=>u.data);return{raw:n,get:(l,o)=>a("get",l,o),delete:(l,o)=>a("delete",l,o),post:(l,o,i)=>r("post",l,o,i),put:(l,o,i)=>r("put",l,o,i),patch:(l,o,i)=>r("patch",l,o,i),setLocale:l=>{n.defaults.headers.common["X-Admin-Locale"]=l}}}function qc(t){if(typeof document>"u")return null;const n=document.cookie.match(new RegExp("(^|; )"+jc(t)+"=([^;]*)"));return n?n[2]:null}function jc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const Oc=le.defineStore("admin-i18n",()=>{const t=e.ref({}),n=e.ref("ru");function a(i){const s=i.translations;s&&typeof s=="object"&&(t.value={...s}),n.value=i.locale??"ru"}function r(i){t.value={...i}}function l(i,s={}){let u=t.value[i]??i;for(const[f,p]of Object.entries(s))u=u.replace(new RegExp(`:${f}`,"g"),String(p));return u}return{messages:t,locale:n,hydrate:a,setMessages:r,t:l,has:i=>i in t.value,keys:e.computed(()=>Object.keys(t.value))}});function Fe(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function Wc(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function Hc(t){return Array.isArray(t.permission)?t.permission:typeof t.permission=="string"&&t.permission.length>0?[t.permission]:[]}function Kc(t,n){const a=t.slug,r=`/r/${a}`;return[{path:r,name:`admin.resource.${a}.index`,component:n.resourceIndex,meta:{requiresAuth:!0,kind:"resource",slug:a,title:t.label,permissions:Fe(t,"view")},props:{slug:a}},{path:`${r}/create`,name:`admin.resource.${a}.create`,component:n.resourceCreate,meta:{requiresAuth:!0,kind:"resource",slug:a,title:`${t.label}: создать`,permissions:Fe(t,"create")},props:{slug:a}},{path:`${r}/:id/edit`,name:`admin.resource.${a}.edit`,component:n.resourceEdit,meta:{requiresAuth:!0,kind:"resource",slug:a,title:`${t.label}: редактирование`,permissions:Fe(t,"update")},props:l=>({slug:a,id:l.params.id})},{path:`${r}/:id`,name:`admin.resource.${a}.view`,component:n.resourceView,meta:{requiresAuth:!0,kind:"resource",slug:a,title:t.label,permissions:Fe(t,"view")},props:l=>({slug:a,id:l.params.id})}]}function Gc(t,n){return{path:`/screens/${t.slug}`,name:`admin.screen.${t.slug}`,component:n.screen,meta:{requiresAuth:!0,kind:"screen",slug:t.slug,title:t.name,permissions:Hc(t)}}}function Xc(t,n){return{path:`/settings/${t.slug}`,name:`admin.settings.${t.slug}`,component:n.settings,meta:{requiresAuth:!0,kind:"settings",slug:t.slug,title:t.label,permissions:Wc(t,"view")}}}function Zc(t,n){if(typeof t.slug!="string"||t.slug.length===0)return null;const a=t.permission,r=Array.isArray(a)?a:typeof a=="string"&&a.length>0?[a]:[];return{path:`/dashboard/${t.slug}`,name:`admin.dashboard.${t.slug}`,component:n.dashboard,meta:{requiresAuth:!0,kind:"dashboard",slug:t.slug,title:t.label??"Dashboard",permissions:r}}}function In(t,n){if(t===null)return[];const a=[];for(const r of t.resources)a.push(...Kc(r,n));for(const r of t.screens)a.push(Gc(r,n));for(const r of t.settings)a.push(Xc(r,n));for(const r of t.dashboards){const l=Zc(r,n);l&&a.push(l)}return a}function Dn(t={}){const n=t.loginRouteName??"admin.login",a=t.forbiddenRouteName??"admin.forbidden",r=t.redirectQueryKey??"redirect";return l=>{if(l.name===n)return!0;const o=oe();if(l.meta?.requiresAuth===!0&&!o.isAuthenticated)return{name:n,query:{[r]:l.fullPath}};if(o.isChallengePending)return{name:n,query:{[r]:l.fullPath}};const s=l.meta?.permissions;return Array.isArray(s)&&s.length>0&&!o.hasAnyPermission(s)?{name:a}:!0}}function Fn(t={}){const n=t.template,a=t.brand??"",r=t.fallback??"";return l=>{if(typeof document>"u")return;const o=l.meta?.title??r;let i;n?i=n.replace("{title}",o).replace("{brand}",a):o&&a?i=`${o} · ${a}`:i=o||a,document.title=i}}const Yc=["admin.resource.","admin.screen.","admin.settings.","admin.dashboard."];function Jc(t){return typeof t!="string"?!1:Yc.some(n=>t.startsWith(n))}function An(t){const n=t.base??"/admin",a=t.history??Z.createWebHistory(n),r=[{path:"/login",name:"admin.login",component:t.components.login,meta:{kind:"auth",title:"Вход"}},{path:"/",name:"admin.home",component:t.components.home,meta:{requiresAuth:!0,kind:"system",title:"Главная"}},{path:"/forbidden",name:"admin.forbidden",component:t.components.forbidden,meta:{requiresAuth:!0,kind:"system",title:"403 — доступ запрещён"}}];t.components.profile&&r.push({path:"/profile",name:"admin.profile",component:t.components.profile,meta:{requiresAuth:!0,kind:"system",title:"Профиль"}}),t.components.notifications&&r.push({path:"/notifications",name:"admin.notifications",component:t.components.notifications,meta:{requiresAuth:!0,kind:"system",title:"Уведомления"}}),t.components.forgotPassword&&r.push({path:"/forgot-password",name:"admin.forgotPassword",component:t.components.forgotPassword,meta:{kind:"auth",title:"Восстановление пароля"}}),t.components.resetPassword&&r.push({path:"/reset-password",name:"admin.resetPassword",component:t.components.resetPassword,meta:{kind:"auth",title:"Новый пароль"}});const l={path:"/:pathMatch(.*)*",name:"admin.notFound",component:t.components.notFound,meta:{kind:"system",title:"404"}},o=Z.createRouter({history:a,routes:[...r,...t.extraRoutes??[],l]});return o.beforeEach(Dn(t.authGuard)),o.afterEach(Fn(t.titleGuard)),o.replaceManifestRoutes=i=>{const s=o.getRoutes();for(const f of s)Jc(f.name)&&o.removeRoute(f.name);o.hasRoute("admin.notFound")&&o.removeRoute("admin.notFound");const u=In(i,t.components);for(const f of u)o.addRoute(f);o.addRoute(l)},o}const ae=e.defineComponent({__name:"TextField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},inputType:{default:"text"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autocomplete:{default:null}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>a.getField(n.name)??""),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidInput),{"model-value":r.value,type:t.inputType,label:t.label??void 0,hint:t.help??void 0,error:l.value,placeholder:t.placeholder??void 0,required:t.required,disabled:t.disabled,readonly:t.readonly,name:t.name,autocomplete:t.autocomplete??void 0,"onUpdate:modelValue":o},null,8,["model-value","type","label","hint","error","placeholder","required","disabled","readonly","name","autocomplete"]))}}),Ve=e.defineComponent({__name:"TextAreaField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},rows:{default:4},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>a.getField(n.name)??""),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:l.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidTextarea),{"model-value":r.value,rows:t.rows,placeholder:t.placeholder??void 0,disabled:t.disabled,readonly:t.readonly,name:t.name,"onUpdate:modelValue":o},null,8,["model-value","rows","placeholder","disabled","readonly","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),Le=e.defineComponent({__name:"NumberField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},min:{default:null},max:{default:null},step:{default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:typeof i=="number"?i:Number(i)}),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:l.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidNumberInput),{"model-value":r.value,min:t.min??void 0,max:t.max??void 0,step:t.step??void 0,placeholder:t.placeholder??void 0,disabled:t.disabled,readonly:t.readonly,name:t.name,"onUpdate:modelValue":o},null,8,["model-value","min","max","step","placeholder","disabled","readonly","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),de=e.defineComponent({__name:"SelectField",props:{name:{},options:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},disabled:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},size:{default:"md"}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:i}),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:l.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidSelect),{"model-value":r.value,options:t.options,placeholder:t.placeholder??void 0,disabled:t.disabled,searchable:t.searchable,clearable:t.clearable,size:t.size,"onUpdate:modelValue":o},null,8,["model-value","options","placeholder","disabled","searchable","clearable","size"])]),_:1},8,["label","hint","error","required","disabled"]))}}),Ne=e.defineComponent({__name:"CheckboxField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},inlineLabel:{default:null},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>!!a.getField(n.name)),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:l.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidCheckbox),{"model-value":r.value,disabled:t.disabled,name:t.name,"onUpdate:modelValue":o},{default:e.withCtx(()=>[t.inlineLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.inlineLabel),1)],64)):e.createCommentVNode("",!0)]),_:1},8,["model-value","disabled","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),me=e.defineComponent({__name:"DateField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},inputType:{default:"date"},min:{default:null},max:{default:null},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:String(i)}),l=e.computed(()=>a.errors[n.name]?.[0]);function o(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:l.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidDatePicker),{"model-value":r.value,min:t.min??void 0,max:t.max??void 0,disabled:t.disabled,name:t.name,"onUpdate:modelValue":o},null,8,["model-value","min","max","disabled","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),Qc={key:0,class:"admin-field__label"},ed={key:0,class:"admin-field__required","aria-hidden":"true"},td={class:"admin-tags__chip-text"},nd=["onClick"],ad=["value","placeholder","disabled"],od={key:0,class:"admin-tags__dropdown",role:"listbox"},ld={class:"admin-tags__group-label"},rd=["aria-selected","onMousedown","onMouseenter"],id=["aria-selected","onMousedown","onMouseenter"],sd={key:1,class:"admin-field__error"},cd={key:2,class:"admin-field__help"},dd=e.defineComponent({__name:"TagsField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:"Введите ключ и нажмите Enter…"},suggestions:{default:()=>[]},suggestionsByGroup:{default:()=>[]},maxItems:{default:0},separator:{default:","},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const v=a.getField(n.name);return Array.isArray(v)?v.map(y=>String(y)):typeof v=="string"&&v!==""?v.split(",").map(y=>y.trim()).filter(Boolean):[]}),l=e.computed(()=>a.errors[n.name]?.[0]),o=e.ref(""),i=e.ref(!1),s=e.ref(null),u=e.ref(null);function f(v){const y=new Set,_=[];for(const A of v){const z=A.trim();if(!(z===""||y.has(z))&&(y.add(z),_.push(z),n.maxItems>0&&_.length>=n.maxItems))break}a.setField(n.name,_)}function p(v){const y=v.trim();if(y!==""){if(r.value.includes(y)){o.value="";return}f([...r.value,y]),o.value=""}}function g(v){const y=[...r.value];y.splice(v,1),f(y)}function d(v){v.key==="Enter"?(v.preventDefault(),h.value>=0&&w.value[h.value]?p(w.value[h.value]):o.value.trim()!==""&&p(o.value)):v.key==="Backspace"&&o.value===""&&r.value.length>0?g(r.value.length-1):v.key==="ArrowDown"?(v.preventDefault(),h.value=Math.min(h.value+1,w.value.length-1)):v.key==="ArrowUp"?(v.preventDefault(),h.value=Math.max(h.value-1,-1)):v.key==="Escape"&&(i.value=!1,s.value?.blur())}function N(v){const y=v.target.value;if(n.separator&&y.includes(n.separator)){const _=y.split(n.separator);_.slice(0,-1).map(z=>z.trim()).filter(Boolean).forEach(p),o.value=_[_.length-1]??"";return}o.value=y}const h=e.ref(-1),k=e.computed(()=>Array.isArray(n.suggestionsByGroup)&&n.suggestionsByGroup.length>0),m=e.computed(()=>{const v=o.value.trim().toLowerCase(),y=new Set(r.value);return k.value?n.suggestionsByGroup.map(_=>({label:_.label,items:_.items.filter(A=>!y.has(A)&&(v===""||A.toLowerCase().includes(v)))})).filter(_=>_.items.length>0):[]}),w=e.computed(()=>{if(k.value)return m.value.flatMap(_=>_.items);const v=o.value.trim().toLowerCase(),y=new Set(r.value);return n.suggestions.filter(_=>!y.has(_)).filter(_=>v===""||_.toLowerCase().includes(v)).slice(0,200)});function B(v){return v===h.value}e.watch(o,()=>{h.value=-1});function x(){n.disabled||s.value?.focus()}function C(v){p(v),e.nextTick(()=>s.value?.focus())}function T(){window.setTimeout(()=>{i.value=!1,o.value.trim()!==""&&p(o.value)},120)}return(v,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":l.value!==void 0}])},[t.label?(e.openBlock(),e.createElementBlock("label",Qc,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.required?(e.openBlock(),e.createElementBlock("span",ed,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"containerRef",ref:u,class:e.normalizeClass(["admin-field__control admin-tags",{"admin-tags--focused":i.value,"admin-tags--disabled":t.disabled}]),onClick:x},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,A)=>(e.openBlock(),e.createElementBlock("span",{key:`${_}-${A}`,class:"admin-tags__chip"},[e.createElementVNode("span",td,e.toDisplayString(_),1),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-tags__chip-remove","aria-label":"Удалить",onClick:e.withModifiers(z=>g(A),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ye),size:10},null,8,["icon"])],8,nd))]))),128)),e.createElementVNode("input",{ref_key:"inputRef",ref:s,value:o.value,placeholder:r.value.length===0?t.placeholder??"":"",disabled:t.disabled,class:"admin-tags__input",type:"text",onInput:N,onKeydown:d,onFocus:y[0]||(y[0]=_=>i.value=!0),onBlur:T},null,40,ad),i.value&&w.value.length>0?(e.openBlock(),e.createElementBlock("div",od,[k.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(_,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:`g-${A}-${_.label}`},[e.createElementVNode("div",ld,e.toDisplayString(_.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.items,z=>(e.openBlock(),e.createElementBlock("button",{key:z,type:"button",role:"option",class:e.normalizeClass(["admin-tags__option",{"admin-tags__option--active":B(w.value.indexOf(z))}]),"aria-selected":B(w.value.indexOf(z)),onMousedown:e.withModifiers(W=>C(z),["prevent"]),onMouseenter:W=>h.value=w.value.indexOf(z)},e.toDisplayString(z),43,rd))),128))],64))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(w.value,(_,A)=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",role:"option",class:e.normalizeClass(["admin-tags__option",{"admin-tags__option--active":A===h.value}]),"aria-selected":A===h.value,onMousedown:e.withModifiers(z=>C(_),["prevent"]),onMouseenter:z=>h.value=A},e.toDisplayString(_),43,id))),128))])):e.createCommentVNode("",!0)],2),l.value?(e.openBlock(),e.createElementBlock("p",sd,e.toDisplayString(l.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",cd,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),ud={key:0,class:"admin-field__label"},md={key:0,class:"admin-field__required","aria-hidden":"true"},fd={class:"admin-translatable"},pd={class:"admin-translatable__tabs",role:"tablist"},vd=["aria-selected","onClick"],hd={key:0,class:"admin-translatable__dot","aria-hidden":"true"},yd={class:"admin-translatable__panel"},gd=["value","placeholder","rows","disabled"],kd={key:1,class:"admin-field__error"},_d={key:2,class:"admin-field__help"},Ft=e.defineComponent({__name:"TranslatableField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},locales:{default:void 0},multiline:{type:Boolean,default:!1},rows:{default:3},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=Ce(),l=e.computed(()=>n.locales??r.available??[r.current??"ru"]),o=e.ref(r.current??l.value[0]??"ru"),i=e.computed(()=>{const p=a.getField(n.name);return p&&typeof p=="object"&&!Array.isArray(p)?p:typeof p=="string"?{[o.value]:p}:{}});function s(p,g){const d={...i.value};d[p]=g,a.setField(n.name,d)}const u=e.computed(()=>{const p=a.errors[n.name];if(p?.[0])return p[0];for(const g of l.value){const d=a.errors[`${n.name}.${g}`]?.[0];if(d)return`[${g}] ${d}`}});function f(p){const g=i.value[p];return typeof g=="string"&&g.trim()!==""}return(p,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":u.value!==void 0}])},[t.label?(e.openBlock(),e.createElementBlock("label",ud,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.required?(e.openBlock(),e.createElementBlock("span",md,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",fd,[e.createElementVNode("div",pd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,type:"button",role:"tab",class:e.normalizeClass(["admin-translatable__tab",{"admin-translatable__tab--active":o.value===d,"admin-translatable__tab--filled":f(d)}]),"aria-selected":o.value===d,onClick:N=>o.value=d},[e.createTextVNode(e.toDisplayString(d.toUpperCase())+" ",1),f(d)?(e.openBlock(),e.createElementBlock("span",hd)):e.createCommentVNode("",!0)],10,vd))),128))]),e.createElementVNode("div",yd,[t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,value:i.value[o.value]??"",placeholder:t.placeholder??"",rows:t.rows,disabled:t.disabled,class:"admin-translatable__textarea",onInput:g[1]||(g[1]=d=>s(o.value,d.target.value))},null,40,gd)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:0,"model-value":i.value[o.value]??"",placeholder:t.placeholder??"",disabled:t.disabled,"onUpdate:modelValue":g[0]||(g[0]=d=>s(o.value,d))},null,8,["model-value","placeholder","disabled"]))])]),u.value?(e.openBlock(),e.createElementBlock("p",kd,e.toDisplayString(u.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",_d,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),et=e.defineComponent({__name:"RowsLayout",props:{items:{},gap:{default:"var(--uid-space-md)"}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidStack),{direction:"column",gap:t.gap,align:"stretch"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,l)=>(e.openBlock(),e.createBlock(be,{key:l,node:r},null,8,["node"]))),128))]),_:1},8,["gap"]))}}),Ln=e.defineComponent({__name:"ColumnsLayout",props:{items:{},gap:{default:"var(--uid-space-md)"},cols:{default:12}},setup(t){const n=t,a=e.computed(()=>n.items.length===0?n.cols:Math.max(1,Math.floor(n.cols/n.items.length)));function r(l){const o=l.span;return typeof o=="number"&&o>0?Math.min(o,n.cols):a.value}return(l,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidGrid),{cols:t.cols,gap:t.gap},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,s)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:"admin-columns__item",style:e.normalizeStyle({gridColumn:`span ${r(i)} / span ${r(i)}`})},[e.createVNode(be,{node:i},null,8,["node"])],4))),128))]),_:1},8,["cols","gap"]))}}),bd={key:0,class:"admin-section__header"},wd={key:0,class:"admin-section__title"},Bd={key:1,class:"admin-section__description"},Vd={class:"admin-section__body"},ve=e.defineComponent({__name:"SectionLayout",props:{items:{},title:{default:null},description:{default:null}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-section"},{default:e.withCtx(()=>[t.title||t.description?(e.openBlock(),e.createElementBlock("header",bd,[t.title?(e.openBlock(),e.createElementBlock("h3",wd,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",Bd,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Vd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,l)=>(e.openBlock(),e.createBlock(be,{key:l,node:r},null,8,["node"]))),128))])]),_:1}))}}),zn=e.defineComponent({__name:"TabsLayout",props:{items:{},active:{default:0}},emits:["update:active"],setup(t,{emit:n}){const a=t,r=n;function l(s,u){return s.key??u}const o=e.ref(a.active??l(a.items[0]??{},0));function i(s){o.value=s,r("update:active",s)}return(s,u)=>(e.openBlock(),e.createBlock(e.unref(c.UidTabs),{"model-value":o.value,"onUpdate:modelValue":i},{list:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createBlock(e.unref(c.UidTab),{key:l(f,p),value:l(f,p)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["value"]))),128))]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createBlock(e.unref(c.UidTabPanel),{key:`panel-${l(f,p)}`,value:l(f,p)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.items,(g,d)=>(e.openBlock(),e.createBlock(be,{key:d,node:g},null,8,["node"]))),128))]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"]))}});function Rn(){bn({fields:{input:ae,text:ae,email:ae,url:ae,password:ae,tel:ae,search:ae,slug:ae,hidden:ae,label:ae,textarea:Ve,wysiwyg:Ve,markdown:Ve,code:Ve,number:Le,slider:Le,rating:Le,select:de,combobox:de,radio:de,tags:dd,translatable:Ft,"translatable-text":Ft,"morph-switcher":de,relation:de,cascader:de,"tree-select":de,checkbox:Ne,switch:Ne,switcher:Ne,boolean:Ne,date:me,datetime:me,datepicker:me,"date-range":me,time:me,"time-picker":me,"color-picker":ae},layouts:{rows:et,columns:Ln,section:ve,block:ve,tabs:zn,accordion:ve,group:et,step:ve,wizard:ve}})}const Nd={key:0,class:"admin-infolist-entry"},xd={class:"admin-infolist-entry__label"},P=e.defineComponent({__name:"TextEntry",props:{name:{default:""},label:{default:""},value:{default:void 0},placeholder:{default:"—"},mono:{type:Boolean,default:!1},preset:{default:void 0},meta:{default:()=>({})}},setup(t){const n=t,a=Ue(),r=e.computed(()=>{let o=n.value;if(o===void 0&&a&&n.name&&(o=a[n.name]),o==null||o==="")return n.placeholder;const i=kn(o,n.preset,n.meta);return i===""?n.placeholder:i}),l=e.computed(()=>!!n.label);return(o,i)=>l.value?(e.openBlock(),e.createElementBlock("div",Nd,[e.createElementVNode("span",xd,e.toDisplayString(t.label),1),e.createElementVNode("span",{class:e.normalizeClass(["admin-infolist-entry__value",t.mono?"admin-infolist-entry__value--mono":""])},e.toDisplayString(r.value),3)])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(["admin-infolist-text",t.mono?"admin-infolist-text--mono":""])},e.toDisplayString(r.value),3))}}),Cd={key:1,class:"admin-infolist-text"},Pn=e.defineComponent({__name:"BadgeEntry",props:{name:{default:""},label:{default:""},value:{default:void 0},map:{default:()=>({})},variant:{default:void 0}},setup(t){const n=t,a=Ue(),r=e.computed(()=>{let o=n.value;return o===void 0&&a&&n.name&&(o=a[n.name]),o==null?"":String(o)}),l=e.computed(()=>n.variant?n.variant:n.map[r.value]??"default");return(o,i)=>r.value?(e.openBlock(),e.createBlock(e.unref(c.UidBadge),{key:0,variant:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value),1)]),_:1},8,["variant"])):(e.openBlock(),e.createElementBlock("span",Cd,"—"))}}),Ed=["data-icon"],$d={key:0},qn=e.defineComponent({__name:"IconEntry",props:{name:{default:""},label:{default:""},value:{type:[Boolean,null],default:void 0},trueIcon:{default:"check-circle-2"},falseIcon:{default:"circle"},trueLabel:{default:""},falseLabel:{default:""}},setup(t){const n=t,a=Ue(),r=e.computed(()=>{let i=n.value;return i===void 0&&a&&n.name&&(i=a[n.name]),!!i}),l=e.computed(()=>r.value?n.trueLabel:n.falseLabel),o=e.computed(()=>r.value?n.trueIcon:n.falseIcon);return(i,s)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["admin-infolist-icon",r.value?"admin-infolist-icon--on":"admin-infolist-icon--off"])},[e.createElementVNode("span",{class:"admin-infolist-icon__glyph","data-icon":o.value},null,8,Ed),l.value?(e.openBlock(),e.createElementBlock("span",$d,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}}),Sd={key:1,class:"admin-infolist-text"},tt=e.defineComponent({__name:"KeyValueEntry",props:{name:{default:""},label:{default:""},value:{default:void 0}},setup(t){const n=t,a=Ue(),r=e.computed(()=>{let o=n.value;return o===void 0&&a&&n.name&&(o=a[n.name]),o==null?[]:typeof o!="object"?[]:Object.entries(o)});function l(o){return o==null?"—":typeof o=="object"?JSON.stringify(o):String(o)}return(o,i)=>r.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidDescriptionList),{key:0,direction:"vertical",columns:1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,([s,u])=>(e.openBlock(),e.createBlock(e.unref(c.UidDescriptionItem),{key:s,label:s},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l(u)),1)]),_:2},1032,["label"]))),128))]),_:1})):(e.openBlock(),e.createElementBlock("span",Sd,"—"))}});function jn(){wn({text:P,badge:Pn,icon:qn,keyvalue:tt,"key-value":tt,input:P,email:P,url:P,password:P,tel:P,search:P,slug:P,hidden:P,label:P,textarea:P,wysiwyg:P,markdown:P,code:P,number:P,slider:P,rating:P,select:P,combobox:P,radio:P,tags:P,"morph-switcher":P,relation:P,cascader:P,"tree-select":P,checkbox:P,switch:P,switcher:P,boolean:P,date:P,datetime:P,datepicker:P,"date-range":P,time:P,"time-picker":P,"color-picker":P})}function Ud(t,n={}){const a=n.pages??{},r=n.base??Md(t.baseUrl)??"/admin",l=Tn({baseURL:t.apiUrl,csrfToken:t.csrf});rt(l);const o=e.createApp(on),i=le.createPinia();o.use(i),oe().hydrate(t),Ce().hydrate(t),qe().hydrate(t),Ee().hydrate(t),Oc().hydrate(t),Rn(),Un(),jn();const s=An({base:r,history:n.router?.history??Z.createWebHistory(r),components:{login:a.login??gn,home:a.home??un,forbidden:a.forbidden??mn,notFound:a.notFound??fn,profile:a.profile??Cn,forgotPassword:a.forgotPassword??Ar,resetPassword:a.resetPassword??jr,resourceIndex:a.resourceIndex??_n,resourceCreate:a.resourceCreate??Ye,resourceEdit:a.resourceEdit??Ye,resourceView:a.resourceView??xn,dashboard:a.dashboard??ft,settings:a.settings??pn,screen:a.screen??vn},extraRoutes:n.router?.extraRoutes,authGuard:n.router?.authGuard,titleGuard:n.router?.titleGuard});o.use(s);const u=ut();if(s.beforeEach((f,p,g)=>{f.fullPath!==p.fullPath&&u.start(),g()}),s.afterEach(()=>{u.end()}),s.onError(()=>{u.end()}),s.beforeResolve(async(f,p,g)=>{const d=typeof f.name=="string"?f.name:null;if(d&&d.startsWith("admin.resource.")&&d.endsWith(".index")){const N=f.params.slug??f.meta.slug;if(N)try{const{useResourceIndexStore:h}=await Promise.resolve().then(()=>Or),k=h();(k.slug!==N||k.items.length===0)&&(k.setSlug(N),await k.load().catch(()=>{}))}catch{}}g()}),n.skipManifestLoad)ie().bootResolved=!0;else{const f=ie(),p=oe(),g=dt(),d=async()=>{g.load().catch(()=>{});try{const N=await f.load();s.replaceManifestRoutes(N);const h=s.currentRoute.value;h.name==="admin.notFound"&&h.fullPath!=="/"&&await s.replace(h.fullPath).catch(()=>{})}catch(N){typeof console<"u"&&console.error("[laravel-admin] manifest load failed:",N)}finally{f.bootResolved=!0}};p.isAuthenticated?d():f.bootResolved=!0,e.watch(()=>p.user,(N,h)=>{N&&!h&&(f.bootResolved=!1,d())})}return n.onAppCreated?.(o),{app:o,router:s,client:l}}function Md(t){if(!t)return null;try{return new URL(t).pathname||"/admin"}catch{return t.startsWith("/")?t:null}}async function Td(t={}){const n=On();if(n)return n;if(t.client)try{const a=t.xhrUrl??"/system/bootstrap";return await t.client.get(a)}catch(a){if(a instanceof Se)return null;throw a}return null}function On(){return typeof window>"u"?null:window.__ADMIN_BOOTSTRAP__??null}function Id(){return typeof document>"u"?null:document.querySelector('meta[name="csrf-token"]')?.getAttribute("content")??null}const Dd={class:"admin-notifs__hd"},Fd={class:"admin-notifs__title"},Ad={key:0,class:"admin-notifs__count"},Ld={class:"admin-notifs__list"},zd={key:0,class:"admin-notifs__empty"},Rd={key:1,class:"admin-notifs__empty"},Pd=["onClick"],qd=["data-kind"],jd={class:"admin-notifs__body"},Od={class:"admin-notifs__row1"},Wd={key:0,class:"admin-notifs__title-strong"},Hd={key:1,class:"admin-notifs__title-soft"},Kd={class:"admin-notifs__time"},Gd={key:0,class:"admin-notifs__text"},Xd=["onClick"],Zd=e.defineComponent({__name:"NotificationsDrawer",props:{open:{type:Boolean}},emits:["update:open","select-item"],setup(t,{emit:n}){const a=t,r=n,l=Ee();function o(k){r("update:open",k)}e.watch(()=>a.open,async k=>{k&&await l.load(l.lastFilter??"all",1).catch(()=>{})},{immediate:!0});const i=e.computed(()=>l.lastFilter??"all");async function s(k){await l.load(k,1).catch(()=>{})}async function u(){await l.markAllAsRead().catch(()=>{})}async function f(k){r("select-item",k),k.read_at||await l.markAsRead(k.id).catch(()=>{})}async function p(k,m){m.stopPropagation(),await l.destroy(k.id).catch(()=>{})}function g(k){const m=k.data.level;return m==="success"||m==="warning"||m==="danger"?m:"info"}function d(k){return k.data.title??"—"}function N(k){return k.data.body??""}function h(k){if(!k)return"";const m=new Date(k),w=Math.max(0,Date.now()-m.getTime()),B=Math.floor(w/6e4);if(B<1)return"только что";if(B<60)return`${B} мин назад`;const x=Math.floor(B/60);if(x<24)return`${x} ч назад`;const C=Math.floor(x/24);return C<7?`${C} д назад`:m.toLocaleDateString("ru-RU")}return(k,m)=>(e.openBlock(),e.createBlock(e.unref(c.UidDrawer),{"model-value":t.open,side:"right",width:"400px",title:"Уведомления","onUpdate:modelValue":o},{header:e.withCtx(()=>[e.createElementVNode("div",Dd,[e.createElementVNode("h2",Fd,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(l).unreadCount>0?(e.openBlock(),e.createElementBlock("span",Ad," ("+e.toDisplayString(e.unref(l).unreadCount)+") ",1)):e.createCommentVNode("",!0)]),e.unref(l).unreadCount>0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",size:"sm",onClick:u},{default:e.withCtx(()=>[...m[1]||(m[1]=[e.createTextVNode(" Прочитать все ",-1)])]),_:1})):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidTabs),{"model-value":i.value,"onUpdate:modelValue":s},{list:e.withCtx(()=>[e.createVNode(e.unref(c.UidTab),{value:"all"},{default:e.withCtx(()=>[...m[2]||(m[2]=[e.createTextVNode("Все",-1)])]),_:1}),e.createVNode(e.unref(c.UidTab),{value:"unread"},{default:e.withCtx(()=>[m[3]||(m[3]=e.createTextVNode(" Непрочитанные",-1)),e.unref(l).unreadCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(e.unref(l).unreadCount)+") ",1)],64)):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(c.UidTab),{value:"read"},{default:e.withCtx(()=>[...m[4]||(m[4]=[e.createTextVNode("Прочитанные",-1)])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["all","unread","read"],w=>e.createVNode(e.unref(c.UidTabPanel),{key:w,value:w},{default:e.withCtx(()=>[e.createElementVNode("ul",Ld,[e.unref(l).loading?(e.openBlock(),e.createElementBlock("li",zd," Загрузка… ")):e.unref(l).items.length===0?(e.openBlock(),e.createElementBlock("li",Rd," Нет уведомлений ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).items,B=>(e.openBlock(),e.createElementBlock("li",{key:B.id,class:e.normalizeClass(["admin-notifs__item",`admin-notifs__item--${g(B)}`,{"admin-notifs__item--unread":!B.read_at}]),onClick:x=>f(B)},[e.createElementVNode("span",{class:"admin-notifs__icon","data-kind":g(B)},null,8,qd),e.createElementVNode("div",jd,[e.createElementVNode("div",Od,[B.read_at?(e.openBlock(),e.createElementBlock("span",Hd,e.toDisplayString(d(B)),1)):(e.openBlock(),e.createElementBlock("strong",Wd,e.toDisplayString(d(B)),1)),e.createElementVNode("span",Kd,e.toDisplayString(h(B.created_at)),1)]),N(B)?(e.openBlock(),e.createElementBlock("p",Gd,e.toDisplayString(N(B)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"admin-notifs__close","aria-label":"Удалить",onClick:x=>p(B,x)}," × ",8,Xd)],10,Pd))),128))])]),_:1},8,["value"])),64))]),_:1},8,["model-value"])]),_:1},8,["model-value"]))}}),Yd={class:"admin-page admin-import-wizard"},Jd={class:"admin-page__hd"},Qd={class:"admin-page__title-wrap"},eu={class:"admin-page__title"},tu={class:"admin-page__actions"},nu={key:0,class:"admin-import-wizard__empty"},au={key:1,class:"admin-import-wizard__mapping"},ou={class:"admin-import-wizard__map-source"},lu={key:0,class:"admin-import-wizard__map-sample"},ru={class:"admin-import-wizard__card-hd"},iu={key:2,class:"admin-import-wizard__empty"},su={key:0,class:"admin-import-wizard__empty"},cu={class:"admin-import-wizard__kpi"},du={class:"admin-import-wizard__nav"},uu=e.defineComponent({__name:"ImportWizardPage",props:{title:{default:"Импорт"},fieldOptions:{},headers:{default:()=>[]},preview:{default:()=>[]},previewColumns:{default:()=>[]},progress:{default:null},step:{default:void 0}},emits:["file-uploaded","mapping-submit","run-import","cancel"],setup(t,{emit:n}){const a=t,r=n,l=[{label:"Загрузка",description:"CSV / TSV / XLSX"},{label:"Сопоставление",description:"Колонки файла → поля"},{label:"Предпросмотр",description:"Проверка первых строк"},{label:"Импорт",description:"Запуск + сводка"}],o=e.ref(0),i=e.computed(()=>a.step??o.value);function s(x){a.step===void 0&&(x<0||x>=l.length||(o.value=x))}const u=e.ref([]);function f(x){u.value=x,x.length>0&&r("file-uploaded",x[0].file)}const p=e.ref({});function g(x,C){p.value[x]=C===null||C===""?null:String(C)}function d(){return a.headers.map(x=>({source:x.key,target:p.value[x.key]??null}))}function N(){r("mapping-submit",d()),s(2)}function h(){r("run-import"),s(3)}const k=e.computed(()=>i.value>0),m=e.computed(()=>{switch(i.value){case 0:return u.value.length>0;case 1:return Object.values(p.value).some(x=>x!==null);case 2:return!0;default:return!1}}),w=e.computed(()=>[{value:"",label:"Не импортировать"},...a.fieldOptions]);function B(){r("cancel")}return(x,C)=>(e.openBlock(),e.createElementBlock("section",Yd,[e.createElementVNode("header",Jd,[e.createElementVNode("div",Qd,[e.createElementVNode("h1",eu,e.toDisplayString(t.title),1)]),e.createElementVNode("div",tu,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:B},{default:e.withCtx(()=>[...C[2]||(C[2]=[e.createTextVNode("Отмена",-1)])]),_:1})])]),e.createVNode(e.unref(c.UidStepper),{steps:l,current:i.value},null,8,["current"]),i.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[3]||(C[3]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"1. Загрузите файл"),e.createElementVNode("p",null,"CSV / TSV / XLSX, до 50 MB")],-1)),e.createVNode(e.unref(c.UidFileUpload),{"model-value":u.value,accept:".csv,.tsv,.xlsx","max-size":50*1024*1024,"max-files":1,"primary-text":"Перетащите файл сюда или","secondary-text":"нажмите чтобы выбрать","onUpdate:modelValue":f},null,8,["model-value"])]),_:1})):i.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[5]||(C[5]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"2. Сопоставьте колонки"),e.createElementVNode("p",null,"Выберите поле ресурса для каждой колонки файла")],-1)),t.headers.length===0?(e.openBlock(),e.createElementBlock("div",nu," Нет данных — host ещё не отдал headers. Загрузите файл сначала. ")):(e.openBlock(),e.createElementBlock("div",au,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,T=>(e.openBlock(),e.createElementBlock("div",{key:T.key,class:"admin-import-wizard__map-row"},[e.createElementVNode("div",ou,[e.createElementVNode("strong",null,e.toDisplayString(T.label),1),T.sample?(e.openBlock(),e.createElementBlock("span",lu," «"+e.toDisplayString(T.sample)+"» ",1)):e.createCommentVNode("",!0)]),C[4]||(C[4]=e.createElementVNode("span",{class:"admin-import-wizard__map-arrow"},"→",-1)),e.createVNode(e.unref(c.UidSelect),{"model-value":p.value[T.key]??"",options:w.value,placeholder:"Не импортировать","onUpdate:modelValue":v=>g(T.key,v)},null,8,["model-value","options","onUpdate:modelValue"])]))),128))]))]),_:1})):i.value===2?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:2,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[e.createElementVNode("header",ru,[C[6]||(C[6]=e.createElementVNode("h3",null,"3. Предпросмотр",-1)),e.createElementVNode("p",null,"Первые "+e.toDisplayString(t.preview.length)+" строк перед импортом",1)]),t.preview.some(T=>T.__warning)?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"warning",style:{"margin-bottom":"var(--uid-space-md)"}},{default:e.withCtx(()=>[...C[7]||(C[7]=[e.createTextVNode(" Часть строк имеет предупреждения — проверьте перед импортом. ",-1)])]),_:1})):e.createCommentVNode("",!0),t.previewColumns.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidTable),{key:1,columns:t.previewColumns,data:t.preview},null,8,["columns","data"])):(e.openBlock(),e.createElementBlock("div",iu," Host не передал previewColumns/preview. "))]),_:1})):(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:3,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[8]||(C[8]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"4. Импорт")],-1)),t.progress?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.progress.total>0?(e.openBlock(),e.createBlock(e.unref(c.UidProgress),{key:0,"model-value":t.progress.created+t.progress.updated+t.progress.errors,max:t.progress.total},null,8,["model-value","max"])):e.createCommentVNode("",!0),e.createElementVNode("div",cu,[e.createVNode(e.unref(c.UidStat),{title:"Создано",value:t.progress.created,tone:"success"},null,8,["value"]),e.createVNode(e.unref(c.UidStat),{title:"Обновлено",value:t.progress.updated,tone:"info"},null,8,["value"]),e.createVNode(e.unref(c.UidStat),{title:"Ошибки",value:t.progress.errors,tone:"danger"},null,8,["value"])])],64)):(e.openBlock(),e.createElementBlock("div",su," Запускается импорт… "))]),_:1})),e.createElementVNode("footer",du,[k.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",onClick:C[0]||(C[0]=T=>s(i.value-1))},{default:e.withCtx(()=>[...C[9]||(C[9]=[e.createTextVNode(" Назад ",-1)])]),_:1})):e.createCommentVNode("",!0),C[13]||(C[13]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),i.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:1,variant:"primary",disabled:!m.value,onClick:C[1]||(C[1]=T=>s(1))},{default:e.withCtx(()=>[...C[10]||(C[10]=[e.createTextVNode(" Далее ",-1)])]),_:1},8,["disabled"])):i.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:2,variant:"primary",disabled:!m.value,onClick:N},{default:e.withCtx(()=>[...C[11]||(C[11]=[e.createTextVNode(" Подтвердить mapping ",-1)])]),_:1},8,["disabled"])):i.value===2?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:3,variant:"primary",onClick:h},{default:e.withCtx(()=>[...C[12]||(C[12]=[e.createTextVNode(" Запустить импорт ",-1)])]),_:1})):e.createCommentVNode("",!0)])]))}}),mu={class:"admin-page admin-field-gallery"},fu={class:"admin-gallery__group-title"},pu={class:"admin-gallery__grid"},vu={class:"admin-gallery__card-hd"},hu={class:"admin-gallery__card-title"},yu={class:"admin-gallery__card-type"},gu={class:"admin-gallery__card-desc"},ku={class:"admin-gallery__card-demo"},_u=e.defineComponent({__name:"FieldGalleryPage",setup(t){const n=[{type:"text",group:"Текстовые",title:"Input",description:"Простой текстовый input. type=email/url/password/tel доступны через inputType.",node:{type:"text",name:"demo_text",label:"Заголовок статьи",placeholder:"Например: Введение в Laravel"},initial:{demo_text:"Hello World"}},{type:"textarea",group:"Текстовые",title:"Textarea",description:"Многострочный input с настраиваемым числом rows.",node:{type:"textarea",name:"demo_textarea",label:"Описание",rows:4},initial:{demo_textarea:"Multi-line text..."}},{type:"number",group:"Текстовые",title:"NumberInput",description:"Числовой input. Empty/NaN автоматически конвертируются в null.",node:{type:"number",name:"demo_number",label:"Цена",min:0,max:1e3},initial:{demo_number:42}},{type:"select",group:"Выбор",title:"Select",description:"Single-select с options. Поддерживает searchable + clearable.",node:{type:"select",name:"demo_select",label:"Категория",options:[{value:"frontend",label:"Frontend"},{value:"backend",label:"Backend"},{value:"devops",label:"DevOps"}]},initial:{demo_select:"backend"}},{type:"checkbox",group:"Выбор",title:"Checkbox",description:"Boolean toggle. inlineLabel рядом с боксом.",node:{type:"checkbox",name:"demo_checkbox",label:"Опубликовать",inlineLabel:"Сделать доступным всем"},initial:{demo_checkbox:!0}},{type:"date",group:"Дата/время",title:"DatePicker",description:"date / datetime-local / time через inputType.",node:{type:"date",name:"demo_date",label:"Дата публикации",inputType:"date"},initial:{demo_date:"2026-05-01"}}],a=n.reduce((l,o)=>(l[o.group]||(l[o.group]=[]),l[o.group].push(o),l),{}),r=e.reactive(n.reduce((l,o)=>Object.assign(l,o.initial),{}));return ne.provideFormState(r),(l,o)=>(e.openBlock(),e.createElementBlock("section",mu,[o[0]||(o[0]=e.createElementVNode("header",{class:"admin-page__hd"},[e.createElementVNode("div",{class:"admin-page__title-wrap"},[e.createElementVNode("h1",{class:"admin-page__title"},"Field Gallery"),e.createElementVNode("div",{class:"admin-page__count"}," Каталог встроенных field-компонентов library + примеры использования ")])],-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(i,s)=>(e.openBlock(),e.createElementBlock("section",{key:s,class:"admin-gallery__group"},[e.createElementVNode("h2",fu,e.toDisplayString(s),1),e.createElementVNode("div",pu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i,u=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:u.type+u.title,padding:"md",class:"admin-gallery__card"},{default:e.withCtx(()=>[e.createElementVNode("header",vu,[e.createElementVNode("h3",hu,e.toDisplayString(u.title),1),e.createElementVNode("code",yu,"type: "+e.toDisplayString(u.type),1)]),e.createElementVNode("p",gu,e.toDisplayString(u.description),1),e.createElementVNode("div",ku,[e.createVNode(gt,{node:u.node},null,8,["node"])])]),_:2},1024))),128))])]))),128))]))}});exports.provideFormState=ne.provideFormState;exports.tryUseFormState=ne.tryUseFormState;exports.useFormState=ne.useFormState;exports.AdminApp=on;exports.AdminShell=an;exports.AdminSidebar=nn;exports.AdminTopBar=en;exports.ApiError=se;exports.BadgeEntry=Pn;exports.BarChartWidget=_t;exports.CheckboxField=Ne;exports.ColumnsLayout=Ln;exports.DashboardPage=ft;exports.DateField=me;exports.DonutChartWidget=bt;exports.FieldGalleryPage=_u;exports.FieldRenderer=gt;exports.ForbiddenError=Yt;exports.ForbiddenPage=mn;exports.GaugeWidget=$n;exports.HeatmapWidget=En;exports.HomePage=un;exports.IconEntry=qn;exports.ImportWizardPage=uu;exports.InfolistRenderer=Vn;exports.KeyValueEntry=tt;exports.LayoutRenderer=be;exports.LocaleSwitcher=st;exports.LoginForm=hn;exports.LoginPage=gn;exports.MarkdownWidget=Sn;exports.NetworkError=Se;exports.NotFoundError=Jt;exports.NotFoundPage=fn;exports.NotificationBell=Zt;exports.NotificationsDrawer=Zd;exports.NumberField=Le;exports.ProfilePage=Cn;exports.RecentTableWidget=Ae;exports.ResourceFormPage=Ye;exports.ResourceIndexPage=_n;exports.ResourceViewPage=xn;exports.RowsLayout=et;exports.SectionLayout=ve;exports.SelectField=de;exports.SettingsPage=pn;exports.StatWidget=Qe;exports.TabsLayout=zn;exports.TextAreaField=Ve;exports.TextEntry=P;exports.TextField=ae;exports.ThemeToggle=it;exports.TwoFactorForm=yn;exports.UnauthenticatedError=ct;exports.UnknownEntry=Bn;exports.UnknownField=yt;exports.UnknownScreenPage=vn;exports.UnknownWidget=mt;exports.UserMenu=Qt;exports.ValidationError=$e;exports.WidgetRenderer=dn;exports.buildRoutesFromManifest=In;exports.clearAdminClient=Gt;exports.clearInfolistRegistry=ds;exports.clearRegistry=Qi;exports.clearWidgetRegistry=_l;exports.createAdminApp=Ud;exports.createAdminClient=Tn;exports.createAdminRouter=An;exports.createAuthGuard=Dn;exports.createTitleGuard=Fn;exports.getAdminClient=G;exports.getField=ht;exports.getInfolistEntry=Je;exports.getLayout=Ze;exports.getWidget=rn;exports.hasAdminClient=Xt;exports.hasField=Gi;exports.hasInfolistEntry=ss;exports.hasLayout=Yi;exports.hasWidget=kl;exports.isError=Pc;exports.isSuccess=Mn;exports.listFields=Xi;exports.listInfolistEntries=cs;exports.listLayouts=Ji;exports.listWidgets=sn;exports.loadBootstrap=Td;exports.provideRecord=Nn;exports.readCsrfFromMeta=Id;exports.readInlineBootstrap=On;exports.registerBuiltinComponents=Rn;exports.registerBuiltinInfolistEntries=jn;exports.registerBuiltinWidgets=Un;exports.registerComponents=bn;exports.registerField=Ki;exports.registerInfolistEntries=wn;exports.registerInfolistEntry=is;exports.registerLayout=Zi;exports.registerWidget=gl;exports.registerWidgets=cn;exports.setAdminClient=rt;exports.toApiError=Xe;exports.tryUseRecord=Ue;exports.useAuthStore=oe;exports.useLocaleStore=Ce;exports.useManifestStore=ie;exports.useMenuStore=dt;exports.useNotificationsStore=Ee;exports.useRecord=bs;exports.useResourceFormStore=vt;exports.useResourceIndexStore=pt;exports.useThemeStore=qe;
|
|
3
|
+
Текст…`),f=e.ref("LABEL"),p=e.ref("0"),b=e.ref("50"),d=e.ref("Янв, Фев, Мар, Апр"),B=e.ref("10, 20, 15, 30"),y=e.ref(""),k=e.ref("5");e.watch(()=>a.open,g=>{if(g)if(a.mode==="configure"&&a.item){const v=a.item.config??{};l.value=a.item.type??"",i.value=v.title??a.initialTitle,s.value=String(a.item.size??6),u.value=v.content??u.value;const _=v.stats?.[0];_&&(f.value=String(_.label??""),p.value=String(_.value??"")),b.value=String(v.value??50);const F=v.labels,R=v.datasets;F&&F.length>0&&(d.value=F.join(", ")),R&&R[0]?.data&&(B.value=R[0].data.join(", ")),y.value=v.resource??"",k.value=String(v.limit??5)}else l.value="",i.value="",s.value="6"});const m=e.computed(()=>l.value!==""&&i.value.trim()!==""),w={stat:"Stat — карточка с числом",stats:"Stats overview — несколько метрик",chart:"Chart — линия / столбцы / донат","bar-chart":"Bar chart — гистограмма","donut-chart":"Donut — кольцевая диаграмма","recent-table":"Recent list — последние записи",recent_list:"Recent list — последние записи","recent-list":"Recent list — последние записи",heatmap:"Heatmap — тепловая карта",gauge:"Gauge — шкала со значением",markdown:"Markdown — заметка / текст"};function V(g){return g==="markdown"?"markdown":g==="stat"||g==="stats"?"stat":g==="gauge"?"gauge":g==="chart"||g==="bar-chart"||g==="donut-chart"?"chart":g==="recent-table"||g==="recent_list"||g==="recent-list"?"recent":null}function E(){const g={title:i.value};switch(V(l.value)){case"markdown":g.content=u.value;break;case"stat":g.stats=[{label:f.value,value:p.value}];break;case"gauge":g.value=Number(b.value)||0,g.min=0,g.max=100;break;case"chart":{const v=d.value.split(",").map(F=>F.trim()).filter(Boolean),_=B.value.split(",").map(F=>Number(F.trim())).filter(F=>!Number.isNaN(F));g.labels=v,g.datasets=[{label:i.value,data:_}],g.type=l.value==="donut-chart"?"doughnut":"bar";break}case"recent":g.resource=y.value,g.limit=Number(k.value)||5;break}return g}function C(){if(!m.value)return;const g=Math.max(1,Math.min(12,Number(s.value)||6)),v=E();if(a.mode==="configure"&&a.item)r("save",{size:g,type:l.value,config:v});else{const _=`custom.${l.value}.${Date.now()}`;r("add",{slug:_,type:l.value,size:g,config:v})}r("close")}function M(){r("close")}return(g,v)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"admin-dialog"},{default:e.withCtx(()=>[t.open?(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("div",{class:"admin-dialog-root__backdrop",onClick:M}),e.createElementVNode("div",Ml,[e.createElementVNode("header",Dl,[e.createElementVNode("h2",Tl,e.toDisplayString(t.mode==="add"?"Добавить виджет":"Настроить виджет"),1),e.createElementVNode("button",{type:"button",class:"admin-dialog__close","aria-label":"Закрыть",onClick:M},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:16},null,8,["icon"])])]),e.createElementVNode("div",Il,[t.mode==="add"?(e.openBlock(),e.createElementBlock("div",Fl,[v[10]||(v[10]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип виджета",-1)),e.createElementVNode("div",Al,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,_=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",class:e.normalizeClass(["admin-dialog__type-card",{"admin-dialog__type-card--active":l.value===_}]),onClick:F=>l.value=_},[e.createElementVNode("span",zl,e.toDisplayString(_),1),e.createElementVNode("span",Rl,e.toDisplayString(w[_]??""),1)],10,Ll))),128))])])):(e.openBlock(),e.createElementBlock("div",Pl,[v[11]||(v[11]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип",-1)),e.createElementVNode("div",ql,e.toDisplayString(l.value||"unknown"),1)])),e.createElementVNode("div",jl,[v[12]||(v[12]=e.createElementVNode("label",{class:"admin-dialog__label"},"Заголовок",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:i.value,"onUpdate:modelValue":v[0]||(v[0]=_=>i.value=_),placeholder:"Название виджета"},null,8,["modelValue"])]),e.createElementVNode("div",Ol,[v[13]||(v[13]=e.createElementVNode("label",{class:"admin-dialog__label"},"Ширина (1..12)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":v[1]||(v[1]=_=>s.value=_),type:"number"},null,8,["modelValue"])]),V(l.value)==="markdown"?(e.openBlock(),e.createElementBlock("div",Wl,[v[14]||(v[14]=e.createElementVNode("label",{class:"admin-dialog__label"},"Markdown содержимое",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":v[2]||(v[2]=_=>u.value=_),class:"admin-dialog__textarea",rows:"6"},null,512),[[e.vModelText,u.value]])])):V(l.value)==="stat"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",Hl,[v[15]||(v[15]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метка",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:f.value,"onUpdate:modelValue":v[3]||(v[3]=_=>f.value=_)},null,8,["modelValue"])]),e.createElementVNode("div",Kl,[v[16]||(v[16]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:p.value,"onUpdate:modelValue":v[4]||(v[4]=_=>p.value=_)},null,8,["modelValue"])])],64)):V(l.value)==="gauge"?(e.openBlock(),e.createElementBlock("div",Gl,[v[17]||(v[17]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение (0..100)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:b.value,"onUpdate:modelValue":v[5]||(v[5]=_=>b.value=_),type:"number"},null,8,["modelValue"])])):V(l.value)==="chart"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createElementVNode("div",Xl,[v[18]||(v[18]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метки (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:d.value,"onUpdate:modelValue":v[6]||(v[6]=_=>d.value=_),placeholder:"Янв, Фев, Мар"},null,8,["modelValue"])]),e.createElementVNode("div",Yl,[v[19]||(v[19]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значения (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:B.value,"onUpdate:modelValue":v[7]||(v[7]=_=>B.value=_),placeholder:"10, 20, 15"},null,8,["modelValue"])])],64)):V(l.value)==="recent"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[e.createElementVNode("div",Zl,[v[20]||(v[20]=e.createElementVNode("label",{class:"admin-dialog__label"},"Resource slug",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:y.value,"onUpdate:modelValue":v[8]||(v[8]=_=>y.value=_),placeholder:"articles"},null,8,["modelValue"])]),e.createElementVNode("div",Jl,[v[21]||(v[21]=e.createElementVNode("label",{class:"admin-dialog__label"},"Limit",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:k.value,"onUpdate:modelValue":v[9]||(v[9]=_=>k.value=_),type:"number"},null,8,["modelValue"])])],64)):e.createCommentVNode("",!0)]),e.createElementVNode("footer",Ql,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:M},{default:e.withCtx(()=>[...v[22]||(v[22]=[e.createTextVNode("Отмена",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:!m.value,onClick:C},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.mode==="add"?"Добавить":"Сохранить"),1)]),_:1},8,["disabled"])])])])):e.createCommentVNode("",!0)]),_:1})]))}}),tr={class:"admin-page admin-dashboard"},nr={class:"admin-page__hd"},ar={class:"admin-page__title-wrap"},or={class:"admin-page__title"},lr={key:0,class:"admin-page__count"},rr={class:"admin-page__actions"},ir=["draggable","onDragstart","onDrop"],sr=["onMousedown"],kt=e.defineComponent({__name:"DashboardPage",props:{slug:{default:void 0},widgets:{default:void 0},title:{default:void 0},subtitle:{default:void 0}},emits:["change-period","export"],setup(t,{emit:n}){const a=t,r=n,o=ce(),l=mn(),i=fn(),s=(A,L)=>i.has(A)?i.t(A):L,u=e.computed(()=>!a.slug||!o.manifest?null:o.manifest.dashboards?.find(L=>L.slug===a.slug)??null),f=e.computed(()=>a.widgets?a.widgets:m.value!==null?m.value:u.value?.widgets??[]),p=e.computed(()=>a.title??u.value?.label??"Dashboard"),b=e.computed(()=>a.subtitle??u.value?.description??null),d=e.computed(()=>{const A=new Map;for(const P of f.value){const O=String(P.slug??"");O&&A.set(O,P)}const L=l.draft,q=[];if(L.length>0){for(const P of L){if(P.hidden)continue;let O=null;if(A.has(P.slug)){const oe=A.get(P.slug);O={...oe,size:P.size??oe.size??12},A.delete(P.slug)}else if(P.type){const oe=P.config??{};O={slug:P.slug,type:P.type,title:oe.title??"",size:P.size??6,data:oe}}O&&q.push({node:O,layoutSlug:P.slug})}for(const[P,O]of A.entries())q.push({node:O,layoutSlug:P})}else for(const P of f.value)q.push({node:P,layoutSlug:String(P.slug??"")});return q});function B(A){const L=A.size??A.span;return Math.max(1,Math.min(12,typeof L=="number"?L:12))}const y=e.computed(()=>[{key:"7d",label:s("admin.dashboard.period.7d","За 7 дней")},{key:"30d",label:s("admin.dashboard.period.30d","За 30 дней")},{key:"90d",label:s("admin.dashboard.period.90d","За 90 дней")},{key:"all",label:s("admin.dashboard.period.all","Всё время")}]),k=e.ref("30d"),m=e.ref(null);async function w(A,L){k.value=A,r("change-period",A),await V()}async function V(){if(a.slug)try{const{getAdminClient:A}=await Promise.resolve().then(()=>Q),q=await A().get(`/dashboard/widgets?key=${encodeURIComponent(a.slug)}&period=${encodeURIComponent(k.value)}`);m.value=q.widgets}catch{}}const E=e.computed(()=>y.value.find(A=>A.key===k.value)?.label??s("admin.dashboard.period.label","Период")),C=e.ref(null),M=e.ref(null),g=e.ref("");function v(){C.value="add",M.value=null,g.value=""}function _(){C.value=null}function F(){l.enterEditMode()}function R(){l.cancelEdit()}async function W(){await l.saveLayout().catch(()=>{})}function K(A){l.draft.some(q=>q.slug===A)?l.removeWidget(A):l.addWidget({slug:A,hidden:!0})}function ae(A){Y();const L=l.draft.find(O=>O.slug===A)??null,P=d.value.find(O=>O.layoutSlug===A)?.node;M.value=L??{slug:A,type:P?.type??"",size:P?.size??6,config:{}},g.value=P?.title??"",C.value="configure"}function J(A){l.addWidget(A)}function D(A){if(!M.value)return;const L=M.value.slug;if(l.draft.some(P=>P.slug===L)){const P=l.draft.find(O=>O.slug===L);l.updateWidget(L,{...A,config:{...P?.config??{},...A.config??{}}})}else l.addWidget({slug:L,type:M.value.type,...A})}const S=e.ref(null);function x(A,L){if(!l.editMode||L.dataTransfer===null)return;if(!L.target?.closest('[data-drag-handle="true"]')){L.preventDefault();return}S.value=A,L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("text/plain",String(A))}function I(A){l.editMode&&S.value!==null&&A.preventDefault()}function ee(A,L){if(L.preventDefault(),!l.editMode||S.value===null)return;const q=S.value;Y(),l.moveWidget(q,A),S.value=null}function Y(){if(l.draft.length===d.value.length)return;const A=d.value.map(({node:L,layoutSlug:q},P)=>{const O=l.draft.find(oe=>oe.slug===q);return{slug:q,size:B(L),position:P,hidden:O?.hidden??!1,type:O?.type??L.type,config:O?.config}});l.draft=A}const G=e.ref(null);let ue=0;function fe(A,L,q){if(!l.editMode)return;A.preventDefault(),A.stopPropagation(),Y(),G.value={slug:L,startX:A.clientX,startSpan:q},ue=A.target.closest(".admin-dashboard__grid")?.getBoundingClientRect().width??1200,window.addEventListener("mousemove",he),window.addEventListener("mouseup",se)}function he(A){if(!G.value)return;const L=ue/12,q=Math.round((A.clientX-G.value.startX)/L),P=Math.max(1,Math.min(12,G.value.startSpan+q)),O=l.draft.find(oe=>oe.slug===G.value.slug);O&&O.size!==P&&l.updateWidget(G.value.slug,{size:P})}function se(){G.value=null,window.removeEventListener("mousemove",he),window.removeEventListener("mouseup",se)}function Ge(){r("export")}return(A,L)=>(e.openBlock(),e.createElementBlock("section",tr,[e.createElementVNode("header",nr,[e.createElementVNode("div",ar,[e.createElementVNode("h1",or,e.toDisplayString(p.value),1),b.value?(e.openBlock(),e.createElementBlock("div",lr,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",rr,[e.renderSlot(A.$slots,"actions"),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md"},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(jt),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ot),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(E.value)+" ",1)]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,q=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:q.key,onClick:P=>w(q.key)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(q.label),1)]),_:2},1032,["onClick"]))),128))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:Ge},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Wt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[0]||(L[0]=e.createTextVNode(" Export ",-1))]),_:1}),e.unref(l).editMode?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Oe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[2]||(L[2]=e.createTextVNode(" Add widget ",-1))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md",onClick:R},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(dt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[3]||(L[3]=e.createTextVNode(" Отмена ",-1))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",size:"md",loading:e.unref(l).saving,disabled:e.unref(l).saving,onClick:W},{default:e.withCtx(()=>[...L[4]||(L[4]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])],64)):(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"secondary",size:"md",onClick:F},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ct),size:14},null,8,["icon"])]),default:e.withCtx(()=>[L[1]||(L[1]=e.createTextVNode(" Редактировать ",-1))]),_:1}))])]),e.createElementVNode("div",{class:e.normalizeClass(["admin-dashboard__grid",{"admin-dashboard__grid--editing":e.unref(l).editMode}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(q,P)=>(e.openBlock(),e.createElementBlock("div",{key:q.layoutSlug,class:e.normalizeClass(["admin-dashboard__cell",{"admin-dashboard__cell--editing":e.unref(l).editMode}]),draggable:e.unref(l).editMode,style:e.normalizeStyle({gridColumn:`span ${B(q.node)} / span ${B(q.node)}`}),onDragstart:O=>x(P,O),onDragover:I,onDrop:O=>ee(P,O)},[e.createVNode(yn,{node:q.node},null,8,["node"]),e.unref(l).editMode?(e.openBlock(),e.createBlock(Sl,{key:0,onConfigure:O=>ae(q.layoutSlug),onRemove:O=>K(q.layoutSlug)},null,8,["onConfigure","onRemove"])):e.createCommentVNode("",!0),e.unref(l).editMode?(e.openBlock(),e.createElementBlock("span",{key:1,class:"admin-dashboard__resize","aria-label":"Изменить размер",onMousedown:O=>fe(O,q.layoutSlug,B(q.node))},null,40,sr)):e.createCommentVNode("",!0)],46,ir))),128))],2),e.createVNode(er,{open:C.value!==null,mode:C.value??"add",item:M.value,"initial-title":g.value,onClose:_,onAdd:J,onSave:D},null,8,["open","mode","item","initial-title"])]))}}),cr={key:1,class:"admin-home"},dr={class:"admin-home__title"},ur={key:0,class:"admin-home__resources"},mr={class:"admin-home__grid"},fr=["onClick"],pr={class:"admin-home__card-label"},vr={class:"admin-home__card-slug"},gn=e.defineComponent({__name:"HomePage",setup(t){const n=ce(),a=re(),r=Z.useRouter(),o=e.computed(()=>a.user?.name??""),l=e.computed(()=>n.manifest?.resources??[]),i=e.computed(()=>n.manifest?.dashboards??[]),s=e.computed(()=>i.value[0]?.slug??null),u=mn();return e.watch(s,f=>{f&&u.openDashboard(f)},{immediate:!0}),(f,p)=>s.value?(e.openBlock(),e.createBlock(kt,{key:0,slug:s.value},null,8,["slug"])):(e.openBlock(),e.createElementBlock("div",cr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-home__hero"},{default:e.withCtx(()=>[e.createElementVNode("h1",dr,"Добро пожаловать"+e.toDisplayString(o.value?", "+o.value:""),1),p[0]||(p[0]=e.createElementVNode("p",{class:"admin-home__lead"}," Админ-панель готова. Зарегистрируйте DashboardScreen чтобы увидеть widget-grid здесь, либо переходите к ресурсам ниже. ",-1))]),_:1}),l.value.length?(e.openBlock(),e.createElementBlock("section",ur,[p[1]||(p[1]=e.createElementVNode("h2",{class:"admin-home__heading"},"Ресурсы",-1)),e.createElementVNode("ul",mr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,b=>(e.openBlock(),e.createElementBlock("li",{key:b.slug},[e.createElementVNode("button",{type:"button",class:"admin-home__card",onClick:d=>e.unref(r).push({name:`admin.resource.${b.slug}.index`})},[e.createElementVNode("span",pr,e.toDisplayString(b.label),1),e.createElementVNode("span",vr,e.toDisplayString(b.slug),1)],8,fr)]))),128))])])):e.createCommentVNode("",!0)]))}}),hr={class:"admin-status-page"},kn=e.defineComponent({__name:"ForbiddenPage",setup(t){const n=Z.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",hr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[r[2]||(r[2]=e.createElementVNode("h1",{class:"admin-status-page__code"},"403",-1)),r[3]||(r[3]=e.createElementVNode("p",{class:"admin-status-page__message"},"Доступ запрещён.",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:r[0]||(r[0]=o=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),yr={class:"admin-status-page"},_n=e.defineComponent({__name:"NotFoundPage",setup(t){const n=Z.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",yr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[r[2]||(r[2]=e.createElementVNode("h1",{class:"admin-status-page__code"},"404",-1)),r[3]||(r[3]=e.createElementVNode("p",{class:"admin-status-page__message"},"Страница не найдена.",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:r[0]||(r[0]=o=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),gr={class:"admin-settings-page"},kr={class:"admin-settings-page__title"},_r={key:0,class:"admin-settings-page__hint"},br={key:1,class:"admin-settings-page__debug"},bn=e.defineComponent({__name:"SettingsPage",setup(t){const n=Z.useRoute(),a=ce(),r=e.computed(()=>String(n.params.slug??"")),o=e.computed(()=>a.manifest?.settings?.find(l=>l.slug===r.value)??null);return(l,i)=>(e.openBlock(),e.createElementBlock("div",gr,[e.createVNode(e.unref(c.UidCard),{padding:"lg"},{default:e.withCtx(()=>[e.createElementVNode("h1",kr,e.toDisplayString(o.value?.label??r.value),1),o.value?(e.openBlock(),e.createElementBlock("pre",br,e.toDisplayString(JSON.stringify(o.value.fields,null,2)),1)):(e.openBlock(),e.createElementBlock("p",_r," Settings «"+e.toDisplayString(r.value)+"» не найдено в manifest'е. ",1))]),_:1})]))}}),wr={class:"admin-status-page"},Br={class:"admin-status-page__title"},Vr={class:"admin-status-page__hint"},wn=e.defineComponent({__name:"UnknownScreenPage",setup(t){const n=Z.useRoute(),a=e.computed(()=>String(n.params.slug??"")),r=e.computed(()=>String(n.meta?.title??a.value));return(o,l)=>(e.openBlock(),e.createElementBlock("div",wr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[e.createElementVNode("h1",Br,e.toDisplayString(r.value),1),e.createElementVNode("p",Vr,[e.createTextVNode(" Это заглушка для screen «"+e.toDisplayString(a.value)+"». Передайте свой компонент через ",1),l[0]||(l[0]=e.createElementVNode("code",null,"createAdminApp("+e.toDisplayString("{")+" pages: "+e.toDisplayString("{")+" screen: MyScreen "+e.toDisplayString("}")+" "+e.toDisplayString("}")+")",-1)),l[1]||(l[1]=e.createTextVNode(". ",-1))])]),_:1})]))}}),Nr={class:"admin-auth-card__row"},xr=["href"],Cr={key:1,style:{"text-align":"center","font-size":"var(--uid-font-size-xs)",color:"var(--uid-text-secondary)","padding-top":"4px"}},Er=["href"],Bn=e.defineComponent({__name:"LoginForm",props:{forgotUrl:{default:null},ssoLinkLabel:{default:null},ssoUrl:{default:null}},emits:["success"],setup(t,{emit:n}){const a=n,r=re(),o=e.ref(""),l=e.ref(""),i=e.ref(!1),s=e.ref(!1),u=e.ref(null),f=e.ref({}),p=e.computed(()=>f.value.email?.[0]),b=e.computed(()=>f.value.password?.[0]);async function d(){if(!s.value){s.value=!0,u.value=null,f.value={};try{const B=await r.login({email:o.value,password:l.value,remember:i.value});a("success",B)}catch(B){B instanceof Ue?(f.value=B.fields,u.value=B.firstFieldMessage()):B instanceof Me?u.value="Нет соединения с сервером":B instanceof de?u.value=B.message||"Не удалось войти":u.value=B.message}finally{s.value=!1}}}return(B,y)=>(e.openBlock(),e.createElementBlock("form",{class:"admin-auth-card__bd",novalidate:"",onSubmit:e.withModifiers(d,["prevent"])},[u.value?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-auth-card__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidInput),{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=k=>o.value=k),type:"email",label:"Email",placeholder:"you@company.com",autocomplete:"username",required:!0,disabled:s.value,error:p.value,name:"email"},null,8,["modelValue","disabled","error"]),e.createVNode(e.unref(c.UidInput),{modelValue:l.value,"onUpdate:modelValue":y[1]||(y[1]=k=>l.value=k),type:"password",label:"Пароль",autocomplete:"current-password",required:!0,disabled:s.value,error:b.value,name:"password"},null,8,["modelValue","disabled","error"]),e.createElementVNode("div",Nr,[e.createVNode(e.unref(c.UidCheckbox),{modelValue:i.value,"onUpdate:modelValue":y[2]||(y[2]=k=>i.value=k),disabled:s.value},{default:e.withCtx(()=>[...y[3]||(y[3]=[e.createTextVNode(" Запомнить меня ",-1)])]),_:1},8,["modelValue","disabled"]),t.forgotUrl?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.forgotUrl,class:"admin-auth-card__link"}," Забыли пароль? ",8,xr)):e.createCommentVNode("",!0)]),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",size:"lg",loading:s.value,disabled:s.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value?"Вход…":"Войти"),1)]),_:1},8,["loading","disabled"]),t.ssoLinkLabel&&t.ssoUrl?(e.openBlock(),e.createElementBlock("div",Cr,[y[4]||(y[4]=e.createTextVNode(" или войдите через ",-1)),e.createElementVNode("a",{href:t.ssoUrl,class:"admin-auth-card__link"},e.toDisplayString(t.ssoLinkLabel),9,Er)])):e.createCommentVNode("",!0)],32))}}),$r=["value","disabled","aria-label","onInput","onKeydown"],Sr={class:"admin-auth-card__row"},Vn=e.defineComponent({__name:"TwoFactorForm",emits:["success","cancel"],setup(t,{emit:n}){const a=n,r=re(),o=e.ref("totp"),l=e.ref(["","","","","",""]),i=e.ref(""),s=e.ref([]),u=e.ref(!1),f=e.ref(null),p=e.ref(null),b=e.computed(()=>l.value.join("")),d=e.computed(()=>o.value==="totp"?b.value.length===6:i.value.trim().length>0);function B(C,M){M instanceof HTMLInputElement&&(s.value[C]=M)}function y(C,M){const g=M.target,v=g.value.replace(/\D/g,"").slice(-1);l.value[C]=v,g.value=v,v&&C<l.value.length-1&&e.nextTick(()=>s.value[C+1]?.focus()),b.value.length===l.value.length&&w()}function k(C,M){M.key==="Backspace"&&!l.value[C]&&C>0?e.nextTick(()=>s.value[C-1]?.focus()):M.key==="ArrowLeft"&&C>0?(s.value[C-1]?.focus(),M.preventDefault()):M.key==="ArrowRight"&&C<l.value.length-1&&(s.value[C+1]?.focus(),M.preventDefault())}function m(C){const g=(C.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,l.value.length);if(g.length!==0){C.preventDefault();for(let v=0;v<l.value.length;v++)l.value[v]=g[v]??"";e.nextTick(()=>{s.value[Math.min(g.length,l.value.length-1)]?.focus(),g.length===l.value.length&&w()})}}async function w(){if(!(u.value||!d.value)){u.value=!0,f.value=null;try{if(o.value==="totp")await r.twoFactorChallenge(b.value);else{const C=await r.twoFactorRecovery(i.value.trim());p.value=C.remaining}a("success")}catch(C){C instanceof Ue?f.value=C.firstFieldMessage()??"Неверный код":C instanceof Me?f.value="Нет соединения с сервером":C instanceof de?f.value=C.message||"Не удалось проверить код":f.value=C.message}finally{u.value=!1}}}function V(){r.cancelChallenge(),a("cancel")}function E(){o.value=o.value==="totp"?"recovery":"totp",f.value=null}return(C,M)=>(e.openBlock(),e.createElementBlock("form",{class:"admin-auth-card__bd",novalidate:"",onSubmit:e.withModifiers(w,["prevent"])},[f.value?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-auth-card__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),_:1})):e.createCommentVNode("",!0),p.value!==null?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:1,variant:"info",class:"admin-auth-card__alert",role:"status"},{default:e.withCtx(()=>[e.createTextVNode(" Использован recovery-код. Осталось: "+e.toDisplayString(p.value),1)]),_:1})):e.createCommentVNode("",!0),o.value==="totp"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"admin-code-input",onPaste:m},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(g,v)=>(e.openBlock(),e.createElementBlock("input",{key:v,ref_for:!0,ref:_=>B(v,_),value:l.value[v],type:"text",inputmode:"numeric",autocomplete:"one-time-code",maxlength:"1",disabled:u.value,"aria-label":`Цифра ${v+1}`,onInput:_=>y(v,_),onKeydown:_=>k(v,_)},null,40,$r))),128))],32)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:3,modelValue:i.value,"onUpdate:modelValue":M[0]||(M[0]=g=>i.value=g),type:"text",label:"Recovery-код",autocomplete:"one-time-code",disabled:u.value,name:"recovery-code"},null,8,["modelValue","disabled"])),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",size:"lg",loading:u.value,disabled:u.value||!d.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value?"Проверка…":"Подтвердить"),1)]),_:1},8,["loading","disabled"]),e.createElementVNode("div",Sr,[e.createElementVNode("button",{type:"button",class:"admin-auth-card__link",onClick:E},[o.value==="totp"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("Использовать recovery-код")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Вернуться к коду из приложения")],64))]),e.createElementVNode("button",{type:"button",class:"admin-auth-card__link",onClick:V}," Отмена ")])],32))}}),Ur={class:"admin-auth-page"},Mr={key:0,class:"admin-auth-page__corner"},Dr={class:"admin-auth-card__hd"},Tr=["src","alt"],Ir={key:1,"aria-hidden":"true"},Fr={key:2},Ar={class:"admin-auth-card__title"},Lr={class:"admin-auth-card__sub"},Nn=e.defineComponent({__name:"LoginPage",props:{brandName:{default:"Laravel Admin"},brandMark:{default:null},brandLogo:{default:null},homeRouteName:{default:"admin.home"},redirectQueryKey:{default:"redirect"},forgotUrl:{default:null},ssoLinkLabel:{default:null},ssoUrl:{default:null},showCornerActions:{type:Boolean,default:!0}},setup(t){const n=t,a=re(),r=Z.useRouter(),o=Z.useRoute();async function l(){const i=o.query[n.redirectQueryKey];if(typeof i=="string"&&i.length>0&&i.startsWith("/")){await r.push(i);return}await r.push({name:n.homeRouteName})}return e.watch(()=>a.isAuthenticated,i=>{i&&l()}),e.onMounted(()=>{a.isAuthenticated&&l()}),(i,s)=>(e.openBlock(),e.createElementBlock("div",Ur,[t.showCornerActions?(e.openBlock(),e.createElementBlock("div",Mr,[e.createVNode(ft),e.createVNode(pt)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidCard),{class:e.normalizeClass(["admin-auth-card",e.unref(a).isChallengePending?"admin-auth-card--wide":""]),padding:"none"},{default:e.withCtx(()=>[e.createElementVNode("div",Dr,[e.createElementVNode("div",{class:e.normalizeClass(["admin-auth-card__logo",e.unref(a).isChallengePending?"admin-auth-card__logo--accent":""])},[t.brandLogo&&!e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.brandLogo,alt:t.brandName},null,8,Tr)):e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock("span",Ir,"🛡")):t.brandMark?(e.openBlock(),e.createElementBlock("span",Fr,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(He,{key:3,size:40}))],2),e.createElementVNode("div",Ar,[e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("Двухфакторная проверка")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.brandName),1)],64))]),e.createElementVNode("div",Lr,[e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" Введите 6-значный код из приложения-аутентификатора ")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Войдите, чтобы продолжить работу")],64))])]),e.unref(a).isChallengePending?(e.openBlock(),e.createBlock(Vn,{key:0,onSuccess:s[0]||(s[0]=()=>{}),onCancel:s[1]||(s[1]=()=>{})})):(e.openBlock(),e.createBlock(Bn,{key:1,"forgot-url":t.forgotUrl,"sso-link-label":t.ssoLinkLabel,"sso-url":t.ssoUrl,onSuccess:s[2]||(s[2]=()=>{})},null,8,["forgot-url","sso-link-label","sso-url"]))]),_:1},8,["class"])]))}}),zr={class:"admin-auth-page"},Rr={class:"admin-auth-card__hd"},Pr={class:"admin-auth-card__logo"},qr={class:"admin-auth-card__sub"},jr={class:"admin-auth-card__body"},Or=e.defineComponent({__name:"ForgotPasswordPage",props:{brandName:{default:"Laravel Admin"},loginRouteName:{default:"admin.login"}},setup(t){const n=Z.useRouter(),a=e.ref(""),r=e.ref(!1),o=e.ref(!1);async function l(){if(a.value.trim()===""){X.error("Введите email.");return}o.value=!0;try{const{getAdminClient:i}=await Promise.resolve().then(()=>Q);await i().post("/auth/forgotPassword",{email:a.value.trim()}),r.value=!0}catch{r.value=!0}finally{o.value=!1}}return(i,s)=>(e.openBlock(),e.createElementBlock("div",zr,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Rr,[e.createElementVNode("div",Pr,[e.createVNode(He,{size:40})]),s[2]||(s[2]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Восстановление пароля",-1)),e.createElementVNode("div",qr,e.toDisplayString(r.value?"Если такой email зарегистрирован — мы отправили письмо со ссылкой на сброс.":"Введите email — отправим ссылку для сброса пароля."),1)]),e.createElementVNode("div",jr,[r.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("form",{key:0,onSubmit:e.withModifiers(l,["prevent"])},[e.createVNode(e.unref(c.UidInput),{modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=u=>a.value=u),type:"email",placeholder:"you@example.com",autocomplete:"email",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",class:"admin-auth-card__submit",loading:o.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[s[3]||(s[3]=e.createTextVNode(" Отправить ссылку ",-1))]),_:1},8,["loading"])],32)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",class:"admin-auth-card__back",onClick:s[1]||(s[1]=u=>e.unref(n).push({name:t.loginRouteName}))},{default:e.withCtx(()=>[...s[4]||(s[4]=[e.createTextVNode(" ← Назад ко входу ",-1)])]),_:1})])]),_:1})]))}}),Wr={class:"admin-auth-page"},Hr={class:"admin-auth-card__hd"},Kr={class:"admin-auth-card__logo"},Gr={class:"admin-auth-card__body"},Xr={key:0,class:"admin-auth-card__error"},Yr=e.defineComponent({__name:"ResetPasswordPage",props:{loginRouteName:{default:"admin.login"}},setup(t){const n=t,a=Z.useRouter(),r=Z.useRoute(),o=e.computed(()=>String(r.query.token??"")),l=e.ref(String(r.query.email??"")),i=e.ref(""),s=e.ref(""),u=e.ref(!1),f=e.ref("");async function p(){if(f.value="",i.value.length<8){f.value="Пароль должен быть не менее 8 символов.";return}if(i.value!==s.value){f.value="Пароли не совпадают.";return}u.value=!0;try{const{getAdminClient:b}=await Promise.resolve().then(()=>Q);await b().post("/auth/resetPassword",{token:o.value,email:l.value,password:i.value,password_confirmation:s.value}),X.success("Пароль обновлён. Войдите с новым паролем."),await a.push({name:n.loginRouteName})}catch{f.value="Не удалось сбросить пароль. Возможно, ссылка устарела."}finally{u.value=!1}}return(b,d)=>(e.openBlock(),e.createElementBlock("div",Wr,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Hr,[e.createElementVNode("div",Kr,[e.createVNode(He,{size:40})]),d[3]||(d[3]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Новый пароль",-1)),d[4]||(d[4]=e.createElementVNode("div",{class:"admin-auth-card__sub"},"Задайте новый пароль для своего аккаунта.",-1))]),e.createElementVNode("div",Gr,[e.createElementVNode("form",{onSubmit:e.withModifiers(p,["prevent"])},[e.createVNode(e.unref(c.UidInput),{modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=B=>l.value=B),type:"email",placeholder:"email",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:i.value,"onUpdate:modelValue":d[1]||(d[1]=B=>i.value=B),type:"password",placeholder:"Новый пароль (мин. 8)",autocomplete:"new-password",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":d[2]||(d[2]=B=>s.value=B),type:"password",placeholder:"Повторите пароль",autocomplete:"new-password",required:""},null,8,["modelValue"]),f.value?(e.openBlock(),e.createElementBlock("p",Xr,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",class:"admin-auth-card__submit",loading:u.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(qe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[d[5]||(d[5]=e.createTextVNode(" Сохранить пароль ",-1))]),_:1},8,["loading"])],32)])]),_:1})]))}}),It={page:1,per_page:20,total:0,last_page:1},_t=ie.defineStore("admin-resource-index",()=>{const t=e.ref(null),n=e.ref([]),a=e.ref({...It}),r=e.ref(!1),o=e.ref(!1),l=e.ref(null);let i=null;const s=200,u=e.ref(""),f=e.ref({}),p=e.ref(null),b=e.ref(null),d=e.ref(new Set),B=e.computed(()=>!r.value&&l.value===null&&n.value.length===0),y=e.computed(()=>d.value.size),k=e.computed(()=>d.value.size>0),m=e.computed(()=>l.value!==null),w=e.computed(()=>d.value.size===0||n.value.length===0?"none":n.value.every(I=>d.value.has(V(I)))?"all":"mixed");function V(x){return x.id??x.key??""}function E(x){t.value!==x&&(t.value=x,C(),r.value=!0)}function C(){n.value=[],a.value={...It},r.value=!1,l.value=null,u.value="",f.value={},p.value=null,b.value=null,d.value=new Set}function M(x={}){const I={page:x.page??a.value.page,per_page:x.per_page??a.value.per_page},ee=x.search??u.value;ee&&(I.q=ee);const Y=x.sort??p.value,G=x.direction??b.value;Y&&G!==null&&(I.order=[{column:Y,direction:G}]);const ue=x.filters??f.value,fe={};for(const[he,se]of Object.entries(ue))se==null||se===""||(fe[he]=Array.isArray(se)?se.join(","):se);return Object.keys(fe).length>0&&(I.filters=fe),I}async function g(x={}){if(!t.value)throw new Error("useResourceIndexStore.load() called before setSlug()");r.value=!0,l.value=null,i!==null&&clearTimeout(i),i=setTimeout(()=>{o.value=!0},s);try{const I=H(),ee=M(x),Y=await I.post(`/${t.value}/search`,ee);n.value=Y.data,a.value=Y.meta}catch(I){throw l.value=I instanceof Error?I:new Error(String(I)),I}finally{r.value=!1,o.value=!1,i!==null&&(clearTimeout(i),i=null)}}async function v(x){u.value=x,a.value.page=1,await g()}async function _(x,I){I==null||I===""?delete f.value[x]:f.value[x]=I,a.value.page=1,await g()}async function F(){f.value={},a.value.page=1,await g()}async function R(x,I="asc"){p.value=x,b.value=I,await g()}async function W(x){p.value===x?b.value==="asc"?b.value="desc":b.value==="desc"?(p.value=null,b.value=null):b.value="asc":(p.value=x,b.value="asc"),await g()}async function K(x){a.value.page=x,await g()}function ae(x){const I=new Set(d.value);I.has(x)?I.delete(x):I.add(x),d.value=I}function J(){if(w.value==="all"){d.value=new Set;return}const x=new Set(d.value);for(const I of n.value)x.add(V(I));d.value=x}function D(){d.value=new Set}function S(x){return d.value.has(x)}return{slug:t,items:n,meta:a,loading:r,slowLoading:o,error:l,search:u,filters:f,sortKey:p,sortDirection:b,selection:d,isEmpty:B,hasError:m,hasSelection:k,selectedCount:y,selectionState:w,setSlug:E,reset:C,load:g,setSearch:v,setFilter:_,clearFilters:F,setSort:R,toggleSort:W,setPage:K,toggleRow:ae,toggleAllOnPage:J,clearSelection:D,isSelected:S,rowId:V}}),Zr=Object.freeze(Object.defineProperty({__proto__:null,useResourceIndexStore:_t},Symbol.toStringTag,{value:"Module"})),Ft="d.m.Y H:i:s",Jr="d.m.Y",Qr=/^\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/;function xn(t,n,a={}){if(t==null)return"";if(!n&&typeof t=="string"&&Qr.test(t))return Qe(t,Ft);switch(n){case"date":return Qe(String(t),a.format??Jr);case"datetime":return Qe(String(t),a.format??Ft);case"money":return ei(t,a.currency??"RUB",a.decimals??2);case"boolean":return ti(t,a.trueLabel??"Да",a.falseLabel??"Нет");case"bytes":return ni(t);default:return String(t)}}function Qe(t,n){const a=new Date(t);if(isNaN(a.getTime()))return t;const r=(i,s=2)=>String(i).padStart(s,"0"),o={d:r(a.getDate()),m:r(a.getMonth()+1),Y:String(a.getFullYear()),y:r(a.getFullYear()%100),H:r(a.getHours()),h:r((a.getHours()+11)%12+1),i:r(a.getMinutes()),s:r(a.getSeconds()),U:String(Math.floor(a.getTime()/1e3)),c:a.toISOString(),N:String((a.getDay()+6)%7+1),w:String(a.getDay())};let l="";for(let i=0;i<n.length;i++){const s=n[i];if(s==="\\"&&i+1<n.length){l+=n[i+1],i++;continue}l+=o[s]??s}return l}function ei(t,n,a){const r=typeof t=="number"?t:Number(t);return isNaN(r)?String(t):`${r.toFixed(a)} ${n}`}function ti(t,n,a){return t===!0||t===1||t==="1"||t==="true"?n:a}function ni(t){const n=typeof t=="number"?t:Number(t);return isNaN(n)?String(t):n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(1)} KB`:n<1024*1024*1024?`${(n/1024/1024).toFixed(1)} MB`:`${(n/1024/1024/1024).toFixed(1)} GB`}const At=e.defineComponent({name:"FilterEditor",props:{filter:{type:Object,required:!0},draft:{type:null,required:!1,default:null},isChecked:{type:Function,required:!0}},emits:["toggle-option","set-draft"],setup(t,{emit:n}){return()=>{const a=t.filter;if(a.type==="options"&&a.options&&a.options.length>0)return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--options"},a.options.map(r=>e.h("label",{key:String(r.value),class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:a.multiple?"checkbox":"radio",checked:t.isChecked(r.value),onChange:()=>n("toggle-option",r.value)}),e.h("span",null,r.label)])));if(a.type==="date_range"){const r=t.draft??{};return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--dates"},[e.h("input",{type:"date",value:r.from??"",class:"admin-toolbar__input",placeholder:"От",onChange:o=>n("set-draft",{...r,from:o.target.value})}),e.h("input",{type:"date",value:r.to??"",class:"admin-toolbar__input",placeholder:"До",onChange:o=>n("set-draft",{...r,to:o.target.value})})])}if(a.type==="trashed"){const r=[{value:"without",label:"Без удалённых"},{value:"with",label:"С удалёнными"},{value:"only",label:"Только удалённые"}];return e.h("div",{class:"admin-toolbar__editor admin-toolbar__editor--options"},r.map(o=>e.h("label",{key:o.value,class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===o.value,onChange:()=>n("set-draft",o.value)}),e.h("span",null,o.label)])))}return a.type==="switcher"?e.h("div",{class:"admin-toolbar__editor"},[e.h("label",{class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===!0,onChange:()=>n("set-draft",!0)}),e.h("span",null,"Да")]),e.h("label",{class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===!1,onChange:()=>n("set-draft",!1)}),e.h("span",null,"Нет")])]):e.h("input",{type:"text",value:t.draft??"",class:"admin-toolbar__input",placeholder:a.placeholder??a.label,onChange:r=>n("set-draft",r.target.value)})}}}),ai={class:"admin-toolbar"},oi={class:"admin-toolbar__row admin-toolbar__row--filters"},li={class:"admin-toolbar__search"},ri=["placeholder"],ii={key:0,class:"admin-toolbar__divider"},si={type:"button",class:"admin-toolbar__chip admin-toolbar__chip--active"},ci={class:"admin-toolbar__chip-text"},di=["onClick","onKeydown"],ui={class:"admin-toolbar__popover-actions"},mi={type:"button",class:"admin-toolbar__chip"},fi={class:"admin-toolbar__chip-text"},pi={class:"admin-toolbar__popover-actions"},vi={type:"button",class:"admin-toolbar__chip"},hi=["onClick"],yi={key:0,class:"admin-toolbar__row admin-toolbar__row--actions"},gi={type:"button",class:"admin-toolbar__chip"},ki={class:"admin-toolbar__chip-text"},_i=["onClick"],bi={type:"button",class:"admin-toolbar__chip"},wi=["checked","onChange"],Bi={type:"button",class:"admin-toolbar__chip"},Vi={class:"admin-toolbar__popover-actions"},Lt=4,Ni=e.defineComponent({__name:"AdminFilterToolbar",props:{search:{},searchPlaceholder:{default:"Поиск…"},filters:{},values:{},columns:{},groupBy:{default:null},columnVisibility:{default:()=>({})},enableSavedViews:{type:Boolean,default:!0}},emits:["update:search","apply-filter","reset","group-by","columns-visibility","save-view"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(a.search);e.watch(()=>a.search,D=>{o.value=D});function l(){o.value!==a.search&&r("update:search",o.value)}function i(D){return D==null||D===""||Array.isArray(D)&&D.length===0?!1:typeof D=="object"&&!Array.isArray(D)?Object.values(D).some(x=>x!==null&&x!==""&&x!==void 0):!0}const s=e.computed(()=>a.filters.filter(D=>i(a.values[D.name]))),u=e.computed(()=>a.filters.filter(D=>!i(a.values[D.name]))),f=e.ref(new Set),p=e.computed(()=>u.value.filter((D,S)=>f.value.has(D.name)||S<Lt)),b=e.computed(()=>u.value.filter((D,S)=>!f.value.has(D.name)&&S>=Lt));function d(D){const S=new Set(f.value);S.add(D),f.value=S}const B=e.computed(()=>a.search!==""||s.value.length>0);function y(D){r("apply-filter",D,null)}function k(D){const S=a.values[D.name];if(D.options&&D.options.length>0){const I=(Array.isArray(S)?S:[S]).map(ee=>D.options?.find(Y=>String(Y.value)===String(ee))?.label??String(ee));return`${D.label}: ${I.join(", ")}`}if(D.type==="date_range"&&S&&typeof S=="object"){const x=S;return`${D.label}: ${x.from??""} – ${x.to??""}`}return D.type==="switcher"?`${D.label}: ${S?"да":"нет"}`:`${D.label}: ${String(S)}`}const m=e.ref({});function w(D){return D in m.value||(m.value[D]=a.values[D]??null),m.value[D]}function V(D,S){m.value={...m.value,[D]:S}}function E(D,S){r("apply-filter",D,m.value[D]??null),S()}function C(D,S,x){if(!x){V(D,S);return}const I=w(D),ee=Array.isArray(I)?[...I]:[],Y=ee.findIndex(G=>String(G)===String(S));Y>=0?ee.splice(Y,1):ee.push(S),V(D,ee)}function M(D,S){const x=w(D);return Array.isArray(x)?x.some(I=>String(I)===String(S)):x!=null&&String(x)===String(S)}const g=e.computed(()=>a.columns.filter(D=>D.groupable===!0&&(D.key??D.name)));function v(D,S){r("group-by",D),S()}function _(D){return String(D.key??D.name??"")}function F(D){return String(D.label??D.name??D.key??"")}function R(D){const S=_(D);return S in a.columnVisibility?a.columnVisibility[S]:!0}function W(D){const S=_(D);r("columns-visibility",{...a.columnVisibility,[S]:!R(D)})}const K=e.ref("");function ae(D){K.value.trim()!==""&&(r("save-view",K.value.trim()),K.value="",D())}function J(D){return sn(D)??null}return(D,S)=>(e.openBlock(),e.createElementBlock("div",ai,[e.createElementVNode("div",oi,[e.createElementVNode("label",li,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ut),size:14,class:"admin-toolbar__search-icon"},null,8,["icon"]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=x=>o.value=x),type:"search",placeholder:t.searchPlaceholder,class:"admin-toolbar__search-input",onKeydown:e.withKeys(l,["enter"]),onBlur:l},null,40,ri),[[e.vModelText,o.value]])]),t.filters.length>0?(e.openBlock(),e.createElementBlock("span",ii)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,x=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:`active-${x.name}`},{trigger:e.withCtx(()=>[e.createElementVNode("button",si,[J(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",ci,e.toDisplayString(k(x)),1),e.createElementVNode("span",{role:"button",tabindex:"0","aria-label":"Сбросить фильтр",class:"admin-toolbar__chip-x",onClick:e.withModifiers(I=>y(x.name),["stop"]),onKeydown:e.withKeys(e.withModifiers(I=>y(x.name),["stop"]),["enter"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:12},null,8,["icon"])],40,di)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[1]||(S[1]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(At),{filter:x,draft:w(x.name),"is-checked":I=>M(x.name,I),onToggleOption:I=>C(x.name,I,x.multiple??!1),onSetDraft:I=>V(x.name,I)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",ui,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:I=>V(x.name,null)},{default:e.withCtx(()=>[...S[12]||(S[12]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:I=>E(x.name,()=>{})},{default:e.withCtx(()=>[...S[13]||(S[13]=[e.createTextVNode(" Применить ",-1)])]),_:1},8,["onClick"])])],32)]),_:2},1024))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,x=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:`inactive-${x.name}`},{trigger:e.withCtx(()=>[e.createElementVNode("button",mi,[J(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",fi,e.toDisplayString(x.label),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[2]||(S[2]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(At),{filter:x,draft:w(x.name),"is-checked":I=>M(x.name,I),onToggleOption:I=>C(x.name,I,x.multiple??!1),onSetDraft:I=>V(x.name,I)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",pi,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:I=>V(x.name,null)},{default:e.withCtx(()=>[...S[14]||(S[14]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:I=>E(x.name,()=>{})},{default:e.withCtx(()=>[...S[15]||(S[15]=[e.createTextVNode(" Применить ",-1)])]),_:1},8,["onClick"])])],32)]),_:2},1024))),128)),b.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:1},{trigger:e.withCtx(()=>[e.createElementVNode("button",vi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Oe),size:14},null,8,["icon"]),S[16]||(S[16]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Filter",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[3]||(S[3]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,x=>(e.openBlock(),e.createElementBlock("button",{key:x.name,type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:I=>d(x.name)},[J(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:J(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(x.label),1)],8,hi))),128))],32)]),_:1})):e.createCommentVNode("",!0),S[18]||(S[18]=e.createElementVNode("span",{class:"admin-toolbar__spacer"},null,-1)),B.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:2,variant:"ghost",size:"md",onClick:S[4]||(S[4]=x=>r("reset"))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(dt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[S[17]||(S[17]=e.createTextVNode(" Сбросить ",-1))]),_:1})):e.createCommentVNode("",!0)]),g.value.length>0||t.columns.length>0||t.enableSavedViews?(e.openBlock(),e.createElementBlock("div",yi,[g.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:0},{trigger:e.withCtx(()=>[e.createElementVNode("button",gi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Za),size:14},null,8,["icon"]),e.createElementVNode("span",ki,e.toDisplayString(t.groupBy?`Группа: ${F(t.columns.find(x=>_(x)===t.groupBy)??{})}`:"Группировать"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[6]||(S[6]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:S[5]||(S[5]=x=>v(null,()=>{}))},[t.groupBy?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(qe),size:14},null,8,["icon"])),S[19]||(S[19]=e.createElementVNode("span",null,"Без группировки",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,x=>(e.openBlock(),e.createElementBlock("button",{key:_(x),type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:I=>v(_(x),()=>{})},[t.groupBy===_(x)?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(qe),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(F(x)),1)],8,_i))),128))],32)]),_:1})):e.createCommentVNode("",!0),t.columns.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:1},{trigger:e.withCtx(()=>[e.createElementVNode("button",bi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref($a),size:14},null,8,["icon"]),S[20]||(S[20]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Колонки",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:S[7]||(S[7]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns.filter(x=>_(x)!==""),x=>(e.openBlock(),e.createElementBlock("label",{key:_(x),class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.createElementVNode("input",{type:"checkbox",checked:R(x),onChange:I=>W(x)},null,40,wi),e.createElementVNode("span",null,e.toDisplayString(F(x)),1)]))),128))],32)]),_:1})):e.createCommentVNode("",!0),t.enableSavedViews?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:2},{trigger:e.withCtx(()=>[e.createElementVNode("button",Bi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(st),size:14},null,8,["icon"]),S[21]||(S[21]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Сохранить",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:S[11]||(S[11]=e.withModifiers(()=>{},["stop"]))},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[8]||(S[8]=x=>K.value=x),type:"text",placeholder:"Название view",class:"admin-toolbar__input",onKeydown:S[9]||(S[9]=e.withKeys(x=>ae(()=>{}),["enter"]))},null,544),[[e.vModelText,K.value]]),e.createElementVNode("div",Vi,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",disabled:K.value.trim()==="",onClick:S[10]||(S[10]=x=>ae(()=>{}))},{default:e.withCtx(()=>[...S[22]||(S[22]=[e.createTextVNode(" Сохранить view ",-1)])]),_:1},8,["disabled"])])],32)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),xi=["title"],Ci=["disabled"],Ei=e.defineComponent({__name:"InlineEditCell",props:{resourceSlug:{},rowId:{},column:{},value:{},editable:{type:Boolean,default:!0}},emits:["saved"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(!1),l=e.ref(""),i=e.ref(!1),s=e.ref(null);async function u(){!a.editable||i.value||(l.value=a.value===null||a.value===void 0?"":String(a.value),o.value=!0,await e.nextTick(),s.value?.focus(),s.value?.select())}function f(){o.value=!1}async function p(){if(!(!o.value||i.value)){if(l.value===String(a.value??"")){o.value=!1;return}i.value=!0;try{const{getAdminClient:d}=await Promise.resolve().then(()=>Q);await d().post(`/${a.resourceSlug}/inlineUpdate`,{id:a.rowId,column:a.column,value:l.value}),r("saved",l.value),o.value=!1}catch(d){typeof console<"u"&&console.error("[admin] inline-update failed:",d),X.error(`Не удалось обновить «${a.column}».`)}finally{i.value=!1}}}function b(d){d.key==="Enter"?(d.preventDefault(),p()):d.key==="Escape"&&(d.preventDefault(),f())}return(d,B)=>o.value?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,ref_key:"inputRef",ref:s,"onUpdate:modelValue":B[0]||(B[0]=y=>l.value=y),type:"text",class:"admin-inline-edit__input",disabled:i.value,onKeydown:b,onBlur:p,onClick:B[1]||(B[1]=e.withModifiers(()=>{},["stop"]))},null,40,Ci)),[[e.vModelText,l.value]]):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["admin-inline-edit",{"admin-inline-edit--editable":t.editable}]),title:t.editable?"Двойной клик для редактирования":void 0,onDblclick:e.withModifiers(u,["stop"])},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)])],42,xi))}}),$i={class:"admin-page admin-resource-index"},Si={class:"admin-page__hd"},Ui={class:"admin-page__title-wrap"},Mi={class:"admin-page__title-row"},Di={class:"admin-page__title"},Ti={key:0,class:"admin-page__live",role:"status"},Ii={key:0,class:"admin-page__count"},Fi={class:"admin-page__actions"},Ai={class:"admin-page__view-row"},Li={class:"admin-page__view-name"},zi={key:0,class:"admin-page__view-badge"},Ri=["onClick"],Pi={key:0,class:"admin-bulk-toolbar",role:"toolbar"},qi={class:"admin-bulk-toolbar__count"},ji={key:2,class:"admin-resource-index__loading"},Oi={key:5,class:"admin-resource-index__table"},Wi=["draggable","onDragstart","onDrop"],Hi={key:1,class:"admin-resource-index__row-actions"},Ki=["onClick"],Gi=["onClick"],Xi=["onClick"],Yi=["onClick"],Zi=["onClick"],Ji={class:"admin-cell-truncate"},Qi=["title"],es={key:6,class:"admin-resource-index__footer"},zt="__row_actions__",Rt="__row_reorder__",Cn=e.defineComponent({__name:"ResourceIndexPage",props:{slug:{},title:{default:null},subtitle:{default:null},createLabel:{default:"Создать"},createRouteName:{default:null}},emits:["bulk-action","row-click","import","header-action"],setup(t,{emit:n}){const a=t,r=n,o=_t(),l=ce(),i=yt(),s=Z.useRouter(),u=e.computed(()=>l.getResource(a.slug)),f=e.computed(()=>a.title??u.value?.label??a.slug),p=e.computed(()=>{if(a.createRouteName!==null)return s.hasRoute(a.createRouteName)?a.createRouteName:null;const N=`admin.resource.${a.slug}.create`;return s.hasRoute(N)?N:null}),b=e.computed(()=>(u.value?.actions??[]).map(h=>({key:String(h.key??h.name??""),label:String(h.label??h.name??h.key??""),confirm:typeof h.confirm=="string"?h.confirm:void 0,icon:typeof h.icon=="string"?h.icon:void 0})).filter(h=>h.key!==""&&h.label!==""));async function d(N){if(!(N.confirm&&!window.confirm(N.confirm))){r("header-action",N.key);try{i.start();const{getAdminClient:h}=await Promise.resolve().then(()=>Q),T=await h().post(`/${a.slug}/action`,{key:N.key,ids:[...o.selection]});await o.load().catch(()=>{}),X.success(T?.message??`Action «${N.label}» применён к ${T?.affected??0} записям.`)}catch(h){typeof console<"u"&&console.error("[admin] header-action failed:",h),X.error(`Не удалось выполнить action «${N.label}».`)}finally{i.end()}}}async function B(N="csv"){r("header-action","export");try{i.start();const{getAdminClient:h}=await Promise.resolve().then(()=>Q),T=await h().post(`/${a.slug}/export`,{format:N,filters:o.filters,search:o.search},{responseType:"blob"}),z=URL.createObjectURL(T),te=document.createElement("a");te.href=z,te.download=`${a.slug}-${new Date().toISOString().slice(0,10)}.${N}`,document.body.appendChild(te),te.click(),te.remove(),URL.revokeObjectURL(z)}catch(h){typeof console<"u"&&console.error("[admin] export failed:",h),X.error(`Не удалось экспортировать данные в формате ${N.toUpperCase()}.`)}finally{i.end()}}const y=e.ref(null);function k(){r("import"),y.value?.click()}async function m(N){const h=N.target,U=h.files?.[0];if(U)try{i.start();const{getAdminClient:T}=await Promise.resolve().then(()=>Q),z=T(),te=new FormData;te.append("file",U),te.append("resource",a.slug);const Fe=await z.post("/import/upload",te),Xe=await z.post("/import/preview",{resource:a.slug,upload_id:Fe.upload_id}),Ye=await z.post("/import/start",{resource:a.slug,upload_id:Fe.upload_id,mapping:Xe.mapping}),$t=await w(z,Ye.process_id),St=$t.imported??0,Ut=$t.failed??0;Ut>0?X.warning(`Импорт завершён с ошибками: ${St} записей, ${Ut} ошибок.`):X.success(`Импортировано записей: ${St}.`),await o.load().catch(()=>{})}catch(T){typeof console<"u"&&console.error("[admin] import failed:",T),X.error("Импорт не удался. Проверьте формат файла и поля ресурса либо обратитесь к администратору.")}finally{h.value="",i.end()}}async function w(N,h){const U=Date.now()+9e4;for(;Date.now()<U;){await new Promise(z=>setTimeout(z,800));const T=await N.get(`/import/status?process_id=${encodeURIComponent(h)}`);if(T.status==="done"||T.status==="failed")return T}return{status:"failed",failed:1}}const V=e.computed(()=>(u.value?.features??{}).reorderable===!0),E=e.computed(()=>{const h=(u.value?.columns??[]).map(T=>{const z=T;return{key:String(z.key??z.name??""),label:String(z.label??z.name??""),sortable:!!z.sortable,align:z.align??"left",width:typeof z.width=="string"?z.width:void 0}}).filter(T=>T.key).filter(T=>J.value[T.key]!==!1);return[...V.value?[{key:Rt,label:"",sortable:!1,align:"center",width:"32px"}]:[],...h,{key:zt,label:"",sortable:!1,align:"right",width:"120px"}]});function C(N){const h=u.value?.columns??[];for(const U of h){const T=U;if(String(T.key??T.name??"")===N)return T.editable!==null&&T.editable!==void 0}return!1}const M=e.computed(()=>{const N=u.value?.columns??[],h={};for(const U of N){const T=U,z=String(T.key??T.name??"");z&&(h[z]={preset:typeof T.preset=="string"?T.preset:void 0,meta:T.meta??{}})}return h});function g(N,h){const T=h?.row?.[N],z=M.value[N];return xn(T,z?.preset,z?.meta??{})}function v(N){return N?.row}const _=e.computed(()=>o.search!==""||Object.keys(o.filters).length>0),F=e.computed(()=>!o.isEmpty||_.value),R=e.computed(()=>u.value?.filters??[]),W=e.computed(()=>u.value?.columns??[]),K=e.computed(()=>`Поиск по ${(u.value?.label??a.slug).toLowerCase()}…`),ae=e.ref(null),J=e.ref({});async function D(N,h){await o.setFilter(N,h)}async function S(N){await o.setSearch(N)}async function x(){o.search="",await o.clearFilters()}async function I(N){ae.value=N,await o.load({group_by:N})}function ee(N){J.value=N}const Y=e.ref([]),G=e.ref(null);async function ue(){try{const{getAdminClient:N}=await Promise.resolve().then(()=>Q),U=await N().get(`/${a.slug}_views/list`);Y.value=U.data??[]}catch{Y.value=[]}}async function fe(N){G.value=N.id;const h=N.state;o.search=h.search??"",o.filters={...h.filters??{}},o.sortKey=h.sort?.key??null,o.sortDirection=h.sort?.direction??null,ae.value=h.group_by??null,J.value={...h.columns??{}},o.meta.page=1,await Te()}async function he(){G.value=null,o.search="",o.filters={},o.sortKey=null,o.sortDirection=null,ae.value=null,J.value={},o.meta.page=1,await Te()}async function se(N,h){if(h?.stopPropagation(),!!N.owned&&window.confirm(`Удалить view «${N.name}»?`))try{i.start();const{getAdminClient:U}=await Promise.resolve().then(()=>Q);await U().post(`/${a.slug}_views/delete`,{id:N.id}),G.value===N.id&&(G.value=null),await ue()}catch(U){typeof console<"u"&&console.error("[admin] delete-view failed:",U)}finally{i.end()}}async function Ge(N){try{i.start();const{getAdminClient:h}=await Promise.resolve().then(()=>Q),T=await h().post(`/${a.slug}_views/create`,{name:N,state:{search:o.search,filters:o.filters,sort:{key:o.sortKey,direction:o.sortDirection},group_by:ae.value,columns:J.value}});T?.view&&(G.value=T.view.id),await ue(),X.success("Представление сохранено.")}catch(h){typeof console<"u"&&console.error("[admin] save-view failed:",h),X.error("Не удалось сохранить view. Возможно, недостаточно прав либо ресурс не зарегистрирован.")}finally{i.end()}}const A=e.computed(()=>{const N=o.meta.total;return N===0?"":`${o.items.length} из ${N} ${L(N)}`});function L(N){const h=N%10,U=N%100;return h===1&&U!==11?"запись":h>=2&&h<=4&&(U<10||U>=20)?"записи":"записей"}const q=e.ref(null),P=e.ref(0);let O=null;e.watch(()=>o.loading,(N,h)=>{h&&!N&&o.error===null&&(q.value=Date.now())}),e.onMounted(()=>{O=setInterval(()=>{P.value+=1},3e4)}),e.onUnmounted(()=>{O!==null&&clearInterval(O)});const oe=e.computed(()=>{if(P.value,q.value===null)return null;const N=Math.floor((Date.now()-q.value)/1e3);if(N<5)return"обновлено только что";if(N<60)return`обновлено ${N} сек назад`;const h=Math.floor(N/60);if(h<60)return`обновлено ${h} мин назад`;const U=Math.floor(h/60);return U<24?`обновлено ${U} ч назад`:"обновлено более суток назад"}),Jn=e.computed(()=>{if(G.value!==null){const h=Y.value.find(U=>U.id===G.value);if(h)return h.name}return`Все ${(u.value?.label??a.slug).toLowerCase()}`});async function Te(){i.start();try{await o.load()}catch{}finally{i.end()}}e.onMounted(async()=>{o.setSlug(a.slug),l.manifest===null&&await l.load().catch(()=>{}),ue(),await Te()}),e.watch(()=>a.slug,async(N,h)=>{N!==h&&(o.setSlug(N),G.value=null,ue(),await Te())});async function Qn(N){await e.nextTick(),await o.setSort(N,o.sortDirection)}async function ea(N){await e.nextTick(),await o.setSort(o.sortKey,N)}function ta(N){o.selection=N}async function na(N){await o.setPage(N)}function pe(N){const h=N?.id??N?.key;return typeof h=="string"||typeof h=="number"?h:null}function aa(N){r("row-click",N);const h=pe(N);h!==null&&s.push({name:`admin.resource.${a.slug}.view`,params:{id:String(h)}})}function oa(N,h){h?.stopPropagation();const U=pe(N);U!==null&&s.push({name:`admin.resource.${a.slug}.view`,params:{id:String(U)}})}function la(N,h){h?.stopPropagation();const U=pe(N);U!==null&&s.push({name:`admin.resource.${a.slug}.edit`,params:{id:String(U)}})}async function ra(N,h){h?.stopPropagation();const U=pe(N);if(U!==null&&window.confirm("Удалить запись?"))try{i.start();const{getAdminClient:T}=await Promise.resolve().then(()=>Q);await T().post(`/${a.slug}/delete`,{id:U}),await o.load().catch(()=>{}),X.success("Запись удалена.")}catch(T){typeof console<"u"&&console.error("[admin] delete failed:",T),X.error("Не удалось удалить запись.")}finally{i.end()}}function ia(N){return N.deleted_at!==null&&N.deleted_at!==void 0}async function sa(N,h){h?.stopPropagation();const U=pe(N);if(U!==null)try{i.start();const{getAdminClient:T}=await Promise.resolve().then(()=>Q);await T().post(`/${a.slug}/restore`,{id:U}),await o.load().catch(()=>{}),X.success("Запись восстановлена.")}catch(T){typeof console<"u"&&console.error("[admin] restore failed:",T),X.error("Не удалось восстановить запись.")}finally{i.end()}}const Ne=e.ref(null);function ca(N,h){if(!V.value||!h.dataTransfer)return;if(!h.target?.closest('[data-row-drag-handle="true"]')){h.preventDefault();return}Ne.value=N,h.dataTransfer.effectAllowed="move",h.dataTransfer.setData("text/plain",String(N))}function da(N){V.value&&Ne.value!==null&&N.preventDefault()}async function ua(N,h){if(h.preventDefault(),!V.value||Ne.value===null)return;const U=Ne.value;if(Ne.value=null,U===N)return;const T=[...o.items],[z]=T.splice(U,1);T.splice(N,0,z),o.items=T;try{i.start();const{getAdminClient:te}=await Promise.resolve().then(()=>Q),Fe=te(),Xe=T.map(Ye=>o.rowId(Ye));await Fe.post(`/${a.slug}/reorder`,{ids:Xe}),X.success("Порядок сохранён.")}catch(te){typeof console<"u"&&console.error("[admin] reorder failed:",te),X.error("Не удалось сохранить порядок."),await o.load().catch(()=>{})}finally{i.end()}}async function ma(N,h){h?.stopPropagation();const U=pe(N);if(U!==null&&window.confirm("Удалить запись НАВСЕГДА? Действие необратимо."))try{i.start();const{getAdminClient:T}=await Promise.resolve().then(()=>Q);await T().post(`/${a.slug}/forceDelete`,{id:U}),await o.load().catch(()=>{}),X.success("Запись удалена навсегда.")}catch(T){typeof console<"u"&&console.error("[admin] force-delete failed:",T),X.error("Не удалось удалить запись навсегда.")}finally{i.end()}}function Ie(N){r("bulk-action",N,[...o.selection])}async function Et(){await o.load().catch(()=>{})}return(N,h)=>(e.openBlock(),e.createElementBlock("section",$i,[e.createElementVNode("header",Si,[e.createElementVNode("div",Ui,[e.createElementVNode("div",Mi,[e.createElementVNode("h1",Di,e.toDisplayString(f.value),1),oe.value?(e.openBlock(),e.createElementBlock("span",Ti,[h[10]||(h[10]=e.createElementVNode("span",{class:"admin-page__live-dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(oe.value),1)])):e.createCommentVNode("",!0)]),t.subtitle||A.value?(e.openBlock(),e.createElementBlock("div",Ii,[t.subtitle?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.subtitle),1)],64)):e.createCommentVNode("",!0),t.subtitle&&A.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" · ")],64)):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(A.value),1)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Fi,[e.renderSlot(N.$slots,"actions"),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md",class:"admin-page__scope"},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(st),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ot),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(Jn.value)+" ",1)]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:he},{default:e.withCtx(()=>[e.createTextVNode(" Все "+e.toDisplayString((u.value?.label??t.slug).toLowerCase()),1)]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Y.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.id,onClick:T=>fe(U)},{default:e.withCtx(()=>[e.createElementVNode("span",Ai,[e.createElementVNode("span",Li,[e.createTextVNode(e.toDisplayString(U.name)+" ",1),U.is_default?(e.openBlock(),e.createElementBlock("span",zi,"default")):e.createCommentVNode("",!0)]),U.owned?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-page__view-delete","aria-label":"Удалить view",onClick:e.withModifiers(T=>se(U,T),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ge),size:12},null,8,["icon"])],8,Ri)):e.createCommentVNode("",!0)])]),_:2},1032,["onClick"]))),128))]),_:1}),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md","aria-label":"Действия",class:"admin-page__more"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ht),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:Et},{default:e.withCtx(()=>[...h[11]||(h[11]=[e.createTextVNode("Обновить",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:h[0]||(h[0]=U=>B("csv"))},{default:e.withCtx(()=>[...h[12]||(h[12]=[e.createTextVNode("Экспорт CSV",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:h[1]||(h[1]=U=>B("json"))},{default:e.withCtx(()=>[...h[13]||(h[13]=[e.createTextVNode("Экспорт JSON",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:h[2]||(h[2]=U=>B("xlsx"))},{default:e.withCtx(()=>[...h[14]||(h[14]=[e.createTextVNode("Экспорт XLSX",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:h[3]||(h[3]=U=>B("pdf"))},{default:e.withCtx(()=>[...h[15]||(h[15]=[e.createTextVNode("Экспорт PDF",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.key,onClick:T=>d(U)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(U.label),1)]),_:2},1032,["onClick"]))),128)),e.renderSlot(N.$slots,"header-menu")]),_:3}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:k},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Qt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[h[16]||(h[16]=e.createTextVNode(" Import ",-1))]),_:1}),e.createElementVNode("input",{ref_key:"importInput",ref:y,type:"file",class:"admin-page__import-input",accept:".csv,.json,.xlsx,.xls,application/json,text/csv",onChange:m},null,544),p.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"primary",size:"md",onClick:h[4]||(h[4]=U=>N.$router.push({name:p.value}))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Oe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(t.createLabel),1)]),_:1})):e.createCommentVNode("",!0)])]),e.unref(o).hasSelection?(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("span",qi,[h[17]||(h[17]=e.createTextVNode(" Выбрано ",-1)),e.createElementVNode("b",null,e.toDisplayString(e.unref(o).selectedCount),1)]),h[23]||(h[23]=e.createElementVNode("span",{class:"admin-bulk-toolbar__divider"},null,-1)),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:h[5]||(h[5]=U=>Ie("publish"))},{default:e.withCtx(()=>[...h[18]||(h[18]=[e.createTextVNode("Опубликовать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:h[6]||(h[6]=U=>Ie("archive"))},{default:e.withCtx(()=>[...h[19]||(h[19]=[e.createTextVNode("Архивировать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:h[7]||(h[7]=U=>Ie("export"))},{default:e.withCtx(()=>[...h[20]||(h[20]=[e.createTextVNode("Экспорт",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"danger",onClick:h[8]||(h[8]=U=>Ie("delete"))},{default:e.withCtx(()=>[...h[21]||(h[21]=[e.createTextVNode("Удалить",-1)])]),_:1}),h[24]||(h[24]=e.createElementVNode("span",{class:"admin-bulk-toolbar__spacer"},null,-1)),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:e.unref(o).clearSelection},{default:e.withCtx(()=>[...h[22]||(h[22]=[e.createTextVNode(" Снять выделение ",-1)])]),_:1},8,["onClick"])])):F.value?(e.openBlock(),e.createBlock(Ni,{key:1,search:e.unref(o).search,"search-placeholder":K.value,filters:R.value,values:e.unref(o).filters,columns:W.value,"group-by":ae.value,"column-visibility":J.value,"onUpdate:search":S,onApplyFilter:D,onReset:x,onGroupBy:I,onColumnsVisibility:ee,onSaveView:Ge},{extra:e.withCtx(()=>[e.renderSlot(N.$slots,"filters",{filters:e.unref(o).filters,setFilter:e.unref(o).setFilter})]),_:3},8,["search","search-placeholder","filters","values","columns","group-by","column-visibility"])):e.createCommentVNode("",!0),e.unref(o).loading&&e.unref(o).items.length===0?(e.openBlock(),e.createElementBlock("div",ji,[e.unref(o).slowLoading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},e.renderList(8,U=>e.createVNode(e.unref(c.UidSkeleton),{key:U,height:"40px"})),64)):e.createCommentVNode("",!0)])):e.unref(o).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidErrorState),{key:3,title:"Не удалось загрузить данные",description:e.unref(o).error?.message??"Попробуйте обновить страницу.",class:"admin-resource-index__state"},{actions:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"primary",onClick:Et},{default:e.withCtx(()=>[...h[25]||(h[25]=[e.createTextVNode("Обновить",-1)])]),_:1})]),_:1},8,["description"])):e.unref(o).isEmpty?(e.openBlock(),e.createBlock(e.unref(c.UidEmptyState),{key:4,title:"Пока пусто",description:"Создайте первую запись или измените фильтры.",class:"admin-resource-index__state"},{actions:e.withCtx(()=>[t.createRouteName?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"primary",onClick:h[9]||(h[9]=U=>N.$router.push({name:t.createRouteName}))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.createLabel),1)]),_:1})):e.createCommentVNode("",!0)]),_:1})):(e.openBlock(),e.createElementBlock("div",Oi,[e.createVNode(e.unref(c.UidTable),{columns:E.value,data:e.unref(o).items,"sort-key":e.unref(o).sortKey,"sort-direction":e.unref(o).sortDirection,selectable:"",selection:e.unref(o).selection,"row-key":U=>e.unref(o).rowId(U),"onUpdate:sortKey":Qn,"onUpdate:sortDirection":ea,"onUpdate:selection":ta,onRowClick:aa},e.createSlots({_:2},[e.renderList(E.value,U=>({name:U.key,fn:e.withCtx(T=>[U.key===Rt?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-resource-index__row-drag","data-row-drag-handle":"true",draggable:V.value,title:"Перетащить",onDragstart:z=>ca(e.unref(o).items.indexOf(v(T)??{}),z),onDragover:da,onDrop:z=>ua(e.unref(o).items.indexOf(v(T)??{}),z)},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Gt),size:14},null,8,["icon"])],40,Wi)):U.key===zt?(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Просмотр",onClick:e.withModifiers(z=>oa(v(T)??{},z),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ma),size:16},null,8,["icon"])],8,Ki),ia(v(T)??{})?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Восстановить",onClick:e.withModifiers(z=>sa(v(T)??{},z),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(dt),size:16},null,8,["icon"])],8,Yi),e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action admin-resource-index__row-action--danger",title:"Удалить навсегда",onClick:e.withModifiers(z=>ma(v(T)??{},z),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ge),size:16},null,8,["icon"])],8,Zi)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Редактировать",onClick:e.withModifiers(z=>la(v(T)??{},z),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ct),size:16},null,8,["icon"])],8,Gi),e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action admin-resource-index__row-action--danger",title:"Удалить",onClick:e.withModifiers(z=>ra(v(T)??{},z),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ge),size:16},null,8,["icon"])],8,Xi)],64))])):e.renderSlot(N.$slots,`cell-${U.key}`,{key:2,row:v(T)},()=>[C(U.key)?(e.openBlock(),e.createBlock(Ei,{key:0,"resource-slug":t.slug,"row-id":pe(v(T)??{})??"",column:U.key,value:(v(T)??{})[U.key],editable:!0,onSaved:z=>{const te=v(T);te&&(te[U.key]=z)}},{default:e.withCtx(()=>[e.createElementVNode("span",Ji,e.toDisplayString(g(U.key,T)),1)]),_:2},1032,["resource-slug","row-id","column","value","onSaved"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:"admin-cell-truncate",title:g(U.key,T)},e.toDisplayString(g(U.key,T)),9,Qi))])])}))]),1032,["columns","data","sort-key","sort-direction","selection","row-key"])])),!e.unref(o).loading&&!e.unref(o).hasError&&!e.unref(o).isEmpty?(e.openBlock(),e.createElementBlock("footer",es,[e.createVNode(e.unref(c.UidPagination),{"model-value":e.unref(o).meta.page,total:e.unref(o).meta.total,"per-page":e.unref(o).meta.per_page,"onUpdate:modelValue":na},null,8,["model-value","total","per-page"])])):e.createCommentVNode("",!0)]))}}),bt=ie.defineStore("admin-resource-form",()=>{const t=e.ref(null),n=e.ref("create"),a=e.ref(null),r=e.ref({}),o=e.ref({}),l=e.ref({}),i=e.ref(!1),s=e.ref(!1),u=e.ref(!1),f=e.ref(null),p=e.computed(()=>n.value==="create"),b=e.computed(()=>n.value==="edit"),d=e.computed(()=>n.value==="view"),B=e.computed(()=>f.value!==null),y=e.computed(()=>{const _=r.value,F=o.value,R=new Set([...Object.keys(_),...Object.keys(F)]);for(const W of R)if(!Object.is(_[W],F[W]))if(typeof _[W]=="object"||typeof F[W]=="object"){if(JSON.stringify(_[W])!==JSON.stringify(F[W]))return!0}else return!0;return!1});function k(_,F){for(const R of Object.keys(_))delete _[R];Object.assign(_,F)}function m(){k(r.value,{}),k(o.value,{}),l.value={},i.value=!1,s.value=!1,u.value=!1,f.value=null,a.value=null}function w(_,F={}){t.value=_,n.value="create",a.value=null,k(r.value,F),k(o.value,F),l.value={},f.value=null}async function V(_,F,R="edit"){t.value=_,n.value=R,a.value=F,i.value=!0,f.value=null,l.value={};try{const K=await H().get(`/${_}/read`,{params:{id:F}});k(r.value,K.record),k(o.value,K.record)}catch(W){throw f.value=W instanceof Error?W:new Error(String(W)),W}finally{i.value=!1}}function E(_,F){if(r.value[_]=F,l.value[_]){const R={...l.value};delete R[_],l.value=R}}function C(_){l.value={..._}}function M(){l.value={}}async function g(){if(!t.value)throw new Error("useResourceFormStore.save() before slug set");if(s.value)throw new Error("Already saving");s.value=!0,f.value=null,l.value={};try{const _=H(),F=n.value==="create"?`/${t.value}/create`:`/${t.value}/update`,R=n.value==="create"?r.value:{id:a.value,...r.value},W=await _.post(F,R),K=W.record?.id??W.id;if(K===void 0)throw new Error("save: backend response does not contain record.id");return a.value=K,k(o.value,{...r.value}),n.value="edit",K}catch(_){throw _ instanceof Ue?l.value={..._.fields}:(_ instanceof de||_ instanceof Error)&&(f.value=_),_}finally{s.value=!1}}async function v(){if(!t.value||a.value===null)throw new Error("Nothing to delete");if(u.value)throw new Error("Already deleting");u.value=!0,f.value=null;try{await H().post(`/${t.value}/delete`,{id:a.value})}catch(_){throw _ instanceof Error&&(f.value=_),_}finally{u.value=!1}}return{slug:t,mode:n,recordId:a,state:r,initial:o,errors:l,loading:i,saving:s,deleting:u,error:f,isCreate:p,isEdit:b,isView:d,isDirty:y,hasError:B,reset:m,prepareCreate:w,load:V,setField:E,setErrors:C,clearErrors:M,save:g,destroy:v}}),be=Ke(),we=Ke(),ts=be.register,wt=be.get,ns=be.has,as=be.list,os=we.register,nt=we.get,ls=we.has,rs=we.list;function is(){be.clear(),we.clear()}function En(t){t.fields&&be.registerBundle(t.fields),t.layouts&&we.registerBundle(t.layouts)}const Bt=e.defineComponent({__name:"UnknownField",props:{type:{},name:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный тип поля: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[t.name?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("code",null,e.toDisplayString(t.name),1),a[0]||(a[0]=e.createTextVNode(" — зарегистрируйте field-компонент через ",-1)),e.createElementVNode("code",null,"registerField('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))],64)):e.createCommentVNode("",!0)]),_:1}))}}),Vt=e.defineComponent({__name:"FieldRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>wt(n.node.type)),r=e.computed(()=>{const{type:o,attributes:l,...i}=n.node;return{...i,...l??{}}});return(o,l)=>a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):(e.openBlock(),e.createBlock(Bt,{key:1,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),Be=e.defineComponent({__name:"LayoutRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>{if(n.node.kind==="field")return{kind:"field"};if(n.node.kind==="layout"){const i=nt(n.node.type);return i?{kind:"layout",component:i}:{kind:"unknown"}}const l=nt(n.node.type);return l?{kind:"layout",component:l}:wt(n.node.type)?{kind:"field"}:{kind:"unknown"}}),r=e.computed(()=>{const{type:l,kind:i,...s}=n.node;return s}),o=e.computed(()=>n.node);return(l,i)=>a.value.kind==="layout"&&a.value.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value.component),e.normalizeProps(e.mergeProps({key:0},r.value)),null,16)):a.value.kind==="field"?(e.openBlock(),e.createBlock(Vt,{key:1,node:o.value},null,8,["node"])):(e.openBlock(),e.createBlock(Bt,{key:2,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),ss={class:"admin-page admin-resource-form"},cs={class:"admin-page__hd"},ds={class:"admin-page__title-wrap"},us={class:"admin-page__title"},ms={class:"admin-page__actions"},fs={key:1,class:"admin-resource-form__loading"},ps={key:3,class:"admin-resource-form__savebar"},at=e.defineComponent({__name:"ResourceFormPage",props:{slug:{},id:{default:null},indexRouteName:{default:null}},setup(t){const n=t,a=bt(),r=ce(),o=Z.useRouter(),l=ne.provideFormState(a.state,a.errors);e.watch(()=>a.errors,k=>{l.setErrors({...k})});const i=e.computed(()=>r.getResource(n.slug)),s=e.computed(()=>i.value?.fields??[]),u=e.computed(()=>a.isCreate?`Создать: ${i.value?.label??n.slug}`:`${i.value?.label??n.slug}: запись #${n.id}`),f=e.computed(()=>{const k=a.state.status;return typeof k=="string"?k:null}),p=e.computed(()=>{switch(f.value){case"published":return"success";case"review":case"draft":return"warning";case"archived":return"danger";default:return"default"}});e.onMounted(async()=>{r.manifest===null&&await r.load().catch(()=>{}),n.id!==null&&n.id!==void 0?await a.load(n.slug,n.id,"edit").catch(()=>{}):a.prepareCreate(n.slug)}),e.watch(()=>[n.slug,n.id],async([k,m])=>{m!=null?await a.load(k,m,"edit").catch(()=>{}):a.prepareCreate(k)});async function b(){try{const k=await a.save();a.isCreate&&o.push({name:`admin.resource.${n.slug}.edit`,params:{id:k}}).catch(()=>{})}catch{}}const d=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);async function B(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||o.push({name:d.value}).catch(()=>{}))}function y(){a.isDirty&&!confirm("Несохранённые изменения будут потеряны. Продолжить?")||o.push({name:d.value}).catch(()=>{})}return(k,m)=>(e.openBlock(),e.createElementBlock("section",ss,[e.createElementVNode("header",cs,[e.createElementVNode("div",ds,[e.createElementVNode("a",{class:"admin-resource-form__back",onClick:y},"← Назад"),e.createElementVNode("h1",us,e.toDisplayString(u.value),1),f.value?(e.openBlock(),e.createBlock(e.unref(c.UidBadge),{key:0,variant:p.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),_:1},8,["variant"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ms,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",disabled:e.unref(a).saving||e.unref(a).deleting,onClick:y},{default:e.withCtx(()=>[...m[0]||(m[0]=[e.createTextVNode(" Отмена ",-1)])]),_:1},8,["disabled"]),e.unref(a).isEdit?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"danger",disabled:e.unref(a).saving||e.unref(a).deleting,loading:e.unref(a).deleting,onClick:B},{default:e.withCtx(()=>[...m[1]||(m[1]=[e.createTextVNode(" Удалить ",-1)])]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:e.unref(a).saving||e.unref(a).loading,loading:e.unref(a).saving,onClick:b},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).isCreate?"Создать":"Сохранить"),1)]),_:1},8,["disabled","loading"])])]),e.unref(a).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-resource-form__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).error?.message??"Не удалось сохранить запись"),1)]),_:1})):e.createCommentVNode("",!0),e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",fs,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(6,w=>e.createVNode(e.unref(c.UidSkeleton),{key:w,height:"40px"})),64))])):(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:2,padding:"md",class:"admin-resource-form__body"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(w,V)=>(e.openBlock(),e.createBlock(Be,{key:V,node:w},null,8,["node"]))),128))]),_:1})),e.unref(a).isDirty&&!e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",ps,[m[4]||(m[4]=e.createElementVNode("span",{class:"admin-resource-form__savebar-hint"}," Есть несохранённые изменения ",-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:y},{default:e.withCtx(()=>[...m[2]||(m[2]=[e.createTextVNode("Отмена",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",size:"sm",loading:e.unref(a).saving,disabled:e.unref(a).saving,onClick:b},{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])])):e.createCommentVNode("",!0)]))}}),Ve=Ke(),vs=Ve.register,ot=Ve.get,hs=Ve.has,ys=Ve.list,gs=Ve.clear,$n=Ve.registerBundle,Sn=e.defineComponent({__name:"UnknownEntry",props:{type:{},name:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{variant:"warning"},{title:e.withCtx(()=>[e.createTextVNode("Неизвестный тип infolist-entry: "+e.toDisplayString(t.type),1)]),default:e.withCtx(()=>[a[0]||(a[0]=e.createTextVNode(" Зарегистрируйте через ",-1)),e.createElementVNode("code",null,"registerInfolistEntry('"+e.toDisplayString(t.type)+"', YourComponent)",1),a[1]||(a[1]=e.createTextVNode(". ",-1))]),_:1}))}}),ks={key:1,class:"admin-infolist-rows"},_s={key:2,class:"admin-infolist-cols"},bs={key:3,class:"admin-infolist-section"},ws={key:0,class:"admin-infolist-section__hd"},Bs={key:0,class:"admin-infolist-section__title"},Vs={key:1,class:"admin-infolist-section__description"},Ns={class:"admin-infolist-section__body"},xs={key:4,class:"admin-infolist-tabs"},Cs={class:"admin-infolist-tabs__list",role:"tablist"},Es={class:"admin-infolist-tabs__panel"},Un=e.defineComponent({__name:"InfolistRenderer",props:{node:{}},setup(t){const n=t,a=new Set(["rows","columns","section","block","tabs"]),r=e.computed(()=>{if(n.node.kind==="entry"){const b=ot(n.node.type);return b?{kind:"entry",component:b}:{kind:"unknown"}}if(n.node.kind==="layout")return a.has(n.node.type)?{kind:"layout",layoutType:n.node.type}:{kind:"unknown"};if(a.has(n.node.type))return{kind:"layout",layoutType:n.node.type};const p=ot(n.node.type);return p?{kind:"entry",component:p}:{kind:"unknown"}}),o=e.computed(()=>{const{type:p,kind:b,items:d,attributes:B,...y}=n.node,k=B??{},{preset:m,format:w,currency:V,decimals:E,trueLabel:C,falseLabel:M,...g}=k,v={};return w!==void 0&&(v.format=w),V!==void 0&&(v.currency=V),E!==void 0&&(v.decimals=E),C!==void 0&&(v.trueLabel=C),M!==void 0&&(v.falseLabel=M),{...y,...g,preset:m,meta:v}}),l=e.computed(()=>n.node.items??[]),i=e.computed(()=>n.node.title??null),s=e.computed(()=>n.node.description??null),u=e.computed(()=>{const p=n.node.active;return typeof p=="number"?p:0}),f=e.computed(()=>n.node.items??[]);return(p,b)=>{const d=e.resolveComponent("InfolistRenderer",!0);return r.value.kind==="entry"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value.component),e.normalizeProps(e.mergeProps({key:0},o.value)),null,16)):r.value.kind==="layout"&&r.value.layoutType==="rows"?(e.openBlock(),e.createElementBlock("div",ks,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(B,y)=>(e.openBlock(),e.createBlock(d,{key:y,node:B},null,8,["node"]))),128))])):r.value.kind==="layout"&&r.value.layoutType==="columns"?(e.openBlock(),e.createElementBlock("div",_s,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(B,y)=>(e.openBlock(),e.createElementBlock("div",{key:y,class:"admin-infolist-cols__item",style:e.normalizeStyle({gridColumn:`span ${typeof B.span=="number"?B.span:Math.max(1,Math.floor(12/l.value.length))}`})},[e.createVNode(d,{node:B},null,8,["node"])],4))),128))])):r.value.kind==="layout"&&(r.value.layoutType==="section"||r.value.layoutType==="block")?(e.openBlock(),e.createElementBlock("section",bs,[i.value||s.value?(e.openBlock(),e.createElementBlock("header",ws,[i.value?(e.openBlock(),e.createElementBlock("h3",Bs,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("p",Vs,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ns,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(B,y)=>(e.openBlock(),e.createBlock(d,{key:y,node:B},null,8,["node"]))),128))])])):r.value.kind==="layout"&&r.value.layoutType==="tabs"?(e.openBlock(),e.createElementBlock("div",xs,[e.createElementVNode("ul",Cs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(B,y)=>(e.openBlock(),e.createElementBlock("li",{key:B.key??y,class:e.normalizeClass(["admin-infolist-tabs__tab",{"admin-infolist-tabs__tab--active":y===u.value}])},e.toDisplayString(B.label),3))),128))]),e.createElementVNode("div",Es,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value[u.value]?.items??[],(B,y)=>(e.openBlock(),e.createBlock(d,{key:y,node:B},null,8,["node"]))),128))])])):(e.openBlock(),e.createBlock(Sn,{key:5,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}}),Nt=Symbol("admin.infolist-record");function Mn(t){e.provide(Nt,t)}function $s(){const t=e.inject(Nt);if(!t)throw new Error("useRecord() called outside of provideRecord() scope");return t}function De(){return e.inject(Nt,null)}const Ss={class:"admin-audit-timeline"},Us={key:0,class:"admin-audit-timeline__loading"},Ms={key:1,class:"admin-audit-timeline__error"},Ds={key:2,class:"admin-audit-timeline__empty"},Ts={key:3,class:"admin-audit-timeline__list"},Is={class:"admin-audit-timeline__icon","aria-hidden":"true"},Fs={class:"admin-audit-timeline__body"},As={class:"admin-audit-timeline__row"},Ls={class:"admin-audit-timeline__actor"},zs={class:"admin-audit-timeline__verb"},Rs={class:"admin-audit-timeline__when"},Ps={key:0,class:"admin-audit-timeline__detail"},qs=e.defineComponent({__name:"AuditTimeline",props:{subjectType:{},subjectId:{}},setup(t){const n=t,a=e.ref([]),r=e.ref(!1),o=e.ref(null);async function l(){if(!n.subjectType||n.subjectType===""){a.value=[],r.value=!1,o.value=null;return}r.value=!0,o.value=null;try{const{getAdminClient:d}=await Promise.resolve().then(()=>Q),y=await d().get(`/audit/timeline?subject_type=${encodeURIComponent(n.subjectType)}&subject_id=${encodeURIComponent(String(n.subjectId))}`);a.value=y.data??[]}catch(d){o.value=d instanceof Error?d:new Error(String(d)),a.value=[]}finally{r.value=!1}}e.onMounted(l),e.watch(()=>[n.subjectType,n.subjectId],l);const i=e.computed(()=>a.value.length>0);function s(d){return d==="created"?Oe:d==="deleted"||d==="destroyed"?ge:d.includes("tag")||d.includes("label")?Jt:ko}function u(d){return{created:"создал",updated:"отредактировал",deleted:"удалил",destroyed:"удалил",restored:"восстановил",published:"опубликовал"}[d]??d}function f(d){const B=new Date(d).getTime();if(Number.isNaN(B))return"";const y=(Date.now()-B)/1e3;return y<60?`${Math.max(1,Math.floor(y))} сек назад`:y<3600?`${Math.floor(y/60)} мин назад`:y<86400?`${Math.floor(y/3600)} ч назад`:y<86400*30?`${Math.floor(y/86400)} д назад`:new Date(d).toLocaleDateString("ru-RU")}function p(d){if(d.summary)return d.summary;if(!d.diff||d.diff.length===0)return"";if(d.diff.length===1){const y=d.diff[0];return`Поле ${y.field}: ${b(y.before)} → ${b(y.after)}`}const B=d.diff.slice(0,4).map(y=>y.field).join(", ");return`Изменены ${d.diff.length} поля: ${B}`}function b(d){return d==null?"∅":typeof d=="string"?d.length>20?`${d.slice(0,20)}…`:d:String(d)}return(d,B)=>(e.openBlock(),e.createElementBlock("section",Ss,[B[0]||(B[0]=e.createElementVNode("h2",{class:"admin-audit-timeline__title"},"История изменений",-1)),r.value?(e.openBlock(),e.createElementBlock("div",Us,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,y=>e.createVNode(e.unref(c.UidSkeleton),{key:y,height:"48px"})),64))])):o.value?(e.openBlock(),e.createElementBlock("div",Ms," Не удалось загрузить историю: "+e.toDisplayString(o.value.message),1)):i.value?(e.openBlock(),e.createElementBlock("ol",Ts,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,y=>(e.openBlock(),e.createElementBlock("li",{key:y.id,class:"admin-audit-timeline__item"},[e.createElementVNode("span",Is,[e.createVNode(e.unref(c.UidIcon),{icon:s(y.event),size:14},null,8,["icon"])]),e.createElementVNode("div",Fs,[e.createElementVNode("div",As,[e.createVNode(e.unref(c.UidAvatar),{name:y.actor?.name??"?",alt:y.actor?.name??"Неизвестный",size:"xs"},null,8,["name","alt"]),e.createElementVNode("span",Ls,e.toDisplayString(y.actor?.name??"Система"),1),e.createElementVNode("span",zs,e.toDisplayString(u(y.event)),1),e.createElementVNode("span",Rs,e.toDisplayString(f(y.created_at)),1)]),p(y)?(e.openBlock(),e.createElementBlock("div",Ps,e.toDisplayString(p(y)),1)):e.createCommentVNode("",!0)])]))),128))])):(e.openBlock(),e.createElementBlock("div",Ds," Записей в истории пока нет. "))]))}}),js={class:"admin-page admin-resource-view"},Os={class:"admin-resource-view__hd"},Ws={class:"admin-resource-view__hd-left"},Hs={class:"admin-page__title"},Ks={class:"admin-resource-view__meta"},Gs=["data-variant","data-status"],Xs={class:"admin-resource-view__uid"},Ys={class:"admin-resource-view__hd-right"},Zs={key:1,class:"admin-resource-view__loading"},Js={key:2,class:"admin-resource-view__grid"},Qs={class:"admin-resource-view__main"},ec={class:"admin-resource-view__aside"},tc={class:"admin-resource-view__metrics"},nc={class:"admin-resource-view__metric-label"},ac={class:"admin-resource-view__metric-value"},Dn=e.defineComponent({__name:"ResourceViewPage",props:{slug:{},id:{},editRouteName:{default:void 0},indexRouteName:{default:null},auditSubjectType:{default:null},statusField:{default:"status"},uidPrefix:{default:"#"}},setup(t){const n=t,a=bt(),r=ce(),o=Z.useRouter();Mn(a.state);const l=e.computed(()=>r.getResource(n.slug)),i=e.computed(()=>l.value?.infolist??l.value?.fields??[]),s=e.computed(()=>n.auditSubjectType!==null?n.auditSubjectType:l.value?.subject_type??null),u=e.computed(()=>{const M=a.state,g=[],v=W=>{if(typeof W!="string"||W==="")return null;const K=new Date(W);return Number.isNaN(K.getTime())?null:K.toLocaleString("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})},_=v(M.created_at);_&&g.push({label:"Создано",value:_});const F=v(M.updated_at);F&&F!==_&&g.push({label:"Обновлено",value:F});const R=typeof M.created_by_name=="string"&&M.created_by_name!==""?M.created_by_name:typeof M.author=="string"?M.author:null;return R&&g.push({label:"Автор",value:R}),g}),f=e.computed(()=>{const M=a.state,g=M.title??M.name??M.label;return typeof g=="string"&&g.length>0?g:`${l.value?.label??n.slug}: запись #${n.id}`}),p=e.computed(()=>l.value?.label??n.slug),b=e.computed(()=>`${n.uidPrefix}${n.id}`),d=e.computed(()=>{const g=a.state[n.statusField];return typeof g=="string"&&g.length>0?g:null}),B={published:"success",active:"success",enabled:"success",draft:"neutral",pending:"warning",review:"warning",archived:"muted",disabled:"muted",inactive:"muted",deleted:"danger",failed:"danger",error:"danger"};function y(M){return B[M.toLowerCase()]??"neutral"}const k=e.computed(()=>(l.value?.actions??[]).map(g=>({key:String(g.key??g.name??""),label:String(g.label??g.name??g.key??""),confirm:typeof g.confirm=="string"?g.confirm:void 0})).filter(g=>g.key!==""&&g.label!==""));async function m(M){if(!(M.confirm&&!window.confirm(M.confirm)))try{const{getAdminClient:g}=await Promise.resolve().then(()=>Q);await g().post(`/${n.slug}/action/${M.key}`,{ids:[n.id]}),await a.load(n.slug,n.id,"view").catch(()=>{})}catch(g){typeof console<"u"&&console.error("[admin] action failed:",g)}}e.onMounted(async()=>{r.manifest===null&&await r.load().catch(()=>{}),await a.load(n.slug,n.id,"view").catch(()=>{})}),e.watch(()=>[n.slug,n.id],async([M,g])=>{await a.load(M,g,"view").catch(()=>{})});const w=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);function V(){o.push({name:w.value}).catch(()=>{o.push(`/r/${n.slug}`)})}function E(){if(!n.editRouteName){o.push(`/r/${n.slug}/${n.id}/edit`).catch(()=>{});return}o.push({name:n.editRouteName,params:{id:n.id}}).catch(()=>{})}async function C(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||o.push({name:w.value}).catch(()=>{}))}return(M,g)=>(e.openBlock(),e.createElementBlock("section",js,[e.createElementVNode("header",Os,[e.createElementVNode("div",Ws,[e.createElementVNode("button",{type:"button",class:"admin-resource-view__back",onClick:V},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ga),size:14},null,8,["icon"]),e.createTextVNode(" "+e.toDisplayString(p.value),1)]),e.createElementVNode("h1",Hs,e.toDisplayString(f.value),1),e.createElementVNode("div",Ks,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-status-badge","data-variant":y(d.value),"data-status":d.value},[g[0]||(g[0]=e.createElementVNode("span",{class:"admin-status-badge__dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(d.value),1)],8,Gs)):e.createCommentVNode("",!0),e.createElementVNode("span",Xs,e.toDisplayString(b.value),1)])]),e.createElementVNode("div",Ys,[e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:E},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ct),size:14},null,8,["icon"])]),default:e.withCtx(()=>[g[1]||(g[1]=e.createTextVNode(" Редактировать ",-1))]),_:1}),e.createVNode(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"md","aria-label":"Действия",class:"admin-page__more"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ht),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,v=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:v.key,onClick:_=>m(v)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.label),1)]),_:2},1032,["onClick"]))),128)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:C},{icon:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ge),size:14},null,8,["icon"])]),default:e.withCtx(()=>[g[2]||(g[2]=e.createTextVNode(" Удалить ",-1))]),_:1})]),_:1})])]),e.unref(a).hasError?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"danger",class:"admin-resource-view__alert",role:"alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).error?.message??"Не удалось загрузить запись"),1)]),_:1})):e.createCommentVNode("",!0),e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",Zs,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(8,v=>e.createVNode(e.unref(c.UidSkeleton),{key:v,height:"24px"})),64))])):(e.openBlock(),e.createElementBlock("div",Js,[e.createElementVNode("div",Qs,[e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[g[3]||(g[3]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Основные данные",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(v,_)=>(e.openBlock(),e.createBlock(Un,{key:_,node:v},null,8,["node"]))),128))]),_:1}),e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[e.createVNode(qs,{"subject-type":s.value,"subject-id":t.id},null,8,["subject-type","subject-id"])]),_:1})]),e.createElementVNode("aside",ec,[u.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[g[4]||(g[4]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Метрики",-1)),e.createElementVNode("dl",tc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,v=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:v.label},[e.createElementVNode("dt",nc,e.toDisplayString(v.label),1),e.createElementVNode("dd",ac,e.toDisplayString(v.value),1)],64))),128))])]),_:1})):e.createCommentVNode("",!0),e.renderSlot(M.$slots,"sidebar",{record:e.unref(a).state,resource:l.value})])]))]))}}),oc={class:"admin-page admin-profile"},lc={class:"admin-page__hd"},rc={class:"admin-page__title-wrap"},ic={class:"admin-page__title"},sc={class:"admin-page__count"},cc={class:"admin-profile__layout"},dc={class:"admin-profile__nav","aria-label":"Profile sections"},uc=["onClick"],mc=["data-icon"],fc={class:"admin-profile__content"},pc={class:"admin-profile__hero"},vc={class:"admin-profile__hero-text"},hc={class:"admin-profile__hero-name"},yc={class:"admin-profile__hero-meta"},gc={class:"admin-profile__form"},kc={class:"admin-profile__card-ft"},_c={class:"admin-profile__card-hd"},bc={key:0,class:"admin-profile__hint"},wc={key:1,class:"admin-profile__hint"},Bc={class:"admin-profile__card-ft"},Vc={class:"admin-profile__hint"},Tn=e.defineComponent({__name:"ProfilePage",props:{title:{default:"Profile"},subtitle:{default:"Личные данные, безопасность, токены"},section:{default:"general"}},emits:["update:section","avatar-replace","two-factor-disable","two-factor-regenerate","save"],setup(t,{emit:n}){const a=t,r=n,o=re(),l=We(),i=$e(),s=[{id:"general",label:"Основное",icon:"user"},{id:"security",label:"Безопасность",icon:"shield"},{id:"tokens",label:"API токены",icon:"key"},{id:"sessions",label:"Сессии",icon:"monitor"}],u=e.ref(a.section);function f(V){u.value=V,r("update:section",V)}const p=e.ref({name:o.user?.name??"",email:o.user?.email??"",locale:i.current,theme:l.current}),b=e.computed(()=>i.available.map(V=>({value:V,label:V.toUpperCase()}))),d=e.computed(()=>l.available.map(V=>({value:V,label:V==="dark"?"Тёмная":V==="light"?"Светлая":V})));e.watch(()=>p.value.locale,(V,E)=>{V===E||!V||i.setLocale(V).catch(()=>{})}),e.watch(()=>p.value.theme,(V,E)=>{V===E||!V||l.setTheme(V).catch(()=>{})});function B(){r("save",{...p.value})}function y(){r("avatar-replace")}function k(){r("two-factor-disable")}function m(){r("two-factor-regenerate")}const w=e.computed(()=>!!o.user?.twoFactorEnabled);return(V,E)=>(e.openBlock(),e.createElementBlock("section",oc,[e.createElementVNode("header",lc,[e.createElementVNode("div",rc,[e.createElementVNode("h1",ic,e.toDisplayString(t.title),1),e.createElementVNode("div",sc,e.toDisplayString(t.subtitle),1)])]),e.createElementVNode("div",cc,[e.createElementVNode("nav",dc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,C=>e.createElementVNode("button",{key:C.id,type:"button",class:e.normalizeClass(["admin-profile__nav-item",{"admin-profile__nav-item--active":u.value===C.id}]),onClick:M=>f(C.id)},[e.createElementVNode("span",{class:"admin-profile__nav-icon","data-icon":C.icon},null,8,mc),e.createElementVNode("span",null,e.toDisplayString(C.label),1)],10,uc)),64))]),e.createElementVNode("div",fc,[u.value==="general"?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md"},{default:e.withCtx(()=>[E[7]||(E[7]=e.createElementVNode("header",{class:"admin-profile__card-hd"},[e.createElementVNode("h3",{class:"admin-profile__card-title"},"Профиль")],-1)),e.createElementVNode("div",pc,[e.createVNode(e.unref(c.UidAvatar),{src:e.unref(o).user?.avatar??void 0,name:e.unref(o).user?.name??"?",size:"lg"},null,8,["src","name"]),e.createElementVNode("div",vc,[e.createElementVNode("div",hc,e.toDisplayString(e.unref(o).user?.name??"—"),1),e.createElementVNode("div",yc,e.toDisplayString(e.unref(o).user?.email??"—"),1)]),E[5]||(E[5]=e.createElementVNode("div",{style:{flex:"1"}},null,-1)),e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:y},{default:e.withCtx(()=>[...E[4]||(E[4]=[e.createTextVNode(" Заменить ",-1)])]),_:1})]),e.createElementVNode("div",gc,[e.createVNode(e.unref(c.UidInput),{modelValue:p.value.name,"onUpdate:modelValue":E[0]||(E[0]=C=>p.value.name=C),label:"Имя",name:"name"},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:p.value.email,"onUpdate:modelValue":E[1]||(E[1]=C=>p.value.email=C),label:"Email",type:"email",name:"email"},null,8,["modelValue"]),e.createVNode(e.unref(c.UidSelect),{modelValue:p.value.locale,"onUpdate:modelValue":E[2]||(E[2]=C=>p.value.locale=C),options:b.value,label:"Язык"},null,8,["modelValue","options"]),e.createVNode(e.unref(c.UidSelect),{modelValue:p.value.theme,"onUpdate:modelValue":E[3]||(E[3]=C=>p.value.theme=C),options:d.value,label:"Тема"},null,8,["modelValue","options"])]),e.createElementVNode("footer",kc,[e.createVNode(e.unref(c.UidButton),{variant:"primary",onClick:B},{default:e.withCtx(()=>[...E[6]||(E[6]=[e.createTextVNode("Сохранить",-1)])]),_:1})])]),_:1})):u.value==="security"?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("header",_c,[E[8]||(E[8]=e.createElementVNode("h3",{class:"admin-profile__card-title"},"Двухфакторная аутентификация",-1)),e.createVNode(e.unref(c.UidBadge),{variant:w.value?"success":"default"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.value?"Включена":"Отключена"),1)]),_:1},8,["variant"])]),w.value?(e.openBlock(),e.createElementBlock("p",bc," 2FA включена. У вас остались recovery-коды на случай потери устройства. ")):(e.openBlock(),e.createElementBlock("p",wc," Включите 2FA для дополнительной защиты аккаунта. ")),e.createElementVNode("footer",Bc,[w.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref(c.UidButton),{variant:"ghost",size:"sm",onClick:m},{default:e.withCtx(()=>[...E[9]||(E[9]=[e.createTextVNode(" Перегенерировать коды ",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"danger",size:"sm",onClick:k},{default:e.withCtx(()=>[...E[10]||(E[10]=[e.createTextVNode(" Отключить 2FA ",-1)])]),_:1})],64)):e.renderSlot(V.$slots,"enable-2fa",{key:1},()=>[e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:""},{default:e.withCtx(()=>[...E[11]||(E[11]=[e.createTextVNode(" Включить 2FA (host customize) ",-1)])]),_:1})])])]),_:3})):e.renderSlot(V.$slots,u.value,{key:2,section:u.value},()=>[e.createVNode(e.unref(c.UidCard),{padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("p",Vc," Section «"+e.toDisplayString(u.value)+"» не реализована библиотекой — host-проект подключает её через slot "+e.toDisplayString(u.value)+". ",1)]),_:1})])])])]))}}),lt=e.defineComponent({__name:"StatWidget",props:{title:{default:""},value:{default:0},prefix:{default:""},suffix:{default:""},trend:{default:void 0},precision:{default:0},tone:{default:"neutral"},loading:{type:Boolean,default:!1}},setup(t){const n=t,a={neutral:"primary",positive:"success",negative:"danger",warning:"warning",info:"info"},r=e.computed(()=>a[n.tone]);return(o,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidStat),{title:t.title,value:t.value,prefix:t.prefix,suffix:t.suffix,trend:t.trend,precision:t.precision,tone:r.value,loading:t.loading},null,8,["title","value","prefix","suffix","trend","precision","tone","loading"]))}}),Nc={key:0,class:"admin-widget__hd"},xc={key:0,class:"admin-widget__title"},Cc={key:1,class:"admin-widget__desc"},Ec=["viewBox","height","aria-label"],$c=["x","y","width","height","fill","data-label","data-value"],xt=e.defineComponent({__name:"BarChartWidget",props:{title:{default:""},description:{default:""},data:{},accent:{default:"var(--uid-accent)"},height:{default:200}},setup(t){const n=t,a=e.computed(()=>Math.max(1,...n.data.map(o=>o.value))),r=e.computed(()=>{const l=100/Math.max(1,n.data.length);return n.data.map((i,s)=>({label:i.label,value:i.value,x:s*l+l*.1,width:l*.8,heightPct:i.value/a.value*100}))});return(o,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title||t.description?(e.openBlock(),e.createElementBlock("header",Nc,[t.title?(e.openBlock(),e.createElementBlock("h3",xc,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",Cc,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{class:"admin-widget-bar-chart",viewBox:`0 0 100 ${t.height}`,preserveAspectRatio:"none",height:t.height,width:"100%",role:"img","aria-label":t.title||"Bar chart"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(i,s)=>(e.openBlock(),e.createElementBlock("rect",{key:s,x:i.x,y:t.height-i.heightPct/100*t.height,width:i.width,height:i.heightPct/100*t.height,fill:t.accent,rx:"1","data-label":i.label,"data-value":i.value},[e.createElementVNode("title",null,e.toDisplayString(i.label)+": "+e.toDisplayString(i.value),1)],8,$c))),128))],8,Ec))]),_:1}))}}),Sc={key:0,class:"admin-widget__hd"},Uc={class:"admin-widget__title"},Mc={class:"admin-donut-widget__row"},Dc=["aria-label"],Tc=["d","fill"],Ic={class:"admin-donut-widget__legend"},Fc={class:"admin-donut-widget__label"},Ac={class:"admin-donut-widget__value"},Ct=e.defineComponent({__name:"DonutChartWidget",props:{title:{default:""},data:{}},setup(t){const n=t,a=["var(--uid-color-teal-500, #14b8a6)","var(--uid-color-zinc-700, #3f3f46)","var(--uid-color-amber-400, #fbbf24)","var(--uid-color-rose-400, #fb7185)","var(--uid-color-blue-400, #60a5fa)"],r=e.computed(()=>n.data.reduce((l,i)=>l+i.value,0)||1),o=e.computed(()=>{let l=0;return n.data.map((i,s)=>{const u=l/r.value*2*Math.PI;l+=i.value;const f=l/r.value*2*Math.PI,p=50,b=60,d=60,B=b+p*Math.cos(u-Math.PI/2),y=d+p*Math.sin(u-Math.PI/2),k=b+p*Math.cos(f-Math.PI/2),m=d+p*Math.sin(f-Math.PI/2),w=f-u>Math.PI?1:0,V=n.data.length===1?`M ${b-p} ${d} a ${p} ${p} 0 1 0 ${p*2} 0 a ${p} ${p} 0 1 0 ${-p*2} 0`:`M ${b} ${d} L ${B} ${y} A ${p} ${p} 0 ${w} 1 ${k} ${m} Z`;return{...i,path:V,color:i.color??a[s%a.length],pct:(i.value/r.value*100).toFixed(1)}})});return(l,i)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget admin-donut-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Sc,[e.createElementVNode("h3",Uc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Mc,[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 120 120",class:"admin-donut-widget__svg",role:"img","aria-label":t.title},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(s,u)=>(e.openBlock(),e.createElementBlock("path",{key:u,d:s.path,fill:s.color},[e.createElementVNode("title",null,e.toDisplayString(s.label)+": "+e.toDisplayString(s.value)+" ("+e.toDisplayString(s.pct)+"%)",1)],8,Tc))),128)),i[0]||(i[0]=e.createElementVNode("circle",{cx:"60",cy:"60",r:"30",fill:"var(--uid-surface-raised)"},null,-1))],8,Dc)),e.createElementVNode("ul",Ic,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(s,u)=>(e.openBlock(),e.createElementBlock("li",{key:u},[e.createElementVNode("span",{class:"admin-donut-widget__dot",style:e.normalizeStyle({background:s.color})},null,4),e.createElementVNode("span",Fc,e.toDisplayString(s.label),1),e.createElementVNode("span",Ac,e.toDisplayString(s.pct)+"%",1)]))),128))])])]),_:1}))}}),Lc={key:0,class:"admin-widget__hd"},zc={class:"admin-widget__title"},Re=e.defineComponent({__name:"RecentTableWidget",props:{title:{default:""},columns:{},rows:{},emptyText:{default:"Нет данных"}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Lc,[e.createElementVNode("h3",zc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidTable),{columns:t.columns,data:t.rows,"empty-text":t.emptyText},null,8,["columns","data","empty-text"])]),_:1}))}}),Rc={key:0,class:"admin-widget__hd"},Pc={class:"admin-widget__title"},In=e.defineComponent({__name:"HeatmapWidget",props:{title:{default:""},data:{},levels:{default:5},color:{default:void 0},gap:{default:2}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Rc,[e.createElementVNode("h3",Pc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidHeatmap),{data:t.data,levels:t.levels,color:t.color,gap:t.gap},null,8,["data","levels","color","gap"])]),_:1}))}}),qc={key:0,class:"admin-widget__hd"},jc={class:"admin-widget__title"},Oc={style:{display:"flex","justify-content":"center"}},Fn=e.defineComponent({__name:"GaugeWidget",props:{title:{default:""},value:{default:0},min:{default:0},max:{default:100},size:{default:160},ranges:{default:()=>[]},tone:{default:"neutral"},color:{default:void 0},label:{default:""},suffix:{default:""},precision:{default:0}},setup(t){const n=t,a={neutral:"primary",positive:"success",warning:"warning",negative:"danger"},r=e.computed(()=>a[n.tone]);return(o,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",qc,[e.createElementVNode("h3",jc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Oc,[e.createVNode(e.unref(c.UidGauge),{value:t.value,min:t.min,max:t.max,size:t.size,ranges:t.ranges,tone:r.value,color:t.color,label:t.label,suffix:t.suffix,precision:t.precision},null,8,["value","min","max","size","ranges","tone","color","label","suffix","precision"])])]),_:1}))}}),Wc={key:0,class:"admin-widget__hd"},Hc={class:"admin-widget__title"},Kc={class:"admin-markdown-widget"},An=e.defineComponent({__name:"MarkdownWidget",props:{title:{default:""},content:{}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Wc,[e.createElementVNode("h3",Hc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Kc,e.toDisplayString(t.content),1)]),_:1}))}}),Gc=e.defineComponent({__name:"ChartWidget",props:{type:{},title:{},size:{},data:{}},setup(t){const n=t,a=e.computed(()=>n.data?.type??"bar"),r=["#10b981","#f59e0b","#9ca3af","#3b82f6","#dc2626","#a855f7","#ec4899"],o=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((u,f)=>({label:n.data?.labels?.[f]??String(f+1),value:u})):[]}),l=e.computed(()=>n.data?.datasets?.[0]?.color),i=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((u,f)=>({label:n.data?.labels?.[f]??String(f+1),value:u,color:s.color??r[f%r.length]})):[]});return(s,u)=>a.value==="doughnut"||a.value==="pie"?(e.openBlock(),e.createBlock(Ct,{key:0,title:t.title,data:i.value},null,8,["title","data"])):a.value==="bar"||a.value==="line"||a.value==="area"?(e.openBlock(),e.createBlock(xt,{key:1,title:t.title,data:o.value,accent:l.value},null,8,["title","data","accent"])):(e.openBlock(),e.createBlock(gt,{key:2,type:`chart:${a.value}`},null,8,["type"]))}});function Ln(){hn({stat:lt,stats:lt,chart:Gc,"bar-chart":xt,"donut-chart":Ct,"recent-table":Re,recent_list:Re,"recent-list":Re,heatmap:In,gauge:Fn,markdown:An})}function zn(t){return t.success===!0}function Xc(t){return t.success===!1}function Rn(t){const n=fa.create({baseURL:t.baseURL,withCredentials:!0,headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest"}});t.csrfToken&&(n.defaults.headers.common["X-CSRF-TOKEN"]=t.csrfToken),t.locale&&(n.defaults.headers.common["X-Admin-Locale"]=t.locale),n.interceptors.request.use(o=>{const l=Yc("XSRF-TOKEN");return l&&o.headers.set("X-XSRF-TOKEN",decodeURIComponent(l)),o}),n.interceptors.response.use(o=>{const l=o.data;if(l&&typeof l=="object"&&"success"in l){if(zn(l))return o.data=l.payload,o;throw tt(o.status,l.payload)}return o},o=>{if(o.response){const l=o.response.status,i=o.response.data?.payload??{errorKey:"unknown",message:o.message},s=tt(l,i);return s instanceof vt&&t.onUnauthenticated?.(),Promise.reject(s)}return Promise.reject(new Me(o.message))});const a=(o,l,i)=>n[o](l,i).then(s=>s.data),r=(o,l,i,s)=>n[o](l,i,s).then(u=>u.data);return{raw:n,get:(o,l)=>a("get",o,l),delete:(o,l)=>a("delete",o,l),post:(o,l,i)=>r("post",o,l,i),put:(o,l,i)=>r("put",o,l,i),patch:(o,l,i)=>r("patch",o,l,i),setLocale:o=>{n.defaults.headers.common["X-Admin-Locale"]=o}}}function Yc(t){if(typeof document>"u")return null;const n=document.cookie.match(new RegExp("(^|; )"+Zc(t)+"=([^;]*)"));return n?n[2]:null}function Zc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ze(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function Jc(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function Qc(t){return Array.isArray(t.permission)?t.permission:typeof t.permission=="string"&&t.permission.length>0?[t.permission]:[]}function ed(t,n){const a=t.slug,r=`/r/${a}`;return[{path:r,name:`admin.resource.${a}.index`,component:n.resourceIndex,meta:{requiresAuth:!0,kind:"resource",slug:a,title:t.label,permissions:ze(t,"view")},props:{slug:a}},{path:`${r}/create`,name:`admin.resource.${a}.create`,component:n.resourceCreate,meta:{requiresAuth:!0,kind:"resource",slug:a,title:`${t.label}: создать`,permissions:ze(t,"create")},props:{slug:a}},{path:`${r}/:id/edit`,name:`admin.resource.${a}.edit`,component:n.resourceEdit,meta:{requiresAuth:!0,kind:"resource",slug:a,title:`${t.label}: редактирование`,permissions:ze(t,"update")},props:o=>({slug:a,id:o.params.id})},{path:`${r}/:id`,name:`admin.resource.${a}.view`,component:n.resourceView,meta:{requiresAuth:!0,kind:"resource",slug:a,title:t.label,permissions:ze(t,"view")},props:o=>({slug:a,id:o.params.id})}]}function td(t,n){return{path:`/screens/${t.slug}`,name:`admin.screen.${t.slug}`,component:n.screen,meta:{requiresAuth:!0,kind:"screen",slug:t.slug,title:t.name,permissions:Qc(t)}}}function nd(t,n){return{path:`/settings/${t.slug}`,name:`admin.settings.${t.slug}`,component:n.settings,meta:{requiresAuth:!0,kind:"settings",slug:t.slug,title:t.label,permissions:Jc(t,"view")}}}function ad(t,n){if(typeof t.slug!="string"||t.slug.length===0)return null;const a=t.permission,r=Array.isArray(a)?a:typeof a=="string"&&a.length>0?[a]:[];return{path:`/dashboard/${t.slug}`,name:`admin.dashboard.${t.slug}`,component:n.dashboard,meta:{requiresAuth:!0,kind:"dashboard",slug:t.slug,title:t.label??"Dashboard",permissions:r}}}function Pn(t,n){if(t===null)return[];const a=[];for(const r of t.resources)a.push(...ed(r,n));for(const r of t.screens)a.push(td(r,n));for(const r of t.settings)a.push(nd(r,n));for(const r of t.dashboards){const o=ad(r,n);o&&a.push(o)}return a}function qn(t={}){const n=t.loginRouteName??"admin.login",a=t.forbiddenRouteName??"admin.forbidden",r=t.redirectQueryKey??"redirect";return o=>{if(o.name===n)return!0;const l=re();if(o.meta?.requiresAuth===!0&&!l.isAuthenticated)return{name:n,query:{[r]:o.fullPath}};if(l.isChallengePending)return{name:n,query:{[r]:o.fullPath}};const s=o.meta?.permissions;return Array.isArray(s)&&s.length>0&&!l.hasAnyPermission(s)?{name:a}:!0}}function jn(t={}){const n=t.template,a=t.brand??"",r=t.fallback??"";return o=>{if(typeof document>"u")return;const l=o.meta?.title??r;let i;n?i=n.replace("{title}",l).replace("{brand}",a):l&&a?i=`${l} · ${a}`:i=l||a,document.title=i}}const od=["admin.resource.","admin.screen.","admin.settings.","admin.dashboard."];function ld(t){return typeof t!="string"?!1:od.some(n=>t.startsWith(n))}function On(t){const n=t.base??"/admin",a=t.history??Z.createWebHistory(n),r=[{path:"/login",name:"admin.login",component:t.components.login,meta:{kind:"auth",title:"Вход"}},{path:"/",name:"admin.home",component:t.components.home,meta:{requiresAuth:!0,kind:"system",title:"Главная"}},{path:"/forbidden",name:"admin.forbidden",component:t.components.forbidden,meta:{requiresAuth:!0,kind:"system",title:"403 — доступ запрещён"}}];t.components.profile&&r.push({path:"/profile",name:"admin.profile",component:t.components.profile,meta:{requiresAuth:!0,kind:"system",title:"Профиль"}}),t.components.notifications&&r.push({path:"/notifications",name:"admin.notifications",component:t.components.notifications,meta:{requiresAuth:!0,kind:"system",title:"Уведомления"}}),t.components.forgotPassword&&r.push({path:"/forgot-password",name:"admin.forgotPassword",component:t.components.forgotPassword,meta:{kind:"auth",title:"Восстановление пароля"}}),t.components.resetPassword&&r.push({path:"/reset-password",name:"admin.resetPassword",component:t.components.resetPassword,meta:{kind:"auth",title:"Новый пароль"}});const o={path:"/:pathMatch(.*)*",name:"admin.notFound",component:t.components.notFound,meta:{kind:"system",title:"404"}},l=Z.createRouter({history:a,routes:[...r,...t.extraRoutes??[],o]});return l.beforeEach(qn(t.authGuard)),l.afterEach(jn(t.titleGuard)),l.replaceManifestRoutes=i=>{const s=l.getRoutes();for(const f of s)ld(f.name)&&l.removeRoute(f.name);l.hasRoute("admin.notFound")&&l.removeRoute("admin.notFound");const u=Pn(i,t.components);for(const f of u)l.addRoute(f);l.addRoute(o)},l}const le=e.defineComponent({__name:"TextField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},inputType:{default:"text"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autocomplete:{default:null}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>a.getField(n.name)??""),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidInput),{"model-value":r.value,type:t.inputType,label:t.label??void 0,hint:t.help??void 0,error:o.value,placeholder:t.placeholder??void 0,required:t.required,disabled:t.disabled,readonly:t.readonly,name:t.name,autocomplete:t.autocomplete??void 0,"onUpdate:modelValue":l},null,8,["model-value","type","label","hint","error","placeholder","required","disabled","readonly","name","autocomplete"]))}}),xe=e.defineComponent({__name:"TextAreaField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},rows:{default:4},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>a.getField(n.name)??""),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:o.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidTextarea),{"model-value":r.value,rows:t.rows,placeholder:t.placeholder??void 0,disabled:t.disabled,readonly:t.readonly,name:t.name,"onUpdate:modelValue":l},null,8,["model-value","rows","placeholder","disabled","readonly","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),Pe=e.defineComponent({__name:"NumberField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},min:{default:null},max:{default:null},step:{default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:typeof i=="number"?i:Number(i)}),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:o.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidNumberInput),{"model-value":r.value,min:t.min??void 0,max:t.max??void 0,step:t.step??void 0,placeholder:t.placeholder??void 0,disabled:t.disabled,readonly:t.readonly,name:t.name,"onUpdate:modelValue":l},null,8,["model-value","min","max","step","placeholder","disabled","readonly","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),me=e.defineComponent({__name:"SelectField",props:{name:{},options:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},disabled:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},size:{default:"md"}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:i}),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:o.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidSelect),{"model-value":r.value,options:t.options,placeholder:t.placeholder??void 0,disabled:t.disabled,searchable:t.searchable,clearable:t.clearable,size:t.size,"onUpdate:modelValue":l},null,8,["model-value","options","placeholder","disabled","searchable","clearable","size"])]),_:1},8,["label","hint","error","required","disabled"]))}}),Ce=e.defineComponent({__name:"CheckboxField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},inlineLabel:{default:null},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>!!a.getField(n.name)),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:o.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidCheckbox),{"model-value":r.value,disabled:t.disabled,name:t.name,"onUpdate:modelValue":l},{default:e.withCtx(()=>[t.inlineLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.inlineLabel),1)],64)):e.createCommentVNode("",!0)]),_:1},8,["model-value","disabled","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),ve=e.defineComponent({__name:"DateField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},inputType:{default:"date"},min:{default:null},max:{default:null},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const i=a.getField(n.name);return i==null||i===""?null:String(i)}),o=e.computed(()=>a.errors[n.name]?.[0]);function l(i){a.setField(n.name,i)}return(i,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:o.value,required:t.required,disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(e.unref(c.UidDatePicker),{"model-value":r.value,min:t.min??void 0,max:t.max??void 0,disabled:t.disabled,name:t.name,"onUpdate:modelValue":l},null,8,["model-value","min","max","disabled","name"])]),_:1},8,["label","hint","error","required","disabled"]))}}),rd={key:0,class:"admin-field__label"},id={key:0,class:"admin-field__required","aria-hidden":"true"},sd={class:"admin-tags__chip-text"},cd=["onClick"],dd=["value","placeholder","disabled"],ud={key:0,class:"admin-tags__dropdown",role:"listbox"},md={class:"admin-tags__group-label"},fd=["aria-selected","onMousedown","onMouseenter"],pd=["aria-selected","onMousedown","onMouseenter"],vd={key:1,class:"admin-field__error"},hd={key:2,class:"admin-field__help"},yd=e.defineComponent({__name:"TagsField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:"Введите ключ и нажмите Enter…"},suggestions:{default:()=>[]},suggestionsByGroup:{default:()=>[]},maxItems:{default:0},separator:{default:","},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=e.computed(()=>{const g=a.getField(n.name);return Array.isArray(g)?g.map(v=>String(v)):typeof g=="string"&&g!==""?g.split(",").map(v=>v.trim()).filter(Boolean):[]}),o=e.computed(()=>a.errors[n.name]?.[0]),l=e.ref(""),i=e.ref(!1),s=e.ref(null),u=e.ref(null);function f(g){const v=new Set,_=[];for(const F of g){const R=F.trim();if(!(R===""||v.has(R))&&(v.add(R),_.push(R),n.maxItems>0&&_.length>=n.maxItems))break}a.setField(n.name,_)}function p(g){const v=g.trim();if(v!==""){if(r.value.includes(v)){l.value="";return}f([...r.value,v]),l.value=""}}function b(g){const v=[...r.value];v.splice(g,1),f(v)}function d(g){g.key==="Enter"?(g.preventDefault(),y.value>=0&&w.value[y.value]?p(w.value[y.value]):l.value.trim()!==""&&p(l.value)):g.key==="Backspace"&&l.value===""&&r.value.length>0?b(r.value.length-1):g.key==="ArrowDown"?(g.preventDefault(),y.value=Math.min(y.value+1,w.value.length-1)):g.key==="ArrowUp"?(g.preventDefault(),y.value=Math.max(y.value-1,-1)):g.key==="Escape"&&(i.value=!1,s.value?.blur())}function B(g){const v=g.target.value;if(n.separator&&v.includes(n.separator)){const _=v.split(n.separator);_.slice(0,-1).map(R=>R.trim()).filter(Boolean).forEach(p),l.value=_[_.length-1]??"";return}l.value=v}const y=e.ref(-1),k=e.computed(()=>Array.isArray(n.suggestionsByGroup)&&n.suggestionsByGroup.length>0),m=e.computed(()=>{const g=l.value.trim().toLowerCase(),v=new Set(r.value);return k.value?n.suggestionsByGroup.map(_=>({label:_.label,items:_.items.filter(F=>!v.has(F)&&(g===""||F.toLowerCase().includes(g)))})).filter(_=>_.items.length>0):[]}),w=e.computed(()=>{if(k.value)return m.value.flatMap(_=>_.items);const g=l.value.trim().toLowerCase(),v=new Set(r.value);return n.suggestions.filter(_=>!v.has(_)).filter(_=>g===""||_.toLowerCase().includes(g)).slice(0,200)});function V(g){return g===y.value}e.watch(l,()=>{y.value=-1});function E(){n.disabled||s.value?.focus()}function C(g){p(g),e.nextTick(()=>s.value?.focus())}function M(){window.setTimeout(()=>{i.value=!1,l.value.trim()!==""&&p(l.value)},120)}return(g,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":o.value!==void 0}])},[t.label?(e.openBlock(),e.createElementBlock("label",rd,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.required?(e.openBlock(),e.createElementBlock("span",id,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"containerRef",ref:u,class:e.normalizeClass(["admin-field__control admin-tags",{"admin-tags--focused":i.value,"admin-tags--disabled":t.disabled}]),onClick:E},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,F)=>(e.openBlock(),e.createElementBlock("span",{key:`${_}-${F}`,class:"admin-tags__chip"},[e.createElementVNode("span",sd,e.toDisplayString(_),1),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-tags__chip-remove","aria-label":"Удалить",onClick:e.withModifiers(R=>b(F),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ke),size:10},null,8,["icon"])],8,cd))]))),128)),e.createElementVNode("input",{ref_key:"inputRef",ref:s,value:l.value,placeholder:r.value.length===0?t.placeholder??"":"",disabled:t.disabled,class:"admin-tags__input",type:"text",onInput:B,onKeydown:d,onFocus:v[0]||(v[0]=_=>i.value=!0),onBlur:M},null,40,dd),i.value&&w.value.length>0?(e.openBlock(),e.createElementBlock("div",ud,[k.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(_,F)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:`g-${F}-${_.label}`},[e.createElementVNode("div",md,e.toDisplayString(_.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.items,R=>(e.openBlock(),e.createElementBlock("button",{key:R,type:"button",role:"option",class:e.normalizeClass(["admin-tags__option",{"admin-tags__option--active":V(w.value.indexOf(R))}]),"aria-selected":V(w.value.indexOf(R)),onMousedown:e.withModifiers(W=>C(R),["prevent"]),onMouseenter:W=>y.value=w.value.indexOf(R)},e.toDisplayString(R),43,fd))),128))],64))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(w.value,(_,F)=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",role:"option",class:e.normalizeClass(["admin-tags__option",{"admin-tags__option--active":F===y.value}]),"aria-selected":F===y.value,onMousedown:e.withModifiers(R=>C(_),["prevent"]),onMouseenter:R=>y.value=F},e.toDisplayString(_),43,pd))),128))])):e.createCommentVNode("",!0)],2),o.value?(e.openBlock(),e.createElementBlock("p",vd,e.toDisplayString(o.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",hd,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),gd={key:0,class:"admin-field__label"},kd={key:0,class:"admin-field__required","aria-hidden":"true"},_d={class:"admin-translatable"},bd={class:"admin-translatable__tabs",role:"tablist"},wd=["aria-selected","onClick"],Bd={key:0,class:"admin-translatable__dot","aria-hidden":"true"},Vd={class:"admin-translatable__panel"},Nd=["value","placeholder","rows","disabled"],xd={key:1,class:"admin-field__error"},Cd={key:2,class:"admin-field__help"},Pt=e.defineComponent({__name:"TranslatableField",props:{name:{},label:{default:null},help:{default:null},required:{type:Boolean,default:!1},placeholder:{default:null},locales:{default:void 0},multiline:{type:Boolean,default:!1},rows:{default:3},disabled:{type:Boolean,default:!1}},setup(t){const n=t,a=ne.useFormState(),r=$e(),o=e.computed(()=>n.locales??r.available??[r.current??"ru"]),l=e.ref(r.current??o.value[0]??"ru"),i=e.computed(()=>{const p=a.getField(n.name);return p&&typeof p=="object"&&!Array.isArray(p)?p:typeof p=="string"?{[l.value]:p}:{}});function s(p,b){const d={...i.value};d[p]=b,a.setField(n.name,d)}const u=e.computed(()=>{const p=a.errors[n.name];if(p?.[0])return p[0];for(const b of o.value){const d=a.errors[`${n.name}.${b}`]?.[0];if(d)return`[${b}] ${d}`}});function f(p){const b=i.value[p];return typeof b=="string"&&b.trim()!==""}return(p,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":u.value!==void 0}])},[t.label?(e.openBlock(),e.createElementBlock("label",gd,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.required?(e.openBlock(),e.createElementBlock("span",kd,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",_d,[e.createElementVNode("div",bd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,type:"button",role:"tab",class:e.normalizeClass(["admin-translatable__tab",{"admin-translatable__tab--active":l.value===d,"admin-translatable__tab--filled":f(d)}]),"aria-selected":l.value===d,onClick:B=>l.value=d},[e.createTextVNode(e.toDisplayString(d.toUpperCase())+" ",1),f(d)?(e.openBlock(),e.createElementBlock("span",Bd)):e.createCommentVNode("",!0)],10,wd))),128))]),e.createElementVNode("div",Vd,[t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,value:i.value[l.value]??"",placeholder:t.placeholder??"",rows:t.rows,disabled:t.disabled,class:"admin-translatable__textarea",onInput:b[1]||(b[1]=d=>s(l.value,d.target.value))},null,40,Nd)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:0,"model-value":i.value[l.value]??"",placeholder:t.placeholder??"",disabled:t.disabled,"onUpdate:modelValue":b[0]||(b[0]=d=>s(l.value,d))},null,8,["model-value","placeholder","disabled"]))])]),u.value?(e.openBlock(),e.createElementBlock("p",xd,e.toDisplayString(u.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",Cd,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),rt=e.defineComponent({__name:"RowsLayout",props:{items:{},gap:{default:"var(--uid-space-md)"}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidStack),{direction:"column",gap:t.gap,align:"stretch"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,o)=>(e.openBlock(),e.createBlock(Be,{key:o,node:r},null,8,["node"]))),128))]),_:1},8,["gap"]))}}),Wn=e.defineComponent({__name:"ColumnsLayout",props:{items:{},gap:{default:"var(--uid-space-md)"},cols:{default:12}},setup(t){const n=t,a=e.computed(()=>n.items.length===0?n.cols:Math.max(1,Math.floor(n.cols/n.items.length)));function r(o){const l=o.span;return typeof l=="number"&&l>0?Math.min(l,n.cols):a.value}return(o,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidGrid),{cols:t.cols,gap:t.gap},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(i,s)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:"admin-columns__item",style:e.normalizeStyle({gridColumn:`span ${r(i)} / span ${r(i)}`})},[e.createVNode(Be,{node:i},null,8,["node"])],4))),128))]),_:1},8,["cols","gap"]))}}),Ed={key:0,class:"admin-section__header"},$d={key:0,class:"admin-section__title"},Sd={key:1,class:"admin-section__description"},Ud={class:"admin-section__body"},ye=e.defineComponent({__name:"SectionLayout",props:{items:{},title:{default:null},description:{default:null}},setup(t){return(n,a)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-section"},{default:e.withCtx(()=>[t.title||t.description?(e.openBlock(),e.createElementBlock("header",Ed,[t.title?(e.openBlock(),e.createElementBlock("h3",$d,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",Sd,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ud,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,o)=>(e.openBlock(),e.createBlock(Be,{key:o,node:r},null,8,["node"]))),128))])]),_:1}))}}),Hn=e.defineComponent({__name:"TabsLayout",props:{items:{},active:{default:0}},emits:["update:active"],setup(t,{emit:n}){const a=t,r=n;function o(s,u){return s.key??u}const l=e.ref(a.active??o(a.items[0]??{},0));function i(s){l.value=s,r("update:active",s)}return(s,u)=>(e.openBlock(),e.createBlock(e.unref(c.UidTabs),{"model-value":l.value,"onUpdate:modelValue":i},{list:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createBlock(e.unref(c.UidTab),{key:o(f,p),value:o(f,p)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["value"]))),128))]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(f,p)=>(e.openBlock(),e.createBlock(e.unref(c.UidTabPanel),{key:`panel-${o(f,p)}`,value:o(f,p)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.items,(b,d)=>(e.openBlock(),e.createBlock(Be,{key:d,node:b},null,8,["node"]))),128))]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"]))}});function Kn(){En({fields:{input:le,text:le,email:le,url:le,password:le,tel:le,search:le,slug:le,hidden:le,label:le,textarea:xe,wysiwyg:xe,markdown:xe,code:xe,number:Pe,slider:Pe,rating:Pe,select:me,combobox:me,radio:me,tags:yd,translatable:Pt,"translatable-text":Pt,"morph-switcher":me,relation:me,cascader:me,"tree-select":me,checkbox:Ce,switch:Ce,switcher:Ce,boolean:Ce,date:ve,datetime:ve,datepicker:ve,"date-range":ve,time:ve,"time-picker":ve,"color-picker":le},layouts:{rows:rt,columns:Wn,section:ye,block:ye,tabs:Hn,accordion:ye,group:rt,step:ye,wizard:ye}})}const Md={key:0,class:"admin-infolist-entry"},Dd={class:"admin-infolist-entry__label"},j=e.defineComponent({__name:"TextEntry",props:{name:{default:""},label:{default:""},value:{default:void 0},placeholder:{default:"—"},mono:{type:Boolean,default:!1},preset:{default:void 0},meta:{default:()=>({})}},setup(t){const n=t,a=De(),r=e.computed(()=>{let l=n.value;if(l===void 0&&a&&n.name&&(l=a[n.name]),l==null||l==="")return n.placeholder;const i=xn(l,n.preset,n.meta);return i===""?n.placeholder:i}),o=e.computed(()=>!!n.label);return(l,i)=>o.value?(e.openBlock(),e.createElementBlock("div",Md,[e.createElementVNode("span",Dd,e.toDisplayString(t.label),1),e.createElementVNode("span",{class:e.normalizeClass(["admin-infolist-entry__value",t.mono?"admin-infolist-entry__value--mono":""])},e.toDisplayString(r.value),3)])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(["admin-infolist-text",t.mono?"admin-infolist-text--mono":""])},e.toDisplayString(r.value),3))}}),Td={key:1,class:"admin-infolist-text"},Gn=e.defineComponent({__name:"BadgeEntry",props:{name:{default:""},label:{default:""},value:{default:void 0},map:{default:()=>({})},variant:{default:void 0}},setup(t){const n=t,a=De(),r=e.computed(()=>{let l=n.value;return l===void 0&&a&&n.name&&(l=a[n.name]),l==null?"":String(l)}),o=e.computed(()=>n.variant?n.variant:n.map[r.value]??"default");return(l,i)=>r.value?(e.openBlock(),e.createBlock(e.unref(c.UidBadge),{key:0,variant:o.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value),1)]),_:1},8,["variant"])):(e.openBlock(),e.createElementBlock("span",Td,"—"))}}),Id=["data-icon"],Fd={key:0},Xn=e.defineComponent({__name:"IconEntry",props:{name:{default:""},label:{default:""},value:{type:[Boolean,null],default:void 0},trueIcon:{default:"check-circle-2"},falseIcon:{default:"circle"},trueLabel:{default:""},falseLabel:{default:""}},setup(t){const n=t,a=De(),r=e.computed(()=>{let i=n.value;return i===void 0&&a&&n.name&&(i=a[n.name]),!!i}),o=e.computed(()=>r.value?n.trueLabel:n.falseLabel),l=e.computed(()=>r.value?n.trueIcon:n.falseIcon);return(i,s)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["admin-infolist-icon",r.value?"admin-infolist-icon--on":"admin-infolist-icon--off"])},[e.createElementVNode("span",{class:"admin-infolist-icon__glyph","data-icon":l.value},null,8,Id),o.value?(e.openBlock(),e.createElementBlock("span",Fd,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0)],2))}}),Ad={key:1,class:"admin-infolist-text"},it=e.defineComponent({__name:"KeyValueEntry",props:{name:{default:""},label:{default:""},value:{default:void 0}},setup(t){const n=t,a=De(),r=e.computed(()=>{let l=n.value;return l===void 0&&a&&n.name&&(l=a[n.name]),l==null?[]:typeof l!="object"?[]:Object.entries(l)});function o(l){return l==null?"—":typeof l=="object"?JSON.stringify(l):String(l)}return(l,i)=>r.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidDescriptionList),{key:0,direction:"vertical",columns:1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,([s,u])=>(e.openBlock(),e.createBlock(e.unref(c.UidDescriptionItem),{key:s,label:s},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o(u)),1)]),_:2},1032,["label"]))),128))]),_:1})):(e.openBlock(),e.createElementBlock("span",Ad,"—"))}});function Yn(){$n({text:j,badge:Gn,icon:Xn,keyvalue:it,"key-value":it,input:j,email:j,url:j,password:j,tel:j,search:j,slug:j,hidden:j,label:j,textarea:j,wysiwyg:j,markdown:j,code:j,number:j,slider:j,rating:j,select:j,combobox:j,radio:j,tags:j,"morph-switcher":j,relation:j,cascader:j,"tree-select":j,checkbox:j,switch:j,switcher:j,boolean:j,date:j,datetime:j,datepicker:j,"date-range":j,time:j,"time-picker":j,"color-picker":j})}function Ld(t,n={}){const a=n.pages??{},r=n.base??zd(t.baseUrl)??"/admin",o=Rn({baseURL:t.apiUrl,csrfToken:t.csrf});mt(o);const l=e.createApp(un),i=ie.createPinia();l.use(i),re().hydrate(t),$e().hydrate(t),We().hydrate(t),Se().hydrate(t),fn().hydrate(t),Kn(),Ln(),Yn();const s=On({base:r,history:n.router?.history??Z.createWebHistory(r),components:{login:a.login??Nn,home:a.home??gn,forbidden:a.forbidden??kn,notFound:a.notFound??_n,profile:a.profile??Tn,forgotPassword:a.forgotPassword??Or,resetPassword:a.resetPassword??Yr,resourceIndex:a.resourceIndex??Cn,resourceCreate:a.resourceCreate??at,resourceEdit:a.resourceEdit??at,resourceView:a.resourceView??Dn,dashboard:a.dashboard??kt,settings:a.settings??bn,screen:a.screen??wn},extraRoutes:n.router?.extraRoutes,authGuard:n.router?.authGuard,titleGuard:n.router?.titleGuard});l.use(s);const u=yt();if(s.beforeEach((f,p,b)=>{f.fullPath!==p.fullPath&&u.start(),b()}),s.afterEach(()=>{u.end()}),s.onError(()=>{u.end()}),s.beforeResolve(async(f,p,b)=>{const d=typeof f.name=="string"?f.name:null;if(d&&d.startsWith("admin.resource.")&&d.endsWith(".index")){const B=f.params.slug??f.meta.slug;if(B)try{const{useResourceIndexStore:y}=await Promise.resolve().then(()=>Zr),k=y();(k.slug!==B||k.items.length===0)&&(k.setSlug(B),await k.load().catch(()=>{}))}catch{}}b()}),n.skipManifestLoad)ce().bootResolved=!0;else{const f=ce(),p=re(),b=ht(),d=async()=>{b.load().catch(()=>{});try{const B=await f.load();s.replaceManifestRoutes(B);const y=s.currentRoute.value;y.name==="admin.notFound"&&y.fullPath!=="/"&&await s.replace(y.fullPath).catch(()=>{})}catch(B){typeof console<"u"&&console.error("[laravel-admin] manifest load failed:",B)}finally{f.bootResolved=!0}};p.isAuthenticated?d():f.bootResolved=!0,e.watch(()=>p.user,(B,y)=>{B&&!y&&(f.bootResolved=!1,d())})}return n.onAppCreated?.(l),{app:l,router:s,client:o}}function zd(t){if(!t)return null;try{return new URL(t).pathname||"/admin"}catch{return t.startsWith("/")?t:null}}async function Rd(t={}){const n=Zn();if(n)return n;if(t.client)try{const a=t.xhrUrl??"/system/bootstrap";return await t.client.get(a)}catch(a){if(a instanceof Me)return null;throw a}return null}function Zn(){return typeof window>"u"?null:window.__ADMIN_BOOTSTRAP__??null}function Pd(){return typeof document>"u"?null:document.querySelector('meta[name="csrf-token"]')?.getAttribute("content")??null}const qd={class:"admin-notifs__hd"},jd={class:"admin-notifs__title"},Od={key:0,class:"admin-notifs__count"},Wd={class:"admin-notifs__list"},Hd={key:0,class:"admin-notifs__empty"},Kd={key:1,class:"admin-notifs__empty"},Gd=["onClick"],Xd=["data-kind"],Yd={class:"admin-notifs__body"},Zd={class:"admin-notifs__row1"},Jd={key:0,class:"admin-notifs__title-strong"},Qd={key:1,class:"admin-notifs__title-soft"},eu={class:"admin-notifs__time"},tu={key:0,class:"admin-notifs__text"},nu=["onClick"],au=e.defineComponent({__name:"NotificationsDrawer",props:{open:{type:Boolean}},emits:["update:open","select-item"],setup(t,{emit:n}){const a=t,r=n,o=Se();function l(k){r("update:open",k)}e.watch(()=>a.open,async k=>{k&&await o.load(o.lastFilter??"all",1).catch(()=>{})},{immediate:!0});const i=e.computed(()=>o.lastFilter??"all");async function s(k){await o.load(k,1).catch(()=>{})}async function u(){await o.markAllAsRead().catch(()=>{})}async function f(k){r("select-item",k),k.read_at||await o.markAsRead(k.id).catch(()=>{})}async function p(k,m){m.stopPropagation(),await o.destroy(k.id).catch(()=>{})}function b(k){const m=k.data.level;return m==="success"||m==="warning"||m==="danger"?m:"info"}function d(k){return k.data.title??"—"}function B(k){return k.data.body??""}function y(k){if(!k)return"";const m=new Date(k),w=Math.max(0,Date.now()-m.getTime()),V=Math.floor(w/6e4);if(V<1)return"только что";if(V<60)return`${V} мин назад`;const E=Math.floor(V/60);if(E<24)return`${E} ч назад`;const C=Math.floor(E/24);return C<7?`${C} д назад`:m.toLocaleDateString("ru-RU")}return(k,m)=>(e.openBlock(),e.createBlock(e.unref(c.UidDrawer),{"model-value":t.open,side:"right",width:"400px",title:"Уведомления","onUpdate:modelValue":l},{header:e.withCtx(()=>[e.createElementVNode("div",qd,[e.createElementVNode("h2",jd,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(o).unreadCount>0?(e.openBlock(),e.createElementBlock("span",Od," ("+e.toDisplayString(e.unref(o).unreadCount)+") ",1)):e.createCommentVNode("",!0)]),e.unref(o).unreadCount>0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",size:"sm",onClick:u},{default:e.withCtx(()=>[...m[1]||(m[1]=[e.createTextVNode(" Прочитать все ",-1)])]),_:1})):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidTabs),{"model-value":i.value,"onUpdate:modelValue":s},{list:e.withCtx(()=>[e.createVNode(e.unref(c.UidTab),{value:"all"},{default:e.withCtx(()=>[...m[2]||(m[2]=[e.createTextVNode("Все",-1)])]),_:1}),e.createVNode(e.unref(c.UidTab),{value:"unread"},{default:e.withCtx(()=>[m[3]||(m[3]=e.createTextVNode(" Непрочитанные",-1)),e.unref(o).unreadCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(e.unref(o).unreadCount)+") ",1)],64)):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(c.UidTab),{value:"read"},{default:e.withCtx(()=>[...m[4]||(m[4]=[e.createTextVNode("Прочитанные",-1)])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["all","unread","read"],w=>e.createVNode(e.unref(c.UidTabPanel),{key:w,value:w},{default:e.withCtx(()=>[e.createElementVNode("ul",Wd,[e.unref(o).loading?(e.openBlock(),e.createElementBlock("li",Hd," Загрузка… ")):e.unref(o).items.length===0?(e.openBlock(),e.createElementBlock("li",Kd," Нет уведомлений ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).items,V=>(e.openBlock(),e.createElementBlock("li",{key:V.id,class:e.normalizeClass(["admin-notifs__item",`admin-notifs__item--${b(V)}`,{"admin-notifs__item--unread":!V.read_at}]),onClick:E=>f(V)},[e.createElementVNode("span",{class:"admin-notifs__icon","data-kind":b(V)},null,8,Xd),e.createElementVNode("div",Yd,[e.createElementVNode("div",Zd,[V.read_at?(e.openBlock(),e.createElementBlock("span",Qd,e.toDisplayString(d(V)),1)):(e.openBlock(),e.createElementBlock("strong",Jd,e.toDisplayString(d(V)),1)),e.createElementVNode("span",eu,e.toDisplayString(y(V.created_at)),1)]),B(V)?(e.openBlock(),e.createElementBlock("p",tu,e.toDisplayString(B(V)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"admin-notifs__close","aria-label":"Удалить",onClick:E=>p(V,E)}," × ",8,nu)],10,Gd))),128))])]),_:1},8,["value"])),64))]),_:1},8,["model-value"])]),_:1},8,["model-value"]))}}),ou={class:"admin-page admin-import-wizard"},lu={class:"admin-page__hd"},ru={class:"admin-page__title-wrap"},iu={class:"admin-page__title"},su={class:"admin-page__actions"},cu={key:0,class:"admin-import-wizard__empty"},du={key:1,class:"admin-import-wizard__mapping"},uu={class:"admin-import-wizard__map-source"},mu={key:0,class:"admin-import-wizard__map-sample"},fu={class:"admin-import-wizard__card-hd"},pu={key:2,class:"admin-import-wizard__empty"},vu={key:0,class:"admin-import-wizard__empty"},hu={class:"admin-import-wizard__kpi"},yu={class:"admin-import-wizard__nav"},gu=e.defineComponent({__name:"ImportWizardPage",props:{title:{default:"Импорт"},fieldOptions:{},headers:{default:()=>[]},preview:{default:()=>[]},previewColumns:{default:()=>[]},progress:{default:null},step:{default:void 0}},emits:["file-uploaded","mapping-submit","run-import","cancel"],setup(t,{emit:n}){const a=t,r=n,o=[{label:"Загрузка",description:"CSV / TSV / XLSX"},{label:"Сопоставление",description:"Колонки файла → поля"},{label:"Предпросмотр",description:"Проверка первых строк"},{label:"Импорт",description:"Запуск + сводка"}],l=e.ref(0),i=e.computed(()=>a.step??l.value);function s(E){a.step===void 0&&(E<0||E>=o.length||(l.value=E))}const u=e.ref([]);function f(E){u.value=E,E.length>0&&r("file-uploaded",E[0].file)}const p=e.ref({});function b(E,C){p.value[E]=C===null||C===""?null:String(C)}function d(){return a.headers.map(E=>({source:E.key,target:p.value[E.key]??null}))}function B(){r("mapping-submit",d()),s(2)}function y(){r("run-import"),s(3)}const k=e.computed(()=>i.value>0),m=e.computed(()=>{switch(i.value){case 0:return u.value.length>0;case 1:return Object.values(p.value).some(E=>E!==null);case 2:return!0;default:return!1}}),w=e.computed(()=>[{value:"",label:"Не импортировать"},...a.fieldOptions]);function V(){r("cancel")}return(E,C)=>(e.openBlock(),e.createElementBlock("section",ou,[e.createElementVNode("header",lu,[e.createElementVNode("div",ru,[e.createElementVNode("h1",iu,e.toDisplayString(t.title),1)]),e.createElementVNode("div",su,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:V},{default:e.withCtx(()=>[...C[2]||(C[2]=[e.createTextVNode("Отмена",-1)])]),_:1})])]),e.createVNode(e.unref(c.UidStepper),{steps:o,current:i.value},null,8,["current"]),i.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[3]||(C[3]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"1. Загрузите файл"),e.createElementVNode("p",null,"CSV / TSV / XLSX, до 50 MB")],-1)),e.createVNode(e.unref(c.UidFileUpload),{"model-value":u.value,accept:".csv,.tsv,.xlsx","max-size":50*1024*1024,"max-files":1,"primary-text":"Перетащите файл сюда или","secondary-text":"нажмите чтобы выбрать","onUpdate:modelValue":f},null,8,["model-value"])]),_:1})):i.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[5]||(C[5]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"2. Сопоставьте колонки"),e.createElementVNode("p",null,"Выберите поле ресурса для каждой колонки файла")],-1)),t.headers.length===0?(e.openBlock(),e.createElementBlock("div",cu," Нет данных — host ещё не отдал headers. Загрузите файл сначала. ")):(e.openBlock(),e.createElementBlock("div",du,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,M=>(e.openBlock(),e.createElementBlock("div",{key:M.key,class:"admin-import-wizard__map-row"},[e.createElementVNode("div",uu,[e.createElementVNode("strong",null,e.toDisplayString(M.label),1),M.sample?(e.openBlock(),e.createElementBlock("span",mu," «"+e.toDisplayString(M.sample)+"» ",1)):e.createCommentVNode("",!0)]),C[4]||(C[4]=e.createElementVNode("span",{class:"admin-import-wizard__map-arrow"},"→",-1)),e.createVNode(e.unref(c.UidSelect),{"model-value":p.value[M.key]??"",options:w.value,placeholder:"Не импортировать","onUpdate:modelValue":g=>b(M.key,g)},null,8,["model-value","options","onUpdate:modelValue"])]))),128))]))]),_:1})):i.value===2?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:2,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[e.createElementVNode("header",fu,[C[6]||(C[6]=e.createElementVNode("h3",null,"3. Предпросмотр",-1)),e.createElementVNode("p",null,"Первые "+e.toDisplayString(t.preview.length)+" строк перед импортом",1)]),t.preview.some(M=>M.__warning)?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"warning",style:{"margin-bottom":"var(--uid-space-md)"}},{default:e.withCtx(()=>[...C[7]||(C[7]=[e.createTextVNode(" Часть строк имеет предупреждения — проверьте перед импортом. ",-1)])]),_:1})):e.createCommentVNode("",!0),t.previewColumns.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidTable),{key:1,columns:t.previewColumns,data:t.preview},null,8,["columns","data"])):(e.openBlock(),e.createElementBlock("div",pu," Host не передал previewColumns/preview. "))]),_:1})):(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:3,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[C[8]||(C[8]=e.createElementVNode("header",{class:"admin-import-wizard__card-hd"},[e.createElementVNode("h3",null,"4. Импорт")],-1)),t.progress?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.progress.total>0?(e.openBlock(),e.createBlock(e.unref(c.UidProgress),{key:0,"model-value":t.progress.created+t.progress.updated+t.progress.errors,max:t.progress.total},null,8,["model-value","max"])):e.createCommentVNode("",!0),e.createElementVNode("div",hu,[e.createVNode(e.unref(c.UidStat),{title:"Создано",value:t.progress.created,tone:"success"},null,8,["value"]),e.createVNode(e.unref(c.UidStat),{title:"Обновлено",value:t.progress.updated,tone:"info"},null,8,["value"]),e.createVNode(e.unref(c.UidStat),{title:"Ошибки",value:t.progress.errors,tone:"danger"},null,8,["value"])])],64)):(e.openBlock(),e.createElementBlock("div",vu," Запускается импорт… "))]),_:1})),e.createElementVNode("footer",yu,[k.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",onClick:C[0]||(C[0]=M=>s(i.value-1))},{default:e.withCtx(()=>[...C[9]||(C[9]=[e.createTextVNode(" Назад ",-1)])]),_:1})):e.createCommentVNode("",!0),C[13]||(C[13]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),i.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:1,variant:"primary",disabled:!m.value,onClick:C[1]||(C[1]=M=>s(1))},{default:e.withCtx(()=>[...C[10]||(C[10]=[e.createTextVNode(" Далее ",-1)])]),_:1},8,["disabled"])):i.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:2,variant:"primary",disabled:!m.value,onClick:B},{default:e.withCtx(()=>[...C[11]||(C[11]=[e.createTextVNode(" Подтвердить mapping ",-1)])]),_:1},8,["disabled"])):i.value===2?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:3,variant:"primary",onClick:y},{default:e.withCtx(()=>[...C[12]||(C[12]=[e.createTextVNode(" Запустить импорт ",-1)])]),_:1})):e.createCommentVNode("",!0)])]))}}),ku={class:"admin-page admin-field-gallery"},_u={class:"admin-gallery__group-title"},bu={class:"admin-gallery__grid"},wu={class:"admin-gallery__card-hd"},Bu={class:"admin-gallery__card-title"},Vu={class:"admin-gallery__card-type"},Nu={class:"admin-gallery__card-desc"},xu={class:"admin-gallery__card-demo"},Cu=e.defineComponent({__name:"FieldGalleryPage",setup(t){const n=[{type:"text",group:"Текстовые",title:"Input",description:"Простой текстовый input. type=email/url/password/tel доступны через inputType.",node:{type:"text",name:"demo_text",label:"Заголовок статьи",placeholder:"Например: Введение в Laravel"},initial:{demo_text:"Hello World"}},{type:"textarea",group:"Текстовые",title:"Textarea",description:"Многострочный input с настраиваемым числом rows.",node:{type:"textarea",name:"demo_textarea",label:"Описание",rows:4},initial:{demo_textarea:"Multi-line text..."}},{type:"number",group:"Текстовые",title:"NumberInput",description:"Числовой input. Empty/NaN автоматически конвертируются в null.",node:{type:"number",name:"demo_number",label:"Цена",min:0,max:1e3},initial:{demo_number:42}},{type:"select",group:"Выбор",title:"Select",description:"Single-select с options. Поддерживает searchable + clearable.",node:{type:"select",name:"demo_select",label:"Категория",options:[{value:"frontend",label:"Frontend"},{value:"backend",label:"Backend"},{value:"devops",label:"DevOps"}]},initial:{demo_select:"backend"}},{type:"checkbox",group:"Выбор",title:"Checkbox",description:"Boolean toggle. inlineLabel рядом с боксом.",node:{type:"checkbox",name:"demo_checkbox",label:"Опубликовать",inlineLabel:"Сделать доступным всем"},initial:{demo_checkbox:!0}},{type:"date",group:"Дата/время",title:"DatePicker",description:"date / datetime-local / time через inputType.",node:{type:"date",name:"demo_date",label:"Дата публикации",inputType:"date"},initial:{demo_date:"2026-05-01"}}],a=n.reduce((o,l)=>(o[l.group]||(o[l.group]=[]),o[l.group].push(l),o),{}),r=e.reactive(n.reduce((o,l)=>Object.assign(o,l.initial),{}));return ne.provideFormState(r),(o,l)=>(e.openBlock(),e.createElementBlock("section",ku,[l[0]||(l[0]=e.createElementVNode("header",{class:"admin-page__hd"},[e.createElementVNode("div",{class:"admin-page__title-wrap"},[e.createElementVNode("h1",{class:"admin-page__title"},"Field Gallery"),e.createElementVNode("div",{class:"admin-page__count"}," Каталог встроенных field-компонентов library + примеры использования ")])],-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(i,s)=>(e.openBlock(),e.createElementBlock("section",{key:s,class:"admin-gallery__group"},[e.createElementVNode("h2",_u,e.toDisplayString(s),1),e.createElementVNode("div",bu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i,u=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:u.type+u.title,padding:"md",class:"admin-gallery__card"},{default:e.withCtx(()=>[e.createElementVNode("header",wu,[e.createElementVNode("h3",Bu,e.toDisplayString(u.title),1),e.createElementVNode("code",Vu,"type: "+e.toDisplayString(u.type),1)]),e.createElementVNode("p",Nu,e.toDisplayString(u.description),1),e.createElementVNode("div",xu,[e.createVNode(Vt,{node:u.node},null,8,["node"])])]),_:2},1024))),128))])]))),128))]))}});exports.provideFormState=ne.provideFormState;exports.tryUseFormState=ne.tryUseFormState;exports.useFormState=ne.useFormState;exports.AdminApp=un;exports.AdminShell=dn;exports.AdminSidebar=cn;exports.AdminTopBar=rn;exports.ApiError=de;exports.BadgeEntry=Gn;exports.BarChartWidget=xt;exports.CheckboxField=Ce;exports.ColumnsLayout=Wn;exports.DashboardPage=kt;exports.DateField=ve;exports.DonutChartWidget=Ct;exports.FieldGalleryPage=Cu;exports.FieldRenderer=Vt;exports.ForbiddenError=an;exports.ForbiddenPage=kn;exports.GaugeWidget=Fn;exports.HeatmapWidget=In;exports.HomePage=gn;exports.IconEntry=Xn;exports.ImportWizardPage=gu;exports.InfolistRenderer=Un;exports.KeyValueEntry=it;exports.LayoutRenderer=Be;exports.LocaleSwitcher=pt;exports.LoginForm=Bn;exports.LoginPage=Nn;exports.MarkdownWidget=An;exports.NetworkError=Me;exports.NotFoundError=on;exports.NotFoundPage=_n;exports.NotificationBell=nn;exports.NotificationsDrawer=au;exports.NumberField=Pe;exports.ProfilePage=Tn;exports.RecentTableWidget=Re;exports.ResourceFormPage=at;exports.ResourceIndexPage=Cn;exports.ResourceViewPage=Dn;exports.RowsLayout=rt;exports.SectionLayout=ye;exports.SelectField=me;exports.SettingsPage=bn;exports.StatWidget=lt;exports.TabsLayout=Hn;exports.TextAreaField=xe;exports.TextEntry=j;exports.TextField=le;exports.ThemeToggle=ft;exports.TwoFactorForm=Vn;exports.UnauthenticatedError=vt;exports.UnknownEntry=Sn;exports.UnknownField=Bt;exports.UnknownScreenPage=wn;exports.UnknownWidget=gt;exports.UserMenu=ln;exports.ValidationError=Ue;exports.WidgetRenderer=yn;exports.buildRoutesFromManifest=Pn;exports.clearAdminClient=en;exports.clearInfolistRegistry=gs;exports.clearRegistry=is;exports.clearWidgetRegistry=Cl;exports.createAdminApp=Ld;exports.createAdminClient=Rn;exports.createAdminRouter=On;exports.createAuthGuard=qn;exports.createTitleGuard=jn;exports.getAdminClient=H;exports.getField=wt;exports.getInfolistEntry=ot;exports.getLayout=nt;exports.getWidget=pn;exports.hasAdminClient=tn;exports.hasField=ns;exports.hasInfolistEntry=hs;exports.hasLayout=ls;exports.hasWidget=xl;exports.isError=Xc;exports.isSuccess=zn;exports.listFields=as;exports.listInfolistEntries=ys;exports.listLayouts=rs;exports.listWidgets=vn;exports.loadBootstrap=Rd;exports.provideRecord=Mn;exports.readCsrfFromMeta=Pd;exports.readInlineBootstrap=Zn;exports.registerBuiltinComponents=Kn;exports.registerBuiltinInfolistEntries=Yn;exports.registerBuiltinWidgets=Ln;exports.registerComponents=En;exports.registerField=ts;exports.registerInfolistEntries=$n;exports.registerInfolistEntry=vs;exports.registerLayout=os;exports.registerWidget=Nl;exports.registerWidgets=hn;exports.setAdminClient=mt;exports.toApiError=tt;exports.tryUseRecord=De;exports.useAuthStore=re;exports.useLocaleStore=$e;exports.useManifestStore=ce;exports.useMenuStore=ht;exports.useNotificationsStore=Se;exports.useRecord=$s;exports.useResourceFormStore=bt;exports.useResourceIndexStore=_t;exports.useThemeStore=We;
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|