1import{x as k,y as E,z as C,E as S,j as e,C as g,q as j,F as A,B as m,a as D,G as d,u as F,P as y,L as P,I as L}from"./main-DYlfOIww.js";import{u as w}from"./use-plan-Bx40USCH.js";import{u as B}from"./use-currency-C0dczYhG.js";import{E as $}from"./empty-state-3P0UOxLu.js";import{P as z}from"./page-header-szBkp484.js";import{f as T,a as b}from"./format-Dn5meK7I.js";import{B as l}from"./badge-DzhQ-80f.js";import{u as R}from"./useQuery-DSpxYrdW.js";import{u as I}from"./useSuspenseQuery-C5fdEsxM.js";import{u as q,a as O,F as M}from"./mutations.api-CGb4I3Nh.js";import{L as p}from"./loader-circle-BNjRN4PF.js";import{C as Q}from"./clock-BokOhfbV.js";import{F as W}from"./file-text-M1FNQ0tT.js";import{D as G}from"./download-DwuWW6D-.js";import{R as H}from"./refresh-cw-XTPaWyf9.js";import{T as K}from"./trash-2-BPsEH5cG.js";import{P as V}from"./plus-FkZKsR5j.js";import{T as f}from"./triangle-alert-SXyOEPjI.js";import{C as U}from"./calendar-fcGQbdX7.js";import{P as J}from"./package-D5g_NDfi.js";import"./plan-config-B_vp5KFQ.js";import"./currency-29d_N0R4.js";import"./useMutation-e3kvPOGX.js";const X=k().middleware([E]).handler(C("8f0ffe3a0ca23b68b08173c77cf5921cdf1fb9b7580f83176985d641539a61c2")),Y=()=>S({queryKey:["my-exports"],queryFn:()=>X()}),Z=({entry:t,className:x})=>{const{canWrite:n}=w(),{mutate:o,isPending:i}=q(),{mutate:h,isPending:c}=O(),s=t.downloadAblaufAm?new Date>new Date(t.downloadAblaufAm):!1,a=t.status==="fertig",r=t.status==="fehler",u=t.status==="ausstehend"||t.status==="verarbeitung",v=()=>{confirm("Export endgültig löschen?")&&o(t.id,{onSuccess:()=>d.success("Export gelöscht"),onError:()=>d.error("Fehler",{description:"Export konnte nicht gelöscht werden."})})},N=()=>{h(t.id,{onSuccess:()=>d.success("Neuer Download-Link erstellt",{description:"Der Link ist 7 Tage gültig."}),onError:()=>d.error("Fehler",{description:"Link konnte nicht erneuert werden."})})};return e.jsx(g,{"data-testid":`card-export-${t.id}`,className:D(x),children:e.jsx(j,{className:"p-3 sm:p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-start gap-3 min-w-0",children:[e.jsx("div",{className:`flex h-9 w-9 items-center justify-center rounded-lg bg-muted shrink-0 ${r?"text-destructive":s?"text-navy-600":"text-teal-500"}`,children:u?e.jsx(p,{className:"h-4 w-4 animate-spin"}):r?e.jsx(A,{className:"h-4 w-4"}):s?e.jsx(Q,{className:"h-4 w-4"}):e.jsx(W,{className:"h-4 w-4"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"font-medium text-sm truncate",children:t.schadenfallBezeichnung||"Export"}),a&&!s?e.jsx(l,{variant:"outline",className:"text-green-600 dark:text-green-400 border-green-200 dark:border-green-800",children:"Bereit"}):null,a&&s?e.jsx(l,{variant:"outline",className:"text-navy-600",children:"Abgelaufen"}):null,u?e.jsx(l,{variant:"secondary",children:"Wird erstellt..."}):null,r?e.jsx(l,{variant:"destructive",children:"Fehler"}):null,t.art!=="inventarbericht"&&!t.schadenfallId&&a?e.jsx(l,{variant:"outline",className:"text-navy-600 border-dashed",children:"Schadenfall gelöscht"}):null]}),e.jsxs("div",{className:"text-xs text-navy-600 mt-0.5",children:[t.erstelltAm?T(t.erstelltAm):null,a&&t.downloadAblaufAm&&!s?e.jsxs("span",{children:[" · gültig bis ",b(t.downloadAblaufAm)]}):null]}),r&&t.fehler?e.jsx("p",{className:"text-xs text-destructive mt-1",children:t.fehler}):null]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0 pl-12 sm:pl-0",children:[a&&!s&&t.downloadToken?e.jsx(m,{size:"icon",variant:"ghost",asChild:!0,"data-testid":`button-download-export-${t.id}`,children:e.jsx("a",{href:`/api/exports/${t.downloadToken}/download`,download:!0,children:e.jsx(G,{})})}):null,a&&s?e.jsxs(m,{size:"sm",variant:"outline",onClick:N,disabled:c||!n,"data-testid":`button-renew-export-${t.id}`,children:[c?e.jsx(p,{className:"animate-spin"}):e.jsx(H,{}),"Neuer Link"]}):null,e.jsx(m,{size:"icon",variant:"ghost",onClick:v,disabled:i||u||!n,"data-testid":`button-delete-export-${t.id}`,children:e.jsx(K,{})})]})]})})})},_=()=>{const t=F(),{formatDisplay:x}=B(),{canWrite:n}=w(),{data:o}=I(L()),{data:i}=R(Y()),h=s=>({Brand:"text-red-500",Wasserschaden:"text-blue-500",Leitungswasser:"text-cyan-500",Einbruch:"text-amber-500",Vandalismus:"text-orange-500","Sturm/Hagel":"text-indigo-500","Ãberspannung/Blitzschlag":"text-yellow-500",Sonstiges:"text-gray-500"})[s]||"text-gray-500",c=s=>{if(!s)return null;const a={offen:"secondary",abgeschlossen:"outline"},r={offen:"Offen",inBearbeitung:"Offen",abgeschlossen:"Abgeschlossen"};return e.jsx(l,{variant:a[s]||"outline",children:r[s]||s})};return e.jsxs(y,{className:"max-w-6xl",children:[e.jsx(z,{title:"Scha
1denfälle",description:"Dokumentiere und exportiere",actions:e.jsxs(m,{onClick:()=>t({to:"/schadenfaelle/neu"}),disabled:!n,className:"w-full sm:w-auto","data-testid":"button-new-claim",children:[e.jsx(V,{className:"shrink-0"}),"Schadenfall anlegen"]})}),o.length===0?e.jsx($,{icon:f,title:"Keine Schadenfälle",description:"Im Schadenfall kannst du hier einen neuen Fall anlegen, Gegenstände zuordnen und Exporte für deine Versicherung erstellen.",actionLabel:n?"Schadenfall erstellen":void 0,onAction:n?()=>t({to:"/schadenfaelle/neu"}):void 0,testId:"button-empty-new-claim"}):e.jsx("div",{className:"flex flex-col gap-3 w-full",children:o.map(s=>e.jsx(P,{to:"/schadenfaelle/$id",params:{id:s.id},className:"w-full",children:e.jsx(g,{className:"hover-elevate cursor-pointer","data-testid":`card-claim-${s.id}`,children:e.jsx(j,{className:"p-4 sm:p-6",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3 sm:gap-4",children:[e.jsx("div",{className:`flex h-10 w-10 sm:h-12 sm:w-12 items-center justify-center rounded-lg bg-muted shrink-0 ${h(s.schadenart)}`,children:e.jsx(f,{className:"h-5 w-5 sm:h-6 sm:w-6"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx("h3",{className:"font-semibold text-base sm:text-lg truncate",children:s.bezeichnung}),c(s.status)]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-4 text-xs sm:text-sm text-navy-600",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(U,{className:"h-3 w-3"}),b(s.schadendatum)]}),e.jsx("span",{children:s.schadenart})]}),s.beschreibung&&e.jsx("p",{className:"text-xs sm:text-sm text-navy-600 mt-2 line-clamp-2 hidden sm:block",children:s.beschreibung})]})]}),e.jsxs("div",{className:"flex sm:flex-col items-center sm:items-end justify-between sm:justify-start gap-2 pl-13 sm:pl-0 border-t sm:border-t-0 pt-3 sm:pt-0 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1 text-xs sm:text-sm text-navy-600",children:[e.jsx(J,{className:"h-3 w-3"}),s.anzahlGegenstaende," Stück"]}),e.jsx("div",{className:"font-semibold text-base sm:text-lg",children:x(String(s.gesamtwert))??"-"})]})]})})})},s.id))}),i&&i.length>0?e.jsxs("div",{className:"mt-8",children:[e.jsxs("h2",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(M,{className:"h-5 w-5 shrink-0"}),"Meine Exporte"]}),e.jsx("div",{className:"space-y-2",children:i.map(s=>e.jsx(Z,{entry:s},s.id))})]}):null]})},ke=()=>e.jsx(_,{});export{ke as component};
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.