1import R from"./BlUlAP2D.js";import{_ as W}from"./BA4VewZY.js";import{_ as q}from"./DxOG0pT0.js";import{e as G,x as J,C as Q,h as D,u as X,c as i,a as t,b as r,w as u,l as d,t as o,k as f,z as h,F as T,r as N,p as j,q as $,o as l,d as m,n as Y,L as Z,_ as ee,S as te,s as ae}from"./D8644rYh.js";import{_ as se}from"./Dx_Ou25x.js";import{f as w}from"./Kkw9fBGj.js";import{a as oe,p as le,b as re}from"./KVCHv0pw.js";import{u as ne}from"./MRLRowXz.js";const ie=["aria-busy"],de={class:"flex flex-wrap items-center justify-between gap-3 mb-1"},ue={key:0,role:"alert",class:"mb-4 rounded-xl bg-red-50 p-4 text-sm text-red-700 dark:bg-red-500/10 dark:text-red-300"},me={class:"mt-3 text-sm text-grey-text"},pe={class:"overflow-x-auto"},ce={class:"w-full text-sm"},xe={class:"text-left text-xs text-grey-text bg-gray-50/60 dark:bg-gray-900/40"},ye={class:"px-4 py-3 font-medium"},fe={class:"px-4 py-3 font-medium"},be={class:"px-4 py-3 font-mono text-xs text-grey-text"},ge={class:"px-4 py-3 font-medium text-dark dark:text-white"},ve={class:"px-4 py-3 text-grey-text"},_e={class:"px-4 py-3 tabular-nums"},ke={class:"px-4 py-3"},he={class:"px-4 py-3"},we={class:"min-w-[220px] space-y-1.5"},Ce={class:"flex flex-wrap items-baseline gap-x-1.5 tabular-nums"},Ve={key:0,class:"text-xs text-grey-text"},Te={key:1,class:"font-semibold text-dark dark:text-white"},$e={key:2,class:"text-xs text-grey-text"},Ee={key:3,class:"text-xs text-grey-text"},Le={key:4,class:"text-xs text-grey-text"},Pe={class:"flex items-center gap-2"},Ue=["aria-label","aria-valuenow","aria-valuetext"],De={class:"tabular-nums text-xs text-grey-text shrink-0"},Ne={key:1,class:"inline-flex items-center gap-1 px-2 py-1 rounded-full border border-gray-200 dark:border-gray-700 text-[11px] font-medium text-grey-text !text-amber-600 dark:!text-amber-400 shrink-0",title:"Liste d'attente"},je={class:"px-4 py-3 tabular-nums"},ze={key:0,class:"block whitespace-nowrap font-semibold text-dark dark:text-white"},Ae={key:1,class:"text-xs text-grey-text"},Ie={class:"mt-1 block text-xs text-grey-text"},Se={class:"px-4 py-3"},Be={class:"inline-flex items-center gap-1 px-2 py-1 rounded-full border border-gray-200 dark:border-gray-700 text-[11px] font-medium text-grey-text"},Me={class:"mt-1 block text-xs text-grey-text"},Ke={class:"px-4 py-3 text-right"},Oe={class:"space-y-2 max-w-2xl"},Fe={class:"flex items-center gap-1"},He={class:"flex items-center gap-1"},Re=["onClick"],tt=G({__name:"index",setup(We){const E=J(),{locale:b}=Q(),g=ne(),v=j(!1),p=j(!1),{data:z,refresh:A,status:L,error:P}=D("admin-club-deals",()=>g("/admin/club-deals"),{server:!1}),C=$(()=>L.value==="idle"||L.value==="pending"),V=$(()=>(z.value??[]).map(s=>({...s,collection:re(s),reservation:le(s),investors:oe(s)})));async function U(){v.value=!0;try{const s=await g("/admin/club-deals",{method:"POST",body:{title:"Nouvelle opération",status:"draft"}});await te(E(`/admin/club-deals/${s.id}`))}finally{v.value=!1}}function I(s){return{draft:"Brouillon",open:"Ouvert",closed:"En cours",repaid:"Remboursé",completed:"Clôturé"}[s]??s}function S(s){return{draft:"bg-gray-100 dark:bg-gray-700/60 text-grey-text",open:"bg-emerald-50 dark:bg-emerald-500/15 text-emerald-600 dark:text-emerald-400",closed:"bg-primary-50 dark:bg-primary-600/20 text-primary-600 dark:text-primary-300",repaid:"bg-gray-100 dark:bg-gray-700/60 text-grey-text",completed:"bg-primary-50 dark:bg-primary-600/20 text-primary-600 dark:text-primary-300"}[s]??"bg-gray-100 text-grey-text"}const{data:B,refresh:M}=D("admin-typologies-list",()=>g("/admin/club-deal-typologies"),{server:!1}),K=$(()=>B.value??[]),n=ae({name:"",coupon_pct:null,duration_days:null});async function O(s){await g(`/admin/club-deal-typologies/${s.id}`,{method:"PATCH",body:{name:s.name,coupon_pct:s.coupon_pct,duration_days:s.duration_days}})}async function F(){if(!n.name)return;const s=n.name.toLowerCase().replace(/[^a-z0-9]+/g,"_");await g("/admin/club-deal-typologies",{method:"POST",body:{slug:s,name:n.name,coupon_pct:n.coupon_pct??0,duration_days:n.duration_days??0}}),n.name="",n.coupon_pct=null,n.duration_days=null,p.value=!1,await M()}return X({title:"Club Deals · Admin WiiM"}),(s,a)=>{const c=R,_=W,k=q,H=ee,x=se;return l(),i("div",{"aria-busy":C.value},[t("div",de,[a[5]||(a[5]=t("h1",{class:"font-display text-2xl font-bold text-dark dark:text-white"},"Club Deals",-1)),r(_,{disabled:v.value,class:"gap-2",onClick:U},{default:u(()=>
1[r(c,{name:"solar:add-circle-linear",class:"h-5 w-5"}),m(" "+o(v.value?"Créationâ¦":"Nouvelle opération"),1)]),_:1},8,["disabled"])]),a[20]||(a[20]=t("p",{class:"text-sm text-grey-text mb-6"},"Les opérations de Club Deal proposées aux co-investisseurs. Créez une opération puis renseignez ses termes, son contenu et sa fenêtre de souscription.",-1)),d(P)?(l(),i("div",ue,[t("p",null,o(s.$t("clubdeal.metrics.loadError")),1),r(_,{variant:"ghost",class:"mt-2",disabled:C.value,onClick:a[0]||(a[0]=e=>d(A)())},{default:u(()=>[m(o(s.$t("common.retry")),1)]),_:1},8,["disabled"])])):f("",!0),C.value&&!V.value.length?(l(),h(k,{key:1,class:"mb-4 py-10 text-center",role:"status"},{default:u(()=>[r(c,{name:"solar:refresh-linear",class:"mx-auto h-6 w-6 animate-spin text-primary-600 dark:text-primary-300"}),t("p",me,o(s.$t("clubdeal.metrics.loading")),1)]),_:1})):V.value.length?(l(),h(k,{key:2,class:"mb-4 !p-0 overflow-hidden"},{default:u(()=>[t("div",pe,[t("table",ce,[t("thead",xe,[t("tr",null,[a[6]||(a[6]=t("th",{class:"px-4 py-3 font-medium"},"Référence",-1)),a[7]||(a[7]=t("th",{class:"px-4 py-3 font-medium"},"Titre",-1)),a[8]||(a[8]=t("th",{class:"px-4 py-3 font-medium"},"Typologie",-1)),a[9]||(a[9]=t("th",{class:"px-4 py-3 font-medium"},"Coupon",-1)),a[10]||(a[10]=t("th",{class:"px-4 py-3 font-medium"},"Statut",-1)),t("th",ye,o(s.$t("clubdeal.adminListTotals.reservedTarget")),1),t("th",fe,o(s.$t("clubdeal.adminListTotals.received")),1),a[11]||(a[11]=t("th",{class:"px-4 py-3 font-medium"},"Investisseurs",-1)),a[12]||(a[12]=t("th",{class:"px-4 py-3"},null,-1))])]),t("tbody",null,[(l(!0),i(T,null,N(V.value,e=>(l(),i("tr",{key:e.id,class:"border-t border-gray-100 dark:border-gray-800 hover:bg-gray-50/60 dark:hover:bg-gray-900/40"},[t("td",be,o(e.reference),1),t("td",ge,o(e.title),1),t("td",ve,o(e.typology?.name||"â"),1),t("td",_e,o(e.coupon_pct!=null?e.coupon_pct+" %":"â"),1),t("td",ke,[t("span",{class:Y(["inline-flex items-center px-2.5 py-1 rounded-full text-[11px] font-semibold",S(e.status)])},o(I(e.status)),3)]),t("td",he,[t("div",we,[t("div",Ce,[e.collection.amountKind==="repaid"?(l(),i("span",Ve,o(s.$t("clubdeal.adminListTotals.collectionEnded")),1)):e.reservation.amount!==null?(l(),i("span",Te,o(("formatEur"in s?s.formatEur:d(w))(e.reservation.amount,d(b))),1)):(l(),i("span",$e,o(s.$t("clubdeal.adminListTotals.reservedUnknown")),1)),e.collection.target?(l(),i("span",Ee,o(e.collection.amountKind==="repaid"?"Objectif":"sur")+" "+o(("formatEur"in s?s.formatEur:d(w))(e.collection.target,d(b))),1)):e.collection.amountKind!=="repaid"?(l(),i("span",Le,"Objectif non renseigné")):f("",!0)]),t("div",Pe,[e.collection.amountKind!=="repaid"&&e.reservation.progressPct!=null&&e.collection.target?(l(),i(T,{key:0},[t("div",{class:"flex-1 h-1.5 rounded-full bg-gray-200 dark:bg-gray-700 overflow-hidden",role:"progressbar","aria-label":s.$t("clubdeal.adminListTotals.reservedProgress"),"aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.reservation.progressPct,"aria-valuetext":`${("formatEur"in s?s.formatEur:d(w))(e.reservation.amount??0,d(b))} sur ${("formatEur"in s?s.formatEur:d(w))(e.collection.target,d(b))}`},[t("div",{class:"h-full rounded-full bg-primary-500",style:Z({width:e.reservation.progressPct+"%"})},null,4)],8,Ue),t("span",De,o(e.reservation.progressPct)+" %",1)],64)):f("",!0),e.waitlist_count?(l(),i("span",Ne,[r(c,{name:"solar:hourglass-line-linear",class:"h-3 w-3"}),m(" "+o(e.waitlist_count),1)])):f("",!0)])])]),t("td",je,[e.collection.amount!=null?(l(),i("span",ze,o(("formatEur"in s?s.formatEur:d(w))(e.collection.amount,d(b))),1)):(l(),i("span",Ae,"Principal remboursé non renseigné")),t("span",Ie,o(e.collection.amountKind==="repaid"?"Principal remboursé":s.$t("clubdeal.adminListTotals.receivedHelp")),1)]),t("td",Se,[t("span",Be,[r(c,{name:"solar:users-group-rounded-linear",class:"h-3.5 w-3.5"}),m(" "+o(e.investors.count??"â"),1)]),t("span",Me,o(s.$t(e.investors.repaid?"clubdeal.metrics.repaidInvestors":"clubdeal.metrics.activeInvestors")),1)]),t("td",Ke,[r(H,{to:d(E)(`/admin/club-deals/${e.id}`),class:"text-primary-600 dark:text-primary-300 text-sm font-medium hover:underline"},{default:u(()=>[...a[13]||(a[13]=[m("Ãditer â",-1)])]),_:1},8,["to"])])]))),128))])])])]),_:1})):!d(P)&&!C.value?(l(),h(k,{key:3,as:"div",class:"mb-4 text-center py-12"},{default:u(()=>[r(c,{name:"solar:hand-money-linear",class:"h-10 w-10 text-primary-600/40 dark:text-primary-300/40 mx-auto"}),a[15]||(a[15]=t("p",{class:"font-semibold text-dark dark:text-white mt-4"},"Aucune opération de Club Deal",-1)),a[16]||(a[16]=t("p",{class:"text-sm text-grey-text mt-1"},"Créez votre première opération : vous pourrez ensuite définir son coupon, sa durée et ouvr
1ir la souscription.",-1)),r(_,{class:"mt-5",disabled:v.value,onClick:U},{default:u(()=>[...a[14]||(a[14]=[m("Nouvelle opération",-1)])]),_:1},8,["disabled"])]),_:1})):f("",!0),a[21]||(a[21]=t("h2",{class:"text-xs uppercase tracking-[0.18em] font-semibold text-grey-text mt-10 mb-1"},"Typologies (paramétrables)",-1)),a[22]||(a[22]=t("p",{class:"text-sm text-grey-text mb-3"},"Les produits Club Deal et leurs valeurs par défaut (coupon, durée). Ajoutez-en pour être prêt.",-1)),t("div",Oe,[(l(!0),i(T,null,N(K.value,e=>(l(),h(k,{key:e.id,as:"div",class:"!mb-0 !p-3 flex flex-wrap items-center gap-2"},{default:u(()=>[r(x,{modelValue:e.name,"onUpdate:modelValue":y=>e.name=y,class:"w-full flex-1 min-w-[140px]"},null,8,["modelValue","onUpdate:modelValue"]),t("div",Fe,[r(x,{modelValue:e.coupon_pct,"onUpdate:modelValue":y=>e.coupon_pct=y,modelModifiers:{number:!0},type:"number",step:"0.1",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"]),a[17]||(a[17]=t("span",{class:"text-grey-text text-sm"},"%",-1))]),t("div",He,[r(x,{modelValue:e.duration_days,"onUpdate:modelValue":y=>e.duration_days=y,modelModifiers:{number:!0},type:"number",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"]),a[18]||(a[18]=t("span",{class:"text-grey-text text-sm"},"j",-1))]),t("button",{class:"text-primary-600 dark:text-primary-300 text-sm font-medium hover:underline",onClick:y=>O(e)},"Enregistrer",8,Re)]),_:2},1024))),128)),p.value?(l(),h(k,{key:0,as:"div",class:"!mb-0 ring-1 ring-primary-500/30 flex flex-wrap gap-2 items-center"},{default:u(()=>[r(x,{modelValue:n.name,"onUpdate:modelValue":a[1]||(a[1]=e=>n.name=e),placeholder:"Nom (ex. WiiM 60)",class:"w-full flex-1 min-w-[140px]"},null,8,["modelValue"]),r(x,{modelValue:n.coupon_pct,"onUpdate:modelValue":a[2]||(a[2]=e=>n.coupon_pct=e),modelModifiers:{number:!0},type:"number",step:"0.1",placeholder:"Coupon %",class:"w-full"},null,8,["modelValue"]),r(x,{modelValue:n.duration_days,"onUpdate:modelValue":a[3]||(a[3]=e=>n.duration_days=e),modelModifiers:{number:!0},type:"number",placeholder:"Durée j",class:"w-full"},null,8,["modelValue"]),r(_,{disabled:!n.name,onClick:F},{default:u(()=>[...a[19]||(a[19]=[m("Ajouter",-1)])]),_:1},8,["disabled"])]),_:1})):f("",!0),r(_,{variant:"ghost",size:"sm",class:"gap-1.5",onClick:a[4]||(a[4]=e=>p.value=!p.value)},{default:u(()=>[r(c,{name:p.value?"solar:close-circle-linear":"solar:add-circle-linear",class:"h-4 w-4"},null,8,["name"]),m(" "+o(p.value?"Fermer":"Nouvelle typologie"),1)]),_:1})])],8,ie)}}});export{tt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.