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