Validation_Suite/validation-suite/frontend/atlas/.next/static/chunks/1m4and-haqgqz.js

1 line
No EOL
21 KiB
JavaScript

(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54858,e=>{"use strict";let t="/api/v1";async function s(e,t){let s=await e.text();if(!s)return t;try{let e=JSON.parse(s);return e.detail??e.message??s}catch{return s}}async function r(e,t){let s=await fetch("/api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t}),credentials:"include"});if(!s.ok){let e=Error(await s.text()||`HTTP ${s.status}`);throw e.status=s.status,e}return s.json()}async function i(e,s){let r=await fetch(`${t}${e}`,{cache:"no-store",credentials:"include"});if(!r.ok)throw Error(`API request failed: ${r.status}`);return r.json()}async function n(e,r,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 s(a,`API request failed: ${a.status}`));return a.json()}async function a(e,r){let i=await fetch(`${t}${e}`,{method:"DELETE",credentials:"include"});if(!i.ok)throw Error(await s(i,`API request failed: ${i.status}`))}async function l(e,r,i){let n=await fetch(`${t}${e}`,{...i,headers:{"Content-Type":"application/json",...i?.headers??{}},credentials:"include"});if(!n.ok)throw Error(await s(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,r,"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 s=e.i(75555),r=e.i(73911),i=e.i(40143),n=e.i(86491),a=e.i(15823),l=e.i(93803),o=e.i(19273),u=e.i(80166),c=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#s=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#r=void 0;#i=void 0;#n=void 0;#a;#l;#s;#t;#o;#u;#c;#h;#d;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#r.addObserver(this),h(this.#r,this.options)?this.#f():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return d(this.#r,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return d(this.#r,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#r.removeObserver(this)}setOptions(e){let t=this.options,s=this.#r;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.#r))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#v(),this.#r.setOptions(this.options),t._defaulted&&!(0,o.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#r,observer:this});let r=this.hasListeners();r&&p(this.#r,s,this.options,t)&&this.#f(),this.updateResult(),r&&(this.#r!==s||(0,o.resolveQueryBoolean)(this.options.enabled,this.#r)!==(0,o.resolveQueryBoolean)(t.enabled,this.#r)||(0,o.resolveStaleTime)(this.options.staleTime,this.#r)!==(0,o.resolveStaleTime)(t.staleTime,this.#r))&&this.#g();let i=this.#R();r&&(this.#r!==s||(0,o.resolveQueryBoolean)(this.options.enabled,this.#r)!==(0,o.resolveQueryBoolean)(t.enabled,this.#r)||i!==this.#p)&&this.#j(i)}getOptimisticResult(e){var t,s;let r=this.#e.getQueryCache().build(this.#e,e),i=this.createResult(r,e);return t=this,s=i,(0,o.shallowEqualObjects)(t.getCurrentResult(),s)||(this.#n=i,this.#l=this.options,this.#a=this.#r.state),i}getCurrentResult(){return this.#n}trackResult(e,t){return new Proxy(e,{get:(e,s)=>(this.trackProp(s),t?.(s),"promise"===s&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#s.status||this.#s.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,s))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#r}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),s=this.#e.getQueryCache().build(this.#e,t);return s.fetch().then(()=>this.createResult(s,t))}fetch(e){return this.#f({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#f(e){this.#v();let t=this.#r.fetch(this.options,e);return e?.throwOnError||(t=t.catch(o.noop)),t}#g(){this.#b();let e=(0,o.resolveStaleTime)(this.options.staleTime,this.#r);if(r.environmentManager.isServer()||this.#n.isStale||!(0,o.isValidTimeout)(e))return;let t=(0,o.timeUntilStale)(this.#n.dataUpdatedAt,e);this.#h=u.timeoutManager.setTimeout(()=>{this.#n.isStale||this.updateResult()},t+1)}#R(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#r):this.options.refetchInterval)??!1}#j(e){this.#x(),this.#p=e,!r.environmentManager.isServer()&&!1!==(0,o.resolveQueryBoolean)(this.options.enabled,this.#r)&&(0,o.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#d=u.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||s.focusManager.isFocused())&&this.#f()},this.#p))}#y(){this.#g(),this.#j(this.#R())}#b(){void 0!==this.#h&&(u.timeoutManager.clearTimeout(this.#h),this.#h=void 0)}#x(){void 0!==this.#d&&(u.timeoutManager.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let s,r=this.#r,i=this.options,a=this.#n,u=this.#a,c=this.#l,d=e!==r?e.state:this.#i,{state:f}=e,y={...f},b=!1;if(t._optimisticResults){let s=this.hasListeners(),a=!s&&h(e,t),l=s&&p(e,r,t,i);(a||l)&&(y={...y,...(0,n.fetchState)(f.data,e.options)}),"isRestoring"===t._optimisticResults&&(y.fetchStatus="idle")}let{error:x,errorUpdatedAt:v,status:g}=y;s=y.data;let R=!1;if(void 0!==t.placeholderData&&void 0===s&&"pending"===g){let e;a?.isPlaceholderData&&t.placeholderData===c?.placeholderData?(e=a.data,R=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#c?.state.data,this.#c):t.placeholderData,void 0!==e&&(g="success",s=(0,o.replaceData)(a?.data,e,t),b=!0)}if(t.select&&void 0!==s&&!R)if(a&&s===u?.data&&t.select===this.#o)s=this.#u;else try{this.#o=t.select,s=t.select(s),s=(0,o.replaceData)(a?.data,s,t),this.#u=s,this.#t=null}catch(e){this.#t=e}this.#t&&(x=this.#t,s=this.#u,v=Date.now(),g="error");let j="fetching"===y.fetchStatus,S="pending"===g,Q="error"===g,O=S&&j,w=void 0!==s,T={status:g,fetchStatus:y.fetchStatus,isPending:S,isSuccess:"success"===g,isError:Q,isInitialLoading:O,isLoading:O,data:s,dataUpdatedAt:y.dataUpdatedAt,error:x,errorUpdatedAt:v,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:y.dataUpdateCount>d.dataUpdateCount||y.errorUpdateCount>d.errorUpdateCount,isFetching:j,isRefetching:j&&!S,isLoadingError:Q&&!w,isPaused:"paused"===y.fetchStatus,isPlaceholderData:b,isRefetchError:Q&&w,isStale:m(e,t),refetch:this.refetch,promise:this.#s,isEnabled:!1!==(0,o.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==T.data,s="error"===T.status&&!t,i=e=>{s?e.reject(T.error):t&&e.resolve(T.data)},n=()=>{i(this.#s=T.promise=(0,l.pendingThenable)())},a=this.#s;switch(a.status){case"pending":e.queryHash===r.queryHash&&i(a);break;case"fulfilled":(s||T.data!==a.value)&&n();break;case"rejected":s&&T.error===a.reason||n()}}return T}updateResult(){let e=this.#n,t=this.createResult(this.#r,this.options);if(this.#a=this.#r.state,this.#l=this.options,void 0!==this.#a.data&&(this.#c=this.#r),(0,o.shallowEqualObjects)(t,e))return;this.#n=t;let s=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,s="function"==typeof t?t():t;if("all"===s||!s&&!this.#m.size)return!0;let r=new Set(s??this.#m);return this.options.throwOnError&&r.add("error"),Object.keys(this.#n).some(t=>this.#n[t]!==e[t]&&r.has(t))};this.#S({listeners:s()})}#v(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#r)return;let t=this.#r;this.#r=e,this.#i=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#S(e){i.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#n)}),this.#e.getQueryCache().notify({query:this.#r,type:"observerResultsUpdated"})})}};function h(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&&d(e,t,t.refetchOnMount)}function d(e,t,s){if(!1!==(0,o.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,o.resolveStaleTime)(t.staleTime,e)){let r="function"==typeof s?s(e):s;return"always"===r||!1!==r&&m(e,t)}return!1}function p(e,t,s,r){return(e!==t||!1===(0,o.resolveQueryBoolean)(r.enabled,e))&&(!s.suspense||"error"!==e.state.status)&&m(e,s)}function m(e,t){return!1!==(0,o.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,o.resolveStaleTime)(t.staleTime,e))}e.i(47167);var f=e.i(71645),y=e.i(12598);e.i(43476);var b=f.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),x=f.createContext(!1);x.Provider;var v=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});e.s(["useQuery",0,function(e,t){return function(e,t,s){let n,a=f.useContext(x),l=f.useContext(b),u=(0,y.useQueryClient)(s),c=u.defaultQueryOptions(e);u.getDefaultOptions().queries?._experimental_beforeQuery?.(c);let h=u.getQueryCache().get(c.queryHash),d=!1!==e.subscribed;if(c._optimisticResults=a?"isRestoring":d?"optimistic":void 0,c.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=c.staleTime;c.staleTime="function"==typeof t?(...s)=>e(t(...s)):e(t),"number"==typeof c.gcTime&&(c.gcTime=Math.max(c.gcTime,1e3))}n=h?.state.error&&"function"==typeof c.throwOnError?(0,o.shouldThrowError)(c.throwOnError,[h.state.error,h]):c.throwOnError,(c.suspense||c.experimental_prefetchInRender||n)&&!l.isReset()&&(c.retryOnMount=!1),f.useEffect(()=>{l.clearReset()},[l]);let p=!u.getQueryCache().get(c.queryHash),[m]=f.useState(()=>new t(u,c)),g=m.getOptimisticResult(c),R=!a&&d;if(f.useSyncExternalStore(f.useCallback(e=>{let t=R?m.subscribe(i.notifyManager.batchCalls(e)):o.noop;return m.updateResult(),t},[m,R]),()=>m.getCurrentResult(),()=>m.getCurrentResult()),f.useEffect(()=>{m.setOptions(c)},[c,m]),c?.suspense&&g.isPending)throw v(c,m,l);if((({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&void 0===e.data||(0,o.shouldThrowError)(s,[e.error,r])))({result:g,errorResetBoundary:l,throwOnError:c.throwOnError,query:h,suspense:c.suspense}))throw g.error;if(u.getDefaultOptions().queries?._experimental_afterQuery?.(c,g),c.experimental_prefetchInRender&&!r.environmentManager.isServer()&&g.isLoading&&g.isFetching&&!a){let e=p?v(c,m,l):h?.promise;e?.catch(o.noop).finally(()=>{m.updateResult()})}return c.notifyOnChangeProps?g:m.trackResult(g)}(e,c,t)}],66027)},54616,e=>{"use strict";var t=e.i(71645),s=e.i(14272),r=e.i(40143),i=e.i(15823),n=e.i(19273),a=class extends i.Subscribable{#e;#n=void 0;#Q;#O;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#w()}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.#Q,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#Q?.state.status==="pending"&&this.#Q.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#Q?.removeObserver(this)}onMutationUpdate(e){this.#w(),this.#S(e)}getCurrentResult(){return this.#n}reset(){this.#Q?.removeObserver(this),this.#Q=void 0,this.#w(),this.#S()}mutate(e,t){return this.#O=t,this.#Q?.removeObserver(this),this.#Q=this.#e.getMutationCache().build(this.#e,this.options),this.#Q.addObserver(this),this.#Q.execute(e)}#w(){let e=this.#Q?.state??(0,s.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}}#S(e){r.notifyManager.batch(()=>{if(this.#O&&this.hasListeners()){let t=this.#n.variables,s=this.#n.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#O.onSuccess?.(e.data,t,s,r)}catch(e){Promise.reject(e)}try{this.#O.onSettled?.(e.data,null,t,s,r)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#O.onError?.(e.error,t,s,r)}catch(e){Promise.reject(e)}try{this.#O.onSettled?.(void 0,e.error,t,s,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#n)})})}},l=e.i(12598);e.s(["useMutation",0,function(e,s){let i=(0,l.useQueryClient)(s),[o]=t.useState(()=>new a(i,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let u=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(r.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),c=t.useCallback((e,t)=>{o.mutate(e,t).catch(n.noop)},[o]);if(u.error&&(0,n.shouldThrowError)(o.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.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)},55436,e=>{"use strict";let t=(0,e.i(75254).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);e.s(["Search",0,t],55436)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],27612)},92930,e=>{"use strict";let t=(0,e.i(75254).default)("Pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,t],92930)},55303,e=>{"use strict";var t=e.i(43476),s=e.i(94814),r=e.i(54616),i=e.i(66027),n=e.i(12598),a=e.i(92930),l=e.i(55436),o=e.i(27612),u=e.i(37727),c=e.i(71645),h=e.i(53145),d=e.i(28779),p=e.i(54858);function m(e){return null==e?"":String(e)}e.s(["CrudPage",0,function({title:e,subtitle:f,endpoint:y,columns:b,fields:x,schema:v,emptyValues:g}){let{token:R}=(0,d.useAuth)(),j=(0,n.useQueryClient)(),[S,Q]=(0,c.useState)(1),[O,w]=(0,c.useState)(""),[T,k]=(0,c.useState)(null),[E,C]=(0,c.useState)(!1),I=`${y}?page=${S}&page_size=10&search=${encodeURIComponent(O)}`,N=(0,h.useForm)({resolver:(0,s.zodResolver)(v),defaultValues:g}),M=(0,i.useQuery)({queryKey:[y,S,10,O,R],queryFn:()=>(0,p.apiGet)(I,R??""),enabled:!!R}),P=Math.max(1,Math.ceil((M.data?.total??0)/10)),D=()=>j.invalidateQueries({queryKey:[y]}),F=(0,r.useMutation)({mutationFn:e=>{let t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,""===t?null:t]));return(0,p.apiSend)(T?`${y}/${T.id}`:y,R??"",T?"PUT":"POST",t)},onSuccess:()=>{C(!1),k(null),N.reset(g),D()}}),_=(0,r.useMutation)({mutationFn:e=>(0,p.apiDelete)(`${y}/${e.id}`,R??""),onSuccess:D}),q=(0,c.useMemo)(()=>M.data?.items??[],[M.data]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("header",{className:"flex flex-col justify-between gap-4 sm:flex-row sm:items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-semibold text-text",children:e}),(0,t.jsx)("p",{className:"mt-2 text-text-light",children:f})]}),(0,t.jsx)("button",{onClick:function(){k(null),N.reset(g),C(!0)},className:"btn btn-primary h-12",children:"Neu"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-soft",children:[(0,t.jsx)(l.Search,{className:"h-5 w-5 text-primary"}),(0,t.jsx)("input",{value:O,onChange:e=>{Q(1),w(e.target.value)},placeholder:"Suchen",className:"h-9 flex-1 bg-transparent outline-none"})]}),(0,t.jsx)("section",{className:"overflow-hidden rounded-lg border border-border bg-surface shadow-soft",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-left text-sm",children:[(0,t.jsx)("thead",{className:"bg-background text-xs uppercase text-text-light",children:(0,t.jsxs)("tr",{children:[b.map(e=>(0,t.jsx)("th",{className:"px-5 py-4",children:e.label},String(e.key))),(0,t.jsx)("th",{className:"px-5 py-4 text-right",children:"Aktionen"})]})}),(0,t.jsxs)("tbody",{className:"divide-y divide-border",children:[q.map(e=>(0,t.jsxs)("tr",{className:"hover:bg-accent/10",children:[b.map(s=>(0,t.jsx)("td",{className:"whitespace-nowrap px-5 py-4",children:m(e[s.key])},String(s.key))),(0,t.jsx)("td",{className:"px-5 py-4",children:(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{"aria-label":"Bearbeiten",title:"Bearbeiten",onClick:()=>{k(e),N.reset(Object.fromEntries(Object.keys(g).map(t=>[t,m(e[t])]))),C(!0)},className:"icon-btn text-primary-dark",children:(0,t.jsx)(a.Edit2,{className:"h-4 w-4"})}),(0,t.jsx)("button",{"aria-label":"Loeschen",title:_.isPending?"Loeschen laeuft...":"Loeschen",disabled:_.isPending,onClick:()=>_.mutate(e),className:"icon-btn text-danger",children:_.isPending?(0,t.jsx)("span",{className:"spinner"}):(0,t.jsx)(o.Trash2,{className:"h-4 w-4"})})]})})]},e.id)),!M.isLoading&&0===q.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:b.length+1,className:"px-5 py-10 text-center text-text-light",children:"Keine Datensaetze gefunden."})})]})]})})}),(0,t.jsxs)("footer",{className:"flex items-center justify-between text-sm text-text-light",children:[(0,t.jsxs)("span",{children:[M.data?.total??0," Datensaetze"]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{disabled:S<=1,title:S<=1?"Erste Seite erreicht":void 0,onClick:()=>Q(e=>e-1),className:"btn btn-secondary",children:"Zurueck"}),(0,t.jsxs)("span",{children:["Seite ",S," von ",P]}),(0,t.jsx)("button",{disabled:S>=P,title:S>=P?"Letzte Seite erreicht":void 0,onClick:()=>Q(e=>e+1),className:"btn btn-secondary",children:"Weiter"})]})]}),E&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-end bg-black/20 p-3 sm:items-center sm:justify-center",children:(0,t.jsxs)("form",{onSubmit:N.handleSubmit(e=>F.mutate(e)),className:"max-h-[92vh] w-full max-w-3xl overflow-y-auto rounded-lg bg-surface p-6 shadow-soft",children:[(0,t.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"text-xl font-semibold",children:T?"Bearbeiten":"Neu"}),(0,t.jsx)("button",{type:"button",onClick:()=>C(!1),className:"icon-btn",children:(0,t.jsx)(u.X,{className:"h-4 w-4"})})]}),(0,t.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:x.map(e=>(0,t.jsxs)("label",{className:"textarea"===e.type?"sm:col-span-2":"",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),"select"===e.type?(0,t.jsxs)("select",{...N.register(e.name),className:"mt-2 h-11 w-full rounded-lg border border-border px-3",children:[(0,t.jsx)("option",{value:"",children:"Bitte waehlen"}),e.options?.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))]}):"textarea"===e.type?(0,t.jsx)("textarea",{...N.register(e.name),className:"mt-2 min-h-24 w-full rounded-lg border border-border px-3 py-2"}):(0,t.jsx)("input",{type:e.type??"text",...N.register(e.name),className:"mt-2 h-11 w-full rounded-lg border border-border px-3"}),N.formState.errors[e.name]&&(0,t.jsx)("span",{className:"mt-1 block text-xs text-danger",children:"Bitte gueltig ausfuellen."})]},e.name))}),F.isError&&(0,t.jsx)("p",{className:"mt-4 text-sm text-danger",children:"Speichern fehlgeschlagen. Bitte Eingaben pruefen."}),(0,t.jsxs)("div",{className:"mt-6 flex justify-end gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:()=>C(!1),className:"btn btn-secondary",children:"Abbrechen"}),(0,t.jsxs)("button",{type:"submit",disabled:F.isPending,title:F.isPending?"Speichern laeuft...":void 0,className:"btn btn-primary",children:[F.isPending?(0,t.jsx)("span",{className:"spinner"}):null,F.isPending?"Speichern...":"Speichern"]})]})]})})]})}])},23448,e=>{"use strict";var t=e.i(43476),s=e.i(50270),r=e.i(66027),i=e.i(28779),n=e.i(55303),a=e.i(54858);let l=s.z.object({customer_id:s.z.string().min(1),name:s.z.string().min(2),street:s.z.string().optional().nullable(),postal_code:s.z.string().optional().nullable(),city:s.z.string().optional().nullable(),room:s.z.string().optional().nullable()});e.s(["default",0,function(){let{token:e}=(0,i.useAuth)(),s=(0,r.useQuery)({queryKey:["customers-options",e],queryFn:()=>(0,a.apiGet)("/customers?page=1&page_size=100",e??""),enabled:!!e}),o=(s.data?.items??[]).map(e=>({label:e.name,value:e.id}));return(0,t.jsx)(n.CrudPage,{title:"Standorte",subtitle:"Standorte und Raeume mit Zuordnung zum Kunden.",endpoint:"/locations",columns:[{key:"name",label:"Name"},{key:"city",label:"Ort"},{key:"room",label:"Raum"},{key:"customer_id",label:"Kunden-ID"}],fields:[{name:"customer_id",label:"Kunde",type:"select",options:o},{name:"name",label:"Name"},{name:"street",label:"Adresse"},{name:"postal_code",label:"PLZ"},{name:"city",label:"Ort"},{name:"room",label:"Raum"}],schema:l,emptyValues:{customer_id:"",name:"",street:"",postal_code:"",city:"",room:""}})}])}]);