PageSourceSearch

https://assets.flourish.se/builds/986349f89b4228566047cd94103d2b60…/assets/CompanyPraiseView-dJv3TiOg.js

js flourish.se collected 2026-09-24 13:28:23 UTC 54,225 bytes, 1 lines download raw bytes

1import{I as Ge}from"./PhEye.vue-tAlSXCFd.js";import{H as Oe}from"./PhEyeSlash.vue-kT5UXPKp.js";import{D as Ye}from"./PhThumbsUp.vue-CT69ULbs.js";import{G as fe}from"./PhUsers.vue-Cau_urWu.js";import{m as pe}from"./mLocal-YkvKfiUl.js";import{p as Ve,G as Fe,F as Ie,P as Qe,a as je}from"./PraiseStatsTiles-DCyDPytW.js";import{_ as ae,aK as We,u as le,Z as Te,a as qe,aL as Ke,q as Le,aM as Je,J as Xe,aN as $e,aO as Ae,aP as Ee,I as es,aQ as ss,aR as ts,aS as as,v as Ne}from"./index-CYjA95yB.js";import{d as ge,i as me,o,c,r as ls,a as v,m as _e,b as g,e as a,h,j as b,t as r,n as C,p as T,z as P,q as we,C as ze,k,am as ie,w as ke,v as Pe,E as te,a7 as U,a9 as E,aM as rs,F as I,g as j,a1 as se,K as os,V as is,J as ns,W as ds,u as cs}from"./vendor.core-C5Mfuc09.js";import{_ as us,P as ne}from"./PraiseIcon-CuOkHT0L.js";import{M as ms}from"./MetricsFilterContainer-Bk-CgZ80.js";import{D as ve}from"./DynamicDialog-BMnlgUk1.js";import{D as Ze}from"./DynamicTooltip-Be_D7Rfm.js";import{m as ps}from"./index-Dbox9QhG.js";import{F as hs,G as gs}from"./PhArrowUp.vue-6TEczvtz.js";import{F as vs}from"./PhArrowsDownUp.vue-sXKd7qdc.js";import{F as ys}from"./PhArrowsOutSimple.vue-1piLqA_j.js";import{G as bs}from"./PhClockCounterClockwise.vue-BOEXOkba.js";import{G as fs}from"./PhDownload.vue-X1Imk-m-.js";import{G as _s}from"./PhDownloadSimple.vue-DchWFi_X.js";import{I as Re}from"./PhMagnifyingGlass.vue-AfRTk4mm.js";import{G as he}from"./PhPaperPlaneTilt.vue-CIQxLvQj.js";import{G as ks}from"./PhSpinner.vue-CDGAjPxq.js";import{G as Ce}from"./PhCheck.vue-BY338Qrn.js";import{G as Se}from"./PhUser.vue-5iTH74tx.js";import{F as De}from"./PhUsersThree.vue-Bq4shVVv.js";import{S as Ue}from"./Spinner2-BLchjFkt.js";import{V as Ps}from"./ViewHeader-BSYSDemV.js";import"./moment-with-locales-CTCdVr-1.js";import"./_commonjsHelpers-BosuxZz1.js";import"./index-m9xVD-U4.js";import"./PhStar.vue-CPr0BuHo.js";import"./moment-yezW6YEx.js";import"./PhCaretLeft.vue-D3np3ZT6.js";const Ss=["width","height","fill","transform"],Ts={key:0},Ls=a("path",{d:"M140,32V64a12,12,0,0,1-24,0V32a12,12,0,0,1,24,0Zm84,84H192a12,12,0,0,0,0,24h32a12,12,0,0,0,0-24Zm-42.26,48.77a12,12,0,1,0-17,17l22.63,22.63a12,12,0,0,0,17-17ZM128,180a12,12,0,0,0-12,12v32a12,12,0,0,0,24,0V192A12,12,0,0,0,128,180ZM74.26,164.77,51.63,187.4a12,12,0,0,0,17,17l22.63-22.63a12,12,0,1,0-17-17ZM76,128a12,12,0,0,0-12-12H32a12,12,0,0,0,0,24H64A12,12,0,0,0,76,128ZM68.6,51.63a12,12,0,1,0-17,17L74.26,91.23a12,12,0,0,0,17-17Z"},null,-1),ws=[Ls],xs={key:1},Fs=a("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"},null,-1),Is=a("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"},null,-1),Cs=[Fs,Is],Ds={key:2},Ms=a("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM48,136a8,8,0,0,1,0-16H72a8,8,0,0,1,0,16Zm46.06,37.25-17,17a8,8,0,0,1-11.32-11.32l17-17a8,8,0,0,1,11.31,11.31Zm0-79.19a8,8,0,0,1-11.31,0l-17-17A8,8,0,0,1,77.09,65.77l17,17A8,8,0,0,1,94.06,94.06ZM136,208a8,8,0,0,1-16,0V184a8,8,0,0,1,16,0Zm0-136a8,8,0,0,1-16,0V48a8,8,0,0,1,16,0Zm54.23,118.23a8,8,0,0,1-11.32,0l-17-17a8,8,0,0,1,11.31-11.31l17,17A8,8,0,0,1,190.23,190.23ZM208,136H184a8,8,0,0,1,0-16h24a8,8,0,0,1,0,16Z"},null,-1),Vs=[Ms],As={key:3},Es=a("path",{d:"M134,32V64a6,6,0,0,1-12,0V32a6,6,0,0,1,12,0Zm90,90H192a6,6,0,0,0,0,12h32a6,6,0,0,0,0-12Zm-46.5,47A6,6,0,0,0,169,177.5l22.63,22.62a6,6,0,0,0,8.48-8.48ZM128,186a6,6,0,0,0-6,6v32a6,6,0,0,0,12,0V192A6,6,0,0,0,128,186ZM78.5,169,55.88,191.64a6,6,0,1,0,8.48,8.48L87,177.5A6,6,0,1,0,78.5,169ZM70,128a6,6,0,0,0-6-6H32a6,6,0,0,0,0,12H64A6,6,0,0,0,70,128ZM64.36,55.88a6,6,0,0,0-8.48,8.48L78.5,87A6,6,0,1,0,87,78.5Z"},null,-1),Ns=[Es],zs={key:4},Zs=a("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"},null,-1),Rs=[Zs],Us={key:5},Bs=a("path",{d:"M132,32V64a4,4,0,0,1-8,0V32a4,4,0,0,1,8,0Zm92,92H192a4,4,0,0,0,0,8h32a4,4,0,0,0,0-8Zm-47.92,46.43a4,4,0,1,0-5.65,5.65l22.62,22.63a4,4,0,0,0,5.66-5.66ZM128,188a4,4,0,0,0-4,4v32a4,4,0,0,0,8,0V192A4,4,0,0,0,128,188ZM79.92,170.43,57.29,193.05A4,4,0,0,0,63,198.71l22.62-22.63a4,4,0,1,0-5.65-5.65ZM68,128a4,4,0,0,0-4-4H32a4,4,0,0,0,0,8H64A4,4,0,0,0,68,128ZM63,57.29A4,4,0,0,0,57.29,63L79.92,85.57a4,4,0,1,0,5.65-5.65Z"},null,-1),Hs=[Bs],Gs={name:"PhSpinnerGap"},Os=ge({...Gs,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(e){const s=e,n=me("weight","regular"),u=me("size","1em"),l=me("color","currentColor"),t=me("mirrored",!1),d=g(()=>s.weight??n),m=g(()=>s.size??u),y=g(()=>s.color??l),L=g(()=>s.mirrored!==void 0?s.mirrored?"scale(-1, 1)":void 0:t?"scale(-1, 1)":void 0);return(w,D)=>(o(),c("svg",_e({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:m.value,height:m.value,fill:y.value,transform:L.value},w.$attrs),[ls(w.$slots,"default"),d.value==="bold"?(o(),c("g",Ts,ws)):d.value==="duotone"?(o(),c("g",xs,Cs)):d.value==="fill"?(o(),c("g",Ds,Vs)):d.value==="light"?(o(),c("g",As,Ns)):d.value==="regular"?(o(),c("g",zs,Rs)):d.value==="thin"?(o(),c("g",Us,Hs)):v("",!0)],16,Ss))}}),Ys={name:"CompanyPraiseCard",components:{PhThumbsUp:Ye,PhEye:Ge,PhEyeSlash:Oe,PhUsers:fe},props:["praise"],setup(){const e=le(),s=Te(),n=qe(),u=ze();return{authStore:e,groupsStore:s,chatStore:n,route:u}}
1,data(){return{minimized:!0}},computed:{userLanguage(){const e=this.authStore;return(e==null?void 0:e.language)||"en"},receiverName(){var e,s;return((s=(e=this.praise)==null?void 0:e.receiver)==null?void 0:s.firstName)||"Unknown"},senderType(){var e;return((e=this.praise)==null?void 0:e.senderType)||"Employee"},sourceBadge(){return this.senderType!=="User"?null:this.userLanguage==="sv"?"Från chef":"From manager"},senderName(){var e;return Ve(this.praise,{isCompanyAdmin:(e=this.authStore)==null?void 0:e.isCompanyAdmin,language:this.userLanguage})}},methods:{checkRoute(){if(this.route.name==="group-all-praise"||this.route.name==="group-dashboard")return"employee";if(this.route.name==="team-leader-group-all-praise"||this.route.name==="team-leader-group-dashboard")return"team-leader"},async editPraiseVisibility(e){var n;const s=(n=this.groupsStore.selectedGroup)==null?void 0:n._id;try{await We(e,s),this.praise.teamLeaderShowInDashboard=!this.praise.teamLeaderShowInDashboard}catch(u){console.error("Failed to update praise visibility:",u)}},formatDate(e){return e?pe(e).format("DD MMM YYYY"):""},checkIfLiked(){const e=this.authStore.userId,s=this.route.params.employeeId;return this.praise.likes.some(n=>n.id===e)||this.praise.likes.some(n=>n.id===s)},getNumberOfLikes(){return this.praise.likes.length},async likePraise(){var l;let e=null,s="",n=null;const u=this.praise._id;this.route.name==="team-leader-group-dashboard"||this.route.name==="team-leader-group-all-praise"?(e=this.authStore.userId,s="user",n=(l=this.groupsStore.selectedGroup)==null?void 0:l._id):(e=this.route.params.employeeId,s="employee",n=this.route.params.groupId),await this.chatStore.likePraise({praiseId:u,typeOfUser:s,id:e}),await this.groupsStore.fetchGroupPraise({groupId:n})}}},Qs={class:"company-praise-card w-100 d-flex flex-column"},js={class:"company-praise-card-team-name"},Ws={key:0,class:"praise-source-badge"},qs={class:"body d-flex flex-row align-center w-100"},Ks={class:"d-flex flex-roww-100"},Js={class:"w-100"},Xs={class:"footer d-flex flex-row justify-space-between align_items-center"},$s={class:"d-flex flex-row align-center"},et={style:{display:"flex"}};function st(e,s,n,u,l,t){var w;const d=k("PhUsers"),m=k("PhEye"),y=k("PhEyeSlash"),L=k("PhThumbsUp");return o(),c("div",Qs,[a("div",js,[h(d),b(" "+r(((w=n.praise.group)==null?void 0:w.title)||"deleted")+" ",1),t.sourceBadge?(o(),c("span",Ws,r(t.sourceBadge),1)):v("",!0)]),a("div",qs,[s[3]||(s[3]=a("img",{class:"praise-icon",src:us},null,-1)),a("div",{class:C([l.minimized?"praise-text-minimized":"praise-text","d-flex flex-column w-100"])},[a("h6",null,r(t.receiverName)+" "+r(t.userLanguage==="sv"?`fick beröm av ${t.senderName}!`:`got praised by ${t.senderName}!`),1),a("div",Ks,[a("p",Js,r(l.minimized&&n.praise.text.length>1e3?n.praise.text.substring(0,1e3)+"...":n.praise.text),1),l.minimized&&n.praise.text.length>1e3?(o(),c("p",{key:0,class:"praise-see-more",onClick:s[0]||(s[0]=D=>l.minimized=!l.minimized)}," See More ")):v("",!0),l.minimized?v("",!0):(o(),c("p",{key:1,class:"praise-see-more",onClick:s[1]||(s[1]=D=>l.minimized=!l.minimized)}," See Less "))])],2)]),a("div",Xs,[a("p",null,r(t.formatDate(n.praise.date)),1),a("div",$s,[t.checkRoute()==="team-leader"?(o(),c("div",{key:0,class:"d-flex align-center justify-center;",onClick:s[2]||(s[2]=D=>t.editPraiseVisibility(n.praise._id))},[h(we,{top:"","content-class":"tool-tip-show-hide elevation-3",style:{width:"200px"}},{activator:T(({props:D})=>[n.praise.teamLeaderShowInDashboard?(o(),P(m,_e({key:0,style:{height:"17px",color:"#acb4cd"}},D),null,16)):(o(),P(y,_e({key:1,style:{height:"17px",color:"#acb4cd"}},D),null,16))]),default:T(()=>[s[4]||(s[4]=a("p",{style:{color:"#ffffff","margin-bottom":"0px","max-width":"250px"}}," Choose whether or not this praise should be visible on employees' dashboards. ",-1))]),_:1})])):v("",!0),a("div",et,[h(L,{class:C(t.checkIfLiked()?"liked":"")},null,8,["class"]),a("p",{class:C(t.checkIfLiked()?"liked":"")},r(t.getNumberOfLikes()),3)])])])])}const tt=ae(Ys,[["render",st],["__scopeId","data-v-9a3a57f4"]]),at={class:"send-praise-dialog"},lt={class:"header"},rt={class:"header-text"},ot={class:"title"},it={key:0,class:"receiver-line"},nt={class:"receiver-name"},dt={key:0,class:"receiver-team"},ct={class:"body"},ut=["placeholder","disabled"],mt={class:"char-counter"},pt={class:"footer"},ht=ge({__name:"SendPraiseDialog",props:{modelValue:{type:Boolean},receiver:{}},emits:["update:modelValue","sent"],setup(e,{emit:s}){const n=e,u=s,l=le(),t=Le(),d=E(""),m=E(!1),y=g(()=>
1(l==null?void 0:l.language)==="sv"),L=g(()=>y.value?"Skicka beröm":"Send praise"),w=g(()=>y.value?"Skriv ett meddelande (valfritt)...":"Write a message (optional)..."),D=g(()=>y.value?"Skicka":"Send"),W=g(()=>y.value?"Avbryt":"Cancel");ie(()=>n.modelValue,z=>{z&&(d.value="")});function Z(){m.value||u("update:modelValue",!1)}async function $(){var z,N,R;if(!(m.value||!((z=n.receiver)!=null&&z._id))){m.value=!0;try{const M=await Ke(n.receiver._id,d.value,n.receiver.groupId||null),Y=y.value?`Beröm skickat till ${n.receiver.name}!`:`Praise sent to ${n.receiver.name}!`;t.success(Y),u("sent",(M==null?void 0:M.data)||null),u("update:modelValue",!1)}catch(M){const Y=y.value?"Kunde inte skicka beröm":"Failed to send praise",q=((R=(N=M==null?void 0:M.response)==null?void 0:N.data)==null?void 0:R.message)||(M==null?void 0:M.message)||Y;t.error(q)}finally{m.value=!1}}}return(z,N)=>(o(),P(ve,{"model-value":e.modelValue,"onUpdate:modelValue":N[1]||(N[1]=R=>u("update:modelValue",R))},{default:T(()=>[a("div",at,[a("div",lt,[h(ne,{size:28,alt:L.value},null,8,["alt"]),a("div",rt,[a("h3",ot,r(L.value),1),e.receiver?(o(),c("div",it,[a("span",nt,r(e.receiver.name),1),e.receiver.groupTitle?(o(),c("span",dt," · "+r(e.receiver.groupTitle),1)):v("",!0)])):v("",!0)])]),a("div",ct,[ke(a("textarea",{"onUpdate:modelValue":N[0]||(N[0]=R=>d.value=R),class:"text-input",placeholder:w.value,rows:"4",maxlength:"500",disabled:m.value},null,8,ut),[[Pe,d.value]]),a("span",mt,r(d.value.length)+"/500",1)]),a("div",pt,[h(te,{variant:"text",disabled:m.value,onClick:Z},{default:T(()=>[b(r(W.value),1)]),_:1},8,["disabled"]),h(te,{class:"send-btn",loading:m.value,disabled:m.value||!e.receiver,onClick:$},{default:T(()=>[h(U(he),{size:16,weight:"bold",class:"send-icon"}),b(" "+r(D.value),1)]),_:1},8,["loading","disabled"])])])]),_:1},8,["model-value"]))}}),gt=ae(ht,[["__scopeId","data-v-dfcfac97"]]),vt={class:"send-praise-adhoc"},yt={class:"header"},bt={class:"title"},ft={key:0,class:"recipient-chips"},_t={class:"recipient-name"},kt={key:0,class:"recipient-count"},Pt=["disabled","aria-label","onClick"],St={class:"search-block"},Tt={class:"search-field"},Lt=["placeholder","aria-label"],wt={class:"results"},xt={key:0,class:"results-hint"},Ft={key:0,class:"result-group"},It={class:"result-heading"},Ct=["aria-pressed","onClick"],Dt={class:"result-name"},Mt={key:0,class:"result-sub"},Vt={key:1,class:"result-group"},At={class:"result-heading"},Et=["aria-pressed","onClick"],Nt={class:"result-name"},zt={key:0,class:"result-sub"},Zt={key:2,class:"results-hint"},Rt={class:"body"},Ut=["placeholder","disabled"],Bt={class:"char-counter"},Ht={class:"footer"},Gt=ge({__name:"SendPraiseAdHocDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","sent"],setup(e,{expose:s,emit:n}){const u=e,l=n,t=le(),d=Le(),m=g(()=>(t==null?void 0:t.language)==="sv"),y=g(()=>m.value?"Skicka beröm":"Send praise"),L=g(()=>m.value?"Sök person eller team...":"Search a person or team..."),w=g(()=>m.value?"Sök mottagare":"Search recipient"),D=g(()=>m.value?"Medarbetare":"Employees"),W=g(()=>m.value?"Team":"Teams"),Z=g(()=>m.value?"Skriv ett meddelande (valfritt)...":"Write a message (optional)..."),$=g(()=>m.value?"Skicka":"Send"),z=g(()=>m.value?"Avbryt":"Cancel"),N=g(()=>m.value?"Inga träffar":"No matches"),R=g(()=>m.value?"Sök efter en person eller välj ett team":"Search for a person or pick a team"),M=g(()=>m.value?"Medarbetare":"Employee"),Y=g(()=>(m.value,"Team")),q=g(()=>m.value?"Ta bort mottagare":"Remove recipient"),B=E(""),H=E([]),K=E([]),i=E([]),S=E(""),J=E(!1),de=E(!1),G=E(!1);let O=null;const X=g(()=>i.value.length>0&&!G.value),ee=g(()=>{const f=B.value.trim().toLowerCase();return f?K.value.filter(x=>x.name.toLowerCase().includes(f)):K.value}),ye=g(()=>H.value.length>0||ee.value.length>0);function be(){B.value="",H.value=[],i.value=[],S.value="",J.value=!1,O&&(clearTimeout(O),O=null)}async function V(){try{const f=await $e(),x=(f==null?void 0:f.data)||[];K.value=x.filter(p=>p&&p.id).map(p=>({kind:"team",id:String(p.id),name:p.title,memberCount:Number.isFinite(p.memberCount)?Number(p.memberCount):null})),de.value=!0}catch{K.value=[]}}async function A(f){var p;const x=f.trim();if(!x){H.value=[],J.value=!1;return}J.value=!0;try{const Q=await Ae({userId:String(t.userId),dateRange:12,pageSize:50,sort:"received-desc",nameQuery:x}),ce=((p=Q==null?void 0:Q.data)==null?void 0:p.entries)||[];H.value=ce.map(_=>
1({kind:"employee",id:String(_._id),name:_.name,groupId:_.groupId?String(_.groupId):null,groupTitle:_.groupTitle||null}))}catch{H.value=[]}finally{J.value=!1}}ie(B,f=>{O&&clearTimeout(O),O=setTimeout(()=>A(f),250)});function F(f){return i.value.some(x=>x.kind===f.kind&&x.id===f.id)}function re(f){F(f)||i.value.push(f)}function oe(f){i.value=i.value.filter(x=>!(x.kind===f.kind&&x.id===f.id))}function Be(){G.value||l("update:modelValue",!1)}async function xe(){var p,Q,ce;if(i.value.length===0||G.value)return;G.value=!0;const f=i.value.filter(_=>_.kind==="employee").map(_=>_.id),x=i.value.filter(_=>_.kind==="team").map(_=>_.id);try{const _=await Je(f,x,S.value),ue=Number(((p=_==null?void 0:_.data)==null?void 0:p.sent)??0);d.success(m.value?`Beröm skickat till ${ue} personer`:`Praise sent to ${ue} people`),l("sent"),l("update:modelValue",!1)}catch(_){const ue=m.value?"Kunde inte skicka beröm":"Failed to send praise",He=((ce=(Q=_==null?void 0:_.response)==null?void 0:Q.data)==null?void 0:ce.message)||(_==null?void 0:_.message)||ue;d.error(He)}finally{G.value=!1}}return ie(()=>u.modelValue,f=>{f&&(be(),de.value||V())}),rs(()=>{O&&clearTimeout(O)}),s({selected:i,text:S,canSend:X,submit:xe,selectRecipient:re,removeRecipient:oe}),(f,x)=>(o(),P(ve,{"model-value":e.modelValue,"onUpdate:modelValue":x[2]||(x[2]=p=>l("update:modelValue",p))},{default:T(()=>[a("div",vt,[a("div",yt,[h(ne,{size:28,alt:y.value},null,8,["alt"]),a("h3",bt,r(y.value),1)]),i.value.length>0?(o(),c("div",ft,[(o(!0),c(I,null,j(i.value,p=>(o(),c("span",{key:p.kind+"-"+p.id,class:"recipient-chip"},[a("span",{class:C(["recipient-kind",p.kind])},[p.kind==="employee"?(o(),P(U(Se),{key:0,size:14,weight:"bold","aria-hidden":"true"})):(o(),P(U(De),{key:1,size:14,weight:"bold","aria-hidden":"true"})),b(" "+r(p.kind==="employee"?M.value:Y.value),1)],2),a("span",_t,r(p.name),1),p.kind==="team"&&p.memberCount!==null?(o(),c("span",kt," · "+r(p.memberCount),1)):v("",!0),a("button",{type:"button",class:"chip-remove",disabled:G.value,"aria-label":q.value,onClick:Q=>oe(p)},[h(U(Xe),{size:14,weight:"bold","aria-hidden":"true"}),h(we,{activator:"parent",location:"top",theme:"light","open-delay":300},{default:T(()=>[b(r(q.value),1)]),_:1})],8,Pt)]))),128))])):v("",!0),a("div",St,[a("div",Tt,[h(U(Re),{size:18,class:"search-icon"}),ke(a("input",{"onUpdate:modelValue":x[0]||(x[0]=p=>B.value=p),class:"search-input",type:"text",placeholder:L.value,"aria-label":w.value,autocomplete:"off"},null,8,Lt),[[Pe,B.value]]),J.value?(o(),P(U(Os),{key:0,size:18,class:"search-spinner","aria-hidden":"true"})):v("",!0)]),a("div",wt,[!B.value.trim()&&ee.value.length===0?(o(),c("div",xt,r(R.value),1)):(o(),c(I,{key:1},[H.value.length>0?(o(),c("div",Ft,[a("div",It,[h(U(Se),{size:13,weight:"bold"}),b(" "+r(D.value),1)]),(o(!0),c(I,null,j(H.value,p=>(o(),c("button",{key:"emp-"+p.id,type:"button",class:C(["result-row",{"is-selected":F(p)}]),"aria-pressed":F(p),onClick:Q=>re(p)},[a("span",Dt,r(p.name),1),p.groupTitle?(o(),c("span",Mt,r(p.groupTitle),1)):v("",!0),F(p)?(o(),P(U(Ce),{key:1,size:16,weight:"bold",class:"result-check","aria-hidden":"true"})):v("",!0)],10,Ct))),128))])):v("",!0),ee.value.length>0?(o(),c("div",Vt,[a("div",At,[h(U(De),{size:13,weight:"bold"}),b(" "+r(W.value),1)]),(o(!0),c(I,null,j(ee.value,p=>(o(),c("button",{key:"team-"+p.id,type:"button",class:C(["result-row",{"is-selected":F(p)}]),"aria-pressed":F(p),onClick:Q=>re(p)},[a("span",Nt,r(p.name),1),p.memberCount!==null?(o(),c("span",zt," · "+r(p.memberCount),1)):v("",!0),F(p)?(o(),P(U(Ce),{key:1,size:16,weight:"bold",class:"result-check","aria-hidden":"true"})):v("",!0)],10,Et))),128))])):v("",!0),B.value.trim()&&!J.value&&!ye.value?(o(),c("div",Zt,r(N.value),1)):v("",!0)],64))])]),a("div",Rt,[ke(a("textarea",{"onUpdate:modelValue":x[1]||(x[1]=p=>S.value=p),class:"text-input",placeholder:Z.value,rows:"4",maxlength:"500",disabled:G.value},null,8,Ut),[[Pe,S.value]]),a("span",Bt,r(S.value.length)+"/500",1)]),a("div",Ht,[h(te,{variant:"text",disabled:G.value,onClick:Be},{default:T(()=>[b(r(z.value),1)]),_:1},8,["disabled"]),h(te,{class:"send-btn",loading:G.value,disabled:!X.value,onClick:xe},{default:T(()=>[h(U(he),{size:16,weight:"bold",class:"send-icon","aria-hidden":"true"}),b(" "+r($.value),1)]),_:1},8,["loading","disabled"])])])]),_:1},8,["model-value"]))}}),Ot=ae(Gt,[["__scopeId","data-v-f9dd6b0d"]]),Yt={class:"praise-log"},Qt={class:"praise-log-header"},jt={class:"praise-log-title"},Wt={class:"praise-log-subtitle"},qt={class:"praise-log-toolbar"},Kt=["aria-checked","aria-label"],Jt={key:1,class:"praise-log-table"},Xt={class:"praise-log-row praise-log-thead"},$t={class:"praise-log-th recipient-col"},ea={class:"praise-log-th sender-col"},sa={class:"praise-log-th team-col"},ta={class:"praise-log-th date-col"},aa={class:"praise-log-th message-col"},la={class:"praise-log-td recipient-col"},ra={class:"praise-log-td sender-col"},oa={class:"praise-log-td team-col"},ia={class:"praise-log-td date-col"},na={class:"praise-log-td message-col"},da={class:"praise-log-message"},ca={key:1,class:"praise-log-message muted"},ua={key:0,class:"praise-log-empty"},ma={key:2,class:"praise-log-pagination"},pa={class:"praise-log-page-label"},ha={class:"praise-log-page-buttons"}
1,ga=["disabled"],va=["disabled"],Me=25,ya=ge({__name:"PraiseLogDialog",props:{modelValue:{type:Boolean},dateRange:{},selectedDateFilter:{},groupIds:{},tagIds:{}},emits:["update:modelValue"],setup(e,{emit:s}){const n=e,u=s,l=le(),t=g(()=>(l==null?void 0:l.language)==="sv"),d=E([]),m=E(0),y=E(1),L=E(!1),w=E(!1),D=g(()=>m.value>0?Math.ceil(m.value/Me):1),W=g(()=>y.value>1),Z=g(()=>y.value<D.value),$=g(()=>t.value?"Berömlogg":"Praise log"),z=g(()=>t.value?"Beröm som administratörer och chefer skickat till medarbetare och team":"Praise sent by admins and managers to employees and teams"),N=g(()=>t.value?"Skickat av mig":"Sent by me"),R=g(()=>t.value?"Mottagare":"Recipient"),M=g(()=>t.value?"Avsändare":"Sender"),Y=g(()=>(t.value,"Team")),q=g(()=>t.value?"Datum":"Date"),B=g(()=>t.value?"Meddelande":"Message"),H=g(()=>w.value?t.value?"Du har inte skickat något beröm i den valda perioden":"You have not sent any praise in the selected period":t.value?"Inget beröm matchar filtren":"No praise matches the filters"),K=g(()=>t.value?"Inget meddelande":"No message"),i=g(()=>t.value?"Föregående":"Previous"),S=g(()=>t.value?"Nästa":"Next");function J(V){var A;return((A=V.receiver)==null?void 0:A.firstName)||(t.value?"Okänd":"Unknown")}function de(V){return Ve(V,{isCompanyAdmin:l==null?void 0:l.isCompanyAdmin,language:(l==null?void 0:l.language)||"en"})}function G(V){return V?pe(new Date(V)).format("DD MMM YYYY"):"-"}function O(V){const A=(V.text||"").trim();return A?A.length>160?A.slice(0,160)+"...":A:""}async function X(){L.value=!0;try{const A=(await Ee(l.userId,n.dateRange,y.value,Me,n.groupIds&&n.groupIds.length>0?n.groupIds:null,n.tagIds&&n.tagIds.length>0?n.tagIds:null,"User",n.selectedDateFilter,w.value)).data||{};d.value=Array.isArray(A.items)?A.items:[],m.value=A.total||0}catch(V){console.error("Failed to fetch praise log",V),d.value=[],m.value=0}finally{L.value=!1}}function ee(){w.value=!w.value,y.value=1,X()}function ye(){W.value&&(y.value-=1,X())}function be(){Z.value&&(y.value+=1,X())}return ie(()=>n.modelValue,V=>{V&&(y.value=1,w.value=!1,X())}),ie(()=>[n.dateRange,n.selectedDateFilter,n.groupIds,n.tagIds],()=>{n.modelValue&&(y.value=1,X())},{deep:!0}),(V,A)=>(o(),P(ve,{"model-value":e.modelValue,"onUpdate:modelValue":A[0]||(A[0]=F=>u("update:modelValue",F))},{default:T(()=>[a("div",Yt,[a("div",Qt,[a("h3",jt,[h(ne,{size:20}),b(" "+r($.value),1)]),a("p",Wt,r(z.value),1),a("div",qt,[a("button",{type:"button",class:C(["sent-by-me-toggle",{active:w.value}]),role:"switch","aria-checked":w.value?"true":"false","aria-label":N.value,onClick:ee},[h(U(Se),{size:14,weight:"bold"}),b(" "+r(N.value),1)],10,Kt)])]),L.value&&d.value.length===0?(o(),P(Ue,{key:0})):(o(),c("div",Jt,[a("div",Xt,[a("span",$t,r(R.value),1),a("span",ea,r(M.value),1),a("span",sa,r(Y.value),1),a("span",ta,r(q.value),1),a("span",aa,r(B.value),1)]),(o(!0),c(I,null,j(d.value,(F,re)=>{var oe;return o(),c("div",{key:F._id||re,class:"praise-log-row"},[a("span",la,r(J(F)),1),a("span",ra,r(de(F)),1),a("span",oa,r(((oe=F.group)==null?void 0:oe.title)||"—"),1),a("span",ia,r(G(F.date)),1),a("span",na,[O(F)?(o(),P(Ze,{key:0,top:"","hover-text":F.text||""},{default:T(()=>[a("span",da,r(O(F)),1)]),_:2},1032,["hover-text"])):(o(),c("span",ca,r(K.value),1))])])}),128)),d.value.length===0&&!L.value?(o(),c("div",ua,[h(ne,{size:32,class:"praise-log-empty-icon"}),a("span",null,r(H.value),1)])):v("",!0)])),m.value>0?(o(),c("div",ma,[a("span",pa,r(t.value?"Visar":"Showing")+" "+r(d.value.length)+" "+r(t.value?"av":"of")+" "+r(m.value),1),a("div",ha,[a("button",{class:"praise-log-page-btn",disabled:!W.value||L.value,onClick:ye},r(i.value),9,ga),a("button",{class:"praise-log-page-btn",disabled:!Z.value||L.value,onClick:be},r(S.value),9,va)])])):v("",!0)])]),_:1},8,["model-value"]))}}),ba=ae(ya,[["__scopeId","data-v-ec53dc99"]]),fa={name:"CompanyPraise",components:{CompanyPraiseCard:tt,MetricsFilterContainer:ms,DynamicDialog:ve,DynamicTooltip:Ze,PraiseGraph:je,PraiseStatsTiles:Qe,PraiseIcon:ne,SendPraiseDialog:gt,SendPraiseAdHocDialog:Ot,PraiseLogDialog:ba,PhDownload:fs,PhUsers:fe,PhPaperPlaneTilt:he,PhEnvelopeOpen:Ie,PhCalendarStar:Fe,PhArrowsOutSimple:ys,PhArrowDown:gs,PhArrowUp:hs,PhArrowsDownUp:vs,PhMagnifyingGlass:Re,PhClockCounterClockwise:bs,PhDownloadSimple:_s,PhSpinner:ks,Spinner2:Ue},setup(){const e=le(),s=Ne(),n=Te(),u=Le();return{authStore:e,companyStore:s,groupsStore:n,mLocal:pe,toast:u}}
1,data(){return{pending:!1,availableTeams:[],selectedTeamsFilter:[],availableTags:[],selectedTagsFilter:[],selectedDateFilter:"6m",senderTypeFilter:null,currentPage:1,itemsPerPage:50,totalItems:0,hasMore:!0,loadingMore:!1,praiseItems:[],totals:{count:0,withText:0,employeeCount:0,monthsInWindow:0,distinctSenders:0,distinctReceivers:0,coverageDenominator:0},timeline:[],byTeam:[],bucket:"week",leaderboardTab:"teams",leaderboardData:null,leaderboardLoading:!1,observer:null,filtersReady:!1,exporting:!1,leaderboardFullscreen:!1,employeesData:{entries:[],totalCount:0,page:1,pageSize:50,hasMore:!1},employeesPage:1,employeesPageSize:50,employeesSort:"received-desc",employeesLoading:!1,employeesNameQuery:"",employeesNameDebounce:null,sendPraiseOpen:!1,sendPraiseReceiver:null,sendPraiseAdHocOpen:!1,praiseLogOpen:!1}},computed:{userLanguage(){const e=this.authStore;return(e==null?void 0:e.language)||"en"},itemsCountLabel(){const e=this.userLanguage==="sv"?"Visar":"Showing",s=this.userLanguage==="sv"?"av":"of";return`${e} ${this.praiseItems.length} ${s} ${this.totalItems}`},availableDates(){const e=this.userLanguage,s={sv:[{text:"Denna månad",value:"mtd"},{text:"Förra månaden",value:"lm"},{text:"6 månader",value:"6m"},{text:"Detta år",value:"ytd"},{text:"1 år",value:"1y"},{text:"3 år",value:"3y"},{text:"5 år",value:"5y"}],en:[{text:"Month to date",value:"mtd"},{text:"Last month",value:"lm"},{text:"6 months",value:"6m"},{text:"Year to date",value:"ytd"},{text:"1 year",value:"1y"},{text:"3 years",value:"3y"},{text:"5 years",value:"5y"}]};return s[e]||s.en},hasActiveFilter(){return this.senderTypeFilter||this.selectedTeamsFilter.length>0||this.selectedTagsFilter.length>0},timelineSubtitle(){const e=this.userLanguage==="sv";return this.bucket==="month"?e?"Per månad":"Monthly":e?"Per vecka":"Weekly"},leaderboardTabs(){const e=this.userLanguage==="sv";return[{value:"teams",kind:"computed",icon:fe,label:e?"Team":"Teams",description:e?"Beröm per team":"Praise per team"},{value:"groups-by-pppm",kind:"server",icon:Fe,label:e?"Team (PPPM)":"Teams (PPPM)",description:e?"Beröm per person per månad":"Praise per person per month"},{value:"top-senders",kind:"server",icon:he,label:e?"Avsändare":"Senders",description:e?"Personer som skickar mest beröm":"People sending the most praise"},{value:"top-receivers",kind:"server",icon:Ie,label:e?"Mottagare":"Receivers",description:e?"Personer som tar emot mest beröm":"People receiving the most praise"}]},activeLeaderboardDescription(){var e;return((e=this.activeLeaderboardTab)==null?void 0:e.description)??""},activeLeaderboardTab(){return this.leaderboardTabs.find(e=>e.value===this.leaderboardTab)},isComputedLeaderboard(){var e;return((e=this.activeLeaderboardTab)==null?void 0:e.kind)==="computed"},rankedListEntries(){let e=[];this.leaderboardTab==="teams"?e=this.byTeam.map(u=>({name:u.title,count:u.total,subtitle:u.managerName||null})):(this.leaderboardTab==="top-senders"||this.leaderboardTab==="top-receivers")&&(e=this.leaderboardEntries.map(u=>({name:u.name,count:u.count,subtitle:u.topGroupTitle||null})));const s=e.slice(0,8),n=s.reduce((u,l)=>Math.max(u,l.count||0),0);return s.map((u,l)=>({rank:l+1,name:u.name,count:u.count,subtitle:u.subtitle,share:n>0?Math.round(u.count/n*100):0}))},isRankedListTab(){return["teams","top-senders","top-receivers"].includes(this.leaderboardTab)},leaderboardEntries(){var e;return((e=this.leaderboardData)==null?void 0:e.entries)??[]},leaderboardDrilledIntoGroup(){var e,s;return((s=(e=this.leaderboardData)==null?void 0:e.scope)==null?void 0:s.drilledIntoGroup)===!0},leaderboardEmptyMessage(){const e=this.userLanguage==="sv";return this.leaderboardTab==="groups-by-pppm"||this.leaderboardTab==="teams"?e?"Inga team än":"No teams yet":this.leaderboardTab==="top-senders"?e?"Inga avsändare än":"No senders yet":e?"Inga mottagare än":"No receivers yet"},employeesEmptyMessage(){const e=this.userLanguage==="sv",s=this.employeesNameQuery.trim();return s?e?`Inga matchningar för "${s}"`:`No matches for "${s}"`:e?"Inga medarbetare matchar filtren":"No employees match the filters"},activeEmployeesSortField(){const e=this.employeesSort.lastIndexOf("-");return e>0?this.employeesSort.slice(0,e):""}}
1,watch:{selectedTeamsFilter:{handler(){this.filtersReady&&(this.resetAndFetchPraise(),this.fetchLeaderboard(),this.leaderboardFullscreen&&this.fetchEmployees())},immediate:!1},selectedTagsFilter:{handler(){this.filtersReady&&(this.resetAndFetchPraise(),this.fetchLeaderboard(),this.leaderboardFullscreen&&this.fetchEmployees())},immediate:!1},selectedDateFilter:{handler(){this.filtersReady&&this.leaderboardFullscreen&&this.fetchEmployees()},immediate:!1},senderTypeFilter:{handler(){this.filtersReady&&(this.resetAndFetchPraise(),this.fetchLeaderboard())},immediate:!1},leaderboardTab:{handler(){this.filtersReady&&this.fetchLeaderboard()},immediate:!1}},async created(){await Promise.all([this.fetchTeams(),this.fetchTags()])},mounted(){this.setupIntersectionObserver(),this.$nextTick(()=>{this.$nextTick(()=>{this.filtersReady=!0,this.fetchPraise(),this.fetchLeaderboard()})})},beforeUnmount(){this.cleanupIntersectionObserver()},methods:{async openLeaderboardFullscreen(){this.leaderboardFullscreen=!0,this.employeesPage=1,await this.fetchEmployees()},async fetchEmployees(){this.employeesLoading=!0;try{const e=await Ae({userId:this.authStore.userId,dateRange:this.monthsFromSelectedDate(),page:this.employeesPage,pageSize:this.employeesPageSize,sort:this.employeesSort,groupIds:this.selectedTeamsFilter,tagIds:this.selectedTagsFilter,selectedDateFilter:this.selectedDateFilter,nameQuery:this.employeesNameQuery});this.employeesData=e.data||this.employeesData}catch(e){console.error("Error fetching praise employees",e)}finally{this.employeesLoading=!1}},onEmployeesNameInput(e){this.employeesNameQuery=e,this.employeesNameDebounce&&clearTimeout(this.employeesNameDebounce),this.employeesNameDebounce=setTimeout(()=>{this.employeesPage=1,this.fetchEmployees()},300)},clearEmployeesNameQuery(){this.employeesNameDebounce&&(clearTimeout(this.employeesNameDebounce),this.employeesNameDebounce=null),this.employeesNameQuery&&(this.employeesNameQuery="",this.employeesPage=1,this.fetchEmployees())},setEmployeeSort(e){const s=this.employeesSort.lastIndexOf("-"),n=this.employeesSort.slice(0,s),u=this.employeesSort.slice(s+1);let l;n===e?l=u==="desc"?"asc":"desc":l=e==="name"||e==="team"?"asc":"desc",this.employeesSort=`${e}-${l}`,this.employeesPage=1,this.fetchEmployees()},applyEmployeesPreset(e){const s=e==="stale"?"lastPraise-asc":"received-desc";this.employeesSort!==s&&(this.employeesSort=s,this.employeesPage=1,this.fetchEmployees())},employeeSortIcon(e){return this.employeesSort.split("-").slice(0,-1).join("-")!==e?"PhArrowsDownUp":this.employeesSort.endsWith("-asc")?"PhArrowUp":"PhArrowDown"},receivedBreakdown(e){const s=this.userLanguage==="sv",n=e.receivedFromPeers||0,u=e.receivedFromManagers||0;return s?`${n} från kollegor · ${u} från chef`:`${n} from peers · ${u} from manager`},formatLastPraise(e){return e?pe(new Date(e)).format("DD MMM YYYY"):this.userLanguage==="sv"?"Aldrig":"Never"},nextEmployeesPage(){this.employeesData.hasMore&&(this.employeesPage+=1,this.fetchEmployees())},prevEmployeesPage(){this.employeesPage<=1||(this.employeesPage-=1,this.fetchEmployees())},openSendPraise(e){this.sendPraiseReceiver={_id:e._id,name:e.name,groupId:e.groupId||null,groupTitle:e.groupTitle},this.sendPraiseOpen=!0},onPraiseSent(){this.fetchEmployees(),this.fetchLeaderboard()},openSendPraiseAdHoc(){this.sendPraiseAdHocOpen=!0},openPraiseLog(){this.praiseLogOpen=!0},onAdHocPraiseSent(){this.resetAndFetchPraise(),this.fetchLeaderboard()},monthsFromSelectedDate(){const e=this.selectedDateFilter||"6m";return e==="mtd"||e==="lm"?1:e==="ytd"?12:e.endsWith("m")?parseInt(e)||6:e.endsWith("y")?(parseInt(e)||1)*12:e.startsWith("custom:")?12:6},async fetchTeams(){try{const e=this.authStore.userId,s=this.monthsFromSelectedDate(),l=((await as(e,s)).data||[]).filter(t=>!!t.title).sort((t,d)=>t.title.localeCompare(d.title)).map(t=>({text:t.title,value:t.id}));this.availableTeams=l}catch(e){console.error("Failed to fetch teams",e),this.availableTeams=[]}},async fetchTags(){var e;try{const s=this.authStore.userId,l=(((e=(await ts(s)).data)==null?void 0:e.tags)||[]).filter(t=>!!t.name).sort((t,d)=>t.name.localeCompare(d.name)).map(t=>({text:t.name,value:t._id}));this.availableTags=l}catch(s){console.error("Failed to fetch tags",s),this.availableTags=[]}},async fetchPraise(e=!1){e?this.loadingMore=!0:this.pending=!0;try{e||(this.praiseItems=[]);
1const s=this.authStore.userId,n=this.monthsFromSelectedDate(),u=this.selectedTeamsFilter.length>0?this.selectedTeamsFilter:null,l=this.selectedTagsFilter&&this.selectedTagsFilter.length>0?this.selectedTagsFilter:null,t=await Ee(s,n,this.currentPage,this.itemsPerPage,u,l,this.senderTypeFilter,this.selectedDateFilter),{items:d,total:m,totals:y,timeline:L,byTeam:w,bucket:D}=t.data;Array.isArray(d)&&(e?this.praiseItems=[...this.praiseItems,...d]:this.praiseItems=d),this.totalItems=m||(d==null?void 0:d.length)||0,this.hasMore=this.praiseItems.length<this.totalItems,e||(this.totals=y||{count:0,withText:0,employeeCount:0,monthsInWindow:0,distinctSenders:0,distinctReceivers:0,coverageDenominator:0},this.timeline=Array.isArray(L)?L:[],this.byTeam=Array.isArray(w)?w:[],this.bucket=D||"week")}catch(s){console.error("Failed to fetch praise paged",s)}finally{this.pending=!1,this.loadingMore=!1}},async onDateChange(e){this.selectedDateFilter=e,await this.fetchTeams(),await this.resetAndFetchPraise(),this.fetchLeaderboard()},resetAndFetchPraise(){this.currentPage=1,this.praiseItems=[],this.hasMore=!0,this.totalItems=0,this.fetchPraise(!1)},async fetchLeaderboard(){var e;if(!this.isComputedLeaderboard){this.leaderboardLoading=!0;try{const s=this.authStore.userId,n=this.monthsFromSelectedDate(),u=this.selectedTeamsFilter.length>0?this.selectedTeamsFilter:null,l=this.selectedTagsFilter&&this.selectedTagsFilter.length>0?this.selectedTagsFilter:null,t=await ss(s,this.leaderboardTab,n,u,l,this.senderTypeFilter,this.selectedDateFilter);((e=t.data)==null?void 0:e.type)===this.leaderboardTab&&(this.leaderboardData=t.data)}catch(s){console.error("Failed to fetch praise leaderboard",s),this.leaderboardData={type:this.leaderboardTab,entries:[]}}finally{this.leaderboardLoading=!1}}},async loadMore(){this.loadingMore||!this.hasMore||this.pending||(this.currentPage++,await this.fetchPraise(!0))},setupIntersectionObserver(){const e={root:null,rootMargin:"200px",threshold:0};this.observer=new IntersectionObserver(s=>{s.forEach(n=>{n.isIntersecting&&this.hasMore&&!this.loadingMore&&!this.pending&&this.loadMore()})},e),this.$nextTick(()=>{const s=this.$refs.scrollSentinel;s&&this.observer.observe(s)})},cleanupIntersectionObserver(){this.observer&&(this.observer.disconnect(),this.observer=null)},extractSenderName(e){var t;if((t=this.authStore)!=null&&t.isCompanyAdmin){const d=(e==null?void 0:e.sender)||(e==null?void 0:e.user)||(e==null?void 0:e.createdBy)||(e==null?void 0:e.author),m=(d==null?void 0:d.firstName)||(d==null?void 0:d.name)||(d==null?void 0:d.first)||"",y=(d==null?void 0:d.lastName)||(d==null?void 0:d.last)||"";return`${m} ${y}`.trim()||(d==null?void 0:d.handleName)||(d==null?void 0:d.email)||null}const s=(e==null?void 0:e.sender)||(e==null?void 0:e.user)||(e==null?void 0:e.createdBy)||(e==null?void 0:e.author),n=(s==null?void 0:s.firstName)||(s==null?void 0:s.name)||(s==null?void 0:s.first)||"",u=(s==null?void 0:s.lastName)||(s==null?void 0:s.last)||"";return`${n} ${u}`.trim()||(s==null?void 0:s.handleName)||(s==null?void 0:s.email)||"-"},extractReceiverName(e){var t;if((t=this.authStore)!=null&&t.isCompanyAdmin){const d=e==null?void 0:e.receiver,m=(d==null?void 0:d.firstName)||(d==null?void 0:d.name)||"",y=(d==null?void 0:d.lastName)||"";return`${m} ${y}`.trim()||null}const s=e==null?void 0:e.receiver,n=(s==null?void 0:s.firstName)||(s==null?void 0:s.name)||"",u=(s==null?void 0:s.lastName)||"";return`${n} ${u}`.trim()||null},async exportPraiseCsv(){this.exporting=!0;try{const e=this.authStore.userId,s=new URLSearchParams;s.append("language",this.userLanguage),this.selectedDateFilter&&s.append("dateFilter",this.selectedDateFilter),this.selectedTeamsFilter&&this.selectedTeamsFilter.length>0&&this.selectedTeamsFilter.forEach(m=>s.append("selectedTeamIds",m)),this.selectedTagsFilter&&this.selectedTagsFilter.length>0&&this.selectedTagsFilter.forEach(m=>s.append("selectedTagIds",m)),this.senderTypeFilter&&s.append("senderTypeFilter",this.senderTypeFilter);const n=`/api/export/praise/${e}?${s.toString()}`,u=await es.get(n,{responseType:"blob"}),l=new Blob([u.data],{type:"text/csv;charset=utf-8"}),t=window.URL.createObjectURL(l),d=document.createElement("a");d.href=t,d.download=`praise-export-${ps().tz("Europe/Stockholm").format("YYYY-MM-DD")}.csv`,d.click(),window.URL.revokeObjectURL(t)}catch(e){console.error("Error exporting praise:",e);
1const s=this.userLanguage==="sv"?"Fel vid export av beröm":"Error exporting praise data";this.toast.error(s)}finally{this.exporting=!1}}}},_a={class:"company-praise-container"},ka={class:"praise-filter-bar"},Pa={class:"praise-header-actions"},Sa={key:0,class:"praise-stats-hero"},Ta={key:0,class:"hero-chart"},La={class:"hero-chart-label"},wa={class:"hero-chart-canvas"},xa={class:"praise-actions-row"},Fa={class:"praise-count"},Ia=["disabled"],Ca={class:"praise-content"},Da={class:"praise-list"},Ma={key:0,class:"empty-praise-filter-container"},Va={key:1,class:"empty-praise-container"},Aa={class:"empty-praise-content"},Ea={class:"empty-praise-description"},Na={class:"empty-praise-steps"},za={class:"step"},Za={class:"step-text"},Ra={class:"step"},Ua={class:"step-text"},Ba={class:"step"},Ha={class:"step-text"},Ga={class:"arrow-text"},Oa={key:2,class:"loading-more-container"},Ya={ref:"scrollSentinel",class:"scroll-sentinel"},Qa={key:3,class:"end-of-results"},ja={key:0,class:"praise-summary"},Wa={class:"leaderboard-card"},qa={class:"leaderboard-header"},Ka={class:"leaderboard-title-row"},Ja={class:"leaderboard-title"},Xa=["aria-label"],$a={key:0,class:"leaderboard-subtitle"},el={class:"leaderboard-tabs"},sl=["aria-label","onClick"],tl={key:0,class:"leaderboard-list"},al={class:"leaderboard-rank"},ll={class:"leaderboard-name-title"},rl={key:0,class:"leaderboard-name-manager"},ol={class:"leaderboard-count"},il={key:1,class:"leaderboard-loading"},nl={key:2,class:"leaderboard-list"},dl={class:"leaderboard-rank"},cl={class:"leaderboard-name leaderboard-name-stack"},ul={class:"leaderboard-name-title"},ml={key:0,class:"leaderboard-name-manager"},pl={class:"leaderboard-count"},hl={key:3,class:"leaderboard-empty"},gl={class:"employees-fullscreen"},vl={class:"employees-fs-header"},yl={class:"employees-fs-title"},bl={class:"employees-fs-subtitle"},fl={class:"employees-fs-toolbar"},_l={key:1,class:"text-caption text-grey ml-1"},kl=["aria-label"],Pl={key:1,class:"employees-table"},Sl={class:"employees-row employees-thead"},Tl={class:"employees-td name-col"},Ll={class:"employees-td team-col"},wl={class:"employees-td num-col"},xl={class:"employees-received-total"},Fl={class:"employees-td num-col"},Il={class:"employees-td date-col"},Cl={class:"employees-td action-col"},Dl=["aria-label","onClick"],Ml={key:0,class:"employees-empty"},Vl={key:2,class:"employees-pagination"},Al={class:"employees-page-label"},El={class:"employees-page-buttons"},Nl=["disabled"],zl=["disabled"];function Zl(e,s,n,u,l,t){const d=k("MetricsFilterContainer"),m=k("PhClockCounterClockwise"),y=k("PraiseIcon"),L=k("PraiseStatsTiles"),w=k("PraiseGraph"),D=k("PhSpinner"),W=k("PhDownloadSimple"),Z=k("DynamicTooltip"),$=k("CompanyPraiseCard"),z=k("Spinner2"),N=k("PhArrowsOutSimple"),R=k("PhMagnifyingGlass"),M=k("PhPaperPlaneTilt"),Y=k("PhUsers"),q=k("DynamicDialog"),B=k("SendPraiseDialog"),H=k("SendPraiseAdHocDialog"),K=k("PraiseLogDialog");return o(),c("div",_a,[a("div",ka,[h(d,{"available-teams":l.availableTeams,"available-tags":l.availableTags,"available-dates":t.availableDates,"selected-teams-filter":l.selectedTeamsFilter,"selected-tags-filter":l.selectedTagsFilter,"selected-date-filter":l.selectedDateFilter,filters:["teams","tags","date"],"onUpdate:selectedTeamsFilter":s[0]||(s[0]=i=>l.selectedTeamsFilter=i),"onUpdate:selectedTagsFilter":s[1]||(s[1]=i=>l.selectedTagsFilter=i),"onUpdate:selectedDateFilter":t.onDateChange},null,8,["available-teams","available-tags","available-dates","selected-teams-filter","selected-tags-filter","selected-date-filter","onUpdate:selectedDateFilter"]),a("div",Pa,[h(te,{class:"praise-log-cta",variant:"outlined",icon:"","aria-label":t.userLanguage==="sv"?"Berömhistorik":"Praise history",onClick:t.openPraiseLog},{default:T(()=>[h(m,{size:18,weight:"bold"}),h(we,{activator:"parent",location:"bottom",theme:"light","open-delay":300},{default:T(()=>[b(r(t.userLanguage==="sv"?"Berömhistorik":"Praise history"),1)]),_:1})]),_:1},8,["aria-label","onClick"]),h(te,{class:"send-praise-cta","aria-label":t.userLanguage==="sv"?"Skicka beröm":"Send praise",onClick:t.openSendPraiseAdHoc},{default:T(()=>[h(y,{size:18,class:"send-praise-cta-icon"}),b(" "+r(t.userLanguage==="sv"?"Skicka beröm":"Send praise"),1)]),_:1},8,["aria-label","onClick"])])]),l.totals.count>0?(o(),c("div",Sa,[h(L,{totals:l.totals,"user-language":t.userLanguage}
1,null,8,["totals","user-language"]),l.timeline.length>0?(o(),c("div",Ta,[a("div",La,r(t.timelineSubtitle),1),a("div",wa,[h(w,{timeline:l.timeline,bucket:l.bucket,totals:l.totals,"user-language":t.userLanguage},null,8,["timeline","bucket","totals","user-language"])])])):v("",!0)])):v("",!0),a("div",xa,[a("div",Fa,r(t.itemsCountLabel),1),s[18]||(s[18]=a("div",{class:"praise-actions-spacer"},null,-1)),l.praiseItems.length>0?(o(),P(Z,{key:0,"hover-text":t.userLanguage==="sv"?"Exportera CSV":"Export CSV",top:""},{default:T(()=>[a("button",{class:"export-button",disabled:l.exporting||l.pending,onClick:s[2]||(s[2]=(...i)=>t.exportPraiseCsv&&t.exportPraiseCsv(...i))},[l.exporting?(o(),P(D,{key:0,size:18,class:"spin"})):(o(),P(W,{key:1,size:18}))],8,Ia)]),_:1},8,["hover-text"])):v("",!0)]),a("div",Ca,[a("div",Da,[!l.pending&&l.praiseItems.length===0&&t.hasActiveFilter?(o(),c("div",Ma,[h(y,{size:48,class:"empty-praise-icon"}),a("h3",null,r(t.userLanguage==="sv"?"Inget beröm matchar filtret":"No praise matches the current filter"),1),a("p",null,r(t.userLanguage==="sv"?"Justera datumintervall, team eller källfilter för att se mer.":"Adjust the date range, teams, or source filter to see more."),1)])):!l.pending&&l.praiseItems.length===0?(o(),c("div",Va,[a("div",Aa,[h(y,{size:64,class:"empty-praise-icon"}),a("h3",null,r(t.userLanguage==="sv"?"Ingen beröm ännu":"No Praise Yet"),1),a("p",Ea,r(t.userLanguage==="sv"?"Beröm skapas när medarbetare ger varandra positiv feedback. Uppmuntra ditt team att dela erkännanden och uppskattning.":"Praise is created when employees give each other positive feedback. Encourage your team to share recognition and appreciation."),1),a("div",Na,[a("div",za,[s[19]||(s[19]=a("div",{class:"step-number"},"1",-1)),a("div",Za,r(t.userLanguage==="sv"?"Uppmuntra medarbetare att använda beröm-funktionen":"Encourage employees to use the praise feature"),1)]),a("div",Ra,[s[20]||(s[20]=a("div",{class:"step-number"},"2",-1)),a("div",Ua,r(t.userLanguage==="sv"?"Dela exempel på bra beröm i teammöten":"Share examples of good praise in team meetings"),1)]),a("div",Ba,[s[21]||(s[21]=a("div",{class:"step-number"},"3",-1)),a("div",Ha,r(t.userLanguage==="sv"?"Skapa en kultur av erkännande och uppskattning":"Create a culture of recognition and appreciation"),1)])]),a("span",Ga,r(t.userLanguage==="sv"?"Beröm kommer att visas här när medarbetare börjar dela":"Praise will appear here when employees start sharing"),1)])])):v("",!0),(o(!0),c(I,null,j(l.praiseItems,(i,S)=>(o(),P($,{key:S,praise:i},null,8,["praise"]))),128)),l.loadingMore?(o(),c("div",Oa,[h(z)])):v("",!0),a("div",Ya,null,512),!l.loadingMore&&!l.hasMore&&l.praiseItems.length>0?(o(),c("div",Qa,[a("p",null,r(t.userLanguage==="sv"?"Inga fler beröm att visa":"No more praise to show"),1)])):v("",!0)]),l.filtersReady?(o(),c("div",ja,[a("div",Wa,[a("div",qa,[a("div",Ka,[a("h4",Ja,[s[22]||(s[22]=a("span",{class:"leaderboard-trophy"},"🏆",-1)),b(" "+r(t.userLanguage==="sv"?"Topplista":"Leaderboard"),1)]),h(Z,{top:"","hover-text":t.userLanguage==="sv"?"Öppna medarbetare":"Open employees"},{default:T(()=>[a("button",{class:"leaderboard-expand-btn","aria-label":t.userLanguage==="sv"?"Öppna medarbetare":"Open employees",onClick:s[3]||(s[3]=(...i)=>t.openLeaderboardFullscreen&&t.openLeaderboardFullscreen(...i))},[h(N,{size:14,weight:"bold"})],8,Xa)]),_:1},8,["hover-text"])]),t.activeLeaderboardDescription?(o(),c("div",$a,r(t.activeLeaderboardDescription),1)):v("",!0)]),a("div",el,[(o(!0),c(I,null,j(t.leaderboardTabs,i=>(o(),c("div",{key:i.value,class:"leaderboard-tab-wrap"},[h(Z,{top:"","hover-text":i.label},{default:T(()=>[a("button",{class:C(["leaderboard-tab",{active:l.leaderboardTab===i.value}]),"aria-label":i.label,onClick:S=>l.leaderboardTab=i.value},[(o(),P(se(i.icon),{size:16,weight:"bold"}))],10,sl)]),_:2},1032,["hover-text"])]))),128))]),t.isRankedListTab&&t.rankedListEntries.length>0?(o(),c("ol",tl,[(o(!0),c(I,null,j(t.rankedListEntries,i=>(o(),c("li",{key:`lb-${l.leaderboardTab}-${i.rank}-${i.name}`,class:C(["leaderboard-row",{"rank-gold":i.rank===1,"rank-silver":i.rank===2,"rank-bronze":i.rank===3}])},[a("span",al,[i.rank===1?(o(),c(I,{key:0},[b("🥇")],64)):i.rank===2?(o(),c(I,{key:1},[b("🥈")],64)):i.rank===3?(o(),c(I,{key:2},[b("🥉")],64)):(o(),c(I,{key:3},[b(r(i.rank),1)],64))]),a("span",{class:C(["leaderboard-name",{"leaderboard-name-stack":i.subtitle}])},[a("span",ll,r(i.name),1),i.subtitle?(o(),c("span",rl,r(i.subtitle),
11)):v("",!0)],2),a("span",ol,r(i.count),1),a("div",{class:"leaderboard-bar",style:os({width:i.share+"%"})},null,4)],2))),128))])):l.leaderboardLoading?(o(),c("div",il,[h(z)])):l.leaderboardTab==="groups-by-pppm"&&t.leaderboardEntries.length>0?(o(),c("ol",nl,[(o(!0),c(I,null,j(t.leaderboardEntries,(i,S)=>(o(),c("li",{key:`lb-gpppm-${i.groupId}`,class:C(["leaderboard-row",{"rank-gold":S===0,"rank-silver":S===1,"rank-bronze":S===2}])},[a("span",dl,[S===0?(o(),c(I,{key:0},[b("🥇")],64)):S===1?(o(),c(I,{key:1},[b("🥈")],64)):S===2?(o(),c(I,{key:2},[b("🥉")],64)):(o(),c(I,{key:3},[b(r(S+1),1)],64))]),a("span",cl,[a("span",ul,r(i.groupTitle),1),i.managerName?(o(),c("span",ml,r(i.managerName),1)):v("",!0)]),a("span",pl,r(i.pppm),1)],2))),128))])):(o(),c("div",hl,r(t.leaderboardEmptyMessage),1))])])):v("",!0)]),h(q,{"model-value":l.leaderboardFullscreen,"onUpdate:modelValue":s[14]||(s[14]=i=>l.leaderboardFullscreen=i)},{default:T(()=>[a("div",gl,[a("div",vl,[a("h3",yl,[s[23]||(s[23]=a("span",{class:"leaderboard-trophy"},"🏆",-1)),b(" "+r(t.userLanguage==="sv"?"Berömtopplista":"Praise leaderboard"),1)]),a("p",bl,r(t.userLanguage==="sv"?"Filtrera, sortera och skicka beröm direkt":"Filter, sort and send praise directly"),1),a("div",fl,[h(is,{"model-value":l.employeesNameQuery,placeholder:t.userLanguage==="sv"?"Sök på förnamn":"Search by first name",density:"compact",variant:"outlined","hide-details":"",clearable:"",class:"employees-search-field","onUpdate:modelValue":t.onEmployeesNameInput,"onClick:clear":t.clearEmployeesNameQuery},{"prepend-inner":T(()=>[h(R,{size:14,weight:"bold"})]),_:1},8,["model-value","placeholder","onUpdate:modelValue","onClick:clear"]),h(ns,{modelValue:l.selectedTeamsFilter,"onUpdate:modelValue":s[4]||(s[4]=i=>l.selectedTeamsFilter=i),items:l.availableTeams,"item-title":"text","item-value":"value",placeholder:t.userLanguage==="sv"?"Team":"Teams",multiple:"",density:"compact",variant:"outlined","hide-details":"",clearable:"",class:"employees-team-select"},{selection:T(({item:i,index:S})=>[S<1?(o(),P(ds,{key:0,size:"small"},{default:T(()=>[a("span",null,r(i.title),1)]),_:2},1024)):v("",!0),S===1?(o(),c("span",_l," +"+r(l.selectedTeamsFilter.length-1),1)):v("",!0)]),_:1},8,["modelValue","items","placeholder"]),a("div",{class:"employees-presets",role:"group","aria-label":t.userLanguage==="sv"?"Vyer":"Views"},[a("button",{type:"button",class:C(["employees-preset",{active:l.employeesSort==="received-desc"}]),onClick:s[5]||(s[5]=i=>t.applyEmployeesPreset("top"))},r(t.userLanguage==="sv"?"Mest beröm":"Most praised"),3),a("button",{type:"button",class:C(["employees-preset",{active:l.employeesSort==="lastPraise-asc"}]),onClick:s[6]||(s[6]=i=>t.applyEmployeesPreset("stale"))},r(t.userLanguage==="sv"?"Behöver beröm":"Needs recognition"),3)],8,kl)])]),l.employeesLoading&&l.employeesData.entries.length===0?(o(),P(z,{key:0})):(o(),c("div",Pl,[a("div",Sl,[a("button",{class:C(["employees-th name-col",{active:t.activeEmployeesSortField==="name"}]),onClick:s[7]||(s[7]=i=>t.setEmployeeSort("name"))},[b(r(t.userLanguage==="sv"?"Medarbetare":"Employee")+" ",1),(o(),P(se(t.employeeSortIcon("name")),{size:12}))],2),a("button",{class:C(["employees-th team-col",{active:t.activeEmployeesSortField==="team"}]),onClick:s[8]||(s[8]=i=>t.setEmployeeSort("team"))},[b(r((t.userLanguage==="sv","Team"))+" ",1),(o(),P(se(t.employeeSortIcon("team")),{size:12}))],2),a("button",{class:C(["employees-th num-col",{active:t.activeEmployeesSortField==="received"}]),onClick:s[9]||(s[9]=i=>t.setEmployeeSort("received"))},[b(r(t.userLanguage==="sv"?"Mottaget":"Received")+" ",1),(o(),P(se(t.employeeSortIcon("received")),{size:12}))],2),a("button",{class:C(["employees-th num-col",{active:t.activeEmployeesSortField==="sent"}]),onClick:s[10]||(s[10]=i=>t.setEmployeeSort("sent"))},[b(r(t.userLanguage==="sv"?"Skickat":"Sent")+" ",1),(o(),P(se(t.employeeSortIcon("sent")),{size:12}))],2),a("button",{class:C(["employees-th date-col",{active:t.activeEmployeesSortField==="lastPraise"}]),onClick:s[11]||(s[11]=i=>t.setEmployeeSort("lastPraise"))},[b(r(t.userLanguage==="sv"?"Senaste beröm":"Last praise")+" ",1),(o(),P(se(t.employeeSortIcon("lastPraise")),{size:12}))],2),s[24]||(s[24]=a("span",{class:"employees-th action-col"},null,-1))]),(o(!0),c(I,null,j(l.employeesData.entries,i=>(o(),c("div",{key:i._id,class:"employees-row"},[a("span",Tl,r(i.name),1),a("span",Ll,r(i.groupTitle||"—"),1),a("span",wl,[h(Z,{top:"","hover-text":t.receivedBreakdown(i)},{default:T(()=>[a("span",xl,r(i.receivedFromPeers+i.receivedFromManagers),1)]),_:2},1032,["hover-text"])]),a("span",Fl,r(i.sent),1),a("span",Il,r(t.formatLastPraise(i.lastPraise)),1),a("span",Cl,[h(Z,{top:"","hover-text":t.userLanguage==="sv"?"Skicka beröm":"Send praise"},{default:T(()=>[a("button",{class:"employees-send-btn","aria-label":t.userLanguage==="sv"?"Skicka beröm":"Send praise",onClick:S=>t.openSendPraise(i)},[h(M,{size:16,weight:"bold"})],8,Dl)]),_:2},1032,["hover-text"])])]))),128)),l.employeesData.entries.length===0&&!l.employeesLoading?(o(),c("div",Ml,[h(Y,{size:32,weight:"duotone",class:"employees-empty-icon"}),a("span",null,r(t.employeesEmptyMessage),1)])):v("",!0)])),l.employeesData.totalCount>0?(o(),c("div",Vl,[a("span",Al,r(t.userLanguage==="sv"?"Visar":"Showing")+" "+r(l.employeesData.entries.length)+" "+r(t.userLanguage==="sv"?"av":"of")+" "+r(l.employeesData.totalCount),1),a("div",El,[a("button",{class:"employees-page-btn",disabled:l.employeesPage<=1||l.employeesLoading,onClick:s[12]||(s[12]=(...i)=>t.prevEmployeesPage&&t.prevEmployeesPage(...i))},r(t.userLanguage==="sv"?"Föregående":"Previous"),9,Nl),a("button",{class:"employees-page-btn",disabled:!l.employeesData.hasMore||l.employeesLoading,onClick:s[13]||(s[13]=(...i)=>t.nextEmployeesPage&&t.nextEmployeesPage(...i))}
1,r(t.userLanguage==="sv"?"Nästa":"Next"),9,zl)])])):v("",!0)])]),_:1},8,["model-value"]),h(B,{modelValue:l.sendPraiseOpen,"onUpdate:modelValue":s[15]||(s[15]=i=>l.sendPraiseOpen=i),receiver:l.sendPraiseReceiver,onSent:t.onPraiseSent},null,8,["modelValue","receiver","onSent"]),h(H,{modelValue:l.sendPraiseAdHocOpen,"onUpdate:modelValue":s[16]||(s[16]=i=>l.sendPraiseAdHocOpen=i),onSent:t.onAdHocPraiseSent},null,8,["modelValue","onSent"]),h(K,{modelValue:l.praiseLogOpen,"onUpdate:modelValue":s[17]||(s[17]=i=>l.praiseLogOpen=i),"date-range":t.monthsFromSelectedDate(),"selected-date-filter":l.selectedDateFilter,"group-ids":l.selectedTeamsFilter,"tag-ids":l.selectedTagsFilter},null,8,["modelValue","date-range","selected-date-filter","group-ids","tag-ids"])])}const Rl=ae(fa,[["render",Zl],["__scopeId","data-v-e94474d9"]]),Ul={name:"CompanyPraiseView",components:{CompanyPraise:Rl,ViewHeader:Ps},setup(){const e=le(),s=Ne(),n=Te(),u=cs(),l=ze();return{authStore:e,companyStore:s,groupsStore:n,router:u,route:l}},data(){return{descriptionEN:"This section shows praise across all teams",descriptionSV:"Här ser du beröm inom alla team"}},async created(){window.scrollTo(0,0)},computed:{userLanguage(){const e=this.authStore;return(e==null?void 0:e.language)||"en"}},methods:{back(){if(this.route.name==="group-all-praise"){const e=this.route.params.groupId,s=this.route.params.employeeId;this.router.push(`/group/${e}/employee/${s}`)}else this.router.push("/team-leader-group-dashboard")}}},Bl={class:"company-praise-view-container"};function Hl(e,s,n,u,l,t){const d=k("ViewHeader"),m=k("CompanyPraise");return o(),c("div",Bl,[h(d,{title:t.userLanguage==="sv"?"Beröm - Företag":"Praise - Company",description:t.userLanguage==="sv"?l.descriptionSV:l.descriptionEN,"link-main-text":"Back"},null,8,["title","description"]),h(m)])}const Pr=ae(Ul,[["render",Hl],["__scopeId","data-v-9fd88191"]]);export{Pr 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.