1import{h as Ne,K as v,O as E,L as s,a4 as k,n as g,_ as W,$ as U,a0 as r,M as n,f as h,c as i,P as _t,w as F,u as y,F as ae,a1 as H,U as ia,Y as $s,a6 as Ce,r as qs,ac as ta,ad as Ha,a7 as Da,H as Ds,ae as Rs,W as Ts,v as Is,af as Os,R as Es,q as Ra,x as Ps}from"./vue-datepicker-CpIdsRIT.js";import{n as V,b as Xe,u as Ya,F as Ms,G as Vs,H as Ls,v as Yt,I as Ja,V as De,J as Us,K as Xa,L as Ws,M as aa,N as Qs,O as Za,P as zs,Q as Bs,o as es,R as Ks,_ as ts,S as as,T as la,q as ra,a as Nt,g as Gs,U as ss,W as Ta,X as js,Y as os,Z as ns,$ as Ia,a0 as ua,a1 as is,a2 as Fs,a3 as Hs,a4 as Ys,a5 as Js,a6 as Xs,t as ls,l as Jt,a7 as Oa,a8 as Zs,a9 as eo,aa as to,ab as ao,ac as so,ad as Xt,ae as oo,af as no,ag as io,ah as lo,ai as ro,aj as uo,ak as co,al as po,am as vo,an as Ea,ao as ft,ap as mo,aq as yo,ar as Zt,as as go,at as Pa,au as Ma,av as fo,aw as ho,ax as ko,ay as bo,az as ea,aA as Ao,aB as Va,aC as xo,aD as La,aE as wo,aF as Co,aG as So,D as Ua,aH as _o,aI as No,aJ as $o,aK as Wa,aL as qo}from"./index-c2PABjuS.js";import{u as $t}from"./cockpitStore-DZbmc_9j.js";import{V as qt,u as Do}from"./filter-By8nmMDA.js";import{u as Dt,c as sa,a as oa,_ as na,b as Ro}from"./NoteTranslationComposable-CMavysnC.js";import{m as xe,T as St,U as Be,V as Je,W as Qa,D as To,o as za,X as ht,Y as Io,p as Ba,e as Oo,B as Eo,b as Po,Z as Mo}from"./datefns-BAflKSlV.js";import{A as Vo}from"./AnnouncementDialog-CaKJmWiM.js";import{_ as Lo}from"./Attachment.vue_vue_type_script_setup_true_lang-DSZxW_8W.js";import{u as Uo}from"./LocalizedTextComposable-BT_MHYJB.js";import{r as Re}from"./ResolveErrorCode-_CDAcugR.js";import{E as rs}from"./EmployeeContactCard-BkJPcAg4.js";import{de as Wo}from"./de-XdJMJqvk.js";import{fr as Qo}from"./fr-Do-AU_sq.js";import{pt as zo}from"./pt-VWnc2gkB.js";import{nlBE as Bo}from"./nl-BE-B_AWmOWf.js";import{nl as Ko}from"./nl-BN_y8mBz.js";/* empty css */import{V as Go}from"./VSelect-DnH6Hc5K.js";import{V as jo}from"./VAutocomplete-Cxtz8Npr.js";import{V as Fo}from"./VTextField-CzBtTN-C.js";import{V as Ho}from"./VDataTableServer-sfveKKYy.js";import{V as Ka}from"./VSkeletonLoader-CEn_AZQk.js";import{V as Yo}from"./VCheckboxBtn-CaDiUy2q.js";import{V as Jo}from"./VCheckbox-B94IcOod.js";import"./VTextarea-CHzya4rg.js";import"./VuetifyDatePicker.vue_vue_type_script_setup_true_lang-B9W9tuUi.js";import"./VSheet-Bi2ZFpX8.js";import"./VForm-fG7fwhIC.js";import"./Debounce-Y5hT8a-T.js";import"./VSwitch-DckCpHw1.js";import"./VRadioGroup-jmNQlkKx.js";import"./VChip-zxhclFBY.js";import"./VDataTable-CzpP61RX.js";import"./VTable-CzfeRkJJ.js";const Xo={class:"absolute -top-5 left-1/2 -translate-x-1/2"},Zo={class:"text-sm leading-snug"},en={class:"text-3xl font-bold text-gray-900 text-center mb-1"},tn={key:0,class:"text-xs text-gray-400 text-center"},an={key:1,class:"mt-3 pt-3 border-t border-gray-100 text-center"},sn={class:"text-xs text-gray-400 mb-0.5"},on={class:"text-base font-semibold text-gray-600"},Le=Ne({__name:"CockpitCard",props:{title:{type:String,required:!0},value:{type:String,required:!0},valuePostfix:{type:String},secondaryValue:{type:String},secondaryLabel:{type:String},icon:{type:String,required:!0},iconBgColorClass:{type:String,required:!0},tooltip:{type:String},selected:{type:Boolean,default:!1},clickable:{type:Boolean,default:!0}},emits:["selected"],setup(l,{emit:A}){const u=l,R=A,K=()=>{u.clickable&&R("selected")};return(D,se)=>(n(),v("div",{class:E(["bg-white rounded-xl pt-10 px-6 pb-4 border border-gray-100 shadow-sm relative transition-all",{"!border-secondary ring-1 ring-secondary":l.selected,"cursor-pointer hover:shadow-md":l.clickable}]),onClick:K},[s("div",Xo,[s("div",{class:E(["w-12 h-12 rounded-xl flex items-center justify-center shadow-md",[l.iconBgColorClass,{"cursor-help":!!l.tooltip}]])},[g(V,{icon:l.icon},null,8,["icon"]),l.tooltip?(n(),W(qt,{key:0,activator:"parent",location:"top","open-delay":700,"max-width":"340"},{default:U(()=>[s("span",Zo,r(l.tooltip),1)]),_:1})):k("",!0)],2)]),s("p",{class:E(["text-sm text-center mb-1",l.selected?"text-secondary":"text-gray-500"])},r(l.title),3),s("h2",en,r(l.value),1),l.valuePostfix?(n(),v("p",tn,r(l.valuePostfix),1)):k("",!0),l.secondaryValue!==void 0?(n(),v("div",an,[s("p",sn,r(l.secondaryLabel),1),s("p",on,r(l.secondaryValue),1)])):k("",!0)],2))}}),nn={class:"my-tasks bg-white rounded-xl border border-gray-100 shadow-sm","data-tour":"cockpit-my-tasks"},ln={class:"my-tasks__header"},rn=["aria-expanded"],un={class:"my-tasks__icon"},cn={class:"min-w-0 text-left"},dn={class:"flex items-center gap-2"},pn={class:"text-sm font-semibold text-gray-900"},vn={class:"block text-xs text-gray-500 truncate"},mn={class:"flex items-center gap-1 shrink-0"},yn={key:0,class:"px-5 pb-4 pt-1 space-y-2"},gn={key:1,class:"px-5 pb-5 pt-1 text-center"},fn={class:"text-sm text-gray-500 mb-2"}
1,hn={key:2,class:"px-5 pb-5 pt-1 flex items-center gap-3"},kn={class:"w-9 h-9 rounded-lg bg-green-50 text-green-600 flex items-center justify-center shrink-0"},bn={class:"text-sm text-gray-600"},An={key:3,class:"my-tasks__list"},xn=["onClick"],wn={class:"min-w-0 flex-1"},Cn={class:"flex items-center gap-2 min-w-0"},Sn={class:"text-sm font-medium text-gray-900 truncate"},_n={key:0,class:"my-tasks__chip my-tasks__chip--info shrink-0"},Nn={class:"block text-xs text-gray-500 truncate"},$n={key:4,class:"px-5 pb-4"},qn=6,Ga=50,Dn=3,Rn=Ne({__name:"MyTasksCard",setup(l){const{t:A,locale:u}=Xe(),R=es(),K=Dt(),D=Ya(),se=Ms(),J=h([]),w=h(0),X=h(!1),b=h(!1),Y=h(!1),G=h(Vs());let C=0;const T=c=>{if(!c)return null;const S=new Date(c);return Number.isNaN(S.getTime())?null:S},j=(c,S)=>{const L=T(c.delegationDueDate)??T(c.dueDate);return{key:c.questionId?String(c.questionId):`${c.analysisId}-${c.number||c.dateSet||""}`,questionId:c.questionId?String(c.questionId):null,analysisId:c.analysisId,number:c.number||null,lmraNumber:c.lmraNumber?String(c.lmraNumber):null,sourceName:c.sourceName||c.catalogName||null,workAreaName:c.workAreaName||null,employee:c.employee||"",dueDate:L,overdue:!S&&!!L&&L.getTime()<Date.now(),verificationOpen:S,dateSet:T(c.dateSet)??T(c.analysisCompletedAt)}},Z=(c,S)=>c.verificationOpen!==S.verificationOpen?c.verificationOpen?1:-1:c.overdue!==S.overdue?c.overdue?-1:1:c.dueDate&&S.dueDate?c.dueDate.getTime()-S.dueDate.getTime():c.dueDate||S.dueDate?c.dueDate?-1:1:(S.dateSet?.getTime()??0)-(c.dateSet?.getTime()??0),I=async(c=!1)=>{const S=D.currentUserId;if(!S||X.value&&!c)return;X.value=!0;const L=++C;try{const[x,de]=await Promise.all([K.fetchListRaw({status:"in_progress",page:1,pageSize:Ga,delegatedToUserId:S}),K.fetchListRaw({status:"verification_open",page:1,pageSize:Ga,delegatedToUserId:S})]);if(L!==C)return;const ye=[...(x.items||[]).map(Se=>j(Se,!1)),...(de.items||[]).map(Se=>j(Se,!0))].sort(Z);J.value=ye,w.value=(x.total||0)+(de.total||0),Y.value=!1,b.value=!0}catch{if(L!==C)return;Y.value=!0,b.value=!0}finally{L===C&&(X.value=!1)}},ne=i(()=>J.value.slice(0,qn)),me=i(()=>Math.max(0,w.value-ne.value.length)),ie=i(()=>J.value.filter(c=>c.overdue).length),be=c=>{const S=[];return c.number?S.push(c.number):c.lmraNumber&&S.push(c.lmraNumber),c.sourceName&&S.push(c.sourceName),S.length?S.join(" · "):A("App.Cockpit.actionRequired")},O=c=>{const S=[];return c.employee&&S.push(c.employee),c.workAreaName&&S.push(c.workAreaName),c.dateSet&&S.push(xe(c.dateSet,"P")),S.join(" · ")},le=c=>{if(!c.dueDate||c.overdue)return!1;const S=Je(new Date);return S.setDate(S.getDate()+Dn),c.dueDate.getTime()<=S.getTime()},z=c=>{if(u.value,!c.dueDate)return A("App.Cockpit.myTasksNoDueDate");const S=xe(c.dueDate,"P");return c.overdue?A("App.Cockpit.myTasksOverdueSince",{date:S}):St(c.dueDate)||Be(c.dueDate,new Date)?A("App.Cockpit.myTasksDueToday"):A("App.Cockpit.myTasksDueOn",{date:S})},ve=c=>c.overdue?"my-tasks__chip--alert":le(c)?"my-tasks__chip--warn":"",P=c=>c.verificationOpen?"my-tasks__status--info":c.overdue?"my-tasks__status--alert":le(c)?"my-tasks__status--warn":"",ee=c=>{const S={status:"all",delegatedToMe:"1",analysisId:c.analysisId};c.questionId&&(S.questionId=c.questionId),R.push({name:"actionRequired",query:S})},$e=()=>{R.push({name:"actionRequired",query:{status:"all",delegatedToMe:"1"}})},he=()=>{G.value=!G.value,Ks(G.value)};return _t(()=>{I()}),F(()=>se.revision,()=>{I(!0)}),F(()=>D.currentUserId,()=>{b.value=!1,I(!0)}),(c,S)=>(n(),v("section",nn,[s("header",ln,[s("button",{type:"button",class:"my-tasks__toggle","aria-expanded":!G.value,onClick:he},[s("span",un,[g(Yt,{"svg-path":y(Ls),"icon-classes":"w-5 h-5"},null,8,["svg-path"])]),s("span",cn,[s("span",dn,[s("span",pn,r(c.$t("App.Cockpit.myTasksTitle")),1),b.value?(n(),v("span",{key:0,class:E(["my-tasks__count",ie.value?"my-tasks__count--alert":""])},r(w.value),3)):k("",!0)]),s("span",vn,[b.value&&ie.value?(n(),v(ae,{key:0},[H(r(c.$t("App.Cockpit.myTasksOverdueCount",{count:ie.value},ie.value)),1)],64)):(n(),v(ae,{key:1},[H(r(c.$t("App.Cockpit.myTasksSubtitle")),1)],64))])])],8,rn),s("div",mn,[g(De,{variant:"text",icon:"",size:"small",class:"text-gray-500",title:c.$t("App.Cockpit.myTasksRefresh"),loading:X.value&&b.value,onClick:S[0]||(S[0]=L=>I(!0))},{default:U(()=>[g(V,{icon:y(Ja),size:"18"},null,8,["icon"])]),_:1},8,["title","loading"]),g(De,{variant:"text",size:"small",class:"text-gray-600 normal-case",onClick:$e},{default:U(()=>[H(r(c.$t("App.Cockpit.myTasksShowAll"))+" ",1),g(V,{icon:y(Us),size:"16",class:"ml-1"},null,8,["icon"])]),_:1}),g(De,{variant:"text",icon:"",size:"small",class:"text-gray-500",title:G.value?c.$t("Ap
1p.Cockpit.myTasksExpand"):c.$t("App.Cockpit.myTasksCollapse"),onClick:he},{default:U(()=>[g(V,{icon:G.value?y(Xa):y(Ws),size:"20"},null,8,["icon"])]),_:1},8,["title"])])]),g(Bs,null,{default:U(()=>[ia(s("div",null,[!b.value&&X.value?(n(),v("div",yn,[(n(),v(ae,null,Ce(3,L=>s("div",{key:L,class:"h-10 rounded-lg bg-gray-100 animate-pulse"})),64))])):Y.value&&!J.value.length?(n(),v("div",gn,[s("p",fn,r(c.$t("App.Cockpit.myTasksLoadError")),1),g(De,{variant:"tonal",size:"small",onClick:S[1]||(S[1]=L=>I(!0))},{default:U(()=>[H(r(c.$t("App.NotificationCenter.retry")),1)]),_:1})])):J.value.length?(n(),v("ul",An,[(n(!0),v(ae,null,Ce(ne.value,L=>(n(),v("li",{key:L.key},[s("button",{type:"button",class:"my-tasks__row",onClick:x=>ee(L)},[s("span",{class:E(["my-tasks__status",P(L)]),"aria-hidden":"true"},null,2),s("span",wn,[s("span",Cn,[s("span",Sn,r(be(L)),1),L.verificationOpen?(n(),v("span",_n,r(c.$t("App.Cockpit.myTasksVerificationOpen")),1)):k("",!0)]),s("span",Nn,r(O(L)),1)]),s("span",{class:E(["my-tasks__chip shrink-0",ve(L)])},[g(Yt,{"svg-path":L.overdue?y(Qs):y(Za),"icon-classes":"w-3.5 h-3.5"},null,8,["svg-path"]),H(" "+r(z(L)),1)],2),g(V,{icon:y(zs),size:"18",class:"text-gray-400 shrink-0"},null,8,["icon"])],8,xn)]))),128))])):(n(),v("div",hn,[s("span",kn,[g(Yt,{"svg-path":y(aa),"icon-classes":"w-5 h-5"},null,8,["svg-path"])]),s("p",bn,r(c.$t("App.Cockpit.myTasksEmpty")),1)])),me.value>0?(n(),v("div",$n,[s("button",{type:"button",class:"text-xs font-medium text-primary hover:underline",onClick:$e},r(c.$t("App.Cockpit.myTasksMore",{count:me.value},me.value)),1)])):k("",!0)],512),[[$s,!G.value]])]),_:1})]))}}),Tn=ts(Rn,[["__scopeId","data-v-bd6d15f9"]]),In={class:"flex items-center justify-between mb-2"},On={class:"min-w-0"},En={key:0,class:"text-xs text-gray-500"},Pn={class:"flex items-center gap-1.5 shrink-0 ml-3"},Mn=Ne({__name:"EvaluationAnalysisItem",props:{analysis:{type:Object,required:!0},questions:{type:Array},index:{type:Number,required:!0}},setup(l){const A=l,u=i(()=>!A.analysis?.workPermit||A.analysis.actionRequired),R=i(()=>A.questions?.some(C=>!C.response)??!1),K=i(()=>sa(A.questions)),D=i(()=>(A.questions||[]).reduce((C,T)=>{const j=T.data?.attachments;return Array.isArray(j)&&(C+=j.length),T.data?.onWrong?.attachments&&(C+=T.data.onWrong.attachments.length),T.data?.onWrong?.onWrong?.attachments&&(C+=T.data.onWrong.onWrong.attachments.length),C},0)),se=i(()=>u.value?"bg-red-50 border-2 border-red-200 hover:opacity-80":R.value?"bg-orange-50 border border-orange-200 hover:opacity-80":"bg-green-50 border border-green-200 hover:opacity-80"),J=i(()=>u.value?"text-[color:var(--primary,#c63420)]":"text-green-900"),w=i(()=>u.value?"text-red-700":"text-green-700"),X=i(()=>u.value?"font-semibold text-[color:var(--primary,#c63420)]":"text-green-700"),b=i(()=>{const C=A.questions?.[0]?.createdAt;return C?new Date(C).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"}):""}),Y=i(()=>{const C=A.analysis?.lmraNumber;return C!=null&&`${C}`!=""?C:A.questions?.map(j=>j?.lmraNumber).find(j=>j!=null&&`${j}`!="")??null}),G=i(()=>{const C=A.analysis,T=typeof C?.sourceName=="string"&&C.sourceName.trim().length>0&&C.sourceName.trim()!==(typeof C?.sourceCatalogName=="string"?C.sourceCatalogName.trim():"")?C.sourceName:"",j=[C?.workAreaName,C?.workItemName,C?.workArea?.name,C?.workItem?.name,T,C?.source].find(I=>typeof I=="string"&&I.trim().length>0);if(j)return j.trim();const Z=A.questions?.map(I=>{const ne=(typeof I?.workItem?.name=="string"&&I.workItem.name.trim().length>0?I.workItem.name:"")||(typeof I?.workArea?.name=="string"&&I.workArea.name.trim().length>0?I.workArea.name:"");if(ne)return ne;const me=I?.workItemName??I?.workAreaName;if(typeof me=="string"&&me.trim().length>0)return me;const ie=I?.sourceName,be=I?.sourceCatalogName;return typeof ie=="string"&&ie.trim().length>0&&ie.trim()!==(typeof be=="string"?be.trim():"")?ie:""}).find(I=>typeof I=="string"&&I.trim().length>0);return Z?Z.trim():""});return(C,T)=>(n(),v("li",{class:E(["rounded-lg p-3 cursor-pointer transition-colors",se.value])},[s("div",In,[s("div",On,[s("p",{class:E(["text-sm font-semibold",J.value])},[b.value?(n(),v(ae,{key:0},[H("LMRA "+r(b.value),1)],64)):(n(),v(ae,{key:1},[H("LMRA #"+r(l.index+1),1)],64)),G.value?(n(),v(ae,{key:2},[H(" ⢠"+r(G.value),1)],64)):k("",!0)],2),u.value&&Y.value?(n(),v("p",En," ⢠Nr. "+r(Y.value),1)):k("",!0)]),s("div",Pn,[g(V,{icon:y(as),size:"16",class:E(w.value)},null,8,["icon","class"]),s("span",{class:E(["text-xs",w.value])},r(K.value),3),g(V,{icon:y(la),size:"16",class:E(w.value)},null,8,["icon","class"]),s("span",{class:E(["text-xs",w.value])},r(D.value),3)])]),s("p",{class:E(["text-xs",X.value])}
1,[H(r(u.value?C.$t("App.Cockpit.workStop"):C.$t("App.Cockpit.completed"))+" ",1),l.analysis.actionRequired?(n(),v(ae,{key:0},[H(" ("+r(C.$t("App.Cockpit.actionRequired"))+") ",1)],64)):k("",!0),H(" ⢠"+r(C.$t("App.Cockpit.clickForQuestions")),1)],2)],2))}}),Vn={class:"space-y-4"},Ln={class:"text-xs text-gray-500"},Un={class:"flex items-center gap-2 py-2 px-3 bg-gray-50 rounded-lg"},Wn=s("span",{class:"text-gray-300"},">",-1),Qn=s("span",{class:"text-gray-300"},">",-1),zn={key:0,class:"py-8 flex justify-center"},Bn={class:"flex items-center mb-4"},Kn={class:"mb-4"},Gn={class:"mb-4 space-y-2"},jn={class:"flex items-center justify-between"},Fn={class:"text-sm text-gray-700"},Hn={class:"text-lg text-green-600"},Yn={class:"flex items-center justify-between"},Jn={class:"text-sm text-gray-700"},Xn={class:"text-lg text-red-600"},Zn={class:"space-y-2"},ei=["onClick"],ti={class:"flex items-start justify-between"},ai={class:"flex items-center gap-2 flex-1"},si={class:"text-sm text-gray-700 flex-1"},oi={class:"flex items-center gap-2 ml-2"},ni={key:0,class:"flex items-center gap-1 text-blue-600"},ii={class:"text-xs font-medium"},li={key:1,class:"flex items-center gap-1 text-purple-600"},ri={class:"text-xs font-medium"},ui={class:"pt-4 border-t border-gray-200"},ci={class:"flex items-center gap-2 mb-3"},di={class:"text-sm font-semibold text-gray-900"},pi={class:"flex gap-2 mb-3"},vi=["value","placeholder","disabled"],mi=["disabled"],yi={key:0,class:"space-y-2"},gi={class:"bg-orange-50 border border-orange-200 rounded-lg p-3"},fi={class:"text-xs text-gray-700 leading-relaxed"},hi={class:"flex items-center justify-between mt-1"},ki={key:0,class:"text-xs text-gray-400"},bi=["disabled"],Ai={key:1,class:"text-xs text-gray-500 italic"},xi={class:"flex items-center mb-4"},wi={class:"space-y-4"},Ci={class:"bg-gray-50 rounded-lg p-4"},Si={class:"text-xs text-gray-500 mb-2"},_i={class:"text-sm font-medium text-gray-900"},Ni={key:0,class:"space-y-4"},$i={key:0,class:"bg-gray-50 rounded-lg p-4"},qi={class:"text-xs text-gray-500 mb-2"},Di={class:"text-sm text-gray-700"},Ri={key:1,class:"bg-gray-50 rounded-lg p-4"},Ti={class:"text-xs text-gray-500 mb-2"},Ii={class:"text-sm font-medium text-gray-900 mb-3"},Oi={class:"text-xs text-gray-500 mb-2"},Ei={class:"text-sm text-gray-700"},Pi={class:"grid grid-cols-2 lg:grid-cols-3 gap-4"},Mi={class:"text-xs text-gray-500 mb-2"},Vi={class:"px-3 py-1 bg-gray-100 text-gray-800 text-sm font-semibold rounded"},Li={class:"text-xs text-gray-500 mb-2"},Ui={class:"text-xs text-gray-500 mb-2"},Wi={class:"text-xs text-gray-500 mb-2"},Qi={class:"text-xs text-gray-500 mb-2"},zi=["disabled"],Bi={key:2},Ki={class:"text-xs text-gray-500 mb-2"},Gi={class:"grid grid-cols-3 gap-2"},ji={class:"border-t border-gray-200 pt-4"},Fi={class:"flex items-center justify-between gap-2 mb-3"},Hi={class:"text-sm font-semibold text-gray-900"},Yi={class:"flex gap-2 mb-3"},Ji=["placeholder"],Xi=["disabled"],Zi={class:"space-y-2"},el={key:0,class:"px-3 py-1.5 flex items-center gap-2"},tl={class:"text-xs font-medium"},al={class:"text-xs opacity-70 ml-auto"},sl={key:1,class:"p-3"},ol={class:"text-xs text-gray-700 leading-relaxed whitespace-pre-line"},nl={key:0,class:"text-xs text-gray-400 mt-1"},il={key:1,class:"text-xs text-gray-500 italic"},ll={key:0,class:"mt-4 pt-3 border-t border-dashed border-gray-200"},rl={class:"text-sm font-semibold text-gray-900"},ul={class:"text-xs text-gray-500 mb-2"},cl={class:"space-y-2"},dl={class:"text-xs text-amber-900 leading-relaxed whitespace-pre-line"},pl={class:"text-xs text-amber-700 mt-1"},ja="day-note",vl=Ne({__name:"EvaluationAnalysisDetail",props:{analysis:{type:Object,required:!0},userId:{type:String,required:!0},index:{type:Number,required:!0},questions:{type:Array},canViewActionRequiredDetails:{type:Boolean,required:!1,default:!1},dayNoteMeta:{type:Object,required:!1,default:null},dayNoteDraft:{type:String,required:!1,default:""},dayNoteLoading:{type:Boolean,required:!1,default:!1},dayNoteSaving:{type:Boolean,required:!1,default:!1}},emits:["cancel","questions-count-changed","update-day-note-draft","save-day-note","delete-day-note"],setup(l,{emit:A}){const u=l,R=A,K=$t(),D=Dt(),se=ra(),{notifyError:J}=Nt(),{t:w,locale:X}=Xe(),{translating:b,showTranslated:Y,targetLanguage:G,displayText:C,toggle:T,reset:j}=oa(),{translating:Z,showTranslated:I,targetLanguage:ne,displayText:me,toggle:ie,reset:be}=oa(),{localText:O}=Uo(),le=h(null),z=h(!1),ve=h(""),P=h(!1),ee=qs({}),$e=h(!1),he=h(!1),c=h("remove"),S=h(null),L=i(()=>(Array.isArray(u.questions)?[...u.questions]:[]).sort((p,d)=>{const q=Number.isFinite(Number(p.order))?Number(p.order):0,$=Number.isFinite(Number(d.order))?Number(d.order):0;return q-$})),x=i(()=>le.value?L.value.find(t=>
1t.id===le.value)??null:null),de=i(()=>x.value?tt(x.value):[]),ye=i(()=>!u.analysis?.workPermit),Se=i(()=>L.value.filter(t=>!!t.response).length),Te=i(()=>L.value.filter(t=>!t.response).length),we=i(()=>{const t=u.questions?.[0]?.createdAt;return t?new Date(t).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"}):""}),_e=i(()=>{const t=u.analysis?.lmraNumber;return t!=null&&`${t}`!=""?t:u.questions?.map(d=>d?.lmraNumber).find(d=>d!=null&&`${d}`!="")??null}),Ue=i(()=>{const t=u.analysis,p=typeof t?.sourceName=="string"&&t.sourceName.trim().length>0&&t.sourceName.trim()!==(typeof t?.sourceCatalogName=="string"?t.sourceCatalogName.trim():"")?t.sourceName:"",d=[t?.workAreaName,t?.workItemName,t?.workArea?.name,t?.workItem?.name,p,t?.source].find($=>typeof $=="string"&&$.trim().length>0);if(d)return d.trim();const q=u.questions?.map($=>{const ge=(typeof $?.workItem?.name=="string"&&$.workItem.name.trim().length>0?$.workItem.name:"")||(typeof $?.workArea?.name=="string"&&$.workArea.name.trim().length>0?$.workArea.name:"");if(ge)return ge;const ke=$?.workItemName??$?.workAreaName;if(typeof ke=="string"&&ke.trim().length>0)return ke;const fe=$?.sourceName,Ve=$?.sourceCatalogName;return typeof fe=="string"&&fe.trim().length>0&&fe.trim()!==(typeof Ve=="string"?Ve.trim():"")?fe:""}).find($=>typeof $=="string"&&$.trim().length>0);return q?q.trim():""}),Ze=i(()=>{const p=[we.value?`LMRA ${we.value}`:`LMRA #${u.index+1}`];return _e.value&&p.push(`${w("App.Cockpit.numberShort")} ${_e.value}`),Ue.value&&p.push(Ue.value),p.join(" ⢠")}),Ke=i(()=>ye.value?u.analysis.actionRequired?`${w("App.Cockpit.workStop")} (${w("App.Cockpit.actionRequired")})`:w("App.Cockpit.workStop"):w("App.Cockpit.completed")),Ge=i(()=>ye.value?"bg-red-50 border-red-200":"bg-green-50 border-green-200"),et=i(()=>ye.value?"text-red-700":"text-green-700"),ut=i(()=>ye.value?"text-red-700":"text-green-700"),f=i(()=>{if(!x.value)return"";const t=We(x.value);return t.length<=15?t:`${t.slice(0,15)}...`}),N=i(()=>{const t=x.value?.id;return t?D.questionHistoryByAnalysis?.[u.analysis.id]?.[t]??[]:[]}),_=i(()=>{const t=x.value;if(!t)return[];const p=(t.notes||[]).map((q,$)=>({id:q.id||`${t.id}-note-${$}`,kind:"note",note:q,createdAt:q.createdAt??q.updatedAt??null}));return[...N.value.filter(q=>q.status==="set"||q.status==="removed").map((q,$)=>{const ge=q.status==="set"?"set":"remove";return{id:`${q.id||t.id}-log-${$}`,kind:"log",action:ge,text:w(ge==="set"?"App.Cockpit.actionRequiredSet":"App.Cockpit.actionRequiredRemoved"),actor:q.actor??null,createdAt:q.createdAt}}),...p].sort((q,$)=>Ae($.createdAt)-Ae(q.createdAt))}),pe=i(()=>{const t=x.value;return t?pt(t).sort((p,d)=>Ae(d.createdAt)-Ae(p.createdAt)):[]}),re=i(()=>[..._.value.flatMap(t=>t.kind==="note"?[{key:t.id,text:t.note.note??""}]:[]),...pe.value.map(t=>({key:t.id,text:t.text??""}))].filter(t=>t.text.trim().length)),Ie=i(()=>{const t=u.dayNoteMeta?.note??"";return t.trim().length?[{key:ja,text:t}]:[]});F(x,()=>j()),F(()=>u.dayNoteMeta?.note,()=>be()),F(()=>u.analysis.id,async()=>{le.value=null,ve.value="",z.value=!1}),F(le,async()=>{ve.value="",z.value=!1,await Me()}),F(L,()=>{le.value&&(L.value.some(t=>t.id===le.value)||(le.value=null))}),_t(async()=>{const[t,p]=await Promise.all([se.hasPermission("professional","can_set_action_required","staff").catch(()=>!1),se.hasPermission("professional","can_view_action_required","staff").catch(()=>!1)]);$e.value=t||p||u.canViewActionRequiredDetails,await Me()});function Ae(t){if(!t)return 0;const p=new Date(t).getTime();return Number.isNaN(p)?0:p}function We(t){return O(t.data?.request)||"â"}function tt(t){const p=t?.data||{},d=Array.isArray(p?.attachments)?p.attachments:[],q=Array.isArray(p?.onWrong?.attachments)?p.onWrong.attachments:[],$=Array.isArray(p?.onWrong?.onWrong?.attachments)?p.onWrong.onWrong.attachments:[];return[...d,...q,...$]}function at(t){return tt(t).length}function Qe(t){const p=(t.notes||[]).filter(q=>typeof q?.note=="string"&&q.note.trim().length>0).length,d=pt(t).length;return p+d}function Rt(t){return!!t.actionRequired&&pt(t).length>0}function Ee(t){le.value=t.id}function Pe(){le.value=null}function ct(t){return!!st(t)||!!ot(t)||!!dt(t)}function st(t){return O(t.data?.onWrong?.info)||""}function ot(t){return O(t.data?.onWrong?.request)||""}function dt(t){const p=t.data?.onWrong?.note;return typeof p=="string"&&p.trim().length?p.trim():O(t.data?.onWrong?.onWrong?.info)||""}function Tt(t){const p=t.data?.expected;return p===!0||p===!1?p:null}function kt(t){return t===!0?w("General.yes"):t===!1?w("General.no"):"â"}function nt(t){return t.response?"bg-blue-100 text-blue-800":"bg-gray-100 text-gray-800"}function bt(t){const p=[],d=t?.createdAt;if(d){const $=new Date(d);
1Number.isNaN($.getTime())||p.push($.toLocaleString(X.value||void 0))}const q=t?.createdByName||t?.createdBy||t?.actor;return q&&p.push(String(q)),p.join(" ⢠")}function pt(t){const p=t?.data||{},d=[],q=($,ge,ke)=>{const fe=typeof $=="string"?$.trim():"";fe.length&&d.push({id:`${t.id}-employee-${ke}`,kind:"employee_note",text:fe,source:ge,createdAt:t.createdAt??null})};return q(p?.note,"root","root"),q(p?.onWrong?.note,"onWrong","onwrong"),q(p?.onWrong?.onWrong?.note,"followUp","followup"),d}function vt(t){return t?.createdById&&t.createdById===u.userId?"bg-blue-50 border-blue-300 shadow-sm":"bg-gray-50 border-gray-300 shadow-sm"}function It(t){return t==="set"?"bg-red-50 border-red-300 text-red-800 shadow-sm":"bg-blue-50 border-blue-300 text-blue-800 shadow-sm"}function Oe(t){if(!t)return"";const p=new Date(t).getTime();return Number.isNaN(p)?"":new Date(p).toLocaleString(X.value||void 0)}function Ot(t){const p=[],d=Oe(t.createdAt??null);return d&&p.push(d),t.actor&&p.push(String(t.actor)),p.join(" ⢠")}function mt(t){const p=t.source==="root"?w("App.Cockpit.employeeNote"):t.source==="onWrong"?w("App.Cockpit.wrongAnswerNote"):w("App.Cockpit.followUpNote"),d=Oe(t.createdAt??null);return d?`${p} ⢠${d}`:p}function ze(t){return!!ee[t]}async function Me(){const t=x.value;if(t)try{await D.fetchHistoryForAnalysis(u.analysis.id,{questionId:t.id})}catch{}}function Et(t){$e.value&&(ze(t.id)||(S.value=t.id,c.value=t.actionRequired?"remove":"set",he.value=!0))}async function it(t){const p=S.value;if(!p)return;const d=L.value.find($=>$.id===p);if(!d||ze(p))return;const q=c.value==="remove";if(q===!!d.actionRequired){ee[p]=!0;try{const{currentNote:$,notes:ge}=await K.postCockpitAnalysisQuestionNote(u.analysis.id,p,t),ke=$??null,fe=Array.isArray(ge)&&ge.length?ge:ke?[ke]:[];if(d.currentNote=ke,d.notes=fe,d.adminNote=ke?.note??null,d.adminNoteDate=ke?.createdAt??null,u.questions){const Ve=u.analysis;Ve&&(Ve.countNotes=sa(u.questions))}q?(await K.deleteCockpitAnalysisQuestionActionRequired(u.analysis.id,p),d.actionRequired=!1):(await K.postCockpitAnalysisQuestionActionRequired(u.analysis.id,p),d.actionRequired=!0),he.value=!1,S.value=null,Pt(),await K.fetchActionRequiredHistory(),await Me()}catch($){J(w(Re($,"General.error")))}finally{ee[p]=!1}}}function Pt(){u.questions&&(u.analysis.actionRequired=u.questions.some(d=>d.actionRequired));const t=u.questions?.length??0,p=u.questions?.filter(d=>d.actionRequired).length??0;R("questions-count-changed",{analysisId:u.analysis.id,total:t,actionRequired:p})}async function yt(){const t=x.value,p=ve.value.trim();if(!(!t||!p||P.value)){P.value=!0;try{const{currentNote:d,notes:q}=await K.postCockpitAnalysisQuestionNote(u.analysis.id,t.id,p),$=d??null,ge=Array.isArray(q)&&q.length?q:$?[$]:[];if(t.currentNote=$,t.notes=ge,t.adminNote=$?.note??null,t.adminNoteDate=$?.createdAt??null,u.questions){const ke=u.analysis;ke&&(ke.countNotes=sa(u.questions))}ve.value=""}catch(d){J(w(Re(d,"General.error")))}finally{P.value=!1}}}return(t,p)=>(n(),v("div",Vn,[s("div",Ln,[s("div",Un,[g(V,{icon:y(Gs),size:"16",class:"text-gray-400"},null,8,["icon"]),s("span",null,[H(" LMRAs "),Wn,H(" "+r(Ze.value)+" ",1),x.value?(n(),v(ae,{key:0},[Qn,H(" "+r(f.value),1)],64)):k("",!0)])])]),l.questions?x.value?(n(),v(ae,{key:2},[s("div",xi,[s("button",{type:"button",class:"text-blue-600 hover:text-blue-700 flex items-center text-sm font-medium",onClick:Pe},[g(V,{icon:y(Ta),size:"16",class:"mr-1"},null,8,["icon"]),H(" "+r(t.$t("App.Cockpit.backToQuestions")),1)])]),s("div",wi,[s("div",Ci,[s("p",Si,r(t.$t("App.Cockpit.question")),1),s("p",_i,r(We(x.value)),1)]),ct(x.value)?(n(),v(ae,{key:0},[s("button",{type:"button",class:"w-full px-4 py-2 bg-gray-100 hover:bg-gray-200 text-gray-700 rounded-lg text-sm font-medium transition-colors flex items-center justify-center",onClick:p[6]||(p[6]=d=>z.value=!z.value)},[g(V,{icon:y(Xa),size:"16",class:E(["mr-2 transition-transform",{"rotate-180":z.value}])},null,8,["icon","class"]),s("span",null,r(z.value?t.$t("App.Cockpit.hideAnswers"):t.$t("App.Cockpit.showAnswers")),1)]),z.value?(n(),v("div",Ni,[st(x.value)?(n(),v("div",$i,[s("p",qi,r(t.$t("App.Cockpit.automaticAnswer")),1),s("p",Di,r(st(x.value)),1)])):k("",!0),ot(x.value)?(n(),v("div",Ri,[s("p",Ti,r(t.$t("App.Cockpit.followUpQuestion")),1),s("p",Ii,r(ot(x.value)),1),dt(x.value)?(n(),v(ae,{key:0},[s("p",Oi,r(t.$t("App.Cockpit.answer")),1),s("p",Ei,r(dt(x.value)),1)],64)):k("",!0)])):k("",!0)])):k("",!0)],64)):k("",!0),s("div",Pi,[s("div",null,[s("p",Mi,r(t.$t("App.Cockpit.expectedAnswer")),1),s("span",Vi,r(kt(Tt(
1x.value))),1)]),s("div",null,[s("p",Li,r(t.$t("App.Cockpit.answer")),1),s("span",{class:E(["px-3 py-1 text-sm font-semibold rounded",nt(x.value)])},r(kt(x.value.response)),3)]),s("div",null,[s("p",Ui,r(t.$t("App.Cockpit.evaluationResult")),1),s("span",{class:E(["px-2 py-1 text-xs font-semibold rounded",x.value.response?"bg-green-100 text-green-800":"bg-red-100 text-red-800"])},r(x.value.response?t.$t("App.Cockpit.correct"):t.$t("App.Cockpit.incorrect")),3)]),s("div",null,[s("p",Wi,r(t.$t("App.Cockpit.actionRequired")),1),s("span",{class:E(["px-3 py-1 text-sm font-semibold rounded",x.value.actionRequired?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"])},r(x.value.actionRequired?t.$t("General.yes"):t.$t("General.no")),3)]),s("div",null,[s("p",Qi,r(t.$t("App.Cockpit.workStop")||"Arbeitsstopp"),1),s("span",{class:E(["px-3 py-1 text-sm font-semibold rounded",x.value.workPermit?"bg-green-100 text-green-800":"bg-red-100 text-red-800"])},r(x.value.workPermit?t.$t("General.no"):t.$t("General.yes")),3)])]),$e.value?(n(),v("button",{key:1,type:"button",class:"w-full px-4 py-2 bg-gray-100 hover:bg-gray-200 text-gray-900 rounded-lg text-sm font-medium transition-colors flex items-center justify-center focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2",disabled:ze(x.value.id),onClick:p[7]||(p[7]=d=>Et(x.value))},[g(V,{icon:x.value.actionRequired?y(ns):y(Ia),size:"16",class:"mr-2"},null,8,["icon"]),H(" "+r(x.value.actionRequired?t.$t("App.Cockpit.removeActionRequired"):t.$t("App.Cockpit.setActionRequired")),1)],8,zi)):k("",!0),de.value.length?(n(),v("div",Bi,[s("p",Ki,r(t.$t("App.Cockpit.imageAttachments")),1),s("div",Gi,[(n(!0),v(ae,null,Ce(de.value,d=>(n(),W(Lo,{key:d.id,attachment:d,class:"h-20 w-20 rounded"},null,8,["attachment"]))),128))])])):k("",!0),s("div",ji,[s("div",Fi,[s("p",Hi,r(t.$t("App.Cockpit.supervisorNotes")),1),re.value.length?(n(),W(na,{key:0,translating:y(b),"show-translated":y(Y),"target-language":y(G),onToggle:p[8]||(p[8]=d=>y(T)(re.value))},null,8,["translating","show-translated","target-language"])):k("",!0)]),s("div",Yi,[ia(s("input",{"onUpdate:modelValue":p[9]||(p[9]=d=>ve.value=d),type:"text",placeholder:t.$t("App.Cockpit.notePlaceholder"),class:"flex-1 px-3 py-2 border border-gray-300 ring-1 ring-gray-300 rounded-lg text-xs text-gray-700 bg-white appearance-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",onKeyup:ta(yt,["enter"])},null,40,Ji),[[Ha,ve.value]]),s("button",{type:"button",class:"px-4 py-2 bg-gray-100 hover:bg-gray-200 text-gray-900 rounded-lg text-xs font-medium transition-colors disabled:opacity-50",disabled:P.value||!ve.value.trim().length,onClick:yt},r(t.$t("App.Cockpit.add")),9,Xi)]),s("div",Zi,[_.value.length?(n(!0),v(ae,{key:0},Ce(_.value,d=>(n(),v("div",{key:d.id,class:E(["border rounded-lg",d.kind==="log"?It(d.action):vt(d.note)])},[d.kind==="log"?(n(),v("div",el,[g(V,{icon:d.action==="set"?y(Ia):y(aa),size:"14"},null,8,["icon"]),s("span",tl,r(d.text),1),s("span",al,r(Ot(d)),1)])):(n(),v("div",sl,[s("p",ol,r(y(C)(d.id,d.note.note)),1),bt(d.note)?(n(),v("p",nl,r(bt(d.note)),1)):k("",!0)]))],2))),128)):(n(),v("p",il,r(t.$t("App.Cockpit.noNotes")),1))]),pe.value.length?(n(),v("div",ll,[s("p",rl,r(t.$t("App.Cockpit.employeeNotes")),1),s("p",ul,r(t.$t("App.Cockpit.employeeNotesHint")),1),s("div",cl,[(n(!0),v(ae,null,Ce(pe.value,d=>(n(),v("div",{key:d.id,class:"border rounded-lg bg-amber-50 border-amber-300 shadow-sm p-3"},[s("p",dl,r(y(C)(d.id,d.text)),1),s("p",pl,r(mt(d)),1)]))),128))])])):k("",!0)])])],64)):(n(),v(ae,{key:1},[s("div",Bn,[s("button",{type:"button",class:"text-blue-600 hover:text-blue-700 flex items-center text-sm font-medium",onClick:p[
10]||(p[0]=d=>t.$emit("cancel"))},[g(V,{icon:y(Ta),size:"16",class:"mr-1"},null,8,["icon"]),H(" "+r(t.$t("App.Cockpit.backToLmras")),1)])]),s("div",Kn,[s("div",{class:E(["border rounded-lg p-3",Ge.value])},[s("p",{class:E(["text-sm font-semibold",et.value])},r(Ze.value),3),s("p",{class:E(["text-xs mt-1",ut.value])},r(Ke.value),3)],2)]),s("div",Gn,[s("div",jn,[s("span",Fn,r(t.$t("App.Cockpit.correctAnswered")),1),s("span",Hn,r(Se.value),1)]),s("div",Yn,[s("span",Jn,r(t.$t("App.Cockpit.incorrectAnswered")),1),s("span",Xn,r(Te.value),1)])]),s("div",Zn,[(n(!0),v(ae,null,Ce(L.value,d=>(n(),v("button",{key:d.id,type:"button",class:E(["w-full p-3 rounded-lg cursor-pointer transition-colors text-left",Rt(d)?"bg-yellow-50 border-2 border-yellow-400 hover:bg-yellow-100":"bg-gray-50 hover:bg-gray-100"]),onClick:q=>Ee(d)},[s("div",ti,[s("div",ai,[g(V,{icon:d.response?y(aa):y(js),class:E(d.response?"text-green-600":"text-red-600"),size:"20"},null,8,["icon","class"]),s("p",si,r(We(d)),1)]),s("div",oi,[Qe(d)>0?(n(),v("div",ni,[g(V,{icon:y(as),size:"16"},null,8,["icon"]),s("span",ii,r(Qe(d)),1)])):k("",!0),at(d)>0?(n(),v("div",li,[g(V,{icon:y(la),size:"16"},null,8,["icon"]),s("span",ri,r(at(d)),1)])):k("",!0)])])],10,ei))),128))]),s("div",ui,[s("div",ci,[g(V,{icon:y(os),size:"18",class:"text-orange-500"},null,8,["icon"]),s("span",di,r(t.$t("App.Cockpit.dayNote")),1),Ie.value.length?(n(),W(na,{key:0,class:"ml-auto",translating:y(Z),"show-translated":y(I),"target-language":y(ne),onToggle:p[1]||(p[1]=d=>y(ie)(Ie.value))},null,8,["translating","show-translated","target-language"])):k("",!0)]),s("div",pi,[s("input",{value:l.dayNoteDraft,type:"text",placeholder:t.$t("App.Cockpit.dayNoteLabel"),class:"flex-1 px-3 py-2 border border-gray-300 ring-1 ring-gray-300 rounded-lg text-xs text-gray-700 bg-white appearance-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",disabled:l.dayNoteLoading||l.dayNoteSaving,onInput:p[2]||(p[2]=d=>R("update-day-note-draft",d.target.value)),onKeyup:p[3]||(p[3]=ta(d=>R("save-day-note"),["enter"]))},null,40,vi),s("button",{type:"button",class:"px-4 py-2 bg-gray-100 hover:bg-gray-200 text-gray-900 rounded-lg text-xs font-medium transition-colors disabled:opacity-50",disabled:l.dayNoteLoading||l.dayNoteSaving||!l.dayNoteDraft.trim().length,onClick:p[4]||(p[4]=d=>R("save-day-note"))},r(l.dayNoteMeta?t.$t("General.save"):t.$t("App.Cockpit.add")),9,mi)]),l.dayNoteMeta?.note?(n(),v("div",yi,[s("div",gi,[s("p",fi,r(y(me)(ja,l.dayNoteMeta.note)),1),s("div",hi,[l.dayNoteMeta.updatedAt?(n(),v("p",ki,r(new Date(l.dayNoteMeta.updatedAt).toLocaleString("de-DE")),1)):k("",!0),s("button",{type:"button",class:"text-xs text-red-500 hover:text-red-700",disabled:l.dayNoteSaving,onClick:p[5]||(p[5]=d=>R("delete-day-note"))},r(t.$t("General.remove")),9,bi)])])])):l.dayNoteLoading?k("",!0):(n(),v("p",Ai,r(t.$t("App.Cockpit.dayNoteEmpty")),1))])],64)):(n(),v("div",zn,[g(V,{icon:y(ss),class:"animate-spin text-gray-400"},null,8,["icon"])])),g(Ro,{modelValue:he.value,"onUpdate:modelValue":p[10]||(p[10]=d=>he.value=d),mode:c.value,loading:S.value?ze(S.value):!1,onConfirm:it},null,8,["modelValue","mode","loading"])]))}}),ml={class:"bg-white flex flex-col overflow-hidden h-full"},yl={class:"px-6 py-5 flex items-start justify-between gap-3 shrink-0"},gl={class:"flex-1 min-w-0"},fl={class:"text-sm text-gray-500 mb-1"},hl={key:0,class:"text-2xl font-bold text-gray-900 min-w-0",id:"employeeName"},kl={key:1,class:"text-sm text-gray-400 italic"},bl={class:"flex-1 overflow-y-auto px-6 pb-6"},Al={class:"space-y-4"},xl={key:0,class:"flex items-center justify-between pt-1"},wl={class:"text-sm text-gray-700"},Cl={class:"flex items-center gap-2"},Sl={class:"text-lg text-gray-900"},_l=["title"],Nl={class:"space-y-3"},$l={key:2,class:"border-t border-gray-200"},ql={key:0,class:"flex items-center py-4 border-b border-gray-200"},Dl=["checked","disabled"],Rl={class:"text-sm text-gray-700"},Tl={class:"flex items-center gap-2 mb-3"},Il={class:"text-sm font-semibold text-gray-900"},Ol={class:"flex gap-2 mb-3"},El=["placeholder","disabled"],Pl=["disabled"],Ml={key:0,class:"space-y-2"},Vl={class:"bg-orange-50 border border-orange-200 rounded-lg p-3"},Ll={class:"text-xs text-gray-700 leading-relaxed"},Ul={class:"flex items-center justify-between mt-1"},Wl={key:0,class:"text-xs text-gray-400"},Ql=["disabled"],zl={key:1,class:"text-xs text-gray-500 italic"},Fa="day-note",Bl=Ne({__name:"EmployeeEvaluationCard",props:{evaluation:Object,autoSelectFirstAnalysis:Boolean,initialAnalysisId:String},emits:["questions-count-changed","close"],setup(l,{emit:A}){const u=l,R=A,K=ua();i(()=>K.privacy);const D=$t(),se=Dt(),J=ra(),{notifyError:w}=Nt(),{t:X}=Xe(),b=h(null),Y=h(null),G=h(""),C=h(!1),T=h(!1),j=i(()=>!!K.bonus?.enabled),Z=i(()=>
1is(K.bonus?.symbol)),{translating:I,showTranslated:ne,targetLanguage:me,displayText:ie,toggle:be,reset:O}=oa(),le=i(()=>{const f=Y.value?.note??"";return f.trim().length?[{key:Fa,text:f}]:[]});F(()=>Y.value?.note,()=>O());const z=i(()=>{if(u.evaluation?.row?.activities)return u.evaluation.row.activities.find(f=>Be(f.date,u.evaluation.date))}),ve=i(()=>!!z.value?.bonus),P=i(()=>u.evaluation?.row?.activities?u.evaluation.row.activities.find(f=>Be(f.date,u.evaluation.date))?.analyses??[]:[]),ee=h(new Map),$e=i(()=>(P.value||[]).filter(f=>f?.actionRequired).length),he=h(!1),c=h(!1),S=i(()=>{const f=P.value||[];return he.value?f.filter(N=>N?.actionRequired):f}),L=i(()=>!!u.evaluation&&!b.value),x=i(()=>u.evaluation?.row?.id??null),de=i(()=>u.evaluation?xe(u.evaluation.date,"yyyy-MM-dd"):null),ye=h(null),Se=h(!1),Te=()=>{ye.value&&(ye.value.checked=ve.value)};async function we(f){if(!j.value)return;if(!x.value||!de.value){Te();return}const N=z.value,_=!!N?.bonus;N&&(N.bonus=f),Se.value=!0;try{await D.upsertUserDayBonus(x.value,de.value,f)}catch(pe){N&&(N.bonus=_),Te(),w(X(Re(pe,"General.error")))}finally{Se.value=!1}}F(ve,Te);const _e=async f=>{const[N]=await Promise.all([D.fetchCockpitAnalysisQuestions(f),D.fetchCockpitAnalysis(f).catch(()=>null)]);ee.value.set(f,N);const _=D.getAnalysisById(f);_&&(_.actionRequired=N.some(re=>re.actionRequired));const pe=N.map(re=>re?.lmraNumber).find(re=>re!=null&&`${re}`!="");if(_&&pe&&!_.lmraNumber)_.lmraNumber=pe;else if(_&&_.actionRequired&&!_.lmraNumber)try{const re=await se.fetchDetails(f);re?.number&&(_.lmraNumber=re.number)}catch(re){console.debug("Unable to fetch analysis details for LMRA number",re)}},Ue=async()=>{if(P.value?.length)try{await Promise.all(P.value.map(f=>_e(f.id)))}catch(f){console.error(f),w(X(Re(f,"App.Cockpit.analysisQuestionsError")))}};_t(async()=>{try{c.value=await J.hasPermission("professional","can_view_action_required","staff")}catch{c.value=!1}await Ue()}),F(P,async()=>{await Ue()}),F(()=>u.evaluation,()=>{b.value=null,u.autoSelectFirstAnalysis&&P.value?.length&&(b.value=P.value[0])}),F([()=>u.initialAnalysisId,P],async([f,N])=>{if(!f||!N?.length)return;const _=N.find(pe=>pe.id===f);_?(await _e(_.id),et(_)):(console.warn(`Analyse mit ID ${f} nicht gefunden in dayActivities`),console.log("Verfügbare:",P.value.map(pe=>pe.id)))},{immediate:!0});const Ze=async()=>{C.value=!0,T.value=!1;try{if(!x.value||!de.value){Y.value=null,G.value="";return}const f=D.getUserDayNote(x.value,de.value),N=f!==void 0?f:await D.fetchUserDayNote(x.value,de.value);Y.value=N??null,G.value=N?.note??""}catch(f){w(X(Re(f,"General.error")))}finally{C.value=!1}},Ke=async()=>{if(T.value||!x.value||!de.value)return;const f=(G.value??"").trim();if(!f.length){w(X("App.Cockpit.dayNoteRequired"));return}T.value=!0;try{const N=await D.upsertUserDayNote(x.value,de.value,f);Y.value=N,G.value=N.note}catch(N){w(X(Re(N,"General.error")))}finally{T.value=!1}},Ge=async()=>{if(!T.value&&!(!x.value||!de.value||!Y.value)){T.value=!0;try{await D.deleteUserDayNote(x.value,de.value),Y.value=null,G.value=""}catch(f){w(X(Re(f,"General.error")))}finally{T.value=!1}}};F([()=>u.evaluation?.row?.id,()=>u.evaluation?.date],async()=>{await Ze()},{immediate:!0});const et=f=>{b.value=f};function ut(f){R("questions-count-changed",f)}return(f,N)=>(n(),v("div",ml,[s("div",yl,[s("div",gl,[s("p",fl,[H(r(f.$t("App.Cockpit.evaluation"))+" ",1),l.evaluation?(n(),v(ae,{key:0},[H(r(y(xe)(l.evaluation.date,"EEEE, dd.MM.yyyy")),1)],64)):k("",!0)]),l.evaluation?(n(),v("h2",hl,[g(rs,{"user-id":u.evaluation?.row?.id,name:u.evaluation?.row?.employeeName,"icon-size":20},null,8,["user-id","name"])])):(n(),v("p",kl,r(f.$t("App.Cockpit.chooseEntry")),1))]),s("button",{class:"text-gray-400 hover:text-gray-600 shrink-0",onClick:N[0]||(N[0]=_=>f.$emit("close"))},[g(V,{icon:y(ns),size:"20"},null,8,["icon"])])]),s("div",bl,[s("div",Al,[l.evaluation&&!b.value?(n(),v(ae,{key:0},[c.value?(n(),v("div",xl,[s("span",wl,r(f.$t("App.Cockpit.actionRequiredLmras")),1),s("div",Cl,[s("span",Sl,r($e.value),1),s("button",{class:"cursor-pointer hover:bg-gray-100 p-1 rounded transition-colors",title:he.value?f.$t("General.all"):f.$t("App.Cockpit.actionRequired"),onClick:N[1]||(N[1]=_=>he.value=!he.value)},[g(V,{icon:he.value?y(Fs):y(Hs),size:"20",class:E(he.value?"text-blue-600":"text-gray-400")},null,8,["icon","class"])],8,_l)])])):k("",!0),s("ul",Nl,[(n(!0),v(ae,null,Ce(S.value,(_,pe)=>(n(),W(Mn,{analysis:_,questions:ee.value.get(_.id),index:pe,onClick:re=>et(_)},null,8,["analysis","questions","index","onClick"]))),256))])],64)):b.value?(n(),W(vl,{key:1,analysis:b.value,"user-id":l.evaluation.row.id,questions:ee.value.get(b.value.id),"can-view-action-required-detail
1s":c.value,"day-note-meta":Y.value,"day-note-draft":G.value,"day-note-loading":C.value,"day-note-saving":T.value,onCancel:N[2]||(N[2]=_=>b.value=null),index:P.value.findIndex(_=>_.id===b.value.id),onQuestionsCountChanged:ut,onUpdateDayNoteDraft:N[3]||(N[3]=_=>G.value=_),onSaveDayNote:Ke,onDeleteDayNote:Ge},null,8,["analysis","user-id","questions","can-view-action-required-details","day-note-meta","day-note-draft","day-note-loading","day-note-saving","index"])):k("",!0),L.value?(n(),v("div",$l,[j.value?(n(),v("div",ql,[s("input",{ref_key:"bonusInput",ref:ye,type:"checkbox",checked:ve.value,disabled:Se.value,onChange:N[4]||(N[4]=_=>we(_.target.checked)),class:"w-4 h-4 rounded border-gray-300 mr-3 accent-green-600 disabled:opacity-50"},null,40,Dl),g(V,{icon:Z.value,size:"18",color:"amber",class:"mr-1"},null,8,["icon"]),s("span",Rl,r(f.$t("App.misc.bonusLabelShort")),1)])):k("",!0),s("div",{class:E(j.value?"pt-4":"pt-6")},[s("div",Tl,[g(V,{icon:y(os),size:"20",class:"text-orange-500"},null,8,["icon"]),s("span",Il,r(f.$t("App.Cockpit.dayNote")),1),le.value.length?(n(),W(na,{key:0,class:"ml-auto",translating:y(I),"show-translated":y(ne),"target-language":y(me),onToggle:N[5]||(N[5]=_=>y(be)(le.value))},null,8,["translating","show-translated","target-language"])):k("",!0)]),s("div",Ol,[ia(s("input",{"onUpdate:modelValue":N[6]||(N[6]=_=>G.value=_),type:"text",placeholder:f.$t("App.Cockpit.dayNoteLabel"),class:"flex-1 px-3 py-2 border border-gray-300 ring-1 ring-gray-300 rounded-lg text-xs text-gray-700 bg-white appearance-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",disabled:C.value||T.value,onKeyup:ta(Ke,["enter"])},null,40,El),[[Ha,G.value]]),s("button",{type:"button",class:"px-4 py-2 bg-gray-100 hover:bg-gray-200 text-gray-900 rounded-lg text-xs font-medium transition-colors disabled:opacity-50",disabled:C.value||T.value||!G.value.trim().length,onClick:Ke},r(Y.value?f.$t("General.save"):f.$t("App.Cockpit.add")),9,Pl)]),Y.value?.note?(n(),v("div",Ml,[s("div",Vl,[s("p",Ll,r(y(ie)(Fa,Y.value.note)),1),s("div",Ul,[Y.value.updatedAt?(n(),v("p",Wl,r(y(xe)(Y.value.updatedAt,"dd.MM.yyyy HH:mm")),1)):k("",!0),s("button",{type:"button",class:"text-xs text-red-500 hover:text-red-700",disabled:T.value,onClick:Ge},r(f.$t("General.remove")),9,Ql)])])])):C.value?k("",!0):(n(),v("p",zl,r(f.$t("App.Cockpit.dayNoteEmpty")),1))],2)])):k("",!0)])])]))}}),Kl=Ne({__name:"EvaluationTableColumnHeaderStatus",props:{status:{type:String,required:!0},loading:{type:Boolean,default:!1}},setup(l){const A=l,u=i(()=>{switch(A.status){case"all":return"text-success";case"some":case"none":return"text-light-text"}}),R=i(()=>{switch(A.status){case"all":return Xs;case"some":return Js;case"none":return Ys}});return(K,D)=>(n(),v("div",{class:E(["h-5 w-5 rounded flex items-center justify-center",u.value])},[l.loading?(n(),W(ls,{key:0,indeterminate:"",size:18,width:2,color:"secondary"})):(n(),W(V,{key:1,icon:R.value,size:"24"},null,8,["icon"]))],2))}}),Gl={class:"text-center leading-tight"},jl={class:"text-xs font-normal text-gray-500"},Fl={key:0,class:"text-xs text-gray-400 mt-0.5"},Hl=Ne({__name:"EvaluationTableColumnHeader",props:{weekday:{type:Date,required:!0},status:{type:String,required:!0},loading:{type:Boolean,default:!1}},emits:["changeStatus"],setup(l,{emit:A}){const u=l,R=A,K=()=>{u.loading||R("changeStatus")},{locale:D}=Xe({useScope:"global"}),se=i(()=>D.value.startsWith("de")?Wo:D.value.startsWith("fr")?Qo:D.value.startsWith("en")?Qa:D.value.startsWith("pt")?zo:D.value==="nl-BE"?Bo:D.value.startsWith("nl")?Ko:Qa),J=i(()=>xe(u.weekday,"EEEE",{locale:se.value}));return(w,X)=>(n(),v("div",{class:E(["flex items-center justify-center gap-2 py-2 px-3 rounded-lg",{"bg-orange-50":y(St)(l.weekday)}])},[g(Kl,{status:l.status,loading:l.loading,class:"cursor-pointer shrink-0",onClick:K},null,8,["status","loading"]),s("div",Gl,[s("div",{class:E(["text-xs font-semibold",y(St)(l.weekday)?"text-orange-500":"text-gray-700"])},r(y(xe)(l.weekday,"dd.MM.yyyy")),3),s("div",jl,r(J.value),1),y(St)(l.weekday)?(n(),v("div",Fl," ("+r(w.$t("General.today"))+") ",1)):k("",!0)])],2))}});var M=(l=>(l.NOT_PLANNED="not-planned",l.PLANNED="planned",l.OVERDUE="overdue",l.MISSED="missed",l.DONE="done",l.DONE_WITH_ACTION_REQUIRED="done-action-required",l.DONE_ACTION_REMOVED="done-action-removed",l.WITH_MISTAKES="mistakes",l.MISTAKES_ACTION_REQUIRED="mistakes-action-required",l.MISTAKES_ACTION_REMOVED="mistakes-action-removed",l.WORK_STOP="work-stop",l.WORK_STOP_ACTION_REQUIRED="work-stop-action-required",l.WORK_STOP_ACTION_REMOVED="work-stop-action-removed",l))(M||{});const us={"not-planned":{icon:Xt,colorClass:"bg-gray-200",hoverClass:"hover:bg-gray-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.notPlannedTooltip"},planned:{icon:Xt,colorClass:"bg-gray-400",hoverClass:"hover:bg-gray-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.plannedTooltip"},overdue:{icon:Xt,colorClass:"bg-red-400",hoverClass:"hover:bg-red-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.overdueTooltip"},missed:{icon:so,colorClass:"bg-purple-600",hoverClass:"hover:bg-purple-700",textColor:"text-white",tooltip:"App.riskAnalysisStatus.missedTooltip"},done:{icon:ao,colorClass:"bg-green-400",hoverClass:"hover:bg-green-500",textColor:"text-white",tooltip:"App.riskAnalysisStatus.doneTooltip"},"done-action-required":{icon:to,colorClass:"bg-green-500",hoverClass:"hover:bg-green-600",textColor:"text-yellow-300",tooltip:"App.riskAnalysisStatus.doneWithActionRequiredTooltip"},"done-action-removed":{icon:Jt,colorClass:"bg-green-400",hoverClass:"hover:bg-green-500",textColor:"text-white",tooltip:"App.riskAnalysisStatus.doneActionRemovedTooltip"},mistakes:{icon:eo,colorClass:"bg-amber-400",hoverClass:"hover:bg-amber-500",textColor:"text-white",tooltip:"App.riskAnalysisStatus.withMistakesTooltip"},"mistakes-action-required":{icon:Oa,colorClass:"bg-amber-500",hoverClass:"hover:bg-amber-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.mistakesActionRequiredTooltip"},"mistakes-action-removed":{icon:Jt,colorClass:"bg-amber-400",hoverClass:"hover:bg-amber-500",textColor:"text-white",tooltip:"App.riskAnalysisStatus.mistakesActionRemovedTooltip"},"work-stop":{icon:Zs,colorClass:"bg-red-500",hoverClass:"hover:bg-red-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.workStopTooltip"},"work-stop-action-required":{icon:Oa,colorClass:"bg-red-600",hoverClass:"hover:bg-red-700",textColor:"text-yellow-300",tooltip:"App.riskAnalysisStatus.workStopActionRequiredTooltip"},"work-stop-action-removed":{icon:Jt,colorClass:"bg-red-500",hoverClass:"hover:bg-red-600",textColor:"text-white",tooltip:"App.riskAnalysisStatus.workStopActionRemovedTooltip"}},Yl={key:0,class:"absolute -top-3 left-1/2 -translate-x-1/2 text-[11px] leading-none font-semibold text-error"},Jl=Ne({__name:"AnalysisStatus",props:{status:{type:String,required:!0},count:{type:Number,default:0}},setup(l){const A=l,u=i(()=>us[A.status]);return(R,K)=>(n(),v("button",{class:E(["relative w-6 h-6 rounded-md flex items-center justify-center shadow-lg cursor-pointer",[u.value?.colorClass,u.value?.hoverClass]])},[l.count>0?(n(),v("span",Yl,r(l.count),1)):k("",!0),u.value?.icon?(n(),W(V,{key:1,icon:u.value.icon,size:"16",class:E(u.value.textColor)},null,8,["icon","class"])):k("",!0),g(qt,{activator:"parent",location:"top start","open-delay":"200"},{default:U(()=>
1[H(r(R.$t(u.value?.tooltip)),1)]),_:1})],2))}}),Xl=Ne({__name:"EvaluationStatus",props:{status:{type:String,required:!1,default:void 0}},setup(l){const A=l,u=i(()=>us[A.status]);return(R,K)=>(n(),v("div",{class:E(["w-6 h-6 rounded-md flex items-center justify-center cursor-pointer",[u.value?.colorClass,u.value?.hoverClass]])},[u.value?.icon?(n(),W(V,{key:0,icon:u.value.icon,size:"16",class:E(u.value.textColor)},null,8,["icon","class"])):k("",!0),g(qt,{activator:"parent",location:"top start","open-delay":"200"},{default:U(()=>[H(r(R.$t(u.value?.tooltip)),1)]),_:1})],2))}}),Zl={key:0,class:"absolute right-0 top-0 p-0.5 flex flex-col items-end gap-0.5"},er={key:2,class:"inline-flex"},tr={key:1,class:"flex items-end gap-1"},ar={key:2,class:"flex"},sr=Ne({__name:"EvaluationTableCell",props:{rowData:{type:Object,required:!0},date:{type:Date,required:!0},analysisStatuses:{type:Array,required:!0},analysisCounts:{type:Object,required:!1,default:()=>({})},selected:{type:Boolean,default:!1}},emits:["select","analysis-select"],setup(l,{emit:A}){const u=l,R=A,K=O=>{R("analysis-select",{row:u.rowData,date:u.date,analysisId:O})},D=$t(),se=ua(),{notifyError:J}=Nt(),{t:w}=Xe(),X=i(()=>is(se.bonus?.symbol)),b=i(()=>D.getUserDayNote(u.rowData.id,u.date)),Y=i(()=>!!b.value&&!!b.value.note),G=i(()=>u.rowData.activities?.find(O=>Be(new Date(O.date),u.date))),C=i(()=>!!G.value?.analyses?.some(O=>O?.noteAvailable)),T=i(()=>Y.value||C.value),j=i(()=>!!G.value?.analyses?.some(O=>O?.attachmentAvailable)),Z=i(()=>!!G.value?.bonus),I=new Map([[M.NOT_PLANNED,0],[M.PLANNED,1],[M.OVERDUE,2],[M.MISSED,2],[M.DONE,3],[M.DONE_WITH_ACTION_REQUIRED,4],[M.DONE_ACTION_REMOVED,3],[M.WITH_MISTAKES,4],[M.MISTAKES_ACTION_REQUIRED,5],[M.MISTAKES_ACTION_REMOVED,4],[M.WORK_STOP,6],[M.WORK_STOP_ACTION_REQUIRED,7],[M.WORK_STOP_ACTION_REMOVED,6]]),ne=i(()=>u.analysisStatuses?.length?[...u.analysisStatuses].sort((le,z)=>(I.get(z.status)??0)-(I.get(le.status)??0))[0]:void 0),me=i(()=>u.analysisStatuses.some(O=>O.analysisId)),ie=h(!1),be=async()=>{if(!ie.value&&!(ne.value&&![M.NOT_PLANNED,M.PLANNED,M.OVERDUE,M.MISSED].includes(ne.value.status))){ie.value=!0;try{const O=u.date?.toISOString();ne.value?.status===M.PLANNED||ne.value?.status===M.OVERDUE||ne.value?.status===M.MISSED?await D.deleteCockpitUserAnalysisRequired(u.rowData.id,O):await D.postCockpitUserAnalysisRequired(u.rowData.id,O)}catch(O){J(w(Re(O,"TODO")))}ie.value=!1}};return(O,le)=>(n(),v("div",{class:E(["relative flex items-center gap-1 cursor-pointer h-full w-full px-1 pr-5 border",{"border-secondary":l.selected,"border-transparent":!l.selected}]),onClick:le[0]||(le[0]=z=>O.$emit("select",{rowData:l.rowData,date:l.date}))},[T.value||j.value||Z.value?(n(),v("div",Zl,[T.value?(n(),W(V,{key:0,icon:y(oo),size:"16",color:"secondary"},null,8,["icon"])):k("",!0),j.value?(n(),W(V,{key:1,icon:y(la),size:"16",color:"secondary"},null,8,["icon"])):k("",!0),Z.value?(n(),v("div",er,[g(V,{icon:X.value,size:"16",color:"amber"},null,8,["icon"]),g(qt,{activator:"parent",location:"top start","open-delay":"200"},{default:U(()=>[H(r(y(w)("App.Cockpit.bonusReceived")),1)]),_:1})])):k("",!0)])):k("",!0),me.value?(n(),v("div",tr,[(n(!0),v(ae,null,Ce(l.analysisStatuses,z=>(n(),W(Jl,{key:z.analysisId,status:z.status,count:l.analysisCounts?.[z.analysisId]||0,onClick:Da(()=>K(z.analysisId),["stop"])},null,8,["status","count","onClick"]))),128))])):(n(),v("div",ar,[!ie.value&&ne.value?(n(),W(Xl,{key:0,status:ne.value.status,day:l.date,onClick:Da(be,["stop"])},null,8,["status","day"])):(n(),W(V,{key:1,icon:y(ss),class:"animate-spin"},null,8,["icon"]))]))],2))}}),or={class:"w-12 h-12 flex items-center justify-center cursor-pointer bg-orange-400 rounded-lg shadow-sm transition-all hover:bg-orange-500"},nr=Ne({__name:"DatePicker",props:{modelValue:{type:Date,required:!0},mode:{type:String,default:"day"},pastLimitDate:{type:Date}},emits:["update:modelValue"],setup(l,{emit:A}){const u=l,R=A,K=Ds(u,"modelValue");F(K,w=>J.value=w);const{locale:D,t:se}=Xe(),J=i({get(){return u.modelValue},set(w){Array.isArray(w)?R("update:modelValue",w[0]):typeof w=="object"&&w?.year&&w?.month?R("update:modelValue",new Date(w.year,w.month)):typeof w=="number"?R("update:modelValue",new Date(w,0)):R("update:modelValue",w
1)}});return(w,X)=>(n(),W(y(Rs),{modelValue:J.value,"onUpdate:modelValue":X[0]||(X[0]=b=>J.value=b),locale:y(D),format:"dd.MM.yyyy",clearable:!1,"auto-apply":!0,"enable-time-picker":!1,position:"left",teleport:"body",class:"font-medium","input-class-name":"focus:ring-secondary-500","week-picker":l.mode==="Week","month-picker":l.mode==="Month","year-picker":l.mode==="Year","week-numbers":l.mode==="Week"?"local":void 0,"week-num-name":l.mode==="Week"?y(se)("App.Cockpit.weekAbbrev"):void 0},{trigger:U(()=>[s("div",or,[g(V,{icon:y(no),color:"white"},null,8,["icon"])])]),_:1},8,["modelValue","locale","week-picker","month-picker","year-picker","week-numbers","week-num-name"]))}}),ir={class:"cockpit-main flex-1 min-w-0 overflow-y-auto overflow-x-auto"},lr={class:"cockpit-top-section"},rr={key:0,class:"kpi-grid gap-6 mt-6 mb-6","data-tour":"cockpit-kpis"},ur={key:1,class:"kpi-grid gap-6 mt-6 mb-6"},cr={key:3,class:"bg-white rounded-xl px-4 py-3 mb-4 border border-gray-100 shadow-sm flex flex-wrap items-center gap-3"},dr={class:"text-sm font-semibold text-gray-700 whitespace-nowrap"},pr={class:"ml-auto"},vr={class:"px-4 py-3 text-sm font-semibold text-gray-900"},mr={class:"px-4 py-3 flex justify-end"},yr={class:"bg-white rounded-xl px-4 py-3 mb-6 border border-gray-200 shadow-sm flex flex-wrap items-center justify-between gap-4","data-tour":"cockpit-filter"},gr={class:"flex items-center gap-4"},fr={class:"flex flex-col min-w-max"},hr={class:"text-sm font-semibold text-gray-900"},kr={key:0,class:"text-xs text-gray-500"},br={class:"flex items-center gap-2"},Ar={class:"flex items-center gap-4"},xr={class:"px-4 py-3 text-sm font-semibold text-gray-900"},wr={class:"px-4 py-3"},Cr={key:0,class:"text-xs text-gray-400 mt-1"},Sr={key:0,"data-tour":"cockpit-board"},_r={key:0,class:"flex justify-center py-3"},Nr={key:1,class:"text-center py-2 text-xs text-gray-400"},$r={key:1},qr={key:0,class:"cockpit-detail shrink-0 bg-white border-l border-gray-200 overflow-y-auto"};var cs=(l=>(l[l.RISK_ANALYSIS=0]="RISK_ANALYSIS",l[l.RISK_ANALYSIS_WITH_ACTIVITY=1]="RISK_ANALYSIS_WITH_ACTIVITY",l[l.WORK_PERMITS=2]="WORK_PERMITS",l[l.WORK_STOPS=3]="WORK_STOPS",l[l.WORK_STOPS_OPEN=4]="WORK_STOPS_OPEN",l[l.WORK_STOPS_DONE=5]="WORK_STOPS_DONE",l[l.ACTION_REQUIREDS=6]="ACTION_REQUIREDS",l[l.MISSING_ANALYSIS=7]="MISSING_ANALYSIS",l[l.PLANNED_OPEN=8]="PLANNED_OPEN",l))(cs||{});const Dr=Ne({__name:"Cockpit",setup(l){const A=$t(),u=Dt(),R=Do(),K=Ya(),D=ua(),se=ra(),J=es(),{notifyError:w,notifySuccess:X}=Nt(),{t:b,locale:Y}=Xe();i(()=>A.cockpitKpi),i(()=>D.privacy);const G=i(()=>{const e=D.userPreferences?.appearance?.showQuickActions;return typeof e=="boolean"?e:!0}),C=i(()=>D.employeeSortBy),T=h(!0),j=h(!1),Z=h(!1),I=h(!1),ne=h(!1),me=h(!1),ie=h(!1),be=i(()=>{const e=new Set(D.hiddenCockpitKpiCards);return io.filter(o=>!e.has(o)&&(I.value||!lo.has(o)))}),O=e=>be.value.includes(e),le=i(()=>be.value.length),z=e=>{const o=b(Co[e]),a=So[e];return a?`${o} ${b(a)}`:o},ve=(e,o)=>`(${o>0?Math.round(e/o*100):0}%)`,P=h(Je(new Date)),ee=h("Week");function $e(e){ee.value=e}function he(){P.value=Je(new Date),ee.value="Day"}const c=h(ro()),S=["cockpit.quickAction.newCampaign","cockpit.quickAction.createCatalog","cockpit.quickAction.lmra","cockpit.quickAction.addEmployee","cockpit.quickAction.editGroups","cockpit.quickAction.actionRequiredOpen","cockpit.quickAction.actionRequiredInProgress","cockpit.quickAction.analysis","cockpit.quickAction.settings","cockpit.quickAction.sendAnnouncement"],L=new Set(S),x=["cockpit.quickAction.newCampaign","cockpit.quickAction.createCatalog","cockpit.quickAction.addEmployee","cockpit.quickAction.sendAnnouncement"];function de(e){if(!Array.isArray(e))return[...x];const o=e.filter(a=>typeof a=="string"&&L.has(a));return o.length?[...new Set(o)]:[...x]}const ye=h([...x]),Se=h(!1),Te=h(!1),we=h([...x]),_e=h(!1),Ue=i(()=>[{id:"cockpit.quickAction.newCampaign",label:b("App.Cockpit.quickActionNewCampaign"),icon:uo,run:()=>N({name:"campaign"},"/campaign")},{id:"cockpit.quickAction.createCatalog",label:b("App.Cockpit.quickActionCreateCatalog"),icon:co,run:()=>N({name:"catalog"},"/catalog")},{id:"cockpit.quickAction.lmra",label:b("App.Cockpit.quickActionLmra"),icon:po,run:()=>N({name:"lmra"},"/lmra")},{id:"cockpit.quickAction.addEmployee",label:b("App.Cockpit.quickActionAddEmployee"),icon:vo,run:()=>N({name:"users"},"/users")},{id:"cockpit.quickAction.editGroups",label:b("App.Cockpit.quickActionEditGroups"),icon:Ea,run:()=>N({name:"users",query:{tab:"groups"}},"/users?tab=groups")},{id:"cockpit.quickAction.actionRequiredOpen",label:b("App.Cockpit.quickActionActionRequiredOpen"),icon:ft,run:()=>it("active")},{id:"cockpit.quickAction.actionRequiredInProgress",label:b("App.Cockpit.quickActionActionRequiredInProgress"),icon:mo,run:()=>it("in_progress")},{id:"cockpit.quickAction.analysis",label:b("App.Cockpit.quickActionAnalysis"),icon:yo,run:()=>N({name:"analysis"},"/analysis")},{id:"cockpit.quickAction.settings",label:b("App.Cockpit.quickActionSettings"),icon:Zt,run:()=>N({name:"settings"},"/settings")},{id:"cockpit.quickAction.sendAnnouncement",label:b("App.Cockpit.quickActionSendAnnouncement"),icon:go,run:()=>{ie.value=!0}}].filter(o=>!((o.id==="cockpit.quickAction.actionRequiredOpen"||o.id==="cockpit.quickAction.actionRequiredInProgress")&&!I.value||o.id==="cockpit.quickAction.sendAnnouncement"&&!me.value))),Ze=i(()=>{const e=new Set(ye.value);return Ue.value.filter(o=>e.has(o.id))});async function Ke(){Se.value=!0;try{const e=await D.fetchUserPreferences();ye.value=de(e?.quickActions),we.value=[...ye.value]}catch{ye.value=[...x],we.value=[...x]}finally{Se.value=!1}}const Ge=i(()=>{const e=de(ye.value),o=de(we.value);return e.length!==o.length?!0:e.some(a=>!o.includes(a))});
1async function et(){if(!(_e.value||!Ge.value)){_e.value=!0;try{const e=de(we.value);await D.saveQuickActions(e),ye.value=[...e],X(b("App.Cockpit.quickActionsSaved")),Te.value=!1}catch(e){w(b(Re(e,"General.error")))}finally{_e.value=!1}}}function ut(e,o){const a=new Set(we.value);o?a.add(e):a.delete(e),we.value=Array.from(a)}function f(){we.value=[...ye.value]}async function N(e,o){try{await J.push(e)}catch(a){if(Pa(a,Ma.duplicated))return;try{await J.push(o)}catch(m){Pa(m,Ma.duplicated)||w(b(Re(m,"General.error")))}}}const _=h([]),pe=h(""),re=h(25);let Ie=null;const Ae=i({get:()=>A.cockpitEvaluations??[],set:e=>{A.cockpitEvaluations=e}}),We=h(!1),tt=i(()=>Ae.value.length<(A.cockpitEvaluationTotal||0)),at=h(null);let Qe=null;F(at,e=>{Qe?.disconnect(),Qe=null,e&&(Qe=new IntersectionObserver(o=>{o[0]?.isIntersecting&&Sa()},{rootMargin:"200px",threshold:0}),Qe.observe(e))});const Rt=h(!0),Ee=i(()=>ee.value==="Day"?Je(P.value):ee.value==="Month"?To(P.value):za(P.value)),Pe=i(()=>ee.value==="Day"?ht(P.value):ee.value==="Month"?Io(P.value):Ba(P.value)),ct=i(()=>{const e=Oo({start:Ee.value,end:Pe.value});return ee.value==="Week"?e.slice(0,Rt.value?7:5):e}),st=i(()=>ee.value==="Day"?xe(P.value,"dd.MM.yyyy"):ee.value==="Month"?xe(P.value,"MMMM yyyy"):`${b("App.Cockpit.weekAbbrev")} ${Eo(P.value)}, ${P.value.getFullYear()}`),ot=i(()=>ee.value==="Week"?`${xe(za(P.value),"dd.MM.")} - ${xe(Ba(P.value),"dd.MM.")}`:""),dt=i(()=>`${b("App.Cockpit.missingRiskAnalyses")} (${st.value})`),Tt=e=>{const o=Array.isArray(e)?e:[],a=new Map;return o.forEach(m=>{if(!m?.date)return;const Q=new Date(m.date);if(Number.isNaN(Q.getTime()))return;const B=xe(Q,"yyyy-MM-dd"),te=Array.isArray(m.analyses)?m.analyses:[],ue=a.get(B);if(!ue){a.set(B,{...m,analysisRequired:!!m.analysisRequired,analyses:[...te],bonus:!!m.bonus});return}if(ue.analysisRequired=!!ue.analysisRequired||!!m.analysisRequired,ue.bonus=!!ue.bonus||!!m.bonus,!te.length)return;const ce=new Set(ue.analyses.map(oe=>oe.id));te.forEach(oe=>{(!oe?.id||!ce.has(oe.id))&&(ue.analyses.push(oe),oe?.id&&ce.add(oe.id))})}),[...a.values()].sort((m,Q)=>new Date(m.date).getTime()-new Date(Q.date).getTime())},kt=i(()=>[{title:b("General.employee"),align:"start",key:"employeeName",fixed:!0,width:"180px",minWidth:"180px"},...ct.value.map(e=>({title:e.toISOString(),align:"start",key:e.toISOString()}))]),nt=i(()=>(Ae.value??[]).slice().sort((e,o)=>fo(e.user,o.user,C.value,Y.value)).map(e=>({id:e.user.id,employeeName:ho(e.user,C.value)||e.user.displayName||"",activities:Tt(e.data)}))),bt=i(()=>{const e=K.currentUserId;if(e)return R.getUserById(e)}),pt=i(()=>R.groups?.filter(e=>e.supervisors.some(o=>o.id===bt.value?.id))??[]),vt=i(()=>{const e=pt.value.flatMap(o=>o.users.map(a=>a.id));return[...new Set(e)]}),It=i(()=>K.hasRole(ko.ADMIN)),Oe=i(()=>Z.value&&(It.value||ne.value)),Ot=i(()=>(R.groups??[]).map(e=>({title:e.name,value:e.id})).sort((e,o)=>e.title.localeCompare(o.title))),mt=i(()=>{if(!Oe.value||!_.value.length||!R.groups?.length)return[];const e=new Set;return _.value.forEach(o=>{const a=R.groups?.find(m=>m.id===o);a?.users?.length&&a.users.forEach(m=>{m.id&&e.add(m.id)})}),Array.from(e).sort()}),ze=bo(),Me=h(typeof ze=="number"&&ze in cs?ze:0),Et=i(()=>[{title:b("App.Cockpit.riskAnalyses"),value:0},{title:b("App.Cockpit.riskAnalysesWithActivity")||"Risiko-Analysen (mit Aktivität)",value:1},{title:b("App.Cockpit.workPermits"),value:2},{title:b("App.Cockpit.workStops"),value:3},{title:b("App.Cockpit.workStopsOpen"),value:4},{title:b("App.Cockpit.workStopsDone"),value:5},{title:b("App.Cockpit.plannedNotDone"),value:8},{title:b("App.Cockpit.missingRiskAnalyses"),value:7}]);function it(e){J.push({name:"actionRequired",query:{status:e}})}function Pt(){J.push({name:"actionRequired",query:{status:"all",delegatedToMe:"1"}})}const yt=e=>{const o=new Date(e.date);return Mo(o,{start:Ee.value,end:Pe.value})},t=e=>Po(Je(new Date(e)),Je(new Date)),p=e=>yt(e)&&e.analysisRequired&&e.analyses.length===0,d=e=>p(e)&&t(e.date),q=i(()=>{const e=nt.value,o=a=>e.filter(m=>m.activities.some(Q=>Q.analyses.some(a)));switch(Me.value){case 1:return e.filter(a=>a.activities.some(m=>m.analyses.length>0||m.analysisRequired));case 2:return o(a=>a.workPermit);case 3:return o(a=>!a.workPermit);case 4:return o(a=>!a.workPermit&&a.actionRequired);case 5:return o(a=>!a.workPermit&&!a.actionRequired);case 6:return o(a=>a.actionRequired);case 8:return e.filter(a=>a.activities.some(m=>p(m)));case 7:return e.filter(a=>a.activities.some(m=>d(m)));default:return e}}),$=i(()=>q.value.length),ge=h(null),ke=i(()=>{const e={workPermits:0,workStops:0,workStopsOpen:0,workStopsDone:0,plannedDays:0,plannedOpenDays:0,missedDays:0};return nt.value.forEach(o=>
1o.activities.forEach(a=>{a.analyses.forEach(m=>{if(m.workPermit){e.workPermits++;return}e.workStops++,m.actionRequired?e.workStopsOpen++:e.workStopsDone++}),!(!yt(a)||!a.analysisRequired)&&(e.plannedDays++,p(a)&&e.plannedOpenDays++,d(a)&&e.missedDays++)})),e}),fe=i(()=>ge.value??ke.value),Ve=i(()=>fe.value.workPermits),ds=i(()=>fe.value.workStops),ca=i(()=>fe.value.workStopsOpen),da=i(()=>fe.value.workStopsDone),At=i(()=>Ve.value+ds.value),lt=h({}),ps=i(()=>{const e={};return Object.entries(lt.value).forEach(([o,a])=>e[o]=a?.actionRequired||0),e}),vs=i(()=>{const e=new Set;return nt.value.forEach(o=>o.activities.forEach(a=>a.analyses.forEach(m=>{m.actionRequired&&e.add(m.id)}))),e}),Mt=i(()=>{let e=0,o=0;vs.value.forEach(m=>{const Q=lt.value[m]?.actionRequired??0,B=Q>0?Q:1,te=A.getLastHistoryEntryByAnalysisId(m);(te&&te.status==="set"?(te.actor||"").toString().toLowerCase():null)==="system"?e+=B:o+=B});const a=e+o;return{system:e,user:o,total:a}}),ms=i(()=>Mt.value.system),ys=i(()=>Mt.value.user),pa=i(()=>Mt.value.total);i(()=>{const e=pa.value;return e?Math.round(ms.value/e*100):0}),i(()=>{const e=pa.value;return e?Math.round(ys.value/e*100):0});const va=i(()=>fe.value.missedDays),ma=i(()=>fe.value.plannedDays),Vt=i(()=>fe.value.plannedOpenDays),gs=i(()=>At.value+Vt.value),fs=e=>{const o=Je(new Date(e));return t(o)?M.MISSED:Be(o,new Date)?M.OVERDUE:M.PLANNED},hs=e=>e?e.analyses?.length?e.analyses.map(o=>{const a=A.getLastHistoryEntryByAnalysisId(o.id),m=a?.latestSetAt?new Date(a.latestSetAt).getTime():null,Q=a?.latestRemovedAt?new Date(a.latestRemovedAt).getTime():null,B=o.actionRequired&&m!==null,te=!o.actionRequired&&Q!==null&&(m===null||Q>=m),ue=o.wrongResponse,ce=!o.workPermit;let oe;return!ue&&!ce?oe=B?M.DONE_WITH_ACTION_REQUIRED:te?M.DONE_ACTION_REMOVED:M.DONE:ue&&!ce?oe=B?M.MISTAKES_ACTION_REQUIRED:te?M.MISTAKES_ACTION_REMOVED:M.WITH_MISTAKES:oe=B?M.WORK_STOP_ACTION_REQUIRED:te?M.WORK_STOP_ACTION_REMOVED:M.WORK_STOP,{status:oe,analysisId:o.id}}):e.analysisRequired?[{status:fs(e.date),analysisId:""}]:[{status:M.NOT_PLANNED,analysisId:""}]:[],ks=(e,o)=>e.find(a=>Be(new Date(a.date),o)),bs=e=>{const o=e.data||[];switch(Me.value){case 1:return o.some(a=>a.analyses.length>0||a.analysisRequired);case 2:return o.some(a=>a.analyses.some(m=>m.workPermit));case 3:return o.some(a=>a.analyses.some(m=>!m.workPermit));case 4:return o.some(a=>a.analyses.some(m=>!m.workPermit&&m.actionRequired));case 5:return o.some(a=>a.analyses.some(m=>!m.workPermit&&!m.actionRequired));case 6:return o.some(a=>a.analyses.some(m=>m.actionRequired));case 8:return o.some(a=>p(a));case 7:return o.some(a=>d(a));default:return!0}},ya=i(()=>{const e=Z.value&&c.value,o=Oe.value&&_.value.length>0;if(e&&o){const a=new Set(vt.value);return mt.value.filter(m=>a.has(m))}if(e)return[...vt.value];if(o)return[...mt.value]}),ga=i(()=>({...Oe.value&&_.value.length?{groupId:[..._.value].sort()}:{},...Z.value&&c.value?{onlyMySupervisions:!0}:{}})),fa=i(()=>JSON.stringify({from:Ee.value.toISOString(),to:ht(Pe.value).toISOString(),scope:ga.value,professional:I.value})),xt=async(e,o)=>{const a=ya.value;return a&&!a.length?{items:[],total:0,page:e,pageSize:o}:A.fetchCockpitEvaluation(Ee.value.toISOString(),ht(Pe.value).toISOString(),{page:e,pageSize:o,search:pe.value,userIds:a,sortBy:C.value,updateState:!1})},ha=(e,o)=>{const a=e.items??[];if(o){const m=new Set(Ae.value.map(Q=>Q.user.id));Ae.value=[...Ae.value,...a.filter(Q=>!m.has(Q.user.id))]}else Ae.value=[...a];A.cockpitEvaluationTotal=e.total,A.cockpitEvaluationPage=e.page,A.cockpitEvaluationPageSize=e.pageSize};let Lt=0,je=null;const ka=async()=>{const e=++Lt,o=ya.value;try{const a=o&&!o.length?{workPermits:0,workStops:0,workStopsOpen:0,workStopsDone:0,plannedDays:0,plannedOpenDays:0,missedDays:0}:await A.fetchCockpitEvaluationKpis(Ee.value.toISOString(),ht(Pe.value).toISOString(),{search:pe.value,userIds:o});e===Lt&&(ge.value=a)}catch{e===Lt&&(ge.value=null)}},Ut=h(0),Wt=h(0),Qt=h(0),zt=h(0),Bt=h(0);
1let ba=null,Kt=0,Fe=null;const Aa=()=>{Ut.value=0,Wt.value=0,Qt.value=0,zt.value=0,Bt.value=0},xa=async(e,o,a)=>(await u.fetchList({status:e,page:1,pageSize:1,from:o,to:a,...ga.value}))?.total||0,wa=async(e=!1)=>{if(!I.value){Aa();return}const o=fa.value;if(!e&&o===ba)return;ba=o;const a=++Kt;try{const m=Ee.value.toISOString(),Q=ht(Pe.value).toISOString(),B=K.currentUserId,[[te,ue],[ce,oe],rt]=await Promise.all([Promise.all([xa("active",m,Q),xa("in_progress",m,Q)]),Promise.all([u.fetchList({status:"active",page:1,pageSize:1}),u.fetchList({status:"in_progress",page:1,pageSize:1})]),Promise.all(B?[u.fetchList({status:"active",page:1,pageSize:1,delegatedToUserId:B}),u.fetchList({status:"in_progress",page:1,pageSize:1,delegatedToUserId:B}),u.fetchList({status:"verification_open",page:1,pageSize:1,delegatedToUserId:B})]:[])]);if(a!==Kt)return;Ut.value=te,Wt.value=ue,Qt.value=ce?.total||0,zt.value=oe?.total||0,Bt.value=rt.reduce((gt,Ht)=>gt+(Ht?.total||0),0)}catch{if(a!==Kt)return;Aa()}};let He=0;const Ca=async()=>{await Ps();const e=at.value;!e||!tt.value||e.getBoundingClientRect().top<=window.innerHeight+200&&await Sa()},Ye=async()=>{const e=++He;j.value=!0;try{const[o]=await Promise.all([xt(1,re.value),ka()]);if(e!==He)return;ha(o,!1),await qa(),await $a()}finally{e===He&&(j.value=!1)}e===He&&await Ca()},Sa=async()=>{if(!tt.value||We.value||j.value||T.value)return;const e=He;We.value=!0;const o=(A.cockpitEvaluationPage||1)+1;try{const a=await xt(o,A.cockpitEvaluationPageSize||re.value);if(e!==He)return;ha(a,!0),await qa(),await $a()}finally{We.value=!1}e===He&&await Ca()},wt=async()=>{T.value=!0;try{await Promise.all([Ye(),wa(!0)])}finally{T.value=!1}};F([P,ee],async()=>{Ae.value=[],await wt()}),F(Te,e=>{if(e){f();return}_e.value||f()}),F(Me,e=>{qo(e)}),F(fa,()=>{T.value||(Fe&&clearTimeout(Fe),Fe=setTimeout(()=>{Fe=null,wa().catch(()=>{})},300))}),F(c,async()=>{if(!Z.value){c.value=!1,ea(!1);return}ea(c.value),await Ye()}),F(_,async()=>{if(!Oe.value){_.value.length&&(_.value=[]);return}await Ye()}),F(()=>vt.value.join(","),async()=>{Z.value&&c.value&&await Ye()}),F(()=>mt.value.join(","),async()=>{!Oe.value||!_.value.length||await Ye()}),F(C,async()=>{await Ye()}),F(()=>A.cockpitEvaluationRevision,()=>{je&&clearTimeout(je),je=setTimeout(()=>{je=null,ka().catch(()=>{})},400)}),F(pe,()=>{Ie&&(clearTimeout(Ie),Ie=null),Ie=setTimeout(async()=>{await Ye()},350)});const _a=h(),As=async()=>await Promise.all([R.groups?.map(e=>R.fetchGroupSupervisors(e)),R.groups?.map(e=>R.fetchGroupUsers(e))]);_t(async()=>{await D.fetchPrivacySettings()}),Ts(async()=>{try{const o=await se.getLicenseKey();Z.value=o==="enterprise",I.value=await se.hasPermission("professional","can_view_action_required","staff")}catch{Z.value=!1,I.value=!1}try{me.value=await se.hasPermission("basic","can_send_announcements","operational supervisor")}catch{me.value=!1}if(Z.value)try{const[o,a,m,Q]=await Promise.all([se.hasPermission("enterprise","can_view_groups","admin"),se.hasPermission("enterprise","can_edit_groups","admin"),se.hasPermission("enterprise","can_create_groups","admin"),se.hasPermission("enterprise","can_delete_groups","admin")]);ne.value=o||a||m||Q}catch{ne.value=!1}else ne.value=!1;Z.value||(c.value=!1,ea(!1)),!Oe.value&&_.value.length&&(_.value=[]),await Ke();const e=[wt(),A.fetchActionRequiredHistory(),R.fetchUsers(),D.fetchPrivacySettings(),D.fetchBonusSettings()];Z.value&&e.push(R.fetchGroups()),await Promise.all(e).then(()=>Z.value?As():void 0),_a.value=setInterval(()=>{wt().catch(()=>{})},3e5)}),Is(()=>{clearInterval(_a.value),Ie&&(clearTimeout(Ie),Ie=null),Fe&&(clearTimeout(Fe),Fe=null),je&&(clearTimeout(je),je=null),Qe?.disconnect()});const qe=h(void 0),Gt=()=>{qe.value=void 0,Ct.value=null},xs=e=>{Na(e)?Gt():qe.value=e,Ct.value=null},Na=e=>qe.value?qe.value.row.id+qe.value.date.toISOString()===e.row.id+e.date.toISOString():!1,Ct=h(null);F(q,e=>{!qe.value||e.some(a=>a.id===qe.value?.row.id)||Gt()});const ws=e=>{if(!e?.row?.id||!e?.row?.activities){console.warn("Ungültige row-Daten:",e);return}qe.value={row:e.row,date:e.date},Ct.value=e.analysisId},Cs=e=>{const a=q.value.map(B=>B.activities.find(te=>
1Be(new Date(te.date),e))).filter(B=>!!B).filter(B=>B.analyses.length===0);if(a.length===0)return"none";const m=a.every(B=>B.analysisRequired),Q=a.every(B=>!B.analysisRequired);return m?"all":Q?"none":"some"},jt=h(!1),Ft=h(null),Ss=async e=>{const a=new Set;let m=!0;const Q=ce=>{ce.forEach(oe=>{if(!bs(oe))return;const rt=oe.user?.id;if(!rt)return;const gt=oe.data.find(Ht=>Be(new Date(Ht.date),e));!gt||gt.analyses?.length||(a.add(rt),gt.analysisRequired!==!0&&(m=!1))})},B=await xt(1,200);Q(B.items||[]);const te=B.pageSize||200,ue=te>0?Math.ceil((B.total||0)/te):1;for(let ce=2;ce<=ue;ce++){const oe=await xt(ce,te);Q(oe.items||[])}return{userIds:[...a],allHaveAnalysisRequired:a.size>0&&m}},_s=async e=>{if(!jt.value){jt.value=!0,Ft.value=e.toISOString();try{const{userIds:o,allHaveAnalysisRequired:a}=await Ss(e);if(!o.length)return;a?await A.deleteCockpitUsersAnalysisRequiredBulk(o,e.toISOString()):await A.postCockpitUsersAnalysisRequiredBulk(o,e.toISOString())}catch(o){w(b(Re(o,"TODO")))}finally{jt.value=!1,Ft.value=null}}};function Ns(e){lt.value[e.analysisId]={total:e.total,actionRequired:e.actionRequired}}async function $a(){const e=[],o=new Set;nt.value.forEach(te=>te.activities.forEach(ue=>ue.analyses.forEach(ce=>{if(o.has(ce.id))return;(!lt.value[ce.id]||ce.actionRequired)&&(e.push(ce.id),o.add(ce.id))})));const a=4;let m=0;const Q=async()=>{if(m>=e.length)return;const te=e[m++];try{const ue=await A.fetchCockpitAnalysisQuestions(te),ce=ue.length,oe=ue.filter(rt=>rt.actionRequired).length;lt.value[te]={total:ce,actionRequired:oe}}catch{lt.value[te]={total:0,actionRequired:0}}await Q()},B=Array.from({length:Math.min(a,e.length)},()=>Q());await Promise.all(B)}async function qa(){if(!Ae.value?.length)return;const e=xe(Ee.value,"yyyy-MM-dd"),o=xe(Pe.value,"yyyy-MM-dd"),a=Ae.value.map(m=>m.user?.id).filter(m=>!!m);await A.fetchDayNotesBulk(a,e,o).catch(()=>({}))}return(e,o)=>(n(),v("div",{class:E(["cockpit-shell flex",{"panel-open":!!qe.value}])},[s("div",ir,[s("div",lr,[!T.value&&be.value.length?(n(),v("div",rr,[O("riskAnalysesTotal")?(n(),W(Le,{key:0,title:e.$t("App.Cockpit.riskAnalyses"),value:gs.value.toString(),tooltip:z("riskAnalysesTotal"),"icon-bg-color-class":"bg-info",icon:y(Ao),selected:!1,clickable:!1},null,8,["title","value","tooltip","icon"])):k("",!0),O("plannedNotDone")?(n(),W(Le,{key:1,title:e.$t("App.Cockpit.plannedNotDone"),value:Vt.value.toString(),"value-postfix":ve(Vt.value,ma.value),tooltip:z("plannedNotDone"),"icon-bg-color-class":"bg-warning",icon:y(Za),selected:!1,clickable:!1},null,8,["title","value","value-postfix","tooltip","icon"])):k("",!0),O("workPermits")?(n(),W(Le,{key:2,title:e.$t("App.Cockpit.workPermits"),value:Ve.value.toString(),"value-postfix":ve(Ve.value,At.value),tooltip:z("workPermits"),"icon-bg-color-class":"bg-success",icon:y(Va),selected:!1,clickable:!1},null,8,["title","value","value-postfix","tooltip","icon"])):k("",!0),O("missingRiskAnalyses")?(n(),W(Le,{key:3,title:dt.value,value:va.value.toString(),"value-postfix":ve(va.value,ma.value),tooltip:z("missingRiskAnalyses"),"icon-bg-color-class":"bg-light-text",icon:y(ft),selected:!1,clickable:!1},null,8,["title","value","value-postfix","tooltip","icon"])):k("",!0),O("actionRequiredInProgress")?(n(),W(Le,{key:4,title:e.$t("App.Cockpit.actionRequiredUsers"),value:Wt.value.toString(),"icon-bg-color-class":"bg-warning",icon:y(ft),tooltip:z("actionRequiredInProgress"),"secondary-label":e.$t("App.Cockpit.totalInSystem"),"secondary-value":zt.value.toString(),selected:!1,clickable:!0,onSelected:o[0]||(o[0]=a=>it("in_progress"))},null,8,["title","value","icon","tooltip","secondary-label","secondary-value"])):k("",!0),O("actionRequiredOpen")?(n(),W(Le,{key:5,title:e.$t("App.Cockpit.actionRequiredSystem"),value:Ut.value.toString(),"icon-bg-color-class":"bg-error",icon:y(ft),tooltip:z("actionRequiredOpen"),"secondary-label":e.$t("App.Cockpit.totalInSystem"),"secondary-value":Qt.value.toString(),selected:!1,clickable:!0,onSelected:o[1]||(o[1]=a=>it("active"))},null,8,["title","value","icon","tooltip","secondary-label","secondary-value"])):k("",!0),O("myOpenTasks")?(n(),W(Le,{key:6,title:e.$t("App.Cockpit.myOpenTasks"),value:Bt.value.toString(),"icon-bg-color-class":"bg-info",icon:y(xo),tooltip:z("myOpenTasks"),selected:!1,clickable:!0,onSelected:Pt},null,8,["title","value","icon","tooltip"])):k("",!0),O("workStopsOpen")?(n(),W(Le,{key:7,title:e.$t("App.Cockpit.workStopsOpen"),value:ca.value.toString(),"value-postfix":ve(ca.value,At.value),tooltip:z("workStopsOpen"),"icon-bg-color-class":"bg-error",icon:y(ft),selected:!1,clickable:!1},null,8,["title","value","value-postfix","tooltip","icon"])):k("",!0),O("workStopsDone")?(n(),W(Le,{key:8,title:e.$t("App.Cockpit.workStopsDone"),value:da.value.toString(),"value-postfix":ve(da.value,At.value),tooltip:z("workStopsDone"),"icon-bg-color-class":"bg-success",icon:y(Va),selected:!1,clickable:!1},null,8,["title","value","value-postfix","tooltip","icon"])):k("",!0)])):be.value.length?(n(),v("div",ur,[(n(!0),v(ae,null,Ce(le.value,a=>(n(),W(Ka,{key:a,type:"card",class:"rounded-xl"}))),128))])):k("",!0),I.value&&y(D).showCockpitMyTasks?(n(),W(Tn,{key:2,class:"mb-4"})):k("",!0),G.value?(n(),v("div",cr,[s("span",dr,r(e.$t("App.Cockpit.quickActionsTitle")),1),(n(!0),v(ae,null,Ce(Ze.value,a=>(n(),W(De,{key:a.id,variant:"tonal",size:"small","prepend-icon":a.icon,onClick:a.run},{default:U(()=>[H(r(a.label),1)]),_:2}
1,1032,["prepend-icon","onClick"]))),128)),s("div",pr,[g(La,{modelValue:Te.value,"onUpdate:modelValue":o[2]||(o[2]=a=>Te.value=a),location:"bottom end","close-on-content-click":!1},{activator:U(({props:a})=>[g(De,Ra(a,{variant:"text",icon:"",size:"small",class:"text-gray-600",title:e.$t("General.settings")}),{default:U(()=>[g(V,{icon:y(Zt)},null,8,["icon"])]),_:2},1040,["title"])]),default:U(()=>[g(Ua,{"min-width":"360",class:"border border-gray-200"},{default:U(()=>[s("div",vr,r(e.$t("App.Cockpit.quickActionsTitle")),1),g(_o,{density:"compact",class:"py-1"},{default:U(()=>[(n(!0),v(ae,null,Ce(Ue.value,a=>(n(),W($o,{key:a.id,class:"px-4"},{prepend:U(()=>[g(Yo,{"model-value":we.value.includes(a.id),"onUpdate:modelValue":m=>ut(a.id,!!m)},null,8,["model-value","onUpdate:modelValue"])]),default:U(()=>[g(No,{class:"text-sm flex items-center gap-2"},{default:U(()=>[g(V,{icon:a.icon,size:"16",class:"text-gray-500"},null,8,["icon"]),s("span",null,r(a.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),g(Wa),s("div",mr,[g(De,{size:"small",color:"secondary",loading:_e.value,disabled:!Ge.value||_e.value,onClick:et},{default:U(()=>[H(r(e.$t("General.save")),1)]),_:1},8,["loading","disabled"])])]),_:1})]),_:1},8,["modelValue"])])])):k("",!0),s("div",yr,[s("div",gr,[g(nr,{modelValue:P.value,"onUpdate:modelValue":o[3]||(o[3]=a=>P.value=a),mode:ee.value},null,8,["modelValue","mode"]),s("div",fr,[s("span",hr,r(st.value),1),ot.value?(n(),v("span",kr,r(ot.value),1)):k("",!0)]),s("div",br,[g(De,{size:"small",color:ee.value==="Day"?"secondary":void 0,variant:"outlined",onClick:he},{default:U(()=>[H(r(e.$t("App.Cockpit.dateToday")),1)]),_:1},8,["color"]),g(De,{size:"small",color:ee.value==="Week"?"secondary":void 0,variant:"outlined",onClick:o[4]||(o[4]=a=>$e("Week"))},{default:U(()=>[H(r(e.$t("App.Cockpit.weekAbbrev")),1)]),_:1},8,["color"]),g(De,{size:"small",color:ee.value==="Month"?"secondary":void 0,variant:"outlined",onClick:o[5]||(o[5]=a=>$e("Month"))},{default:U(()=>[H(r(e.$t("App.Cockpit.dateMonth")),1)]),_:1},8,["color"])]),g(V,{icon:y(Ja),class:"cursor-pointer text-gray-500 hover:text-gray-900 transition-colors",onClick:wt},null,8,["icon"])]),s("div",Ar,[g(Go,{modelValue:Me.value,"onUpdate:modelValue":o[6]||(o[6]=a=>Me.value=a),items:Et.value,label:e.$t("App.Cockpit.kpiFilter"),"prepend-inner-icon":y(wo),density:"compact","hide-details":"",variant:"outlined",class:"w-80 min-w-[18rem]"},null,8,["modelValue","items","label","prepend-inner-icon"]),Oe.value?(n(),W(jo,{key:0,modelValue:_.value,"onUpdate:modelValue":o[7]||(o[7]=a=>_.value=a),items:Ot.value,label:e.$t("App.Group.GroupList.title"),"prepend-inner-icon":y(Ea),density:"compact","hide-details":"",variant:"outlined",class:"w-64",multiple:"",clearable:"",chips:""},null,8,["modelValue","items","label","prepend-inner-icon"])):k("",!0),g(Fo,{modelValue:pe.value,"onUpdate:modelValue":o[8]||(o[8]=a=>pe.value=a),label:e.$t("App.ActionRequired.search"),clearable:"",density:"compact","hide-details":"",variant:"outlined",class:"w-64"},null,8,["modelValue","label"]),g(La,{location:"bottom end","close-on-content-click":!1},{activator:U(({props:a})=>[g(De,Ra(a,{variant:"text",icon:"",size:"small",class:"text-gray-600",title:e.$t("General.settings")}),{default:U(()=>[g(V,{icon:y(Zt)},null,8,["icon"])]),_:2},1040,["title"])]),default:U(()=>[g(Ua,{"min-width":"320",class:"border border-gray-200"},{default:U(()=>[s("div",xr,r(e.$t("App.Cockpit.tableFilters")),1),g(Wa),s("div",wr,[g(Jo,{modelValue:c.value,"onUpdate:modelValue":o[9]||(o[9]=a=>c.value=a),density:"compact","hide-details":"",color:"success",disabled:!Z.value,label:e.$t("App.Cockpit.showOnlySupervisedUsers")},null,8,["modelValue","disabled","label"]),Z.value?k("",!0):(n(),v("p",Cr,r(e.$t("App.Cockpit.enterpriseOnly")),1))])]),_:1})]),_:1})])])]),T.value?(n(),v("div",$r,[g(Ka,{elevation:2,type:"article",class:"rounded-xl"})])):(n(),v("div",Sr,[g(Ho,{headers:kt.value,items:q.value,"items-per-page":re.value,"onUpdate:itemsPerPage":o[10]||(o[10]=a=>re.value=a),"items-length":$.value,loading:j.value,"loading-text":e.$t("App.Cockpit.tableLoadingText"),hover:!0,"no-data-text":e.$t("App.Cockpit.tableNoDataText"),"item-value":"id",class:"rounded-xl border border-gray-100 shadow-sm cockpit-evaluation-table","fixed-header":"","hide-default-footer":""},Os({"item.employeeName":U(({item:a})=>[g(rs,{"user-id":a.id,name:a.employeeName},null,8,["user-id","name"])]),bottom:U(()=>[s("div",{ref_key:"infiniteScrollSentinel",ref:at,class:"h-1"},null,512),We.value?(n(),v("div",_r,[g(ls,{indeterminate:"",size:"24",color:"primary"})])):!tt.value&&q.value.length>0?(n(),v("div",Nr,r(e.$t("General.allLoaded")||"Alle Mitarbeiter geladen"),1)):k("",!0)]),_:2},[Ce(ct.value,a=>({name:`header.${a.toISOString()}`,fn:U(({column:m})=>[g(Hl,{status:Cs(a),weekday:a,loading:Ft.value===a.toISOString(),onChangeStatus:Q=>_s(a)},null,8,["status","weekday","loading","onChangeStatus"])])})),Ce(ct.value,a=>({name:`item.${a.toISOString()}`,fn:U(({item:m})=>[g(sr,{"row-data":m,date:a,"analysis-statuses":hs(ks(m.activities,a))??[],"anal
1ysis-counts":ps.value,selected:Na({row:m,date:a}),onSelect:Q=>xs({row:m,date:a}),onAnalysisSelect:ws},null,8,["row-data","date","analysis-statuses","analysis-counts","selected","onSelect"])])}))]),1032,["headers","items","items-per-page","items-length","loading","loading-text","no-data-text"])]))]),g(Es,{name:"detail-side"},{default:U(()=>[qe.value?(n(),v("aside",qr,[g(Bl,{evaluation:qe.value,"initial-analysis-id":Ct.value??void 0,onQuestionsCountChanged:Ns,onClose:Gt,class:"h-full"},null,8,["evaluation","initial-analysis-id"])])):k("",!0)]),_:1}),me.value?(n(),W(Vo,{key:0,modelValue:ie.value,"onUpdate:modelValue":o[11]||(o[11]=a=>ie.value=a)},null,8,["modelValue"])):k("",!0)],2))}}),du=ts(Dr,[["__scopeId","data-v-1b258ebe"]]);export{du as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.