@dskripchenko/laravel-admin 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
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(`# Новая заметка
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),ie=require("pinia"),X=require("vue-router"),c=require("@dskripchenko/ui"),ga=require("axios"),ne=require("./formState-GlJBphEn.cjs");const ka=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var qe={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 _a=({size:t,strokeWidth:n=2,absoluteStrokeWidth:a,color:r,iconNode:i,name:l,class:o,...s},{slots:d})=>e.h("svg",{...qe,width:t||qe.width,height:t||qe.height,stroke:r||qe.stroke,"stroke-width":a?Number(n)*24/Number(t):n,class:["lucide",`lucide-${ka(l??"icon")}`],...s},[...i.map(f=>e.h(...f)),...d.default?[d.default()]:[]]);const S=(t,n)=>(a,{slots:r})=>e.h(_a,{...a,iconNode:n,name:t},r);const ba=S("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 wa=S("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 Ba=S("ArrowLeftIcon",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const lt=S("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 ft=S("BookmarkIcon",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]);const Kt=S("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 Va=S("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 Gt=S("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 nt=S("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 xa=S("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 Na=S("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 Ke=S("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const Xt=S("ChevronDownIcon",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const Ca=S("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 Ge=S("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 Ea=S("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 $a=S("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 Sa=S("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 Ua=S("ClockIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const Ma=S("CodeIcon",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const Da=S("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 Ia=S("Columns2Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]]);const Ta=S("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 Fa=S("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 Yt=S("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 Zt=S("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 Aa=S("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 La=S("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 At=S("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 za=S("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 Ra=S("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 Pa=S("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 qa=S("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 ja=S("GaugeIcon",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);const Jt=S("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 Oa=S("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 Qt=S("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 Wa=S("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 Ha=S("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 Ka=S("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 Ga=S("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 Xa=S("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 Lt=S("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 Ya=S("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=S("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 Ja=S("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 Qa=S("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 eo=S("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 to=S("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 no=S("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 ao=S("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 oo=S("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 lo=S("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 ro=S("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 io=S("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 so=S("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 en=S("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 co=S("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 uo=S("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 tn=S("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 mo=S("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 fo=S("MoonIcon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);const po=S("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 vo=S("PanelLeftIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);const ho=S("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 yo=S("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 pt=S("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 Xe=S("PlusIcon",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const go=S("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 vt=S("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 ht=S("SearchIcon",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);const ko=S("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 _o=S("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 nn=S("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 zt=S("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 bo=S("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 wo=S("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 Bo=S("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 Vo=S("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 xo=S("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 No=S("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 Co=S("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 an=S("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 Eo=S("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 $o=S("TerminalIcon",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);const _e=S("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 So=S("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 Uo=S("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 on=S("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 Mo=S("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 Do=S("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 Io=S("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 be=S("XIcon",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);const To=S("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 Se=null;function yt(t){Se=t}function H(){if(Se===null)throw new Error("[admin] AdminClient is not registered. Call setAdminClient(...) before using stores.");return Se}function ln(){Se=null}function rn(){return Se!==null}const Z=Object.freeze(Object.defineProperty({__proto__:null,clearAdminClient:ln,getAdminClient:H,hasAdminClient:rn,setAdminClient:yt},Symbol.toStringTag,{value:"Module"})),Ye=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,o(s.theme)}function i(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);t.value=s,o(s)}async function l(s){if(!n.value.includes(s))throw new Error(`Theme "${s}" is not available`);const d=t.value;i(s);try{await H().post("/system/setTheme",{theme:s})}catch(f){throw i(d),f}}function o(s){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("data-theme",s)}return{current:t,available:n,isDark:a,hydrate:r,applyLocal:i,setTheme:l}}),Fo=["aria-label","aria-pressed"],gt=e.defineComponent({__name:"ThemeToggle",setup(t){const n=Ye(),a=e.computed(()=>n.current==="dark"),r=e.computed(()=>a.value?Co:fo),i=e.computed(()=>a.value?"sun":"moon"),l=e.computed(()=>a.value?"Переключить на светлую тему":"Переключить на тёмную тему");async function o(){const s=a.value?"light":"dark";await n.setTheme(s)}return(s,d)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"admin-topbar__icon-btn","aria-label":l.value,"aria-pressed":a.value,onClick:o},[e.createVNode(e.unref(c.UidIcon),{icon:r.value,size:18,"data-icon":i.value},null,8,["icon","data-icon"])],8,Fo))}}),Ue=ie.defineStore("admin-locale",()=>{const t=e.ref("ru"),n=e.ref(["ru","en"]);function a(o){t.value=o.locale,n.value=o.availableLocales,l(o.locale)}function r(o){if(!n.value.includes(o))throw new Error(`Locale "${o}" is not available`);t.value=o,l(o)}async function i(o){if(!n.value.includes(o))throw new Error(`Locale "${o}" is not available`);const s=t.value;r(o);try{await H().post("/system/setLocale",{locale:o})}catch(d){throw r(s),d}}function l(o){typeof document<"u"&&document.documentElement&&document.documentElement.setAttribute("lang",o);try{H().setLocale(o)}catch{}}return{current:t,available:n,hydrate:a,applyLocal:r,setLocale:i}}),Ao={type:"button",class:"admin-topbar__icon-btn",style:{width:"auto",padding:"0 8px",gap:"4px","font-size":"12px"},"aria-label":"Сменить локаль"},kt=e.defineComponent({__name:"LocaleSwitcher",setup(t){const n=Ue();async function a(r){r!==n.current&&await n.setLocale(r)}return(r,i)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",Ao,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Jt),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:o=>a(l)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.toUpperCase()),1)]),_:2},1032,["onClick"]))),128))]),_:1}))}}),Me=ie.defineStore("admin-notifications",()=>{const t=e.ref([]),n=e.ref(0),a=e.ref(!1),r=e.ref("all"),i=e.ref(null),l=e.ref(!1),o=e.computed(()=>n.value>0);function s(){l.value=!0}function d(){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,i.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 u(){const w=await H().get("/notifications/unread");n.value=w.count,r.value==="unread"&&(t.value=w.data)}async function N(m){await H().post("/notifications/markAsRead",{id:m});const C=t.value.find(E=>E.id===m);C&&C.read_at===null&&(C.read_at=new Date().toISOString(),n.value=Math.max(0,n.value-1))}async function h(){await H().post("/notifications/markAllAsRead");const w=new Date().toISOString();for(const C of t.value)C.read_at===null&&(C.read_at=w);n.value=0}async function k(m){await H().post("/notifications/destroy",{id:m});const C=t.value.findIndex(E=>E.id===m);if(C!==-1){const E=t.value[C].read_at===null;t.value.splice(C,1),E&&(n.value=Math.max(0,n.value-1))}}return{items:t,unreadCount:n,loading:a,meta:i,lastFilter:r,isOpen:l,hasUnread:o,hydrate:p,load:b,loadUnread:u,markAsRead:N,markAllAsRead:h,destroy:k,openDrawer:s,closeDrawer:d,toggleDrawer:f}}),Lo=["aria-expanded"],zo=["title"],sn=e.defineComponent({__name:"NotificationBell",setup(t){const n=Me(),a=e.computed(()=>{const i=n.unreadCount;return i<=0?null:i>99?"99+":String(i)});function r(){n.toggleDrawer()}return(i,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(lt),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,zo)):e.createCommentVNode("",!0)],8,Lo))}});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 _t extends de{constructor(n){super(401,n),this.name="UnauthenticatedError"}}class cn extends de{constructor(n){super(403,n),this.name="ForbiddenError"}}class dn extends de{constructor(n){super(404,n),this.name="NotFoundError"}}class De 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 Ie extends Error{constructor(n="Network error"){super(n),this.name="NetworkError"}}function rt(t,n){switch(t){case 401:return new _t(n);case 403:return new cn(n);case 404:return new dn(n);case 422:return new De(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),i=e.computed(()=>a.value!==null);function l(h){t.value=h.user,n.value=h.permissions}function o(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(o)}function d(h){return h.every(o)}async function f(h){const k=H();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 de&&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 H().post("/auth/twoFactorChallenge",{challenge_token:a.value.challengeToken,code:h});t.value=m.user,a.value=null}async function b(h){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:h});return t.value=m.user,a.value=null,{remaining:m.recovery_codes_remaining}}function u(){a.value=null}async function N(){const h=H();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:i,hydrate:l,hasPermission:o,hasAnyPermission:s,hasAllPermissions:d,login:f,twoFactorChallenge:p,twoFactorRecovery:b,cancelChallenge:u,logout:N}}),Ro={type:"button",class:"admin-topbar__icon-btn admin-user-menu__trigger","aria-label":"Меню пользователя","aria-haspopup":"menu",style:{width:"auto",padding:"0 4px",gap:"8px"}},un=e.defineComponent({__name:"UserMenu",setup(t){const n=re(),a=X.useRouter();async function r(){try{await n.logout()}finally{await a.push({name:"admin.login"})}}function i(){a.push({name:"admin.profile"})}return(l,o)=>(e.openBlock(),e.createBlock(e.unref(c.UidMenu),null,{trigger:e.withCtx(()=>[e.createElementVNode("button",Ro,[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:i},{default:e.withCtx(()=>[...o[0]||(o[0]=[e.createTextVNode("Профиль",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuSeparator)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:r},{default:e.withCtx(()=>[...o[1]||(o[1]=[e.createTextVNode("Выйти",-1)])]),_:1})]),_:1}))}}),Po={class:"admin-topbar"},qo={class:"admin-topbar__breadcrumbs"},jo={key:0,class:"sep"},Oo={class:"admin-topbar__search",role:"button",tabindex:"0"},mn=e.defineComponent({__name:"AdminTopBar",props:{breadcrumbs:{default:()=>[]},showCollapseToggle:{type:Boolean,default:!0}},emits:["toggle-sidebar"],setup(t,{emit:n}){const a=t,r=n,i=e.computed(()=>a.breadcrumbs.length-1);return(l,o)=>(e.openBlock(),e.createElementBlock("header",Po,[t.showCollapseToggle?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"admin-topbar__icon-btn","aria-label":"Свернуть меню",onClick:o[0]||(o[0]=s=>r("toggle-sidebar"))},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(vo),size:18,"data-icon":"panel-left"},null,8,["icon"])])):e.createCommentVNode("",!0),e.createElementVNode("div",qo,[e.renderSlot(l.$slots,"breadcrumbs",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,(s,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[d>0?(e.openBlock(),e.createElementBlock("span",jo,"›")):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(d===i.value?"cur":"")},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["href","class"]))],64))),128))])]),o[3]||(o[3]=e.createElementVNode("div",{class:"admin-topbar__spacer"},null,-1)),e.renderSlot(l.$slots,"search",{},()=>[e.createElementVNode("div",Oo,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ht),size:14,"data-icon":"search"},null,8,["icon"]),o[1]||(o[1]=e.createElementVNode("span",null,"Поиск везде…",-1)),o[2]||(o[2]=e.createElementVNode("kbd",null,"⌘K",-1))])]),e.renderSlot(l.$slots,"actions"),e.createVNode(sn),e.createVNode(gt),e.createVNode(kt),e.createVNode(un)]))}}),bt=ie.defineStore("admin-menu",()=>{const t=e.ref([]),n=e.ref(!1),a=e.ref(null),r=e.ref(!1),i=e.computed(()=>{const f=re(),p=b=>{if(Array.isArray(b.permissions)&&b.permissions.length>0&&!f.hasAnyPermission(b.permissions))return null;const u=(b.children??[]).map(p).filter(N=>N!==null);return{...b,children:u}};return t.value.map(p).filter(b=>b!==null)}),l=e.computed(()=>{const f=new Map;for(const b of i.value){const u=b.group??null;f.has(u)||f.set(u,[]),f.get(u).push(b)}const p=[];for(const[b,u]of f)u.sort((N,h)=>{const k=(N.order??0)-(h.order??0);return k!==0?k:N.label.localeCompare(h.label)}),p.push({group:b,items:u});return p});async function o(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 d(){t.value=[],r.value=!1,a.value=null,n.value=!1}return{items:t,loading:n,error:a,isLoaded:r,visibleItems:i,groupedItems:l,load:o,setItems:s,reset:d}}),Wo=["aria-label"],Ho="#2dd4bf",Ko="#18181b",Ze=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)),i=e.computed(()=>Math.round(n.size*.18)),l=e.computed(()=>Math.max(2,Math.round(n.size*.18))),o=e.computed(()=>Math.round(n.size*.3)),s=e.computed(()=>Math.max(1,Math.round(n.size*.04))),d=e.computed(()=>n.variant==="mono"?"currentColor":Ko),f=e.computed(()=>n.variant==="mono"?"var(--ladmin-logo-fg, #fff)":Ho),p=e.computed(()=>({width:`${n.size}px`,height:`${n.size}px`,padding:`0 ${i.value}px`,borderRadius:`${a.value}px`,background:d.value,color:f.value,fontSize:`${r.value}px`})),b=e.computed(()=>({width:`${l.value}px`,height:`${o.value}px`,marginLeft:`${s.value}px`,background:f.value}));return(u,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(b.value)},null,4)],14,Wo))}}),Go={activity:ba,"alert-circle":Ca,archive:wa,"bar-chart":nt,"bar-chart-3":nt,bell:lt,bookmark:ft,box:Kt,briefcase:Va,calendar:Gt,"check-circle":Ge,clock:Ua,code:Ma,cog:Da,command:Ta,database:Fa,download:Yt,file:At,"file-text":At,"file-clock":La,files:za,flag:Ra,folder:qa,"folder-open":Pa,gauge:ja,globe:Jt,grid:Oa,"hard-drive":Wa,hash:Ha,"health-check":Ge,heart:Ka,"help-circle":Ea,history:Ga,home:Xa,image:Lt,images:Ya,inbox:Za,info:Ja,key:Qa,layers:eo,layout:ho,"layout-dashboard":to,"life-buoy":ao,"line-chart":xa,link:oo,list:ro,"list-checks":lo,lock:io,"log-out":so,mail:en,map:uo,"map-pin":co,media:Lt,"message-square":tn,monitor:mo,notifications:lt,package:po,paperclip:yo,"pie-chart":Na,"refresh-cw":go,reports:nt,roles:zt,search:ht,send:ko,server:_o,settings:nn,shield:zt,"shopping-bag":bo,"shopping-cart":wo,sliders:Bo,star:xo,store:No,tag:an,tags:Eo,terminal:$o,"trending-up":So,upload:on,user:Do,"user-circle":$a,users:Io,"x-circle":Sa,zap:To};function fn(t){return t?Go[t]??null:null}const Xo={key:0,class:"admin-sidebar-brand__mark"},Yo={key:2,class:"admin-sidebar-brand__name"},Zo={key:0,class:"admin-sidebar-tenant"},Jo={class:"admin-sidebar-foot"},Qo=["title"],el=["href"],pn=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=bt(),a=X.useRoute(),r=e.computed(()=>n.groupedItems);function i(s){return!!(s.routeName&&a.name===s.routeName||s.url&&a.path===s.url)}function l(s){const d=fn(s)??Kt;return()=>e.h(c.UidIcon,{icon:d,size:16})}function o(s){if(s.url)return s.url;if(s.routeName)return{name:s.routeName}}return(s,d)=>{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",Xo,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(Ze,{key:1,size:28})),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Yo,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,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,u=>(e.openBlock(),e.createBlock(e.unref(c.UidSidebarItem),{key:u.key,to:o(u),active:i(u),badge:u.badge??void 0,title:t.collapsed?u.label:void 0},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l(u.icon))))]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(u.label),1)]),_:2},1032,["to","active","badge","title"]))),128))]),_:2},1032,["title"]))),128))]),footer:e.withCtx(()=>[e.createElementVNode("div",Jo,[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,Qo),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,el)):e.createCommentVNode("",!0)])]),_:1},8,["collapsed"])}}}),tl={class:"admin-shell-root"},nl={key:0,class:"admin-impersonation-banner",role:"status"},at="data-admin-impersonating",vn=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,i=e.ref(!1),l=e.computed(()=>a.collapsed!==void 0),o=e.computed(()=>l.value?a.collapsed:i.value);function s(f){l.value||(i.value=f),r("update:collapsed",f)}function d(){r("exit-impersonation")}return e.watch(()=>a.impersonation,f=>{typeof document>"u"||(f!==null?document.documentElement.setAttribute(at,"true"):document.documentElement.removeAttribute(at))},{immediate:!0}),e.onBeforeUnmount(()=>{typeof document<"u"&&document.documentElement.removeAttribute(at)}),(f,p)=>(e.openBlock(),e.createElementBlock("div",tl,[t.impersonation?(e.openBlock(),e.createElementBlock("div",nl,[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:d}," Выйти из режима ")])):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidSidebarLayout),{"model-value":o.value,class:"admin-shell","onUpdate:modelValue":s},{sidebar:e.withCtx(()=>[e.renderSlot(f.$slots,"sidebar",{},()=>[e.createVNode(pn,{collapsed:o.value},null,8,["collapsed"])])]),header:e.withCtx(()=>[e.renderSlot(f.$slots,"topbar",{},()=>[e.createVNode(mn,{onToggleSidebar:p[0]||(p[0]=b=>s(!o.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"])]))}}),wt=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 i(){t.value=0}return{pending:t,isLoading:n,start:a,end:r,reset:i}}),al=e.defineComponent({__name:"AdminLoadingBar",setup(t){const n=wt(),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 i=e.computed(()=>({"admin-loading-bar":!0,"admin-loading-bar--visible":a.value}));return(l,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value),role:"progressbar","aria-busy":"true"},null,2))}}),ol={key:0,class:"admin-notif-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"admin-notif-drawer-title"},ll={class:"admin-notif-drawer__panel"},rl={class:"admin-notif-drawer__hd"},il={id:"admin-notif-drawer-title",class:"admin-notif-drawer__title"},sl={key:0,class:"admin-notif-drawer__unread-badge"},cl={class:"admin-notif-drawer__hd-actions"},dl={class:"admin-notif-drawer__tabs",role:"tablist"},ul=["aria-selected","onClick"],ml={class:"admin-notif-drawer__tab-count"},fl={class:"admin-notif-drawer__body"},pl={key:0,class:"admin-notif-drawer__empty"},vl={key:1,class:"admin-notif-drawer__empty"},hl={key:2,class:"admin-notif-drawer__list"},yl=["onClick"],gl=["data-variant"],kl={class:"admin-notif-drawer__content"},_l={class:"admin-notif-drawer__row"},bl={class:"admin-notif-drawer__item-title"},wl={class:"admin-notif-drawer__item-time"},Bl={key:0,class:"admin-notif-drawer__item-description"},Vl={key:0,class:"admin-notif-drawer__unread-dot","aria-hidden":"true"},xl=["onClick"],Nl=e.defineComponent({__name:"NotificationsDrawer",setup(t){const n=Me(),a=e.computed(()=>n.isOpen),r=[{key:"all",label:"Все"},{key:"unread",label:"Непрочитанные"},{key:"read",label:"Прочитанные"}];async function i(k){n.lastFilter!==k&&await n.load(k,1).catch(()=>{})}async function l(){await n.markAllAsRead().catch(()=>{})}async function o(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 d(){n.closeDrawer()}function f(k){const m=k.type.toLowerCase();return m.includes("import")||m.includes("finished")||m.includes("success")?Ge:m.includes("comment")||m.includes("message")||m.includes("mention")?tn:m.includes("user")||m.includes("member")||m.includes("role")?Mo:m.includes("warning")||m.includes("schedule")?Uo:m.includes("delete")||m.includes("failed")||m.includes("error")?_e:Ge}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 u(k){const m=k.data,w=typeof m.title=="string"?m.title:typeof m.subject=="string"?m.subject:"Уведомление",C=typeof m.description=="string"?m.description:typeof m.message=="string"?m.message:typeof m.text=="string"?m.text:"";return{title:w,description:C}}const N=e.computed(()=>{const m=n.meta?.total??n.items.length,w=n.unreadCount,C=Math.max(0,m-w);return{all:m,unread:w,read:C}});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"&&d()}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",ol,[e.createElementVNode("div",{class:"admin-notif-drawer__backdrop",onClick:d}),e.createElementVNode("aside",ll,[e.createElementVNode("header",rl,[e.createElementVNode("h2",il,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(n).unreadCount>0?(e.openBlock(),e.createElementBlock("span",sl,e.toDisplayString(e.unref(n).unreadCount),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",cl,[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(Ke),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:d},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(be),size:16},null,8,["icon"])])])]),e.createElementVNode("nav",dl,[(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:C=>i(w.key)},[e.createTextVNode(e.toDisplayString(w.label)+" ",1),e.createElementVNode("span",ml,e.toDisplayString(N.value[w.key]),1)],10,ul)),64))]),e.createElementVNode("div",fl,[e.unref(n).loading&&e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",pl," Загрузка… ")):e.unref(n).items.length===0?(e.openBlock(),e.createElementBlock("div",vl," Нет уведомлений ")):(e.openBlock(),e.createElementBlock("ol",hl,[(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:C=>o(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,gl),e.createElementVNode("div",kl,[e.createElementVNode("div",_l,[e.createElementVNode("span",bl,e.toDisplayString(u(w).title),1),e.createElementVNode("span",wl,e.toDisplayString(b(w.created_at)),1)]),u(w).description?(e.openBlock(),e.createElementBlock("div",Bl,e.toDisplayString(u(w).description),1)):e.createCommentVNode("",!0)]),w.read_at===null?(e.openBlock(),e.createElementBlock("span",Vl)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"admin-notif-drawer__item-delete","aria-label":"Удалить",onClick:e.withModifiers(C=>s(w,C),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(be),size:12},null,8,["icon"])],8,xl)],10,yl))),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),i=e.computed(()=>t.value!==null),l=e.computed(()=>t.value?.version??null),o=e.computed(()=>t.value?.resources??[]),s=e.computed(()=>t.value?.screens??[]),d=e.computed(()=>t.value?.settings??[]),f=e.computed(()=>t.value?.plugins??[]);function p(k){return o.value.find(m=>m.slug===k)??null}function b(k){return s.value.find(m=>m.slug===k)??null}function u(k){return d.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 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 h(){t.value=null,a.value=null,n.value=!1,r.value=!1}return{manifest:t,loading:n,error:a,bootResolved:r,isLoaded:i,version:l,resources:o,screens:s,settings:d,plugins:f,getResource:p,getScreen:b,getSettings:u,load:N,reset:h}});function je(t,n){return{message:t,...n??{}}}const G={success(t,n){c.useToast().success(je(t,n))},error(t,n){c.useToast().error(je(t,{duration:6e3,...n??{}}))},warning(t,n){c.useToast().warning(je(t,n))},info(t,n){c.useToast().info(je(t,n))}},Cl={class:"admin-page-host"},El={key:1,class:"admin-page-host__suspended","aria-busy":"true"},$l={key:1,class:"admin-page-host__suspended","aria-busy":"true"},hn=e.defineComponent({__name:"AdminApp",setup(t){const n=X.useRoute(),a=ce(),r=re(),i=e.computed(()=>{const d=r.user;return d?.impersonator?{asName:String(d?.name??"?")}:null});async function l(){try{const{getAdminClient:d}=await Promise.resolve().then(()=>Z);await d().post("/auth/stopImpersonation"),window.location.reload()}catch{G.error("Не удалось выйти из режима импертонации.")}}const o=e.computed(()=>!(n.meta?.fullscreen===!0||n.meta?.kind==="auth"||n.name==="admin.notFound")),s=e.computed(()=>n.name==="admin.notFound"&&!a.bootResolved);return(d,f)=>{const p=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(al),o.value?(e.openBlock(),e.createBlock(vn,{key:0,impersonation:i.value,onExitImpersonation:l},{default:e.withCtx(()=>[e.createElementVNode("div",Cl,[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",El)):(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",$l)):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b),{key:0}))]),_:2},1024)]),_:1})),e.createVNode(Nl),e.createVNode(e.unref(c.UidToastProvider))],64)}}}),yn=ie.defineStore("admin-dashboard",()=>{const t=e.ref(null),n=e.ref(!1),a=e.ref([]),r=e.ref([]),i=e.ref(!1),l=e.ref(!1),o=e.computed(()=>JSON.stringify(a.value)!==JSON.stringify(r.value));async function s(w){t.value=w,l.value=!0;try{const V=((await H().get(`/dashboard/get?key=${encodeURIComponent(w)}`)).layout??[]).map((D,y)=>({...D,position:D.position??y}));r.value=V,a.value=V.map(D=>({...D}))}catch{r.value=[],a.value=[]}finally{l.value=!1}}function d(){n.value=!0}function f(){a.value=r.value.map(w=>({...w})),n.value=!1}async function p(){if(t.value!==null){i.value=!0;try{const w=H(),C=a.value.map((E,V)=>({slug:E.slug,size:E.size,position:V,hidden:E.hidden??!1,type:E.type,config:E.config}));await w.post("/dashboard/save",{key:t.value,widgets:C}),r.value=a.value.map(E=>({...E})),n.value=!1}finally{i.value=!1}}}async function b(){if(t.value!==null){i.value=!0;try{await H().post("/dashboard/reset",{key:t.value}),r.value=[],a.value=[],n.value=!1}finally{i.value=!1}}}function u(w){a.value=[...a.value,{...w,position:a.value.length}]}function N(w){a.value=a.value.filter(C=>C.slug!==w)}function h(w,C){a.value=a.value.map(E=>E.slug===w?{...E,...C}:E)}function k(w,C){if(w===C)return;const E=[...a.value],[V]=E.splice(w,1);E.splice(C,0,V),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:i,loading:l,isDirty:o,openDashboard:s,enterEditMode:d,cancelEdit:f,saveLayout:p,resetToDefault:b,addWidget:u,removeWidget:N,updateWidget:h,moveWidget:k,reset:m}}),Bt=ie.defineStore("admin-i18n",()=>{const t=e.ref({}),n=e.ref("ru");function a(o){const s=o.translations;s&&typeof s=="object"&&(t.value={...s}),n.value=o.locale??"ru"}function r(o){t.value={...o}}function i(o,s={}){let d=t.value[o]??o;for(const[f,p]of Object.entries(s))d=d.replace(new RegExp(`:${f}`,"g"),String(p));return d}return{messages:t,locale:n,hydrate:a,setMessages:r,t:i,has:o=>o in t.value,keys:e.computed(()=>Object.keys(t.value))}});function Je(){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 we=Je(),Sl=we.register,gn=we.get,Ul=we.has,kn=we.list,Ml=we.clear,_n=we.registerBundle,Vt=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}))}}),bn=e.defineComponent({__name:"WidgetRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>gn(n.node.type)),r=e.computed(()=>{const{type:i,span:l,...o}=n.node;return o});return(i,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(Vt,{key:1,type:t.node.type},null,8,["type"]))}}),Dl={class:"admin-widget-actions",role:"toolbar","aria-label":"Действия с виджетом"},Il={type:"button",class:"admin-widget-actions__btn admin-widget-actions__drag","aria-label":"Перетащить",title:"Перетащить","data-drag-handle":"true"},Tl=e.defineComponent({__name:"WidgetActionsOverlay",emits:["configure","remove"],setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",Dl,[e.createElementVNode("button",Il,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Qt),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(nn),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(be),size:14},null,8,["icon"])])]))}}),Fl={key:0,class:"admin-dialog-root",role:"dialog","aria-modal":"true","aria-labelledby":"widget-config-title"},Al={class:"admin-dialog"},Ll={class:"admin-dialog__hd"},zl={id:"widget-config-title",class:"admin-dialog__title"},Rl={class:"admin-dialog__body"},Pl={key:0,class:"admin-dialog__field"},ql={class:"admin-dialog__type-grid"},jl=["onClick"],Ol={class:"admin-dialog__type-name"},Wl={class:"admin-dialog__type-help"},Hl={key:1,class:"admin-dialog__field"},Kl={class:"admin-dialog__readonly"},Gl={class:"admin-dialog__field"},Xl={class:"admin-dialog__field"},Yl={key:2,class:"admin-dialog__field"},Zl={class:"admin-dialog__field"},Jl={class:"admin-dialog__field"},Ql={key:4,class:"admin-dialog__field"},er={class:"admin-dialog__field"},tr={class:"admin-dialog__field"},nr={class:"admin-dialog__field"},ar={class:"admin-dialog__field"},or={class:"admin-dialog__ft"},lr=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,i=e.computed(()=>kn()),l=e.ref(""),o=e.ref(""),s=e.ref("6"),d=e.ref(`# Новая заметка
2
2
 
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;
3
+ Текст…`),f=e.ref("LABEL"),p=e.ref("0"),b=e.ref("50"),u=e.ref("Янв, Фев, Мар, Апр"),N=e.ref("10, 20, 15, 30"),h=e.ref(""),k=e.ref("5");e.watch(()=>a.open,y=>{if(y)if(a.mode==="configure"&&a.item){const g=a.item.config??{};l.value=a.item.type??"",o.value=g.title??a.initialTitle,s.value=String(a.item.size??6),d.value=g.content??d.value;const _=g.stats?.[0];_&&(f.value=String(_.label??""),p.value=String(_.value??"")),b.value=String(g.value??50);const T=g.labels,R=g.datasets;T&&T.length>0&&(u.value=T.join(", ")),R&&R[0]?.data&&(N.value=R[0].data.join(", ")),h.value=g.resource??"",k.value=String(g.limit??5)}else l.value="",o.value="",s.value="6"});const m=e.computed(()=>l.value!==""&&o.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 C(y){return y==="markdown"?"markdown":y==="stat"||y==="stats"?"stat":y==="gauge"?"gauge":y==="chart"||y==="bar-chart"||y==="donut-chart"?"chart":y==="recent-table"||y==="recent_list"||y==="recent-list"?"recent":null}function E(){const y={title:o.value};switch(C(l.value)){case"markdown":y.content=d.value;break;case"stat":y.stats=[{label:f.value,value:p.value}];break;case"gauge":y.value=Number(b.value)||0,y.min=0,y.max=100;break;case"chart":{const g=u.value.split(",").map(T=>T.trim()).filter(Boolean),_=N.value.split(",").map(T=>Number(T.trim())).filter(T=>!Number.isNaN(T));y.labels=g,y.datasets=[{label:o.value,data:_}],y.type=l.value==="donut-chart"?"doughnut":"bar";break}case"recent":y.resource=h.value,y.limit=Number(k.value)||5;break}return y}function V(){if(!m.value)return;const y=Math.max(1,Math.min(12,Number(s.value)||6)),g=E();if(a.mode==="configure"&&a.item)r("save",{size:y,type:l.value,config:g});else{const _=`custom.${l.value}.${Date.now()}`;r("add",{slug:_,type:l.value,size:y,config:g})}r("close")}function D(){r("close")}return(y,g)=>(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",Fl,[e.createElementVNode("div",{class:"admin-dialog-root__backdrop",onClick:D}),e.createElementVNode("div",Al,[e.createElementVNode("header",Ll,[e.createElementVNode("h2",zl,e.toDisplayString(t.mode==="add"?"Добавить виджет":"Настроить виджет"),1),e.createElementVNode("button",{type:"button",class:"admin-dialog__close","aria-label":"Закрыть",onClick:D},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(be),size:16},null,8,["icon"])])]),e.createElementVNode("div",Rl,[t.mode==="add"?(e.openBlock(),e.createElementBlock("div",Pl,[g[10]||(g[10]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип виджета",-1)),e.createElementVNode("div",ql,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,_=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",class:e.normalizeClass(["admin-dialog__type-card",{"admin-dialog__type-card--active":l.value===_}]),onClick:T=>l.value=_},[e.createElementVNode("span",Ol,e.toDisplayString(_),1),e.createElementVNode("span",Wl,e.toDisplayString(w[_]??""),1)],10,jl))),128))])])):(e.openBlock(),e.createElementBlock("div",Hl,[g[11]||(g[11]=e.createElementVNode("label",{class:"admin-dialog__label"},"Тип",-1)),e.createElementVNode("div",Kl,e.toDisplayString(l.value||"unknown"),1)])),e.createElementVNode("div",Gl,[g[12]||(g[12]=e.createElementVNode("label",{class:"admin-dialog__label"},"Заголовок",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=_=>o.value=_),placeholder:"Название виджета"},null,8,["modelValue"])]),e.createElementVNode("div",Xl,[g[13]||(g[13]=e.createElementVNode("label",{class:"admin-dialog__label"},"Ширина (1..12)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":g[1]||(g[1]=_=>s.value=_),type:"number"},null,8,["modelValue"])]),C(l.value)==="markdown"?(e.openBlock(),e.createElementBlock("div",Yl,[g[14]||(g[14]=e.createElementVNode("label",{class:"admin-dialog__label"},"Markdown содержимое",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":g[2]||(g[2]=_=>d.value=_),class:"admin-dialog__textarea",rows:"6"},null,512),[[e.vModelText,d.value]])])):C(l.value)==="stat"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",Zl,[g[15]||(g[15]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метка",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:f.value,"onUpdate:modelValue":g[3]||(g[3]=_=>f.value=_)},null,8,["modelValue"])]),e.createElementVNode("div",Jl,[g[16]||(g[16]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:p.value,"onUpdate:modelValue":g[4]||(g[4]=_=>p.value=_)},null,8,["modelValue"])])],64)):C(l.value)==="gauge"?(e.openBlock(),e.createElementBlock("div",Ql,[g[17]||(g[17]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значение (0..100)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:b.value,"onUpdate:modelValue":g[5]||(g[5]=_=>b.value=_),type:"number"},null,8,["modelValue"])])):C(l.value)==="chart"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createElementVNode("div",er,[g[18]||(g[18]=e.createElementVNode("label",{class:"admin-dialog__label"},"Метки (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:u.value,"onUpdate:modelValue":g[6]||(g[6]=_=>u.value=_),placeholder:"Янв, Фев, Мар"},null,8,["modelValue"])]),e.createElementVNode("div",tr,[g[19]||(g[19]=e.createElementVNode("label",{class:"admin-dialog__label"},"Значения (через запятую)",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:N.value,"onUpdate:modelValue":g[7]||(g[7]=_=>N.value=_),placeholder:"10, 20, 15"},null,8,["modelValue"])])],64)):C(l.value)==="recent"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[e.createElementVNode("div",nr,[g[20]||(g[20]=e.createElementVNode("label",{class:"admin-dialog__label"},"Resource slug",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:h.value,"onUpdate:modelValue":g[8]||(g[8]=_=>h.value=_),placeholder:"articles"},null,8,["modelValue"])]),e.createElementVNode("div",ar,[g[21]||(g[21]=e.createElementVNode("label",{class:"admin-dialog__label"},"Limit",-1)),e.createVNode(e.unref(c.UidInput),{modelValue:k.value,"onUpdate:modelValue":g[9]||(g[9]=_=>k.value=_),type:"number"},null,8,["modelValue"])])],64)):e.createCommentVNode("",!0)]),e.createElementVNode("footer",or,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:D},{default:e.withCtx(()=>[...g[22]||(g[22]=[e.createTextVNode("Отмена",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"primary",disabled:!m.value,onClick:V},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.mode==="add"?"Добавить":"Сохранить"),1)]),_:1},8,["disabled"])])])])):e.createCommentVNode("",!0)]),_:1})]))}}),rr={class:"admin-page admin-dashboard"},ir={class:"admin-page__hd"},sr={class:"admin-page__title-wrap"},cr={class:"admin-page__title"},dr={key:0,class:"admin-page__count"},ur={class:"admin-page__actions"},mr=["draggable","onDragstart","onDrop"],fr=["onMousedown"],xt=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,i=ce(),l=yn(),o=Bt(),s=(A,z)=>o.has(A)?o.t(A):z,d=e.computed(()=>!a.slug||!i.manifest?null:i.manifest.dashboards?.find(z=>z.slug===a.slug)??null),f=e.computed(()=>a.widgets?a.widgets:m.value!==null?m.value:d.value?.widgets??[]),p=e.computed(()=>a.title??d.value?.label??"Dashboard"),b=e.computed(()=>a.subtitle??d.value?.description??null),u=e.computed(()=>{const A=new Map;for(const q of f.value){const O=String(q.slug??"");O&&A.set(O,q)}const z=l.draft,P=[];if(z.length>0){for(const q of z){if(q.hidden)continue;let O=null;if(A.has(q.slug)){const oe=A.get(q.slug);O={...oe,size:q.size??oe.size??12},A.delete(q.slug)}else if(q.type){const oe=q.config??{};O={slug:q.slug,type:q.type,title:oe.title??"",size:q.size??6,data:oe}}O&&P.push({node:O,layoutSlug:q.slug})}for(const[q,O]of A.entries())P.push({node:O,layoutSlug:q})}else for(const q of f.value)P.push({node:q,layoutSlug:String(q.slug??"")});return P});function N(A){const z=A.size??A.span;return Math.max(1,Math.min(12,typeof z=="number"?z:12))}const h=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,z){k.value=A,r("change-period",A),await C()}async function C(){if(a.slug)try{const{getAdminClient:A}=await Promise.resolve().then(()=>Z),P=await A().get(`/dashboard/widgets?key=${encodeURIComponent(a.slug)}&period=${encodeURIComponent(k.value)}`);m.value=P.widgets}catch{}}const E=e.computed(()=>h.value.find(A=>A.key===k.value)?.label??s("admin.dashboard.period.label","Период")),V=e.ref(null),D=e.ref(null),y=e.ref("");function g(){V.value="add",D.value=null,y.value=""}function _(){V.value=null}function T(){l.enterEditMode()}function R(){l.cancelEdit()}async function W(){await l.saveLayout().catch(()=>{})}function K(A){l.draft.some(P=>P.slug===A)?l.removeWidget(A):l.addWidget({slug:A,hidden:!0})}function fe(A){Q();const z=l.draft.find(O=>O.slug===A)??null,q=u.value.find(O=>O.layoutSlug===A)?.node;D.value=z??{slug:A,type:q?.type??"",size:q?.size??6,config:{}},y.value=q?.title??"",V.value="configure"}function ae(A){l.addWidget(A)}function M(A){if(!D.value)return;const z=D.value.slug;if(l.draft.some(q=>q.slug===z)){const q=l.draft.find(O=>O.slug===z);l.updateWidget(z,{...A,config:{...q?.config??{},...A.config??{}}})}else l.addWidget({slug:z,type:D.value.type,...A})}const $=e.ref(null);function x(A,z){if(!l.editMode||z.dataTransfer===null)return;if(!z.target?.closest('[data-drag-handle="true"]')){z.preventDefault();return}$.value=A,z.dataTransfer.effectAllowed="move",z.dataTransfer.setData("text/plain",String(A))}function F(A){l.editMode&&$.value!==null&&A.preventDefault()}function J(A,z){if(z.preventDefault(),!l.editMode||$.value===null)return;const P=$.value;Q(),l.moveWidget(P,A),$.value=null}function Q(){if(l.draft.length===u.value.length)return;const A=u.value.map(({node:z,layoutSlug:P},q)=>{const O=l.draft.find(oe=>oe.slug===P);return{slug:P,size:N(z),position:q,hidden:O?.hidden??!1,type:O?.type??z.type,config:O?.config}});l.draft=A}const ee=e.ref(null);let ue=0;function te(A,z,P){if(!l.editMode)return;A.preventDefault(),A.stopPropagation(),Q(),ee.value={slug:z,startX:A.clientX,startSpan:P},ue=A.target.closest(".admin-dashboard__grid")?.getBoundingClientRect().width??1200,window.addEventListener("mousemove",me),window.addEventListener("mouseup",se)}function me(A){if(!ee.value)return;const z=ue/12,P=Math.round((A.clientX-ee.value.startX)/z),q=Math.max(1,Math.min(12,ee.value.startSpan+P)),O=l.draft.find(oe=>oe.slug===ee.value.slug);O&&O.size!==q&&l.updateWidget(ee.value.slug,{size:q})}function se(){ee.value=null,window.removeEventListener("mousemove",me),window.removeEventListener("mouseup",se)}function Qe(){r("export")}return(A,z)=>(e.openBlock(),e.createElementBlock("section",rr,[e.createElementVNode("header",ir,[e.createElementVNode("div",sr,[e.createElementVNode("h1",cr,e.toDisplayString(p.value),1),b.value?(e.openBlock(),e.createElementBlock("div",dr,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",ur,[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(Gt),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xt),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(h.value,P=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:P.key,onClick:q=>w(P.key)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(P.label),1)]),_:2},1032,["onClick"]))),128))]),_:1}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:Qe},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Yt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[z[0]||(z[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:g},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xe),size:14},null,8,["icon"])]),default:e.withCtx(()=>[z[2]||(z[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(vt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[z[3]||(z[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(()=>[...z[4]||(z[4]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])],64)):(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"secondary",size:"md",onClick:T},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(pt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[z[1]||(z[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(u.value,(P,q)=>(e.openBlock(),e.createElementBlock("div",{key:P.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 ${N(P.node)} / span ${N(P.node)}`}),onDragstart:O=>x(q,O),onDragover:F,onDrop:O=>J(q,O)},[e.createVNode(bn,{node:P.node},null,8,["node"]),e.unref(l).editMode?(e.openBlock(),e.createBlock(Tl,{key:0,onConfigure:O=>fe(P.layoutSlug),onRemove:O=>K(P.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=>te(O,P.layoutSlug,N(P.node))},null,40,fr)):e.createCommentVNode("",!0)],46,mr))),128))],2),e.createVNode(lr,{open:V.value!==null,mode:V.value??"add",item:D.value,"initial-title":y.value,onClose:_,onAdd:ae,onSave:M},null,8,["open","mode","item","initial-title"])]))}}),pr={key:1,class:"admin-home"},vr={class:"admin-home__title"},hr={key:0,class:"admin-home__resources"},yr={class:"admin-home__grid"},gr=["onClick"],kr={class:"admin-home__card-label"},_r={class:"admin-home__card-slug"},wn=e.defineComponent({__name:"HomePage",setup(t){const n=ce(),a=re(),r=X.useRouter(),i=e.computed(()=>a.user?.name??""),l=e.computed(()=>n.manifest?.resources??[]),o=e.computed(()=>n.manifest?.dashboards??[]),s=e.computed(()=>o.value[0]?.slug??null),d=yn();return e.watch(s,f=>{f&&d.openDashboard(f)},{immediate:!0}),(f,p)=>s.value?(e.openBlock(),e.createBlock(xt,{key:0,slug:s.value},null,8,["slug"])):(e.openBlock(),e.createElementBlock("div",pr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-home__hero"},{default:e.withCtx(()=>[e.createElementVNode("h1",vr,"Добро пожаловать"+e.toDisplayString(i.value?", "+i.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",hr,[p[1]||(p[1]=e.createElementVNode("h2",{class:"admin-home__heading"},"Ресурсы",-1)),e.createElementVNode("ul",yr,[(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:u=>e.unref(r).push({name:`admin.resource.${b.slug}.index`})},[e.createElementVNode("span",kr,e.toDisplayString(b.label),1),e.createElementVNode("span",_r,e.toDisplayString(b.slug),1)],8,gr)]))),128))])])):e.createCommentVNode("",!0)]))}}),br={class:"admin-status-page"},Bn=e.defineComponent({__name:"ForbiddenPage",setup(t){const n=X.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",br,[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]=i=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),wr={class:"admin-status-page"},Vn=e.defineComponent({__name:"NotFoundPage",setup(t){const n=X.useRouter();return(a,r)=>(e.openBlock(),e.createElementBlock("div",wr,[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]=i=>e.unref(n).replace({name:"admin.home"}))},{default:e.withCtx(()=>[...r[1]||(r[1]=[e.createTextVNode(" На главную ",-1)])]),_:1})]),_:1})]))}}),Br={class:"admin-settings-page"},Vr={class:"admin-settings-page__title"},xr={key:0,class:"admin-settings-page__hint"},Nr={key:1,class:"admin-settings-page__debug"},xn=e.defineComponent({__name:"SettingsPage",setup(t){const n=X.useRoute(),a=ce(),r=e.computed(()=>String(n.params.slug??"")),i=e.computed(()=>a.manifest?.settings?.find(l=>l.slug===r.value)??null);return(l,o)=>(e.openBlock(),e.createElementBlock("div",Br,[e.createVNode(e.unref(c.UidCard),{padding:"lg"},{default:e.withCtx(()=>[e.createElementVNode("h1",Vr,e.toDisplayString(i.value?.label??r.value),1),i.value?(e.openBlock(),e.createElementBlock("pre",Nr,e.toDisplayString(JSON.stringify(i.value.fields,null,2)),1)):(e.openBlock(),e.createElementBlock("p",xr," Settings «"+e.toDisplayString(r.value)+"» не найдено в manifest'е. ",1))]),_:1})]))}}),Cr={class:"admin-status-page"},Er={class:"admin-status-page__title"},$r={class:"admin-status-page__hint"},Nn=e.defineComponent({__name:"UnknownScreenPage",setup(t){const n=X.useRoute(),a=e.computed(()=>String(n.params.slug??"")),r=e.computed(()=>String(n.meta?.title??a.value));return(i,l)=>(e.openBlock(),e.createElementBlock("div",Cr,[e.createVNode(e.unref(c.UidCard),{padding:"lg",class:"admin-status-page__card"},{default:e.withCtx(()=>[e.createElementVNode("h1",Er,e.toDisplayString(r.value),1),e.createElementVNode("p",$r,[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})]))}}),Sr={class:"admin-auth-card__row"},Ur=["href"],Mr={key:1,style:{"text-align":"center","font-size":"var(--uid-font-size-xs)",color:"var(--uid-text-secondary)","padding-top":"4px"}},Dr=["href"],Cn=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(),i=e.ref(""),l=e.ref(""),o=e.ref(!1),s=e.ref(!1),d=e.ref(null),f=e.ref({}),p=e.computed(()=>f.value.email?.[0]),b=e.computed(()=>f.value.password?.[0]);async function u(){if(!s.value){s.value=!0,d.value=null,f.value={};try{const N=await r.login({email:i.value,password:l.value,remember:o.value});a("success",N)}catch(N){N instanceof De?(f.value=N.fields,d.value=N.firstFieldMessage()):N instanceof Ie?d.value="Нет соединения с сервером":N instanceof de?d.value=N.message||"Не удалось войти":d.value=N.message}finally{s.value=!1}}}return(N,h)=>(e.openBlock(),e.createElementBlock("form",{class:"admin-auth-card__bd",novalidate:"",onSubmit:e.withModifiers(u,["prevent"])},[d.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(d.value),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidInput),{modelValue:i.value,"onUpdate:modelValue":h[0]||(h[0]=k=>i.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":h[1]||(h[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",Sr,[e.createVNode(e.unref(c.UidCheckbox),{modelValue:o.value,"onUpdate:modelValue":h[2]||(h[2]=k=>o.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,Ur)):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",Mr,[h[4]||(h[4]=e.createTextVNode(" или войдите через ",-1)),e.createElementVNode("a",{href:t.ssoUrl,class:"admin-auth-card__link"},e.toDisplayString(t.ssoLinkLabel),9,Dr)])):e.createCommentVNode("",!0)],32))}}),Ir=["value","disabled","aria-label","onInput","onKeydown"],Tr={class:"admin-auth-card__row"},En=e.defineComponent({__name:"TwoFactorForm",emits:["success","cancel"],setup(t,{emit:n}){const a=n,r=re(),i=e.ref("totp"),l=e.ref(["","","","","",""]),o=e.ref(""),s=e.ref([]),d=e.ref(!1),f=e.ref(null),p=e.ref(null),b=e.computed(()=>l.value.join("")),u=e.computed(()=>i.value==="totp"?b.value.length===6:o.value.trim().length>0);function N(V,D){D instanceof HTMLInputElement&&(s.value[V]=D)}function h(V,D){const y=D.target,g=y.value.replace(/\D/g,"").slice(-1);l.value[V]=g,y.value=g,g&&V<l.value.length-1&&e.nextTick(()=>s.value[V+1]?.focus()),b.value.length===l.value.length&&w()}function k(V,D){D.key==="Backspace"&&!l.value[V]&&V>0?e.nextTick(()=>s.value[V-1]?.focus()):D.key==="ArrowLeft"&&V>0?(s.value[V-1]?.focus(),D.preventDefault()):D.key==="ArrowRight"&&V<l.value.length-1&&(s.value[V+1]?.focus(),D.preventDefault())}function m(V){const y=(V.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,l.value.length);if(y.length!==0){V.preventDefault();for(let g=0;g<l.value.length;g++)l.value[g]=y[g]??"";e.nextTick(()=>{s.value[Math.min(y.length,l.value.length-1)]?.focus(),y.length===l.value.length&&w()})}}async function w(){if(!(d.value||!u.value)){d.value=!0,f.value=null;try{if(i.value==="totp")await r.twoFactorChallenge(b.value);else{const V=await r.twoFactorRecovery(o.value.trim());p.value=V.remaining}a("success")}catch(V){V instanceof De?f.value=V.firstFieldMessage()??"Неверный код":V instanceof Ie?f.value="Нет соединения с сервером":V instanceof de?f.value=V.message||"Не удалось проверить код":f.value=V.message}finally{d.value=!1}}}function C(){r.cancelChallenge(),a("cancel")}function E(){i.value=i.value==="totp"?"recovery":"totp",f.value=null}return(V,D)=>(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),i.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,(y,g)=>(e.openBlock(),e.createElementBlock("input",{key:g,ref_for:!0,ref:_=>N(g,_),value:l.value[g],type:"text",inputmode:"numeric",autocomplete:"one-time-code",maxlength:"1",disabled:d.value,"aria-label":`Цифра ${g+1}`,onInput:_=>h(g,_),onKeydown:_=>k(g,_)},null,40,Ir))),128))],32)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:3,modelValue:o.value,"onUpdate:modelValue":D[0]||(D[0]=y=>o.value=y),type:"text",label:"Recovery-код",autocomplete:"one-time-code",disabled:d.value,name:"recovery-code"},null,8,["modelValue","disabled"])),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",size:"lg",loading:d.value,disabled:d.value||!u.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.value?"Проверка…":"Подтвердить"),1)]),_:1},8,["loading","disabled"]),e.createElementVNode("div",Tr,[e.createElementVNode("button",{type:"button",class:"admin-auth-card__link",onClick:E},[i.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:C}," Отмена ")])],32))}}),Fr={class:"admin-auth-page"},Ar={key:0,class:"admin-auth-page__corner"},Lr={class:"admin-auth-card__hd"},zr=["src","alt"],Rr={key:1,"aria-hidden":"true"},Pr={key:2},qr={class:"admin-auth-card__title"},jr={class:"admin-auth-card__sub"},$n=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=X.useRouter(),i=X.useRoute();async function l(){const o=i.query[n.redirectQueryKey];if(typeof o=="string"&&o.length>0&&o.startsWith("/")){await r.push(o);return}await r.push({name:n.homeRouteName})}return e.watch(()=>a.isAuthenticated,o=>{o&&l()}),e.onMounted(()=>{a.isAuthenticated&&l()}),(o,s)=>(e.openBlock(),e.createElementBlock("div",Fr,[t.showCornerActions?(e.openBlock(),e.createElementBlock("div",Ar,[e.createVNode(gt),e.createVNode(kt)])):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",Lr,[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,zr)):e.unref(a).isChallengePending?(e.openBlock(),e.createElementBlock("span",Rr,"🛡")):t.brandMark?(e.openBlock(),e.createElementBlock("span",Pr,e.toDisplayString(t.brandMark),1)):(e.openBlock(),e.createBlock(Ze,{key:3,size:40}))],2),e.createElementVNode("div",qr,[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",jr,[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(En,{key:0,onSuccess:s[0]||(s[0]=()=>{}),onCancel:s[1]||(s[1]=()=>{})})):(e.openBlock(),e.createBlock(Cn,{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"])]))}}),Or={class:"admin-auth-page"},Wr={class:"admin-auth-card__hd"},Hr={class:"admin-auth-card__logo"},Kr={class:"admin-auth-card__sub"},Gr={class:"admin-auth-card__body"},Xr=e.defineComponent({__name:"ForgotPasswordPage",props:{brandName:{default:"Laravel Admin"},loginRouteName:{default:"admin.login"}},setup(t){const n=X.useRouter(),a=e.ref(""),r=e.ref(!1),i=e.ref(!1);async function l(){if(a.value.trim()===""){G.error("Введите email.");return}i.value=!0;try{const{getAdminClient:o}=await Promise.resolve().then(()=>Z);await o().post("/auth/forgotPassword",{email:a.value.trim()}),r.value=!0}catch{r.value=!0}finally{i.value=!1}}return(o,s)=>(e.openBlock(),e.createElementBlock("div",Or,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Wr,[e.createElementVNode("div",Hr,[e.createVNode(Ze,{size:40})]),s[2]||(s[2]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Восстановление пароля",-1)),e.createElementVNode("div",Kr,e.toDisplayString(r.value?"Если такой email зарегистрирован — мы отправили письмо со ссылкой на сброс.":"Введите email — отправим ссылку для сброса пароля."),1)]),e.createElementVNode("div",Gr,[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]=d=>a.value=d),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:i.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(en),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]=d=>e.unref(n).push({name:t.loginRouteName}))},{default:e.withCtx(()=>[...s[4]||(s[4]=[e.createTextVNode(" ← Назад ко входу ",-1)])]),_:1})])]),_:1})]))}}),Yr={class:"admin-auth-page"},Zr={class:"admin-auth-card__hd"},Jr={class:"admin-auth-card__logo"},Qr={class:"admin-auth-card__body"},ei={key:0,class:"admin-auth-card__error"},ti=e.defineComponent({__name:"ResetPasswordPage",props:{loginRouteName:{default:"admin.login"}},setup(t){const n=t,a=X.useRouter(),r=X.useRoute(),i=e.computed(()=>String(r.query.token??"")),l=e.ref(String(r.query.email??"")),o=e.ref(""),s=e.ref(""),d=e.ref(!1),f=e.ref("");async function p(){if(f.value="",o.value.length<8){f.value="Пароль должен быть не менее 8 символов.";return}if(o.value!==s.value){f.value="Пароли не совпадают.";return}d.value=!0;try{const{getAdminClient:b}=await Promise.resolve().then(()=>Z);await b().post("/auth/resetPassword",{token:i.value,email:l.value,password:o.value,password_confirmation:s.value}),G.success("Пароль обновлён. Войдите с новым паролем."),await a.push({name:n.loginRouteName})}catch{f.value="Не удалось сбросить пароль. Возможно, ссылка устарела."}finally{d.value=!1}}return(b,u)=>(e.openBlock(),e.createElementBlock("div",Yr,[e.createVNode(e.unref(c.UidCard),{padding:"none",class:"admin-auth-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Zr,[e.createElementVNode("div",Jr,[e.createVNode(Ze,{size:40})]),u[3]||(u[3]=e.createElementVNode("div",{class:"admin-auth-card__title"},"Новый пароль",-1)),u[4]||(u[4]=e.createElementVNode("div",{class:"admin-auth-card__sub"},"Задайте новый пароль для своего аккаунта.",-1))]),e.createElementVNode("div",Qr,[e.createElementVNode("form",{onSubmit:e.withModifiers(p,["prevent"])},[e.createVNode(e.unref(c.UidInput),{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=N=>l.value=N),type:"email",placeholder:"email",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:o.value,"onUpdate:modelValue":u[1]||(u[1]=N=>o.value=N),type:"password",placeholder:"Новый пароль (мин. 8)",autocomplete:"new-password",required:""},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:s.value,"onUpdate:modelValue":u[2]||(u[2]=N=>s.value=N),type:"password",placeholder:"Повторите пароль",autocomplete:"new-password",required:""},null,8,["modelValue"]),f.value?(e.openBlock(),e.createElementBlock("p",ei,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(c.UidButton),{type:"submit",variant:"primary",class:"admin-auth-card__submit",loading:d.value},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ke),size:14},null,8,["icon"])]),default:e.withCtx(()=>[u[5]||(u[5]=e.createTextVNode(" Сохранить пароль ",-1))]),_:1},8,["loading"])],32)])]),_:1})]))}}),Rt={page:1,per_page:20,total:0,last_page:1},Nt=ie.defineStore("admin-resource-index",()=>{const t=e.ref(null),n=e.ref([]),a=e.ref({...Rt}),r=e.ref(!1),i=e.ref(!1),l=e.ref(null);let o=null;const s=200,d=e.ref(""),f=e.ref({}),p=e.ref(null),b=e.ref(null),u=e.ref(new Set),N=e.computed(()=>!r.value&&l.value===null&&n.value.length===0),h=e.computed(()=>u.value.size),k=e.computed(()=>u.value.size>0),m=e.computed(()=>l.value!==null),w=e.computed(()=>u.value.size===0||n.value.length===0?"none":n.value.every(F=>u.value.has(C(F)))?"all":"mixed");function C(x){return x.id??x.key??""}function E(x){t.value!==x&&(t.value=x,V(),r.value=!0)}function V(){n.value=[],a.value={...Rt},r.value=!1,l.value=null,d.value="",f.value={},p.value=null,b.value=null,u.value=new Set}function D(x={}){const F={page:x.page??a.value.page,per_page:x.per_page??a.value.per_page},J=x.search??d.value;J&&(F.q=J);const Q=x.sort??p.value,ee=x.direction??b.value;Q&&ee!==null&&(F.order=[{column:Q,direction:ee}]);const ue=x.filters??f.value,te={};for(const[me,se]of Object.entries(ue))se==null||se===""||(te[me]=Array.isArray(se)?se.join(","):se);return Object.keys(te).length>0&&(F.filters=te),F}async function y(x={}){if(!t.value)throw new Error("useResourceIndexStore.load() called before setSlug()");r.value=!0,l.value=null,o!==null&&clearTimeout(o),o=setTimeout(()=>{i.value=!0},s);try{const F=H(),J=D(x),Q=await F.post(`/${t.value}/search`,J);n.value=Q.data,a.value=Q.meta}catch(F){throw l.value=F instanceof Error?F:new Error(String(F)),F}finally{r.value=!1,i.value=!1,o!==null&&(clearTimeout(o),o=null)}}async function g(x){d.value=x,a.value.page=1,await y()}async function _(x,F){F==null||F===""?delete f.value[x]:f.value[x]=F,a.value.page=1,await y()}async function T(){f.value={},a.value.page=1,await y()}async function R(x,F="asc"){p.value=x,b.value=F,await y()}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 y()}async function K(x){a.value.page=x,await y()}function fe(x){const F=new Set(u.value);F.has(x)?F.delete(x):F.add(x),u.value=F}function ae(){if(w.value==="all"){u.value=new Set;return}const x=new Set(u.value);for(const F of n.value)x.add(C(F));u.value=x}function M(){u.value=new Set}function $(x){return u.value.has(x)}return{slug:t,items:n,meta:a,loading:r,slowLoading:i,error:l,search:d,filters:f,sortKey:p,sortDirection:b,selection:u,isEmpty:N,hasError:m,hasSelection:k,selectedCount:h,selectionState:w,setSlug:E,reset:V,load:y,setSearch:g,setFilter:_,clearFilters:T,setSort:R,toggleSort:W,setPage:K,toggleRow:fe,toggleAllOnPage:ae,clearSelection:M,isSelected:$,rowId:C}}),ni=Object.freeze(Object.defineProperty({__proto__:null,useResourceIndexStore:Nt},Symbol.toStringTag,{value:"Module"})),Pt="d.m.Y H:i:s",ai="d.m.Y",oi=/^\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}/;function Sn(t,n,a={}){if(t==null)return"";if(!n&&typeof t=="string"&&oi.test(t))return ot(t,Pt);switch(n){case"date":return ot(String(t),a.format??ai);case"datetime":return ot(String(t),a.format??Pt);case"money":return li(t,a.currency??"RUB",a.decimals??2);case"boolean":return ri(t,a.trueLabel??"Да",a.falseLabel??"Нет");case"bytes":return ii(t);default:return String(t)}}function ot(t,n){const a=new Date(t);if(isNaN(a.getTime()))return t;const r=(o,s=2)=>String(o).padStart(s,"0"),i={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 o=0;o<n.length;o++){const s=n[o];if(s==="\\"&&o+1<n.length){l+=n[o+1],o++;continue}l+=i[s]??s}return l}function li(t,n,a){const r=typeof t=="number"?t:Number(t);return isNaN(r)?String(t):`${r.toFixed(a)} ${n}`}function ri(t,n,a){return t===!0||t===1||t==="1"||t==="true"?n:a}function ii(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 qt=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:i=>n("set-draft",{...r,from:i.target.value})}),e.h("input",{type:"date",value:r.to??"",class:"admin-toolbar__input",placeholder:"До",onChange:i=>n("set-draft",{...r,to:i.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(i=>e.h("label",{key:i.value,class:"admin-toolbar__list-item admin-toolbar__list-item--checkbox"},[e.h("input",{type:"radio",checked:t.draft===i.value,onChange:()=>n("set-draft",i.value)}),e.h("span",null,i.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)})}}}),si={class:"admin-toolbar"},ci={class:"admin-toolbar__row admin-toolbar__row--filters"},di={class:"admin-toolbar__search"},ui=["placeholder"],mi={key:0,class:"admin-toolbar__divider"},fi={type:"button",class:"admin-toolbar__chip admin-toolbar__chip--active"},pi={class:"admin-toolbar__chip-text"},vi=["onClick","onKeydown"],hi={class:"admin-toolbar__popover-actions"},yi={type:"button",class:"admin-toolbar__chip"},gi={class:"admin-toolbar__chip-text"},ki={class:"admin-toolbar__popover-actions"},_i={type:"button",class:"admin-toolbar__chip"},bi=["onClick"],wi={key:0,class:"admin-toolbar__row admin-toolbar__row--actions"},Bi={type:"button",class:"admin-toolbar__chip"},Vi={class:"admin-toolbar__chip-text"},xi=["onClick"],Ni={type:"button",class:"admin-toolbar__chip"},Ci=["checked","onChange"],Ei={type:"button",class:"admin-toolbar__chip"},$i={class:"admin-toolbar__popover-actions"},jt=4,Si=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,i=e.ref(a.search);e.watch(()=>a.search,M=>{i.value=M});function l(){i.value!==a.search&&r("update:search",i.value)}function o(M){return M==null||M===""||Array.isArray(M)&&M.length===0?!1:typeof M=="object"&&!Array.isArray(M)?Object.values(M).some(x=>x!==null&&x!==""&&x!==void 0):!0}const s=e.computed(()=>a.filters.filter(M=>o(a.values[M.name]))),d=e.computed(()=>a.filters.filter(M=>!o(a.values[M.name]))),f=e.ref(new Set),p=e.computed(()=>d.value.filter((M,$)=>f.value.has(M.name)||$<jt)),b=e.computed(()=>d.value.filter((M,$)=>!f.value.has(M.name)&&$>=jt));function u(M){const $=new Set(f.value);$.add(M),f.value=$}const N=e.computed(()=>a.search!==""||s.value.length>0);function h(M){r("apply-filter",M,null)}function k(M){const $=a.values[M.name];if(M.options&&M.options.length>0){const F=(Array.isArray($)?$:[$]).map(J=>M.options?.find(Q=>String(Q.value)===String(J))?.label??String(J));return`${M.label}: ${F.join(", ")}`}if(M.type==="date_range"&&$&&typeof $=="object"){const x=$;return`${M.label}: ${x.from??""} – ${x.to??""}`}return M.type==="switcher"?`${M.label}: ${$?"да":"нет"}`:`${M.label}: ${String($)}`}const m=e.ref({});function w(M){return M in m.value||(m.value[M]=a.values[M]??null),m.value[M]}function C(M,$){m.value={...m.value,[M]:$}}function E(M,$){r("apply-filter",M,m.value[M]??null),$()}function V(M,$,x){if(!x){C(M,$);return}const F=w(M),J=Array.isArray(F)?[...F]:[],Q=J.findIndex(ee=>String(ee)===String($));Q>=0?J.splice(Q,1):J.push($),C(M,J)}function D(M,$){const x=w(M);return Array.isArray(x)?x.some(F=>String(F)===String($)):x!=null&&String(x)===String($)}const y=e.computed(()=>a.columns.filter(M=>M.groupable===!0&&(M.key??M.name)));function g(M,$){r("group-by",M),$()}function _(M){return String(M.key??M.name??"")}function T(M){return String(M.label??M.name??M.key??"")}function R(M){const $=_(M);return $ in a.columnVisibility?a.columnVisibility[$]:!0}function W(M){const $=_(M);r("columns-visibility",{...a.columnVisibility,[$]:!R(M)})}const K=e.ref("");function fe(M){K.value.trim()!==""&&(r("save-view",K.value.trim()),K.value="",M())}function ae(M){return fn(M)??null}return(M,$)=>(e.openBlock(),e.createElementBlock("div",si,[e.createElementVNode("div",ci,[e.createElementVNode("label",di,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ht),size:14,class:"admin-toolbar__search-icon"},null,8,["icon"]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":$[0]||($[0]=x=>i.value=x),type:"search",placeholder:t.searchPlaceholder,class:"admin-toolbar__search-input",onKeydown:e.withKeys(l,["enter"]),onBlur:l},null,40,ui),[[e.vModelText,i.value]])]),t.filters.length>0?(e.openBlock(),e.createElementBlock("span",mi)):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",fi,[ae(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:ae(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",pi,e.toDisplayString(k(x)),1),e.createElementVNode("span",{role:"button",tabindex:"0","aria-label":"Сбросить фильтр",class:"admin-toolbar__chip-x",onClick:e.withModifiers(F=>h(x.name),["stop"]),onKeydown:e.withKeys(e.withModifiers(F=>h(x.name),["stop"]),["enter"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(be),size:12},null,8,["icon"])],40,vi)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:$[1]||($[1]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(qt),{filter:x,draft:w(x.name),"is-checked":F=>D(x.name,F),onToggleOption:F=>V(x.name,F,x.multiple??!1),onSetDraft:F=>C(x.name,F)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",hi,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:F=>C(x.name,null)},{default:e.withCtx(()=>[...$[12]||($[12]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:F=>E(x.name,()=>{})},{default:e.withCtx(()=>[...$[13]||($[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",yi,[ae(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:ae(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",gi,e.toDisplayString(x.label),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:$[2]||($[2]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(e.unref(qt),{filter:x,draft:w(x.name),"is-checked":F=>D(x.name,F),onToggleOption:F=>V(x.name,F,x.multiple??!1),onSetDraft:F=>C(x.name,F)},null,8,["filter","draft","is-checked","onToggleOption","onSetDraft"]),e.createElementVNode("div",ki,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:F=>C(x.name,null)},{default:e.withCtx(()=>[...$[14]||($[14]=[e.createTextVNode(" Очистить ",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",onClick:F=>E(x.name,()=>{})},{default:e.withCtx(()=>[...$[15]||($[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",_i,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xe),size:14},null,8,["icon"]),$[16]||($[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:$[3]||($[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:F=>u(x.name)},[ae(x.icon)!==null?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:ae(x.icon),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(x.label),1)],8,bi))),128))],32)]),_:1})):e.createCommentVNode("",!0),$[18]||($[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:$[4]||($[4]=x=>r("reset"))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(vt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[$[17]||($[17]=e.createTextVNode(" Сбросить ",-1))]),_:1})):e.createCommentVNode("",!0)]),y.value.length>0||t.columns.length>0||t.enableSavedViews?(e.openBlock(),e.createElementBlock("div",wi,[y.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidMenu),{key:0},{trigger:e.withCtx(()=>[e.createElementVNode("button",Bi,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(no),size:14},null,8,["icon"]),e.createElementVNode("span",Vi,e.toDisplayString(t.groupBy?`Группа: ${T(t.columns.find(x=>_(x)===t.groupBy)??{})}`:"Группировать"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover admin-toolbar__popover--list",onKeydown:$[6]||($[6]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:$[5]||($[5]=x=>g(null,()=>{}))},[t.groupBy?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(Ke),size:14},null,8,["icon"])),$[19]||($[19]=e.createElementVNode("span",null,"Без группировки",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,x=>(e.openBlock(),e.createElementBlock("button",{key:_(x),type:"button",role:"menuitem",class:"admin-toolbar__list-item",onClick:F=>g(_(x),()=>{})},[t.groupBy===_(x)?(e.openBlock(),e.createBlock(e.unref(c.UidIcon),{key:0,icon:e.unref(Ke),size:14},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(T(x)),1)],8,xi))),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",Ni,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ia),size:14},null,8,["icon"]),$[20]||($[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:$[7]||($[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:F=>W(x)},null,40,Ci),e.createElementVNode("span",null,e.toDisplayString(T(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",Ei,[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(ft),size:14},null,8,["icon"]),$[21]||($[21]=e.createElementVNode("span",{class:"admin-toolbar__chip-text"},"Сохранить",-1))])]),default:e.withCtx(()=>[e.createElementVNode("div",{class:"admin-toolbar__popover",onKeydown:$[11]||($[11]=e.withModifiers(()=>{},["stop"]))},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":$[8]||($[8]=x=>K.value=x),type:"text",placeholder:"Название view",class:"admin-toolbar__input",onKeydown:$[9]||($[9]=e.withKeys(x=>fe(()=>{}),["enter"]))},null,544),[[e.vModelText,K.value]]),e.createElementVNode("div",$i,[e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"primary",disabled:K.value.trim()==="",onClick:$[10]||($[10]=x=>fe(()=>{}))},{default:e.withCtx(()=>[...$[22]||($[22]=[e.createTextVNode(" Сохранить view ",-1)])]),_:1},8,["disabled"])])],32)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),Ui=["title"],Mi=["disabled"],Di=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,i=e.ref(!1),l=e.ref(""),o=e.ref(!1),s=e.ref(null);async function d(){!a.editable||o.value||(l.value=a.value===null||a.value===void 0?"":String(a.value),i.value=!0,await e.nextTick(),s.value?.focus(),s.value?.select())}function f(){i.value=!1}async function p(){if(!(!i.value||o.value)){if(l.value===String(a.value??"")){i.value=!1;return}o.value=!0;try{const{getAdminClient:u}=await Promise.resolve().then(()=>Z);await u().post(`/${a.resourceSlug}/inlineUpdate`,{id:a.rowId,column:a.column,value:l.value}),r("saved",l.value),i.value=!1}catch(u){typeof console<"u"&&console.error("[admin] inline-update failed:",u),G.error(`Не удалось обновить «${a.column}».`)}finally{o.value=!1}}}function b(u){u.key==="Enter"?(u.preventDefault(),p()):u.key==="Escape"&&(u.preventDefault(),f())}return(u,N)=>i.value?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,ref_key:"inputRef",ref:s,"onUpdate:modelValue":N[0]||(N[0]=h=>l.value=h),type:"text",class:"admin-inline-edit__input",disabled:o.value,onKeydown:b,onBlur:p,onClick:N[1]||(N[1]=e.withModifiers(()=>{},["stop"]))},null,40,Mi)),[[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(d,["stop"])},[e.renderSlot(u.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)])],42,Ui))}}),Ii={class:"admin-page admin-resource-index"},Ti={class:"admin-page__hd"},Fi={class:"admin-page__title-wrap"},Ai={class:"admin-page__title-row"},Li={class:"admin-page__title"},zi={key:0,class:"admin-page__live",role:"status"},Ri={key:0,class:"admin-page__count"},Pi={class:"admin-page__actions"},qi={class:"admin-page__view-row"},ji={class:"admin-page__view-name"},Oi={key:0,class:"admin-page__view-badge"},Wi=["onClick"],Hi={key:0,class:"admin-bulk-toolbar",role:"toolbar"},Ki={class:"admin-bulk-toolbar__count"},Gi={key:2,class:"admin-resource-index__loading"},Xi={key:5,class:"admin-resource-index__table"},Yi=["draggable","onDragstart","onDragover","onDrop"],Zi={key:1,class:"admin-resource-index__row-actions"},Ji=["onClick"],Qi=["onClick"],es=["onClick"],ts=["onClick"],ns=["onClick"],as={class:"admin-cell-truncate"},os=["title"],ls={key:6,class:"admin-resource-index__footer"},Ot="__row_actions__",Wt="__row_reorder__",Un=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=Bt(),r=(B,v,U)=>a.has(B)?a.t(B,U):v,i=t,l=n,o=Nt(),s=ce(),d=wt(),f=X.useRouter(),p=e.computed(()=>s.getResource(i.slug)),b=e.computed(()=>i.title??p.value?.label??i.slug),u=e.computed(()=>{if(i.createRouteName!==null)return f.hasRoute(i.createRouteName)?i.createRouteName:null;const B=`admin.resource.${i.slug}.create`;return f.hasRoute(B)?B:null}),N=e.computed(()=>(p.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,icon:typeof v.icon=="string"?v.icon:void 0})).filter(v=>v.key!==""&&v.label!==""));async function h(B){if(!(B.confirm&&!window.confirm(B.confirm))){l("header-action",B.key);try{d.start();const{getAdminClient:v}=await Promise.resolve().then(()=>Z),I=await v().post(`/${i.slug}/action`,{key:B.key,ids:[...o.selection]});await o.load().catch(()=>{}),G.success(I?.message??`Action «${B.label}» применён к ${I?.affected??0} записям.`)}catch(v){typeof console<"u"&&console.error("[admin] header-action failed:",v),G.error(`Не удалось выполнить action «${B.label}».`)}finally{d.end()}}}async function k(B="csv"){l("header-action","export");try{d.start();const{getAdminClient:v}=await Promise.resolve().then(()=>Z),I=await v().post(`/${i.slug}/export`,{format:B,filters:o.filters,search:o.search},{responseType:"blob"}),L=URL.createObjectURL(I),Y=document.createElement("a");Y.href=L,Y.download=`${i.slug}-${new Date().toISOString().slice(0,10)}.${B}`,document.body.appendChild(Y),Y.click(),Y.remove(),URL.revokeObjectURL(L)}catch(v){typeof console<"u"&&console.error("[admin] export failed:",v),G.error(`Не удалось экспортировать данные в формате ${B.toUpperCase()}.`)}finally{d.end()}}const m=e.ref(null);function w(){l("import"),m.value?.click()}async function C(B){const v=B.target,U=v.files?.[0];if(U)try{d.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Z),L=I(),Y=new FormData;Y.append("file",U),Y.append("resource",i.slug);const ze=await L.post("/import/upload",Y),Ce=await L.post("/import/preview",{resource:i.slug,upload_id:ze.upload_id}),tt=await L.post("/import/start",{resource:i.slug,upload_id:ze.upload_id,mapping:Ce.mapping}),Re=await E(L,tt.process_id),Pe=Re.imported??0,Ft=Re.failed??0;Ft>0?G.warning(`Импорт завершён с ошибками: ${Pe} записей, ${Ft} ошибок.`):G.success(`Импортировано записей: ${Pe}.`),await o.load().catch(()=>{})}catch(I){typeof console<"u"&&console.error("[admin] import failed:",I),G.error("Импорт не удался. Проверьте формат файла и поля ресурса либо обратитесь к администратору.")}finally{v.value="",d.end()}}async function E(B,v){const U=Date.now()+9e4;for(;Date.now()<U;){await new Promise(L=>setTimeout(L,800));const I=await B.get(`/import/status?process_id=${encodeURIComponent(v)}`);if(I.status==="done"||I.status==="failed")return I}return{status:"failed",failed:1}}const V=e.computed(()=>(p.value?.features??{}).reorderable===!0),D=e.computed(()=>{const v=(p.value?.columns??[]).map(I=>{const L=I;return{key:String(L.key??L.name??""),label:String(L.label??L.name??""),sortable:!!L.sortable,align:L.align??"left",width:typeof L.width=="string"?L.width:void 0}}).filter(I=>I.key).filter(I=>$.value[I.key]!==!1);return[...V.value?[{key:Wt,label:"",sortable:!1,align:"center",width:"32px"}]:[],...v,{key:Ot,label:"",sortable:!1,align:"right",width:"120px"}]});function y(B){const v=p.value?.columns??[];for(const U of v){const I=U;if(String(I.key??I.name??"")===B)return I.editable!==null&&I.editable!==void 0}return!1}const g=e.computed(()=>{const B=p.value?.columns??[],v={};for(const U of B){const I=U,L=String(I.key??I.name??"");L&&(v[L]={preset:typeof I.preset=="string"?I.preset:void 0,meta:I.meta??{}})}return v});function _(B,v){const I=v?.row?.[B],L=g.value[B];return Sn(I,L?.preset,L?.meta??{})}function T(B){return B?.row}const R=e.computed(()=>o.search!==""||Object.keys(o.filters).length>0),W=e.computed(()=>!o.isEmpty||R.value),K=e.computed(()=>p.value?.filters??[]),fe=e.computed(()=>p.value?.columns??[]),ae=e.computed(()=>`Поиск по ${(p.value?.label??i.slug).toLowerCase()}…`),M=e.ref(null),$=e.ref({});async function x(B,v){await o.setFilter(B,v)}async function F(B){await o.setSearch(B)}async function J(){o.search="",await o.clearFilters()}async function Q(B){M.value=B,await o.load({group_by:B})}function ee(B){$.value=B}const ue=e.ref([]),te=e.ref(null);async function me(){try{const{getAdminClient:B}=await Promise.resolve().then(()=>Z),U=await B().get(`/${i.slug}_views/list`);ue.value=U.data??[]}catch{ue.value=[]}}async function se(B){te.value=B.id;const v=B.state;o.search=v.search??"",o.filters={...v.filters??{}},o.sortKey=v.sort?.key??null,o.sortDirection=v.sort?.direction??null,M.value=v.group_by??null,$.value={...v.columns??{}},o.meta.page=1,await Fe()}async function Qe(){te.value=null,o.search="",o.filters={},o.sortKey=null,o.sortDirection=null,M.value=null,$.value={},o.meta.page=1,await Fe()}async function A(B,v){if(v?.stopPropagation(),!!B.owned&&window.confirm(`Удалить view «${B.name}»?`))try{d.start();const{getAdminClient:U}=await Promise.resolve().then(()=>Z);await U().post(`/${i.slug}_views/delete`,{id:B.id}),te.value===B.id&&(te.value=null),await me()}catch(U){typeof console<"u"&&console.error("[admin] delete-view failed:",U)}finally{d.end()}}async function z(B){try{d.start();const{getAdminClient:v}=await Promise.resolve().then(()=>Z),I=await v().post(`/${i.slug}_views/create`,{name:B,state:{search:o.search,filters:o.filters,sort:{key:o.sortKey,direction:o.sortDirection},group_by:M.value,columns:$.value}});I?.view&&(te.value=I.view.id),await me(),G.success(r("admin.resource.view_saved","Представление сохранено."))}catch(v){typeof console<"u"&&console.error("[admin] save-view failed:",v),G.error("Не удалось сохранить view. Возможно, недостаточно прав либо ресурс не зарегистрирован.")}finally{d.end()}}const P=e.computed(()=>{const B=o.meta.total;return B===0?"":`${o.items.length} из ${B} ${q(B)}`});function q(B){const v=B%10,U=B%100;return v===1&&U!==11?"запись":v>=2&&v<=4&&(U<10||U>=20)?"записи":"записей"}const O=e.ref(null),oe=e.ref(0);let et=null;e.watch(()=>o.loading,(B,v)=>{v&&!B&&o.error===null&&(O.value=Date.now())}),e.onMounted(()=>{et=setInterval(()=>{oe.value+=1},3e4)}),e.onUnmounted(()=>{et!==null&&clearInterval(et)});const It=e.computed(()=>{if(oe.value,O.value===null)return null;const B=Math.floor((Date.now()-O.value)/1e3);if(B<5)return"обновлено только что";if(B<60)return`обновлено ${B} сек назад`;const v=Math.floor(B/60);if(v<60)return`обновлено ${v} мин назад`;const U=Math.floor(v/60);return U<24?`обновлено ${U} ч назад`:"обновлено более суток назад"}),na=e.computed(()=>{if(te.value!==null){const v=ue.value.find(U=>U.id===te.value);if(v)return v.name}return`Все ${(p.value?.label??i.slug).toLowerCase()}`});async function Fe(){d.start();try{await o.load()}catch{}finally{d.end()}}e.onMounted(async()=>{o.setSlug(i.slug),s.manifest===null&&await s.load().catch(()=>{}),me(),await Fe()}),e.watch(()=>i.slug,async(B,v)=>{B!==v&&(o.setSlug(B),te.value=null,me(),await Fe())});async function aa(B){await e.nextTick(),await o.setSort(B,o.sortDirection)}async function oa(B){await e.nextTick(),await o.setSort(o.sortKey,B)}function la(B){o.selection=B}async function ra(B){await o.setPage(B)}function he(B){const v=B?.id??B?.key;return typeof v=="string"||typeof v=="number"?v:null}function ia(B){l("row-click",B);const v=he(B);v!==null&&f.push({name:`admin.resource.${i.slug}.view`,params:{id:String(v)}})}function sa(B,v){v?.stopPropagation();const U=he(B);U!==null&&f.push({name:`admin.resource.${i.slug}.view`,params:{id:String(U)}})}function ca(B,v){v?.stopPropagation();const U=he(B);U!==null&&f.push({name:`admin.resource.${i.slug}.edit`,params:{id:String(U)}})}async function da(B,v){v?.stopPropagation();const U=he(B);if(U!==null&&window.confirm(r("admin.resource.delete_confirm","Удалить запись?")))try{d.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Z);await I().post(`/${i.slug}/delete`,{id:U}),await o.load().catch(()=>{}),G.success(r("admin.resource.deleted","Запись удалена."))}catch(I){typeof console<"u"&&console.error("[admin] delete failed:",I),G.error(r("admin.resource.delete_failed","Не удалось удалить запись."))}finally{d.end()}}function ua(B){return B.deleted_at!==null&&B.deleted_at!==void 0}async function ma(B,v){v?.stopPropagation();const U=he(B);if(U!==null)try{d.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Z);await I().post(`/${i.slug}/restore`,{id:U}),await o.load().catch(()=>{}),G.success(r("admin.resource.restored","Запись восстановлена."))}catch(I){typeof console<"u"&&console.error("[admin] restore failed:",I),G.error(r("admin.resource.restore_failed","Не удалось восстановить запись."))}finally{d.end()}}const pe=e.ref(null),ye=e.ref(null),Ae=e.ref("before");function fa(B,v){if(!V.value||!v.dataTransfer)return;if(!v.target?.closest('[data-row-drag-handle="true"]')){v.preventDefault();return}pe.value=B,v.dataTransfer.effectAllowed="move",v.dataTransfer.setData("text/plain",String(B))}function pa(B,v){if(!V.value||pe.value===null)return;v.preventDefault();const U=v.currentTarget;if(U){const I=U.getBoundingClientRect();Ae.value=v.clientY<I.top+I.height/2?"before":"after"}ye.value=B}function va(){pe.value=null,ye.value=null}async function ha(B,v){if(v.preventDefault(),!V.value||pe.value===null)return;const U=pe.value,I=Ae.value==="after"?B+1:B,L=I>U?I-1:I;if(pe.value=null,ye.value=null,U===L)return;const Y=[...o.items],[ze]=Y.splice(U,1);Y.splice(L,0,ze),o.items=Y;try{d.start();const{getAdminClient:Ce}=await Promise.resolve().then(()=>Z),tt=Ce(),Re=Y.map(Pe=>o.rowId(Pe));await tt.post(`/${i.slug}/reorder`,{ids:Re}),G.success(r("admin.resource.reorder_saved","Порядок сохранён."))}catch(Ce){typeof console<"u"&&console.error("[admin] reorder failed:",Ce),G.error(r("admin.resource.reorder_failed","Не удалось сохранить порядок.")),await o.load().catch(()=>{})}finally{d.end()}}async function ya(B,v){v?.stopPropagation();const U=he(B);if(U!==null&&window.confirm(r("admin.resource.force_delete_confirm","Удалить запись НАВСЕГДА? Действие необратимо.")))try{d.start();const{getAdminClient:I}=await Promise.resolve().then(()=>Z);await I().post(`/${i.slug}/forceDelete`,{id:U}),await o.load().catch(()=>{}),G.success(r("admin.resource.force_deleted","Запись удалена навсегда."))}catch(I){typeof console<"u"&&console.error("[admin] force-delete failed:",I),G.error(r("admin.resource.force_delete_failed","Не удалось удалить запись навсегда."))}finally{d.end()}}function Le(B){l("bulk-action",B,[...o.selection])}async function Tt(){await o.load().catch(()=>{})}return(B,v)=>(e.openBlock(),e.createElementBlock("section",Ii,[e.createElementVNode("header",Ti,[e.createElementVNode("div",Fi,[e.createElementVNode("div",Ai,[e.createElementVNode("h1",Li,e.toDisplayString(b.value),1),It.value?(e.openBlock(),e.createElementBlock("span",zi,[v[10]||(v[10]=e.createElementVNode("span",{class:"admin-page__live-dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(It.value),1)])):e.createCommentVNode("",!0)]),t.subtitle||P.value?(e.openBlock(),e.createElementBlock("div",Ri,[t.subtitle?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.subtitle),1)],64)):e.createCommentVNode("",!0),t.subtitle&&P.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" · ")],64)):e.createCommentVNode("",!0),P.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(P.value),1)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Pi,[e.renderSlot(B.$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(ft),size:14},null,8,["icon"])]),append:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(na.value)+" ",1)]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:Qe},{default:e.withCtx(()=>[e.createTextVNode(" Все "+e.toDisplayString((p.value?.label??t.slug).toLowerCase()),1)]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ue.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.id,onClick:I=>se(U)},{default:e.withCtx(()=>[e.createElementVNode("span",qi,[e.createElementVNode("span",ji,[e.createTextVNode(e.toDisplayString(U.name)+" ",1),U.is_default?(e.openBlock(),e.createElementBlock("span",Oi,"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=>A(U,I),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(_e),size:12},null,8,["icon"])],8,Wi)):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(Zt),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(c.UidMenuItem),{onClick:Tt},{default:e.withCtx(()=>[...v[11]||(v[11]=[e.createTextVNode("Обновить",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:v[0]||(v[0]=U=>k("csv"))},{default:e.withCtx(()=>[...v[12]||(v[12]=[e.createTextVNode("Экспорт CSV",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:v[1]||(v[1]=U=>k("json"))},{default:e.withCtx(()=>[...v[13]||(v[13]=[e.createTextVNode("Экспорт JSON",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:v[2]||(v[2]=U=>k("xlsx"))},{default:e.withCtx(()=>[...v[14]||(v[14]=[e.createTextVNode("Экспорт XLSX",-1)])]),_:1}),e.createVNode(e.unref(c.UidMenuItem),{onClick:v[3]||(v[3]=U=>k("pdf"))},{default:e.withCtx(()=>[...v[15]||(v[15]=[e.createTextVNode("Экспорт PDF",-1)])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,U=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:U.key,onClick:I=>h(U)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(U.label),1)]),_:2},1032,["onClick"]))),128)),e.renderSlot(B.$slots,"header-menu")]),_:3}),e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:w},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(on),size:14},null,8,["icon"])]),default:e.withCtx(()=>[v[16]||(v[16]=e.createTextVNode(" Import ",-1))]),_:1}),e.createElementVNode("input",{ref_key:"importInput",ref:m,type:"file",class:"admin-page__import-input",accept:".csv,.json,.xlsx,.xls,application/json,text/csv",onChange:C},null,544),u.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"primary",size:"md",onClick:v[4]||(v[4]=U=>B.$router.push({name:u.value}))},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Xe),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",Hi,[e.createElementVNode("span",Ki,[v[17]||(v[17]=e.createTextVNode(" Выбрано ",-1)),e.createElementVNode("b",null,e.toDisplayString(e.unref(o).selectedCount),1)]),v[23]||(v[23]=e.createElementVNode("span",{class:"admin-bulk-toolbar__divider"},null,-1)),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:v[5]||(v[5]=U=>Le("publish"))},{default:e.withCtx(()=>[...v[18]||(v[18]=[e.createTextVNode("Опубликовать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:v[6]||(v[6]=U=>Le("archive"))},{default:e.withCtx(()=>[...v[19]||(v[19]=[e.createTextVNode("Архивировать",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"ghost",onClick:v[7]||(v[7]=U=>Le("export"))},{default:e.withCtx(()=>[...v[20]||(v[20]=[e.createTextVNode("Экспорт",-1)])]),_:1}),e.createVNode(e.unref(c.UidButton),{size:"sm",variant:"danger",onClick:v[8]||(v[8]=U=>Le("delete"))},{default:e.withCtx(()=>[...v[21]||(v[21]=[e.createTextVNode("Удалить",-1)])]),_:1}),v[24]||(v[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(()=>[...v[22]||(v[22]=[e.createTextVNode(" Снять выделение ",-1)])]),_:1},8,["onClick"])])):W.value?(e.openBlock(),e.createBlock(Si,{key:1,search:e.unref(o).search,"search-placeholder":ae.value,filters:K.value,values:e.unref(o).filters,columns:fe.value,"group-by":M.value,"column-visibility":$.value,"onUpdate:search":F,onApplyFilter:x,onReset:J,onGroupBy:Q,onColumnsVisibility:ee,onSaveView:z},{extra:e.withCtx(()=>[e.renderSlot(B.$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",Gi,[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:Tt},{default:e.withCtx(()=>[...v[25]||(v[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:v[9]||(v[9]=U=>B.$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",Xi,[e.createVNode(e.unref(c.UidTable),{columns:D.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":aa,"onUpdate:sortDirection":oa,"onUpdate:selection":la,onRowClick:ia},e.createSlots({_:2},[e.renderList(D.value,U=>({name:U.key,fn:e.withCtx(I=>[U.key===Wt?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["admin-resource-index__row-drag",{"admin-resource-index__row-drag--drop-before":ye.value!==null&&ye.value===e.unref(o).items.indexOf(T(I)??{})&&Ae.value==="before","admin-resource-index__row-drag--drop-after":ye.value!==null&&ye.value===e.unref(o).items.indexOf(T(I)??{})&&Ae.value==="after","admin-resource-index__row-drag--ghost":pe.value!==null&&pe.value===e.unref(o).items.indexOf(T(I)??{})}]),"data-row-drag-handle":"true",draggable:V.value,title:"Перетащить",onDragstart:L=>fa(e.unref(o).items.indexOf(T(I)??{}),L),onDragover:L=>pa(e.unref(o).items.indexOf(T(I)??{}),L),onDragend:va,onDrop:L=>ha(e.unref(o).items.indexOf(T(I)??{}),L)},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Qt),size:14},null,8,["icon"])],42,Yi)):U.key===Ot?(e.openBlock(),e.createElementBlock("div",Zi,[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Просмотр",onClick:e.withModifiers(L=>sa(T(I)??{},L),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Aa),size:16},null,8,["icon"])],8,Ji),ua(T(I)??{})?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Восстановить",onClick:e.withModifiers(L=>ma(T(I)??{},L),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(vt),size:16},null,8,["icon"])],8,ts),e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action admin-resource-index__row-action--danger",title:"Удалить навсегда",onClick:e.withModifiers(L=>ya(T(I)??{},L),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(_e),size:16},null,8,["icon"])],8,ns)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button",class:"admin-resource-index__row-action",title:"Редактировать",onClick:e.withModifiers(L=>ca(T(I)??{},L),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(pt),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(L=>da(T(I)??{},L),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(_e),size:16},null,8,["icon"])],8,es)],64))])):e.renderSlot(B.$slots,`cell-${U.key}`,{key:2,row:T(I)},()=>[y(U.key)?(e.openBlock(),e.createBlock(Di,{key:0,"resource-slug":t.slug,"row-id":he(T(I)??{})??"",column:U.key,value:(T(I)??{})[U.key],editable:!0,onSaved:L=>{const Y=T(I);Y&&(Y[U.key]=L)}},{default:e.withCtx(()=>[e.createElementVNode("span",as,e.toDisplayString(_(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:_(U.key,I)},e.toDisplayString(_(U.key,I)),9,os))])])}))]),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",ls,[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":ra},null,8,["model-value","total","per-page"])])):e.createCommentVNode("",!0)]))}}),Ct=ie.defineStore("admin-resource-form",()=>{const t=e.ref(null),n=e.ref("create"),a=e.ref(null),r=e.ref({}),i=e.ref({}),l=e.ref({}),o=e.ref(!1),s=e.ref(!1),d=e.ref(!1),f=e.ref(null),p=e.computed(()=>n.value==="create"),b=e.computed(()=>n.value==="edit"),u=e.computed(()=>n.value==="view"),N=e.computed(()=>f.value!==null),h=e.computed(()=>{const _=r.value,T=i.value,R=new Set([...Object.keys(_),...Object.keys(T)]);for(const W of R)if(!Object.is(_[W],T[W]))if(typeof _[W]=="object"||typeof T[W]=="object"){if(JSON.stringify(_[W])!==JSON.stringify(T[W]))return!0}else return!0;return!1});function k(_,T){for(const R of Object.keys(_))delete _[R];Object.assign(_,T)}function m(){k(r.value,{}),k(i.value,{}),l.value={},o.value=!1,s.value=!1,d.value=!1,f.value=null,a.value=null}function w(_,T={}){t.value=_,n.value="create",a.value=null,k(r.value,T),k(i.value,T),l.value={},f.value=null}async function C(_,T,R="edit"){t.value=_,n.value=R,a.value=T,o.value=!0,f.value=null,l.value={};try{const K=await H().get(`/${_}/read`,{params:{id:T}});k(r.value,K.record),k(i.value,K.record)}catch(W){throw f.value=W instanceof Error?W:new Error(String(W)),W}finally{o.value=!1}}function E(_,T){if(r.value[_]=T,l.value[_]){const R={...l.value};delete R[_],l.value=R}}function V(_){l.value={..._}}function D(){l.value={}}async function y(){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(),T=n.value==="create"?`/${t.value}/create`:`/${t.value}/update`,R=n.value==="create"?r.value:{id:a.value,...r.value},W=await _.post(T,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(i.value,{...r.value}),n.value="edit",K}catch(_){throw _ instanceof De?l.value={..._.fields}:(_ instanceof de||_ instanceof Error)&&(f.value=_),_}finally{s.value=!1}}async function g(){if(!t.value||a.value===null)throw new Error("Nothing to delete");if(d.value)throw new Error("Already deleting");d.value=!0,f.value=null;try{await H().post(`/${t.value}/delete`,{id:a.value})}catch(_){throw _ instanceof Error&&(f.value=_),_}finally{d.value=!1}}return{slug:t,mode:n,recordId:a,state:r,initial:i,errors:l,loading:o,saving:s,deleting:d,error:f,isCreate:p,isEdit:b,isView:u,isDirty:h,hasError:N,reset:m,prepareCreate:w,load:C,setField:E,setErrors:V,clearErrors:D,save:y,destroy:g}}),Be=Je(),Ve=Je(),rs=Be.register,Et=Be.get,is=Be.has,ss=Be.list,cs=Ve.register,it=Ve.get,ds=Ve.has,us=Ve.list;function ms(){Be.clear(),Ve.clear()}function Mn(t){t.fields&&Be.registerBundle(t.fields),t.layouts&&Ve.registerBundle(t.layouts)}const $t=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}))}}),St=e.defineComponent({__name:"FieldRenderer",props:{node:{}},setup(t){const n=t,a=e.computed(()=>Et(n.node.type)),r=e.computed(()=>{const{type:i,attributes:l,...o}=n.node;return{...o,...l??{}}});return(i,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($t,{key:1,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),xe=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 o=it(n.node.type);return o?{kind:"layout",component:o}:{kind:"unknown"}}const l=it(n.node.type);return l?{kind:"layout",component:l}:Et(n.node.type)?{kind:"field"}:{kind:"unknown"}}),r=e.computed(()=>{const{type:l,kind:o,...s}=n.node;return s}),i=e.computed(()=>n.node);return(l,o)=>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(St,{key:1,node:i.value},null,8,["node"])):(e.openBlock(),e.createBlock($t,{key:2,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}),fs={class:"admin-page admin-resource-form"},ps={class:"admin-page__hd"},vs={class:"admin-page__title-wrap"},hs={class:"admin-page__title"},ys={class:"admin-page__actions"},gs={key:1,class:"admin-resource-form__loading"},ks={key:3,class:"admin-resource-form__savebar"},st=e.defineComponent({__name:"ResourceFormPage",props:{slug:{},id:{default:null},indexRouteName:{default:null}},setup(t){const n=t,a=Ct(),r=ce(),i=X.useRouter(),l=ne.provideFormState(a.state,a.errors);e.watch(()=>a.errors,k=>{l.setErrors({...k})});const o=e.computed(()=>r.getResource(n.slug)),s=e.computed(()=>o.value?.fields??[]),d=e.computed(()=>a.isCreate?`Создать: ${o.value?.label??n.slug}`:`${o.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&&i.push({name:`admin.resource.${n.slug}.edit`,params:{id:k}}).catch(()=>{})}catch{}}const u=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);async function N(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||i.push({name:u.value}).catch(()=>{}))}function h(){a.isDirty&&!confirm("Несохранённые изменения будут потеряны. Продолжить?")||i.push({name:u.value}).catch(()=>{})}return(k,m)=>(e.openBlock(),e.createElementBlock("section",fs,[e.createElementVNode("header",ps,[e.createElementVNode("div",vs,[e.createElementVNode("a",{class:"admin-resource-form__back",onClick:h},"← Назад"),e.createElementVNode("h1",hs,e.toDisplayString(d.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",ys,[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: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",gs,[(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,C)=>(e.openBlock(),e.createBlock(xe,{key:C,node:w},null,8,["node"]))),128))]),_:1})),e.unref(a).isDirty&&!e.unref(a).loading?(e.openBlock(),e.createElementBlock("div",ks,[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:b},{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createTextVNode(" Сохранить ",-1)])]),_:1},8,["loading","disabled"])])):e.createCommentVNode("",!0)]))}}),Ne=Je(),_s=Ne.register,ct=Ne.get,bs=Ne.has,ws=Ne.list,Bs=Ne.clear,Dn=Ne.registerBundle,In=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}))}}),Vs={key:1,class:"admin-infolist-rows"},xs={key:2,class:"admin-infolist-cols"},Ns={key:3,class:"admin-infolist-section"},Cs={key:0,class:"admin-infolist-section__hd"},Es={key:0,class:"admin-infolist-section__title"},$s={key:1,class:"admin-infolist-section__description"},Ss={class:"admin-infolist-section__body"},Us={key:4,class:"admin-infolist-tabs"},Ms={class:"admin-infolist-tabs__list",role:"tablist"},Ds={class:"admin-infolist-tabs__panel"},Tn=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=ct(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=ct(n.node.type);return p?{kind:"entry",component:p}:{kind:"unknown"}}),i=e.computed(()=>{const{type:p,kind:b,items:u,attributes:N,...h}=n.node,k=N??{},{preset:m,format:w,currency:C,decimals:E,trueLabel:V,falseLabel:D,...y}=k,g={};return w!==void 0&&(g.format=w),C!==void 0&&(g.currency=C),E!==void 0&&(g.decimals=E),V!==void 0&&(g.trueLabel=V),D!==void 0&&(g.falseLabel=D),{...h,...y,preset:m,meta:g}}),l=e.computed(()=>n.node.items??[]),o=e.computed(()=>n.node.title??null),s=e.computed(()=>n.node.description??null),d=e.computed(()=>{const p=n.node.active;return typeof p=="number"?p:0}),f=e.computed(()=>n.node.items??[]);return(p,b)=>{const u=e.resolveComponent("InfolistRenderer",!0);return r.value.kind==="entry"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value.component),e.normalizeProps(e.mergeProps({key:0},i.value)),null,16)):r.value.kind==="layout"&&r.value.layoutType==="rows"?(e.openBlock(),e.createElementBlock("div",Vs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(N,h)=>(e.openBlock(),e.createBlock(u,{key:h,node:N},null,8,["node"]))),128))])):r.value.kind==="layout"&&r.value.layoutType==="columns"?(e.openBlock(),e.createElementBlock("div",xs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.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/l.value.length))}`})},[e.createVNode(u,{node:N},null,8,["node"])],4))),128))])):r.value.kind==="layout"&&(r.value.layoutType==="section"||r.value.layoutType==="block")?(e.openBlock(),e.createElementBlock("section",Ns,[o.value||s.value?(e.openBlock(),e.createElementBlock("header",Cs,[o.value?(e.openBlock(),e.createElementBlock("h3",Es,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("p",$s,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ss,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(N,h)=>(e.openBlock(),e.createBlock(u,{key:h,node:N},null,8,["node"]))),128))])])):r.value.kind==="layout"&&r.value.layoutType==="tabs"?(e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("ul",Ms,[(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===d.value}])},e.toDisplayString(N.label),3))),128))]),e.createElementVNode("div",Ds,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value[d.value]?.items??[],(N,h)=>(e.openBlock(),e.createBlock(u,{key:h,node:N},null,8,["node"]))),128))])])):(e.openBlock(),e.createBlock(In,{key:5,type:t.node.type,name:t.node.name},null,8,["type","name"]))}}}),Ut=Symbol("admin.infolist-record");function Fn(t){e.provide(Ut,t)}function Is(){const t=e.inject(Ut);if(!t)throw new Error("useRecord() called outside of provideRecord() scope");return t}function Te(){return e.inject(Ut,null)}const Ts={class:"admin-audit-timeline"},Fs={key:0,class:"admin-audit-timeline__loading"},As={key:1,class:"admin-audit-timeline__error"},Ls={key:2,class:"admin-audit-timeline__empty"},zs={key:3,class:"admin-audit-timeline__list"},Rs={class:"admin-audit-timeline__icon","aria-hidden":"true"},Ps={class:"admin-audit-timeline__body"},qs={class:"admin-audit-timeline__row"},js={class:"admin-audit-timeline__actor"},Os={class:"admin-audit-timeline__verb"},Ws={class:"admin-audit-timeline__when"},Hs={key:0,class:"admin-audit-timeline__detail"},Ks=e.defineComponent({__name:"AuditTimeline",props:{subjectType:{},subjectId:{}},setup(t){const n=t,a=e.ref([]),r=e.ref(!1),i=e.ref(null);async function l(){if(!n.subjectType||n.subjectType===""){a.value=[],r.value=!1,i.value=null;return}r.value=!0,i.value=null;try{const{getAdminClient:u}=await Promise.resolve().then(()=>Z),h=await u().get(`/audit/timeline?subject_type=${encodeURIComponent(n.subjectType)}&subject_id=${encodeURIComponent(String(n.subjectId))}`);a.value=h.data??[]}catch(u){i.value=u instanceof Error?u:new Error(String(u)),a.value=[]}finally{r.value=!1}}e.onMounted(l),e.watch(()=>[n.subjectType,n.subjectId],l);const o=e.computed(()=>a.value.length>0);function s(u){return u==="created"?Xe:u==="deleted"||u==="destroyed"?_e:u.includes("tag")||u.includes("label")?an:Vo}function d(u){return{created:"создал",updated:"отредактировал",deleted:"удалил",destroyed:"удалил",restored:"восстановил",published:"опубликовал"}[u]??u}function f(u){const N=new Date(u).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(u).toLocaleDateString("ru-RU")}function p(u){if(u.summary)return u.summary;if(!u.diff||u.diff.length===0)return"";if(u.diff.length===1){const h=u.diff[0];return`Поле ${h.field}: ${b(h.before)} → ${b(h.after)}`}const N=u.diff.slice(0,4).map(h=>h.field).join(", ");return`Изменены ${u.diff.length} поля: ${N}`}function b(u){return u==null?"∅":typeof u=="string"?u.length>20?`${u.slice(0,20)}…`:u:String(u)}return(u,N)=>(e.openBlock(),e.createElementBlock("section",Ts,[N[0]||(N[0]=e.createElementVNode("h2",{class:"admin-audit-timeline__title"},"История изменений",-1)),r.value?(e.openBlock(),e.createElementBlock("div",Fs,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,h=>e.createVNode(e.unref(c.UidSkeleton),{key:h,height:"48px"})),64))])):i.value?(e.openBlock(),e.createElementBlock("div",As," Не удалось загрузить историю: "+e.toDisplayString(i.value.message),1)):o.value?(e.openBlock(),e.createElementBlock("ol",zs,[(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",Rs,[e.createVNode(e.unref(c.UidIcon),{icon:s(h.event),size:14},null,8,["icon"])]),e.createElementVNode("div",Ps,[e.createElementVNode("div",qs,[e.createVNode(e.unref(c.UidAvatar),{name:h.actor?.name??"?",alt:h.actor?.name??"Неизвестный",size:"xs"},null,8,["name","alt"]),e.createElementVNode("span",js,e.toDisplayString(h.actor?.name??"Система"),1),e.createElementVNode("span",Os,e.toDisplayString(d(h.event)),1),e.createElementVNode("span",Ws,e.toDisplayString(f(h.created_at)),1)]),p(h)?(e.openBlock(),e.createElementBlock("div",Hs,e.toDisplayString(p(h)),1)):e.createCommentVNode("",!0)])]))),128))])):(e.openBlock(),e.createElementBlock("div",Ls," Записей в истории пока нет. "))]))}}),Gs={class:"admin-page admin-resource-view"},Xs={class:"admin-resource-view__hd"},Ys={class:"admin-resource-view__hd-left"},Zs={class:"admin-page__title"},Js={class:"admin-resource-view__meta"},Qs=["data-variant","data-status"],ec={class:"admin-resource-view__uid"},tc={class:"admin-resource-view__hd-right"},nc={key:1,class:"admin-resource-view__loading"},ac={key:2,class:"admin-resource-view__grid"},oc={class:"admin-resource-view__main"},lc={class:"admin-resource-view__aside"},rc={class:"admin-resource-view__metrics"},ic={class:"admin-resource-view__metric-label"},sc={class:"admin-resource-view__metric-value"},An=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=Ct(),r=ce(),i=X.useRouter();Fn(a.state);const l=e.computed(()=>r.getResource(n.slug)),o=e.computed(()=>l.value?.infolist??l.value?.fields??[]),s=e.computed(()=>n.auditSubjectType!==null?n.auditSubjectType:l.value?.subject_type??null),d=e.computed(()=>{const D=a.state,y=[],g=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"})},_=g(D.created_at);_&&y.push({label:"Создано",value:_});const T=g(D.updated_at);T&&T!==_&&y.push({label:"Обновлено",value:T});const R=typeof D.created_by_name=="string"&&D.created_by_name!==""?D.created_by_name:typeof D.author=="string"?D.author:null;return R&&y.push({label:"Автор",value:R}),y}),f=e.computed(()=>{const D=a.state,y=D.title??D.name??D.label;return typeof y=="string"&&y.length>0?y:`${l.value?.label??n.slug}: запись #${n.id}`}),p=e.computed(()=>l.value?.label??n.slug),b=e.computed(()=>`${n.uidPrefix}${n.id}`),u=e.computed(()=>{const y=a.state[n.statusField];return typeof y=="string"&&y.length>0?y: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(D){return N[D.toLowerCase()]??"neutral"}const k=e.computed(()=>(l.value?.actions??[]).map(y=>({key:String(y.key??y.name??""),label:String(y.label??y.name??y.key??""),confirm:typeof y.confirm=="string"?y.confirm:void 0})).filter(y=>y.key!==""&&y.label!==""));async function m(D){if(!(D.confirm&&!window.confirm(D.confirm)))try{const{getAdminClient:y}=await Promise.resolve().then(()=>Z);await y().post(`/${n.slug}/action/${D.key}`,{ids:[n.id]}),await a.load(n.slug,n.id,"view").catch(()=>{})}catch(y){typeof console<"u"&&console.error("[admin] action failed:",y)}}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([D,y])=>{await a.load(D,y,"view").catch(()=>{})});const w=e.computed(()=>n.indexRouteName??`admin.resource.${n.slug}.index`);function C(){i.push({name:w.value}).catch(()=>{i.push(`/r/${n.slug}`)})}function E(){if(!n.editRouteName){i.push(`/r/${n.slug}/${n.id}/edit`).catch(()=>{});return}i.push({name:n.editRouteName,params:{id:n.id}}).catch(()=>{})}async function V(){confirm("Удалить запись?")&&(await a.destroy().catch(()=>{}),a.hasError||i.push({name:w.value}).catch(()=>{}))}return(D,y)=>(e.openBlock(),e.createElementBlock("section",Gs,[e.createElementVNode("header",Xs,[e.createElementVNode("div",Ys,[e.createElementVNode("button",{type:"button",class:"admin-resource-view__back",onClick:C},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(Ba),size:14},null,8,["icon"]),e.createTextVNode(" "+e.toDisplayString(p.value),1)]),e.createElementVNode("h1",Zs,e.toDisplayString(f.value),1),e.createElementVNode("div",Js,[u.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"admin-status-badge","data-variant":h(u.value),"data-status":u.value},[y[0]||(y[0]=e.createElementVNode("span",{class:"admin-status-badge__dot","aria-hidden":"true"},null,-1)),e.createTextVNode(" "+e.toDisplayString(u.value),1)],8,Qs)):e.createCommentVNode("",!0),e.createElementVNode("span",ec,e.toDisplayString(b.value),1)])]),e.createElementVNode("div",tc,[e.createVNode(e.unref(c.UidButton),{variant:"secondary",size:"md",onClick:E},{prepend:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(pt),size:14},null,8,["icon"])]),default:e.withCtx(()=>[y[1]||(y[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(Zt),size:16},null,8,["icon"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,g=>(e.openBlock(),e.createBlock(e.unref(c.UidMenuItem),{key:g.key,onClick:_=>m(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.label),1)]),_:2},1032,["onClick"]))),128)),e.createVNode(e.unref(c.UidMenuItem),{variant:"danger",onClick:V},{icon:e.withCtx(()=>[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(_e),size:14},null,8,["icon"])]),default:e.withCtx(()=>[y[2]||(y[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",nc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(8,g=>e.createVNode(e.unref(c.UidSkeleton),{key:g,height:"24px"})),64))])):(e.openBlock(),e.createElementBlock("div",ac,[e.createElementVNode("div",oc,[e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[y[3]||(y[3]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Основные данные",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(g,_)=>(e.openBlock(),e.createBlock(Tn,{key:_,node:g},null,8,["node"]))),128))]),_:1}),e.createVNode(e.unref(c.UidCard),{padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[e.createVNode(Ks,{"subject-type":s.value,"subject-id":t.id},null,8,["subject-type","subject-id"])]),_:1})]),e.createElementVNode("aside",lc,[d.value.length>0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-resource-view__card"},{default:e.withCtx(()=>[y[4]||(y[4]=e.createElementVNode("h2",{class:"admin-resource-view__card-title"},"Метрики",-1)),e.createElementVNode("dl",rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.label},[e.createElementVNode("dt",ic,e.toDisplayString(g.label),1),e.createElementVNode("dd",sc,e.toDisplayString(g.value),1)],64))),128))])]),_:1})):e.createCommentVNode("",!0),e.renderSlot(D.$slots,"sidebar",{record:e.unref(a).state,resource:l.value})])]))]))}}),cc={class:"admin-page admin-profile"},dc={class:"admin-page__hd"},uc={class:"admin-page__title-wrap"},mc={class:"admin-page__title"},fc={class:"admin-page__count"},pc={class:"admin-profile__layout"},vc={class:"admin-profile__nav","aria-label":"Profile sections"},hc=["onClick"],yc=["data-icon"],gc={class:"admin-profile__content"},kc={class:"admin-profile__hero"},_c={class:"admin-profile__hero-text"},bc={class:"admin-profile__hero-name"},wc={class:"admin-profile__hero-meta"},Bc={class:"admin-profile__form"},Vc={class:"admin-profile__card-ft"},xc={class:"admin-profile__card-hd"},Nc={key:0,class:"admin-profile__hint"},Cc={key:1,class:"admin-profile__hint"},Ec={class:"admin-profile__card-ft"},$c={class:"admin-profile__hint"},Ln=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,i=re(),l=Ye(),o=Ue(),s=[{id:"general",label:"Основное",icon:"user"},{id:"security",label:"Безопасность",icon:"shield"},{id:"tokens",label:"API токены",icon:"key"},{id:"sessions",label:"Сессии",icon:"monitor"}],d=e.ref(a.section);function f(C){d.value=C,r("update:section",C)}const p=e.ref({name:i.user?.name??"",email:i.user?.email??"",locale:o.current,theme:l.current}),b=e.computed(()=>o.available.map(C=>({value:C,label:C.toUpperCase()}))),u=e.computed(()=>l.available.map(C=>({value:C,label:C==="dark"?"Тёмная":C==="light"?"Светлая":C})));e.watch(()=>p.value.locale,(C,E)=>{C===E||!C||o.setLocale(C).catch(()=>{})}),e.watch(()=>p.value.theme,(C,E)=>{C===E||!C||l.setTheme(C).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(()=>!!i.user?.twoFactorEnabled);return(C,E)=>(e.openBlock(),e.createElementBlock("section",cc,[e.createElementVNode("header",dc,[e.createElementVNode("div",uc,[e.createElementVNode("h1",mc,e.toDisplayString(t.title),1),e.createElementVNode("div",fc,e.toDisplayString(t.subtitle),1)])]),e.createElementVNode("div",pc,[e.createElementVNode("nav",vc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,V=>e.createElementVNode("button",{key:V.id,type:"button",class:e.normalizeClass(["admin-profile__nav-item",{"admin-profile__nav-item--active":d.value===V.id}]),onClick:D=>f(V.id)},[e.createElementVNode("span",{class:"admin-profile__nav-icon","data-icon":V.icon},null,8,yc),e.createElementVNode("span",null,e.toDisplayString(V.label),1)],10,hc)),64))]),e.createElementVNode("div",gc,[d.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",kc,[e.createVNode(e.unref(c.UidAvatar),{src:e.unref(i).user?.avatar??void 0,name:e.unref(i).user?.name??"?",size:"lg"},null,8,["src","name"]),e.createElementVNode("div",_c,[e.createElementVNode("div",bc,e.toDisplayString(e.unref(i).user?.name??"—"),1),e.createElementVNode("div",wc,e.toDisplayString(e.unref(i).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:h},{default:e.withCtx(()=>[...E[4]||(E[4]=[e.createTextVNode(" Заменить ",-1)])]),_:1})]),e.createElementVNode("div",Bc,[e.createVNode(e.unref(c.UidInput),{modelValue:p.value.name,"onUpdate:modelValue":E[0]||(E[0]=V=>p.value.name=V),label:"Имя",name:"name"},null,8,["modelValue"]),e.createVNode(e.unref(c.UidInput),{modelValue:p.value.email,"onUpdate:modelValue":E[1]||(E[1]=V=>p.value.email=V),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]=V=>p.value.locale=V),options:b.value,label:"Язык"},null,8,["modelValue","options"]),e.createVNode(e.unref(c.UidSelect),{modelValue:p.value.theme,"onUpdate:modelValue":E[3]||(E[3]=V=>p.value.theme=V),options:u.value,label:"Тема"},null,8,["modelValue","options"])]),e.createElementVNode("footer",Vc,[e.createVNode(e.unref(c.UidButton),{variant:"primary",onClick:N},{default:e.withCtx(()=>[...E[6]||(E[6]=[e.createTextVNode("Сохранить",-1)])]),_:1})])]),_:1})):d.value==="security"?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("header",xc,[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",Nc," 2FA включена. У вас остались recovery-коды на случай потери устройства. ")):(e.openBlock(),e.createElementBlock("p",Cc," Включите 2FA для дополнительной защиты аккаунта. ")),e.createElementVNode("footer",Ec,[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(C.$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(C.$slots,d.value,{key:2,section:d.value},()=>[e.createVNode(e.unref(c.UidCard),{padding:"md"},{default:e.withCtx(()=>[e.createElementVNode("p",$c," Section «"+e.toDisplayString(d.value)+"» не реализована библиотекой — host-проект подключает её через slot "+e.toDisplayString(d.value)+". ",1)]),_:1})])])])]))}}),dt=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(i,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"]))}}),Sc={key:0,class:"admin-widget__hd"},Uc={key:0,class:"admin-widget__title"},Mc={key:1,class:"admin-widget__desc"},Dc=["viewBox","height","aria-label"],Ic=["x","y","width","height","fill","data-label","data-value"],Mt=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(i=>i.value))),r=e.computed(()=>{const l=100/Math.max(1,n.data.length);return n.data.map((o,s)=>({label:o.label,value:o.value,x:s*l+l*.1,width:l*.8,heightPct:o.value/a.value*100}))});return(i,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",Sc,[t.title?(e.openBlock(),e.createElementBlock("h3",Uc,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",Mc,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,(o,s)=>(e.openBlock(),e.createElementBlock("rect",{key:s,x:o.x,y:t.height-o.heightPct/100*t.height,width:o.width,height:o.heightPct/100*t.height,fill:t.accent,rx:"1","data-label":o.label,"data-value":o.value},[e.createElementVNode("title",null,e.toDisplayString(o.label)+": "+e.toDisplayString(o.value),1)],8,Ic))),128))],8,Dc))]),_:1}))}}),Tc={key:0,class:"admin-widget__hd"},Fc={class:"admin-widget__title"},Ac={class:"admin-donut-widget__row"},Lc=["aria-label"],zc=["d","fill"],Rc={class:"admin-donut-widget__legend"},Pc={class:"admin-donut-widget__label"},qc={class:"admin-donut-widget__value"},Dt=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,o)=>l+o.value,0)||1),i=e.computed(()=>{let l=0;return n.data.map((o,s)=>{const d=l/r.value*2*Math.PI;l+=o.value;const f=l/r.value*2*Math.PI,p=50,b=60,u=60,N=b+p*Math.cos(d-Math.PI/2),h=u+p*Math.sin(d-Math.PI/2),k=b+p*Math.cos(f-Math.PI/2),m=u+p*Math.sin(f-Math.PI/2),w=f-d>Math.PI?1:0,C=n.data.length===1?`M ${b-p} ${u} a ${p} ${p} 0 1 0 ${p*2} 0 a ${p} ${p} 0 1 0 ${-p*2} 0`:`M ${b} ${u} L ${N} ${h} A ${p} ${p} 0 ${w} 1 ${k} ${m} Z`;return{...o,path:C,color:o.color??a[s%a.length],pct:(o.value/r.value*100).toFixed(1)}})});return(l,o)=>(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",Tc,[e.createElementVNode("h3",Fc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ac,[(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(i.value,(s,d)=>(e.openBlock(),e.createElementBlock("path",{key:d,d:s.path,fill:s.color},[e.createElementVNode("title",null,e.toDisplayString(s.label)+": "+e.toDisplayString(s.value)+" ("+e.toDisplayString(s.pct)+"%)",1)],8,zc))),128)),o[0]||(o[0]=e.createElementVNode("circle",{cx:"60",cy:"60",r:"30",fill:"var(--uid-surface-raised)"},null,-1))],8,Lc)),e.createElementVNode("ul",Rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(s,d)=>(e.openBlock(),e.createElementBlock("li",{key:d},[e.createElementVNode("span",{class:"admin-donut-widget__dot",style:e.normalizeStyle({background:s.color})},null,4),e.createElementVNode("span",Pc,e.toDisplayString(s.label),1),e.createElementVNode("span",qc,e.toDisplayString(s.pct)+"%",1)]))),128))])])]),_:1}))}}),jc={key:0,class:"admin-widget__hd"},Oc={class:"admin-widget__title"},We=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",jc,[e.createElementVNode("h3",Oc,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}))}}),Wc={key:0,class:"admin-widget__hd"},Hc={class:"admin-widget__title"},zn=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",Wc,[e.createElementVNode("h3",Hc,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}))}}),Kc={key:0,class:"admin-widget__hd"},Gc={class:"admin-widget__title"},Xc={style:{display:"flex","justify-content":"center"}},Rn=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(i,l)=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{padding:"md",class:"admin-widget"},{default:e.withCtx(()=>[t.title?(e.openBlock(),e.createElementBlock("header",Kc,[e.createElementVNode("h3",Gc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Xc,[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}))}}),Yc={key:0,class:"admin-widget__hd"},Zc={class:"admin-widget__title"},Jc={class:"admin-markdown-widget"},Pn=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",Yc,[e.createElementVNode("h3",Zc,e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Jc,e.toDisplayString(t.content),1)]),_:1}))}}),Qc=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"],i=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((d,f)=>({label:n.data?.labels?.[f]??String(f+1),value:d})):[]}),l=e.computed(()=>n.data?.datasets?.[0]?.color),o=e.computed(()=>{const s=n.data?.datasets?.[0];return s?s.data.map((d,f)=>({label:n.data?.labels?.[f]??String(f+1),value:d,color:s.color??r[f%r.length]})):[]});return(s,d)=>a.value==="doughnut"||a.value==="pie"?(e.openBlock(),e.createBlock(Dt,{key:0,title:t.title,data:o.value},null,8,["title","data"])):a.value==="bar"||a.value==="line"||a.value==="area"?(e.openBlock(),e.createBlock(Mt,{key:1,title:t.title,data:i.value,accent:l.value},null,8,["title","data","accent"])):(e.openBlock(),e.createBlock(Vt,{key:2,type:`chart:${a.value}`},null,8,["type"]))}});function qn(){_n({stat:dt,stats:dt,chart:Qc,"bar-chart":Mt,"donut-chart":Dt,"recent-table":We,recent_list:We,"recent-list":We,heatmap:zn,gauge:Rn,markdown:Pn})}function jn(t){return t.success===!0}function ed(t){return t.success===!1}function On(t){const n=ga.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(i=>{const l=td("XSRF-TOKEN");return l&&i.headers.set("X-XSRF-TOKEN",decodeURIComponent(l)),i}),n.interceptors.response.use(i=>{const l=i.data;if(l&&typeof l=="object"&&"success"in l){if(jn(l))return i.data=l.payload,i;throw rt(i.status,l.payload)}return i},i=>{if(i.response){const l=i.response.status,o=i.response.data?.payload??{errorKey:"unknown",message:i.message},s=rt(l,o);return s instanceof _t&&t.onUnauthenticated?.(),Promise.reject(s)}return Promise.reject(new Ie(i.message))});const a=(i,l,o)=>n[i](l,o).then(s=>s.data),r=(i,l,o,s)=>n[i](l,o,s).then(d=>d.data);return{raw:n,get:(i,l)=>a("get",i,l),delete:(i,l)=>a("delete",i,l),post:(i,l,o)=>r("post",i,l,o),put:(i,l,o)=>r("put",i,l,o),patch:(i,l,o)=>r("patch",i,l,o),setLocale:i=>{n.defaults.headers.common["X-Admin-Locale"]=i}}}function td(t){if(typeof document>"u")return null;const n=document.cookie.match(new RegExp("(^|; )"+nd(t)+"=([^;]*)"));return n?n[2]:null}function nd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Oe(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function ad(t,n){const a=t.permissions?.[n];return typeof a=="string"&&a.length>0?[a]:[]}function od(t){return Array.isArray(t.permission)?t.permission:typeof t.permission=="string"&&t.permission.length>0?[t.permission]:[]}function ld(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:Oe(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:Oe(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:Oe(t,"update")},props:i=>({slug:a,id:i.params.id})},{path:`${r}/:id`,name:`admin.resource.${a}.view`,component:n.resourceView,meta:{requiresAuth:!0,kind:"resource",slug:a,title:t.label,permissions:Oe(t,"view")},props:i=>({slug:a,id:i.params.id})}]}function rd(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:od(t)}}}function id(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:ad(t,"view")}}}function sd(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 Wn(t,n){if(t===null)return[];const a=[];for(const r of t.resources)a.push(...ld(r,n));for(const r of t.screens)a.push(rd(r,n));for(const r of t.settings)a.push(id(r,n));for(const r of t.dashboards){const i=sd(r,n);i&&a.push(i)}return a}function Hn(t={}){const n=t.loginRouteName??"admin.login",a=t.forbiddenRouteName??"admin.forbidden",r=t.redirectQueryKey??"redirect";return i=>{if(i.name===n)return!0;const l=re();if(i.meta?.requiresAuth===!0&&!l.isAuthenticated)return{name:n,query:{[r]:i.fullPath}};if(l.isChallengePending)return{name:n,query:{[r]:i.fullPath}};const s=i.meta?.permissions;return Array.isArray(s)&&s.length>0&&!l.hasAnyPermission(s)?{name:a}:!0}}function Kn(t={}){const n=t.template,a=t.brand??"",r=t.fallback??"";return i=>{if(typeof document>"u")return;const l=i.meta?.title??r;let o;n?o=n.replace("{title}",l).replace("{brand}",a):l&&a?o=`${l} · ${a}`:o=l||a,document.title=o}}const cd=["admin.resource.","admin.screen.","admin.settings.","admin.dashboard."];function dd(t){return typeof t!="string"?!1:cd.some(n=>t.startsWith(n))}function Gn(t){const n=t.base??"/admin",a=t.history??X.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 i={path:"/:pathMatch(.*)*",name:"admin.notFound",component:t.components.notFound,meta:{kind:"system",title:"404"}},l=X.createRouter({history:a,routes:[...r,...t.extraRoutes??[],i]});return l.beforeEach(Hn(t.authGuard)),l.afterEach(Kn(t.titleGuard)),l.replaceManifestRoutes=o=>{const s=l.getRoutes();for(const f of s)dd(f.name)&&l.removeRoute(f.name);l.hasRoute("admin.notFound")&&l.removeRoute("admin.notFound");const d=Wn(o,t.components);for(const f of d)l.addRoute(f);l.addRoute(i)},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)??""),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,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:i.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"]))}}),Ee=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)??""),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:i.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"]))}}),He=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 o=a.getField(n.name);return o==null||o===""?null:typeof o=="number"?o:Number(o)}),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:i.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"]))}}),ve=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 o=a.getField(n.name);return o==null||o===""?null:o}),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:i.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"]))}}),$e=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)),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:i.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"]))}}),ge=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 o=a.getField(n.name);return o==null||o===""?null:String(o)}),i=e.computed(()=>a.errors[n.name]?.[0]);function l(o){a.setField(n.name,o)}return(o,s)=>(e.openBlock(),e.createBlock(e.unref(c.UidFormField),{label:t.label??void 0,hint:t.help??void 0,error:i.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"]))}}),ud={key:0,class:"admin-field__label"},md={key:0,class:"admin-field__required","aria-hidden":"true"},fd={class:"admin-tags__chip-text"},pd=["onClick"],vd=["value","placeholder","disabled"],hd={key:0,class:"admin-tags__dropdown",role:"listbox"},yd={class:"admin-tags__group-label"},gd=["aria-selected","onMousedown","onMouseenter"],kd=["aria-selected","onMousedown","onMouseenter"],_d={key:1,class:"admin-field__error"},bd={key:2,class:"admin-field__help"},wd=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 y=a.getField(n.name);return Array.isArray(y)?y.map(g=>String(g)):typeof y=="string"&&y!==""?y.split(",").map(g=>g.trim()).filter(Boolean):[]}),i=e.computed(()=>a.errors[n.name]?.[0]),l=e.ref(""),o=e.ref(!1),s=e.ref(null),d=e.ref(null);function f(y){const g=new Set,_=[];for(const T of y){const R=T.trim();if(!(R===""||g.has(R))&&(g.add(R),_.push(R),n.maxItems>0&&_.length>=n.maxItems))break}a.setField(n.name,_)}function p(y){const g=y.trim();if(g!==""){if(r.value.includes(g)){l.value="";return}f([...r.value,g]),l.value=""}}function b(y){const g=[...r.value];g.splice(y,1),f(g)}function u(y){y.key==="Enter"?(y.preventDefault(),h.value>=0&&w.value[h.value]?p(w.value[h.value]):l.value.trim()!==""&&p(l.value)):y.key==="Backspace"&&l.value===""&&r.value.length>0?b(r.value.length-1):y.key==="ArrowDown"?(y.preventDefault(),h.value=Math.min(h.value+1,w.value.length-1)):y.key==="ArrowUp"?(y.preventDefault(),h.value=Math.max(h.value-1,-1)):y.key==="Escape"&&(o.value=!1,s.value?.blur())}function N(y){const g=y.target.value;if(n.separator&&g.includes(n.separator)){const _=g.split(n.separator);_.slice(0,-1).map(R=>R.trim()).filter(Boolean).forEach(p),l.value=_[_.length-1]??"";return}l.value=g}const h=e.ref(-1),k=e.computed(()=>Array.isArray(n.suggestionsByGroup)&&n.suggestionsByGroup.length>0),m=e.computed(()=>{const y=l.value.trim().toLowerCase(),g=new Set(r.value);return k.value?n.suggestionsByGroup.map(_=>({label:_.label,items:_.items.filter(T=>!g.has(T)&&(y===""||T.toLowerCase().includes(y)))})).filter(_=>_.items.length>0):[]}),w=e.computed(()=>{if(k.value)return m.value.flatMap(_=>_.items);const y=l.value.trim().toLowerCase(),g=new Set(r.value);return n.suggestions.filter(_=>!g.has(_)).filter(_=>y===""||_.toLowerCase().includes(y)).slice(0,200)});function C(y){return y===h.value}e.watch(l,()=>{h.value=-1});function E(){n.disabled||s.value?.focus()}function V(y){p(y),e.nextTick(()=>s.value?.focus())}function D(){window.setTimeout(()=>{o.value=!1,l.value.trim()!==""&&p(l.value)},120)}return(y,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":i.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",{ref_key:"containerRef",ref:d,class:e.normalizeClass(["admin-field__control admin-tags",{"admin-tags--focused":o.value,"admin-tags--disabled":t.disabled}]),onClick:E},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(_,T)=>(e.openBlock(),e.createElementBlock("span",{key:`${_}-${T}`,class:"admin-tags__chip"},[e.createElementVNode("span",fd,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(T),["stop"])},[e.createVNode(e.unref(c.UidIcon),{icon:e.unref(be),size:10},null,8,["icon"])],8,pd))]))),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:N,onKeydown:u,onFocus:g[0]||(g[0]=_=>o.value=!0),onBlur:D},null,40,vd),o.value&&w.value.length>0?(e.openBlock(),e.createElementBlock("div",hd,[k.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(_,T)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:`g-${T}-${_.label}`},[e.createElementVNode("div",yd,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":C(w.value.indexOf(R))}]),"aria-selected":C(w.value.indexOf(R)),onMousedown:e.withModifiers(W=>V(R),["prevent"]),onMouseenter:W=>h.value=w.value.indexOf(R)},e.toDisplayString(R),43,gd))),128))],64))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(w.value,(_,T)=>(e.openBlock(),e.createElementBlock("button",{key:_,type:"button",role:"option",class:e.normalizeClass(["admin-tags__option",{"admin-tags__option--active":T===h.value}]),"aria-selected":T===h.value,onMousedown:e.withModifiers(R=>V(_),["prevent"]),onMouseenter:R=>h.value=T},e.toDisplayString(_),43,kd))),128))])):e.createCommentVNode("",!0)],2),i.value?(e.openBlock(),e.createElementBlock("p",_d,e.toDisplayString(i.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",bd,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),Bd={key:0,class:"admin-field__label"},Vd={key:0,class:"admin-field__required","aria-hidden":"true"},xd={class:"admin-translatable"},Nd={class:"admin-translatable__tabs",role:"tablist"},Cd=["aria-selected","onClick"],Ed={key:0,class:"admin-translatable__dot","aria-hidden":"true"},$d={class:"admin-translatable__panel"},Sd=["value","placeholder","rows","disabled"],Ud={key:1,class:"admin-field__error"},Md={key:2,class:"admin-field__help"},Ht=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=Ue(),i=e.computed(()=>n.locales??r.available??[r.current??"ru"]),l=e.ref(r.current??i.value[0]??"ru"),o=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 u={...o.value};u[p]=b,a.setField(n.name,u)}const d=e.computed(()=>{const p=a.errors[n.name];if(p?.[0])return p[0];for(const b of i.value){const u=a.errors[`${n.name}.${b}`]?.[0];if(u)return`[${b}] ${u}`}});function f(p){const b=o.value[p];return typeof b=="string"&&b.trim()!==""}return(p,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["admin-field",{"admin-field--invalid":d.value!==void 0}])},[t.label?(e.openBlock(),e.createElementBlock("label",Bd,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.required?(e.openBlock(),e.createElementBlock("span",Vd,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",xd,[e.createElementVNode("div",Nd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createElementBlock("button",{key:u,type:"button",role:"tab",class:e.normalizeClass(["admin-translatable__tab",{"admin-translatable__tab--active":l.value===u,"admin-translatable__tab--filled":f(u)}]),"aria-selected":l.value===u,onClick:N=>l.value=u},[e.createTextVNode(e.toDisplayString(u.toUpperCase())+" ",1),f(u)?(e.openBlock(),e.createElementBlock("span",Ed)):e.createCommentVNode("",!0)],10,Cd))),128))]),e.createElementVNode("div",$d,[t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,value:o.value[l.value]??"",placeholder:t.placeholder??"",rows:t.rows,disabled:t.disabled,class:"admin-translatable__textarea",onInput:b[1]||(b[1]=u=>s(l.value,u.target.value))},null,40,Sd)):(e.openBlock(),e.createBlock(e.unref(c.UidInput),{key:0,"model-value":o.value[l.value]??"",placeholder:t.placeholder??"",disabled:t.disabled,"onUpdate:modelValue":b[0]||(b[0]=u=>s(l.value,u))},null,8,["model-value","placeholder","disabled"]))])]),d.value?(e.openBlock(),e.createElementBlock("p",Ud,e.toDisplayString(d.value),1)):t.help?(e.openBlock(),e.createElementBlock("p",Md,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0)],2))}}),ut=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,i)=>(e.openBlock(),e.createBlock(xe,{key:i,node:r},null,8,["node"]))),128))]),_:1},8,["gap"]))}}),Xn=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(i){const l=i.span;return typeof l=="number"&&l>0?Math.min(l,n.cols):a.value}return(i,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,(o,s)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:"admin-columns__item",style:e.normalizeStyle({gridColumn:`span ${r(o)} / span ${r(o)}`})},[e.createVNode(xe,{node:o},null,8,["node"])],4))),128))]),_:1},8,["cols","gap"]))}}),Dd={key:0,class:"admin-section__header"},Id={key:0,class:"admin-section__title"},Td={key:1,class:"admin-section__description"},Fd={class:"admin-section__body"},ke=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",Dd,[t.title?(e.openBlock(),e.createElementBlock("h3",Id,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",Td,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Fd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(r,i)=>(e.openBlock(),e.createBlock(xe,{key:i,node:r},null,8,["node"]))),128))])]),_:1}))}}),Yn=e.defineComponent({__name:"TabsLayout",props:{items:{},active:{default:0}},emits:["update:active"],setup(t,{emit:n}){const a=t,r=n;function i(s,d){return s.key??d}const l=e.ref(a.active??i(a.items[0]??{},0));function o(s){l.value=s,r("update:active",s)}return(s,d)=>(e.openBlock(),e.createBlock(e.unref(c.UidTabs),{"model-value":l.value,"onUpdate:modelValue":o},{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:i(f,p),value:i(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-${i(f,p)}`,value:i(f,p)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.items,(b,u)=>(e.openBlock(),e.createBlock(xe,{key:u,node:b},null,8,["node"]))),128))]),_:2},1032,["value"]))),128))]),_:1},8,["model-value"]))}});function Zn(){Mn({fields:{input:le,text:le,email:le,url:le,password:le,tel:le,search:le,slug:le,hidden:le,label:le,textarea:Ee,wysiwyg:Ee,markdown:Ee,code:Ee,number:He,slider:He,rating:He,select:ve,combobox:ve,radio:ve,tags:wd,translatable:Ht,"translatable-text":Ht,"morph-switcher":ve,relation:ve,cascader:ve,"tree-select":ve,checkbox:$e,switch:$e,switcher:$e,boolean:$e,date:ge,datetime:ge,datepicker:ge,"date-range":ge,time:ge,"time-picker":ge,"color-picker":le},layouts:{rows:ut,columns:Xn,section:ke,block:ke,tabs:Yn,accordion:ke,group:ut,step:ke,wizard:ke}})}const Ad={key:0,class:"admin-infolist-entry"},Ld={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=Te(),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 o=Sn(l,n.preset,n.meta);return o===""?n.placeholder:o}),i=e.computed(()=>!!n.label);return(l,o)=>i.value?(e.openBlock(),e.createElementBlock("div",Ad,[e.createElementVNode("span",Ld,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))}}),zd={key:1,class:"admin-infolist-text"},Jn=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=Te(),r=e.computed(()=>{let l=n.value;return l===void 0&&a&&n.name&&(l=a[n.name]),l==null?"":String(l)}),i=e.computed(()=>n.variant?n.variant:n.map[r.value]??"default");return(l,o)=>r.value?(e.openBlock(),e.createBlock(e.unref(c.UidBadge),{key:0,variant:i.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value),1)]),_:1},8,["variant"])):(e.openBlock(),e.createElementBlock("span",zd,"—"))}}),Rd=["data-icon"],Pd={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=Te(),r=e.computed(()=>{let o=n.value;return o===void 0&&a&&n.name&&(o=a[n.name]),!!o}),i=e.computed(()=>r.value?n.trueLabel:n.falseLabel),l=e.computed(()=>r.value?n.trueIcon:n.falseIcon);return(o,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,Rd),i.value?(e.openBlock(),e.createElementBlock("span",Pd,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)],2))}}),qd={key:1,class:"admin-infolist-text"},mt=e.defineComponent({__name:"KeyValueEntry",props:{name:{default:""},label:{default:""},value:{default:void 0}},setup(t){const n=t,a=Te(),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 i(l){return l==null?"—":typeof l=="object"?JSON.stringify(l):String(l)}return(l,o)=>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,d])=>(e.openBlock(),e.createBlock(e.unref(c.UidDescriptionItem),{key:s,label:s},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i(d)),1)]),_:2},1032,["label"]))),128))]),_:1})):(e.openBlock(),e.createElementBlock("span",qd,"—"))}});function ea(){Dn({text:j,badge:Jn,icon:Qn,keyvalue:mt,"key-value":mt,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 jd(t,n={}){const a=n.pages??{},r=n.base??Od(t.baseUrl)??"/admin",i=On({baseURL:t.apiUrl,csrfToken:t.csrf});yt(i);const l=e.createApp(hn),o=ie.createPinia();l.use(o),re().hydrate(t),Ue().hydrate(t),Ye().hydrate(t),Me().hydrate(t),Bt().hydrate(t),Zn(),qn(),ea();const s=Gn({base:r,history:n.router?.history??X.createWebHistory(r),components:{login:a.login??$n,home:a.home??wn,forbidden:a.forbidden??Bn,notFound:a.notFound??Vn,profile:a.profile??Ln,forgotPassword:a.forgotPassword??Xr,resetPassword:a.resetPassword??ti,resourceIndex:a.resourceIndex??Un,resourceCreate:a.resourceCreate??st,resourceEdit:a.resourceEdit??st,resourceView:a.resourceView??An,dashboard:a.dashboard??xt,settings:a.settings??xn,screen:a.screen??Nn},extraRoutes:n.router?.extraRoutes,authGuard:n.router?.authGuard,titleGuard:n.router?.titleGuard});l.use(s);const d=wt();if(s.beforeEach((f,p,b)=>{f.fullPath!==p.fullPath&&d.start(),b()}),s.afterEach(()=>{d.end()}),s.onError(()=>{d.end()}),s.beforeResolve(async(f,p,b)=>{const u=typeof f.name=="string"?f.name:null;if(u&&u.startsWith("admin.resource.")&&u.endsWith(".index")){const N=f.params.slug??f.meta.slug;if(N)try{const{useResourceIndexStore:h}=await Promise.resolve().then(()=>ni),k=h();(k.slug!==N||k.items.length===0)&&(k.setSlug(N),await k.load().catch(()=>{}))}catch{}}b()}),n.skipManifestLoad)ce().bootResolved=!0;else{const f=ce(),p=re(),b=bt(),u=async()=>{b.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?u():f.bootResolved=!0,e.watch(()=>p.user,(N,h)=>{N&&!h&&(f.bootResolved=!1,u())})}return n.onAppCreated?.(l),{app:l,router:s,client:i}}function Od(t){if(!t)return null;try{return new URL(t).pathname||"/admin"}catch{return t.startsWith("/")?t:null}}async function Wd(t={}){const n=ta();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 Ie)return null;throw a}return null}function ta(){return typeof window>"u"?null:window.__ADMIN_BOOTSTRAP__??null}function Hd(){return typeof document>"u"?null:document.querySelector('meta[name="csrf-token"]')?.getAttribute("content")??null}const Kd={class:"admin-notifs__hd"},Gd={class:"admin-notifs__title"},Xd={key:0,class:"admin-notifs__count"},Yd={class:"admin-notifs__list"},Zd={key:0,class:"admin-notifs__empty"},Jd={key:1,class:"admin-notifs__empty"},Qd=["onClick"],eu=["data-kind"],tu={class:"admin-notifs__body"},nu={class:"admin-notifs__row1"},au={key:0,class:"admin-notifs__title-strong"},ou={key:1,class:"admin-notifs__title-soft"},lu={class:"admin-notifs__time"},ru={key:0,class:"admin-notifs__text"},iu=["onClick"],su=e.defineComponent({__name:"NotificationsDrawer",props:{open:{type:Boolean}},emits:["update:open","select-item"],setup(t,{emit:n}){const a=t,r=n,i=Me();function l(k){r("update:open",k)}e.watch(()=>a.open,async k=>{k&&await i.load(i.lastFilter??"all",1).catch(()=>{})},{immediate:!0});const o=e.computed(()=>i.lastFilter??"all");async function s(k){await i.load(k,1).catch(()=>{})}async function d(){await i.markAllAsRead().catch(()=>{})}async function f(k){r("select-item",k),k.read_at||await i.markAsRead(k.id).catch(()=>{})}async function p(k,m){m.stopPropagation(),await i.destroy(k.id).catch(()=>{})}function b(k){const m=k.data.level;return m==="success"||m==="warning"||m==="danger"?m:"info"}function u(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()),C=Math.floor(w/6e4);if(C<1)return"только что";if(C<60)return`${C} мин назад`;const E=Math.floor(C/60);if(E<24)return`${E} ч назад`;const V=Math.floor(E/24);return V<7?`${V} д назад`: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",Kd,[e.createElementVNode("h2",Gd,[m[0]||(m[0]=e.createTextVNode(" Уведомления ",-1)),e.unref(i).unreadCount>0?(e.openBlock(),e.createElementBlock("span",Xd," ("+e.toDisplayString(e.unref(i).unreadCount)+") ",1)):e.createCommentVNode("",!0)]),e.unref(i).unreadCount>0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",size:"sm",onClick:d},{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":o.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(i).unreadCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" ("+e.toDisplayString(e.unref(i).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",Yd,[e.unref(i).loading?(e.openBlock(),e.createElementBlock("li",Zd," Загрузка… ")):e.unref(i).items.length===0?(e.openBlock(),e.createElementBlock("li",Jd," Нет уведомлений ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i).items,C=>(e.openBlock(),e.createElementBlock("li",{key:C.id,class:e.normalizeClass(["admin-notifs__item",`admin-notifs__item--${b(C)}`,{"admin-notifs__item--unread":!C.read_at}]),onClick:E=>f(C)},[e.createElementVNode("span",{class:"admin-notifs__icon","data-kind":b(C)},null,8,eu),e.createElementVNode("div",tu,[e.createElementVNode("div",nu,[C.read_at?(e.openBlock(),e.createElementBlock("span",ou,e.toDisplayString(u(C)),1)):(e.openBlock(),e.createElementBlock("strong",au,e.toDisplayString(u(C)),1)),e.createElementVNode("span",lu,e.toDisplayString(h(C.created_at)),1)]),N(C)?(e.openBlock(),e.createElementBlock("p",ru,e.toDisplayString(N(C)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"admin-notifs__close","aria-label":"Удалить",onClick:E=>p(C,E)}," × ",8,iu)],10,Qd))),128))])]),_:1},8,["value"])),64))]),_:1},8,["model-value"])]),_:1},8,["model-value"]))}}),cu={class:"admin-page admin-import-wizard"},du={class:"admin-page__hd"},uu={class:"admin-page__title-wrap"},mu={class:"admin-page__title"},fu={class:"admin-page__actions"},pu={key:0,class:"admin-import-wizard__empty"},vu={key:1,class:"admin-import-wizard__mapping"},hu={class:"admin-import-wizard__map-source"},yu={key:0,class:"admin-import-wizard__map-sample"},gu={class:"admin-import-wizard__card-hd"},ku={key:2,class:"admin-import-wizard__empty"},_u={key:0,class:"admin-import-wizard__empty"},bu={class:"admin-import-wizard__kpi"},wu={class:"admin-import-wizard__nav"},Bu=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,i=[{label:"Загрузка",description:"CSV / TSV / XLSX"},{label:"Сопоставление",description:"Колонки файла → поля"},{label:"Предпросмотр",description:"Проверка первых строк"},{label:"Импорт",description:"Запуск + сводка"}],l=e.ref(0),o=e.computed(()=>a.step??l.value);function s(E){a.step===void 0&&(E<0||E>=i.length||(l.value=E))}const d=e.ref([]);function f(E){d.value=E,E.length>0&&r("file-uploaded",E[0].file)}const p=e.ref({});function b(E,V){p.value[E]=V===null||V===""?null:String(V)}function u(){return a.headers.map(E=>({source:E.key,target:p.value[E.key]??null}))}function N(){r("mapping-submit",u()),s(2)}function h(){r("run-import"),s(3)}const k=e.computed(()=>o.value>0),m=e.computed(()=>{switch(o.value){case 0:return d.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 C(){r("cancel")}return(E,V)=>(e.openBlock(),e.createElementBlock("section",cu,[e.createElementVNode("header",du,[e.createElementVNode("div",uu,[e.createElementVNode("h1",mu,e.toDisplayString(t.title),1)]),e.createElementVNode("div",fu,[e.createVNode(e.unref(c.UidButton),{variant:"ghost",onClick:C},{default:e.withCtx(()=>[...V[2]||(V[2]=[e.createTextVNode("Отмена",-1)])]),_:1})])]),e.createVNode(e.unref(c.UidStepper),{steps:i,current:o.value},null,8,["current"]),o.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:0,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[V[3]||(V[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":d.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})):o.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:1,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[V[5]||(V[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",pu," Нет данных — host ещё не отдал headers. Загрузите файл сначала. ")):(e.openBlock(),e.createElementBlock("div",vu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,D=>(e.openBlock(),e.createElementBlock("div",{key:D.key,class:"admin-import-wizard__map-row"},[e.createElementVNode("div",hu,[e.createElementVNode("strong",null,e.toDisplayString(D.label),1),D.sample?(e.openBlock(),e.createElementBlock("span",yu," «"+e.toDisplayString(D.sample)+"» ",1)):e.createCommentVNode("",!0)]),V[4]||(V[4]=e.createElementVNode("span",{class:"admin-import-wizard__map-arrow"},"→",-1)),e.createVNode(e.unref(c.UidSelect),{"model-value":p.value[D.key]??"",options:w.value,placeholder:"Не импортировать","onUpdate:modelValue":y=>b(D.key,y)},null,8,["model-value","options","onUpdate:modelValue"])]))),128))]))]),_:1})):o.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",gu,[V[6]||(V[6]=e.createElementVNode("h3",null,"3. Предпросмотр",-1)),e.createElementVNode("p",null,"Первые "+e.toDisplayString(t.preview.length)+" строк перед импортом",1)]),t.preview.some(D=>D.__warning)?(e.openBlock(),e.createBlock(e.unref(c.UidAlert),{key:0,variant:"warning",style:{"margin-bottom":"var(--uid-space-md)"}},{default:e.withCtx(()=>[...V[7]||(V[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",ku," Host не передал previewColumns/preview. "))]),_:1})):(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:3,padding:"md",class:"admin-import-wizard__card"},{default:e.withCtx(()=>[V[8]||(V[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",bu,[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",_u," Запускается импорт… "))]),_:1})),e.createElementVNode("footer",wu,[k.value?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:0,variant:"ghost",onClick:V[0]||(V[0]=D=>s(o.value-1))},{default:e.withCtx(()=>[...V[9]||(V[9]=[e.createTextVNode(" Назад ",-1)])]),_:1})):e.createCommentVNode("",!0),V[13]||(V[13]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),o.value===0?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:1,variant:"primary",disabled:!m.value,onClick:V[1]||(V[1]=D=>s(1))},{default:e.withCtx(()=>[...V[10]||(V[10]=[e.createTextVNode(" Далее ",-1)])]),_:1},8,["disabled"])):o.value===1?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:2,variant:"primary",disabled:!m.value,onClick:N},{default:e.withCtx(()=>[...V[11]||(V[11]=[e.createTextVNode(" Подтвердить mapping ",-1)])]),_:1},8,["disabled"])):o.value===2?(e.openBlock(),e.createBlock(e.unref(c.UidButton),{key:3,variant:"primary",onClick:h},{default:e.withCtx(()=>[...V[12]||(V[12]=[e.createTextVNode(" Запустить импорт ",-1)])]),_:1})):e.createCommentVNode("",!0)])]))}}),Vu={class:"admin-page admin-field-gallery"},xu={class:"admin-gallery__group-title"},Nu={class:"admin-gallery__grid"},Cu={class:"admin-gallery__card-hd"},Eu={class:"admin-gallery__card-title"},$u={class:"admin-gallery__card-type"},Su={class:"admin-gallery__card-desc"},Uu={class:"admin-gallery__card-demo"},Mu=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((i,l)=>(i[l.group]||(i[l.group]=[]),i[l.group].push(l),i),{}),r=e.reactive(n.reduce((i,l)=>Object.assign(i,l.initial),{}));return ne.provideFormState(r),(i,l)=>(e.openBlock(),e.createElementBlock("section",Vu,[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),(o,s)=>(e.openBlock(),e.createElementBlock("section",{key:s,class:"admin-gallery__group"},[e.createElementVNode("h2",xu,e.toDisplayString(s),1),e.createElementVNode("div",Nu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o,d=>(e.openBlock(),e.createBlock(e.unref(c.UidCard),{key:d.type+d.title,padding:"md",class:"admin-gallery__card"},{default:e.withCtx(()=>[e.createElementVNode("header",Cu,[e.createElementVNode("h3",Eu,e.toDisplayString(d.title),1),e.createElementVNode("code",$u,"type: "+e.toDisplayString(d.type),1)]),e.createElementVNode("p",Su,e.toDisplayString(d.description),1),e.createElementVNode("div",Uu,[e.createVNode(St,{node:d.node},null,8,["node"])])]),_:2},1024))),128))])]))),128))]))}});exports.provideFormState=ne.provideFormState;exports.tryUseFormState=ne.tryUseFormState;exports.useFormState=ne.useFormState;exports.AdminApp=hn;exports.AdminShell=vn;exports.AdminSidebar=pn;exports.AdminTopBar=mn;exports.ApiError=de;exports.BadgeEntry=Jn;exports.BarChartWidget=Mt;exports.CheckboxField=$e;exports.ColumnsLayout=Xn;exports.DashboardPage=xt;exports.DateField=ge;exports.DonutChartWidget=Dt;exports.FieldGalleryPage=Mu;exports.FieldRenderer=St;exports.ForbiddenError=cn;exports.ForbiddenPage=Bn;exports.GaugeWidget=Rn;exports.HeatmapWidget=zn;exports.HomePage=wn;exports.IconEntry=Qn;exports.ImportWizardPage=Bu;exports.InfolistRenderer=Tn;exports.KeyValueEntry=mt;exports.LayoutRenderer=xe;exports.LocaleSwitcher=kt;exports.LoginForm=Cn;exports.LoginPage=$n;exports.MarkdownWidget=Pn;exports.NetworkError=Ie;exports.NotFoundError=dn;exports.NotFoundPage=Vn;exports.NotificationBell=sn;exports.NotificationsDrawer=su;exports.NumberField=He;exports.ProfilePage=Ln;exports.RecentTableWidget=We;exports.ResourceFormPage=st;exports.ResourceIndexPage=Un;exports.ResourceViewPage=An;exports.RowsLayout=ut;exports.SectionLayout=ke;exports.SelectField=ve;exports.SettingsPage=xn;exports.StatWidget=dt;exports.TabsLayout=Yn;exports.TextAreaField=Ee;exports.TextEntry=j;exports.TextField=le;exports.ThemeToggle=gt;exports.TwoFactorForm=En;exports.UnauthenticatedError=_t;exports.UnknownEntry=In;exports.UnknownField=$t;exports.UnknownScreenPage=Nn;exports.UnknownWidget=Vt;exports.UserMenu=un;exports.ValidationError=De;exports.WidgetRenderer=bn;exports.buildRoutesFromManifest=Wn;exports.clearAdminClient=ln;exports.clearInfolistRegistry=Bs;exports.clearRegistry=ms;exports.clearWidgetRegistry=Ml;exports.createAdminApp=jd;exports.createAdminClient=On;exports.createAdminRouter=Gn;exports.createAuthGuard=Hn;exports.createTitleGuard=Kn;exports.getAdminClient=H;exports.getField=Et;exports.getInfolistEntry=ct;exports.getLayout=it;exports.getWidget=gn;exports.hasAdminClient=rn;exports.hasField=is;exports.hasInfolistEntry=bs;exports.hasLayout=ds;exports.hasWidget=Ul;exports.isError=ed;exports.isSuccess=jn;exports.listFields=ss;exports.listInfolistEntries=ws;exports.listLayouts=us;exports.listWidgets=kn;exports.loadBootstrap=Wd;exports.provideRecord=Fn;exports.readCsrfFromMeta=Hd;exports.readInlineBootstrap=ta;exports.registerBuiltinComponents=Zn;exports.registerBuiltinInfolistEntries=ea;exports.registerBuiltinWidgets=qn;exports.registerComponents=Mn;exports.registerField=rs;exports.registerInfolistEntries=Dn;exports.registerInfolistEntry=_s;exports.registerLayout=cs;exports.registerWidget=Sl;exports.registerWidgets=_n;exports.setAdminClient=yt;exports.toApiError=rt;exports.tryUseRecord=Te;exports.useAuthStore=re;exports.useLocaleStore=Ue;exports.useManifestStore=ce;exports.useMenuStore=bt;exports.useNotificationsStore=Me;exports.useRecord=Is;exports.useResourceFormStore=Ct;exports.useResourceIndexStore=Nt;exports.useThemeStore=Ye;
4
4
  //# sourceMappingURL=index.cjs.map