1import{b as ra,a as p,j as e}from"./index-DtztfY4P.js";import{b as n}from"./react-vendor-CXpynOok.js";import{C as ca}from"./ConfirmDeleteCompany-7gA5whLT.js";const ps={name:"",short:"",city:"",address:"",email:"",phone:"",admin:{name:"",email:"",password:""},plan:{code:"pro",billingCycle:"monthly",status:"active",customPrice:"",conditions:""}},Fe=[["trial","Testphase"],["active","Aktiv"],["suspended","Gesperrt"],["cancelled","Gekündigt"]],Ne=d=>{var f;return((f=Fe.find(([q])=>q===d))==null?void 0:f[1])||d||"â"},Be=d=>({trial:"b-blue",active:"b-green",suspended:"b-yellow",cancelled:"b-red"})[d]||"b-gray",da={enter_company:"Firma betreten",support_enter:"Support-Zugriff",update_subscription:"Abo geändert",delete_company:"Firma gelöscht",restore_company:"Firma wiederhergestellt",broadcast:"Rundmail"},oa=d=>(d||[]).map(f=>(f.ok?"":"- ")+f.text).join(` 2`),ma=d=>d.split(` 3`).map(f=>f.trim()).filter(Boolean).map(f=>f.startsWith("- ")||f==="-"?{ok:!1,text:f.replace(/^-\s*/,"")}:{ok:!0,text:f});function ja(){var ns,ls,is,rs,cs;const{user:d,logout:f,createCompany:q,updateCompany:T,deleteCompany:ae,restoreCompany:te,enterCompany:ne,listAccounts:S,listCompanyUsers:le,updateAccountUser:js,updateSubscription:bs,listPlatformPlans:Ie,createPlatformPlan:vs,updatePlatformPlan:Ns,listSupporters:fs,createSupporter:ua,updateSupporter:Me,deleteSupporter:ys,enterSupport:ks}=ra(),g=!!(d!=null&&d.platformAdmin),[u,ie]=n.useState("dash"),[Re,l]=n.useState(""),[x,h]=n.useState(!1),[$,ws]=n.useState(null),[re,$e]=n.useState([]),[Ke,_e]=n.useState(!1),[c,L]=n.useState(ps),[V,Ss]=n.useState(null),[Ue,ce]=n.useState(null),[C,M]=n.useState(null),[fe,ye]=n.useState(null),[Cs,We]=n.useState(!1),[As,ke]=n.useState(""),[we,Ze]=n.useState(null),[k,Ps]=n.useState({}),[Oe,Es]=n.useState("");function Ls(){const s=$||[],a=["Firma","Connect-Code","Paket","Status","Preis/Monat","Abrechnung","Benutzer","Zahlung","Angelegt"],i=D=>`"${String(D??"").replace(/"/g,'""')}"`,t=s.map(D=>{var os,ms,hs,us,xs;return[D.name,D.connectCode,((os=D.subscription)==null?void 0:os.planName)||"",((ms=D.subscription)==null?void 0:ms.status)||"",((hs=D.subscription)==null?void 0:hs.customPrice)??((us=D.subscription)==null?void 0:us.listPrice)??"",((xs=D.subscription)==null?void 0:xs.billingCycle)||"",D.users,D.paymentType||"",D.createdAt?new Date(D.createdAt).toLocaleDateString("de-DE"):""].map(i).join(";")}),I="\uFEFF"+[a.map(i).join(";"),...t].join(`\r 4`),ia=new Blob([I],{type:"text/csv;charset=utf-8"}),ds=URL.createObjectURL(ia),se=document.createElement("a");se.href=ds,se.download=`riggr-firmen-${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(se),se.click(),se.remove(),setTimeout(()=>URL.revokeObjectURL(ds),2e3)}const[H,Se]=n.useState({}),[j,K]=n.useState(null),[b,R]=n.useState(null),[qe,Ve]=n.useState(""),[r,A]=n.useState(null),[de,zs]=n.useState(null),[N,_]=n.useState(null),[U,oe]=n.useState(null),[Ce,Ds]=n.useState(""),[Ae,Pe]=n.useState(null),[o,Ts]=n.useState(null),[P,Fs]=n.useState(null),[J,Xe]=n.useState(null),[v,Bs]=n.useState(null),[me,Ye]=n.useState(""),[E,W]=n.useState(null),[he,Ee]=n.useState(null),[w,Z]=n.useState(null),[ue,Ge]=n.useState(""),[He,xe]=n.useState(""),[X,Q]=n.useState(null),[Le,ze]=n.useState(null);async function Je(s){l("");try{ze(await p.get(`/platform/support/company/${s}/info`))}catch(a){l(a.message)}}const[pe,Is]=n.useState(null),[ge,Ms]=n.useState(""),[z,O]=n.useState(null),[F,ee]=n.useState({subject:"",message:"",segment:"all",planId:""}),[Y,Qe]=n.useState(null),[je,Rs]=n.useState(null);n.useEffect(()=>{u==="audit"&&je===null&&p.get("/platform/audit").then(Rs).catch(s=>l(s.message))},[u]);async function $s(){h(!0),l("");try{await p.put(`/platform/invoices/${z.id}/lines`,{lines:z.lines}),O(null),await be(),B("Positionen gespeichert â")}catch(s){l(s.message)}finally{h(!1)}}const es={all:"alle aktiven Nutzer",trials:"Trial-Firmen",active:"zahlende Firmen",inactive:"inaktive Firmen (30 T.)",plan:"ein Paket"};async function Ks(s){if(s.preventDefault(),!!confirm(`E-Mail wirklich an ${es[F.segment]||"alle"} senden?`)){h(!0),l(""),Qe(null);try{const a=await p.post("/platform/broadcast",F);Qe(a),a.mailEnabled&&ee({subject:"",message:""})}catch(a){l(a.message)}finally{h(!1)}}}const[m,y]=n.useState(null);async function be(){try{Is(await p.get("/platform/invoices"))}catch(s){l(s.message)}}n.useEffect(()=>{u==="invoices"&&g&&pe===null&&be()},[u]),n.useEffect(()=>{u==="settings"&&g&&m===null&&p.get("/platform/settings").then(y).catch(s=>l(s.message))},[u]);async function _s(){if(ge){h(!0),l("");try{await p.post(`/platform/companies/${ge}/invoices`),await be(),B("Rechnung erstellt â")}catch(s){l(s.message)}finally{h(!1)}}}async function De(s,a){h(!0),l("");try{const i=await p.put(`/platform/invoices/${s.id}/status`,{status:a});await be();const t=[i.lexware&&`Lexware: ${i.lexware}`,i.customerPush&&`Kunde: ${i.customerPush}
4`].filter(Boolean).join(" · ");B(`Status gesetzt â${t?" · "+t:""}`)}catch(i){l(i.message)}finally{h(!1)}}async function Us(s){s.preventDefault(),h(!0),l("");try{y(await p.put("/platform/settings",m)),B("Einstellungen gespeichert â")}catch(a){l(a.message)}finally{h(!1)}}async function G(){try{ws(await S()),$e(await Ie()),Xe(await p.get("/platform/support/tickets"))}catch(s){l(s.message)}}n.useEffect(()=>{G()},[]);function B(s){Ve(s),setTimeout(()=>Ve(""),2500)}async function Ws(s){s.preventDefault(),h(!0),l("");try{const a={...c,plan:{...c.plan,customPrice:c.plan.customPrice===""?void 0:Number(c.plan.customPrice)}},i=await q(a);Ss(i),L(ps),_e(!1),await G()}catch(a){l(a.message)}finally{h(!1)}}function Zs(s){ce(s),M({name:s.name,short:s.short||"",city:s.city||"",address:s.address||"",email:s.email||"",phone:s.phone||""})}async function Os(s){s.preventDefault(),h(!0),l("");try{await T(Ue.id,C),ce(null),M(null),await G()}catch(a){l(a.message)}finally{h(!1)}}async function qs(s){We(!0),ke("");try{await ae(fe.id,s),ye(null),await G()}catch(a){ke(a.message)}finally{We(!1)}}async function Vs(s){if(window.confirm(`Konto â${s.name}" wiederherstellen und wieder freischalten?`)){l("");try{await te(s.id),await G()}catch(a){l(a.message)}}}async function Xs(s){if(we===s.id){Ze(null),K(null);return}Ze(s.id),R(null);const a=s.subscription;if(K({planId:(a==null?void 0:a.planId)||"",billingCycle:(a==null?void 0:a.billingCycle)||"monthly",status:(a==null?void 0:a.status)||"trial",trialEndsAt:a!=null&&a.trialEndsAt?String(a.trialEndsAt).slice(0,10):"",customPrice:(a==null?void 0:a.customPrice)??"",conditions:(a==null?void 0:a.conditions)||""}),!H[s.id])try{Se(t=>({...t,[s.id]:null}));const i=await le(s.id);Se(t=>({...t,[s.id]:i}))}catch(i){l(i.message)}k[s.id]||p.get(`/platform/companies/${s.id}/profile`).then(i=>Ps(t=>({...t,[s.id]:i}))).catch(()=>{})}async function Ys(s){h(!0),l("");try{await bs(s,{planId:j.planId||null,billingCycle:j.billingCycle,status:j.status,trialEndsAt:j.trialEndsAt?new Date(j.tri
4alEndsAt).toISOString():null,customPrice:j.customPrice===""?null:Number(j.customPrice),conditions:j.conditions||null}),await G(),B("Buchung gespeichert â")}catch(a){l(a.message)}finally{h(!1)}}function Gs(s,a){R({companyId:s,id:a.id,form:{name:a.name,email:a.email,active:a.active,emailVerified:a.emailVerified,newPassword:""}})}async function Hs(s){s.preventDefault(),h(!0),l("");try{const a=b.form,i={name:a.name,email:a.email,active:a.active,emailVerified:a.emailVerified};a.newPassword&&(i.newPassword=a.newPassword),await js(b.id,i);const t=await le(b.companyId);Se(I=>({...I,[b.companyId]:t})),R(null),B("Benutzer gespeichert â")}catch(a){l(a.message)}finally{h(!1)}}function ss(s){A({id:(s==null?void 0:s.id)||null,code:(s==null?void 0:s.code)||"",name:(s==null?void 0:s.name)||"",tierLabel:(s==null?void 0:s.tierLabel)||"",description:(s==null?void 0:s.description)||"",priceMonthly:(s==null?void 0:s.priceMonthly)??0,priceYearly:(s==null?void 0:s.priceYearly)??0,trialDays:(s==null?void 0:s.trialDays)??14,sort:(s==null?void 0:s.sort)??0,featured:!!(s!=null&&s.featured),active:(s==null?void 0:s.active)!==!1,featuresText:oa(s==null?void 0:s.features)})}async function Js(s){s.preventDefault(),h(!0),l("");try{const a={code:r.code,name:r.name,tierLabel:r.tierLabel||null,description:r.description||null,priceMonthly:Number(r.priceMonthly),priceYearly:Number(r.priceYearly),trialDays:Number(r.trialDays),sort:Number(r.sort),featured:r.featured,active:r.active,features:ma(r.featuresText)};r.id?await Ns(r.id,a):await vs(a),A(null),$e(await Ie()),B("Paket gespeichert â")}catch(a){l(a.message)}finally{h(!1)}}async function ve(){try{zs(await fs())}catch(s){l(s.message)}}n.useEffect(()=>{u==="staff"&&g&&de===null&&ve()},[u]);async function Qs(s){s.preventDefault(),h(!0),l("");try{await p.post("/platform/users",{...N,companyId:N.companyId||null}),_(null),await ve(),B("Konto angelegt â")}catch(a){l(a.message)}finally{h(!1)}}n.useEffect(()=>{u==="dash"&&o===null&&p.get("/platform/dashboard").then(Ts).catch(s=>l(s.message)),u==="dash"&&P===null&&p.get("/platform/health").then(Fs).catch(()=>{})},[u]);async function as(){try{Xe(await p.get("/platform/support/tickets"))}catch(s){l(s.message)}}n.useEffect(()=>{u==="tickets"&&J===null&&as()},[u]);async function Te(s){try{Bs(await p.get(`/platform/support/tickets/${s.id}`)),W(null),await as()}catch(a){l(a.message)}}async function ea(s){if(s.preventDefault(),!!me.trim()){h(!0),l("");try{await p.post(`/platform/support/tickets/${v.id}/messages`,{body:me}),Ye(""),await Te(v)}catch(a){l(a.message)}finally{h(!1)}}}async function sa(s){var a;s.preventDefault(),h(!0),l("");try{await p.put(`/platform/support/tickets/${v.id}/close`,{report:(a=E.title)!=null&&a.trim()?E:void 0}),W(null),await Te(v),Ee(null),B("Anfrage geschlossen â")}catch(i){l(i.message)}finally{h(!1)}}n.useEffect(()=>{u==="reports"&&he===null&&p.get("/platform/support/reports").then(Ee).catch(s=>l(s.message))},[u]);async function aa(s){s.preventDefault(),h(!0),l("");try{await p.post("/platform/support/reports",{...w,companyId:w.companyId||null}),Z(null),Ee(await p.get("/platform/support/reports")),B("Bericht gespeichert â")}catch(a){l(a.message)}finally{h(!1)}}async function ta(s){s.preventDefault(),xe(""),Q(null);try{Q(await p.post("/platform/support/inspect",{key:ue.trim()}))}catch(a){xe(a.message)}}async function na(){xe("");try{await ks(ue.trim())}catch(s){xe(s.message),Q(null)}}const la=g?[["dash","ð Dashboard"],["accounts","ð¢ Firmen"],["plans","ð¦ Pakete"],["invoices","ð§¾ Rechnungen"],["tickets","ð¬ Anfragen"],["reports","ð Berichte"],["staff","ð¥ Konten"],["audit","ð¡ Audit"],["support","ð Support-Zugang"],["settings","â Einstellungen"]]:[["dash","ð Dashboard"],["accounts","ð¢ Firmen"],["tickets","ð¬ Anfragen"],["reports","ð Berichte"],["support","ð Support-Zugang"]],ts=(J||[]).filter(s=>s.status!=="closed").length;return e.jsxs("div",{className:"login",style:{alignItems:"flex-start",padding:"2.5rem 1rem"},children:[e.jsx("style",{children:` 5 .pl-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap; 6 background:linear-gradient(135deg,rgba(232,72,13,.16),rgba(232,72,13,.04) 55%,transparent); 7 border:1px solid rgba(232,72,13,.22);border-radius:18px;padding:1.1rem 1.3rem;margin-bottom:1.1rem;} 8 .pl-tabs{display:flex;gap:.35rem;flex-wrap:wrap;background:rgba(255,255,255,.06); 9 border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.35rem;margin-bottom:1.2rem;} 10 .pl-tab{padding:.5rem .95rem;border-radius:10px;border:none;cursor:pointer;font-family:inherit; 11 font-size:.82rem;font-weight:650;color:var(--night-text);background:transparent;transition:all .15s;position:relative;} 12 .pl-tab:hover{background:rgba(255,255,255,.07);color:#fff;} 13 .pl-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff; 14 box-shadow:0 4px 14px rgba(232,72,13,.35);} 15 .pl-tab .cnt{margin-left:.35rem;background:rgba(255,255,255,.25);border-radius:99px; 16 padding:.02rem .4rem;font-size:.68rem;font-weight:800;} 17 .pl-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:.9rem;margin-bottom:.9rem;} 18 .pl-kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;} 19 .pl-kpi-v{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;} 20 .pl-kpi-l{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;} 21 .pl-bars{display:flex;align-items:flex-end;
21gap:4px;height:64px;} 22 .pl-bar{flex:1;background:linear-gradient(180deg,var(--accent),var(--accent-d));border-radius:3px 3px 0 0;min-height:2px;opacity:.85;} 23 `}),e.jsxs("div",{style:{width:"100%",maxWidth:1100},children:[e.jsxs("div",{className:"pl-head",children:[e.jsxs("div",{className:"flex ic g1",children:[e.jsx("div",{className:"brand-mark",style:{width:42,height:42,fontSize:"1.25rem"},children:"R"}),e.jsxs("div",{children:[e.jsx("div",{className:"brand-name",style:{color:"#fff",fontSize:"1.2rem"},children:g?"Admin-Center":"Support-Center"}),e.jsx("div",{className:"txs",style:{color:"var(--night-faint)"},children:g?"Firmen, Pakete, Abrechnung & Support":`Angemeldet als Supporter: ${d==null?void 0:d.name}`})]})]}),e.jsxs("div",{className:"flex g1 ic",children:[(d==null?void 0:d.company)&&e.jsxs("a",{className:"btn btn-outline btn-sm",href:"/dashboard",children:["â Zur App (",d.company.short||d.company.name,")"]}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:f,children:"Abmelden"})]})]}),e.jsx("div",{className:"pl-tabs",children:la.map(([s,a])=>e.jsxs("button",{className:`pl-tab${u===s?" active":""}`,onClick:()=>{ie(s),l("")},children:[a,s==="tickets"&&ts>0&&e.jsx("span",{className:"cnt",children:ts})]},s))}),Re&&e.jsx("div",{className:"login-error mb2",children:Re}),qe&&e.jsx("div",{className:"badge b-green mb2",style:{display:"inline-block",padding:"0.5rem 0.8rem"},children:qe}),u==="dash"&&(o?e.jsxs(e.Fragment,{children:[o.recurring&&e.jsxs("div",{className:"pl-kpis",children:[e.jsxs("div",{className:"pl-kpi",children:[e.jsxs("div",{className:"pl-kpi-v",style:{color:"var(--green)"},children:[Number(o.recurring.mrr).toLocaleString("de-DE")," â¬"]}),e.jsx("div",{className:"pl-kpi-l",children:"MRR (mtl. wiederkehrend)"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsxs("div",{className:"pl-kpi-v",style:{color:"var(--accent)"},children:[Number(o.recurring.arr).toLocaleString("de-DE")," â¬"]}),e.jsx("div",{className:"pl-kpi-l",children:"ARR (Jahreslauf)"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",children:o.subscriptionStats.active}),e.jsxs("div",{className:"pl-kpi-l",children:["Zahlend · ",o.subscriptionStats.trial," Trials"]})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",style:{color:"var(--blue)"},children:o.subscriptionStats.conversionPct==null?"â":o.subscriptionStats.conversionPct+" %"}),e.jsx("div",{className:"pl-kpi-l",children:"Konversion (zahlend ÷ zahlend+gek.)"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",style:{color:o.subscriptionStats.churned_30d>0?"var(--red)":"var(--ink)"},children:o.subscriptionStats.churned_30d}),e.jsx("div",{className:"pl-kpi-l",children:"Kündigungen (30 T., â)"})]})]}),e.jsxs("div",{className:"pl-kpis",children:[e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",style:{color:"var(--green)"},children:o.subscriptions.filter(s=>["active","trial"].includes(s.status)).reduce((s,a)=>s+a.n,0)}),e.jsx("div",{className:"pl-kpi-l",children:"Aktive Nutzerprofile"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",children:o.companies.total}),e.jsxs("div",{className:"pl-kpi-l",children:["Firmen · ",o.companies.new_30d," neu (30 T.)"]})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",style:{color:"var(--blue)"},children:o.users.active}),e.jsx("div",{className:"pl-kpi-l",children:"Aktive Benutzerkonten"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",style:{color:"var(--accent)"},children:o.tickets.open+o.tickets.answered}),e.jsx("div",{className:"pl-kpi-l",children:"Offene Supportanfragen"})]}),e.jsxs("div",{className:"pl-kpi",children:[e.jsx("div",{className:"pl-kpi-v",children:o.tickets.closed}),e.jsxs("div",{className:"pl-kpi-l",children:["Bearbeitete Anfragen · ",o.tickets.closed_30d," (30 T.)"]})]})]}),e.jsxs("div",{className:"grid g2",style:{margin:0,marginBottom:".9rem",alignItems:"stretch"},children:[e.jsxs("div",{className:"card",children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Einnahmen (versendet + bezahlt, brutto)"}),e.jsx("table",{children:e.jsxs("tbody",{children:[[["Letzte 30 Tage",o.revenue.d30],["Letzte 90 Tage",o.revenue.d90],["Letzte 180 Tage",o.revenue.d180],["Letzte 365 Tage",o.revenue.d365],["Gesamte Zeit",o.revenue.total]].map(([s,a])=>e.jsxs("tr",{children:[e.jsx("td",{className:"tsm",children:s}),e.jsxs("td",{className:"fw7",style:{textAlign:"right"}
23,children:[Number(a).toLocaleString("de-DE",{minimumFractionDigits:2})," â¬"]})]},s)),e.jsxs("tr",{children:[e.jsx("td",{className:"tsm muted",children:"davon noch offen"}),e.jsxs("td",{className:"tsm muted",style:{textAlign:"right"},children:[Number(o.revenue.outstanding).toLocaleString("de-DE",{minimumFractionDigits:2})," â¬"]})]})]})})]}),e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"section-title",style:{marginTop:0},children:["Aktivität der Nutzer · ",o.activity.actions_7d," Aktionen / ",o.activity.active_companies_7d," aktive Firmen (7 T.)"]}),e.jsx("div",{className:"pl-bars",children:(()=>{const s=Math.max(1,...o.activity.series.map(a=>a.n));return o.activity.series.map(a=>e.jsx("div",{className:"pl-bar",style:{height:`${Math.max(3,a.n/s*100)}%`},title:`${a.day}: ${a.n} Aktionen`},a.day))})()}),e.jsxs("div",{className:"flex jb txs muted mt1",children:[e.jsx("span",{children:(ns=o.activity.series[0])==null?void 0:ns.day}),e.jsx("span",{children:(ls=o.activity.series[o.activity.series.length-1])==null?void 0:ls.day})]})]})]}),P&&P.endangered.length+P.expiringTrials.length+P.overdueInvoices.length>0&&e.jsxs("div",{className:"card mb2",style:{borderColor:"#f3c9c0"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"â Frühwarnung"}),e.jsxs("div",{className:"grid g2",style:{alignItems:"start"},children:[e.jsxs("div",{children:[e.jsxs("div",{className:"txs fw7 mb1",style:{color:"var(--red)"},children:["Churn-Risiko · zahlend, inaktiv ⥠14 T. (",P.endangered.length,")"]}),P.endangered.length===0?e.jsx("div",{className:"txs muted",children:"Keine."}):e.jsx("table",{children:e.jsx("tbody",{children:P.endangered.slice(0,8).map(s=>e.jsxs("tr",{style:{cursor:"pointer"},onClick:()=>ie("accounts"),children:[e.jsxs("td",{className:"tsm fw7",children:[s.name,e.jsxs("div",{className:"txs muted",children:[s.plan," · ",Number(s.mrr).toLocaleString("de-DE")," â¬/M."]})]}),e.jsx("td",{className:"txs muted",style:{textAlign:"right",whiteSpace:"nowrap"},children:s.days_idle==null?"nie aktiv":`${s.days_idle} T. inaktiv`})]},s.id))})})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"txs fw7 mb1",style:{color:"var(--yellow)"},children:["Trials laufen aus (⤠3 T.) (",P.expiringTrials.length,")"]}),P.expiringTrials.length===0?e.jsx("div",{className:"txs muted",children:"Keine."}):e.jsx("table",{children:e.jsx("tbody",{children:P.expiringTrials.slice(0,8).map(s=>e.jsxs("tr",{style:{cursor:"pointer"},onClick:()=>ie("accounts"),children:[e.jsx("td",{className:"tsm fw7",children:s.name}),e.jsx("td",{className:"txs muted",style:{textAlign:"right",whiteSpace:"nowrap"},children:s.days_left<=0?"heute":`in ${s.days_left} T.`})]},s.id))})}),g&&P.overdueInvoices.length>0&&e.jsxs("div",{className:"mt2",children:[e.jsxs("div",{className:"txs fw7 mb1",style:{color:"var(--red)"}
23,children:["Ãberfällige Abo-Rechnungen (",P.overdueInvoices.length,")"]}),e.jsx("table",{children:e.jsx("tbody",{children:P.overdueInvoices.slice(0,6).map(s=>e.jsxs("tr",{style:{cursor:"pointer"},onClick:()=>ie("invoices"),children:[e.jsxs("td",{className:"tsm fw7",children:[s.name,e.jsx("div",{className:"txs muted mono",children:s.number})]}),e.jsxs("td",{className:"txs",style:{textAlign:"right",whiteSpace:"nowrap",color:"var(--red)"},children:[Number(s.gross_total).toLocaleString("de-DE")," ⬠· ",s.days_overdue," T."]})]},s.id))})})]})]})]})]}),e.jsxs("div",{className:"grid g2",style:{alignItems:"start"},children:[e.jsxs("div",{className:"card mb2",children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Pakete im Einsatz"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Paket"}),e.jsx("th",{children:"Status"}),e.jsx("th",{style:{textAlign:"right"},children:"Anzahl"})]})}),e.jsx("tbody",{children:o.subscriptions.map((s,a)=>e.jsxs("tr",{children:[e.jsx("td",{className:"fw7",children:s.plan}),e.jsx("td",{children:e.jsx("span",{className:`badge ${Be(s.status)}`,children:Ne(s.status)})}),e.jsx("td",{style:{textAlign:"right"},children:s.n})]},a))})]})]}),((rs=(is=o.recurring)==null?void 0:is.byPlan)==null?void 0:rs.length)>0&&e.jsxs("div",{className:"card mb2",children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"MRR je Paket (zahlend)"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Paket"}),e.jsx("th",{style:{textAlign:"right"},children:"Kunden"}),e.jsx("th",{style:{textAlign:"right"},children:"MRR"})]})}),e.jsx("tbody",{children:o.recurring.byPlan.map((s,a)=>e.jsxs("tr",{children:[e.jsx("td",{className:"fw7",children:s.plan}),e.jsx("td",{style:{textAlign:"right"},children:s.n}),e.jsxs("td",{className:"fw7",style:{textAlign:"right",color:"var(--green)"},children:[Number(s.mrr).toLocaleString("de-DE")," â¬"]})]},a))})]})]})]})]}):e.jsx("div",{className:"card mb2",children:e.jsx("div",{className:"empty",children:"Lädt â¦"})})),u==="accounts"&&e.jsxs(e.Fragment,{children:[V&&e.jsxs("div",{className:"card mb2",style:{borderColor:"#bfe9d6",background:"#f1fbf6"},children:[e.jsx("div",{className:"fw7",style:{color:"var(--green)"},children:"Firma angelegt â"}),e.jsxs("div",{className:"tsm muted",children:["Verbindungs-Code: ",e.jsx("code",{className:"mono",children:V.connectCode})," · Admin-Login mit der angegebenen E-Mail + Passwort."]}),V.verifyUrl&&e.jsxs("div",{className:"tsm mt1",children:[V.emailSent?"Eine Bestätigungs-E-Mail wurde an den Admin gesendet.":"Der Admin muss zuerst seine E-Mail bestätigen. Link weitergeben:",e.jsxs("div",{className:"flex g1 ic mt1",children:[e.jsx("input",{readOnly:!0,value:V.verifyUrl,onFocus:s=>s.target.select()}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:()=>{var s;return(s=navigator.clipboard)==null?void 0:s.writeText(V.verifyUrl)},children:"Kopieren"})]})]})]}),e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb2 wrap g1",children:[e.jsx("h3",{style:{margin:0},children:"Firmen & Buchungen"}),e.jsxs("div",{className:"flex g1 ic",children:[e.jsx("input",{placeholder:"ð Firma / Code suchen â¦",value:Oe,onChange:s=>Es(s.target.value),style:{width:220}}),g&&e.jsx("button",{className:"btn btn-outline btn-sm",onClick:Ls,title:"Firmenliste als CSV",children:"⬠CSV"}),g&&e.jsx("button",{className:"btn btn-accent btn-sm",onClick:()=>{_e(s=>!s),ce(null)},children:Ke?"Abbrechen":"+ Neue Firma"})]})]}),Ke&&g&&e.jsxs("form",{onSubmit:Ws,style:{marginBottom:"1.2rem"},children:[e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firmenname *"}),e.jsx("input",{value:c.name,onChange:s=>L({...c,name:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Kürzel"}),e.jsx("input",{value:c.short,maxLength:5,onChange:s=>L({...c,short:s.target.value})})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Stadt"}),e.jsx("input",{value:c.city,onChange:s=>L({...c,city:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Adresse"}),e.jsx("input",{value:c.address,onChange:s=>L({...c,address:s.target.value})})]})]}),e.jsx("div",{className:"section-title",style:{marginTop:"0.4rem"},children:"Erster Administrator"}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Name *"}),e.jsx("input",{value:c.admin.name,onChange:s=>L({...c,admin:{...c.admin,name:s.target.value}}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"E-Mail *"}),e.jsx("input",{type:"email",value:c.admin.email,onChange:s=>L({...c,admin:{...c.admin,email:s.target.value}}),required:!0})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Passwort *"}),e.jsx("input",{type:"password",value:c.admin.password,onChange:s=>L({...c,admin:{...c.admin,password:s.target.value}}),required:!0})]}),e.jsx("div",{className:"section-title",style:{marginTop:"0.4rem"},children:"Paket & Konditionen"}),e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Paket"}),e.jsx("select",{value:c.plan.code,onChange:s=>L({...c,plan:{...c.plan,code:s.target.value}}),children:re.map(s=>e.jsx("option",{value:s.code,children:s.name},s.code))})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Abrechnung"}),e.jsxs("select",{value:c.plan.billingCycle,onChange:s=>L({...c,plan:{...c.plan,billingCycle:s.target.value}}),children:[e.jsx("option",{value:"monthly",children:"Monatlich"}),e.jsx("option",{value:"yearly",children:"Jährlich"})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Status"}),e.jsx("select",{value:c.plan.status,onChange:s=>L({...c,plan:{...c.plan,status:s.target.value}}),children:Fe.map(([s,a])=>e.jsx("option",{value:s,children:a},s))})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Sonderpreis â¬/Monat (leer = Listenpreis)"}),e.jsx("input",{type:"number",step:"0.01",min:"0",value:c.plan.customPrice,onChange:s=>L({...c,plan:{...c.plan,customPrice:s.target.value}})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Konditionen / N
23otiz"}),e.jsx("input",{value:c.plan.conditions,placeholder:"z. B. Partnerrabatt, 3 Monate gratis â¦",onChange:s=>L({...c,plan:{...c.plan,conditions:s.target.value}})})]})]}),e.jsx("button",{className:"btn btn-primary",disabled:x,children:x?"Anlegen â¦":"Firma anlegen"})]}),Ue&&C&&e.jsxs("form",{onSubmit:Os,className:"card mb2",style:{background:"var(--paper)"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Firma bearbeiten"}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firmenname *"}),e.jsx("input",{value:C.name,onChange:s=>M({...C,name:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Kürzel"}),e.jsx("input",{value:C.short,maxLength:5,onChange:s=>M({...C,short:s.target.value})})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Stadt"}),e.jsx("input",{value:C.city,onChange:s=>M({...C,city:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Adresse"}),e.jsx("input",{value:C.address,onChange:s=>M({...C,address:s.target.value})})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"E-Mail"}),e.jsx("input",{type:"email",value:C.email,onChange:s=>M({...C,email:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Telefon"}),e.jsx("input",{value:C.phone,onChange:s=>M({...C,phone:s.target.value})})]})]}),e.jsxs("div",{className:"flex g1",children:[e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x,children:x?"Speichern â¦":"Speichern"}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>{ce(null),M(null)},children:"Abbrechen"})]})]}),$?$.length===0?e.jsx("div",{className:"empty",children:"Noch keine Firma. Lege die erste an."}):e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Firma"}),e.jsx("th",{children:"Paket"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Preis"}),e.jsx("th",{children:"Nutzer"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:$.filter(s=>{var i;const a=Oe.trim().toLowerCase();return a?(s.name||"").toLowerCase().includes(a)||(s.connectCode||"").toLowerCase().includes(a)||(((i=s.subscription)==null?void 0:i.planName)||"").toLowerCase().includes(a):!0}).map(s=>{const a=s.subscription,i=a?a.customPrice??a.listPrice:null;return e.jsxs(ha,{children:[e.jsxs("tr",{className:"rowh",style:{cursor:"pointer",opacity:s.deletedAt?.6:1},onClick:()=>Xs(s),children:[e.jsxs("td",{className:"fw7",children:[we===s.id?"â¾ ":"⸠",s.name," ",e.jsx("span",{className:"txs muted mono",children:s.connectCode}),s.deletedAt&&e.jsx("span",{className:"badge b-red",style:{marginLeft:6},title:`Endgültige Löschung am ${new Date(new Date(s.deletedAt).getTime()+30*864e5).toLocaleDateString("de-DE")}`,children:"ð gelöscht"})]}),e.jsxs("td",{children:[(a==null?void 0:a.planName)||"â",(a==null?void 0:a.billingCycle)==="yearly"?e.jsx("span",{className:"txs muted",children:" · jährl."}):""]}),e.jsx("td",{children:e.jsx("span",{className:`badge ${Be(a==null?void 0:a.status)}`,children:Ne(a==null?void 0:a.status)})}),e.jsxs("td",{children:[i!=null?`⬠${i}/M`:"â",(a==null?void 0:a.customPrice)!=null&&e.jsx("span",{className:"txs muted",title:"Sonderpreis",children:" â
"})]}),e.jsx("td",{children:s.users}),e.jsxs("td",{style:{textAlign:"right",whiteSpace:"nowrap"},onClick:t=>t.stopPropagation(),children:[g&&s.deletedAt&&e.jsx("button",{className:"btn btn-accent btn-sm",title:"Wiederherstellen",onClick:()=>Vs(s),children:"â© Wiederherstellen"}),g&&!s.deletedAt&&e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Bearbeiten",onClick:()=>Zs(s),children:"âï¸"}),g&&!s.deletedAt&&e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Löschen",onClick:()=>{ye(s),ke("")},children:"ð"}),g&&!s.deletedAt&&e.jsx("button",{className:"btn btn-outline btn-sm",onClick:()=>ne(s.id),children:"Ãffnen â"})]})]}),we===s.id&&e.jsx("tr",{children:e.jsxs("td",{colSpan:6,style:{background:"var(--paper)",padding:"1rem"},children:[k[s.id]&&e.jsxs("div",{className:"card mb2",style:{padding:"0.8rem"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Nutzung & Profil"}),e.jsx("div",{className:"flex g1 wrap mb1",children:[["Material",k[s.id].stats.materials],["Einheiten",k[s.id].stats.units],["Aufträge",`${k[s.id].stats.projects} (${k[s.id].stats.openProjects} offen)`],["Kunden",k[s.id].stats.customers],["Benutzer",`${k[s.id].stats.activeUsers}/${k[s.id].stats.users}`],["Aktionen 30 T.",k[s.id].stats.actions30d],["Offener Saldo",`${Number(k[s.id].stats.openBalance).toLocaleStr
23ing("de-DE")} â¬`],["Support-Tickets",k[s.id].stats.tickets]].map(([t,I])=>e.jsxs("div",{style:{flex:"1 0 110px",background:"var(--bg)",borderRadius:8,padding:"0.4rem 0.6rem"},children:[e.jsx("div",{className:"txs muted",children:t}),e.jsx("div",{className:"fw7",children:I})]},t))}),e.jsxs("div",{className:"txs muted mb1",children:["Letzte Aktivität: ",k[s.id].stats.lastActivity?new Date(k[s.id].stats.lastActivity).toLocaleString("de-DE"):"nie"]}),e.jsx("div",{className:"flex g05 wrap",children:k[s.id].adoption.map(t=>e.jsxs("span",{className:`badge ${t.used?"b-green":"b-gray"}`,title:t.used?`${t.n}à genutzt`:"nicht genutzt",children:[t.used?"â":"â"," ",t.label]},t.label))})]}),e.jsxs("div",{className:"grid g2",style:{margin:0,alignItems:"start"},children:[e.jsxs("div",{className:"card",style:{padding:"1rem"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Buchung & Konditionen"}),g&&j?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Paket"}),e.jsxs("select",{value:j.planId,onChange:t=>K({...j,planId:t.target.value}),children:[e.jsx("option",{value:"",children:"â kein Paket â"}),re.map(t=>e.jsx("option",{value:t.id,children:t.name},t.id))]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Abrechnung"}),e.jsxs("select",{value:j.billingCycle,onChange:t=>K({...j,billingCycle:t.target.value}),children:[e.jsx("option",{value:"monthly",children:"Monatlich"}),e.jsx("option",{value:"yearly",children:"Jährlich"})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Status"}),e.jsx("select",{value:j.status,onChange:t=>K({...j,status:t.target.value}),children:Fe.map(([t,I])=>e.jsx("option",{value:t,children:I},t))})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Testphase endet"}),e.jsx("input",{type:"date",value:j.trialEndsAt,onChange:t=>K({...j,trialEndsAt:t.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Sonderpreis â¬/Monat (leer = Listenpreis)"}),e.jsx("input",{type:"number",step:"0.01",min:"0",value:j.customPrice,onChange:t=>K({...j,customPrice:t.target.value})})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Konditionen / Notiz"}),e.jsx("textarea",{rows:2,value:j.conditions,onChange:t=>K({...j,conditions:t.target.value})})]}),e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x,onClick:()=>Ys(s.id),children:"Buchung speichern"}),e.jsxs("div",{className:"txs muted mt1",children:["Zahlungsart: ",{sepa:"ð¦ SEPA-Lastschrift (Auto-Abbuchung)",paypal:"ð
¿ï¸ PayPal (Auto-Abbuchung)",invoice:"ð Ãberweisung"}[s.paymentType]||"keine hinterlegt"," ",'· verwaltet der Kunde unter âMein Vertrag"']})]}):e.jsxs("div",{className:"tsm",children:[e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Paket"}),e.jsx("span",{className:"fw7",children:(a==null?void 0:a.planName)||"â"})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Status"}),e.jsx("span",{children:Ne(a==null?void 0:a.status)})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Preis"}),e.jsx("span",{children:i!=null?`⬠${i}/Monat`:"â"})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Zahlung"}),e.jsx("span",{children:{sepa:"SEPA-Lastschrift",paypal:"PayPal",invoice:"Ãberweisung"}[s.paymentType]||"â"})]}),(a==null?void 0:a.conditions)&&e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Konditionen"}),e.jsx("span",{children:a.conditions})]})]})]}),e.jsxs("div",{className:"card",style:{padding:"1rem"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Benutzerkonten"}),H[s.id]===null||H[s.id]===void 0?e.jsx("div",{className:"empty",children:"Lädt â¦"}):H[s.id].length===0?e.jsx("div",{className:"empty",children:"Keine Benutzer."}):b&&b.companyId===s.id?e.jsxs("form",{onSubmit:Hs,children:[e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Name"}),e.jsx("input",{value:b.form.name,onChange:t=>R({...b,form:{...b.form,name:t.target.value}}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"E-Mail"}),e.jsx("input",{type:"email",value:b.form.email,onChange:t=>R({...b,form:{...b.form,email:t.target.value}}),required:!0})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Neues Passwort (leer = unverändert)"}),e.jsx("input",{type:"password",value:b.form.newPassword,minLength:8,onChange:t=>R({...b,form:{...b.form,newPassword:t.target.value}}),placeholder:"â¢â¢â¢â¢â¢â¢â¢â¢"})]}),e.jsxs("div",{className:"flex g1 ic mb1",children:[e.jsxs("label",{className:"flex ic g1 tsm",style:{cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:b.form.active,onChange:t=>R({...b,form:{...b.form,active:t.target.checked}})})," Aktiv"]}),e.jsxs("label",{className:"flex ic g1 tsm",style:{cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:b.form.emailVerified,onChange:t=>R({...b,form:{...b.form,emailVerified:t.target.checked}})})," E-Mail bestätigt"]})]}),e.jsxs("div",{className:"flex g1",children:[e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x,children:"Speichern"}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>R(null),children:"Abbrechen"})]})]}):e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Name"}),e.jsx("th",{children:"E-Mail"}),e.jsx("th",{children:"Rolle"}),e.jsx("th",{children:"Status"}),g&&e.jsx("th",{})]})}),e.jsx("tbody",{children:H[s.id].map(t=>e.jsxs("tr",{children:[e.jsx("td",{className:"fw7",children:t.name}),e.jsx("td",{className:"tsm",children:t.email}),e.jsx("td",{className:"tsm",children:t.role||"â"}),e.jsxs("td",{children:[e.jsx("span",{className:`badge ${t.active?"b-green":"b-red"}`,children:t.active?"Aktiv":"Inaktiv"}),!t.emailVerified&&e.jsx("span",{className:"badge b-yellow",style:{marginLeft:4},children:"Unbestätigt"})]}),g&&e.jsx("td",{style:{textAlign:"right"},children:e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>Gs(s.id,t),children:"âï¸"})})]},t.id))})]})]})]})]})})]},s.id)})})]}):e.jsx("div",{className:"empty",children:"Lädt â¦"})]})]}),u==="plans"&&g&&e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb2",children:[e.jsx("h3",{style:{margin:0},children:"Pakete & Preise"}),e.jsx("button",{className:"btn btn-accent btn-sm",onClick:()=>ss(null),children:"+ Neues Paket"})]}),e.jsx("div",{className:"tsm muted mb2",children:"Diese Pakete und Preise er
23scheinen live auf der öffentlichen Webseite und in der Paket-Buchung."}),r&&e.jsxs("form",{onSubmit:Js,className:"card mb2",style:{background:"var(--paper)"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:r.id?`Paket bearbeiten: ${r.name}`:"Neues Paket"}),e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Code (URL-Kürzel) *"}),e.jsx("input",{value:r.code,onChange:s=>A({...r,code:s.target.value}),required:!0,disabled:!!r.id})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Name *"}),e.jsx("input",{value:r.name,onChange:s=>A({...r,name:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Untertitel"}),e.jsx("input",{value:r.tierLabel,onChange:s=>A({...r,tierLabel:s.target.value}),placeholder:"z. B. Beliebteste Wahl"})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Beschreibung"}),e.jsx("textarea",{rows:2,value:r.description,onChange:s=>A({...r,description:s.target.value})})]}),e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Preis â¬/Monat (monatlich)"}),e.jsx("input",{type:"number",step:"0.01",min:"0",value:r.priceMonthly,onChange:s=>A({...r,priceMonthly:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Preis â¬/Monat (jährlich)"}),e.jsx("input",{type:"number",step:"0.01",min:"0",value:r.priceYearly,onChange:s=>A({...r,priceYearly:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Testphase (Tage)"}),e.jsx("input",{type:"number",min:"0",value:r.trialDays,onChange:s=>A({...r,trialDays:s.target.value})})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:'Leistungen (eine pro Zeile, â- " davor = nicht enthalten)'}),e.jsx("textarea",{rows:6,value:r.featuresText,onChange:s=>A({...r,featuresText:s.target.value})})]}),e.jsxs("div",{className:"flex g1 ic mb1",children:[e.jsxs("label",{className:"flex ic g1 tsm",style:{cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:r.featured,onChange:s=>A({...r,featured:s.target.checked})}),' Als âEmpfohlen" hervorheben']}),e.jsxs("label",{className:"flex ic g1 tsm",style:{cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:r.active,onChange:s=>A({...r,active:s.target.checked})})," Aktiv (öffentlich buchbar)"]}),e.jsxs("div",{className:"fg",style:{margin:0,width:110},children:[e.jsx("label",{className:"lbl",children:"Sortierung"}),e.jsx("input",{type:"number",value:r.sort,onChange:s=>A({...r,sort:s.target.value})})]})]}),e.jsxs("div",{className:"flex g1",children:[e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x,children:x?"Speichern â¦":"Speichern"}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>A(null),children:"Abbrechen"})]})]}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Paket"}),e.jsx("th",{children:"Monatlich"}),e.jsx("th",{children:"Jährlich"}),e.jsx("th",{children:"Test"}),e.jsx("th",{children:"Status"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:re.map(s=>e.jsxs("tr",{className:"rowh",children:[e.jsxs("td",{className:"fw7",children:[s.name," ",s.featured&&e.jsx("span",{className:"badge b-accent",children:"Empfohlen"}),e.jsx("div",{className:"txs muted",children:s.tierLabel})]}),e.jsxs("td",{children:["⬠",s.priceMonthly,"/M"]}),e.jsxs("td",{children:["⬠",s.priceYearly,"/M"]}),e.jsxs("td",{children:[s.trialDays," Tage"]}),e.jsx("td",{children:e.jsx("span",{className:`badge ${s.active?"b-green":"b-gray"}`,children:s.active?"Aktiv":"Inaktiv"})}),e.jsx("td",{style:{textAlign:"right"},children:e.jsx("button",{className:"btn btn-outline btn-sm",onClick:()=>ss(s),children:"Bearbeiten"})})]},s.id))})]})]}),u==="invoices"&&g&&e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb2 wrap g1",children:[e.jsx("h3",{style:{margin:0}
23,children:"Abo-Rechnungen"}),e.jsxs("div",{className:"flex g1 ic",children:[e.jsxs("select",{value:ge,onChange:s=>Ms(s.target.value),style:{width:260},children:[e.jsx("option",{value:"",children:"Firma wählen â¦"}),($||[]).filter(s=>{var a;return(a=s.subscription)==null?void 0:a.planId}).map(s=>e.jsxs("option",{value:s.id,children:[s.name," (",s.subscription.planName,")"]},s.id))]}),e.jsx("button",{className:"btn btn-accent btn-sm",disabled:!ge||x,onClick:_s,children:"+ Rechnung erstellen"})]})]}),e.jsx("div",{className:"tsm muted mb2",children:'Erstellt die Rechnung für die nächste Abrechnungsperiode aus dem zugewiesenen Paket (Sonderpreis wird berücksichtigt). Beim Setzen auf âVersendet" wird sie an das Betreiber-Lexware übertragen (sofern API-Schlüssel in den Einstellungen hinterlegt) und â bei Zustimmung des Kunden â automatisch in dessen Buchhaltung hochgeladen.'}),z&&e.jsxs("div",{className:"card mb2",style:{background:"var(--paper)"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Manuelle Rechnungspositionen (nur Entwürfe)"}),z.lines.map((s,a)=>e.jsxs("div",{className:"flex g1 ic mb1",children:[e.jsx("input",{style:{flex:1},value:s.name,placeholder:"Bezeichnung",onChange:i=>O({...z,lines:z.lines.map((t,I)=>I===a?{...t,name:i.target.value}:t)})}),e.jsx("input",{type:"number",step:"0.01",style:{width:130},value:s.amount,placeholder:"Netto â¬",onChange:i=>O({...z,lines:z.lines.map((t,I)=>I===a?{...t,amount:i.target.value}:t)})}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>O({...z,lines:z.lines.filter((i,t)=>t!==a)}),children:"ð"})]},a)),e.jsxs("div",{className:"flex g1",children:[e.jsx("button",{className:"btn btn-outline btn-sm",onClick:()=>O({...z,lines:[...z.lines,{name:"",amount:0}]}),children:"+ Position"}),e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x||!z.lines.length,onClick:$s,children:"Positionen speichern"}),e.jsx("button",{className:"btn btn-sm",onClick:()=>O(null),children:"Abbrechen"})]})]}),pe?pe.length===0?e.jsx("div",{className:"empty",children:"Noch keine Rechnungen erstellt."}):e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Nummer"}),e.jsx("th",{children:"Firma"}),e.jsx("th",{children:"Zeitraum"}),e.jsx("th",{style:{textAlign:"right"},children:"Brutto"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Ãbermittlung"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:pe.map(s=>e.jsxs("tr",{className:"rowh",children:[e.jsx("td",{className:"fw7 mono",children:s.number}),e.jsx("td",{className:"tsm",children:s.companyName}),e.jsxs("td",{className:"tsm",children:[new Date(s.periodStart).toLocaleDateString("de-DE")," â ",new Date(s.periodEnd).toLocaleDateString("de-DE")]}),e.jsxs("td",{className:"tsm fw7",style:{textAlign:"right"},children:[Number(s.grossTotal).toLocaleString("de-DE",{minimumFractionDigits:2})," â¬"]}),e.jsx("td",{children:e.jsx("span",{className:`badge ${{draft:"b-gray",sent:"b-blue",paid:"b-green",cancelled:"b-red"}[s.status]}`,children:{draft:"Entwurf",sent:"Versendet",paid:"Bezahlt",cancelled:"Storniert"}[s.status]})}),e.jsxs("td",{className:"txs muted",children:[s.paymentMethod?`${{sepa:"SEPA â",paypal:"PayPal â"}[s.paymentMethod]||s.paymentMethod} · `:"",s.lexwareId?"Lexware â ":"",s.customerPush||""]}),e.jsxs("td",{style:{textAlign:"right",whiteSpace:"nowrap"},children:[s.status==="draft"&&e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Positionen bearbeiten",onClick:()=>O({id:s.id,lines:s.lines.map(a=>({...a}))}),children:"âï¸"}),s.status==="draft"&&e.jsx("button",{className:"btn btn-outline btn-sm",disabled:x,onClick:()=>De(s,"sent"),children:"â Versenden"}),s.status==="sent"&&e.jsx("button",{className:"btn btn-outline btn-sm",disabled:x,onClick:()=>De(s,"paid"),children:"â Bezahlt"}),s.status!=="cancelled"&&s.status!=="paid"&&e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Stornieren",disabled:x,onClick:()=>De(s,"cancelled"),children:"â"})]})]},s.id))})]}):e.jsx("div",{className:"empty",children:"Lädt â¦"})]}),u==="settings"&&g&&e.jsxs("div",{className:"card mb2",style:{maxWidth:720},children:[e.jsx("h3",{style:{margin:"0 0 0.4rem"},children:"Betreiber-Einstellungen"}),e.jsx("div",{className:"tsm muted mb2",children:"Diese Daten erscheinen auf allen Abo-Rechnu
23ngen (Kopf, Bankverbindung, Zahlungsziel) und steuern die Lexware-Ãbertragung des Betreiber-Kontos."}),m?e.jsxs("form",{onSubmit:Us,children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Rechnungsabsender"}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firmenname"}),e.jsx("input",{value:m.senderName||"",onChange:s=>y({...m,senderName:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"E-Mail"}),e.jsx("input",{value:m.senderEmail||"",onChange:s=>y({...m,senderEmail:s.target.value})})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Anschrift"}),e.jsx("textarea",{rows:2,value:m.senderAddress||"",onChange:s=>y({...m,senderAddress:s.target.value})})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"USt-IdNr."}),e.jsx("input",{value:m.vatId||"",onChange:s=>y({...m,vatId:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Steuernummer"}),e.jsx("input",{value:m.taxNumber||"",onChange:s=>y({...m,taxNumber:s.target.value})})]})]}),e.jsx("div",{className:"section-title",children:"Bankverbindung"}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Kontoinhaber"}),e.jsx("input",{value:m.accountHolder||"",onChange:s=>y({...m,accountHolder:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Bank"}),e.jsx("input",{value:m.bankName||"",onChange:s=>y({...m,bankName:s.target.value})})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"IBAN"}),e.jsx("input",{value:m.iban||"",onChange:s=>y({...m,iban:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"BIC"}),e.jsx("input",{value:m.bic||"",onChange:s=>y({...m,bic:s.target.value})})]})]}),e.jsx("div",{className:"section-title",children:"Abrechnung"}),e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Rechnungs-Präfix"}),e.jsx("input",{value:m.invoicePrefix||"RIG",onChange:s=>y({...m,invoicePrefix:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"USt-Satz %"}),e.jsx("input",{type:"number",step:"0.1",value:m.vatRate??19,onChange:s=>y({...m,vatRate:Number(s.target.value)})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Zahlungsziel (Tage)"}),e.jsx("input",{type:"number",value:m.paymentTermsDays??14,onChange:s=>y({...m,paymentTermsDays:Number(s.target.value)})})]})]}),e.jsx("div",{className:"section-title",children:"Lexware (Betreiber-Konto)"}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Lexware/lexoffice API-Schlüssel"}),e.jsx("input",{type:"password",value:m.lexwareApiKey||"",placeholder:"leer = keine Ãbertragung",onChange:s=>y({...m,lexwareApiKey:s.target.value})})]}),e.jsx("div",{className:"section-title",style:{color:"var(--red)"},children:"Wartungsmodus"}),e.jsxs("label",{className:"flex ic g1 tsm mb2",style:{cursor:"pointer",padding:"0.7rem 0.9rem",border:`1.5px solid ${m.maintenanceMode?"var(--red)":"var(--line)"}`,borderRadius:10,background:m.maintenanceMode?"var(--red-bg)":"transparent"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:!!m.maintenanceMode,onChange:s=>y({...m,maintenanceMode:s.target.checked})}),e.jsxs("span",{children:[e.jsx("b",{children:"ð§ Wartungsmodus aktivieren"})," â sperrt Login und App für alle normalen Nutzer (bestehende Sitzungen enden). Ãffentlich bleibt nur die Wartungsseite mit dem KI-Assistenten; Admin und Supporter können sich weiter anmelden."]})]}),e.jsx("button",{className:"btn btn-accent",disabled:x,children:x?"Speichern â¦":"Einstellungen speichern"})]}):e.jsx("div",{className:"empty",children:"Lädt â¦"}),e.jsx("div",{className:"divider"}),e.jsx("div",{className:"section-title",children:"E-Mail-Verteiler"}),e.jsxs("div",{className:"tsm muted mb1",children:["Sendet eine Mail im Riggr-Design (Logo + Branding) an ",e.jsx("b",{children:"alle aktiven Nutzer"}
23)," aller Firmen â z. B. für Wartungsankündigungen oder neue Funktionen."]}),e.jsxs("form",{onSubmit:Ks,children:[e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Empfänger-Segment"}),e.jsxs("select",{value:F.segment,onChange:s=>ee({...F,segment:s.target.value}),children:[e.jsx("option",{value:"all",children:"Alle aktiven Nutzer"}),e.jsx("option",{value:"trials",children:"Nur Trial-Firmen"}),e.jsx("option",{value:"active",children:"Nur zahlende Firmen"}),e.jsx("option",{value:"inactive",children:"Nur inaktive Firmen (30 T.)"}),e.jsx("option",{value:"plan",children:"Nur ein bestimmtes Paket"})]})]}),F.segment==="plan"&&e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Paket"}),e.jsxs("select",{value:F.planId,onChange:s=>ee({...F,planId:s.target.value}),children:[e.jsx("option",{value:"",children:"â wählen â"}),(re||[]).map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Betreff *"}),e.jsx("input",{value:F.subject,onChange:s=>ee({...F,subject:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Nachricht *"}),e.jsx("textarea",{rows:5,value:F.message,onChange:s=>ee({...F,message:s.target.value}),required:!0})]}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x,children:x?"Senden â¦":`ð¨ An ${es[F.segment]||"alle"} senden`}),Y&&e.jsx("span",{className:`badge ${Y.mailEnabled?"b-green":"b-yellow"}`,style:{marginLeft:"0.6rem"},children:Y.mailEnabled?`${Y.sent}/${Y.recipients} E-Mails versendet â`:`${Y.recipients} Empfänger gefunden â SMTP nicht konfiguriert, nichts versendet`})]})]}),u==="tickets"&&e.jsxs("div",{className:"grid",style:{gridTemplateColumns:"minmax(280px,380px) 1fr",alignItems:"start",margin:0,marginBottom:"1rem"},children:[e.jsxs("div",{className:"card",children:[e.jsx("h3",{style:{margin:"0 0 0.8rem"},children:"Supportanfragen"}),J?J.length===0?e.jsx("div",{className:"empty",children:"Keine Anfragen."}):J.map(s=>e.jsxs("div",{onClick:()=>Te(s),className:"flex jb ic mb1",style:{padding:"0.6rem 0.75rem",borderRadius:10,cursor:"pointer",border:`1.5px solid ${(v==null?void 0:v.id)===s.id?"var(--accent)":"var(--line)"}`,background:(v==null?void 0:v.id)===s.id?"var(--accent-soft)":"var(--surface)"},children:[e.jsxs("div",{style:{minWidth:0},children:[e.jsxs("div",{className:"fw7 tsm",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s.subject,s.unread>0&&e.jsxs("span",{className:"badge b-accent",style:{marginLeft:6},children:[s.unread," neu"]})]}),e.jsx("div",{className:"txs muted",children:e.jsxs("span",{style:{color:"var(--accent-d)",textDecoration:"underline",cursor:"pointer"},onClick:a=>{a.stopPropagation(),Je(s.companyId)},title:"Paket & Buchung dieser Firma ansehen",children:[s.companyName," · ",s.userName]})})]}),e.jsx("span",{className:`badge ${{open:"b-blue",answered:"b-green",closed:"b-gray"}[s.status]}`,children:{open:"Offen",answered:"Beantwortet",closed:"Geschlossen"}[s.status]})]},s.id)):e.jsx("div",{className:"empty",children:"Lädt â¦"})]}),e.jsx("div",{className:"card",style:{minHeight:420,display:"flex",flexDirection:"column"},children:v?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex jb ic mb1 wrap g1",children:[e.jsxs("div",{children:[e.jsx("div",{className:"fw7",children:v.subject}),e.jsxs("div",{className:"txs muted",children:[e.jsxs("span",{style:{color:"var(--accent-d)",textDecoration:"underline",cursor:"pointer"},onClick:()=>Je(v.companyId),title:"Paket & Buchung ansehen",children:[v.companyName," · ",v.userName]})," · ",new Date(v.createdAt).toLocaleString("de-DE")]})]}),v.status!=="closed"&&e.jsx("button",{className:"btn btn-outline btn-sm",onClick:()=>W(E?null:{title:"",occurredAt:"",description:"",resolution:""}),children:E?"Abbrechen":"â AbschlieÃen + Bericht"})]}),e.jsx("div",{className:"divider"}),e.jsx("div",{style:{flex:1,overflowY:"auto",display:"flex",flexDirection:"column",gap:"0.55rem",padding:"0.4rem 0"},children:v.messages.map(s=>e.jsxs("div",{style:{maxWidth:"85%",padding:"0.55rem 0.8rem",borderRadius:12,fontSize:"0.84rem",lineHeight:1.5,whiteSpace:"pre-wrap",alignSelf:s.authorKind==="staff"?"flex-end":"flex-start",background:s.authorKind==="staff"?"linear-gradient(135deg,var(--accent),var(--accent-d))":"var(--paper)",color:s.authorKind==="staff"?"#fff":"var(--ink)",border:s.authorKind==="staff"?"none":"1px solid var(--line)"},children:[e.jsxs("div",{className:"txs",style:{opacity:.75,marginBottom:2},children:[s.authorName," · ",new Date(s.createdAt).toLocaleStr
23ing("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]}),s.body]},s.id))}),E?e.jsxs("form",{onSubmit:sa,className:"card",style:{background:"var(--paper)",boxShadow:"none",padding:"0.9rem"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Supportbericht (optional, empfohlen)"}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Fehler (Kurzbeschreibung)"}),e.jsx("input",{value:E.title,onChange:s=>W({...E,title:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Aufgetreten am"}),e.jsx("input",{type:"datetime-local",value:E.occurredAt,onChange:s=>W({...E,occurredAt:s.target.value})})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Wie ist der Fehler aufgetreten?"}),e.jsx("textarea",{rows:2,value:E.description,onChange:s=>W({...E,description:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Was wurde dagegen gemacht?"}),e.jsx("textarea",{rows:2,value:E.resolution,onChange:s=>W({...E,resolution:s.target.value})})]}),e.jsxs("button",{className:"btn btn-accent btn-sm",disabled:x,children:["Anfrage schlieÃen",(cs=E.title)!=null&&cs.trim()?" + Bericht speichern":""]})]}):v.status!=="closed"?e.jsxs("form",{onSubmit:ea,className:"flex g1",style:{paddingTop:"0.7rem",borderTop:"1px solid var(--line)"},children:[e.jsx("input",{value:me,onChange:s=>Ye(s.target.value),placeholder:"Antwort an den Kunden â¦"}),e.jsx("button",{className:"btn btn-accent",disabled:x||!me.trim(),children:"Senden"})]}):e.jsxs("div",{className:"tsm muted",style:{paddingTop:"0.6rem",borderTop:"1px solid var(--line)"},children:["Geschlossen",v.report?` · Bericht: ${v.report.title}`:""]})]}):e.jsx("div",{className:"empty",style:{margin:"auto"},children:"Anfrage links auswählen."})})]}),u==="reports"&&e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb2",children:[e.jsx("h3",{style:{margin:0},children:"Supportberichte"}),e.jsx("button",{className:"btn btn-accent btn-sm",onClick:()=>Z(w?null:{title:"",occurredAt:"",description:"",resolution:"",companyId:""}),children:w?"Abbrechen":"+ Bericht (Live-Support)"})]}),e.jsx("div",{className:"tsm muted mb2",children:"Nach jedem Live-Support-Einsatz (z. B. per Support-Schlüssel) wird hier festgehalten, welcher Fehler auftrat, wie und wann er auftrat und was dagegen unternommen wurde."}),w&&e.jsxs("form",{onSubmit:aa,className:"card mb2",style:{background:"var(--paper)"},children:[e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Fehler (Kurzbeschreibung) *"}),e.jsx("input",{value:w.title,onChange:s=>Z({...w,title:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Aufgetreten am"}),e.jsx("input",{type:"datetime-local",value:w.occurredAt,onChange:s=>Z({...w,occurredAt:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firma"}),e.jsxs("select",{value:w.companyId,onChange:s=>Z({...w,companyId:s.target.value}),children:[e.jsx("option",{value:"",children:"â keine â"}),($||[]).map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Wie ist der Fehler aufgetreten?"}),e.jsx("textarea",{rows:2,value:w.description,onChange:s=>Z({...w,description:s.target.value})})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Was wurde dagegen gemacht?"}),e.jsx("textarea",{rows:2,value:w.resolution,onChange:s=>Z({...w,resolution:s.target.value})})]}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x,children:"Bericht speichern"})]}),he?he.length===0?e.jsx("div",{className:"empty",children:"Noch keine Berichte."}):he.map(s=>e.jsxs("div",{className:"card mb1",style:{background:"var(--paper)",boxShadow:"none",padding:"0.9rem 1rem"},children:[e.jsxs("div",{className:"flex jb ic wrap g1",children:[e.jsx("div",{className:"fw7",children:s.title}),e.jsxs("div",{className:"txs muted",children:[s.companyName?`${s.companyName} · `:"",s.authorName," · ",new Date(s.createdAt).toLocaleDateString("de-DE"),s.ticketId&&e.jsx("span",{className:"badge b-blue",style:{marginLeft:6},children:"aus Anfrage"})]})]}),s.occurredAt&&e.jsxs("div",{className:"tsm mt1",children:[e.jsx("b",{children:"Aufgetreten:"}
23)," ",new Date(s.occurredAt).toLocaleString("de-DE")]}),s.description&&e.jsxs("div",{className:"tsm mt1",children:[e.jsx("b",{children:"Hergang:"})," ",s.description]}),s.resolution&&e.jsxs("div",{className:"tsm mt1",children:[e.jsx("b",{children:"MaÃnahme:"})," ",s.resolution]})]},s.id)):e.jsx("div",{className:"empty",children:"Lädt â¦"})]}),u==="staff"&&g&&e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb2",children:[e.jsx("h3",{style:{margin:0},children:"Benutzerkonten anlegen"}),e.jsx("button",{className:"btn btn-accent btn-sm",onClick:()=>_(N?null:{name:"",email:"",password:"",supporter:!0,companyId:""}),children:N?"Abbrechen":"+ Neues Konto"})]}),e.jsxs("div",{className:"tsm muted mb2",children:["Konten mit Rang ",e.jsx("b",{children:"Supporter"})," sehen das Support-Center (Firmenliste, Anfragen, Berichte, Support-Zugang), aber keine Pakete, Buchungen oder anderen Konten. Wird zusätzlich eine ",e.jsx("b",{children:"Firma"})," zugewiesen, agiert das Konto dort wie ein ganz normaler Benutzer und kann die Funktionen des gebuchten Pakets nutzen."]}),N&&e.jsxs("form",{onSubmit:Qs,className:"card mb2",style:{background:"var(--paper)"},children:[e.jsxs("div",{className:"row-3",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Name *"}),e.jsx("input",{value:N.name,onChange:s=>_({...N,name:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"E-Mail *"}),e.jsx("input",{type:"email",value:N.email,onChange:s=>_({...N,email:s.target.value}),required:!0})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Passwort (min. 8) *"}),e.jsx("input",{type:"password",minLength:8,value:N.password,onChange:s=>_({...N,password:s.target.value}),required:!0})]})]}),e.jsxs("div",{className:"row-2",children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Rang"}),e.jsxs("label",{className:"flex ic g1 tsm",style:{cursor:"pointer",paddingTop:"0.5rem"},children:[e.jsx("input",{type:"checkbox",style:{width:"auto"},checked:N.supporter,onChange:s=>_({...N,supporter:s.target.checked})}),"ð Supporter (Zugang zum Support-Center)"]})]}),e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firma (optional â normales Nutzerkonto)"}),e.jsxs("select",{value:N.companyId,onChange:s=>_({...N,companyId:s.target.value}),children:[e.jsx("option",{value:"",children:"â keine Firma â"}),($||[]).map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})]})]}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x||!N.supporter&&!N.companyId,children:x?"Anlegen â¦":"Konto anlegen"}),!N.supporter&&!N.companyId&&e.jsx("span",{className:"txs muted",style:{marginLeft:"0.6rem"},children:"Mindestens Rang oder Firma wählen."})]}),e.jsx("div",{className:"section-title",children:"Supporter-Konten"}),de?de.length===0?e.jsx("div",{className:"empty",children:"Noch keine Supporter-Konten."}):e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Name"}),e.jsx("th",{children:"E-Mail"}),e.jsx("th",{children:"Firma"}),e.jsx("th",{children:"Status"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:de.map(s=>e.jsxs("tr",{className:"rowh",children:[e.jsx("td",{className:"fw7",children:s.name}),e.jsx("td",{className:"tsm",children:s.email}),e.jsx("td",{className:"tsm",children:s.company_name||"â"}),e.jsx("td",{children:e.jsx("span",{className:`badge ${s.active?"b-green":"b-red"}`,children:s.active?"Aktiv":"Deaktiviert"})}),e.jsx("td",{style:{textAlign:"right",whiteSpace:"nowrap"},children:(U==null?void 0:U.id)===s.id?e.jsxs("span",{className:"flex g1 ic",style:{justifyContent:"flex-end"},children:[e.jsx("input",{type:"password",placeholder:"Neues Passwort",style:{width:170},value:U.value,onChange:a=>oe({...U,value:a.target.value})}),e.jsx("button",{className:"btn btn-accent btn-sm",disabled:x||U.value.length<8,onClick:async()=>{try{await Me(s.id,{newPassword:U.value}),oe(null),B("Passwort gesetzt â")}catch(a){l(a.message)}},children:"OK"}),e.jsx("button",{className:"btn btn-sm",onClick:()=>oe(null),children:"â"})]}):e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Passwort setzen",onClick:()=>oe({id:s.id,value:""}),children:"ð"}),e.jsx("button",{className:"btn btn-ghost btn-sm",title:s.active?"Deaktivieren":"Aktivieren",onClick:async()=>{try{await Me(s.id,{active:!s.active}),await ve()}catch(a){l(a.message)}},children:s.active?"â¸":"â¶ï¸"}),e.jsx("button",{className:"btn btn-ghost btn-sm",title:"Löschen",onClick:async()=>
23{if(confirm(`Supporter â${s.name}" löschen?`))try{await ys(s.id),await ve()}catch(a){l(a.message)}},children:"ð"})]})})]},s.id))})]}):e.jsx("div",{className:"empty",children:"Lädt â¦"}),e.jsx("div",{className:"section-title",style:{marginTop:"1.5rem"},children:"Rang eines bestehenden Nutzers"}),e.jsx("div",{className:"tsm muted mb2",children:"Ein Firmenkonto kann zusätzlich einen Plattform-Rang tragen. Es bleibt dann ganz normal in seiner Firma angemeldet und wechselt über die Seitenleiste ins Panel."}),e.jsx("div",{className:"row-2",children:e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Firma"}),e.jsxs("select",{value:Ce,onChange:async s=>{const a=s.target.value;if(Ds(a),Pe(null),a)try{Pe(await le(a))}catch(i){l(i.message)}},children:[e.jsx("option",{value:"",children:"â Firma wählen â"}),($||[]).map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})]})}),Ce&&(Ae?Ae.length===0?e.jsx("div",{className:"empty",children:"Diese Firma hat keine Benutzer."}):e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Name"}),e.jsx("th",{children:"E-Mail"}),e.jsx("th",{children:"Rolle"}),e.jsx("th",{children:"Plattform-Rang"})]})}),e.jsx("tbody",{children:Ae.map(s=>e.jsxs("tr",{className:"rowh",children:[e.jsx("td",{className:"fw7",children:s.name}),e.jsx("td",{className:"tsm",children:s.email}),e.jsx("td",{className:"tsm muted",children:s.role||"â"}),e.jsx("td",{children:e.jsxs("select",{className:"tsm",style:{width:"auto"},value:s.rank||"",onChange:async a=>{const i=a.target.value||null;try{await p.put(`/platform/users/${s.id}/rank`,{rank:i}),Pe(await le(Ce)),B("Rang gesetzt â")}catch(t){l(t.message)}},children:[e.jsx("option",{value:"",children:"â keiner â"}),e.jsx("option",{value:"supporter",children:"Supporter"}),e.jsx("option",{value:"admin",children:"Admin"})]})})]},s.id))})]}):e.jsx("div",{className:"empty",children:"Lädt â¦"}))]}),u==="audit"&&g&&e.jsxs("div",{className:"card mb2",children:[e.jsxs("div",{className:"flex jb ic mb1",children:[e.jsx("h3",{style:{margin:0},children:"ð¡ Admin-Audit-Log"}),e.jsx("span",{className:"txs muted",children:"Privilegierte Aktionen (Firma betreten, Abo geändert, Löschung, Broadcast â¦)"})]}),je?je.length===0?e.jsx("div",{className:"empty",children:"Noch keine Einträge."}):e.jsx("div",{style:{overflowX:"auto"},children:e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Zeitpunkt"}),e.jsx("th",{children:"Akteur"}),e.jsx("th",{children:"Aktion"}),e.jsx("th",{children:"Firma"}),e.jsx("th",{children:"Details"})]})}),e.jsx("tbody",{children:je.map(s=>e.jsxs("tr",{children:[e.jsx("td",{className:"tsm",style:{whiteSpace:"nowrap"},children:new Date(s.created_at).toLocaleString("de-DE")}),e.jsxs("td",{className:"tsm",children:[s.actor_name||"â",s.actor_role&&e.jsxs("span",{className:"txs muted",children:[" · ",s.actor_role]})]}),e.jsx("td",{children:e.jsx("span",{className:"badge b-gray",children:da[s.action]||s.action})}),e.jsx("td",{className:"tsm fw7",children:s.target_company_name||"â"}),e.jsx("td",{className:"txs muted",children:s.detail&&Object.keys(s.detail).length?Object.entries(s.detail).map(([a,i])=>`${a}: ${i}`).join(" · "):""})]},s.id))})]})}):e.jsx("div",{className:"empty",children:"Lädt â¦"})]}),u==="support"&&e.jsxs("div",{className:"card mb2",style:{maxWidth:560},children:[e.jsx("h3",{style:{margin:"0 0 0.6rem"},children:"Support-Zugang zu einem Nutzerkonto"}),e.jsxs("div",{className:"tsm muted mb2",children:['Der Nutzer erzeugt in seinem Profil unter âSupport-Zugang" einen Schlüssel (z. B. ',e.jsx("code",{className:"mono",children:"SUP-7F3K9Q2M"}),") und teilt ihn dir mit. Der Schlüssel ist einmalig gültig und verfällt nach 48 Stunden. Du arbeitest dann im Konto des Nutzers; die Sitzung ist oben deutlich markiert."]}),e.jsxs("form",{onSubmit:ta,children:[e.jsxs("div",{className:"fg",children:[e.jsx("label",{className:"lbl",children:"Support-Schlüssel"}),e.jsx("input",{className:"mono",value:ue,onChange:s=>{Ge(s.target.value.toUpperCase()),Q(null)},placeholder:"SUP-XXXXXXXX",style:{letterSpacing:"0.08em",fontSize:"1rem"}})]}),He&&e.jsx("div",{className:"login-error mb1",children:He}),!X&&e.jsx("button",{className:"btn btn-accent",disabled:!ue.trim(),children:"Schlüssel prüfen â"})]}),X&&e.jsxs("div",{className:"card mt2",style:{background:"var(--paper)",boxShadow:"none"},children:[e.jsx("div",{className:"section-title",style:{marginTop:0},children:"Benutzerfenster â Schlüssel gültig â"}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Konto"}),e.jsxs("span",{className:"fw7",children:[X.user.name," ",e.jsxs("span",{className:"muted tsm",children:["(",X.user.email,")"]})]})]}),X.company&&e.jsx(gs,{info:X.company}),e.jsxs("div",{className:"flex g1 mt2",children:[e.jsx("button",{className:"btn btn-accent",onClick:na,children:"In Benutzeroberfläche anmelden â"}),e.jsx("button",{className:"btn btn-outline",onClick:()=>{Q(null),Ge("")},children:"Abbrechen"})]}),e.jsx("div",{className:"txs muted mt1",children:"Der Schlüssel wird erst beim Anmelden verbraucht; die Sitzung wird im Aktivitätsprotokoll der Firma vermerkt."})]})]})]}),Le&&e.jsx("div",{className:"overlay",onClick:()=>ze(null),children:e.jsxs("div",{className:"modal",style:{maxWidth:480},onClick:s=>s.stopPropagation(),children:[e.jsxs("div",{className:"modal-h",children:[e.jsxs("div",{className:"modal-t",children:["ð ",Le.name]}),e.jsx("button",{className:"x",onClick:()=>ze(null),children:"Ã"})]}),e.jsx("div",{className:"modal-b",children:e.jsx(gs,{info:Le})})]})}),fe&&e.jsx(ca,{name:fe.name,busy:Cs,error:As,onConfirm:qs,onClose:()=>ye(null)})]})}function ha({children:d}){return e.jsx(e.Fragment,{children:d})}function gs({info:d}){var ae,te,ne;const f=S=>
23Number(S||0).toLocaleString("de-DE",{minimumFractionDigits:2})+" â¬",q=S=>S?new Date(S).toLocaleDateString("de-DE"):"â",T=d.subscription||{};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Firma"}),e.jsxs("span",{className:"fw7",children:[d.name,d.city?` · ${d.city}`:""]})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Paket"}),e.jsxs("span",{className:"fw7",children:[T.planName||"â"," (",T.billingCycle==="yearly"?"jährlich":"monatlich",")"]})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Status"}),e.jsx("span",{className:`badge ${Be(T.status)}`,children:Ne(T.status)})]}),T.status==="trial"&&e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Testphase bis"}),e.jsx("span",{children:q(T.trialEndsAt)})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Preis"}),e.jsxs("span",{children:[T.price!=null?`${f(T.price)} / Monat`:"â",T.conditions?` · ${T.conditions}`:""]})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Zahlung"}),e.jsxs("span",{children:[{sepa:"SEPA-Lastschrift",paypal:"PayPal",invoice:"Ãberweisung"}[(ae=d.payment)==null?void 0:ae.type]||"â",(te=d.payment)!=null&&te.gcMandate?" · GoCardless-Mandat â":""]})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Benutzer"}),e.jsxs("span",{children:[d.users,d.maxUsers?` / ${d.maxUsers}`:""]})]}),e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k",children:"Offene Anfragen"}),e.jsx("span",{children:d.openTickets})]}),((ne=d.invoices)==null?void 0:ne.length)>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"section-title",style:{marginTop:"0.8rem"},children:"Letzte Rechnungen"}),d.invoices.map(S=>e.jsxs("div",{className:"kv",children:[e.jsx("span",{className:"k mono",children:S.number}),e.jsxs("span",{className:"tsm",children:[q(S.issueDate)," · ",f(S.gross)," · ",{draft:"Entwurf",sent:S.paymentMethod?"Einzug ausstehend":"Offen",paid:"Bezahlt",cancelled:"Storniert"}[S.status]||S.status]})]},S.number))]})]})}export{ja 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.