Validation_Suite/validation-suite/frontend/atlas/.next/static/chunks/2_kp701adm390.js

1 line
No EOL
41 KiB
JavaScript

(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54858,e=>{"use strict";let t="/api/v1";async function r(e,t){let r=await e.text();if(!r)return t;try{let e=JSON.parse(r);return e.detail??e.message??r}catch{return r}}async function s(e,t){let r=await fetch("/api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t}),credentials:"include"});if(!r.ok){let e=Error(await r.text()||`HTTP ${r.status}`);throw e.status=r.status,e}return r.json()}async function i(e,r){let s=await fetch(`${t}${e}`,{cache:"no-store",credentials:"include"});if(!s.ok)throw Error(`API request failed: ${s.status}`);return s.json()}async function n(e,s,i,n){let a=await fetch(`${t}${e}`,{method:i,headers:{"Content-Type":"application/json"},body:JSON.stringify(n),credentials:"include"});if(!a.ok)throw Error(await r(a,`API request failed: ${a.status}`));return a.json()}async function a(e,s){let i=await fetch(`${t}${e}`,{method:"DELETE",credentials:"include"});if(!i.ok)throw Error(await r(i,`API request failed: ${i.status}`))}async function l(e,s,i){let n=await fetch(`${t}${e}`,{...i,headers:{"Content-Type":"application/json",...i?.headers??{}},credentials:"include"});if(!n.ok)throw Error(await r(n,`API request failed: ${n.status}`));return n.json()}e.s(["API_BASE",0,t,"apiDelete",0,a,"apiFetch",0,l,"apiGet",0,i,"apiSend",0,n,"login",0,s,"normalizeValidationPayload",0,function(e){return{...e,...Object.fromEntries(["contact_id","examiner_id"].map(t=>[t,e[t]||null]))}}])},66027,e=>{"use strict";let t;var r=e.i(75555),s=e.i(73911),i=e.i(40143),n=e.i(86491),a=e.i(15823),l=e.i(93803),o=e.i(19273),c=e.i(80166),u=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#s=void 0;#i=void 0;#n=void 0;#a;#l;#r;#t;#o;#c;#u;#d;#h;#m;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#s.addObserver(this),d(this.#s,this.options)?this.#g():this.updateResult(),this.#f())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return h(this.#s,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return h(this.#s,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#s.removeObserver(this)}setOptions(e){let t=this.options,r=this.#s;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,o.resolveQueryBoolean)(this.options.enabled,this.#s))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#y(),this.#s.setOptions(this.options),t._defaulted&&!(0,o.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#s,observer:this});let s=this.hasListeners();s&&m(this.#s,r,this.options,t)&&this.#g(),this.updateResult(),s&&(this.#s!==r||(0,o.resolveQueryBoolean)(this.options.enabled,this.#s)!==(0,o.resolveQueryBoolean)(t.enabled,this.#s)||(0,o.resolveStaleTime)(this.options.staleTime,this.#s)!==(0,o.resolveStaleTime)(t.staleTime,this.#s))&&this.#v();let i=this.#j();s&&(this.#s!==r||(0,o.resolveQueryBoolean)(this.options.enabled,this.#s)!==(0,o.resolveQueryBoolean)(t.enabled,this.#s)||i!==this.#m)&&this.#_(i)}getOptimisticResult(e){var t,r;let s=this.#e.getQueryCache().build(this.#e,e),i=this.createResult(s,e);return t=this,r=i,(0,o.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#n=i,this.#l=this.options,this.#a=this.#s.state),i}getCurrentResult(){return this.#n}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#s}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#g({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#g(e){this.#y();let t=this.#s.fetch(this.options,e);return e?.throwOnError||(t=t.catch(o.noop)),t}#v(){this.#b();let e=(0,o.resolveStaleTime)(this.options.staleTime,this.#s);if(s.environmentManager.isServer()||this.#n.isStale||!(0,o.isValidTimeout)(e))return;let t=(0,o.timeUntilStale)(this.#n.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#n.isStale||this.updateResult()},t+1)}#j(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#s):this.options.refetchInterval)??!1}#_(e){this.#x(),this.#m=e,!s.environmentManager.isServer()&&!1!==(0,o.resolveQueryBoolean)(this.options.enabled,this.#s)&&(0,o.isValidTimeout)(this.#m)&&0!==this.#m&&(this.#h=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#g()},this.#m))}#f(){this.#v(),this.#_(this.#j())}#b(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#x(){void 0!==this.#h&&(c.timeoutManager.clearInterval(this.#h),this.#h=void 0)}createResult(e,t){let r,s=this.#s,i=this.options,a=this.#n,c=this.#a,u=this.#l,h=e!==s?e.state:this.#i,{state:g}=e,f={...g},b=!1;if(t._optimisticResults){let r=this.hasListeners(),a=!r&&d(e,t),l=r&&m(e,s,t,i);(a||l)&&(f={...f,...(0,n.fetchState)(g.data,e.options)}),"isRestoring"===t._optimisticResults&&(f.fetchStatus="idle")}let{error:x,errorUpdatedAt:y,status:v}=f;r=f.data;let j=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===v){let e;a?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=a.data,j=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(v="success",r=(0,o.replaceData)(a?.data,e,t),b=!0)}if(t.select&&void 0!==r&&!j)if(a&&r===c?.data&&t.select===this.#o)r=this.#c;else try{this.#o=t.select,r=t.select(r),r=(0,o.replaceData)(a?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(x=this.#t,r=this.#c,y=Date.now(),v="error");let _="fetching"===f.fetchStatus,w="pending"===v,R="error"===v,N=w&&_,k=void 0!==r,S={status:v,fetchStatus:f.fetchStatus,isPending:w,isSuccess:"success"===v,isError:R,isInitialLoading:N,isLoading:N,data:r,dataUpdatedAt:f.dataUpdatedAt,error:x,errorUpdatedAt:y,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdateCount:f.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:f.dataUpdateCount>h.dataUpdateCount||f.errorUpdateCount>h.errorUpdateCount,isFetching:_,isRefetching:_&&!w,isLoadingError:R&&!k,isPaused:"paused"===f.fetchStatus,isPlaceholderData:b,isRefetchError:R&&k,isStale:p(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,o.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==S.data,r="error"===S.status&&!t,i=e=>{r?e.reject(S.error):t&&e.resolve(S.data)},n=()=>{i(this.#r=S.promise=(0,l.pendingThenable)())},a=this.#r;switch(a.status){case"pending":e.queryHash===s.queryHash&&i(a);break;case"fulfilled":(r||S.data!==a.value)&&n();break;case"rejected":r&&S.error===a.reason||n()}}return S}updateResult(){let e=this.#n,t=this.createResult(this.#s,this.options);if(this.#a=this.#s.state,this.#l=this.options,void 0!==this.#a.data&&(this.#u=this.#s),(0,o.shallowEqualObjects)(t,e))return;this.#n=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#p.size)return!0;let s=new Set(r??this.#p);return this.options.throwOnError&&s.add("error"),Object.keys(this.#n).some(t=>this.#n[t]!==e[t]&&s.has(t))};this.#w({listeners:r()})}#y(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#s)return;let t=this.#s;this.#s=e,this.#i=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#f()}#w(e){i.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#n)}),this.#e.getQueryCache().notify({query:this.#s,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,o.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,o.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&h(e,t,t.refetchOnMount)}function h(e,t,r){if(!1!==(0,o.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,o.resolveStaleTime)(t.staleTime,e)){let s="function"==typeof r?r(e):r;return"always"===s||!1!==s&&p(e,t)}return!1}function m(e,t,r,s){return(e!==t||!1===(0,o.resolveQueryBoolean)(s.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&p(e,r)}function p(e,t){return!1!==(0,o.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,o.resolveStaleTime)(t.staleTime,e))}e.i(47167);var g=e.i(71645),f=e.i(12598);e.i(43476);var b=g.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),x=g.createContext(!1);x.Provider;var y=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});e.s(["useQuery",0,function(e,t){return function(e,t,r){let n,a=g.useContext(x),l=g.useContext(b),c=(0,f.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash),h=!1!==e.subscribed;if(u._optimisticResults=a?"isRestoring":h?"optimistic":void 0,u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}n=d?.state.error&&"function"==typeof u.throwOnError?(0,o.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||n)&&!l.isReset()&&(u.retryOnMount=!1),g.useEffect(()=>{l.clearReset()},[l]);let m=!c.getQueryCache().get(u.queryHash),[p]=g.useState(()=>new t(c,u)),v=p.getOptimisticResult(u),j=!a&&h;if(g.useSyncExternalStore(g.useCallback(e=>{let t=j?p.subscribe(i.notifyManager.batchCalls(e)):o.noop;return p.updateResult(),t},[p,j]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),g.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&v.isPending)throw y(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:s,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&s&&(i&&void 0===e.data||(0,o.shouldThrowError)(r,[e.error,s])))({result:v,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw v.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,v),u.experimental_prefetchInRender&&!s.environmentManager.isServer()&&v.isLoading&&v.isFetching&&!a){let e=m?y(u,p,l):d?.promise;e?.catch(o.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?v:p.trackResult(v)}(e,u,t)}],66027)},54616,e=>{"use strict";var t=e.i(71645),r=e.i(14272),s=e.i(40143),i=e.i(15823),n=e.i(19273),a=class extends i.Subscribable{#e;#n=void 0;#R;#N;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#k()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,n.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#R,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#R?.state.status==="pending"&&this.#R.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#R?.removeObserver(this)}onMutationUpdate(e){this.#k(),this.#w(e)}getCurrentResult(){return this.#n}reset(){this.#R?.removeObserver(this),this.#R=void 0,this.#k(),this.#w()}mutate(e,t){return this.#N=t,this.#R?.removeObserver(this),this.#R=this.#e.getMutationCache().build(this.#e,this.options),this.#R.addObserver(this),this.#R.execute(e)}#k(){let e=this.#R?.state??(0,r.getDefaultState)();this.#n={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#w(e){s.notifyManager.batch(()=>{if(this.#N&&this.hasListeners()){let t=this.#n.variables,r=this.#n.context,s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#N.onSuccess?.(e.data,t,r,s)}catch(e){Promise.reject(e)}try{this.#N.onSettled?.(e.data,null,t,r,s)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#N.onError?.(e.error,t,r,s)}catch(e){Promise.reject(e)}try{this.#N.onSettled?.(void 0,e.error,t,r,s)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#n)})})}},l=e.i(12598);e.s(["useMutation",0,function(e,r){let i=(0,l.useQueryClient)(r),[o]=t.useState(()=>new a(i,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let c=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(s.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),u=t.useCallback((e,t)=>{o.mutate(e,t).catch(n.noop)},[o]);if(c.error&&(0,n.shouldThrowError)(o.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:u,mutateAsync:c.mutate}}],54616)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],37727)},40160,e=>{"use strict";let t=(0,e.i(75254).default)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);e.s(["Download",0,t],40160)},7233,e=>{"use strict";let t=(0,e.i(75254).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],7233)},57344,e=>{"use strict";var t=e.i(43476),r=e.i(94814),s=e.i(54616),i=e.i(66027),n=e.i(12598),a=e.i(75254);let l=(0,a.default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var o=e.i(40160);let c=(0,a.default)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var u=e.i(7233);let d=(0,a.default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]),h=(0,a.default)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),m=(0,a.default)("CloudUpload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);var p=e.i(37727),g=e.i(71645),f=e.i(53145),b=e.i(50270);let x=(0,a.default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);function y({children:e,icon:r,state:s="normal",loadingText:i,successText:n="Gespeichert",disabled:a,disabledReason:l,variant:o="secondary",className:c="",...u}){let d=a||"loading"===s,h="success"===s?"btn-success":"error"===s?"btn-danger":`btn-${o}`;return(0,t.jsxs)("button",{...u,disabled:d,title:d?l:u.title,className:`btn ${h} ${c}`,children:["loading"===s?(0,t.jsx)("span",{className:"spinner"}):"success"===s?(0,t.jsx)(x,{className:"h-4 w-4"}):r,(0,t.jsx)("span",{children:"loading"===s?i??"Laedt...":"success"===s?n:e})]})}var v=e.i(28779),j=e.i(54858);let _=["yes","no","na"],w=new Date().toISOString().slice(0,10),R=["Aufbereitungsraum","reiner Bereich","unreiner Bereich","Sterilisator","Beladung","Sensorposition","Chargenprotokoll","Indikator","Zertifikat","Kalibrierschein","Winlog-Auswertung"],N={report_number:{label:"Berichtsnummer",section:"Allgemeine Angaben"},validation_type:{label:"Validierungsart",section:"Allgemeine Angaben"},performed_on:{label:"Pruefdatum",section:"Allgemeine Angaben"},customer_id:{label:"Kunde",section:"Kunde und Standort"},location_id:{label:"Standort",section:"Kunde und Standort"},device_id:{label:"Geraet",section:"Geraet"},examiner_name:{label:"Pruefer",section:"Allgemeine Angaben"}},k=b.z.object({report_number:b.z.string().min(3),validation_type:b.z.string().min(1),project:b.z.string().optional(),performed_on:b.z.string().min(1),next_validation_on:b.z.string().optional().nullable(),revalidation_interval_months:b.z.coerce.number().int().min(1),next_validation_manually_overridden:b.z.boolean(),test_location:b.z.string().optional(),examiner_name:b.z.string().min(1),participants:b.z.string().optional(),status:b.z.string().min(1),result:b.z.string().min(1),customer_id:b.z.string().min(1),location_id:b.z.string().min(1),contact_id:b.z.string().optional().nullable(),examiner_id:b.z.string().optional().nullable(),operator_name:b.z.string().optional(),device_id:b.z.string().min(1),equipment_ids:b.z.array(b.z.string()),environment_conditions:b.z.record(b.z.unknown()),documentation_checklist:b.z.array(b.z.record(b.z.unknown())),performance_checklist:b.z.array(b.z.record(b.z.unknown())),programs:b.z.array(b.z.record(b.z.unknown())),loading_patterns:b.z.array(b.z.record(b.z.unknown())),measurement_data:b.z.array(b.z.record(b.z.unknown())),drying:b.z.record(b.z.unknown()),recommendations:b.z.array(b.z.record(b.z.unknown())),attachments:b.z.array(b.z.record(b.z.unknown()))});function S(e=""){return{report_number:e,validation_type:"Erstvalidierung",project:"",performed_on:w,next_validation_on:"",revalidation_interval_months:24,next_validation_manually_overridden:!1,test_location:"",examiner_name:"",participants:"",status:"ENTWURF",result:"offen",customer_id:"",location_id:"",contact_id:"",examiner_id:"",operator_name:"",device_id:"",equipment_ids:[],environment_conditions:{room_temperature:"",humidity:"",test_time:"",checks:[{text:"Raumbedingungen stabil",value:"na",comment:""},{text:"Aufstellort frei zugaenglich",value:"na",comment:""},{text:"Medienversorgung verfuegbar",value:"na",comment:""}]},documentation_checklist:[],performance_checklist:[],programs:[{name:"Vakuumtest",selected:!1,custom:!1},{name:"Bowie-Dick / Leerkammerprofil",selected:!1,custom:!1},{name:"134 C hohl verpackt",selected:!1,custom:!1}],loading_patterns:[1,2,3].map(e=>({run:e,pattern:"",description:"",images:[]})),measurement_data:["Vakuumtest","Leerkammerprofil","Testlauf 1","Testlauf 2","Testlauf 3"].map(e=>({name:e,start_time:"",end_time:"",duration:"",leak_rate:"",min_temperature:"",max_temperature:"",temperature_band:"",equilibration_time:"",holding_time:"",pressure:"",result:"",imports:[]})),drying:{start_weight:"",end_weight:"",difference:"",rating:"",comment:""},recommendations:[],attachments:[]}}function E({title:e,children:r,defaultOpen:s=!1}){let[i,n]=(0,g.useState)(s);return(0,t.jsxs)("section",{className:"rounded-lg border border-border bg-surface shadow-soft",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:"flex w-full items-center justify-between px-5 py-4 text-left text-lg font-semibold hover:bg-background",children:[e,(0,t.jsx)(l,{className:`h-5 w-5 transition ${i?"rotate-180":""}`})]}),i&&(0,t.jsx)("div",{className:"border-t border-border p-5",children:r})]})}function T({label:e,children:r}){return(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-text",children:e}),(0,t.jsx)("div",{className:"mt-2",children:r})]})}let Q="h-12 w-full rounded-lg border border-border bg-white px-4 outline-none focus:border-primary",O="min-h-24 w-full rounded-lg border border-border bg-white px-4 py-3 outline-none focus:border-primary";function z({validationId:e}){let{token:a}=(0,v.useAuth)(),l=(0,n.useQueryClient)(),[b,x]=(0,g.useState)(e??null),[_,B]=(0,g.useState)(""),[A,F]=(0,g.useState)(""),[q,D]=(0,g.useState)(null),[U,V]=(0,g.useState)("normal"),[K,L]=(0,g.useState)("normal"),[G,H]=(0,g.useState)("normal"),[W,J]=(0,g.useState)(null),Z=(0,g.useRef)(null),X=(0,i.useQuery)({queryKey:["next-report-number",a],queryFn:()=>(0,j.apiGet)("/validations/next-report-number",a??""),enabled:!!a}),Y=(0,i.useQuery)({queryKey:["customers-options",a],queryFn:()=>(0,j.apiGet)("/customers?page=1&page_size=100",a??""),enabled:!!a}),ee=(0,i.useQuery)({queryKey:["locations-options",a],queryFn:()=>(0,j.apiGet)("/locations?page=1&page_size=100",a??""),enabled:!!a}),et=(0,i.useQuery)({queryKey:["contacts-options",a],queryFn:()=>(0,j.apiGet)("/contacts?page=1&page_size=100",a??""),enabled:!!a}),er=(0,i.useQuery)({queryKey:["devices-options",a],queryFn:()=>(0,j.apiGet)("/devices?page=1&page_size=100",a??""),enabled:!!a}),es=(0,i.useQuery)({queryKey:["equipment-options",a],queryFn:()=>(0,j.apiGet)("/equipment?page=1&page_size=100",a??""),enabled:!!a}),ei=(0,i.useQuery)({queryKey:["report-checklists",a],queryFn:()=>(0,j.apiGet)("/report-templates/default/checklists",a??""),enabled:!!a}),en=(0,i.useQuery)({queryKey:["validation",e,a],queryFn:()=>(0,j.apiGet)(`/validations/${e}`,a??""),enabled:!!(a&&e)}),ea=(0,f.useForm)({resolver:(0,r.zodResolver)(k),defaultValues:S()}),el=(0,f.useWatch)({control:ea.control}),eo=er.data?.items.find(e=>e.id===ea.watch("device_id")),ec=es.data?.items.filter(e=>ea.watch("equipment_ids").includes(e.id))??[],eu=(0,f.useFieldArray)({control:ea.control,name:"recommendations"}),ed=(0,f.useFieldArray)({control:ea.control,name:"attachments"});(0,g.useEffect)(()=>{X.data?.report_number&&!ea.getValues("report_number")&&ea.setValue("report_number",X.data.report_number)},[ea,X.data]),(0,g.useEffect)(()=>{if(!en.data)return;let e=en.data;ea.reset({...S(),...e,result:e.result??"offen",project:e.project??"",test_location:e.test_location??"",examiner_name:e.examiner_name??"",participants:e.participants??"",operator_name:e.operator_name??"",performed_on:e.performed_on??"",next_validation_on:e.next_validation_on??"",contact_id:e.contact_id??"",examiner_id:"",location_id:e.location_id??"",device_id:e.device_id??""}),x(e.id)},[en.data,ea]),(0,g.useEffect)(()=>{if(!ei.data||en.data||ea.getValues("documentation_checklist").length>0)return;let e=ei.data.flatMap(e=>e.items.map(t=>({...t,template_key:e.checklist_key,template_title:e.title})));ea.setValue("documentation_checklist",e)},[ei.data,en.data,ea]);let eh=en.data?.status==="FREIGEGEBEN"||en.data?.status==="ABGESCHLOSSEN",em=(0,s.useMutation)({mutationFn:e=>(0,j.apiSend)(b?`/validations/${b}`:"/validations",a??"",b?"PUT":"POST",(0,j.normalizeValidationPayload)(e)),onSuccess:e=>{x(e.id),B(new Date().toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"})),F(""),V("success"),window.setTimeout(()=>V("normal"),1500),l.invalidateQueries({queryKey:["dashboard"]})},onError:e=>{V("error"),F(e instanceof Error?e.message:"Speichern fehlgeschlagen.")}});(0,g.useEffect)(()=>{if(!eh&&a&&el.report_number&&el.validation_type&&el.customer_id&&el.location_id&&el.device_id&&el.examiner_name&&el.performed_on)return Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{let e=ea.getValues();em.mutate(e)},2500),()=>{Z.current&&clearTimeout(Z.current)}},[ea,em,a,el]);let ep=Y.data?.items??[],eg=ep.find(e=>e.id===ea.watch("customer_id")),ef=(ee.data?.items??[]).filter(e=>!ea.watch("customer_id")||e.customer_id===ea.watch("customer_id")),eb=(et.data?.items??[]).filter(e=>!ea.watch("customer_id")||e.customer_id===ea.watch("customer_id")),ex=(er.data?.items??[]).filter(e=>!ea.watch("customer_id")||e.customer_id===ea.watch("customer_id")),ey=(0,g.useMemo)(()=>ec.filter(e=>e.calibration_due_on&&e.calibration_due_on<w),[ec]);function ev(e=ea.getValues()){return Object.entries(N).filter(([t])=>!e[t])}function ej(){let e=ev()[0];return!!e&&(F(`${e[1].label} fehlt in ${e[1].section}.`),document.querySelector(`[name="${e[0]}"]`)?.scrollIntoView({behavior:"smooth",block:"center"}),!0)}async function e_(){if(eh)return void F("Diese Validierung ist schreibgeschuetzt.");if(ev().length){L("error"),ej();return}try{L("loading");let e=b?null:await em.mutateAsync(ea.getValues()),t=b??e?.id;if(!t||!a)return;let r=await fetch(`${j.API_BASE}/validations/${t}/review`,{method:"POST",headers:{Authorization:`Bearer ${a}`}}),s=await r.json();D(s),L("success"),window.setTimeout(()=>L("normal"),1500),F(s.errors.length?"Pruefung abgeschlossen: Fehler blockieren die Freigabe.":"Pruefung abgeschlossen: keine blockierenden Fehler.")}catch(e){L("error"),F(e instanceof Error?e.message:"Pruefung fehlgeschlagen.")}}async function ew(e,t){if(e&&0!==e.length){if(!b||!a)return void F("Bitte den Entwurf speichern, bevor Bilder oder Anlagen hochgeladen werden.");try{for(let[r,s]of(J(t),Array.from(e).entries())){let e=ed.fields.length+r+1,i=new FormData;i.append("category",t),i.append("description",""),i.append("order",String(e)),i.append("file",s);let n=await fetch(`${j.API_BASE}/validations/${b}/attachments`,{method:"POST",headers:{Authorization:`Bearer ${a}`},body:i});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.detail??"Upload fehlgeschlagen.")}let l=await n.json();ed.append(l)}l.invalidateQueries({queryKey:["validation",b,a]}),F("Upload abgeschlossen.")}catch(e){F(e instanceof Error?e.message:"Upload fehlgeschlagen.")}finally{J(null)}}}async function eR(){if(b&&a)try{H("loading");let e=await fetch(`${j.API_BASE}/validations/${b}/report.pdf`,{headers:{Authorization:`Bearer ${a}`}});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.detail??"PDF konnte nicht erzeugt werden.")}let t=await e.blob(),r=URL.createObjectURL(t),s=document.createElement("a");s.href=r,s.download=`${ea.getValues("report_number")}.pdf`,s.click(),URL.revokeObjectURL(r),H("success"),window.setTimeout(()=>H("normal"),1500)}catch(e){H("error"),F(e instanceof Error?e.message:"PDF-Download fehlgeschlagen.")}}return(0,t.jsxs)("form",{onSubmit:ea.handleSubmit(function(e){if(eh)return void F("Diese Validierung ist schreibgeschuetzt.");if(ev(e).length){V("error"),ej();return}V("loading"),em.mutate(e)}),className:"space-y-5 pb-28",children:[(0,t.jsxs)("header",{children:[(0,t.jsx)("h1",{className:"text-3xl font-semibold text-text",children:"Validierungsbericht"}),(0,t.jsx)("p",{className:"mt-2 text-text-light",children:eh?"Schreibgeschuetzte freigegebene oder abgeschlossene Validierung.":"Eine responsive Seite fuer Erfassung, Pruefung und Berichtserstellung."})]}),(0,t.jsx)(E,{title:"1. Allgemeine Angaben",defaultOpen:!0,children:(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,t.jsx)(T,{label:"Berichtsnummer *",children:(0,t.jsx)("input",{className:Q,...ea.register("report_number")})}),(0,t.jsx)(T,{label:"Validierungsart *",children:(0,t.jsxs)("select",{className:Q,...ea.register("validation_type"),children:[(0,t.jsx)("option",{children:"Erstvalidierung"}),(0,t.jsx)("option",{children:"Revalidierung"}),(0,t.jsx)("option",{children:"Leistungsbeurteilung"}),(0,t.jsx)("option",{children:"Sonderpruefung"})]})}),(0,t.jsx)(T,{label:"Projekt",children:(0,t.jsx)("input",{className:Q,...ea.register("project")})}),(0,t.jsx)(T,{label:"Pruefdatum *",children:(0,t.jsx)("input",{type:"date",className:Q,...ea.register("performed_on")})}),(0,t.jsx)(T,{label:"Revalidierungsintervall Monate",children:(0,t.jsx)("input",{type:"number",className:Q,...ea.register("revalidation_interval_months")})}),(0,t.jsx)(T,{label:"Naechste Validierung",children:(0,t.jsx)("input",{type:"date",className:Q,...ea.register("next_validation_on"),onChange:e=>{ea.setValue("next_validation_manually_overridden",!0),ea.setValue("next_validation_on",e.target.value)}})}),(0,t.jsx)(T,{label:"Pruefungsort",children:(0,t.jsx)("input",{className:Q,...ea.register("test_location")})}),(0,t.jsx)(T,{label:"Pruefer *",children:(0,t.jsx)("input",{className:Q,...ea.register("examiner_name")})}),(0,t.jsx)(T,{label:"Mitwirkende Personen",children:(0,t.jsx)("textarea",{className:O,...ea.register("participants")})}),(0,t.jsx)(T,{label:"Status",children:(0,t.jsxs)("select",{className:Q,...ea.register("status"),children:[(0,t.jsx)("option",{value:"ENTWURF",children:"Entwurf"}),(0,t.jsx)("option",{value:"BEREIT_ZUR_PRUEFUNG",children:"Bereit zur Pruefung"}),(0,t.jsx)("option",{value:"IN_PRUEFUNG",children:"In Pruefung"}),(0,t.jsx)("option",{value:"FREIGEGEBEN",children:"Freigegeben"}),(0,t.jsx)("option",{value:"ABGESCHLOSSEN",children:"Abgeschlossen"}),(0,t.jsx)("option",{value:"STORNIERT",children:"Storniert"})]})}),(0,t.jsx)(T,{label:"Gesamtergebnis",children:(0,t.jsxs)("select",{className:Q,...ea.register("result"),children:[(0,t.jsx)("option",{value:"offen",children:"Offen"}),(0,t.jsx)("option",{value:"bestanden",children:"Bestanden"}),(0,t.jsx)("option",{value:"nicht_bestanden",children:"Nicht bestanden"}),(0,t.jsx)("option",{value:"mit_auflagen",children:"Mit Auflagen"})]})})]})}),(0,t.jsx)(E,{title:"2. Kunde und Standort",children:(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,t.jsx)(T,{label:"Kunde *",children:(0,t.jsxs)("select",{className:Q,...ea.register("customer_id"),children:[(0,t.jsx)("option",{value:"",children:"Bitte waehlen"}),ep.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,t.jsx)(T,{label:"Standort *",children:(0,t.jsxs)("select",{className:Q,...ea.register("location_id"),children:[(0,t.jsx)("option",{value:"",children:"Bitte waehlen"}),ef.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,t.jsx)(T,{label:"Ansprechpartner",children:(0,t.jsxs)("select",{className:Q,...ea.register("contact_id"),children:[(0,t.jsx)("option",{value:"",children:"Bitte waehlen"}),eb.map(e=>(0,t.jsx)("option",{value:e.id,children:e.full_name},e.id))]})}),(0,t.jsx)(T,{label:"Betreiber",children:(0,t.jsx)("input",{className:Q,...ea.register("operator_name")})}),(0,t.jsx)(T,{label:"QM-/Hygienebeauftragter",children:(0,t.jsx)("input",{className:Q,value:[eg?.quality_manager,eg?.hygiene_officer].filter(Boolean).join(" / "),readOnly:!0})})]})}),(0,t.jsxs)(E,{title:"3. Geraet",children:[(0,t.jsx)(T,{label:"Geraet *",children:(0,t.jsxs)("select",{className:Q,...ea.register("device_id"),children:[(0,t.jsx)("option",{value:"",children:"Bitte waehlen"}),ex.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.manufacturer," ",e.model," - ",e.serial_number]},e.id))]})}),(0,t.jsx)("div",{className:"mt-4 grid gap-4 md:grid-cols-3",children:[["Hersteller",eo?.manufacturer],["Modell",eo?.model],["Seriennummer",eo?.serial_number],["Baujahr",eo?.year_built],["Inbetriebnahme",eo?.commissioned_on],["Kammervolumen",eo?.chamber_volume_liters],["Dampferzeugung",eo?.steam_generation],["Wasseraufbereitung",eo?.water_treatment],["Dokumentation",eo?.documentation],["Lieferant",eo?.supplier]].map(([e,r])=>(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-background p-4",children:[(0,t.jsx)("p",{className:"text-xs text-text-light",children:e}),(0,t.jsx)("p",{className:"mt-1 font-medium",children:String(r??"-")})]},e))})]}),(0,t.jsxs)(E,{title:"4. Pruefmittel",children:[(0,t.jsx)(f.Controller,{control:ea.control,name:"equipment_ids",render:({field:e})=>(0,t.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:(es.data?.items??[]).map(r=>{let s=!!(r.calibration_due_on&&r.calibration_due_on<w);return(0,t.jsxs)("label",{className:"flex items-start gap-3 rounded-lg border border-border p-4",children:[(0,t.jsx)("input",{type:"checkbox",className:"mt-1 h-5 w-5",checked:e.value.includes(r.id),onChange:t=>e.onChange(t.target.checked?[...e.value,r.id]:e.value.filter(e=>e!==r.id))}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:r.kind}),(0,t.jsx)("br",{}),r.serial_number," · ",r.calibrated_on??"-"," · ",r.status,s&&(0,t.jsx)("span",{className:"ml-2 text-danger",children:"Kalibrierung abgelaufen"})]})]},r.id)})})}),ey.length>0&&(0,t.jsx)("p",{className:"mt-4 rounded-lg border border-danger/30 bg-danger/5 p-4 text-danger",children:"Mindestens ein ausgewaehltes Pruefmittel hat eine abgelaufene Kalibrierung."})]}),(0,t.jsxs)(E,{title:"5. Umgebungsbedingungen",children:[(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[(0,t.jsx)(T,{label:"Raumtemperatur",children:(0,t.jsx)("input",{className:Q,...ea.register("environment_conditions.room_temperature")})}),(0,t.jsx)(T,{label:"relative Luftfeuchtigkeit",children:(0,t.jsx)("input",{className:Q,...ea.register("environment_conditions.humidity")})}),(0,t.jsx)(T,{label:"Pruefzeit",children:(0,t.jsx)("input",{className:Q,...ea.register("environment_conditions.test_time")})})]}),[0,1,2].map(e=>(0,t.jsx)(P,{form:ea,path:`environment_conditions.checks.${e}`},e))]}),(0,t.jsxs)(E,{title:"6. Dokumentations- und Leistungschecklisten",children:[ea.watch("documentation_checklist").map((e,r)=>(0,t.jsx)(P,{form:ea,path:`documentation_checklist.${r}`},`${String(e.template_key??"check")}-${r}`)),ea.watch("performance_checklist").map((e,r)=>(0,t.jsx)(P,{form:ea,path:`performance_checklist.${r}`},`performance-${r}`))]}),(0,t.jsxs)(E,{title:"7. Programme",children:[[0,1,2].map(e=>(0,t.jsx)(I,{form:ea,index:e},e)),(0,t.jsx)(y,{type:"button",icon:(0,t.jsx)(u.Plus,{className:"h-4 w-4"}),onClick:()=>ea.setValue("programs",[...ea.getValues("programs"),{name:"",selected:!0,custom:!0}]),className:"mt-4",children:"Eigenes Programm"})]}),(0,t.jsx)(E,{title:"8. Beladungsmuster",children:[0,1,2].map(e=>(0,t.jsx)(M,{form:ea,index:e},e))}),(0,t.jsx)(E,{title:"9. Messdaten",children:[0,1,2,3,4].map(e=>(0,t.jsx)(C,{form:ea,index:e},e))}),(0,t.jsx)(E,{title:"10. Trocknung",children:(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[["start_weight","end_weight","difference","rating"].map(e=>(0,t.jsx)(T,{label:e,children:(0,t.jsx)("input",{className:Q,...ea.register(`drying.${e}`)})},e)),(0,t.jsx)(T,{label:"Bemerkung",children:(0,t.jsx)("textarea",{className:O,...ea.register("drying.comment")})})]})}),(0,t.jsxs)(E,{title:"11. Empfehlungen und Auflagen",children:[eu.fields.map((e,r)=>(0,t.jsxs)("div",{className:"mb-3 grid gap-3 rounded-lg border border-border p-4 md:grid-cols-4",children:[(0,t.jsx)("input",{className:Q,placeholder:"Nummer",...ea.register(`recommendations.${r}.number`)}),(0,t.jsx)("input",{className:Q,placeholder:"Text",...ea.register(`recommendations.${r}.text`)}),(0,t.jsx)("input",{type:"date",className:Q,...ea.register(`recommendations.${r}.deadline`)}),(0,t.jsx)("input",{className:Q,placeholder:"Status",...ea.register(`recommendations.${r}.status`)})]},e.id)),(0,t.jsx)(y,{type:"button",icon:(0,t.jsx)(u.Plus,{className:"h-4 w-4"}),onClick:()=>eu.append({number:eu.fields.length+1,text:"",deadline:"",status:"offen"}),children:"Zeile hinzufuegen"})]}),(0,t.jsxs)(E,{title:"12. Bilder und Anlagen",children:[(0,t.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:R.map(e=>(0,t.jsxs)("label",{className:"rounded-lg border border-dashed border-primary/40 p-4 transition hover:border-primary hover:bg-background",children:[(0,t.jsx)(m,{className:"mb-2 h-5 w-5 text-primary"}),e,W===e&&(0,t.jsx)("span",{className:"ml-2 text-sm text-text-light",children:"Upload..."}),(0,t.jsx)("input",{type:"file",multiple:!0,className:"mt-3 block w-full text-sm",onChange:t=>ew(t.target.files,e)})]},e))}),(0,t.jsx)("div",{className:"mt-5 grid gap-3 md:grid-cols-2",children:ed.fields.map((e,r)=>{let s=String(ea.watch(`attachments.${r}.url`)??""),i=s&&/\.(png|jpe?g|webp|svg)$/i.test(s)?`${j.API_BASE.replace("/api/v1","")}${s}`:"";return(0,t.jsxs)("div",{className:"rounded-lg border border-border p-4",children:[i&&(0,t.jsx)("img",{src:i,alt:String(ea.watch(`attachments.${r}.filename`)??""),className:"mb-3 max-h-56 w-full rounded-lg border border-border object-contain"}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("strong",{children:String(ea.watch(`attachments.${r}.filename`)??"")}),(0,t.jsx)("button",{type:"button",onClick:()=>ed.remove(r),children:(0,t.jsx)(p.X,{className:"h-4 w-4 text-danger"})})]}),(0,t.jsx)("input",{className:`${Q} mt-3`,placeholder:"Beschreibung",...ea.register(`attachments.${r}.description`)}),(0,t.jsx)("input",{className:`${Q} mt-3`,placeholder:"Reihenfolge",...ea.register(`attachments.${r}.order`)})]},e.id)})})]}),q&&(0,t.jsxs)("section",{className:"rounded-lg border border-border bg-surface p-5 shadow-soft",children:[(0,t.jsx)("h2",{className:"text-xl font-semibold",children:"Pruefergebnis"}),(0,t.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-3",children:[(0,t.jsx)($,{title:"Fehler",items:q.errors,tone:"danger"}),(0,t.jsx)($,{title:"Warnungen",items:q.warnings,tone:"warning"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-semibold text-success",children:"Vollstaendige Bereiche"}),q.complete_sections.map(e=>(0,t.jsx)("p",{className:"mt-2 text-sm",children:e},e))]})]})]}),em.isError&&A&&(0,t.jsx)("div",{className:"fixed right-4 top-4 z-50 max-w-md rounded-lg border border-danger/30 bg-white p-4 text-sm text-danger shadow-soft",children:A}),(0,t.jsx)("fieldset",{disabled:eh,className:eh?"pointer-events-none contents opacity-80":"contents"}),(0,t.jsx)("div",{className:"fixed inset-x-0 bottom-0 z-40 border-t border-border bg-surface/95 px-4 py-3 shadow-soft backdrop-blur",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-7xl flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"text-sm text-text-light",children:[(0,t.jsx)("p",{children:_?`Automatisch gespeichert um ${_}`:"Autosave startet nach Ausfuellen der Pflichtfelder."}),ev().length>0&&(0,t.jsxs)("p",{className:"text-danger",children:["Fehlt: ",ev().map(([,e])=>e.label).join(", ")]}),A&&(0,t.jsx)("p",{className:"text-primary-dark",children:A})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(y,{type:"submit",disabled:eh,disabledReason:"Freigegebene und abgeschlossene Validierungen sind schreibgeschuetzt",icon:(0,t.jsx)(d,{className:"h-4 w-4"}),state:U,loadingText:"Speichern...",successText:"Gespeichert",children:"Entwurf speichern"}),(0,t.jsx)(y,{type:"button",disabled:eh,disabledReason:"Freigegebene und abgeschlossene Validierungen sind schreibgeschuetzt",icon:(0,t.jsx)(h,{className:"h-4 w-4"}),state:K,loadingText:"Pruefung laeuft...",successText:"Geprueft",onClick:e_,children:"Bericht pruefen"}),(0,t.jsx)(y,{type:"button",variant:"primary",icon:(0,t.jsx)(c,{className:"h-4 w-4"}),onClick:()=>b?window.location.assign(`/validations/${b}/preview`):ej(),children:"HTML-Vorschau"}),(0,t.jsx)(y,{type:"button",icon:(0,t.jsx)(o.Download,{className:"h-4 w-4"}),state:G,loadingText:"PDF wird erzeugt...",successText:"PDF erzeugt",onClick:()=>b?eR():ej(),children:"PDF herunterladen"})]})]})})]})}function P({form:e,path:r}){return(0,t.jsxs)("div",{className:"mt-3 grid gap-3 rounded-lg border border-border p-4 md:grid-cols-[1fr_180px_1fr]",children:[(0,t.jsx)("input",{className:Q,readOnly:!0,...e.register(`${r}.text`)}),(0,t.jsx)("select",{className:Q,...e.register(`${r}.value`),children:_.map(e=>(0,t.jsx)("option",{value:e,children:"yes"===e?"Ja":"no"===e?"Nein":"Nicht zutreffend"},e))}),(0,t.jsx)("input",{className:Q,placeholder:"Kommentar",...e.register(`${r}.comment`)})]})}function $({title:e,items:r,tone:s}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:`font-semibold ${"danger"===s?"text-danger":"text-warning"}`,children:e}),0===r.length?(0,t.jsx)("p",{className:"mt-2 text-sm text-text-light",children:"Keine Eintraege."}):r.map(e=>(0,t.jsxs)("p",{className:"mt-2 text-sm",children:[e.section,": ",e.message]},`${e.field}-${e.message}`))]})}function I({form:e,index:r}){return(0,t.jsxs)("div",{className:"mb-3 grid gap-3 rounded-lg border border-border p-4 md:grid-cols-[80px_1fr]",children:[(0,t.jsx)("input",{type:"checkbox",className:"h-6 w-6",...e.register(`programs.${r}.selected`)}),(0,t.jsx)("input",{className:Q,...e.register(`programs.${r}.name`)})]})}function M({form:e,index:r}){return(0,t.jsxs)("div",{className:"mb-4 rounded-lg border border-border p-4",children:[(0,t.jsxs)("h3",{className:"font-semibold",children:["Testlauf ",r+1]}),(0,t.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{className:Q,placeholder:"Beladungsmuster",...e.register(`loading_patterns.${r}.pattern`)}),(0,t.jsx)("input",{className:Q,placeholder:"Beschreibung",...e.register(`loading_patterns.${r}.description`)}),(0,t.jsx)("input",{type:"file",multiple:!0,className:"rounded-lg border border-border p-3 md:col-span-2"})]})]})}function C({form:e,index:r}){return(0,t.jsxs)("div",{className:"mb-4 rounded-lg border border-border p-4",children:[(0,t.jsx)("h3",{className:"font-semibold",children:String(e.watch(`measurement_data.${r}.name`)??"")}),(0,t.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-3",children:[["start_time","end_time","duration","leak_rate","min_temperature","max_temperature","temperature_band","equilibration_time","holding_time","pressure","result"].map(s=>(0,t.jsx)("input",{className:Q,placeholder:s,...e.register(`measurement_data.${r}.${s}`)},s)),(0,t.jsx)("input",{type:"file",multiple:!0,accept:".csv,.pdf",className:"rounded-lg border border-border p-3 md:col-span-3"})]})]})}e.s(["ValidationEditor",0,z,"default",0,z],57344)},3030,e=>{"use strict";var t=e.i(43476),r=e.i(18566),s=e.i(57344);e.s(["default",0,function(){let e=(0,r.useParams)();return(0,t.jsx)(s.default,{validationId:e.id})}])}]);