"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6235],{7:(e,t,a)=>{a.d(t,{y:()=>r});var n=a(4208);function r({title:e,description:t}){return(0,n.jsxs)("header",{className:"mb-6",children:[(0,n.jsx)("h2",{className:"text-lg font-medium text-foreground",children:e}),t?(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t}):null]})}},6078:(e,t,a)=>{a.d(t,{v:()=>i});var n=a(4208),r=a(61554),s=a(18747);function i({isFetching:e,isError:t,onRetry:a}){let{ready:r,authenticated:d}=(0,s.v)();return!r||e?null:d?t?(0,n.jsx)(l,{onRetry:a}):null:(0,n.jsx)("p",{className:"mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-900 dark:border-amber-900/40 dark:bg-amber-950/30 dark:text-amber-200",children:"Connectez-vous pour synchroniser avec le serveur. Les r\xe9glages locaux restent disponibles hors ligne."})}function l({onRetry:e}){return(0,n.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:[(0,n.jsx)("span",{children:"\xc9chec de synchronisation avec le serveur."}),e?(0,n.jsx)(r.$,{type:"button",variant:"outline",size:"sm",className:"h-7",onClick:e,children:"R\xe9essayer"}):null]})}},26708:(e,t,a)=>{a.d(t,{F2:()=>l,GR:()=>i,J4:()=>u,Qw:()=>c,Wu:()=>o,_E:()=>d});var n=a(98306),r=a(94927),s=a(18747);function i(){let{ready:e,authenticated:t}=(0,s.v)();return(0,n.I)({queryKey:["admin","stats"],queryFn:()=>r.uE.get("/admin/stats"),enabled:e&&t})}function l(e={}){let{ready:t,authenticated:a}=(0,s.v)();return(0,n.I)({queryKey:["admin","users",e],queryFn:()=>r.uE.get("/admin/users",{page:e.page?.toString(),page_size:e.page_size?.toString(),q:e.q,sort:e.sort,status:e.status,role:e.role,group_id:e.group_id}),enabled:t&&a})}function d(e={}){let{ready:t,authenticated:a}=(0,s.v)();return(0,n.I)({queryKey:["admin","user-groups",e],queryFn:()=>r.uE.get("/admin/user-groups",{page:e.page?.toString(),page_size:e.page_size?.toString(),q:e.q}),enabled:t&&a})}function o(e){let{ready:t,authenticated:a}=(0,s.v)();return(0,n.I)({queryKey:["admin","users",e],queryFn:()=>r.uE.get(`/admin/users/${e}`),enabled:t&&a&&!!e})}function c(e={}){let{ready:t,authenticated:a}=(0,s.v)();return(0,n.I)({queryKey:["admin","public-shares",e],queryFn:()=>r.uE.get("/admin/public-shares",{page:e.page?.toString(),page_size:e.page_size?.toString(),q:e.q,sort:e.sort}),enabled:t&&a})}function u(e={}){let{ready:t,authenticated:a}=(0,s.v)();return(0,n.I)({queryKey:["admin","audit",e],queryFn:()=>r.uE.get("/admin/audit",{page:e.page?.toString(),page_size:e.page_size?.toString()}),enabled:t&&a})}},51618:(e,t,a)=>{a.d(t,{A0:()=>i,BF:()=>l,Hj:()=>d,XI:()=>s,nA:()=>c,nd:()=>o});var n=a(4208);a(91356);var r=a(58113);function s({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,n.jsx)("table",{"data-slot":"table",className:(0,r.cn)("w-full caption-bottom text-sm",e),...t})})}function i({className:e,...t}){return(0,n.jsx)("thead",{"data-slot":"table-header",className:(0,r.cn)("[&_tr]:border-b",e),...t})}function l({className:e,...t}){return(0,n.jsx)("tbody",{"data-slot":"table-body",className:(0,r.cn)("[&_tr:last-child]:border-0",e),...t})}function d({className:e,...t}){return(0,n.jsx)("tr",{"data-slot":"table-row",className:(0,r.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...t})}function o({className:e,...t}){return(0,n.jsx)("th",{"data-slot":"table-head",className:(0,r.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t})}function c({className:e,...t}){return(0,n.jsx)("td",{"data-slot":"table-cell",className:(0,r.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t})}},71809:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(43200).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},86235:(e,t,a)=>{a.r(t),a.d(t,{AuditSection:()=>x});var n=a(4208),r=a(91356),s=a(71809),i=a(7),l=a(6078),d=a(26708),o=a(94927),c=a(61554),u=a(51618);function x(){let[e,t]=(0,r.useState)(1),{data:a,isFetching:x,isError:m,refetch:h}=(0,d.J4)({page:e,page_size:50}),g=a?.logs??[],p=Math.max(1,Math.ceil((a?.pagination.total??0)/(a?.pagination.page_size??50)));async function b(e){let t=await o.uE.getBlob(`/admin/audit/export?format=${e}&limit=5000`),a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=`audit-export.${"csv"===e?"csv":"ndjson"}`,n.click(),URL.revokeObjectURL(a)}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.y,{title:"Journal d'audit",description:"Historique des actions administratives sur la plateforme."}),(0,n.jsx)(l.v,{isFetching:x,isError:m,onRetry:()=>h()}),(0,n.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,n.jsxs)(c.$,{variant:"outline",size:"sm",onClick:()=>void b("csv"),children:[(0,n.jsx)(s.A,{className:"mr-2 size-4"}),"Export CSV"]}),(0,n.jsxs)(c.$,{variant:"outline",size:"sm",onClick:()=>void b("ndjson"),children:[(0,n.jsx)(s.A,{className:"mr-2 size-4"}),"Export NDJSON"]})]}),(0,n.jsx)("div",{className:"overflow-x-auto rounded-lg border",children:(0,n.jsxs)(u.XI,{children:[(0,n.jsx)(u.A0,{children:(0,n.jsxs)(u.Hj,{children:[(0,n.jsx)(u.nd,{children:"Date"}),(0,n.jsx)(u.nd,{children:"Acteur"}),(0,n.jsx)(u.nd,{children:"Action"}),(0,n.jsx)(u.nd,{className:"hidden lg:table-cell",children:"D\xe9tails"})]})}),(0,n.jsx)(u.BF,{children:0===g.length?(0,n.jsx)(u.Hj,{children:(0,n.jsx)(u.nA,{colSpan:4,className:"text-center text-muted-foreground",children:"Aucun \xe9v\xe9nement."})}):g.map(e=>(0,n.jsxs)(u.Hj,{children:[(0,n.jsx)(u.nA,{className:"whitespace-nowrap text-xs",children:new Date(e.created_at).toLocaleString("fr-FR")}),(0,n.jsx)(u.nA,{className:"max-w-[140px] truncate font-mono text-xs",children:e.actor}),(0,n.jsx)(u.nA,{className:"text-sm",children:e.action}),(0,n.jsx)(u.nA,{className:"hidden max-w-md truncate font-mono text-xs lg:table-cell",children:"string"==typeof e.details?e.details:JSON.stringify(e.details)})]},e.id))})]})}),p>1?(0,n.jsxs)("div",{className:"mt-4 flex justify-end gap-2",children:[(0,n.jsx)(c.$,{variant:"outline",size:"sm",disabled:e<=1,onClick:()=>t(e=>e-1),children:"Pr\xe9c\xe9dent"}),(0,n.jsx)(c.$,{variant:"outline",size:"sm",disabled:e>=p,onClick:()=>t(e=>e+1),children:"Suivant"})]}):null]})}}}]);