1 line
No EOL
25 KiB
JavaScript
1 line
No EOL
25 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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),o=e.i(93803),l=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,o.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#r=void 0;#i=void 0;#n=void 0;#a;#o;#s;#t;#l;#u;#c;#h;#d;#p;#b=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#r.addObserver(this),h(this.#r,this.options)?this.#m():this.updateResult(),this.#f())}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.#g(),this.#v(),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,l.resolveQueryBoolean)(this.options.enabled,this.#r))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#y(),this.#r.setOptions(this.options),t._defaulted&&!(0,l.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.#m(),this.updateResult(),r&&(this.#r!==s||(0,l.resolveQueryBoolean)(this.options.enabled,this.#r)!==(0,l.resolveQueryBoolean)(t.enabled,this.#r)||(0,l.resolveStaleTime)(this.options.staleTime,this.#r)!==(0,l.resolveStaleTime)(t.staleTime,this.#r))&&this.#x();let i=this.#_();r&&(this.#r!==s||(0,l.resolveQueryBoolean)(this.options.enabled,this.#r)!==(0,l.resolveQueryBoolean)(t.enabled,this.#r)||i!==this.#p)&&this.#R(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,l.shallowEqualObjects)(t.getCurrentResult(),s)||(this.#n=i,this.#o=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.#b.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.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#m(e){this.#y();let t=this.#r.fetch(this.options,e);return e?.throwOnError||(t=t.catch(l.noop)),t}#x(){this.#g();let e=(0,l.resolveStaleTime)(this.options.staleTime,this.#r);if(r.environmentManager.isServer()||this.#n.isStale||!(0,l.isValidTimeout)(e))return;let t=(0,l.timeUntilStale)(this.#n.dataUpdatedAt,e);this.#h=u.timeoutManager.setTimeout(()=>{this.#n.isStale||this.updateResult()},t+1)}#_(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#r):this.options.refetchInterval)??!1}#R(e){this.#v(),this.#p=e,!r.environmentManager.isServer()&&!1!==(0,l.resolveQueryBoolean)(this.options.enabled,this.#r)&&(0,l.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#d=u.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||s.focusManager.isFocused())&&this.#m()},this.#p))}#f(){this.#x(),this.#R(this.#_())}#g(){void 0!==this.#h&&(u.timeoutManager.clearTimeout(this.#h),this.#h=void 0)}#v(){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.#o,d=e!==r?e.state:this.#i,{state:m}=e,f={...m},g=!1;if(t._optimisticResults){let s=this.hasListeners(),a=!s&&h(e,t),o=s&&p(e,r,t,i);(a||o)&&(f={...f,...(0,n.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(f.fetchStatus="idle")}let{error:v,errorUpdatedAt:y,status:x}=f;s=f.data;let _=!1;if(void 0!==t.placeholderData&&void 0===s&&"pending"===x){let e;a?.isPlaceholderData&&t.placeholderData===c?.placeholderData?(e=a.data,_=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#c?.state.data,this.#c):t.placeholderData,void 0!==e&&(x="success",s=(0,l.replaceData)(a?.data,e,t),g=!0)}if(t.select&&void 0!==s&&!_)if(a&&s===u?.data&&t.select===this.#l)s=this.#u;else try{this.#l=t.select,s=t.select(s),s=(0,l.replaceData)(a?.data,s,t),this.#u=s,this.#t=null}catch(e){this.#t=e}this.#t&&(v=this.#t,s=this.#u,y=Date.now(),x="error");let R="fetching"===f.fetchStatus,w="pending"===x,S="error"===x,j=w&&R,k=void 0!==s,C={status:x,fetchStatus:f.fetchStatus,isPending:w,isSuccess:"success"===x,isError:S,isInitialLoading:j,isLoading:j,data:s,dataUpdatedAt:f.dataUpdatedAt,error:v,errorUpdatedAt:y,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdateCount:f.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:f.dataUpdateCount>d.dataUpdateCount||f.errorUpdateCount>d.errorUpdateCount,isFetching:R,isRefetching:R&&!w,isLoadingError:S&&!k,isPaused:"paused"===f.fetchStatus,isPlaceholderData:g,isRefetchError:S&&k,isStale:b(e,t),refetch:this.refetch,promise:this.#s,isEnabled:!1!==(0,l.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==C.data,s="error"===C.status&&!t,i=e=>{s?e.reject(C.error):t&&e.resolve(C.data)},n=()=>{i(this.#s=C.promise=(0,o.pendingThenable)())},a=this.#s;switch(a.status){case"pending":e.queryHash===r.queryHash&&i(a);break;case"fulfilled":(s||C.data!==a.value)&&n();break;case"rejected":s&&C.error===a.reason||n()}}return C}updateResult(){let e=this.#n,t=this.createResult(this.#r,this.options);if(this.#a=this.#r.state,this.#o=this.options,void 0!==this.#a.data&&(this.#c=this.#r),(0,l.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.#b.size)return!0;let r=new Set(s??this.#b);return this.options.throwOnError&&r.add("error"),Object.keys(this.#n).some(t=>this.#n[t]!==e[t]&&r.has(t))};this.#w({listeners:s()})}#y(){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.#f()}#w(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,l.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,l.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&d(e,t,t.refetchOnMount)}function d(e,t,s){if(!1!==(0,l.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,l.resolveStaleTime)(t.staleTime,e)){let r="function"==typeof s?s(e):s;return"always"===r||!1!==r&&b(e,t)}return!1}function p(e,t,s,r){return(e!==t||!1===(0,l.resolveQueryBoolean)(r.enabled,e))&&(!s.suspense||"error"!==e.state.status)&&b(e,s)}function b(e,t){return!1!==(0,l.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,l.resolveStaleTime)(t.staleTime,e))}e.i(47167);var m=e.i(71645),f=e.i(12598);e.i(43476);var g=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),v=m.createContext(!1);v.Provider;var y=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});e.s(["useQuery",0,function(e,t){return function(e,t,s){let n,a=m.useContext(v),o=m.useContext(g),u=(0,f.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,l.shouldThrowError)(c.throwOnError,[h.state.error,h]):c.throwOnError,(c.suspense||c.experimental_prefetchInRender||n)&&!o.isReset()&&(c.retryOnMount=!1),m.useEffect(()=>{o.clearReset()},[o]);let p=!u.getQueryCache().get(c.queryHash),[b]=m.useState(()=>new t(u,c)),x=b.getOptimisticResult(c),_=!a&&d;if(m.useSyncExternalStore(m.useCallback(e=>{let t=_?b.subscribe(i.notifyManager.batchCalls(e)):l.noop;return b.updateResult(),t},[b,_]),()=>b.getCurrentResult(),()=>b.getCurrentResult()),m.useEffect(()=>{b.setOptions(c)},[c,b]),c?.suspense&&x.isPending)throw y(c,b,o);if((({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&void 0===e.data||(0,l.shouldThrowError)(s,[e.error,r])))({result:x,errorResetBoundary:o,throwOnError:c.throwOnError,query:h,suspense:c.suspense}))throw x.error;if(u.getDefaultOptions().queries?._experimental_afterQuery?.(c,x),c.experimental_prefetchInRender&&!r.environmentManager.isServer()&&x.isLoading&&x.isFetching&&!a){let e=p?y(c,b,o):h?.promise;e?.catch(l.noop).finally(()=>{b.updateResult()})}return c.notifyOnChangeProps?x:b.trackResult(x)}(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;#S;#j;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.#S,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#S?.state.status==="pending"&&this.#S.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#S?.removeObserver(this)}onMutationUpdate(e){this.#k(),this.#w(e)}getCurrentResult(){return this.#n}reset(){this.#S?.removeObserver(this),this.#S=void 0,this.#k(),this.#w()}mutate(e,t){return this.#j=t,this.#S?.removeObserver(this),this.#S=this.#e.getMutationCache().build(this.#e,this.options),this.#S.addObserver(this),this.#S.execute(e)}#k(){let e=this.#S?.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}}#w(e){r.notifyManager.batch(()=>{if(this.#j&&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.#j.onSuccess?.(e.data,t,s,r)}catch(e){Promise.reject(e)}try{this.#j.onSettled?.(e.data,null,t,s,r)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#j.onError?.(e.error,t,s,r)}catch(e){Promise.reject(e)}try{this.#j.onSettled?.(void 0,e.error,t,s,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#n)})})}},o=e.i(12598);e.s(["useMutation",0,function(e,s){let i=(0,o.useQueryClient)(s),[l]=t.useState(()=>new a(i,e));t.useEffect(()=>{l.setOptions(e)},[l,e]);let u=t.useSyncExternalStore(t.useCallback(e=>l.subscribe(r.notifyManager.batchCalls(e)),[l]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),c=t.useCallback((e,t)=>{l.mutate(e,t).catch(n.noop)},[l]);if(u.error&&(0,n.shouldThrowError)(l.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.mutate}}],54616)},67240,e=>{"use strict";let t=(0,e.i(75254).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],67240)},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)},56909,e=>{"use strict";let t=(0,e.i(75254).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"}]]);e.s(["Save",0,t],56909)},95241,e=>{"use strict";var t=e.i(43476),s=e.i(54616),r=e.i(66027),i=e.i(12598),n=e.i(40160),a=e.i(67240),o=e.i(56909),l=e.i(71645),u=e.i(28779);let c={layout_profile:"STANDARD",show_cover_result_text:!0,signature_mode:"TECHNICAL_ONLY",image_size:"MEDIUM",page_break_before_main_chapters:!0,page_margin:"STANDARD",section_spacing:"STANDARD",table_layout:"STANDARD",table_font_size:"STANDARD",image_position:"SIDE_BY_SIDE",max_images_per_page:2,show_image_captions:!0,show_header:!0,show_footer:!0,logo_size:"MEDIUM",compact_cover:!1};async function h(e,t){try{return(await e.json()).detail??t}catch{return t}}async function d(){let e=await fetch("/api/report-settings",{credentials:"include",cache:"no-store"});if(!e.ok)throw Error(await h(e,"Berichtseinstellungen konnten nicht geladen werden."));return await e.json()}async function p(e){let t=await fetch("/api/report-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include",cache:"no-store"});if(!t.ok)throw Error(await h(t,"Berichtseinstellungen konnten nicht gespeichert werden."));return await t.json()}async function b(e){let t=await fetch("/api/report-settings/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include",cache:"no-store"});if(!t.ok)throw Error(await h(t,"PDF-Vorschau konnte nicht erzeugt werden."));return URL.createObjectURL(await t.blob())}function m(e){return e?{layout_profile:e.layout_profile,show_cover_result_text:e.show_cover_result_text,signature_mode:e.signature_mode,image_size:e.image_size,page_break_before_main_chapters:e.page_break_before_main_chapters,page_margin:e.page_margin,section_spacing:e.section_spacing,table_layout:e.table_layout,table_font_size:e.table_font_size,image_position:e.image_position,max_images_per_page:e.max_images_per_page,show_image_captions:e.show_image_captions,show_header:e.show_header,show_footer:e.show_footer,logo_size:e.logo_size,compact_cover:e.compact_cover}:c}function f({title:e,description:s,children:r}){return(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 text-text",children:e}),(0,t.jsx)("p",{className:"mt-1 text-sm text-text-light",children:s}),(0,t.jsx)("div",{className:"mt-5 space-y-5",children:r})]})}function g({label:e,value:s,options:r,onChange:i}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-semibold text-text",children:e}),(0,t.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:r.map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":s===e.value,className:`min-h-12 rounded-lg border px-4 text-sm font-semibold transition hover:shadow-soft focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary active:scale-[0.98] ${s===e.value?"border-primary bg-primary text-white":"border-border bg-white text-text hover:bg-background"}`,onClick:()=>i(e.value),children:e.label},e.value))})]})}function v({label:e,value:s,options:r,onChange:i}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-semibold text-text",children:e}),(0,t.jsx)("div",{className:"grid gap-2",children:r.map(e=>(0,t.jsxs)("button",{type:"button","aria-pressed":s===e.value,className:`flex min-h-12 items-center justify-between rounded-lg border px-4 text-left text-sm font-semibold transition hover:shadow-soft focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary active:scale-[0.98] ${s===e.value?"border-primary bg-accent/25 text-primary-dark":"border-border bg-white text-text hover:bg-background"}`,onClick:()=>i(e.value),children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)("span",{className:`h-3 w-3 rounded-full border ${s===e.value?"border-primary bg-primary":"border-border"}`})]},e.value))})]})}function y({label:e,checked:s,onChange:r}){return(0,t.jsxs)("button",{type:"button","aria-pressed":s,className:"flex min-h-12 w-full items-center justify-between rounded-lg border border-border bg-white px-4 text-left text-sm font-semibold transition hover:bg-background hover:shadow-soft focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary active:scale-[0.98]",onClick:()=>r(!s),children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{className:`rounded-full px-3 py-1 text-xs ${s?"bg-success/15 text-success":"bg-slate-100 text-text-light"}`,children:s?"Ein":"Aus"})]})}e.s(["default",0,function(){let{user:e}=(0,u.useAuth)(),h=(0,i.useQueryClient)(),[x,_]=(0,l.useState)(c),[R,w]=(0,l.useState)(""),[S,j]=(0,l.useState)(""),[k,C]=(0,l.useState)(""),O=(0,r.useQuery)({queryKey:["report-settings"],queryFn:d,enabled:e?.role==="admin"}),T=(0,l.useMemo)(()=>m(O.data),[O.data]),Q=JSON.stringify(x)!==JSON.stringify(T);(0,l.useEffect)(()=>{O.data&&_(m(O.data))},[O.data]),(0,l.useEffect)(()=>()=>{R&&URL.revokeObjectURL(R)},[R]);let N=(0,s.useMutation)({mutationFn:p,onSuccess:async e=>{j("Berichtseinstellungen gespeichert"),C(""),_(m(e)),await h.invalidateQueries({queryKey:["report-settings"]})},onError:e=>{C(e.message),j("")}}),D=(0,s.useMutation)({mutationFn:b,onSuccess:e=>{w(t=>(t&&URL.revokeObjectURL(t),e)),j("Vorschau aktualisiert"),C("")},onError:e=>{C(e.message),j("")}});return e?.role!=="admin"?(0,t.jsx)("div",{className:"rounded-lg border border-border bg-surface p-6 text-text-light",children:"Nur fuer Administratoren verfuegbar."}):(0,t.jsxs)("div",{className:"space-y-6 pb-24",children:[(0,t.jsxs)("header",{children:[(0,t.jsx)("h1",{className:"text-3xl font-semibold text-text",children:"Berichtseinstellungen"}),(0,t.jsx)("p",{className:"mt-2 max-w-3xl text-text-light",children:"Grundlegende Orion-Berichtsdarstellung mit sicheren Auswahloptionen und PDF-Vorschau."})]}),O.isLoading?(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-surface p-5 text-sm text-text-light",children:[(0,t.jsx)("span",{className:"spinner"}),"Berichtseinstellungen werden geladen..."]}):O.isError?(0,t.jsx)("div",{className:"rounded-lg border border-danger/40 bg-danger/10 p-5 text-sm text-danger",children:"Berichtseinstellungen konnten nicht geladen werden."}):(0,t.jsxs)("div",{className:"grid gap-5 xl:grid-cols-[minmax(0,1fr)_minmax(360px,520px)]",children:[(0,t.jsxs)("div",{className:"grid gap-5 lg:grid-cols-2 xl:grid-cols-1",children:[(0,t.jsxs)(f,{title:"Seitenlayout",description:"Steuert Seitenränder und Abstände im Bericht.",children:[(0,t.jsx)(g,{label:"Seitenränder",value:x.page_margin,options:[{value:"NARROW",label:"Schmal"},{value:"STANDARD",label:"Standard"},{value:"WIDE",label:"Breit"}],onChange:e=>_(t=>({...t,page_margin:e}))}),(0,t.jsx)(g,{label:"Abschnittsabstände",value:x.section_spacing,options:[{value:"COMPACT",label:"Kompakt"},{value:"STANDARD",label:"Standard"}],onChange:e=>_(t=>({...t,section_spacing:e}))}),(0,t.jsx)(g,{label:"Layoutprofil",value:x.layout_profile,options:[{value:"COMPACT",label:"Kompakt"},{value:"STANDARD",label:"Standard"}],onChange:e=>_(t=>({...t,layout_profile:e}))})]}),(0,t.jsxs)(f,{title:"Deckblatt",description:"Sichtbarkeit und kompaktere Darstellung auf der Titelseite.",children:[(0,t.jsx)(y,{label:"Ergebnistext auf Deckblatt",checked:x.show_cover_result_text,onChange:e=>_(t=>({...t,show_cover_result_text:e}))}),(0,t.jsx)(y,{label:"Deckblatt kompakt",checked:x.compact_cover,onChange:e=>_(t=>({...t,compact_cover:e}))}),(0,t.jsx)(v,{label:"Unterschriften",value:x.signature_mode,options:[{value:"TECHNICAL_ONLY",label:"Nur technische Validierung"},{value:"TECHNICAL_AND_CLIENT",label:"Technische Validierung + Auftraggeber"}],onChange:e=>_(t=>({...t,signature_mode:e}))})]}),(0,t.jsxs)(f,{title:"Tabellen",description:"Dichte und Schrift der Berichtstabellen.",children:[(0,t.jsx)(g,{label:"Tabellenlayout",value:x.table_layout,options:[{value:"COMPACT",label:"Kompakt"},{value:"STANDARD",label:"Standard"}],onChange:e=>_(t=>({...t,table_layout:e}))}),(0,t.jsx)(g,{label:"Tabellenschrift",value:x.table_font_size,options:[{value:"SMALL",label:"Klein"},{value:"STANDARD",label:"Standard"}],onChange:e=>_(t=>({...t,table_font_size:e}))})]}),(0,t.jsxs)(f,{title:"Bilder",description:"Größe, Anordnung und Beschriftungen von Bildern.",children:[(0,t.jsx)(g,{label:"Standard-Bildgröße",value:x.image_size,options:[{value:"SMALL",label:"Klein"},{value:"MEDIUM",label:"Mittel"},{value:"LARGE",label:"Groß"}],onChange:e=>_(t=>({...t,image_size:e}))}),(0,t.jsx)(v,{label:"Bildposition",value:x.image_position,options:[{value:"STACKED",label:"Untereinander"},{value:"SIDE_BY_SIDE",label:"Nebeneinander wenn möglich"}],onChange:e=>_(t=>({...t,image_position:e}))}),(0,t.jsx)(g,{label:"Maximale Bilder pro Seite",value:String(x.max_images_per_page),options:[{value:"1",label:"1"},{value:"2",label:"2"},{value:"4",label:"4"}],onChange:e=>_(t=>({...t,max_images_per_page:Number(e)}))}),(0,t.jsx)(y,{label:"Bildbeschriftungen",checked:x.show_image_captions,onChange:e=>_(t=>({...t,show_image_captions:e}))})]}),(0,t.jsxs)(f,{title:"Kopf- und Fußzeile",description:"Sichtbarkeit und Logo-Größe im Berichtskopf.",children:[(0,t.jsx)(y,{label:"Kopfzeile anzeigen",checked:x.show_header,onChange:e=>_(t=>({...t,show_header:e}))}),(0,t.jsx)(y,{label:"Fußzeile anzeigen",checked:x.show_footer,onChange:e=>_(t=>({...t,show_footer:e}))}),(0,t.jsx)(g,{label:"Firmenlogo",value:x.logo_size,options:[{value:"SMALL",label:"Klein"},{value:"MEDIUM",label:"Mittel"},{value:"LARGE",label:"Groß"}],onChange:e=>_(t=>({...t,logo_size:e}))})]}),(0,t.jsx)(f,{title:"Kapitel",description:"Legt fest, ob Hauptkapitel auf neuen Seiten beginnen.",children:(0,t.jsx)(y,{label:"Neue Seite vor Hauptkapiteln",checked:x.page_break_before_main_chapters,onChange:e=>_(t=>({...t,page_break_before_main_chapters:e}))})})]}),(0,t.jsxs)("aside",{className:"rounded-lg border border-border bg-surface p-4 shadow-soft xl:sticky xl:top-6 xl:h-[calc(100vh-3rem)]",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between xl:flex-col xl:items-stretch",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold text-text",children:"Live-Vorschau"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-text-light",children:"PDF-Vorschau mit aktuellen, noch nicht gespeicherten Einstellungen."})]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary h-12",disabled:D.isPending||O.isLoading,onClick:()=>D.mutate(x),children:[D.isPending?(0,t.jsx)("span",{className:"spinner"}):(0,t.jsx)(n.Download,{className:"h-4 w-4"}),D.isPending?"PDF wird erzeugt...":"Vorschau aktualisieren"]})]}),(0,t.jsx)("div",{className:"mt-4 h-[520px] overflow-hidden rounded-lg border border-border bg-background xl:h-[calc(100%-8rem)]",children:R?(0,t.jsx)("iframe",{title:"Orion PDF-Vorschau",src:R,className:"h-full w-full"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6 text-center text-sm text-text-light",children:"Erzeuge eine Vorschau, um die Auswirkungen der Einstellungen direkt zu prüfen."})}),(0,t.jsx)("p",{className:"mt-3 text-xs text-text-light",children:"Falls der Browser keine eingebetteten PDFs anzeigt, öffnet er die Datei über seine Standard-PDF-Funktion."})]})]}),(S||k||Q)&&(0,t.jsx)("div",{className:`rounded-lg border p-4 text-sm ${k?"border-danger/40 bg-danger/10 text-danger":"border-accent/40 bg-accent/10 text-primary-dark"}`,children:k||S||"Ungespeicherte Änderungen"}),(0,t.jsx)("div",{className:"fixed bottom-0 left-0 right-0 z-30 border-t border-border bg-surface/95 px-4 py-3 shadow-soft backdrop-blur lg:left-72",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-7xl flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:[(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary h-12",disabled:!Q||N.isPending,onClick:()=>{_(T),C(""),j("Änderungen verworfen")},children:[(0,t.jsx)(a.RotateCcw,{className:"h-4 w-4"}),"Zurücksetzen"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-secondary h-12",disabled:D.isPending||O.isLoading,onClick:()=>D.mutate(x),children:[D.isPending?(0,t.jsx)("span",{className:"spinner"}):(0,t.jsx)(n.Download,{className:"h-4 w-4"}),D.isPending?"PDF wird erzeugt...":"Vorschau aktualisieren"]}),(0,t.jsxs)("button",{type:"button",className:"btn btn-primary h-12",disabled:!Q||N.isPending||O.isLoading,onClick:()=>N.mutate(x),children:[N.isPending?(0,t.jsx)("span",{className:"spinner"}):(0,t.jsx)(o.Save,{className:"h-4 w-4"}),N.isPending?"Speichern...":"Änderungen speichern"]})]})})]})}])}]); |