1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jspdf.es.min-D2IG85yn.js","assets/index-o4dhNVJj.js","assets/vue-datepicker-CpIdsRIT.js","assets/datefns-BAflKSlV.js","assets/index-Bxwwm27L.css"])))=>i.map(i=>d[i]); 2import{h as te,c as d,_ as U,u as s,ae as Ct,M as u,ah as wa,ai as ka,f as g,$ as y,n,L as t,a0 as o,K as _,a4 as N,F as de,a6 as pe,w as G,a1 as W,a5 as ze,a2 as xt,a3 as bt,x as wt,a7 as _a,r as kt,g as me,U as _t,O as Ie,a as At,W as je,R as Vt,p as pa}from"./vue-datepicker-CpIdsRIT.js";import{b as ie,bp as $t,bo as He,v as ge,b8 as It,_ as Aa,bq as St,br as ma,a as xe,aR as Va,D as $a,aS as Ia,bs as Be,V as X,n as fe,Z as Ft,aL as Ce,C as Dt,t as Ke,bt as Tt,aI as Lt,aK as Ut,aJ as Pt,b7 as Mt,b9 as ga,a0 as Et,aN as Wt,ax as qt,W as Nt,aT as Gt,aU as Ge,b0 as Ot,bj as Qt,bu as Oe,i as Rt,bv as zt,b2 as Bt,at as jt,bw as Ht,L as Kt,K as Zt,q as Xt,bx as Yt,ak as Jt,by as ei,bz as ai,al as ti,bA as ii}from"./index-o4dhNVJj.js";import{_ as fa}from"./CardContainer.vue_vue_type_script_setup_true_lang-BKfUFWAw.js";import{r as H}from"./ResolveErrorCode-uRcKEtjn.js";import{u as be}from"./campaignStore-CihDZtUo.js";import{V as ni,r as li}from"./VForm-DE7HWpqe.js";/* empty css */import{u as Ze}from"./userStore-DfNIKqll.js";import{u as Xe}from"./workItemStore-Bmx9fXJv.js";import{u as Fe}from"./catalogStore-C1C8k41I.js";import{u as oi}from"./LocalizedTextComposable-DaZErAPF.js";import{V as Ye,a as Sa,b as Fa,c as Da}from"./VExpansionPanels-Bor2I0Ze.js";import{V as ce}from"./VTextField-DmCcBAfM.js";import{V as si}from"./VCheckbox-nrSLyQgk.js";import{Q as ri}from"./browser-qB8L6Zmy.js";import{_ as re,a as Ta}from"./ConfigurationWarnings-kdKdLjaA.js";import{V as se}from"./VAutocomplete-CR3sph-Q.js";import{V as le}from"./VSelect-BUMCLhrk.js";import{a as di,V as La}from"./VChip-0TTkSTXl.js";import{_ as ui}from"./CatalogListItem.vue_vue_type_script_setup_true_lang-0g4AYtGe.js";import{u as Ua}from"./InfiniteListComposable-D1mDhAIs.js";import{V as he}from"./VSkeletonLoader-A2vQBjLT.js";import{s as ci}from"./DataTableSorting-DDcS9sCQ.js";import{V as pi}from"./VDataTableServer-Dlsmg1k5.js";import{V as va}from"./filter-t-MjLniW.js";import"./datefns-BAflKSlV.js";import"./VCheckboxBtn-gsiJdvrK.js";import"./plotly-DsqdWQfm.js";import"./Debounce-Y5hT8a-T.js";import"./RiskLevelComposable-Bgkjfx0u.js";import"./SelectInput.vue_vue_type_script_setup_true_lang-ph5j1wp3.js";import"./VDataTable-CVi36Htg.js";import"./VTable-BZ5u1G2Z.js";const ya=te({__name:"DateInput",props:{modelValue:{type:Date},label:{type:String},disabled:{type:Boolean,default:!1},styling:{type:String,default:""}},emits:["update:modelValue"],setup(h,{emit:l}){const x=h,m=l,{locale:D}=ie(),F=$t(),b=d(()=>F.global.current.value.dark),A=d({get:()=>x.modelValue,set:V=>m("update:modelValue",V)}),k=d(()=>`w-full ${x.styling}`.trim());return(V,f)=>(u(),U(s(Ct),{class:"date-input--white-bg",modelValue:A.value,"onUpdate:modelValue":f[0]||(f[0]=L=>A.value=L),locale:s(D),format:"dd.MM.yyyy",clearable:!1,"auto-apply":!0,"enable-time-picker":!1,disabled:h.disabled,dark:b.value,placeholder:h.label,"input-class-name":k.value,teleport:!0},null,8,["modelValue","locale","disabled","dark","placeholder","input-class-name"]))}}),mi={class:"flex flex-col gap-2 text-light-text"},gi={class:"text-md"},fi={class:"text-lg"},vi={key:0},yi={class:"text-sm text-text"},hi={key:1},Ci={key:0,class:"max-h-64 bg-white rounded-xl rounded-t-none border-b border-r border-l border-text p-2 overflow-y-auto"},xi={class:"flex flex-col bg-background rounded-lg gap-4 mt-2 p-3 text-sm text-text"},bi={class:"flex justify-between items-center"},wi={class:"flex justify-between rounded w-full"},ki={class:"flex gap-2 items-center"},_i={class:"font-bold"},Ai=te({__name:"CatalogSettings",props:wa({catalog:{type:Object,required:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(h){const l=h,{locale:x}=ie(),{localText:m}=oi(),D=ka(h,"modelValue"),F=g(),b=d(()=>{const A=F.value?.toLowerCase(),k=l.catalog.questions;return k?A?k?.filter(V=>V.data.request?.[x.value.substring(0,2)].toString().toLowerCase().includes(A)):k:[]});return(A,k)=>(u(),U(Ye,{flat:""},{default:y(()=>[n(Sa,{class:"bg-background rounded-xl"},{default:y(()=>[n(Fa,null,{default:y(()=>[t("div",mi,[t("span",gi,o(A.$t("App.Campaign.CampaignForm.catalogSettings")),1),t("span",fi,o(h.catalog.name),1)])]),_:1}),n(Da,null,{default:y(()=>[h.catalog.questions?.length?(u(),_("div",hi,[n(ce,{modelValue:F.value,"onUpdate:modelValue":k[0]||(k[0]=V=>F.value=V),label:A.$t("App.Campaign.CampaignForm.searchForQuestion"),type:"text",color:"secondary","bg-color":"white","append-inner-icon":s(He),variant:"outlined","hide-details":"auto"},null,8,["modelValue","label","append-inner-icon"]),b.value?.length?(u(),_("div",Ci,[(u(!0),_(de,null,pe(b.value,(V,f)=>(u(),_("div",xi,[t("div",bi,[t("div",wi,[t("div",ki,[n(ge,{"svg-path":s(It),class:"h-4 w-4 fill-secondary"},null,8,["svg-path"]),t("span",_i,o(A.$t("App.Campaign.CampaignForm.question"))+" "+o(f+1),1)]),n(si,{class:"h-2 p-0 m-0",color:"success",modelValue:D.value,"onUpdate:modelValue":k[1]||(k[1]=L=>D.value=L),value:V.id},null,8,["modelValue","value"])])]),t("span",null,o(s(m)(V.data.request)),1)]))),256))])):N("",!0)])):(u(),_("div",vi,[t("span",yi,o(A.$t("App.Campaign.CampaignForm.catalogNoQuestions")),1)]))]),_:1})]),_:1})]),_:1}))}});var Se=(h=>(h.TIMELIMITED="Time limited",h.EXHAUSTING="Exhausting",h.EXHAUSTINGCORRECT="Exhausting correct",h.RECURRING="Recurring",h))(Se||{});const Vi={},$i={viewBox:"0 0 150 150",xmlns:"http://www.w3.org/2000/svg"},Ii=t("path",{fill:"#c63420",d:"M53.97,0L0,20.78v49.97c0,17.87,8.62,31.75,19.04,42.25,13.04,13.14,30.21,21.17,34.15,21.17s21.38-10.01,33.69-21.13c12.03-10.87,19.92-22.52,19.92-42.3V20.78L53.97,0h0Z"},null,-1),Si=t("polygon",{fill:"#fff",points:"82.91 31.82 57.58 96.81 41.11 96.81 23.9 60.57 41.59 60.57 49.34 76.57 49.6 76.57 65.68 31.82 82.91 31.82 82.91 31.82"},null,-1),Fi=[Ii,Si];function Di(h,l){return u(),_("svg",$i,Fi)}const ha=Aa(Vi,[["render",Di]]),we=h=>(xt("data-v-f42f91ca"),h=h(),bt(),h),Ti={class:"certificate-watermark"},Li={style:{display:"flex","align-items":"center","justify-content":"space-between"}},Ui={style:{"text-align":"right","font-size":"10px","letter-spacing":"0.18em","text-transform":"uppercase",color:"#9aa3b0","line-height":"1.6"}},Pi=we(()=>t("br",null,null,-1)),Mi={style:{"text-align":"center","margin-top":"44px"}},Ei={style:{"margin-top":"22px","font-size":"12px","letter-spacing":"0.42em","text-transform":"uppercase",color:"#d73625","font-weight":"600"}},Wi=we(()=>t("div",{style:{width:"56px",height:"2px",background:"#d73625",margin:"20px auto 0"}},null,-1)),qi={style:{"text-align":"center","margin-top":"38px"}},Ni={style:{"font-size":"13px",color:"#667283","letter-spacing":"0.04em"}},Gi={style:{"font-size":"13px",color:"#667283","margin-top":"14px","max-width":"520px","margin-left":"auto","margin-right":"auto","line-height":"1.6"}},Oi={style:{"font-size":"22px","font-weight":"700",color:"#d73625","margin-top":"10px","line-height":"1.3"}},Qi={style:{display:"flex","align-items":"center","justify-content":"center",gap:"44px","margin-top":"40px"}},Ri={style:{position:"relative",width:"148px",height:"148px","flex-shrink":"0"}}
2,zi={width:"148",height:"148",viewBox:"0 0 148 148",style:{display:"block"}},Bi=["stroke-dasharray","stroke-dashoffset"],ji={style:{position:"absolute",inset:"0",display:"flex","align-items":"center","justify-content":"center"}},Hi={style:{"text-align":"center"}},Ki={style:{"font-size":"38px","font-weight":"800",color:"#232a38","line-height":"1"}},Zi=we(()=>t("span",{style:{"font-size":"20px","font-weight":"700"}},"%",-1)),Xi={style:{"font-size":"9px","letter-spacing":"0.16em","text-transform":"uppercase",color:"#9aa3b0","margin-top":"5px"}},Yi={style:{display:"flex","flex-direction":"column",gap:"14px"}},Ji={style:{display:"flex","align-items":"baseline",gap:"10px"}},en={style:{"font-size":"30px","font-weight":"800",color:"#232a38"}},an={style:{"font-size":"14px",color:"#667283"}},tn={style:{display:"inline-flex","align-items":"center",gap:"8px","align-self":"flex-start",padding:"6px 14px","border-radius":"999px",background:"rgba(76,175,80,0.1)",border:"1px solid rgba(76,175,80,0.3)"}},nn=we(()=>t("span",{style:{width:"8px",height:"8px","border-radius":"50%",background:"#4CAF50"}},null,-1)),ln={style:{"font-size":"12px","font-weight":"600",color:"#3b8f3f"}},on={style:{"margin-top":"auto",display:"flex","align-items":"flex-end","justify-content":"space-between"}},sn={style:{"text-align":"left"}},rn=we(()=>t("div",{style:{width:"200px","border-bottom":"1px solid #374151",height:"40px"}},null,-1)),dn={style:{"font-size":"11px",color:"#667283","margin-top":"8px"}},un={style:{"font-size":"11px",color:"#9aa3b0","margin-top":"2px"}},cn={style:{display:"flex","flex-direction":"column","align-items":"center",gap:"7px"}},pn={style:{width:"84px",height:"84px",border:"1px solid rgba(0,0,0,0.12)","border-radius":"8px",overflow:"hidden",display:"flex","align-items":"center","justify-content":"center",background:"#ffffff"}},mn=["src"],gn={style:{"font-size":"9px","letter-spacing":"0.12em","text-transform":"uppercase",color:"#9aa3b0","font-family":"ui-monospace,monospace"}},Ca=16,Qe=66,fn=te({__name:"CampaignCertificate",props:{certificate:{type:Object,required:!0}},setup(h,{expose:l}){const x=h,{t:m,locale:D}=ie(),F=g(null),b=d(()=>2*Math.PI*Qe),A=d(()=>Math.max(0,Math.min(100,Number(x.certificate.scorePercent??0)))),k=d(()=>b.value*(1-A.value/100)),V=Z=>{if(!Z)return"â";const c=new Date(Z);if(isNaN(c.getTime()))return"â";try{return new Intl.DateTimeFormat(D.value,{day:"numeric",month:"long",year:"numeric"}).format(c)}catch{return c.toLocaleDateString()}},f=d(()=>V(x.certificate.completionDate)),L=d(()=>V(x.certificate.validUntil)),v=g("");let r=()=>{},T=Promise.resolve();G(()=>x.certificate?.certificateId,async()=>{T=new Promise(Z=>r=Z);try{v.value=await ri.toDataURL(x.certificate.certificateId,{margin:0,width:168})}catch{v.value=""}await wt(),requestAnimationFrame(()=>r())},{immediate:!0}),l({getElement:()=>F.value,waitUntilReady:()=>T});const P={position:"relative",width:"794px",height:"1123px",background:"#ffffff",overflow:"hidden",color:"#374151",fontFamily:"Inter, sans-serif",boxShadow:"0 24px 60px rgba(0,0,0,0.14)"},$={position:"absolute",top:0,left:0,width:"100%",height:"8px",background:"linear-gradient(90deg,#d73625,#F78361)"},q={position:"absolute",bottom:0,left:0,width:"100%",height:"8px",background:"linear-gradient(90deg,#F78361,#d73625)"},O={position:"absolute",inset:"34px",border:"1px solid rgba(0,0,0,0.08)"},p={position:"absolute",inset:"41px",border:"1px solid rgba(215,54,37,0.18)"},C={position:"relative",height:"100%",boxSizing:"border-box",padding:"76px 78px 64px",display:"flex",flexDirection:"column"},w={margin:"10px 0 0",fontFamily:"'Libre Baskerville', serif",fontWeight:700,fontSize:"46px",lineHeight:"1.05",color:"#232a38",textAlign:"center",letterSpacing:"-0.01em"},z={fontFamily:"'Libre Baskerville', serif",fontSize:"40px",fontWeight:700,color:"#232a38",marginTop:"14px",lineHeight:"1.15"},R={display:"grid",gridTemplateColumns:"1fr 1fr",gap:0,marginTop:"44px",borderTop:"1px solid rgba(0,0,0,0.08)",borderLeft:"1px solid rgba(0,0,0,0.08)"},K={padding:"16px 20px",borderBottom:"1px solid rgba(0,0,0,0.08)",borderRight:"1px solid rgba(0,0,0,0.08)"},Q={fontSize:"10px",letterSpacing:"0.14em",textTransform:"uppercase",color:"#9aa3b0"},B={fontSize:"15px",fontWeight:600,color:"#374151",marginTop:"5px"};return(Z,c)=>(u(),_("div",{ref_key:"root",ref:F,class:"certificate-root",style:P},[t("div",{style:$}),t("div",{style:q}),t("div",Ti,[n(ha,{class:"certificate-watermark-shield"})]),t("div",{style:O}),t("div",{style:p}),t("div",{style:C},[t("div",Li,[n(St,{class:"certificate-wordmark"}),t("div",Ui,[W(o(s(m)("App.Campaign.Certificate.doc.kicker1")),1),Pi,W(o(s(m)("App.Campaign.Certificate.doc.kicker2")),1)])]),t("div",Mi,[n(ha,{class:"certificate-shield"}
2),t("div",Ei,o(s(m)("App.Campaign.Certificate.doc.eyebrow")),1),t("h1",{style:w},o(s(m)("App.Campaign.Certificate.doc.heading")),1),Wi]),t("div",qi,[t("div",Ni,o(s(m)("App.Campaign.Certificate.doc.certifiesThat")),1),t("div",{style:z},o(h.certificate.employeeName),1),t("div",Gi,o(s(m)("App.Campaign.Certificate.doc.completedCampaign")),1),t("div",Oi,o(h.certificate.campaignName),1)]),t("div",Qi,[t("div",Ri,[(u(),_("svg",zi,[t("circle",{cx:"74",cy:"74",r:Qe,fill:"none",stroke:"rgba(0,0,0,0.08)","stroke-width":Ca}),t("circle",{cx:"74",cy:"74",r:Qe,fill:"none",stroke:"#d73625","stroke-width":Ca,"stroke-linecap":"round","stroke-dasharray":b.value,"stroke-dashoffset":k.value,transform:"rotate(-90 74 74)"},null,8,Bi)])),t("div",ji,[t("div",Hi,[t("div",Ki,[W(o(h.certificate.scorePercent),1),Zi]),t("div",Xi,o(s(m)("App.Campaign.Certificate.doc.correctLabel")),1)])])]),t("div",Yi,[t("div",Ji,[t("span",en,o(h.certificate.correctAnswers),1),t("span",an,o(s(m)("App.Campaign.Certificate.doc.correctSuffix",{total:h.certificate.totalQuestions})),1)]),t("div",tn,[nn,t("span",ln,o(s(m)("App.Campaign.Certificate.doc.passed")),1
2)])])]),t("div",{style:R},[t("div",{style:K},[t("div",{style:Q},o(s(m)("App.Campaign.Certificate.doc.completionDate")),1),t("div",{style:B},o(f.value),1)]),t("div",{style:K},[t("div",{style:Q},o(s(m)("App.Campaign.Certificate.doc.validUntil")),1),t("div",{style:B},o(L.value),1)]),t("div",{style:K},[t("div",{style:Q},o(s(m)("App.Campaign.Certificate.doc.workArea")),1),t("div",{style:B},o(h.certificate.workArea||"â"),1)]),t("div",{style:K},[t("div",{style:Q},o(s(m)("App.Campaign.Certificate.doc.certificateId")),1),t("div",{style:ze([B,{fontVariantNumeric:"tabular-nums"}])},o(h.certificate.certificateId),5)])]),t("div",on,[t("div",sn,[rn,t("div",dn,o(s(m)("App.Campaign.Certificate.doc.issuedBy")),1),t("div",un,o(s(m)("App.Campaign.Certificate.doc.noSignature")),1)]),t("div",cn,[t("div",pn,[v.value?(u(),_("img",{key:0,src:v.value,alt:"",style:{width:"84px",height:"84px",display:"block"}},null,8,mn)):N("",!0)]),t("div",gn,o(s(m)("App.Campaign.Certificate.doc.verification")),1)])])])],512))}}),xa=Aa(fn,[["__scopeId","data-v-f42f91ca"]]);async function vn(h,l){const[{toPng:x},{jsPDF:m}]=await Promise.all([ma(()=>import("./index-BeoRn2gJ.js"),[]),ma(()=>import("./jspdf.es.min-D2IG85yn.js").then(f=>f.j),__vite__mapDeps([0,1,2,3,4]))]);if(typeof document<"u"&&document.fonts?.ready)try{await document.fonts.ready}catch{}const D=h.offsetWidth||794,F=h.offsetHeight||1123,b=await x(h,{pixelRatio:2,backgroundColor:"#ffffff",cacheBust:!0,width:D,height:F,style:{transform:"none",margin:"0",left:"0",top:"0"}}),A=new m({orientation:"portrait",unit:"mm",format:"a4"}),k=A.internal.pageSize.getWidth(),V=A.internal.pageSize.getHeight();A.addImage(b,"PNG",0,0,k,V,void 0,"FAST"),A.save(l)}function Re(h){return(h||"").normalize("NFKD").replace(/[^\p{L}\p{N}]+/gu,"_").replace(/^_+|_+$/g,"").slice(0,80)||"Zertifikat"}const yn={class:"flex items-center gap-2"},hn={class:"text-lg font-semibold"},Cn={class:"text-sm text-light-text mb-4"},xn={key:0,class:"flex justify-center items-center py-16"},bn={key:1,class:"text-error text-center py-16"},wn={key:2,class:"text-center text-light-text py-16"},kn={key:3,class:"grid grid-cols-1 md:grid-cols-2 gap-6 items-start"},_n={class:"flex flex-col gap-3 min-w-0"},An={class:"rounded-lg border overflow-y-auto",style:{"max-height":"520px"}},Vn={class:"flex flex-col items-center gap-3"},$n={key:0,"aria-hidden":"true",style:{position:"fixed",left:"-10000px",top:"0",width:"794px",height:"1123px","pointer-events":"none",overflow:"hidden"}},ba=380,In=te({__name:"CampaignCertificateDialog",props:wa({campaignId:{},campaignName:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(h){const l=h,x=ka(h,"modelValue"),{t:m,locale:D}=ie(),F=be(),{notifyError:b}=xe(),A=g(!1),k=g(!1),V=g([]),f=g(null),L=g(""),v=g(null),r=g(null),T=ba/794,I=Math.round(1123*T),P=d(()=>{const p=L.value.trim().toLowerCase();return p?V.value.filter(C=>C.employeeName.toLowerCase().includes(p)):V.value}),$=p=>
2{if(!p)return"â";const C=new Date(p);if(isNaN(C.getTime()))return"â";try{return new Intl.DateTimeFormat(D.value,{day:"numeric",month:"short",year:"numeric"}).format(C)}catch{return C.toLocaleDateString()}},q=async()=>{if(l.campaignId){A.value=!0,k.value=!1,f.value=null;try{V.value=await F.fetchCampaignCertificates(l.campaignId),f.value=V.value[0]??null}catch(p){console.error(p),k.value=!0}finally{A.value=!1}}};G(x,p=>{p&&q()});const O=async p=>{if(!v.value){v.value=p.userId,f.value=p;try{await new Promise(z=>requestAnimationFrame(()=>z(null))),await r.value?.waitUntilReady?.();const C=r.value?.getElement?.();if(!C)throw new Error("certificate element not ready");const w=`${Re(m("App.Campaign.Certificate.fileName"))}_${Re(p.employeeName)}_${Re(p.campaignName)}.pdf`;await vn(C,w)}catch(C){console.error(C),b(m(H(C,"App.Campaign.Certificate.exportError")))}finally{v.value=null}}};return(p,C)=>(u(),U(Va,{modelValue:x.value,"onUpdate:modelValue":C[3]||(C[3]=w=>x.value=w),"max-width":"900",scrollable:""},{default:y(()=>[n($a,null,{default:y(()=>[n(Ia,{class:"flex items-center justify-between gap-3 py-3"},{default:y(()=>[t("div",yn,[n(ge,{"svg-path":s(Be),class:"h-6 w-6 text-secondary"},null,8,["svg-path"]),t("span",hn,o(p.$t("App.Campaign.Certificate.dialogTitle")),1)]),n(X,{variant:"text",icon:"",onClick:C[0]||(C[0]=w=>x.value=!1)},{default:y(()=>[n(fe,{icon:s(Ft)},null,8,["icon"])]),_:1})]),_:1}),n(Ce),n(Dt,{style:{"min-height":"420px"}},{default:y(()=>[t("p",Cn,o(p.$t("App.Campaign.Certificate.subtitle")),1),A.value?(u(),_("div",xn,[n(Ke,{indeterminate:"",color:"secondary"})])):k.value?(u(),_("div",bn,o(p.$t("App.Campaign.Certificate.loadError")),1)):V.value.length?(u(),_("div",kn,[t("div",_n,[n(ce,{modelValue:L.value,"onUpdate:modelValue":C[1]||(C[1]=w=>L.value=w),label:p.$t("General.search"),"prepend-inner-icon":s(He),variant:"outlined",density:"compact",color:"secondary","hide-details":"",flat:""},null,8,["modelValue","label","prepend-inner-icon"]),t("div",An,[n(Lt,{density:"compact",class:"py-0","bg-color":"transparent"},{default:y(()=>[(u(!0),_(de,null,pe(P.value,w=>(u(),U(Ut,{key:w.userId,active:w.userId===f.value?.userId,onClick:z=>f.value=w},{append:y(()=>[n(X,{variant:"text",size:"small",icon:"",loading:v.value===w.userId,disabled:!!v.value,onClick:_a(z=>O(w),["stop"])},{default:y(()=>[n(fe,{icon:s(ga),color:"secondary"},null,8,["icon"])]),_:2},1032,["loading","disabled","onClick"])]),default:y(()=>[n(Pt,{class:"font-medium"},{default:y(()=>[W(o(w.employeeName),1)]),_:2},1024),n(Mt,null,{default:y(()=>[W(o(w.scorePercent)+"% · "+o(w.correctAnswers)+"/"+o(w.totalQuestions)+" · "+o($(w.completionDate)),1)]),_:2},1024)]),_:2},1032,["active","onClick"]))),128))]),_:1})])]),t("div",Vn,[t("div",{class:"rounded-lg overflow-hidden border bg-white",style:ze({width:ba+"px",height:s(I)+"px"})},[t("div",{style:ze({transform:`scale(${T})`,transformOrigin:"top left",width:"794px",height:"1123px"})},[f.value?(u(),U(xa,{key:"preview-"+f.value.userId,certificate:f.value},null,8,["certificate"])):N("",!0)],4)],4),f.value?(u(),U(X,{key:0,color:"secondary",style:{"background-image":"linear-gradient(64deg,#d73625,#F78361)!important"},"prepend-icon":s(ga),loading:v.value===f.value.userId,disabled:!!v.value,onClick:C[2]||(C[2]=w=>O(f.value))},{default:y(()=>[W(o(p.$t("App.Campaign.Certificate.download")),1)]),_:1},8,["prepend-icon","loading","disabled"])):N("",!0)])])):(u(),_("div",wn,[n(ge,{"svg-path":s(Tt),class:"h-10 w-10 mx-auto mb-3 opacity-60"},null,8,["svg-path"]),W(" "+o(p.$t("App.Campaign.Certificate.noneEligible")),1)]))]),_:1})]),_:1}),f.value?(u(),_("div",$n,[(u(),U(xa,{ref_key:"certRef",ref:r,key:"export-"+f.value.userId,certificate:f.value},null,8,["certificate"]))])):N("",!0)]),_:1},8,["modelValue"]))}}),Sn={class:"flex items-center justify-between border-b px-2 py-3 mb-5"},Fn={class:"flex items-center gap-5"},Dn={class:"text-lg font-semibold"},Tn={class:"flex flex-col bg-background rounded-xl gap-3 p-3"},Ln={class:"text-lg text-light-text"},Un={class:"flex flex-col gap-3 sm:flex-row md:flex-col xl:flex-row justify-between items-center"},Pn={class:"flex items-center"},Mn={key:0,class:"flex flex-col gap-3"},En={class:"flex gap-3"},Wn={class:"flex gap-3"},qn={key:1,class:"flex flex-col gap-1"},Nn={class:"text-sm text-light-text inline-flex items-center"},Gn={key:2,class:"flex gap-3"},On={key:3,class:"text-xs text-light-text"},Qn={class:"flex items-center"},Rn={class:"flex flex-col gap-8"},zn={class:"flex flex-col bg-background rounded-xl gap-3 p-3"},Bn={class:"text-lg text-light-text inline-flex items-center"},jn={class:"flex items-center gap-3"},Hn={class:"text-xs font-medium text-light-text"},Kn={class:"flex items-center gap-3"},Zn={class:"text-xs font-medium text-light-text"},Xn={class:"flex flex-col bg-background rounded-xl gap-3 p-3"},Yn={class:"text-lg text-light-text"},Jn={class:"text-xs text-light-text"},el=te({__name:"CampaignForm",props:{campaign:{type:Object,required:!0},assignedCatalogs:{type:Array,default:[]},assignedQuestions:{type:Array,default:[]},canEditCampaign:{type:Boolean,default:!0},canDeleteCampaign:{type:Boolean,default:!0}},setup(h){const l=h,x=be(),m=Ze(),D=Xe(),F=Et(),b=Fe(),{notifyError:A,notifySuccess:k,notifyWarning:V}=xe(),{t:f,locale:L}=ie(),v=kt({name:l.campaign?.name??"",typeId:l.campaign?.typeId??"",startsAt:l.campaign?.startsAt?new Date(l.campaign.startsAt):void 0,endsAt:l.campaign?.endsAt?new Date(l.campaign.endsAt):void 0,randomOrder:l.campaign?.randomOrder??!1,analysisQuestionsLimit:l.campaign?.anal
2ysisQuestionsLimit??4,certificateValidityMonths:l.campaign?.certificateValidityMonths??12}),r=me("selectedCampaign"),T=d(()=>!l.campaign?.id),I=d(()=>{const e=x.campaignTypes?.find(a=>a.name===Se.TIMELIMITED)?.id;return T?v.typeId===e:l.campaign?.typeId===e}),P=d(()=>{const e=x.campaignTypes?.find(a=>a.name===Se.RECURRING)?.id;return v.typeId===e}),$=l.campaign?.recurrence??null,q=g($?.mode??"yearly"),O=g($?.playMode??"every"),p=g($?.from?.day??1),C=g($?.from?.month??1),w=g($?.to?.day??31),z=g($?.to?.month??12),R=g($?.weekdays?[...$.weekdays]:[]),K=g($?.fromDay??1),Q=g($?.toDay??7),B=Array.from({length:31},(e,a)=>a+1),Z=d(()=>Array.from({length:12},(e,a)=>({value:a+1,title:new Intl.DateTimeFormat(L.value||void 0,{month:"long"}).format(new Date(2024,a,1))}))),c=d(()=>Array.from({length:7},(e,a)=>({value:a+1,title:new Intl.DateTimeFormat(L.value||void 0,{weekday:"short"}).format(new Date(2024,0,1+a))}))),S=d(()=>[{value:"yearly",title:f("App.Campaign.CampaignForm.recurrenceIntervalYearly")},{value:"weekly",title:f("App.Campaign.CampaignForm.recurrenceIntervalWeekly")},{value:"monthly",title:f("App.Campaign.CampaignForm.recurrenceIntervalMonthly")}]),M=d(()=>[{value:"every",title:f("App.Campaign.CampaignForm.recurrencePlayModeEvery")},{value:"once",title:f("App.Campaign.CampaignForm.recurrencePlayModeOnce")},{value:"onceCorrect",title:f("App.Campaign.CampaignForm.recurrencePlayModeOnceCorrect")}]),ne=d(()=>q.value==="weekly"?{mode:"weekly",playMode:O.value,weekdays:[...R.value].sort((e,a)=>e-a)}:q.value==="monthly"?{mode:"monthly",playMode:O.value,fromDay:K.value,toDay:Q.value}:{mode:"yearly",playMode:O.value,from:{day:p.value,month:C.value},to:{day:w.value,month:z.value}}),Je=e=>Z.value.find(a=>a.value===e)?.title??String(e),ea=d(()=>{if(q.value==="weekly"){const e=c.value.filter(a=>R.value.includes(a.value)).map(a=>a.title).join(", ");return e?f("App.Campaign.CampaignForm.recurrencePreviewWeekly",{days:e}):""}return q.value==="monthly"?f("App.Campaign.CampaignForm.recurrencePreviewMonthly",{from:K.value,to:Q.value}):f("App.Campaign.CampaignForm.recurrencePreviewYearly",{from:`${p.value}. ${Je(C.value)}`,to:`${w.value}. ${Je(z.value)}`})});G(v,()=>{I.value||(v.startsAt=void 0,v.endsAt=void 0)});const aa=g(!1),De=g(!1),Te=g(!1),Pa=d(()=>x.campaignTypes?.map(e=>({value:e.id,title:f(`App.Campaign.CampaignForm.campaignTypes.${e.name}`)}))),Ma=g([{value:!0,title:f("App.Campaign.CampaignForm.randomSequence")},{value:!1,title:f("App.Campaign.CampaignForm.orderedSequence")}]),ve=(e,a)=>e.filter(i=>!a.find(E=>E===i)),Ea=(e,a)=>a.filter(i=>!e.find(E=>E===i)),j=g(r?.value?.questions?.map(e=>e.id)??[]),ta=d(()=>r?.value?.questions?.map(e=>e.id)??[]),Wa=d(()=>ve(j.value,ta.value)??[]),qa=d(()=>Ea(j.value,ta.value)??[]),Le=d(()=>b.catalogs?.flatMap(e=>e.questions)??[]),ia=async e=>{const a=Le?.value.filter(i=>Wa.value.find(E=>E===i?.id));a&&await Promise.all(a.map(i=>x.addQuestionToCampaign(e,i)))},Na=async()=>{const e=Le?.value.filter(a=>qa.value.find(i=>i===a?.id));e&&await Promise.all(e.map(a=>x.removeQuestionFromCampaign(l.campaign,a)))},Ga=d(()=>b.catalogs?.map(e=>({title:e.name,value:e.id}))??[]),na=d(()=>b.catalogs?.filter(e=>e.questions?.some(a=>j.value.includes(a.id)))??[]),ye=g(na.value.map(e=>e.id)??[]),Oa=e=>{e.questions&&e.questions.map(a=>{j.value.includes(a.id)||j.value.push(a.id)})},Qa=e=>{e.questions&&e.questions.map(a=>{const i=j.value.findIndex(E=>a.id===E);typeof i<"u"&&j.value.splice(i,1)})};let Ue=!1;G(ye,(e,a)=>{if(Ue)return;const i=b.catalogs;if(i)if(e.length>a.length){const E=e.find(oe=>!a.includes(oe)),ue=i.find(oe=>oe.id===E);ue&&(ue.questions?.length||V(f("App.Campaign.CampaignForm.emptyCatalogWarning")),Oa(ue))}else{const E=a.find(oe=>!e.includes(oe)),ue=i.find(oe=>oe.id===E);ue&&Qa(ue)}});const Ra=d(()=>b.catalogs?.filter(e=>ye.value.some(a=>a===e.id))),la=d(()=>F.employeeSortBy),za=d(()=>Wt((m.users??[]).slice(),la.value,L.value).map(e=>({title:qt(e,la.value),value:e.id}))),Y=g(r?.value?.users?.map(e=>e.id)??[]),ke=g(r?.value?.users?.map(e=>e.id)??[]),Ba=d(()=>ve(Y.value,ke.value)??[]),ja=d(()=>ke.value.filter(e=>!Y.value.find(a=>a===e))??[]),oa=async e=>{const a=m.users?.filter(i=>Ba.value.find(E=>E===i.id));a&&await Promise.all(a.map(i=>x.addUserToCampaign(e,i)))},Ha=async()=>{const e=m.users?.filter(a=>ja.value.find(i=>i===a.id));e&&await Promise.all(e.map(a=>x.removeUserFromCampaign(l.campaign,a)))},Ka=d(()=>m.groups?.map(e=>({title:e.name,value:e.id}))??[]),J=g(r?.value?.groups?.map(e=>e.id)??[]),_e=g(r?.value?.groups?.map(e=>e.id)??[]),Za=d(()=>ve(J.value,_e.value)??[]),Xa=d(()=>_e.value.filter(e=>!J.value.find(a=>a===e))??[]),sa=async e=>{const a=m.groups?.filter(i=>Za.value.find(E=>E===i.id));a&&await Promise.all(a.map(i=>x.addGroupToCampaign(e,i)))},Ya=async()=>{const e=m.groups?.filter(a=>Xa.value.find(i=>i===a.id));e&&await Promise.all(e.map(a=>x.removeGroupFromCampaign(l.campaign,a)))},Ja=d(()=>m.workAreas?.map(e=>({title:e.name,value:e.id}))??[]),ee=g(r?.value?.workAreas?.map(e=>e.id)??[]),Ae=g(r?.value?.workAreas?.map(e=>e.id)??[]),et=d(()=>ve(ee.value,Ae.value)??[]),at=d(()=>Ae.value.filter(e=>!ee.value.find(a=>a===e))??[]),ra=async e=>{const a=m.workAreas?.filter(i=>et.value.find(E=>E===i.id));a&&await Promise.all(a.map(i=>x.addWorkAreaToCampaign(e,i)))},tt=async()=>{const e=m.workAreas?.filter(a=>at.value.find(i=>i===a.id));e&&await Promise.all(e.map(a=>x.removeWorkAreaFromCampaign(l.campaign,a)))},it=d(()=>D.workItems?.map(e=>({title:e.name,value:e.id}))??[]),ae=g(r?.value?.workItems?.map(e=>e.id)??[]),Ve=g(r?.value?.workItems?.map(e=>e.id)??[]),nt=d(()=>ve(ae.value,Ve.value)??[]),lt=d(()=>Ve.value.filter(e=>!ae.value.find(a=>a===e))??[]),da=async e=>{const a=D.workItems?.filter(i=>nt.value.find(E=>E===i.id));a&&await Promise.all(a.map(i=>x.addWorkItemToCampaign(e,i)))},ot=async()=>{const e=D.workItems?.filter(a=>lt.value.find(i=>i===a.id));e&&await Promise.all(e.map(a=>x.removeWorkItemFromCampaign(l.campaign,a)))},Pe=g(!1);G(()=>r?.value?.questions,e=>{Pe.value||!e||(Pe.value=!0,Ue=!0,j.value=e.map(a=>a.id),ye.value=na.value.map(a=>a.id),Ue=!1)});const Me=g(!1);G(()=>r?.value?.users,e=>{Me.value||!e||(Me.value=!0,Y.value=e.map(a=>a.id),ke.value=[...Y.value])});const Ee=g(!1);G(()=>r?.value?.groups,e=>{Ee.value||!e||(Ee.value=!0,J.value=e.map(a=>a.id),_e.value=[...J.value])});const We=g(!1);G(()=>r?.value?.workAreas,e=>{We.value||!e||(We.value=!0,ee.value=e.map(a=>a.id),Ae.value=[...ee.value])});const qe=g(!1);G(()=>r?.value?.workItems,e=>{qe.value||!e||(qe.value=!0,ae.value=e.map(a=>a.id),Ve.value=[...ae.value])});const st=d(()=>j.value.length>0?[]:l.campaign?.id&&!Pe.value&&(l.campaign?.questionCount??0)>0?[]:[{key:"App.Campaign.warnings.noQuestions"}]),rt=d(()=>Me.value&&Ee.value&&We.value&&qe.value),dt=d(()=>Y.value.length+J.value.length+ee.value.length+ae.value.length>0?[]:l.campaign?.id&&!rt.value&&(l.campaign?.audienceCount??(l.campaign?.audienceUserCount??0)+(l.campaign?.audienceGroupCount??0)+(l.campaign?.audienceWorkareaCount??0)+(l.campaign?.audienceWorkitemCount??0))>0?[]:[{key:"App.Campaign.warnings.noAudience"}]),ut=d(()=>
2{if(!I.value||!v.endsAt)return[];const e=new Date(v.endsAt);return e.setHours(23,59,59,999),e.getTime()<Date.now()?[{key:"App.Campaign.warnings.expired"}]:[]}),ct=d(()=>Number(v.analysisQuestionsLimit)<1?[{key:"App.Campaign.warnings.noQuestionLimit"}]:[]),pt=d(()=>P.value&&q.value==="weekly"&&!R.value.length?[{key:"App.Campaign.warnings.invalidRecurrence"}]:[]),mt=d(()=>({users:m.users?.filter(e=>Y.value.find(a=>a===e.id))??[],groups:m.groups?.filter(e=>J.value.find(a=>a===e.id))??[],questions:Le.value.filter(e=>j.value.find((a=>a===e.id))),workAreas:m.workAreas?.filter(e=>ee.value.find(a=>a===e.id))??[],workItems:D.workItems?.filter(e=>ae.value.find(a=>a===e.id))??[]})),ua=async()=>{let e;v.startsAt&&v.startsAt.setHours(0,0,0,0),v.endsAt&&v.endsAt.setHours(23,59,59,999);const a={...v,recurrence:P.value?ne.value:null};l.campaign?.id?e=await x.updateCampaign({...l.campaign,...a}):e=await x.createCampaign(a),k(f("App.Campaign.CampaignForm.saveSuccess")),r&&e&&(r.value=e)},gt=()=>{ke.value=Y.value,_e.value=J.value,Ae.value=ee.value,Ve.value=ae.value},ft=async()=>{if(P.value&&q.value==="weekly"&&!R.value.length){A(f("App.Campaign.CampaignForm.recurrenceWeekdaysRequired"));return}De.value=!0;try{T.value?(await ua(),r?.value&&await Promise.all([oa(r.value),sa(r.value),ia(r.value),ra(r.value),da(r.value)])):await Promise.all([ua(),oa(l.campaign),Ha(),sa(l.campaign),Ya(),ia(l.campaign),Na(),ra(l.campaign),tt(),da(l.campaign),ot()]),r?.value&&(x.updateCampaignExtension(r.value.id,mt.value),r.value=x.getCampaignById(r.value.id)??null),gt()}catch(e){console.error(e),A(f(H(e,"App.Campaign.CampaignForm.genericSaveError")))}finally{De.value=!1}},vt=()=>{r&&(r.value=null)},$e=g(!1),Ne=g(!1),yt=()=>$e.value=!0,ca=()=>$e.value=!1,ht=async()=>{Te.value=!0;try{await x.deleteCampaign(l.campaign),k(f("App.Campaign.CampaignForm.deleteSuccess")),r&&(r.value=null)}catch(e){console.error(e),A(f(H(e,"App.Campaign.CampaignForm.genericDeleteError")))}finally{Te.value=!1,ca()}};return(e,a)=>(u(),U(ni,{modelValue:aa.value,"onUpdate:modelValue":a[25]||(a[25]=i=>aa.value=i),class:"flex flex-col gap-6 text-light-text",onSubmit:_a(ft,["prevent"])},{default:y(()=>[t("div",Sn,[_t((u(),_("i",{onClick:vt,class:"p-1 rounded-full cursor-pointer"},[n(ge,{"svg-path":s(Nt),class:"text-error"},null,8,["svg-path"])])),[[Bt]]),t("div",Fn,[T.value?N("",!0):(u(),U(X,{key:0,variant:"text","prepend-icon":s(Be),color:"secondary",onClick:a[0]||(a[0]=i=>Ne.value=!0)},{default:y(()=>[W(o(e.$t("App.Campaign.Certificate.title")),1)]),_:1},8,["prepend-icon"])),T.value?N("",!0):(u(),U(Va,{key:1,modelValue:$e.value,"onUpdate:modelValue":a[1]||(a[1]=i=>$e.value=i),"max-width":"500px"},{activator:y(({props:i})=>[n(X,{loading:Te.value,variant:"text",disabled:!h.canDeleteCampaign},{default:y(()=>[n(fe,{icon:s(Ot),color:"error",onClick:yt},null,8,["icon"])]),_:1},8,["loading","disabled"])]),default:y(()=>[n($a,null,{default:y(()=>[n(Ia,{class:"text-h5 text-wrap"},{default:y(()=>[W(o(e.$t("App.Campaign.deleteConfirmText")),1)]),_:1}),n(Gt,null,{default:y(()=>[n(Ge),n(X,{variant:"text",onClick:ca},{default:y(()=>[W(o(e.$t("General.cancel")),1)]),_:1}),n(X,{color:"error",onClick:ht},{default:y(()=>[W(o(e.$t("General.confirm")),1)]),_:1}),n(Ge)]),_:1})]),_:1})]),_:1},8,["modelValue"])),n(X,{color:"success",loading:De.value,type:"submit",disabled:!h.canEditCampaign},{default:y(()=>[W(o(e.$t(T.value?"General.create":"General.save")),1)]),_:1},8,["loading","disabled"])])]),t("span",Dn,o(e.$t("App.Campaign.CampaignForm.title")),1),n(ce,{modelValue:v.name,"onUpdate:modelValue":a[2]||(a[2]=i=>v.name=i),label:e.$t("App.Campaign.CampaignForm.label"),"prepend-inner-icon":s(Qt),color:"secondary",variant:"outlined","hide-details":"auto"},null,8,["modelValue","label","prepend-inner-icon"]),t("div",Tn,[t("span",Ln,o(e.$t("App.Campaign.CampaignForm.baseSettings")),1),n(se,{modelValue:v.typeId,"onUpdate:modelValue":a[3]||(a[3]=i=>v.typeId=i),items:Pa.value,label:e.$t("App.Campaign.CampaignForm.type"),color:"secondary",rules:[s(li)],variant:"outlined","hide-details":"auto","bg-color":"white",required:""},null,8,["modelValue","items","label","rules"]),t("div",Un,[n(ya,{modelValue:v.startsAt,"onUpdate:modelValue":a[4]||(a[4]=i=>v.startsAt=i),label:e.$t("App.Campaign.CampaignForm.begins"),disabled:!I.value,styling:"w-full"},null,8,["modelValue","label","disabled"]),n(Ge),n(ya,{modelValue:v.endsAt,"onUpdate:modelValue":a[5]||(a[5]=i=>v.endsAt=i),label:e.$t("App.Campaign.CampaignForm.ends"),disabled:!I.value,styling:"w-full"},null,8,["modelValue","label","disabled"]),n(re,{warnings:ut.value},null,8,["warnings"])]),n(se,{modelValue:v.randomOrder,"onUpdate:modelValue":a[6]||(a[6]=i=>v.randomOrder=i),items:Ma.value,label:e.$t("App.Campaign.CampaignForm.questionSequence"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",required:""},null,8,["modelValue","items","label"]),t("div",Pn,[n(ce,{modelValue:v.anal
2ysisQuestionsLimit,"onUpdate:modelValue":a[7]||(a[7]=i=>v.analysisQuestionsLimit=i),label:e.$t("App.Campaign.CampaignForm.questionsPerAnalysis"),type:"number",color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",required:"",class:"grow"},null,8,["modelValue","label"]),n(re,{warnings:ct.value},null,8,["warnings"])]),P.value?(u(),_(de,{key:0},[n(le,{modelValue:q.value,"onUpdate:modelValue":a[8]||(a[8]=i=>q.value=i),items:S.value,label:e.$t("App.Campaign.CampaignForm.recurrenceInterval"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white"},null,8,["modelValue","items","label"]),q.value==="yearly"?(u(),_("div",Mn,[t("div",En,[n(le,{modelValue:p.value,"onUpdate:modelValue":a[9]||(a[9]=i=>p.value=i),items:s(B),label:e.$t("App.Campaign.CampaignForm.recurrenceStartDay"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"]),n(le,{modelValue:C.value,"onUpdate:modelValue":a[10]||(a[10]=i=>C.value=i),items:Z.value,label:e.$t("App.Campaign.CampaignForm.recurrenceStartMonth"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"])]),t("div",Wn,[n(le,{modelValue:w.value,"onUpdate:modelValue":a[11]||(a[11]=i=>w.value=i),items:s(B),label:e.$t("App.Campaign.CampaignForm.recurrenceEndDay"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"]),n(le,{modelValue:z.value,"onUpdate:modelValue":a[12]||(a[12]=i=>z.value=i),items:Z.value,label:e.$t("App.Campaign.CampaignForm.recurrenceEndMonth"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"])])])):q.value==="weekly"?(u(),_("div",qn,[t("span",Nn,[W(o(e.$t("App.Campaign.CampaignForm.recurrenceWeekdays"))+" ",1),n(re,{warnings:pt.value},null,8,["warnings"])]),n(di,{modelValue:R.value,"onUpdate:modelValue":a[13]||(a[13]=i=>R.value=i),multiple:"",color:"secondary"},{default:y(()=>[(u(!0),_(de,null,pe(c.value,i=>(u(),U(La,{key:i.value,value:i.value,filter:""},{default:y(()=>[W(o(i.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])):(u(),_("div",Gn,[n(le,{modelValue:K.value,"onUpdate:modelValue":a[14]||(a[14]=i=>K.value=i),items:s(B),label:e.$t("App.Campaign.CampaignForm.recurrenceMonthlyFromDay"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"]),n(le,{modelValue:Q.value,"onUpdate:modelValue":a[15]||(a[15]=i=>Q.value=i),items:s(B),label:e.$t("App.Campaign.CampaignForm.recurrenceMonthlyToDay"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white",class:"w-1/2"},null,8,["modelValue","items","label"])])),n(le,{modelValue:O.value,"onUpdate:modelValue":a[16]||(a[16]=i=>O.value=i),items:M.value,label:e.$t("App.Campaign.CampaignForm.recurrencePlayMode"),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white"},null,8,["modelValue","items","label"]),ea.value?(u(),_("span",On,o(ea.value),1)):N("",!0)],64)):N("",!0)]),t("div",Qn,[n(se,{modelValue:ye.value,"onUpdate:modelValue":a[17]||(a[17]=i=>ye.value=i),items:Ga.value,label:e.$t("App.Campaign.CampaignForm.catalogs"),color:"secondary","prepend-inner-icon":s(Oe),variant:"outlined","hide-details":"auto","bg-color":"white",multiple:"",class:"grow"},null,8,["modelValue","items","label","prepend-inner-icon"]),n(re,{warnings:st.value},null,8,["warnings"])]),t("div",Rn,[(u(!0),_(de,null,pe(Ra.value,i=>(u(),U(Ai,{catalog:i,modelValue:j.value,"onUpdate:modelValue":a[18]||(a[18]=E=>j.value=E)},null,8,["catalog","modelValue"]))),256))]),t("div",zn,[t("span",Bn,[W(o(e.$t("App.Campaign.CampaignForm.targetGroup"))+" ",1),n(re,{warnings:dt.value},null,8,["warnings"])]),n(se,{modelValue:Y.value,"onUpdate:modelValue":a[19]||(a[19]=i=>Y.value=i),items:za.value,label:e.$t("App.Campaign.CampaignForm.employees"),color:"secondary","prepend-inner-icon":s(Oe),variant:"outlined","hide-details":"auto","bg-color":"white",multiple:""},null,8,["modelValue","items","label","prepend-inner-icon"]),n(se,{modelValue:J.value,"onUpdate:modelValue":a[20]||(a[20]=i=>J.value=i),items:Ka.value,label:e.$t("App.Campaign.CampaignForm.groups"),color:"secondary","prepe
2nd-inner-icon":s(Oe),variant:"outlined","hide-details":"auto","bg-color":"white",multiple:""},null,8,["modelValue","items","label","prepend-inner-icon"]),t("div",jn,[n(Ce),t("span",Hn,o(e.$t("App.Campaign.CampaignForm.andSeparator")),1),n(Ce)]),n(se,{modelValue:ee.value,"onUpdate:modelValue":a[21]||(a[21]=i=>ee.value=i),items:Ja.value,label:e.$t("App.Campaign.CampaignForm.workAreas"),color:"secondary","prepend-inner-icon":s(Rt),variant:"outlined","hide-details":"auto","bg-color":"white",multiple:""},null,8,["modelValue","items","label","prepend-inner-icon"]),t("div",Kn,[n(Ce),t("span",Zn,o(e.$t("App.Campaign.CampaignForm.andSeparator")),1),n(Ce)]),n(se,{modelValue:ae.value,"onUpdate:modelValue":a[22]||(a[22]=i=>ae.value=i),items:it.value,label:e.$t("App.Campaign.CampaignForm.workItems"),color:"secondary","prepend-inner-icon":s(zt),variant:"outlined","hide-details":"auto","bg-color":"white",multiple:""},null,8,["modelValue","items","label","prepend-inner-icon"])]),t("div",Xn,[t("span",Yn,o(e.$t("App.Campaign.CampaignForm.certificateSection")),1),n(ce,{modelValue:v.certificateValidityMonths,"onUpdate:modelValue":a[23]||(a[23]=i=>v.certificateValidityMonths=i),modelModifiers:{number:!0},type:"number",min:"1",label:e.$t("App.Campaign.CampaignForm.certificateValidityMonths"),"prepend-inner-icon":s(Be),color:"secondary",variant:"outlined","hide-details":"auto","bg-color":"white"},null,8,["modelValue","label","prepend-inner-icon"]),t("span",Jn,o(e.$t("App.Campaign.CampaignForm.certificateValidityHint")),1)]),!T.value&&l.campaign.id?(u(),U(In,{key:0,modelValue:Ne.value,"onUpdate:modelValue":a[24]||(a[24]=i=>Ne.value=i),"campaign-id":l.campaign.id,"campaign-name":v.name||l.campaign.name},null,8,["modelValue","campaign-id","campaign-name"])):N("",!0)]),_:1},8,["modelValue"]))}}),al={class:"flex justify-between w-full"},tl={class:"flex flex-col gap-1"},il={class:"flex items-center"},nl={class:"text-light-text text-xs text-wrap"},ll=te({__name:"CampaignListItem",props:{campaign:{type:Object,required:!0}},setup(h){const l=h,x=be(),m=Fe(),{t:D}=ie(),F=me("selectedCampaign"),b=d(()=>m.catalogs?.filter(I=>I.questions?.some(P=>l.campaign?.questions.some($=>$.id===P.id)))??[]),A=I=>I.questions?.filter(P=>l.campaign.questions.some($=>$.id===P.id)),k=d(()=>F?.value?.id===l.campaign.id),V=d(()=>l.campaign?.randomOrder?D("App.Campaign.CampaignForm.randomSequence"):D("App.Campaign.CampaignForm.orderedSequence")),f=d(()=>new Date(l.campaign?.startsAt).toLocaleDateString()),L=d(()=>new Date(l.campaign?.endsAt).toLocaleDateString()),v=d(()=>x.campaignTypes?.find(I=>I.id===l.campaign?.typeId)?.name),r=d(()=>v.value==="Time limited"),T=d(()=>Ta(l.campaign,v.value));return(I,P)=>(u(),U(Sa,{value:h.campaign.id},{default:y(()=>[n(Fa,null,{actions:y(({expanded:$})=>[n(fe,{color:$?"secondary":"light-text",icon:$?s(Kt):s(Zt)},null,8,["color","icon"])]),default:y(()=>[t("div",{class:Ie(["h-10 w-10 flex items-center justify-center bg-background rounded mr-3",{"bg-secondary text-white":k.value,"text-light-text":!k.value}])},[n(ge,{"svg-path":s(jt),class:"h-5 w-5"},null,8,["svg-path"])],2),t("div",al,[t("div",tl,[t("div",il,[t("span",{class:Ie(["font-semibold pr-2 truncate md:max-lg:max-w-28",{"text-secondary":k.value}])},o(h.campaign.name),3),n(re,{warnings:T.value},null,8,["warnings"])]),t("span",nl,o(V.value),1)]),r.value?(u(),_("div",{key:0,class:Ie(["flex gap-1 pr-2 items-center text-xs",{"text-light-text":!k.value,"text-secondary":k.value}])},[n(ge,{"svg-path":s(Ht),class:"h-5 w-5"},null,8,["svg-path"]),t("span",null,o(f.value)+" - "+o(L.value),1)],2)):N("",!0)])]),_:1}),n(Da,null,{default:y(()=>[n(Ye,null,{default:y(()=>[(u(!0),_(de,null,pe(b.value,$=>(u(),U(ui,{catalog:$,questions:A($),key:$.id},null,8,["catalog","questions"]))),128))]),_:1})]),_:1})]),_:1},8,["value"]))}}),ol={key:1,class:"flex flex-col"},sl={key:2,class:"flex justify-center py-3"},rl={key:3,class:"text-center py-2 text-xs text-gray-400"},dl=te({__name:"CampaignList",setup(h){const l=be(),x=Fe(),m=Ze(),D=Xe(),{notifyError:F}=xe(),{t:b}=ie(),A=me("campaignSearch",g("")),{items:k,loading:V,isLoadingMore:f,hasMore:L,sentinel:v,reset:r}=Ua(p=>l.fetchCampaignsPage(p),{search:A}),T=me("selectedCampaign"),I=g(),P=new Set;At(()=>{T&&(I.value?T.value=k.value.find(p=>p.id===I.value):T.value=null)}),G(I,async p=>{if(!p||P.has(p))return;const C=k.value.find(w=>w.id===p);if(C){P.add(p);try{await Promise.all([l.fetchCampaignUsers(C),l.fetchCampaignGroups(C),l.fetchCampaignQuestions(C),l.fetchCampaignWorkAreas(C),l.fetchCampaignWorkItems(C)])}catch(w){P.delete(p),F(b(H(w,"App.Campaign.tableGenericLoadingError")))}}});let $=!1;const q=async p=>{if(!$){$=!0;try{await r(),P.clear(),I.value=p??void 0}catch(C){F(b(H(C,"App.Campaign.tableGenericLoadingError")))}finally{$=!1}}};G(()=>T?.value,p=>{$||(p&&p.id&&!k.value.some(C=>
2C===p)?q(p.id):!p&&I.value&&q(void 0))});const O=async()=>{const p=await x.fetchCatalogs();await Promise.all([...p.map(C=>x.fetchQuestions(C)),x.assertQuestionTypes()])};return je(async()=>{try{await Promise.all([r(),l.assertCampaignTypes(),O(),m.fetchUsers(),m.fetchGroups(),m.fetchWorkAreas(),D.fetchWorkItems()])}catch(p){F(b(H(p,"App.Campaign.tableGenericLoadingError")))}}),(p,C)=>(u(),_("div",null,[s(V)?(u(),_("div",ol,[n(he,{type:"list-item-avatar"}),n(he,{type:"list-item-avatar"}),n(he,{type:"list-item-avatar"}),n(he,{type:"list-item-avatar"}),n(he,{type:"list-item-avatar"})])):(u(),U(Ye,{key:0,modelValue:I.value,"onUpdate:modelValue":C[0]||(C[0]=w=>I.value=w),flat:""},{default:y(()=>[(u(!0),_(de,null,pe(s(k),w=>(u(),U(ll,{campaign:w,key:w.id},null,8,["campaign"]))),128))]),_:1},8,["modelValue"])),t("div",{ref_key:"sentinel",ref:v,class:"h-1"},null,512),s(f)?(u(),_("div",sl,[n(Ke,{indeterminate:"",size:"24",color:"primary"})])):!s(V)&&!s(L)&&s(k).length>0?(u(),_("div",rl,o(p.$t("General.allLoaded")),1)):N("",!0)]))}}),ul={class:"inline-flex items-center font-semibold"},cl={key:0,class:"text-sm"},pl={key:1,class:"text-gray-400"},ml={key:0,class:"flex justify-center py-3"},gl={key:1,class:"text-center py-2 text-xs text-gray-400"},fl=te({__name:"CampaignTable",setup(h){const l=be(),x=Fe(),m=Ze(),D=Xe(),{notifyError:F}=xe(),{t:b,locale:A}=ie(),k=me("campaignSearch",g("")),{items:V,total:f,loading:L,isLoadingMore:v,hasMore:r,sentinel:T,reset:I}=Ua(c=>l.fetchCampaignsPage(c),{search:k}),P=g([]),$=d(()=>[{title:b("General.name"),align:"start",key:"name"},{title:b("App.Campaign.CampaignForm.type"),align:"start",key:"typeLabel"},{title:b("App.Campaign.tablePeriod"),align:"start",key:"period"},{title:b("App.Campaign.tableQuestions"),align:"start",key:"questionCount"},{title:b("App.Campaign.CampaignForm.targetGroup"),align:"start",key:"audienceTotal"},{title:b("App.Campaign.CampaignForm.questionSequence"),align:"start",key:"orderLabel"}]),q=d(()=>new Map((l.campaignTypes??[]).map(c=>[c.id,c.name]))),O=d(()=>V.value.map(c=>{const S=q.value.get(c.typeId),M=S===Se.TIMELIMITED,ne=c.audienceCount??(c.audienceUserCount??0)+(c.audienceGroupCount??0)+(c.audienceWorkareaCount??0)+(c.audienceWorkitemCount??0);return{...c,typeLabel:S?b(`App.Campaign.CampaignForm.campaignTypes.${S}`):"â",period:M&&c.startsAt&&c.endsAt?`${new Date(c.startsAt).toLocaleDateString()} â ${new Date(c.endsAt).toLocaleDateString()}`:"",questionCount:c.questionCount??0,audienceTotal:ne,orderLabel:c.randomOrder?b("App.Campaign.CampaignForm.randomSequence"):b("App.Campaign.CampaignForm.orderedSequence"),warnings:Ta(c,S)}})),p=d(()=>ci(O.value,P.value)),C=me("selectedCampaign"),w=g([]),z=(c,S)=>{if(c?.target?.closest?.("button, a, input, .v-selection-control"))return;const ne=S?.item?.id??S?.item?.raw?.id??S?.internalItem?.raw?.id??S?.raw?.id??S?.value??S?.internalItem?.value;ne&&(w.value=[String(ne)])},R=new Set,K=async c=>{if(!(!c.id||R.has(c.id))){R.add(c.id);try{await Promise.all([l.fetchCampaignUsers(c),l.fetchCampaignGroups(c),l.fetchCampaignQuestions(c),l.fetchCampaignWorkAreas(c),l.fetchCampaignWorkItems(c)])}catch(S){R.delete(c.id),F(b(H(S,"App.Campaign.tableGenericLoadingError")))}}};G(w,async c=>{if(!C)return;const S=c?.[0];if(!S){C.value=null;return}const M=V.value.find(ne=>ne.id===S)??null;C.value=M,M&&await K(M)});let Q=!1;const B=async c=>{if(!Q){Q=!0;try{await I(),R.clear(),w.value=c?[c]:[]}catch(S){F(b(H(S,"App.Campaign.tableGenericLoadingError")))}finally{Q=!1}}};G(()=>C?.value,c=>{Q||(c&&c.id&&!V.value.some(S=>S===c)?B(c.id):!c&&w.value.length&&B(void 0))});const Z=async()=>{const c=await x.fetchCatalogs();await Promise.all([...c.map(S=>x.fetchQuestions(S)),x.assertQuestionTypes()])};return je(async()=>{try{await Promise.all([I(),l.assertCampaignTypes(),Z(),m.fetchUsers(),m.fetchGroups(),m.fetchWorkAreas(),D.fetchWorkItems()])}catch(c){F(b(H(c,"App.Campaign.tableGenericLoadingError")))}}),(c,S)=>(u(),_("div",null,[(u(),U(pi,{headers:$.value,items:p.value,"items-length":s(f),loading:s(L),"sort-by":P.value,"onUpdate:sortBy":S[0]||(S[0]=M=>P.value=M),"loading-text":c.$t("App.Campaign.tableLoadingText"),hover:!0,"no-data-text":c.$t("App.Campaign.tableNoDataText"),"show-select":"","select-strategy":"single","item-value":"id",modelValue:w.value,"onUpdate:modelValue":S[1]||(S[1]=M=>w.value=M),key:s(A),"onClick:row":z,"hide-default-footer":""},{"item.name":y(({item:M})=>[t("span",ul,[W(o(M.name)+" ",1),n(re,{warnings:M.warnings},null,8,["warnings"])])]),"item.typeLabel":y(({item:M})=>[n(La,{color:"secondary",variant:"outlined"},{default:y(()=>[W(o(M.typeLabel),1)]),_:2},1024)]),"item.period":y(({item:M})=>
2[M.period?(u(),_("span",cl,o(M.period),1)):(u(),_("span",pl,"â"))]),"item.audienceTotal":y(({item:M})=>[t("span",null,o(M.audienceTotal),1)]),bottom:y(()=>[t("div",{ref_key:"sentinel",ref:T,class:"h-1"},null,512),s(v)?(u(),_("div",ml,[n(Ke,{indeterminate:"",size:"24",color:"primary"})])):!s(L)&&!s(r)&&s(V).length>0?(u(),_("div",gl,o(c.$t("General.allLoaded")),1)):N("",!0)]),_:1},8,["headers","items","items-length","loading","sort-by","loading-text","no-data-text","modelValue"]))]))}}),vl={class:"flex items-center justify-between border-b px-2 py-3 mb-2"},yl={class:"flex items-center gap-3"},Xl=te({__name:"Campaign",setup(h){const{t:l,locale:x}=ie(),{notifyError:m}=xe(),D=Xt(),F=g(!1),b=g(null);pa("selectedCampaign",b);const A=g("");pa("campaignSearch",A);const k=g(Yt()??"table");G(k,r=>{ii(r),b.value=null}),G(b,r=>setTimeout(()=>F.value=!!r,300));const V=()=>{b.value={name:""}};je(async()=>{try{f.value=await D.hasPermission("enterprise","can_create_campaigns","operational supervisor")}catch(r){m(l(H(r,"App.rolesRights.permissionCheckError")))}try{L.value=await D.hasPermission("enterprise","can_edit_campaigns","operational supervisor")}catch(r){m(l(H(r,"App.rolesRights.permissionCheckError")))}try{v.value=await D.hasPermission("enterprise","can_delete_campaigns","operational supervisor")}catch(r){m(l(H(r,"App.rolesRights.permissionCheckError")))}});const f=g(!1),L=g(!1),v=g(!1);return(r,T)=>(u(),_("div",{class:Ie(["grid grid-cols-1 gap-4",{"md:grid-cols-2":F.value}])},[n(fa,null,{default:y(()=>[t("div",vl,[n(X,{color:"secondary",style:{"background-image":"linear-gradient(64deg,#d73625,#F78361)!important"},disabled:!f.value||!!b.value,onClick:V,"data-tour":"campaign-new","prepend-icon":s(Jt)},{default:y(()=>[W(o(r.$t("App.Campaign.newCampaign")),1)]),_:1},8,["disabled","prepend-icon"]),t("div",yl,[b.value?N("",!0):(u(),U(ce,{key:0,modelValue:A.value,"onUpdate:modelValue":T[0]||(T[0]=I=>A.value=I),label:r.$t("General.search"),"prepend-inner-icon":s(He),variant:"outlined",density:"compact",color:"secondary",flat:"","hide-details":"",style:{"max-width":"320px","min-width":"180px"}},null,8,["modelValue","label","prepend-inner-icon"])),n(ei,{modelValue:k.value,"onUpdate:modelValue":T[1]||(T[1]=I=>k.value=I),mandatory:"",density:"comfortable",color:"secondary",variant:"outlined",divided:""},{default:y(()=>[n(X,{value:"table",size:"small",icon:""},{default:y(()=>[n(fe,{icon:s(ai)},null,8,["icon"]),n(va,{activator:"parent",location:"top"},{default:y(()=>[W(o(r.$t("App.Campaign.viewTable")),1)]),_:1})]),_:1}),n(X,{value:"list",size:"small",icon:""},{default:y(()=>[n(fe,{icon:s(ti)},null,8,["icon"]),n(va,{activator:"parent",location:"top"},{default:y(()=>[W(o(r.$t("App.Campaign.viewList")),1)]),_:1})]),_:1})]),_:1},8,["modelValue"])])]),k.value==="list"?(u(),U(dl,{key:0,class:"max-h-64 md:max-h-max overflow-auto","data-tour":"campaign-list"})):(u(),U(fl,{key:1,"data-tour":"campaign-list"}))]),_:1}),n(Vt,{"enter-from-class":"opacity-0 transform translate-x-10","enter-active-class":"transition-all duration-300 ease-in","enter-to-class":"opacity-100","leave-active-class":"transition-all translate-x-10 duration-300 ease-out","leave-to-class":"opacity-0"},{default:y(()=>[b.value?(u(),U(fa,{key:0,class:"sticky top-16 self-start"},{default:y(()=>[b.value?(u(),U(el,{campaign:b.value,key:b.value?.id,"can-edit-campaign":L.value,"can-delete-campaign":v.value},null,8,["campaign","can-edit-campaign","can-delete-campaign"])):N("",!0)]),_:1})):N("",!0)]),_:1})],2))}});export{Xl 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.