1import{h as he,c as ne,f as i,r as it,w as Ve,P as ke,K as r,M as l,n as t,a4 as ee,a7 as Fe,$ as s,L as e,a0 as a,_ as ae,u as A,F as oe,a1 as p,a6 as ce,O as Re,a2 as Ie,a3 as Te,x as Ye,q as Ee,ac as It,aJ as Tt,W as Ut,R as zt}from"./vue-datepicker-CpIdsRIT.js";import{aP as gt,aQ as je,a as Ae,b as we,u as Mt,r as Nt,o as ht,n as ue,a$ as bt,V as R,Z as $t,f as At,j as Ot,m as qt,g as ut,h as pt,i as Kt,e as Ft,aR as pe,D as ve,aS as me,C as _e,w as $e,aT as ye,aU as We,aO as Bt,t as Ue,l as Gt,b$ as Qt,eh as jt,_ as be,a0 as Ne,ei as Xe,ej as et,ak as nt,ds as Ht,$ as vt,ae as mt,b0 as kt,bC as ot,bf as Zt,eg as wt,b9 as St,ea as Wt,eb as Yt,ec as Jt,ed as Xt,ee as ea,bY as ta,ef as xt,I as aa,ek as sa,el as la,em as Ct,en as st,eo as ia,aK as na,a1 as _t,ep as oa,eq as ra,q as rt,er as da,es as ca,aX as ua,ah as pa,ai as va,aG as ma,et as _a,eu as fa,ev as ft,bb as ya,ew as ga,ex as ha,ey as ba,ez as $a,eA as Aa,a2 as ka,aL as wa,ac as Sa,eB as xa,d4 as Vt,bH as Ca,ap as Va,eC as Ea,aC as Pa,eD as Da,eE as La,eF as Ra,eG as Ia,eH as Ta,as as Ua}from"./index-o4dhNVJj.js";import{r as ie}from"./ResolveErrorCode-uRcKEtjn.js";import{V as Me,r as Ge,v as za,e as Ma}from"./VForm-DE7HWpqe.js";import{u as Na}from"./userStore-DfNIKqll.js";import{b as Oa}from"./countryOptions-CPO6Y5OC.js";import{V as re}from"./VTextField-DmCcBAfM.js";import{V as qa}from"./VAutocomplete-CR3sph-Q.js";import{V as Ke}from"./VSelect-BUMCLhrk.js";import{_ as ze}from"./SwitchInput.vue_vue_type_script_setup_true_lang-CrQyeYt2.js";import{V as Se}from"./VSkeletonLoader-A2vQBjLT.js";import{u as Ka}from"./catalogStore-C1C8k41I.js";import{a as Fa,u as Ba}from"./RiskLevelComposable-Bgkjfx0u.js";import{V as De}from"./VChip-0TTkSTXl.js";import{V as Je}from"./VCheckbox-nrSLyQgk.js";import{V as Pe}from"./filter-t-MjLniW.js";import{l as Ga}from"./index-xFuvys3v.js";import{C as Qa}from"./DocsLinks-BDyxoLjS.js";import{V as Et}from"./VTable-BZ5u1G2Z.js";import{m as Pt}from"./datefns-BAflKSlV.js";import{u as ja}from"./cockpitStore-DiDc4tEe.js";import{_ as yt}from"./VuetifyDatePicker.vue_vue_type_script_setup_true_lang-Dqx1YbGk.js";import{V as qe}from"./VSwitch-DIBNbKCn.js";import"./VCheckboxBtn-gsiJdvrK.js";import"./VSheet-bqSyqGdm.js";const Ha=gt("company",{state:()=>({company:null}),actions:{async fetchCompany(){return this.company=await je().apiService.request("GET","/company"),this.company},async deleteCompany(){await je().apiService.request("DELETE","/company"),this.company=null},async updateCompany(V){const _={vatId:V.vatId,name:V.name,city:V.city,country:V.country,zipCode:V.zipCode,street:V.street,houseNumber:V.houseNumber,invoiceEmail:V.invoiceEmail,ownerUserId:V.ownerUserId??null};return await je().apiService.request("PUT","company",_),this.company=V,this.company}}}),dt=V=>(Ie("data-v-5b519127"),V=V(),Te(),V),Za={class:"settings-panel"},Wa={class:"settings-card"},Ya={class:"settings-card__header"},Ja={class:"settings-card__header-label"},Xa={class:"flex items-center gap-2"},es={class:"settings-card__section"},ts={class:"settings-form-grid"},as=dt(()=>e("div",{class:"settings-card__divider"},null,-1)),ss={class:"settings-card__section"},ls={class:"settings-card__section-label"},is=dt(()=>e("div",{class:"settings-card__divider"},null,-1)),ns={class:"settings-card__section"},os=dt(()=>e("div",{class:"settings-card__section-label"},"Anschrift",-1)),rs={class:"settings-form-grid"},ds={key:0,class:"settings-card settings-card--danger"},cs={class:"settings-card__header"},us={class:"settings-card__header-label settings-card__header-label--danger"},ps={class:"settings-card__section"},vs={class:"danger-description"},ms={class:"danger-description"},_s={class:"text-sm mb-2"},fs={class:"text-sm font-semibold mb-3 text-error"},ys={class:"delete-steps"},gs={class:"delete-step__icon"},hs={class:"delete-step__label"},bs=he({__name:"CompanySettings",props:{canManageCompanySettings:{type:Boolean}},setup(V){const _=V,{notifyError:y,notifySuccess:I}=Ae(),{t:c,locale:v}=we(),x=Ha(),F=Na(),f=Mt(),o=Nt();ht();const m=ne(()=>Oa(String(v.value||"en"))),Q=ne(()=>(F.users??[]).filter(g=>g.enabled).map(g=>({title:`${g.firstName} ${g.lastName}`,value:g.id})).sort((g,L)=>g.title.localeCompare(L.title))),j=ne(()=>!!W.value?.ownerUserId&&W.value.ownerUserId===f.currentUserId),K=i(!1),U=i(""),T=i(!1),z=i(0),B=ne(()=>o.memberships.find(g=>g.clientId!==o.selectedTenantId)??null),G=ne(()=>B.value?c("App.Company.deleteDialogOtherCompaniesHint",{company:B.value.companyName}):c("App.Company.deleteDialogLastCompanyHint")),te=ne(()=>[c("App.Company.deleteStepData"),c("App.Company.deleteStepUsers"),c("App.Company.deleteStepStripe"),B.value?c("App.Company.deleteStepSwitch",{company:B.value.companyName}):c("App.Company.deleteStepSignOut")]),D=i(te.value.map(()=>({done:!1,active:!1}))),H=ne(()=>U.value.trim()===(W.value?.name??"").trim()),O=()=>{U.value="",K.value=!0},se=()=>{K.value=!1,U.value=""},k=()=>{D.value=te.value.map(()=>({done:!1,active:!1})),z.value=0},q=async()=>
1{if(!H.value)return;K.value=!1,U.value="",k(),T.value=!0;const g=[0,1200,2800,4200],L=[];g.forEach((M,N)=>{L.push(setTimeout(()=>{N>0&&(D.value[N-1].active=!1,D.value[N-1].done=!0),D.value[N].active=!0,z.value=Math.round(N/D.value.length*90)},M))});const n=B.value;try{if(await x.deleteCompany(),L.forEach(M=>clearTimeout(M)),D.value.forEach(M=>{M.active=!1,M.done=!0}),z.value=100,await new Promise(M=>setTimeout(M,900)),n){o.selectTenant(n.clientId),jt(c("App.Company.deleteSuccessSwitched",{company:n.companyName})),window.location.href="/cockpit";return}await f.signOut()}catch(M){L.forEach(de=>clearTimeout(de)),T.value=!1,k();const N=M?.response?.data?.code??M?.code;y(c(N==="ActiveSubscription"?"App.Company.deleteErrorActiveSubscription":N==="Forbidden"?"App.Company.deleteErrorForbidden":"App.Company.deleteErrorGeneric"))}},W=ne(()=>x.company),w=i(!1),E=ne(()=>_.canManageCompanySettings&&w.value),C=it({name:"",vatId:"",city:"",country:"DE",zipCode:"",street:"",houseNumber:"",invoiceEmail:"",ownerUserId:null}),h=g=>{g&&(C.name=g.name||"",C.vatId=g.vatId||"",C.city=g.city,C.country=g.country||"DE",C.zipCode=g.zipCode,C.street=g.street,C.house
1Number=g.houseNumber,C.invoiceEmail=g.invoiceEmail,C.ownerUserId=g.ownerUserId??null)};Ve(W,g=>{w.value||h(g)},{immediate:!0});const Y=i(!1),u=i(!1),X=()=>{_.canManageCompanySettings&&(w.value=!0)},J=()=>{h(W.value),w.value=!1},P=async()=>{if(E.value){u.value=!0;try{await x.updateCompany({...C}),I(c("App.Company.saveSuccess")),w.value=!1}catch(g){y(c(ie(g,"App.Company.genericSaveError")))}u.value=!1}};return ke(async()=>{try{await Promise.all([x.fetchCompany(),F.fetchUsers()])}catch(g){y(c(ie(g,"App.Company.genericLoadError")))}}),(g,L)=>(l(),r("div",Za,[t(Me,{modelValue:Y.value,"onUpdate:modelValue":L[9]||(L[9]=n=>Y.value=n),onSubmit:Fe(P,["prevent"])},{default:s(()=>[e("div",Wa,[e("div",Ya,[e("div",Ja,a(g.$t("Auth.Register.company")),1),e("div",Xa,[w.value?(l(),r(oe,{key:1},[t(R,{variant:"text",size:"small","prepend-icon":A($t),disabled:u.value,onClick:J},{default:s(()=>[p(a(g.$t("General.cancel")),1)]),_:1},8,["prepend-icon","disabled"]),t(R,{loading:u.value,disabled:!Y.value||!E.value,type:"submit",size:"small",class:"save-btn"},{default:s(()=>[p(a(g.$t("General.save")),1)]),_:1},8,["loading","disabled"])],64)):(l(),ae(R,{key:0,icon:"",size:"small",variant:"text",disabled:!g.canManageCompanySettings,title:g.$t("General.edit"),onClick:X},{default:s(()=>[t(ue,{icon:A(bt)},null,8,["icon"])]),_:1},8,["disabled","title"]))])]),e("div",es,[e("div",ts,[t(re,{modelValue:C.name,"onUpdate:modelValue":L[0]||(L[0]=n=>C.name=n),label:g.$t("Auth.Register.company"),disabled:!E.value,type:"text",color:"secondary","prepend-inner-icon":A(At),rules:[A(Ge)],variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon","rules"]),t(re,{modelValue:C.vatId,"onUpdate:modelValue":L[1]||(L[1]=n=>C.vatId=n),label:g.$t("Auth.Register.vatId"),disabled:!E.value,type:"text",color:"secondary","prepend-inner-icon":A(Ot),rules:[A(Ge),A(za)],variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon","rules"])])]),as,e("div",ss,[e("div",ls,a(g.$t("App.Company.ownerSection")),1),t(qa,{modelValue:C.ownerUserId,"onUpdate:modelValue":L[2]||(L[2]=n=>C.ownerUserId=n),items:Q.value,label:g.$t("App.Company.ownerLabel"),disabled:!E.value,color:"secondary","prepend-inner-icon":A(qt),variant:"outlined","hide-details":"auto",density:"comfortable",clearable:""},null,8,["modelValue","items","label","disabled","prepend-inner-icon"])]),is,e("div",ns,[os,e("div",rs,[t(re,{modelValue:C.street,"onUpdate:modelValue":L[3]||(L[3]=n=>C.street=n),label:g.$t("Auth.Register.street"),type:"text",disabled:!E.value,color:"secondary","prepend-inner-icon":A(ut),variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon"]),t(re,{modelValue:C.houseNumber,"onUpdate:modelValue":L[4]||(L[4]=n=>C.houseNumber=n),label:g.$t("Auth.Register.houseNumber"),disabled:!E.value,type:"text",color:"secondary","prepend-inner-icon":A(ut),rules:[A(Ge)],variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon","rules"]),t(re,{modelValue:C.zipCode,"onUpdate:modelValue":L[5]||(L[5]=n=>C.zipCode=n),label:g.$t("Auth.Register.zipCode"),type:"text",disabled:!E.value,color:"secondary","prepend-inner-icon":A(pt),variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon"]),t(re,{modelValue:C.city,"onUpdate:modelValue":L[6]||(L[6]=n=>C.city=n),label:g.$t("Auth.Register.city"),type:"text",disabled:!E.value,color:"secondary","prepend-inner-icon":A(pt),variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon"]),t(Ke,{modelValue:C.country,"onUpdate:modelValue":L[7]||(L[7]=n=>C.country=n),label:g.$t("Auth.Register.country"),items:m.value,"item-title":"title","item-value":"value",disabled:!E.value,color:"secondary","prepend-inner-icon":A(Kt),rules:[A(Ge)],variant:"outlined","hide-details":"auto",density:"comfortable"}
1,null,8,["modelValue","label","items","disabled","prepend-inner-icon","rules"]),t(re,{modelValue:C.invoiceEmail,"onUpdate:modelValue":L[8]||(L[8]=n=>C.invoiceEmail=n),label:g.$t("Auth.Register.email"),type:"email",disabled:!E.value,color:"secondary","prepend-inner-icon":A(Ft),rules:[A(Ge),A(Ma)],variant:"outlined","hide-details":"auto",density:"comfortable"},null,8,["modelValue","label","disabled","prepend-inner-icon","rules"])])])])]),_:1},8,["modelValue"]),j.value?(l(),r("div",ds,[e("div",cs,[e("div",us,a(g.$t("App.Company.deleteSection")),1)]),e("div",ps,[e("p",vs,a(g.$t("App.Company.deleteDialogWarning")),1),e("p",ms,a(G.value),1),e("div",null,[t(R,{color:"error",variant:"outlined",onClick:O},{default:s(()=>[p(a(g.$t("App.Company.deleteBtn")),1)]),_:1})])])])):ee("",!0),t(pe,{modelValue:K.value,"onUpdate:modelValue":L[11]||(L[11]=n=>K.value=n),"max-width":"520px",persistent:""},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-h6 pa-6 pb-2"},{default:s(()=>[p(a(g.$t("App.Company.deleteDialogTitle")),1)]),_:1}),t(_e,{class:"pa-6 pt-2 flex flex-col gap-4"},{default:s(()=>[t($e,{type:"error",variant:"tonal",class:"mb-2"},{default:s(()=>[p(a(g.$t("App.Company.deleteDialogWarning")),1)]),_:1}),t($e,{type:"warning",variant:"tonal",class:"mb-2"},{default:s(()=>[p(a(g.$t("App.Company.deleteDialogStripeHint")),1)]),_:1}),t($e,{type:B.value?"info":"error",variant:"tonal",class:"mb-2"},{default:s(()=>[p(a(G.value),1)]),_:1},8,["type"]),e("div",null,[e("p",_s,a(g.$t("App.Company.deleteDialogConfirmLabel")),1),e("p",fs,a(W.value?.name),1),t(re,{modelValue:U.value,"onUpdate:modelValue":L[10]||(L[10]=n=>U.value=n),placeholder:g.$t("App.Company.deleteDialogConfirmPlaceholder"),variant:"outlined",density:"comfortable","hide-details":"",autofocus:""},null,8,["modelValue","placeholder"])])]),_:1}),t(ye,{class:"pa-6 pt-0"},{default:s(()=>[t(We),t(R,{variant:"text",onClick:se},{default:s(()=>[p(a(g.$t("General.cancel")),1)]),_:1}),t(R,{color:"error",disabled:!H.value,onClick:q},{default:s(()=>[p(a(g.$t("App.Company.deleteDialogConfirmBtn")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:T.value,"onUpdate:modelValue":L[12]||(L[12]=n=>T.value=n),"max-width":"480px",persistent:""},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-h6 pa-6 pb-3"},{default:s(()=>[p(a(g.$t("App.Company.deleteProgressTitle")),1)]),_:1}),t(_e,{class:"pa-6 pt-0"},{default:s(()=>[t(Bt,{"model-value":z.value,color:"error",height:"6",rounded:"",class:"mb-6"},null,8,["model-value"]),e("div",ys,[(l(!0),r(oe,null,ce(te.value,(n,M)=>(l(),r("div",{key:M,class:Re(["delete-step",{"delete-step--done":D.value[M]?.done,"delete-step--active":D.value[M]?.active,"delete-step--pending":!D.value[M]?.done&&!D.value[M]?.active}])},[e("div",gs,[D.value[M]?.active?(l(),ae(Ue,{key:0,indeterminate:"",size:"18",width:"2",color:"error"})):D.value[M]?.done?(l(),ae(ue,{key:1,color:"success",size:"18"},{default:s(()=>[p(a(A(Gt)),1)]),_:1})):(l(),ae(ue,{key:2,color:"grey-lighten-1",size:"18"},{default:s(()=>[p(a(A(Qt)),1)]),_:1}))]),e("span",hs,a(n),1)],2))),128))])]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),$s=be(bs,[["__scopeId","data-v-5b519127"]]),As={class:"settings-panel"},ks={key:0,class:"settings-card"},ws={key:1,class:"settings-card"},Ss={class:"settings-row"},xs={class:"settings-row__body"},Cs={class:"settings-row__label"},Vs={class:"settings-row__desc"},Es={class:"settings-row"},Ps={class:"settings-row__body"},Ds={class:"settings-row__label"},Ls={class:"settings-row__desc"},Rs={class:"settings-row settings-row--last"},Is={class:"settings-row__body"},Ts={class:"settings-row__label"},Us={class:"settings-row__desc"},zs=he({__name:"ActionRequiredSettings",setup(V){const _=Ne(),{notifyError:y,notifySuccess:I}=Ae(),{t:c}=we(),v=ne(()=>_.actionRequired),x=i(!0),F=async f=>{try{await _.updateActionRequiredSetting(f,v.value[f]),I(c("App.actionRequired.saved"))}catch{y(c("App.actionRequired.savedError"))}};return ke(async()=>{x.value=!0;try{await _.fetchActionRequiredSettings()}catch(f){y(c(ie(f,"App.actionRequired.loadError")))}finally{x.value=!1}}),(f,o)=>(l(),r("div",As,[x.value?(l(),r("div",ks,[t(Se,{type:"list-item-two-l
1ine, divider, list-item-two-line, divider, list-item-two-line"})])):(l(),r("div",ws,[e("div",Ss,[e("div",xs,[e("div",Cs,a(f.$t("App.actionRequired.requireNoteLabel")),1),e("div",Vs,a(f.$t("App.actionRequired.requireNoteTooltip")),1)]),t(ze,{modelValue:v.value.requireNote,"onUpdate:modelValue":o[0]||(o[0]=m=>v.value.requireNote=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[1]||(o[1]=m=>F("requireNote"))},null,8,["modelValue"])]),e("div",Es,[e("div",Ps,[e("div",Ds,a(f.$t("App.actionRequired.requireImageLabel")),1),e("div",Ls,a(f.$t("App.actionRequired.requireImageTooltip")),1)]),t(ze,{modelValue:v.value.requireImage,"onUpdate:modelValue":o[2]||(o[2]=m=>v.value.requireImage=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[3]||(o[3]=m=>F("requireImage"))},null,8,["modelValue"])]),e("div",Rs,[e("div",Is,[e("div",Ts,a(f.$t("App.actionRequired.requireStopLabel")),1),e("div",Us,a(f.$t("App.actionRequired.requireStopTooltip")),1)]),t(ze,{modelValue:v.value.requireStop,"onUpdate:modelValue":o[4]||(o[4]=m=>v.value.requireStop=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[5]||(o[5]=m=>F("requireStop"))},null,8,["modelValue"])])]))]))}}),Ms=be(zs,[["__scopeId","data-v-393e1134"]]),Ns={class:"settings-panel"},Os={key:0,class:"settings-card"},qs={key:1,class:"settings-card"},Ks={class:"settings-row"},Fs={class:"settings-row__body"},Bs={class:"settings-row__label"},Gs={class:"settings-row__desc"},Qs={class:"settings-row"},js={class:"settings-row__body"},Hs={class:"settings-row__label"},Zs={class:"settings-row__desc"},Ws={class:"settings-row settings-row--last"},Ys={class:"settings-row__body"},Js={class:"settings-row__label"},Xs={class:"settings-row__desc"},el=he({__name:"PrivacySettings",setup(V){const _=Ne(),{notifyError:y,notifySuccess:I}=Ae(),{t:c}=we(),v=ne(()=>_.privacy),x=i(!0),F=async f=>{try{await _.updatePrivacySetting(f,v.value[f]),I(c("App.privacy.saved"))}catch{y(c("App.privacy.savedError"))}};return ke(async()=>{x.value=!0;try{await _.fetchPrivacySettings()}catch(f){y(c(ie(f,"App.privacy.loadError")))}finally{x.value=!1}}),(f,o)=>(l(),r("div",Ns,[x.value?(l(),r("div",Os,[t(Se,{type:"list-item-two-line, divider, list-item-two-line, divider, list-item-two-line"})])):(l(),r("div",qs,[e("div",Ks,[e("div",Fs,[e("div",Bs,a(f.$t("App.privacy.maskCockpitLabel")),1),e("div",Gs,a(f.$t("App.privacy.maskCockpitTooltip")),1)]),t(ze,{modelValue:v.value.employeeNameMaskedCockpit,"onUpdate:modelValue":o[0]||(o[0]=m=>v.value.employeeNameMaskedCockpit=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[1]||(o[1]=m=>F("employeeNameMaskedCockpit"))},null,8,["modelValue"])]),e("div",Qs,[e("div",js,[e("div",Hs,a(f.$t("App.privacy.maskActionLabel")),1),e("div",Zs,a(f.$t("App.privacy.maskActionTooltip")),1)]),t(ze,{modelValue:v.value.employeeNameMaskedAction,"onUpdate:modelValue":o[2]||(o[2]=m=>v.value.employeeNameMaskedAction=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[3]||(o[3]=m=>F("employeeNameMaskedAction"))},null,8,["modelValue"])]),e("div",Ws,[e("div",Ys,[e("div",Js,a(f.$t("App.privacy.maskAnalysisLabel")),1),e("div",Xs,a(f.$t("App.privacy.maskAnalysisTooltip")),1)]),t(ze,{modelValue:v.value.employeeNameMaskedAnalysis,"onUpdate:modelValue":o[4]||(o[4]=m=>v.value.employeeNameMaskedAnalysis=m),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:o[5]||(o[5]=m=>F("employeeNameMaskedAnalysis"))},null,8,["modelValue"])])]))]))}}),tl=be(el,[["__scopeId","data-v-27775a13"]]),al=V=>(Ie("data-v-2393e7d9"),V=V(),Te(),V),sl={class:"settings-panel"},ll={class:"settings-card"},il={class:"settings-card__header"},nl={class:"settings-card__header-title"},ol={class:"settings-card__header-desc"},rl={class:"settings-card__section"},dl=al(()=>e("div",{class:"settings-card__divider"},null,-1)),cl={class:"settings-card__list"},ul={key:0,class:"pa-4"},pl={key:0},vl={class:"list-row__name"},ml={class:"list-row__actions"},_l={key:1,class:"empty-state"},fl=he({__name:"QuestionTypesSettings",setup(V){const _=Ka(),{notifyError:y,notifySuccess:I}=Ae(),{t:c,te:v}=we(),x=i(!1),F=i(!1),f=i(!1),o=i(!1),m=i(""),Q=i(""),j=i(!1),K=i(!1),U=i(),T=i(),z=i(!1),B=i(!1),G=i(null),te=ne(()=>_.questionTypes??[]),D=ne(()=>te.value.filter(u=>!!u.clientId)),H=[u=>!!u?.trim()||c("ValidationMessages.required"),u=>!u||u.trim().length<=255||c("ValidationMessages.maxLength",{max:255})],O=u=>!u.clientId,se=u=>{const X=`General.QuestionTypes.${u.name}`;return v(X)?c(X):u.name},k=async()=>{x.value=!0;try{await _.fetchQuestionTypes()}catch(u){y(c(ie(u,"App.QuestionTypes.loadError")))}finally{x.value=!1}},q=async()=>
1{if(m.value=m.value.trim(),!((await U.value?.validate())?.valid===!1||!m.value)){F.value=!0;try{await _.createQuestionType(m.value),I(c("App.QuestionTypes.createSuccess")),m.value="",U.value?.resetValidation?.()}catch(X){y(c(ie(X,"App.QuestionTypes.createError")))}finally{F.value=!1}}},W=u=>{O(u)||(G.value=u,Q.value=u.name,K.value=!0,z.value=!0)},w=()=>{z.value=!1,G.value=null,Q.value="",T.value?.resetValidation?.()},E=async()=>{if(Q.value=Q.value.trim(),!((await T.value?.validate())?.valid===!1||!G.value||!Q.value)){f.value=!0;try{await _.updateQuestionType(G.value.id,Q.value),I(c("App.QuestionTypes.updateSuccess")),w()}catch(X){y(c(ie(X,"App.QuestionTypes.updateError")))}finally{f.value=!1}}},C=u=>{O(u)||(G.value=u,B.value=!0)},h=()=>{B.value=!1,G.value=null},Y=async()=>{if(G.value){o.value=!0;try{await _.deleteQuestionType(G.value.id),I(c("App.QuestionTypes.deleteSuccess"))}catch(u){y(c(ie(u,"App.QuestionTypes.deleteError")))}finally{o.value=!1,B.value=!1,G.value=null}}};return ke(k),(u,X)=>(l(),r(oe,null,[e("div",sl,[e("div",ll,[e("div",il,[e("div",nl,a(u.$t("App.QuestionTypes.title")),1),e("p",ol,a(u.$t("App.QuestionTypes.description")),1)]),e("div",rl,[t(Me,{ref_key:"createForm",ref:U,modelValue:j.value,"onUpdate:modelValue":X[1]||(X[1]=J=>j.value=J),class:"create-row",onSubmit:Fe(q,["prevent"])},{default:s(()=>[t(re,{modelValue:m.value,"onUpdate:modelValue":X[0]||(X[0]=J=>m.value=J),label:u.$t("App.QuestionTypes.nameLabel"),placeholder:u.$t("App.QuestionTypes.namePlaceholder"),variant:"outlined",color:"secondary","hide-details":"auto",counter:255,rules:H,density:"comfortable",class:"flex-1"},null,8,["modelValue","label","placeholder"]),t(R,{loading:F.value,disabled:F.value,type:"submit",class:"create-btn",height:"44"},{default:s(()=>[p(a(u.$t("App.QuestionTypes.create")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["modelValue"])]),dl,e("div",cl,[x.value?(l(),r("div",ul,[t(Se,{type:"list-item, list-item, list-item"})])):(l(),r(oe,{key:1},[D.value.length?(l(),r("div",pl,[(l(!0),r(oe,null,ce(D.value,J=>(l(),r("div",{key:J.id,class:"list-row"},[e("span",vl,a(se(J)),1),e("div",ml,[t(R,{disabled:O(J),icon:"",size:"small",variant:"text",onClick:P=>W(J)},{default:s(()=>[t(ue,{icon:A(Xe),size:"18"},null,8,["icon"])]),_:2},1032,["disabled","onClick"]),t(R,{disabled:O(J),icon:"",size:"small",variant:"text",color:"error",onClick:P=>C(J)},{default:s(()=>[t(ue,{icon:A(et),size:"18"},null,8,["icon"])]),_:2},1032,["disabled","onClick"])])]))),128))])):(l(),r("div",_l,a(u.$t("App.QuestionTypes.empty")),1))],64))])])]),t(pe,{modelValue:z.value,"onUpdate:modelValue":X[4]||(X[4]=J=>z.value=J),"max-width":"520"},{default:s(()=>[t(ve,{rounded:"xl"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p(a(u.$t("App.QuestionTypes.editTitle")),1)]),_:1}),t(_e,{class:"px-6"},{default:s(()=>[t(Me,{ref_key:"editForm",ref:T,modelValue:K.value,"onUpdate:modelValue":X[3]||(X[3]=J=>K.value=J),class:"flex flex-col gap-3"},{default:s(()=>[t(re,{modelValue:Q.value,"onUpdate:modelValue":X[2]||(X[2]=J=>Q.value=J),label:u.$t("App.QuestionTypes.nameLabel"),placeholder:u.$t("App.QuestionTypes.namePlaceholder"),variant:"outlined",color:"secondary","hide-details":"auto",counter:255,rules:H},null,8,["modelValue","label","placeholder"])]),_:1},8,["modelValue"])]),_:1}),t(ye,{class:"justify-end gap-2 pb-4 px-6"},{default:s(()=>[t(R,{variant:"text",onClick:w},{default:s(()=>[p(a(u.$t("General.cancel")),1)]),_:1}),t(R,{color:"secondary",loading:f.value,disabled:f.value,onClick:E},{default:s(()=>[p(a(u.$t("General.save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:B.value,"onUpdate:modelValue":X[5]||(X[5]=J=>B.value=J),"max-width":"480"},{default:s(()=>[t(ve,{rounded:"xl"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p(a(u.$t("App.QuestionTypes.deleteTitle")),1)]),_:1}),t(_e,{class:"text-sm text-light-text px-6"},{default:s(()=>[p(a(u.$t("App.QuestionTypes.deleteHint")),1)]),_:1}),t(ye,{class:"justify-end gap-2 pb-4 px-6"},{default:s(()=>[t(R,{variant:"text",onClick:h},{default:s(()=>[p(a(u.$t("General.cancel")),1)]),_:1}),t(R,{color:"error",loading:o.value,disabled:o.value,onClick:Y},{default:s(()=>[p(a(u.$t("General.remove")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}}),yl=be(fl,[["__scopeId","data-v-2393e7d9"]]),gl=V=>(Ie("data-v-9dab1431"),V=V(),Te(),V),hl={class:"settings-panel"},bl={class:"settings-card"},$l={class:"settings-card__header"},Al={class:"settings-card__header-title"},kl={class:"settings-card__header-desc"},wl={class:"settings-card__section"},Sl={class:"settings-hint"},xl=gl(()=>e("div",{class:"settings-card__divider"},null,-1)),Cl={class:"settings-card__list"},Vl={key:0,class:"pa-4"},El={key:0},Pl={class:"list-row__main"},Dl={class:"list-row__name"},Ll={class:"list-row__actions"},Rl={key:1,class:"empty-state"},Il=he({__name:"RiskLevelsSettings",setup(V){const _=Fa(),{levels:y,labelForLevel:I}=Ba(),{notifyError:c,notifySuccess:v}=Ae(),{t:x,te:F}=we(),f=i(!1),o=i(!1),m=i(!1),Q=i(!1),j=i(""),K=i("1"),U=i(!1),T=i(),z=i(!1),B=i(""),G=i("0"),te=i(!1),D=i(),H=i(!1),O=i(null),se=[P=>!!P?.trim()||x("ValidationMessages.required"),P=>!P||P.trim().length<=255||x("ValidationMessages.maxLength",{max:255})],k=[P=>P!==""&&P!==null&&P!==void 0||x("ValidationMessages.required"),P=>Number.isInteger(Number(P))&&Number(P)>=0||x("App.RiskLevels.factorInvalid")],q=P=>{const g=`General.RiskLevels.${P.code}`;return F(g)?x(g):P.code},W=ne(()=>O.value?.isSystem?q(O.value):x("App.RiskLevels.namePlaceholder")),w=async()=>{f.value=!0;try{await _.fetchLevels()}catch(P){c(x(ie(P,"App.RiskLevels.loadError")))}finally{f.value=!1}},E=async()=>
1{if(j.value=j.value.trim(),(await T.value?.validate())?.valid!==!1){o.value=!0;try{await _.createLevel({label:j.value,factor:Number(K.value)}),v(x("App.RiskLevels.createSuccess")),j.value="",K.value="1",T.value?.resetValidation?.()}catch(g){c(x(ie(g,"App.RiskLevels.createError")))}finally{o.value=!1}}},C=P=>{O.value=P,B.value=P.label??"",G.value=String(P.factor),te.value=!0,z.value=!0},h=()=>{z.value=!1,O.value=null,B.value="",G.value="0",D.value?.resetValidation?.()},Y=async()=>{if(!(!O.value||(B.value=B.value.trim(),(await D.value?.validate())?.valid===!1))){m.value=!0;try{const g=B.value?B.value:O.value.isSystem?null:B.value;await _.updateLevel(O.value.id,{label:g,factor:Number(G.value)}),v(x("App.RiskLevels.updateSuccess")),h()}catch(g){c(x(ie(g,"App.RiskLevels.updateError")))}finally{m.value=!1}}},u=P=>{P.isSystem||(O.value=P,H.value=!0)},X=()=>{H.value=!1,O.value=null},J=async()=>{if(O.value){Q.value=!0;try{await _.deleteLevel(O.value.id),v(x("App.RiskLevels.deleteSuccess"))}catch(P){c(x(ie(P,"App.RiskLevels.deleteError")))}finally{Q.value=!1,H.value=!1,O.value=null}}};return ke(w),(P,g)=>(l(),r(oe,null,[e("div",hl,[e("div",bl,[e("div",$l,[e("div",Al,a(P.$t("App.RiskLevels.title")),1),e("p",kl,a(P.$t("App.RiskLevels.description")),1)]),e("div",wl,[t(Me,{ref_key:"createForm",ref:T,modelValue:U.value,"onUpdate:modelValue":g[2]||(g[2]=L=>U.value=L),class:"create-row",onSubmit:Fe(E,["prevent"])},{default:s(()=>[t(re,{modelValue:j.value,"onUpdate:modelValue":g[0]||(g[0]=L=>j.value=L),label:P.$t("App.RiskLevels.nameLabel"),placeholder:P.$t("App.RiskLevels.namePlaceholder"),variant:"outlined",color:"secondary","hide-details":"auto",counter:255,rules:se,density:"comfortable",class:"flex-1"},null,8,["modelValue","label","placeholder"]),t(re,{modelValue:K.value,"onUpdate:modelValue":g[1]||(g[1]=L=>K.value=L),label:P.$t("App.RiskLevels.factorLabel"),type:"number",min:"0",variant:"outlined",color:"secondary","hide-details":"auto",rules:k,density:"comfortable",class:"factor-field"},null,8,["modelValue","label"]),t(R,{loading:o.value,disabled:o.value,type:"submit",class:"create-btn",height:"44"},{default:s(()=>[p(a(P.$t("App.RiskLevels.create")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["modelValue"]),e("p",Sl,a(P.$t("App.RiskLevels.factorHint")),1)]),xl,e("div",Cl,[f.value?(l(),r("div",Vl,[t(Se,{type:"list-item, list-item, list-item"})])):(l(),r(oe,{key:1},[A(y)&&A(y).length?(l(),r("div",El,[(l(!0),r(oe,null,ce(A(y)||[],L=>(l(),r("div",{key:L.id,class:"list-row"},[e("div",Pl,[e("span",Dl,a(A(I)(L)),1),L.isSystem?(l(),ae(De,{key:0,size:"x-small",variant:"tonal",color:"blue-grey"},{default:s(()=>[p(a(P.$t("App.RiskLevels.systemBadge")),1)]),_:1})):ee("",!0)]),t(De,{size:"small",variant:"tonal",color:"secondary",class:"list-row__factor"},{default:s(()=>[p(a(P.$t("App.RiskLevels.factorShort"))+" "+a(L.factor),1)]),_:2},1024),e("div",Ll,[t(R,{icon:"",size:"small",variant:"text",onClick:n=>C(L)},{default:s(()=>[t(ue,{icon:A(Xe),size:"18"},null,8,["icon"])]),_:2},1032,["onClick"]),L.isSystem?ee("",!0):(l(),ae(R,{key:0,icon:"",size:"small",variant:"text",color:"error",onClick:n=>u(L)},{default:s(()=>[t(ue,{icon:A(et),size:"18"},null,8,["icon"])]),_:2},1032,["onClick"]))])]))),128))])):(l(),r("div",Rl,a(P.$t("App.RiskLevels.empty")),1))],64))])])]),t(pe,{modelValue:z.value,"onUpdate:modelValue":g[6]||(g[6]=L=>z.value=L),"max-width":"520"},{default:s(()=>[t(ve,{rounded:"xl"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p(a(P.$t("App.RiskLevels.editTitle")),1)]),_:1}),t(_e,{class:"px-6"},{default:s(()=>[t(Me,{ref_key:"editForm",ref:D,modelValue:te.value,"onUpdate:modelValue":g[5]||(g[5]=L=>te.value=L),class:"flex flex-col gap-3"},{default:s(()=>[t(re,{modelValue:B.value,"onUpdate:modelValue":g[3]||(g[3]=L=>B.value=L),label:P.$t("App.RiskLevels.nameLabel"),placeholder:W.value,hint:O.value?.isSystem?P.$t("App.RiskLevels.systemNameHint"):void 0,"persistent-hint":"",variant:"outlined",color:"secondary","hide-details":"auto",counter:255,rules:O.value?.isSystem?[]:se},null,8,["modelValue","label","placeholder","hint","rules"]),t(re,{modelValue:G.value,"onUpdate:modelValue":g[4]||(g[4]=L=>G.value=L),label:P.$t("App.RiskLevels.factorLabel"),type:"number",min:"0",variant:"outlined",color:"secondary","hide-details":"auto",rules:k},null,8,["modelValue","label"])]),_:1},8,["modelValue"])]),_:1}),t(ye,{class:"justify-end gap-2 pb-4 px-6"},{default:s(()=>[t(R,{variant:"text",onClick:h},{default:s(()=>[p(a(P.$t("General.cancel")),1)]),_:1}),t(R,{color:"secondary",loading:m.value,disabled:m.value,onClick:Y},{default:s(()=>[p(a(P.$t("General.save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:H.value,"onUpdate:modelValue":g[7]||(g[7]=L=>H.value=L),"max-width":"480"},{default:s(()=>[t(ve,{rounded:"xl"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p(a(P.$t("App.RiskLevels.deleteTitle")),1)]),_:1}),t(_e,{class:"text-sm text-light-text px-6"},{default:s(()=>[p(a(P.$t("App.RiskLevels.deleteHint")),1)]),_:1}),t(ye,{class:"justify-end gap-2 pb-4 px-6"},{default:s(()=>[t(R,{variant:"text",onClick:X},{default:s(()=>[p(a(P.$t("General.cancel")),1)]),_:1}),t(R,{color:"error",loading:Q.value,disabled:Q.value,onClick:J},{default:s(()=>[p(a(P.$t("General.remove")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}}),Tl=be(Il,[["__scopeId","data-v-9dab1431"]]),Ul={class:"catalog-settings"},zl=he({__name:"CatalogSettings",setup(V){return(_,y)=>(l(),r("div",Ul,[t(yl),t(Tl)]))}}),Ml=be(zl,[["__scopeId","data-v-24ca2673"]]),Nl={class:"settings-panel"},Ol={class:"settings-card"},ql={class:"settings-card__header"},Kl={class:"settings-card__header-label"}
1,Fl={class:"settings-card__list"},Bl={key:0,class:"pa-4"},Gl={key:0},Ql={class:"list-row__info"},jl={class:"list-row__name"},Hl={class:"list-row__actions"},Zl={key:1,class:"empty-state"},Wl={class:"flex items-center justify-between mb-3"},Yl={key:0,class:"flex justify-center py-4"},Jl={key:1,class:"perm-groups"},Xl={class:"perm-group__name"},ei={class:"perm-group__items"},ti=he({__name:"RolesRightsSettings",setup(V){const _=Ne(),{notifyError:y,notifySuccess:I}=Ae(),{t:c}=we(),v=i([]),x=i([]),F=i(!1),f=i(!1),o=i(!1),m=i({id:null,name:"",permissions:[]}),Q=async()=>{try{F.value=!0,v.value=await _.fetchRoles(),x.value=await _.fetchPermissions()}catch{y(c("App.rolesRights.loadError"))}finally{F.value=!1}},j=["Cockpit","Kataloge","Kampagnen","Mitarbeiter","Gruppen","Arbeitsorte","Analyse","Unternehmen","Handlungsbedarf","Datenschutz","Rollen & Rechte","Sonstiges"],K=k=>{const q=(k.key||k.id||"").toLowerCase();return q.includes("catalog")?"Kataloge":q.includes("campaign")?"Kampagnen":q.includes("employee")||q.includes("user")?"Mitarbeiter":q.includes("group")?"Gruppen":q.includes("workarea")||q.includes("workspace")?"Arbeitsorte":q.includes("analysis")?"Analyse":q.includes("company")?"Unternehmen":q.includes("action_required")?"Handlungsbedarf":q.includes("privacy")?"Datenschutz":q.includes("role")?"Rollen & Rechte":q.includes("cockpit")?"Cockpit":"Sonstiges"},U=ne(()=>{const k={};return x.value.forEach(q=>{const W=K(q);k[W]||(k[W]=[]),k[W].push(q)}),Object.keys(k).forEach(q=>k[q].sort((W,w)=>(W.label||"").localeCompare(w.label||""))),k}),T=ne(()=>{const k=U.value;return j.filter(q=>!!k[q]).map(q=>({name:q,items:k[q]}))}),z=i(!1),B=ne(()=>m.value.permissions.length===x.value.length),G=k=>{k?m.value.permissions=x.value.map(q=>q.key||q.id):m.value.permissions=[]},te=()=>{o.value=!1,m.value={id:null,name:"",permissions:[]},f.value=!0},D=async k=>{try{o.value=!0;const q=await _.fetchRolePermissions(k.id);m.value={id:k.id,name:k.name,permissions:q},f.value=!0}catch{y(c("App.rolesRights.loadRolePermissionsError"))}},H=()=>{f.value=!1},O=async()=>{try{if(z.value=!0,o.value&&m.value.id)await _.updateRole(m.value.id,{name:m.value.name}),await _.updateRolePermissions(m.value.id,m.value.permissions),I(c("App.rolesRights.roleUpdated"));
1else{const k=await _.createRole({name:m.value.name});await _.updateRolePermissions(k.id,m.value.permissions),I(c("App.rolesRights.roleCreated"))}f.value=!1,await Q()}catch{y(c("App.rolesRights.saveRoleError"))}finally{z.value=!1}},se=async k=>{try{await _.deleteRole(k),await Q(),I(c("App.rolesRights.roleDeleted"))}catch{y(c("App.rolesRights.deleteRoleError"))}};return ke(async()=>{await Q()}),(k,q)=>(l(),r(oe,null,[e("div",Nl,[e("div",Ol,[e("div",ql,[e("div",Kl,a(k.$t("App.rolesRights.title")),1),t(R,{class:"create-btn",size:"small","prepend-icon":A(nt),onClick:te},{default:s(()=>[p(a(k.$t("App.rolesRights.createRole")),1)]),_:1},8,["prepend-icon"])]),e("div",Fl,[F.value?(l(),r("div",Bl,[t(Se,{type:"list-item, list-item, list-item"})])):(l(),r(oe,{key:1},[v.value?.length?(l(),r("div",Gl,[(l(!0),r(oe,null,ce(v.value,W=>(l(),r("div",{key:W.id,class:"list-row"},[e("div",Ql,[e("span",jl,a(W.name),1)]),e("div",Hl,[t(R,{icon:"",size:"small",variant:"text",onClick:w=>D(W)},{default:s(()=>[t(ue,{icon:A(Xe),size:"18"},null,8,["icon"])]),_:2},1032,["onClick"]),t(R,{icon:"",size:"small",variant:"text",color:"error",onClick:w=>se(W.id)},{default:s(()=>[t(ue,{icon:A(et),size:"18"},null,8,["icon"])]),_:2},1032,["onClick"])])]))),128))])):(l(),r("div",Zl,a(k.$t("App.rolesRights.empty")),1))],64))])])]),t(pe,{modelValue:f.value,"onUpdate:modelValue":q[2]||(q[2]=W=>f.value=W),"max-width":"1000"},{default:s(()=>[t(ve,{rounded:"xl"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p(a(o.value?k.$t("App.rolesRights.title"):k.$t("App.rolesRights.createRole")),1)]),_:1}),t(_e,{class:"px-6"},{default:s(()=>[t(re,{modelValue:m.value.name,"onUpdate:modelValue":q[0]||(q[0]=W=>m.value.name=W),label:"Rollenname",variant:"outlined",density:"comfortable",color:"secondary",class:"mb-4"},null,8,["modelValue"]),e("div",Wl,[t(Je,{"model-value":B.value,"onUpdate:modelValue":G,label:k.$t("General.all"),density:"compact","hide-details":"",color:"secondary"},null,8,["model-value","label"])]),F.value?(l(),r("div",Yl,[t(Ue,{indeterminate:"",color:"secondary",size:"32"})])):(l(),r("div",Jl,[(l(!0),r(oe,null,ce(T.value,W=>(l(),r("div",{key:W.name,class:"perm-group"},[e("div",Xl,a(W.name),1),e("div",ei,[(l(!0),r(oe,null,ce(W.items,w=>(l(),r("div",{key:w.key||w.id},[t(Je,{modelValue:m.value.permissions,"onUpdate:modelValue":q[1]||(q[1]=E=>m.value.permissions=E),label:w.label,value:w.key||w.id,density:"compact","hide-details":"",color:"secondary"},null,8,["modelValue","label","value"]),w.description?(l(),ae(Pe,{key:0,activator:"parent",location:"top start","open-delay":"200"},{default:s(()=>[p(a(w.description),1)]),_:2},1024)):ee("",!0)]))),128))])]))),128))]))]),_:1}),t(ye,{class:"justify-end pb-4 px-6 gap-2"},{default:s(()=>[t(R,{variant:"text",onClick:H},{default:s(()=>[p(a(k.$t("General.cancel")),1)]),_:1}),t(R,{color:"secondary",variant:"flat",loading:z.value,disabled:z.value,onClick:O},{default:s(()=>[p(a(k.$t("General.save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}}),ai=be(ti,[["__scopeId","data-v-fa872e0d"]]),ge=V=>(Ie("data-v-013adb6d"),V=V(),Te(),V),si={class:"settings-panel"},li={class:"settings-card"},ii=ge(()=>e("div",{class:"settings-card__header"},[e("div",{class:"settings-card__header-label"},"Abonnement")],-1)),ni={class:"settings-card__body"},oi={key:0,class:"flex justify-center py-6"},ri={class:"sub-info-grid"},di={class:"sub-info-item"},ci=ge(()=>e("div",{class:"sub-info-item__label"},"Aktive Lizenz",-1)),ui={class:"sub-info-item__value"},pi={class:"sub-info-item"},vi=ge(()=>e("div",{class:"sub-info-item__label"},"Status",-1)),mi={class:"sub-info-item__value"},_i={key:0,class:"sub-info-item"},fi=ge(()=>e("div",{class:"sub-info-item__label"},"Aktuelle Periode",-1)),yi={class:"sub-info-item__value text-sm"},gi={key:1,class:"sub-info-item"},hi={class:"sub-info-item__label"},bi={class:"mt-5 flex flex-wrap gap-3"},$i={key:2,class:"py-2"},Ai=ge(()=>e("p",{class:"text-sm text-light-text mb-3"},"Kein aktives Abonnement vorhanden.",-1)),ki={class:"settings-card"},wi={class:"settings-card__header"},Si=ge(()=>e("div",{class:"settings-card__header-label"},"Zahlungsmethoden",-1)),xi={class:"settings-card__body px-0 py-0"},Ci={key:0,class:"flex justify-center py-6"},Vi={key:1,class:"pm-list"},Ei={class:"pm-item__icon"},Pi={class:"pm-item__info"},Di={class:"pm-item__label"},Li={key:0,class:"pm-item__sub"},Ri={class:"pm-item__actions"},Ii={key:2,class:"px-6 py-5 text-sm text-light-text"},Ti={class:"settings-card"},Ui=ge(()=>e("div",{class:"settings-card__header"},[e("div",{class:"settings-card__header-label"},"Rechnungsinformationen")],-1)),zi={class:"settings-card__body"},Mi=ge(()=>e("strong",null,"Unternehmensdaten",-1)),Ni={key:0,class:"billing-info-grid"},Oi={key:0,class:"billing-info-item"},qi=ge(()=>e("div",{class:"billing-info-item__label"},"Unternehmen",-1)),Ki={class:"billing-info-item__value"}
1,Fi={key:1,class:"billing-info-item"},Bi=ge(()=>e("div",{class:"billing-info-item__label"},"Rechnungs-E-Mail",-1)),Gi={class:"billing-info-item__value"},Qi={key:2,class:"billing-info-item"},ji=ge(()=>e("div",{class:"billing-info-item__label"},"Adresse",-1)),Hi={class:"billing-info-item__value"},Zi={key:0},Wi={key:1},Yi={key:3,class:"billing-info-item"},Ji=ge(()=>e("div",{class:"billing-info-item__label"},"USt-IdNr.",-1)),Xi={class:"billing-info-item__value"},en={class:"settings-card"},tn=ge(()=>e("div",{class:"settings-card__header"},[e("div",{class:"settings-card__header-label"},"Rechnungen")],-1)),an={class:"settings-card__body px-0 py-0"},sn={key:0,class:"flex justify-center py-6"},ln={key:1,class:"invoice-list"},nn=ge(()=>e("div",{class:"invoice-list__header"},[e("span",null,"Rechnung"),e("span",null,"Zeitraum"),e("span",null,"Status"),e("span",{class:"text-right"},"Betrag"),e("span")],-1)),on={class:"invoice-row__id"},rn={class:"invoice-row__number"},dn={class:"invoice-row__date"},cn={class:"invoice-row__period"},un={class:"invoice-row__amount"},pn={class:"invoice-row__actions"},vn={key:2,class:"px-6 py-5 text-sm text-light-text"},mn={key:0,class:"flex justify-center py-8"},_n=ge(()=>e("br",null,null,-1)),fn=ge(()=>e("br",null,null,-1)),yn=he({__name:"PaymentSettings",emits:["close"],setup(V,{emit:_}){const y=_,I=Ht(),{notifyError:c,notifySuccess:v}=Ae(),x=ht(),F=je(),f=i(!0),o=i(null),m=i(null),Q=i(!0),j=i([]),K=i(null),U=i(null),T=i(!1),z=i(null),B=i(!0),G=i([]),te=i(!1),D=i(!1),H=i(!1),O=i(!1),se=i(!1),k=i(!1),q=i(!1),W=i(!1),w=i(null),E=i(null);let C=null,h=null,Y=null,u=null;const X={free:"Free",basic:"Basic",basic_plus:"Basic Plus",professional:"Professional",enterprise:"Enterprise"},J=b=>X[b??""]??b??"â",P=b=>b?new Intl.DateTimeFormat("de-DE",{day:"2-digit",month:"2-digit",year:"numeric"}).format(new Date(b)):"â",g=(b,le="eur")=>new Intl.NumberFormat("de-DE",{style:"currency",currency:le.toUpperCase()}).format(b/100),L=(b,le)=>le?"Bezahlt":{paid:"Bezahlt",open:"Ausstehend",draft:"Entwurf",void:"Storniert",uncollectible:"Uneinbringlich"}[b]??b,n=(b,le)=>le||b==="paid"?"success":b==="open"?"warning":b==="uncollectible"?"error":"default",M=b=>b==="active"||b==="trialing"?"success":b==="past_due"||b==="unpaid"?"error":"warning",N=b=>({active:"Aktiv",trialing:"Testphase",trial:"Testphase (ohne Abo)",past_due:"Zahlung überfällig",unpaid:"Unbezahlt",canceled:"Gekündigt",incomplete:"Unvollständig"})[b??""]??b??"â",de=b=>b==="trial"||b==="trialing",xe=b=>b.type==="sepa_debit"?Wt:b.type==="paypal"?Yt:b.type==="amazon_pay"?Jt:b.brand==="apple_pay"?Xt:b.type==="revolut_pay"?ea:b.type==="klarna"?ta:xt,Le=b=>{if(!b)return"â";if(b.type==="sepa_debit")return`SEPA â¢â¢â¢â¢ ${b.last4}`;if(b.type==="paypal")return b.email?`PayPal (${b.email})`:"PayPal";if(b.type==="amazon_pay")return"Amazon Pay";if(b.brand==="apple_pay")return b.last4?`Apple Pay â¢â¢â¢â¢ ${b.last4}`:"Apple Pay";if(b.type==="revolut_pay")return"Revolut Pay";if(b.type==="klarna")return"Klarna";const le=b.brand?b.brand.charAt(0).toUpperCase()+b.brand.slice(1):"";return b.last4?`${le} â¢â¢â¢â¢ ${b.last4}`:le||"â"};ke(async()=>{await Promise.allSettled([I.fetchSubscriptionInfo().then(async b=>{if(o.value=b,b?.licenseKey!=="free")try{const le=await F.apiService.request("GET","/payments/billing-info");m.value=le}catch{}}).catch(()=>{}).finally(()=>{f.value=!1}),I.fetchPaymentMethods().then(b=>{j.value=b.paymentMethods}).catch(()=>{}).finally(()=>{Q.value=!1}),I.fetchInvoices(15).then(b=>{G.value=b.filter(le=>le.status!=="draft")}).catch(()=>{}).finally(()=>{B.value=!1})])});const Ce=()=>{y("close"),x.push("/license")},tt=async b=>{K.value=b;try{await I.setDefaultPaymentMethod(b),j.value=j.value.map(le=>({...le,isDefault:le.id===b})),v("Standard-Zahlungsmethode aktualisiert.")}catch(le){c(le?.response?.data?.message??"Fehler beim Setzen der Standard-Zahlungsmethode.")}finally{K.value=null}},at=b=>{z.value=b,T.value=!0},d=async()=>{if(z.value){U.value=z.value.id,T.value=!1;try{await I.removePaymentMethod(z.value.id),j.value=j.value.filter(b=>b.id!==z.value.id),v("Zahlungsmethode entfernt.")}catch(b){c(b?.response?.data?.message??"Zahlungsmethode konnte nicht entfernt werden.")}finally{U.value=null,z.value=null}}},S=async()=>{se.value=!0,w.value=null,q.value=!1,u=null;try{if(C=C??await Ga("pk_live_51RoMOkERb1M0jPLLgu0E0dNhBet3Df5TfAel9gK0DEl7qnx8fb1APhrAgV8HjmPviPrSQT06Q9KUnC5M7eSZh
1M1700VXPprgd4"),!C)throw new Error("Stripe konnte nicht geladen werden.");const b=await I.setupPaymentMethod();u=b.split("_secret_")[0],h=C.elements({clientSecret:b,appearance:{theme:"stripe",variables:{colorPrimary:"#2ecc71",colorText:"#111827",borderRadius:"8px",fontFamily:"inherit"}}}),O.value=!0}catch(b){c(b?.response?.data?.message??"Fehler beim Laden des Formulars.")}finally{se.value=!1}};Ve(O,async b=>{!b||!h||(await Ye(),await new Promise(le=>setTimeout(le,80)),E.value&&(k.value=!0,Y=h.create("payment",{layout:"tabs"}),Y.mount(E.value),Y.on("ready",()=>{k.value=!1,q.value=!0}),Y.on("loaderror",le=>{w.value=le?.error?.message??"Ladefehler",k.value=!1})))});const $=()=>{O.value=!1;try{Y?.unmount()}catch{}Y=null,h=null,q.value=!1,w.value=null},fe=async()=>{if(!C||!h)return;W.value=!0,w.value=null;const{setupIntent:b,error:le}=await C.confirmSetup({elements:h,redirect:"if_required",confirmParams:{return_url:`${window.location.origin}/payment-method/return`}});if(le){w.value=le.message??"Bestätigung fehlgeschlagen.",W.value=!1;return}if((b?.status==="succeeded"||b?.status==="processing")&&b.id)try{b.status==="succeeded"&&await I.confirmPaymentMethod(b.id),v(b.status==="processing"?"Zahlungsmethode wird eingerichtet (SEPA-Mandat ausstehend).":"Zahlungsmethode erfolgreich hinzugefügt."),$();const Z=await I.fetchPaymentMethods();j.value=Z.paymentMethods}catch(Z){w.value=Z?.response?.data?.message??"Zahlungsmethode konnte nicht gespeichert werden."}W.value=!1},Be=async()=>{te.value=!0;try{const b=await I.cancelSubscription();D.value=!1,o.value&&(o.value={...o.value,cancelAtPeriodEnd:!0}),v(b.alreadyScheduled?"Kündigung war bereits geplant.":`Abonnement wird zum ${P(b.cancelAt)} beendet.`)}catch(b){c(b?.response?.data?.message??"Kündigung fehlgeschlagen.")}finally{te.value=!1}},Lt=async()=>{H.value=!0;try{await I.reactivateSubscription(),o.value&&(o.value={...o.value,cancelAtPeriodEnd:!1}),v("Kündigung zurückgezogen. Ihr Abonnement läuft weiter.")}catch(b){c(b?.response?.data?.message??"Reaktivierung fehlgeschlagen.")}finally{H.value=!1}};return(b,le)=>(l(),r("div",si,[e("div",li,[ii,e("div",ni,[f.value?(l(),r("div",oi,[t(Ue,{indeterminate:"",size:"32",color:"secondary"})])):o.value&&o.value.licenseKey!=="free"?(l(),r(oe,{key:1},[e("div",ri,[e("div",di,[ci,e("div",ui,a(J(o.value.licenseKey)),1)]),e("div",pi,[vi,e("div",mi,[t(De,{color:M(o.value.status),density:"compact",size:"small"},{default:s(()=>[p(a(N(o.value.status)),1)]),_:1},8,["color"])])]),o.value.currentPeriodStart?(l(),r("div",_i,[fi,e("div",yi,a(P(o.value.currentPeriodStart))+" â "+a(P(o.value.currentPeriodEnd)),1)])):ee("",!0),o.value.currentPeriodEnd?(l(),r("div",gi,[e("div",hi,a(o.value.cancelAtPeriodEnd?"Endet am":de(o.value.status)?"Testphase endet am":"Nächste Abrechnung"),1),e("div",{class:Re(["sub-info-item__value",{"text-error":o.value.cancelAtPeriodEnd}])},a(P(o.value.currentPeriodEnd)),3)])):ee("",!0)]),o.value.status==="trial"?(l(),ae($e,{key:0,type:"warning",variant:"tonal",density:"compact",class:"mt-4",icon:A(vt)},{default:s(()=>[p(" Ihre Testphase läuft bis "),e("strong",null,a(P(o.value.currentPeriodEnd)),1),p(". Wählen Sie eine Lizenz und hinterlegen Sie eine Zahlungsmethode, um danach weiterzuarbeiten. Abgebucht wird erst nach Ende der Testphase. ")]),_:1},8,["icon"])):o.value.status==="trialing"&&!o.value.cancelAtPeriodEnd?(l(),ae($e,{key:1,type:"info",variant:"tonal",density:"compact",class:"mt-4",icon:A(mt)},{default:s(()=>[p(" Testphase bis "),e("strong",null,a(P(o.value.trialEnd||o.value.currentPeriodEnd)),1),p(". Danach wird "),e("strong",null,a(J(o.value.licenseKey)),1),p(" abgerechnet. "),o.value.paymentMethod?ee("",!0):(l(),r(oe,{key:0},[p(" Es ist noch keine Zahlungsmethode hinterlegt.")],64))]),_:1},8,["icon"])):ee("",!0),o.value.pendingLicenseKey&&!o.value.cancelAtPeriodEnd?(l(),ae($e,{key:2,type:"info",variant:"tonal",density:"compact",class:"mt-4",icon:A(mt)},{default:s(()=>[p(" Geplanter Wechsel zu "),e("strong",null,a(J(o.value.pendingLicenseKey)),1),p(" am "+a(P(o.value.pendingLicenseChangeAt))+". ",1)]),_:1},8,["icon"])):ee("",!0),o.value.cancelAtPeriodEnd?(l(),ae($e,{key:3,type:"warning",variant:"tonal",density:"compact",class:"mt-4",icon:A(vt)},{default:s(()=>[p(" Ihr Abonnement wird am "),e("strong",null,a(P(o.value.currentPeriodEnd)),1),p(" automatisch beendet. Danach wird auf den Free-Plan gewechselt. "),t(R,{variant:"text",density:"compact",size:"small",color:"warning",loading:H.value,class:"ml-1",onClick:Lt},{default:s(()=>[p(" Kündigung zurückziehen ")]),_:1},8,["loading"])]),_:1},8,["icon"])):ee("",!0),o.value.paymentStatus==="failed"||o.value.status==="past_due"?(l(),ae($e,{key:4,type:"error",variant:"tonal",density:"compact",class:"mt-4"},{default:s(()=>[p(" Ihre letzte Zahlung ist fehlgeschlagen. Bitte überprüfen Sie Ihre Zahlungsmethode. ")]),_:1}
1)):ee("",!0),e("div",bi,[t(R,{color:"secondary",variant:"outlined",size:"small",onClick:Ce},{default:s(()=>[p(a(o.value.status==="trial"?"Lizenz wählen":"Plan wechseln"),1)]),_:1}),!o.value.cancelAtPeriodEnd&&o.value.status!=="trial"?(l(),ae(R,{key:0,color:"error",variant:"text",size:"small",onClick:le[0]||(le[0]=Z=>D.value=!0)},{default:s(()=>[p(" Abonnement kündigen ")]),_:1})):ee("",!0)])],64)):(l(),r("div",$i,[Ai,t(R,{color:"secondary",variant:"flat",size:"small",onClick:Ce},{default:s(()=>[p("Jetzt abonnieren")]),_:1})]))])]),e("div",ki,[e("div",wi,[Si,t(R,{color:"secondary",variant:"tonal",size:"x-small",loading:se.value,class:"ml-auto",onClick:S},{default:s(()=>[p(" + Hinzufügen ")]),_:1},8,["loading"])]),e("div",xi,[Q.value?(l(),r("div",Ci,[t(Ue,{indeterminate:"",size:"32",color:"secondary"})])):j.value.length?(l(),r("div",Vi,[(l(!0),r(oe,null,ce(j.value,Z=>(l(),r("div",{key:Z.id,class:"pm-item"},[e("div",Ei,[t(ue,{icon:xe(Z),size:"22"},null,8,["icon"])]),e("div",Pi,[e("div",Di,a(Le(Z)),1),Z.expMonth?(l(),r("div",Li,"Gültig bis "+a(Z.expMonth.toString().padStart(2,"0"))+"/"+a(Z.expYear),1)):ee("",!0)]),e("div",Ri,[Z.isDefault?(l(),ae(De,{key:0,color:"success",density:"compact",size:"x-small",class:"mr-2"},{default:s(()=>[p("Standard")]),_:1})):ee("",!0),Z.isDefault?ee("",!0):(l(),ae(R,{key:1,variant:"text",size:"small",density:"compact",loading:K.value===Z.id,onClick:Rt=>tt(Z.id)},{default:s(()=>[p(" Als Standard ")]),_:2},1032,["loading","onClick"])),Z.isDefault?ee("",!0):(l(),ae(R,{key:2,icon:A(kt),variant:"text",size:"small",density:"compact",color:"error",loading:U.value===Z.id,onClick:Rt=>at(Z)},null,8,["icon","loading","onClick"]))])]))),128))])):(l(),r("div",Ii," Keine Zahlungsmethoden hinterlegt. "))])]),e("div",Ti,[Ui,e("div",zi,[t($e,{type:"info",variant:"tonal",density:"compact",icon:A(ot),class:"mb-4"},{default:s(()=>[p(" Für Rechnungen werden automatisch die "),Mi,p(" aus den Einstellungen verwendet (Name, Adresse, USt-IdNr.). Ãnderungen nehmen Sie bitte dort vor. ")]),_:1},8,["icon"]),m.value?(l(),r("div",Ni,[m.value.name?(l(),r("div",Oi,[qi,e("div",Ki,a(m.value.name),1)])):ee("",!0),m.value.email?(l(),r("div",Fi,[Bi,e("div",Gi,a(m.value.email),1)])):ee("",!0),m.value.address?(l(),r("div",Qi,[ji,e("div",Hi,[p(a(m.value.address.line1),1),m.value.address.line1?(l(),r("br",Zi)):ee("",!0),p(" "+a(m.value.address.postal_code)+" "+a(m.value.address.city),1),m.value.address.city?(l(),r("br",Wi)):ee("",!0),p(" "+a(m.value.address.country),1)])])):ee("",!0),m.value.vatId?(l(),r("div",Yi,[Ji,e("div",Xi,a(m.value.vatId),1)])):ee("",!0)])):ee("",!0)])]),e("div",en,[tn,e("div",an,[B.value?(l(),r("div",sn,[t(Ue,{indeterminate:"",size:"32",color:"secondary"})])):G.value.length?(l(),r("div",ln,[nn,(l(!0),r(oe,null,ce(G.value,Z=>(l(),r("div",{key:Z.id,class:"invoice-row"},[e("div",on,[t(ue,{icon:A(Zt),size:"16",class:"invoice-row__doc-icon"},null,8,["icon"]),e("div",null,[e("div",rn,a(Z.number??"â"),1),e("div",dn,a(P(Z.created)),1)])]),e("div",cn,a(Z.periodStart?P(Z.periodStart):"â")+" "+a(Z.periodEnd?`â ${P(Z.periodEnd)}`:""),1),e("div",null,[t(De,{color:n(Z.status,Z.paid),density:"compact",size:"small"},{default:s(()=>[p(a(L(Z.status,Z.paid)),1)]),_:2},1032,["color"])]),e("div",un,a(g(Z.paid?Z.amountPaid:Z.amountDue,Z.currency)),1),e("div",pn,[Z.hostedUrl?(l(),ae(R,{key:0,href:Z.hostedUrl,target:"_blank",rel:"noopener noreferrer","prepend-icon":A(wt),variant:"tonal",size:"x-small",density:"comfortable",color:"secondary"},{default:s(()=>[p(" Anzeigen ")]),_:2},1032,["href","prepend-icon"])):ee("",!0),Z.pdfUrl?(l(),ae(R,{key:1,href:Z.pdfUrl,target:"_blank",rel:"noopener noreferrer",icon:A(St),variant:"text",size:"small",density:"compact",title:"PDF herunterladen"},null,8,["href","icon"])):ee("",!0)])]))),128))])):(l(),r("div",vn,"Keine Rechnungen vorhanden."))])]),t(pe,{modelValue:O.value,"onUpdate:modelValue":le[1]||(le[1]=Z=>O.value=Z),"max-width":"500",persistent:""},{default:s(()=>[t(ve,{rounded:"lg"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p("Zahlungsmethode hinzufügen")]),_:1}),t(_e,{class:"px-6 pb-2"},{default:s(()=>[k.value?(l(),r("div",mn,[t(Ue,{indeterminate:"",size:"36",color:"secondary"})])):ee("",!0),e("div",{ref_key:"addPmElementRef",ref:E,class:"pm-element"},null,512),w.value?(l(),ae($e,{key:1,type:"error",variant:"tonal",density:"compact",class:"mt-4"},{default:s(()=>[p(a(w.value),1)]),_:1})):ee("",!0)]),_:1}),t(ye,{class:"px-6 pb-5 pt-2 gap-2 justify-end"},{default:s(()=>[t(R,{variant:"text",disabled:W.value,onClick:$},{default:s(()=>[p("Abbrechen")]),_:1},8,["disabled"]),t(R,{color:"secondary",variant:"flat",loading:W.value,disabled:!q.value,onClick:fe},{default:s(()=>[p(" Speichern ")]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:T.value,"onUpdate:modelValue":le[3]||(le[3]=Z=>T.value=Z),"max-width":"400"},{default:s(()=>[t(ve,{rounded:"lg"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>[p("Zahlungsmethode entfernen")]),_:1}),t(_e,{class:"px-6 pb-2 text-sm text-light-text"},{default:s(()=>[p(" Möchten Sie "),e("strong",null,a(Le(z.value)),1),p(" wirklich entfernen? ")]),_:1}),t(ye,{class:"px-6 pb-5 pt-2 gap-2 justify-end"},{default:s(()=>[t(R,{variant:"text",onClick:le[2]||(le[2]=Z=>T.value=!1)},{default:s(()=>[p("Abbrechen")]),_:1}),t(R,{color:"error",variant:"flat",loading:!!U.value,onClick:d},{default:s(()=>[p("Entfernen")]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:D.value,"onUpdate:modelValue":le[5]||(le[5]=Z=>D.value=Z),"max-width":"440"},{default:s(()=>[t(ve,{rounded:"lg"},{default:s(()=>[t(me,{class:"text-base font-semibold pt-5 px-6"},{default:s(()=>
1[p("Abonnement kündigen")]),_:1}),t(_e,{class:"px-6 pb-2 text-sm text-light-text"},{default:s(()=>[p(" Das Abonnement wird zum Ende der aktuellen Abrechnungsperiode ("),e("strong",null,a(P(o.value?.currentPeriodEnd??null)),1),p(") beendet."),_n,fn,p(" Danach wechselt Ihr Account automatisch auf den Free-Plan. Sie können die Kündigung jederzeit bis zu diesem Datum zurückziehen. ")]),_:1}),t(ye,{class:"px-6 pb-5 pt-2 gap-2 justify-end"},{default:s(()=>[t(R,{variant:"text",disabled:te.value,onClick:le[4]||(le[4]=Z=>D.value=!1)},{default:s(()=>[p("Abbrechen")]),_:1},8,["disabled"]),t(R,{color:"error",variant:"flat",loading:te.value,onClick:Be},{default:s(()=>[p(" Jetzt kündigen ")]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),gn=be(yn,[["__scopeId","data-v-013adb6d"]]),hn=V=>(Ie("data-v-0748c89e"),V=V(),Te(),V),bn={class:"settings-panel"},$n={class:"settings-card"},An={class:"settings-card__header"},kn={class:"settings-card__header-label"},wn={class:"flex gap-2"},Sn={class:"settings-hint"},xn={class:"settings-hint__icon"},Cn={class:"settings-hint__text"},Vn={class:"settings-hint__strong"},En=hn(()=>e("div",{class:"settings-card__divider"},null,-1)),Pn={class:"settings-card__table-area"},Dn={key:0,class:"flex flex-col gap-2 p-4"},Ln={key:1},Rn={key:0,class:"overflow-x-auto"},In={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Tn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Un={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},zn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Mn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Nn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text whitespace-nowrap"},On={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text whitespace-nowrap"},qn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text whitespace-nowrap"},Kn={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Fn={class:"px-3 py-3 align-top"},Bn={class:"font-medium text-text"},Gn={class:"px-3 py-3 align-top whitespace-nowrap"},Qn={class:"text-xs bg-gray-100 px-2 py-1 rounded"},jn={class:"px-3 py-3 align-top"},Hn={class:"px-3 py-3 align-top"},Zn={class:"text-sm text-text"},Wn={class:"px-3 py-3 align-top"},Yn={key:0,class:"flex flex-wrap gap-1"},Jn={key:1,class:"text-sm text-light-text"},Xn={class:"px-3 py-3 align-top whitespace-nowrap"},eo={class:"text-sm text-text"},to={class:"px-3 py-3 align-top whitespace-nowrap"},ao={class:"text-sm text-text"},so={class:"px-3 py-3 align-top whitespace-nowrap"},lo={class:"text-sm text-text"},io={class:"px-3 py-3 align-top whitespace-nowrap"},no={class:"flex gap-1 items-center"},oo={key:1,class:"empty-state"},ro={class:"flex flex-col gap-2"},co={class:"text-sm text-light-text"},uo={class:"flex items-center gap-2"},po={class:"px-3 py-2 rounded bg-gray-100 text-xs break-all flex-1"},lt="__all__",vo=he({__name:"ApiSettings",setup(V){const _=Ne(),{notifyError:y,notifySuccess:I}=Ae(),{t:c}=we(),v=ne(()=>_.apiKeys||[]),x=i(!0),F=i(!1),f=i(!1),o=i(!1),m=i(!1),Q=i(!1),j=i(),K=i(),U=it({name:"",rateLimitPerMinute:60,scopes:["employee:create"],expiresAt:null}),T=it({id:null,name:"",rateLimitPerMinute:null,scopes:[],status:"active",expiresAt:null}),z=i(!1),B=i(!1),G=i(null),te=i(null),D=i(null),H=i(null),O=d=>typeof d=="string"?d:!d||typeof d!="object"?"":d.value||d.key||d.name||d.id||"",se=d=>{const S=O(d);return S==="employee:create"?c("App.api.scopeEmployeeCreate"):typeof d=="object"&&(d.title||d.label||d.name||d.description)||S},k=ne(()=>(_.apiScopes?.length?_.apiScopes:["employee:create"]).map(S=>{const $=O(S);return $?{value:$,title:se(S)}:null}).filter(S=>!!S).reduce((S,$)=>(S.find(fe=>fe.value===$.value)||S.push($),S),[]).map(S=>S).reduce((S,$,fe)=>(fe===0&&S.push({value:lt,title:c("General.all")}),S.push($),S),[])),q=ne(()=>[{value:"active",label:c("App.api.statusActive")},{value:"disabled",label:c("App.api.statusDisabled")}]),W=[d=>!!d?.trim()||c("ValidationMessages.required")],w=d=>typeof d=="number"&&!Number.isNaN(d)?d:null,E=d=>{const S=(d||[]).map($=>
1O($)).filter(Boolean);return S.length?S.includes(lt)?k.value.map($=>$.value).filter($=>$&&$!==lt):Array.from(new Set(S)):[]},C=d=>{if(!d)return null;try{return new Date(d).toISOString()}catch{return null}},h=(d,S="dd.MM.yyyy HH:mm")=>{if(!d)return"â";try{return Pt(new Date(d),S)}catch{return"â"}},Y=d=>se(d),u=async()=>{x.value=!0;try{await Promise.all([_.fetchApiKeys(),_.fetchApiScopes()])}catch(d){y(c(ie(d,"App.api.loadError")))}finally{x.value=!1}},X=()=>k.value[0]?.value?[k.value[0].value]:["employee:create"],J=async()=>{U.name="",U.rateLimitPerMinute=60,U.scopes=X(),U.expiresAt=null,await Ye(),j.value?.resetValidation?.()},P=async()=>{await J(),F.value=!0},g=async()=>{if((await j.value?.validate?.())?.valid!==!1){z.value=!0;try{const S={name:U.name.trim(),rateLimitPerMinute:w(U.rateLimitPerMinute),scopes:E(U.scopes).length?E(U.scopes):null,expiresAt:C(U.expiresAt)},$=await _.createApiKey(S);I(c("App.api.createSuccess")),de($),F.value=!1}catch(S){y(c(ie(S,"App.api.createError")))}finally{z.value=!1}}},L=async d=>{T.id=d.id,T.name=d.name,T.rateLimitPerMinute=d.rateLimitPerMinute??null,T.scopes=d.scopes?[...d.scopes.map(O)]:X(),T.status=d.status,T.expiresAt=d.expiresAt?d.expiresAt.slice(0,10):null,f.value=!0,await Ye(),K.value?.resetValidation?.()},n=async()=>{if(!(!T.id||(await K.value?.validate?.())?.valid===!1)){B.value=!0;try{const S={name:T.name.trim(),rateLimitPerMinute:w(T.rateLimitPerMinute),scopes:E(T.scopes).length?E(T.scopes):null,status:T.status,expiresAt:C(T.expiresAt)};await _.updateApiKey(T.id,S),I(c("App.api.updateSuccess")),f.value=!1}catch(S){y(c(ie(S,"App.api.updateError")))}finally{B.value=!1}}},M=async d=>{const S=d.status==="active"?"disabled":"active";te.value=d.id;try{await _.updateApiKey(d.id,{status:S}),I(c("App.api.statusUpdated"))}catch($){y(c(ie($,"App.api.updateError")))}finally{te.value=null}},N=async d=>{G.value=d.id;try{const S=await _.rotateApiKey(d.id);I(c("App.api.rotateSuccess")),de(S)}catch(S){y(c(ie(S,"App.api.rotateError")))}finally{G.value=null}},de=d=>{d.clearTextKey&&(H.value={name:d.name,value:d.clearTextKey},o.value=!0)},xe=async()=>{if(H.value?.value)try{await navigator.clipboard.writeText(H.value.value),I(c("App.api.copied"))}catch(d){console.error("copy failed",d),y(c("General.error"))}},Le=i(!1),Ce=i(null),tt=d=>{Ce.value=d,Le.value=!0},at=async()=>{if(Ce.value){D.value=Ce.value.id;try{await _.deleteApiKey(Ce.value.id),I(c("App.api.deleteSuccess"))}catch(d){y(c(ie(d,"App.api.deleteError")))}finally{D.value=null,Le.value=!1,Ce.value=null}}};return ke(u),(d,S)=>(l(),r(oe,null,[e("div",bn,[e("div",$n,[e("div",An,[e("div",kn,a(d.$t("App.api.title")),1),e("div",wn,[t(R,{variant:"text",size:"small",color:"primary","prepend-icon":A(wt),href:A(Qa),target:"_blank",rel:"noopener"},{default:s(()=>[p(a(d.$t("App.api.openDocs")),1)]),_:1},8,["prepend-icon","href"]),t(R,{class:"create-btn",size:"small","prepend-icon":A(nt),onClick:P},{default:s(()=>[p(a(d.$t("App.api.createKey")),1)]),_:1},8,["prepend-icon"])])]),e("div",Sn,[e("div",xn,[t(ue,{icon:A(ot),size:"16"},null,8,["icon"])]),e("div",Cn,[e("span",Vn,a(d.$t("App.api.headerHint")),1),p(" "+a(d.$t("App.api.copyReminder")),1)])]),En,e("div",Pn,[x.value?(l(),r("div",Dn,[t(Se,{type:"heading"}),t(Se,{type:"table-thead"}),t(Se,{type:"table-tbody"})])):(l(),r("div",Ln,[v.value.length?(l(),r("div",Rn,[t(Et,{class:"min-w-full"},{default:s(()=>[e("thead",null,[e("tr",null,[e("th",In,a(d.$t("App.api.table.name")),1),e("th",Tn,a(d.$t("App.api.table.keyPrefix")),1),e("th",Un,a(d.$t("App.api.table.status")),1),e("th",zn,a(d.$t("App.api.table.rateLimit")),1),e("th",Mn,a(d.$t("App.api.table.scopes")),1),e("th",Nn,a(d.$t("App.api.table.lastUsed")),1),e("th",On,a(d.$t("App.api.table.expiresAt")),1),e("th",qn,a(d.$t("App.api.table.createdAt")),1),e("th",Kn,a(d.$t("App.api.table.actions")),1)])]),e("tbody",null,[(l(!0),r(oe,null,ce(v.value,$=>(l(),r("tr",{key:$.id,class:"table-row"},[e("td",Fn,[e("div",Bn,a($.name),1)]),e("td",Gn,[e("code",Qn,a($.keyPrefix),1)]),e("td",jn,[t(De,{size:"small",color:$.status==="active"?"success":"warning",variant:"tonal",class:"text-xs"},{default:s(()=>
1[p(a($.status==="active"?d.$t("App.api.statusActive"):d.$t("App.api.statusDisabled")),1)]),_:2},1032,["color"])]),e("td",Hn,[e("span",Zn,a($.rateLimitPerMinute??"â"),1)]),e("td",Wn,[$.scopes?.length?(l(),r("div",Yn,[(l(!0),r(oe,null,ce($.scopes,fe=>(l(),ae(De,{key:fe,size:"small",color:"secondary",variant:"tonal",class:"text-xs"},{default:s(()=>[p(a(Y(fe)),1)]),_:2},1024))),128))])):(l(),r("span",Jn,a(d.$t("App.api.noScopes")),1))]),e("td",Xn,[e("span",eo,a($.lastUsedAt?h($.lastUsedAt):d.$t("App.api.neverUsed")),1)]),e("td",to,[e("span",ao,a($.expiresAt?h($.expiresAt,"dd.MM.yyyy"):"â"),1)]),e("td",so,[e("span",lo,a(h($.createdAt,"dd.MM.yyyy")),1)]),e("td",io,[e("div",no,[t(Pe,{text:d.$t("App.api.rotate"),location:"top"},{activator:s(({props:fe})=>[t(R,Ee({ref_for:!0},fe,{size:"x-small",variant:"text",color:"secondary",icon:A(aa),loading:G.value===$.id,disabled:te.value===$.id,onClick:Be=>N($)}),null,16,["icon","loading","disabled","onClick"])]),_:2},1032,["text"]),t(Pe,{text:d.$t("App.api.edit"),location:"top"},{activator:s(({props:fe})=>[t(R,Ee({ref_for:!0},fe,{size:"x-small",variant:"text",color:"primary",icon:A(Xe),disabled:te.value===$.id,onClick:Be=>L($)}),null,16,["icon","disabled","onClick"])]),_:2},1032,["text"]),t(Pe,{text:$.status==="active"?d.$t("App.api.disable"):d.$t("App.api.enable"),location:"top"},{activator:s(({props:fe})=>[t(R,Ee({ref_for:!0},fe,{size:"x-small",variant:"text",color:$.status==="active"?"warning":"success",icon:$.status==="active"?A(sa):A(la),loading:te.value===$.id,disabled:G.value===$.id,onClick:Be=>M($)}),null,16,["color","icon","loading","disabled","onClick"])]),_:2},1032,["text"]),t(Pe,{text:d.$t("App.api.delete"),location:"top"},{activator:s(({props:fe})=>[t(R,Ee({ref_for:!0},fe,{size:"x-small",variant:"text",color:"error",icon:A(et),loading:D.value===$.id,disabled:G.value===$.id||te.value===$.id,onClick:Be=>tt($)}),null,16,["icon","loading","disabled","onClick"])]),_:2},1032,["text"])])])]))),128))])]),_:1})])):(l(),r("div",oo,a(d.$t("App.api.empty")),1))]))])])]),t(pe,{modelValue:F.value,"onUpdate:modelValue":S[6]||(S[6]=$=>F.value=$),"max-width":"640"},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-lg font-semibold"},{default:s(()=>[p(a(d.$t("App.api.createDialogTitle")),1)]),_:1}),t(_e,null,{default:s(()=>[t(Me,{ref_key:"createFormRef",ref:j,modelValue:m.value,"onUpdate:modelValue":S[4]||(S[4]=$=>m.value=$),class:"flex flex-col gap-3",onSubmit:Fe(g,["prevent"])},{default:s(()=>[t(re,{modelValue:U.name,"onUpdate:modelValue":S[0]||(S[0]=$=>U.name=$),label:d.$t("App.api.nameLabel"),rules:W,variant:"outlined",color:"secondary","hide-details":"auto",required:""},null,8,["modelValue","label"]),t(re,{modelValue:U.rateLimitPerMinute,"onUpdate:modelValue":S[1]||(S[1]=$=>U.rateLimitPerMinute=$),modelModifiers:{number:!0},label:d.$t("App.api.rateLimitLabel"),variant:"outlined",color:"secondary","hide-details":"auto",type:"number",min:"1",hint:d.$t("App.api.rateLimitHint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),t(re,{modelValue:U.expiresAt,"onUpdate:modelValue":S[2]||(S[2]=$=>U.expiresAt=$),label:d.$t("App.api.expiresAtLabel"),variant:"outlined",color:"secondary","hide-details":"auto",type:"date",clearable:""},null,8,["modelValue","label"]),t(Ke,{modelValue:U.scopes,"onUpdate:modelValue":S[3]||(S[3]=$=>U.scopes=$),label:d.$t("App.api.scopesLabel"),items:k.value,"item-title":"title","item-value":"value",chips:"","closable-chips":"",multiple:"",clearable:"",variant:"outlined",color:"secondary","hide-details":"auto"},null,8,["modelValue","label","items"])]),_:1},8,["modelValue"])]),_:1}),t(ye,{class:"justify-end gap-2"},{default:s(()=>[t(R,{variant:"text",onClick:S[5]||(S[5]=$=>F.value=!1)},{default:s(()=>[p(a(d.$t("General.cancel")),1)]),_:1}),t(R,{color:"secondary",loading:z.value,disabled:z.value,onClick:g},{default:s(()=>[p(a(d.$t("General.save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:f.value,"onUpdate:modelValue":S[14]||(S[14]=$=>f.value=$),"max-width":"640"},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-lg font-semibold"},{default:s(()=>
1[p(a(d.$t("App.api.editDialogTitle")),1)]),_:1}),t(_e,null,{default:s(()=>[t(Me,{ref_key:"editFormRef",ref:K,modelValue:Q.value,"onUpdate:modelValue":S[12]||(S[12]=$=>Q.value=$),class:"flex flex-col gap-3",onSubmit:Fe(n,["prevent"])},{default:s(()=>[t(re,{modelValue:T.name,"onUpdate:modelValue":S[7]||(S[7]=$=>T.name=$),label:d.$t("App.api.nameLabel"),rules:W,variant:"outlined",color:"secondary","hide-details":"auto",required:""},null,8,["modelValue","label"]),t(re,{modelValue:T.rateLimitPerMinute,"onUpdate:modelValue":S[8]||(S[8]=$=>T.rateLimitPerMinute=$),modelModifiers:{number:!0},label:d.$t("App.api.rateLimitLabel"),variant:"outlined",color:"secondary","hide-details":"auto",type:"number",min:"1",hint:d.$t("App.api.rateLimitHint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),t(re,{modelValue:T.expiresAt,"onUpdate:modelValue":S[9]||(S[9]=$=>T.expiresAt=$),label:d.$t("App.api.expiresAtLabel"),variant:"outlined",color:"secondary","hide-details":"auto",type:"date",clearable:""},null,8,["modelValue","label"]),t(Ke,{modelValue:T.scopes,"onUpdate:modelValue":S[10]||(S[10]=$=>T.scopes=$),label:d.$t("App.api.scopesLabel"),items:k.value,"item-title":"title","item-value":"value",chips:"","closable-chips":"",multiple:"",clearable:"",variant:"outlined",color:"secondary","hide-details":"auto"},null,8,["modelValue","label","items"]),t(Ke,{modelValue:T.status,"onUpdate:modelValue":S[11]||(S[11]=$=>T.status=$),label:d.$t("App.api.statusLabel"),items:q.value,"item-title":"label","item-value":"value",variant:"outlined",color:"secondary","hide-details":"auto"},null,8,["modelValue","label","items"])]),_:1},8,["modelValue"])]),_:1}),t(ye,{class:"justify-end gap-2"},{default:s(()=>[t(R,{variant:"text",onClick:S[13]||(S[13]=$=>f.value=!1)},{default:s(()=>[p(a(d.$t("General.cancel")),1)]),_:1}),t(R,{color:"secondary",loading:B.value,disabled:B.value,onClick:n},{default:s(()=>[p(a(d.$t("General.save")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:o.value,"onUpdate:modelValue":S[16]||(S[16]=$=>o.value=$),"max-width":"640"},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-lg font-semibold"},{default:s(()=>[p(a(d.$t("App.api.showKeyTitle")),1)]),_:1}),t(_e,{class:"flex flex-col gap-3"},{default:s(()=>[t($e,{type:"warning",variant:"tonal",border:"start",density:"comfortable"},{default:s(()=>[p(a(d.$t("App.api.showKeySubtitle")),1)]),_:1}),e("div",ro,[e("div",co,a(H.value?.name),1),e("div",uo,[e("code",po,a(H.value?.value),1),t(R,{icon:"",color:"secondary",variant:"tonal",title:d.$t("App.api.copyKey"),onClick:xe},{default:s(()=>[t(ue,{icon:A(Ct)},null,8,["icon"])]),_:1},8,["title"])])])]),_:1}),t(ye,{class:"justify-end"},{default:s(()=>[t(R,{color:"secondary",variant:"flat",onClick:S[15]||(S[15]=$=>o.value=!1)},{default:s(()=>[p(a(d.$t("General.confirm")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:Le.value,"onUpdate:modelValue":S[18]||(S[18]=$=>Le.value=$),"max-width":"520"},{default:s(()=>[t(ve,null,{default:s(()=>[t(me,{class:"text-lg font-semibold"},{default:s(()=>[p(a(d.$t("App.api.deleteConfirmTitle")),1)]),_:1}),t(_e,{class:"text-sm text-light-text"},{default:s(()=>[p(a(d.$t("App.api.deleteConfirmText")),1)]),_:1}),t(ye,{class:"justify-end gap-2"},{default:s(()=>[t(R,{variant:"text",onClick:S[17]||(S[17]=$=>Le.value=!1)},{default:s(()=>[p(a(d.$t("General.cancel")),1)]),_:1}),t(R,{color:"error",loading:D.value===Ce.value?.id,onClick:at},{default:s(()=>[p(a(d.$t("App.api.delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}}),mo=be(vo,[["__scopeId","data-v-0748c89e"]]),_o={class:"settings-panel"},fo={key:0,class:"settings-card"},yo={key:1,class:"settings-card"},go={class:"settings-card__header"},ho={class:"settings-card__header-label"},bo={class:"settings-row"},$o={class:"settings-row__body"},Ao={class:"settings-row__label"},ko={class:"settings-row__desc"},wo={class:"settings-row"},So={class:"settings-row__body"},xo={class:"settings-row__label"},Co={class:"settings-row__desc"},Vo={class:"settings-row"},Eo={class:"settings-row__body"},Po={class:"settings-row__label"},Do={class:"settings-row__desc"},Lo={class:"flex items-center gap-2"},Ro={class:"text-sm"},Io={class:"settings-row settings-row--stack settings-row--last"},To={class:"settings-row__body"},Uo={class:"settings-row__label"},zo={class:"settings-row__desc"}
1,Mo={class:"export-controls"},No=he({__name:"MiscSettings",setup(V){const _=Ne(),y=ja(),{notifyError:I,notifySuccess:c}=Ae(),{t:v,locale:x}=we(),F=i(!0),f=i(!1),o=i(!1),m=i(!1),Q=i(null),j=i(null),K=ne({get:()=>_.bonus.enabled,set:w=>{_.bonus.enabled=w}}),U=i(""),T=i(!1),z=i(st(_.bonus.symbol)),B=ne(()=>ia.map(w=>({value:w,title:v(`App.misc.bonusSymbols.${w}`)}))),G=async w=>{T.value=!0;try{await _.updateBonusSettings({symbol:w}),c(v("App.misc.bonusSymbolSaved"))}catch(E){z.value=st(_.bonus.symbol),I(v(ie(E,"App.misc.bonusSaveError")))}finally{T.value=!1}},te=w=>Pt(new Date(w),"yyyy-MM-dd"),D=w=>{const C=(Number.isFinite(Number(w))?Math.max(0,Math.trunc(Number(w))):0)/100;try{return new Intl.NumberFormat(x.value||"de-DE",{minimumFractionDigits:2,maximumFractionDigits:2}).format(C)}catch{return C.toFixed(2)}},H=w=>{const E=(w??"").trim();if(!E)return 0;const C=E.replace(/\s/g,"").replace(",","."),h=Number(C);return!Number.isFinite(h)||h<0?null:Math.round(h*100)},O=()=>{U.value=D(_.bonus.amountPerDayCents||0)},se=async()=>{try{await _.updateBonusSettings({enabled:K.value}),c(v("App.misc.bonusSaved"))}catch(w){I(v(ie(w,"App.misc.bonusSaveError")))}},k=async()=>{const w=H(U.value);if(w===null)return O(),I(v("App.misc.bonusAmountInvalid"));o.value=!0;try{await _.updateBonusSettings({amountPerDayCents:w}),c(v("App.misc.bonusAmountSaved"))}catch(E){I(v(ie(E,"App.misc.bonusSaveError"))),O()}finally{o.value=!1}},q=async()=>(m.value=!1,k()),W=async()=>{if(!Q.value||!j.value)return;const w=J=>J instanceof Date?J:new Date(J),E=w(Q.value),C=w(j.value);if(Number.isNaN(E.getTime())||Number.isNaN(C.getTime()))return I(v("App.misc.bonusExportError"));const h=E.getTime()>C.getTime()?C:E,Y=E.getTime()>C.getTime()?E:C,u=te(h),X=te(Y);f.value=!0;try{const J=await y.exportBonusCsv(h,Y),P=new Blob([J],{type:"text/csv;charset=utf-8"}),g=URL.createObjectURL(P),L=document.createElement("a");L.href=g,L.download=`bonus_export_${u}_${X}.csv`,document.body.appendChild(L),L.click(),L.remove(),URL.revokeObjectURL(g),c(v("App.misc.bonusExportSuccess"))}catch(J){I(v(ie(J,"App.misc.bonusExportError")))}finally{f.value=!1}};return ke(async()=>{F.value=!0;try{await _.fetchBonusSettings(),O(),z.value=st(_.bonus.symbol);const w=new Date,E=new Date(w);E.setDate(w.getDate()-30),Q.value=E,j.value=w}catch(w){I(v(ie(w,"App.misc.loadError")))}finally{F.value=!1}}),Ve(()=>_.bonus.amountPerDayCents,()=>{m.value||O()}),(w,E)=>(l(),r("div",_o,[F.value?(l(),r("div",fo,[t(Se,{type:"list-item-two-line, divider, list-item-two-line",class:"pa-4"})])):(l(),r("div",yo,[e("div",go,[e("div",ho,a(w.$t("App.misc.bonusSectionTitle")),1)]),e("div",bo,[e("div",$o,[e("div",Ao,a(w.$t("App.misc.bonusLabel")),1),e("div",ko,a(w.$t("App.misc.bonusDescription")),1)]),t(ze,{modelValue:K.value,"onUpdate:modelValue":E[0]||(E[0]=C=>K.value=C),color:"secondary",density:"compact","hide-details":"",class:"ma-0",onChange:se},null,8,["modelValue"])]),e("div",wo,[e("div",So,[e("div",xo,a(w.$t("App.misc.bonusAmountLabel")),1),e("div",Co,a(w.$t("App.misc.bonusAmountDescription")),1)]),t(re,{modelValue:U.value,"onUpdate:modelValue":E[1]||(E[1]=C=>U.value=C),disabled:o.value,class:"bonus-amount-field",density:"compact",variant:"outlined","hide-details":"auto",color:"secondary",placeholder:w.$t("App.misc.bonusAmountPlaceholder"),suffix:"â¬",onFocus:E[2]||(E[2]=C=>m.value=!0),onBlur:q,onKeydown:It(Fe(k,["prevent"]),["enter"])},null,8,["modelValue","disabled","placeholder","onKeydown"])]),e("div",Vo,[e("div",Eo,[e("div",Po,a(w.$t("App.misc.bonusSymbolLabel")),1),e("div",Do,a(w.$t("App.misc.bonusSymbolDescription")),1)]),t(Ke,{modelValue:z.value,"onUpdate:modelValue":[E[3]||(E[3]=C=>z.value=C),G],items:B.value,"item-title":"title","item-value":"value",disabled:T.value,class:"bonus-symbol-field",density:"compact",variant:"outlined","hide-details":"",color:"secondary"},{selection:s(({item:C})=>[e("div",Lo,[t(ue,{icon:A(_t)(C.value),size:"18",color:"amber"},null,8,["icon"]),e("span",Ro,a(C.title),1)])]),item:s(({props:C,item:h})=>[t(na,Ee(C,{title:h.title}),{prepend:s(()=>[t(ue,{icon:A(_t)(h.value),size:"18",color:"amber"},null,8,["icon"])]),_:2},1040,["title"])]),_:1},8,["modelValue","items","disabled"])]),e("div",Io,[e("div",To,[e("div",Uo,a(w.$t("App.misc.bonusExportL
1abel")),1),e("div",zo,a(w.$t("App.misc.bonusExportDescription")),1)]),e("div",Mo,[t(yt,{modelValue:Q.value,"onUpdate:modelValue":E[4]||(E[4]=C=>Q.value=C),label:w.$t("General.from")},null,8,["modelValue","label"]),t(yt,{modelValue:j.value,"onUpdate:modelValue":E[5]||(E[5]=C=>j.value=C),label:w.$t("General.to")},null,8,["modelValue","label"]),t(R,{class:"export-btn","prepend-icon":A(St),loading:f.value,disabled:f.value||!Q.value||!j.value||!K.value,onClick:W},{default:s(()=>[p(a(w.$t("App.misc.bonusExportButton")),1)]),_:1},8,["prepend-icon","loading","disabled"])])])]))]))}}),Oo=be(No,[["__scopeId","data-v-d90b3ae1"]]),ct=V=>(Ie("data-v-581e6df6"),V=V(),Te(),V),qo={class:"settings-panel"},Ko={class:"settings-card"},Fo={class:"settings-card__header"},Bo={class:"settings-card__header-label"},Go={class:"settings-card__body"},Qo={class:"theme-subtitle"},jo={class:"theme-options"},Ho=["onClick"],Zo=Tt('<div class="preview-sidebar" data-v-581e6df6></div><div class="preview-content" data-v-581e6df6><div class="preview-bar" data-v-581e6df6></div><div class="preview-card" data-v-581e6df6></div><div class="preview-card preview-card--short" data-v-581e6df6></div></div>',2),Wo=[Zo],Yo={class:"theme-card__footer"},Jo={class:"theme-card__label"},Xo={key:0,class:"theme-card__check"},er=ct(()=>e("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none"},[e("circle",{cx:"7",cy:"7",r:"7",fill:"#d73625"}),e("path",{d:"M4 7l2 2 4-4",stroke:"#fff","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),tr=[er],ar={class:"settings-card"},sr={class:"settings-card__header"},lr={class:"settings-card__header-label"},ir={class:"settings-card__body"},nr={class:"theme-subtitle"},or={class:"scale-options"},rr=["onClick"],dr=ct(()=>e("span",{class:"scale-preview__glyph"},"Aa",-1)),cr={class:"scale-preview__percent"},ur={class:"theme-card__footer"},pr={class:"scale-card__text"},vr={class:"theme-card__label"},mr={class:"scale-card__desc"},_r={key:0,class:"theme-card__check"},fr=ct(()=>e("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none"},[e("circle",{cx:"7",cy:"7",r:"7",fill:"#d73625"}),e("path",{d:"M4 7l2 2 4-4",stroke:"#fff","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),yr=[fr],gr={key:0,class:"settings-card"},hr={class:"settings-card__header"},br={class:"settings-card__header-label"},$r={class:"settings-card__body"},Ar={class:"toggle-row"},kr={class:"toggle-row__text"},wr={class:"toggle-row__label"},Sr={class:"toggle-row__desc"},xr={key:0,class:"toggle-row"},Cr={class:"toggle-row__text"},Vr={class:"toggle-row__label"},Er={class:"toggle-row__desc"},Pr={class:"kpi-cards-block"},Dr={class:"toggle-row__text"},Lr={class:"toggle-row__label"},Rr={class:"toggle-row__desc"},Ir={class:"kpi-card-options"},Tr={class:"toggle-row__text"},Ur={class:"toggle-row__label"},zr={class:"toggle-row__desc"},Mr={key:1,class:"settings-card"},Nr={class:"settings-card__header"},Or={class:"settings-card__header-label"},qr={class:"settings-card__body"},Kr={class:"theme-subtitle"},Fr={key:2,class:"settings-card"},Br={class:"settings-card__header"},Gr={class:"settings-card__header-label"},Qr={class:"settings-card__body"},jr={class:"toggle-row"},Hr={class:"toggle-row__text"},Zr={class:"toggle-row__label"},Wr={class:"toggle-row__desc"},Yr={class:"toggle-row"},Jr={class:"toggle-row__text"},Xr={class:"toggle-row__label"},ed={class:"toggle-row__desc"},td={class:"settings-card"},ad={class:"settings-card__header"},sd={class:"settings-card__header-label"},ld={class:"settings-card__body"},id={class:"theme-subtitle"},nd={class:"lang-options"},od=["onClick"],rd={class:"lang-btn__label"},dd=he({__name:"AppearanceSettings",props:{isFreeUser:{type:Boolean,default:!1}},setup(V){const _=V,{t:y,locale:I}=we(),{currentTheme:c,applyTheme:v}=oa(),{currentUiScale:x,applyUiScale:F}=ra(),f=Ne(),o=rt(),{notifyError:m,notifySuccess:Q}=Ae(),j=i(!0),K=i(!0),U=i([]),T=i(!1),z=i(!1),B=i("firstName"),G=i(!1),te=i(!1),D=ne(()=>[{value:"system",label:y("App.Appearance.themeSystem")},{value:"light",label:y("App.Appearance.themeLight")},{value:"dark",label:y("App.Appearance.themeDark")}]),H=ne(()=>da.map(h=>({value:h,label:y(`App.Appearance.scale.${h}`),description:y(`App.Appearance.scale.${h}Desc`),percent:`${Math.round(ca[h]*100)}%`}))),O=ha,se=ne(()=>ua(I.value)),k=ne(()=>[{title:y("App.Appearance.sortByFirstName"),value:"firstName"},{title:y("App.Appearance.sortByLastName"),value:"lastName"}]),q=h=>{I.value=h,ba(h)},W=ne(()=>pa.filter(h=>z.value||!va.has(h)).map(h=>({id:h,title:y(_a[h]),description:y(ma[h])}
1)));async function w(h,Y){if(T.value)return;const u=[...U.value],X=Y?u.filter(J=>J!==h):ft([...u,h]);if(!(X.length===u.length&&X.every(J=>u.includes(J)))){U.value=X,T.value=!0;try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},hiddenCockpitKpiCards:X}}),Q(y("App.Appearance.kpiCardsSaved"))}catch(J){U.value=u,m(y(ie(J,"App.Appearance.kpiCardsSaveError")))}finally{T.value=!1}}}const E=i(!1),C=i(!1);return ke(async()=>{C.value=!1,E.value=!0;try{const h=await f.fetchUserPreferences();j.value=typeof h?.appearance?.showQuickActions=="boolean"?h.appearance.showQuickActions:!0,K.value=h?.appearance?.showMyTasks!==!1,B.value=fa(h?.appearance?.sortEmployeesBy),G.value=h?.appearance?.showDeletedFilterElements===!0,te.value=h?.appearance?.excludeDeletedEmployeesInAnalysis===!0,U.value=ft(h?.appearance?.hiddenCockpitKpiCards)}catch{j.value=!0,K.value=!0,B.value="firstName",G.value=!1,te.value=!1,U.value=[]}finally{await Ye(),E.value=!1,C.value=!0}try{z.value=await o.hasPermission("professional","can_view_action_required","staff")}catch{z.value=!1}}),Ve(j,async(h,Y)=>{if(!(E.value||!C.value))try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},showQuickActions:!!h}}),Q(y("App.Appearance.quickActionsVisibilitySaved"))}catch(u){E.value=!0,j.value=Y,E.value=!1,m(y(ie(u,"App.Appearance.quickActionsVisibilitySaveError")))}}),Ve(K,async(h,Y)=>{if(!(E.value||!C.value))try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},showMyTasks:!!h}}),Q(y("App.Appearance.myTasksVisibilitySaved"))}catch(u){E.value=!0,K.value=Y,E.value=!1,m(y(ie(u,"App.Appearance.myTasksVisibilitySaveError")))}}),Ve(B,async(h,Y)=>{if(!(E.value||!C.value))try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},sortEmployeesBy:h}}),Q(y("App.Appearance.sortEmployeesBySaved"))}catch(u){E.value=!0,B.value=Y,E.value=!1,m(y(ie(u,"App.Appearance.sortEmployeesBySaveError")))}}),Ve(G,async(h,Y)=>{if(!(E.value||!C.value))try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},showDeletedFilterElements:!!h}}),Q(y("App.Appearance.showDeletedFilterElementsSaved"))}catch(u){E.value=!0,G.value=Y,E.value=!1,m(y(ie(u,"App.Appearance.showDeletedFilterElementsSaveError")))}}),Ve(te,async(h,Y)=>{if(!(E.value||!C.value))try{await f.saveUserPreferences({quickActions:f.userPreferences.quickActions||[],appearance:{...f.userPreferences.appearance||{},excludeDeletedEmployeesInAnalysis:!!h}}),Q(y("App.Appearance.excludeDeletedEmployeesInAnalysisSaved"))}catch(u){E.value=!0,te.value=Y,E.value=!1,m(y(ie(u,"App.Appearance.excludeDeletedEmployeesInAnalysisSaveError")))}}),(h,Y)=>(l(),r("div",qo,[e("div",Ko,[e("div",Fo,[e("div",Bo,a(h.$t("App.Appearance.title")),1)]),e("div",Go,[e("p",Qo,a(h.$t("App.Appearance.description")),1),e("div",jo,[(l(!0),r(oe,null,ce(D.value,u=>(l(),r("button",{key:u.value,class:Re(["theme-card",{"theme-card--active":A(c)===u.value}]),onClick:X=>A(v)(u.value)},[e("div",{class:Re(["theme-preview",`theme-preview--${u.value}`])},Wo,2),e("div",Yo,[e("span",Jo,a(u.label),1),A(c)===u.value?(l(),r("span",Xo,tr)):ee("",!0)])],10,Ho))),128))])])]),e("div",ar,[e("div",sr,[e("div",lr,a(h.$t("App.Appearance.scaleSection")),1)]),e("div",ir,[e("p",nr,a(h.$t("App.Appearance.scaleDesc")),1),e("div",or,[(l(!0),r(oe,null,ce(H.value,u=>(l(),r("button",{key:u.value,class:Re(["theme-card",{"theme-card--active":A(x)===u.value}]),onClick:X=>A(F)(u.value)},[e("div",{class:Re(["scale-preview",`scale-preview--${u.value}`])},[dr,e("span",cr,a(u.percent),1)],2),e("div",ur,[e("div",pr,[e("span",vr,a(u.label),1),e("span",mr,a(u.description),1)]),A(x)===u.value?(l(),r("span",_r,yr)):ee("",!0)])],10,rr))),128))])])]),_.isFreeUser?ee("",!0):(l(),r("div",gr,[e("div",hr,[e("div",br,a(h.$t("App.Appearance.cockpitSection")),1)]),e("div",$r,[e("div",Ar,[e("div",kr,[e("span",wr,a(h.$t("Ap
1p.Appearance.showQuickActions")),1),e("span",Sr,a(h.$t("App.Appearance.showQuickActionsDesc")),1)]),t(qe,{modelValue:j.value,"onUpdate:modelValue":Y[0]||(Y[0]=u=>j.value=u),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),z.value?(l(),r("div",xr,[e("div",Cr,[e("span",Vr,a(h.$t("App.Appearance.showMyTasks")),1),e("span",Er,a(h.$t("App.Appearance.showMyTasksDesc")),1)]),t(qe,{modelValue:K.value,"onUpdate:modelValue":Y[1]||(Y[1]=u=>K.value=u),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])])):ee("",!0),e("div",Pr,[e("div",Dr,[e("span",Lr,a(h.$t("App.Appearance.kpiCardsTitle")),1),e("span",Rr,a(h.$t("App.Appearance.kpiCardsDesc")),1)]),e("div",Ir,[(l(!0),r(oe,null,ce(W.value,u=>(l(),r("div",{key:u.id,class:"kpi-card-option"},[e("div",Tr,[e("span",Ur,a(u.title),1),e("span",zr,a(u.description),1)]),t(qe,{"model-value":!U.value.includes(u.id),color:"primary","hide-details":"",density:"compact",disabled:T.value,"onUpdate:modelValue":X=>w(u.id,!!X)},null,8,["model-value","disabled","onUpdate:modelValue"])]))),128))])])])])),_.isFreeUser?ee("",!0):(l(),r("div",Mr,[e("div",Nr,[e("div",Or,a(h.$t("App.Appearance.sortSection")),1)]),e("div",qr,[e("p",Kr,a(h.$t("App.Appearance.sortDesc")),1),t(Ke,{modelValue:B.value,"onUpdate:modelValue":Y[2]||(Y[2]=u=>B.value=u),items:k.value,"item-title":"title","item-value":"value",label:h.$t("App.Appearance.sortEmployeesByLabel"),color:"secondary",variant:"outlined",density:"comfortable","hide-details":"",class:"sort-select"},null,8,["modelValue","items","label"])])])),_.isFreeUser?ee("",!0):(l(),r("div",Fr,[e("div",Br,[e("div",Gr,a(h.$t("App.Appearance.filterSection")),1)]),e("div",Qr,[e("div",jr,[e("div",Hr,[e("span",Zr,a(h.$t("App.Appearance.showDeletedFilterElements")),1),e("span",Wr,a(h.$t("App.Appearance.showDeletedFilterElementsDesc")),1)]),t(qe,{modelValue:G.value,"onUpdate:modelValue":Y[3]||(Y[3]=u=>G.value=u),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),e("div",Yr,[e("div",Jr,[e("span",Xr,a(h.$t("App.Appearance.excludeDeletedEmployeesInAnalysis")),1),e("span",ed,a(h.$t("App.Appearance.excludeDeletedEmployeesInAnalysisDesc")),1)]),t(qe,{modelValue:te.value,"onUpdate:modelValue":Y[4]||(Y[4]=u=>te.value=u),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])])])])),e("div",td,[e("div",ad,[e("div",sd,a(h.$t("App.Appearance.languageSection")),1)]),e("div",ld,[e("p",id,a(h.$t("App.Appearance.languageDesc")),1),e("div",nd,[(l(!0),r(oe,null,ce(A(O),u=>(l(),r("button",{key:u,class:Re(["lang-btn",{"lang-btn--active":se.value===u}]),onClick:X=>q(u)},[t(ya,{"lang-code":u,class:"lang-btn__flag"},null,8,["lang-code"]),e("span",rd,a(A(ga)(u)),1)],10,od))),128))])])])]))}}),cd=be(dd,[["__scopeId","data-v-581e6df6"]]),He=i(typeof Notification<"u"?Notification.permission:"unsupported"),Oe=i(!1),Qe=i(!1),Ze
1=()=>typeof window<"u"&&"serviceWorker"in navigator&&"PushManager"in window&&typeof Notification<"u",ud=V=>{const _="=".repeat((4-V.length%4)%4),y=(V+_).replace(/-/g,"+").replace(/_/g,"/"),I=atob(y),c=new Uint8Array(I.length);for(let v=0;v<I.length;v++)c[v]=I.charCodeAt(v);return c},pd=async()=>{const V=await navigator.serviceWorker.getRegistration();return V||navigator.serviceWorker.register("/sw.js")};function vd(){const V=Ne();return{isSupported:Ze,permission:He,isSubscribed:Oe,busy:Qe,refreshState:async()=>{if(!Ze()){He.value="unsupported",Oe.value=!1;return}He.value=Notification.permission;try{const c=await navigator.serviceWorker.getRegistration(),v=c?await c.pushManager.getSubscription():null;Oe.value=!!v}catch{Oe.value=!1}},subscribe:async()=>{if(!Ze())return!1;Qe.value=!0;try{const c=await Notification.requestPermission();if(He.value=c,c!=="granted")return!1;const v=await V.fetchPushVapidPublicKey();if(!v)return!1;const x=await pd();await navigator.serviceWorker.ready;let F=await x.pushManager.getSubscription();return F||(F=await x.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:ud(v)})),await V.savePushSubscription(F.toJSON()),Oe.value=!0,!0}finally{Qe.value=!1}},unsubscribe:async()=>{if(!Ze())return!1;Qe.value=!0;try{const c=await navigator.serviceWorker.getRegistration(),v=c?await c.pushManager.getSubscription():null;if(v){const x=v.endpoint;await v.unsubscribe().catch(()=>{}),await V.deletePushSubscription(x).catch(()=>{})}return Oe.value=!1,!0}finally{Qe.value=!1}}}}const md={class:"settings-panel"},_d={class:"settings-card"},fd={class:"settings-card__header"},yd={class:"settings-card__header-label"},gd={class:"settings-card__body"},hd={class:"theme-subtitle"},bd={key:3,class:"toggle-row"},$d={class:"toggle-row__text"},Ad={class:"toggle-row__label"},kd={class:"toggle-row__desc"},wd=he({__name:"NotificationsSettings",setup(V){const{t:_}=we(),{notifyError:y,notifySuccess:I}=Ae(),c=rt(),{isSupported:v,permission:x,isSubscribed:F,busy:f,refreshState:o,subscribe:m,unsubscribe:Q}=vd(),j=i(!1),K=i(!1),U=i(!0);ke(async()=>{j.value=v();try{U.value=await c.hasPermission("professional","can_view_action_required","staff")}catch{U.value=!1}
1U.value&&(await o(),K.value=F.value)});const T=async z=>{const B=!!z;try{if(B){if(!await m()){K.value=!1,x.value==="denied"?y(_("App.Notifications.permissionDenied")):y(_("App.Notifications.enableError"));return}K.value=!0,I(_("App.Notifications.enabled"))}else await Q(),K.value=!1,I(_("App.Notifications.disabled"))}catch(G){K.value=F.value,y(_(ie(G,"App.Notifications.enableError")))}};return(z,B)=>(l(),r("div",md,[e("div",_d,[e("div",fd,[e("div",yd,a(z.$t("App.Notifications.browserSection")),1)]),e("div",gd,[e("p",hd,a(z.$t("App.Notifications.description")),1),U.value?j.value?A(x)==="denied"?(l(),ae($e,{key:2,type:"warning",variant:"tonal",density:"comfortable",text:z.$t("App.Notifications.permissionDenied")},null,8,["text"])):ee("",!0):(l(),ae($e,{key:1,type:"info",variant:"tonal",density:"comfortable",text:z.$t("App.Notifications.unsupported")},null,8,["text"])):(l(),ae($e,{key:0,type:"info",variant:"tonal",density:"comfortable",text:z.$t("App.Notifications.noPermission")},null,8,["text"])),U.value&&j.value?(l(),r("div",bd,[e("div",$d,[e("span",Ad,a(z.$t("App.Notifications.actionRequiredLabel")),1),e("span",kd,a(z.$t("App.Notifications.actionRequiredDesc")),1)]),t(qe,{modelValue:K.value,"onUpdate:modelValue":[B[0]||(B[0]=G=>K.value=G),T],color:"primary","hide-details":"",density:"compact",disabled:A(f)||A(x)==="denied",loading:A(f)},null,8,["modelValue","disabled","loading"])])):ee("",!0)])])]))}}),Sd=be(wd,[["__scopeId","data-v-e05e1ee1"]]),xd=gt("consoleAccess",()=>{const V=i([]),_=i(!1),y=je().apiService;async function I(){_.value=!0;try{V.value=await y.request("GET","/console-invitations")}finally{_.value=!1}}async function c(o){const m=await y.request("POST","/console-invitations",o);return await I(),m}async function v(o){await y.request("POST",`/console-invitations/${o}/revoke`);const m=V.value.find(Q=>Q.id===o);m&&(m.status="revoked")}async function x(o,m){await y.request("PATCH",`/console-invitations/${o}`,m),await I()}async function F(o){await y.request("POST",`/console-invitations/${o}/reopen`);const m=V.value.find(Q=>Q.id===o);m&&(m.status="open",m.revokedAt=null)}async function f(o){await y.request("DELETE",`/console-invitations/${o}
1`),V.value=V.value.filter(m=>m.id!==o)}return{invitations:V,loading:_,fetchInvitations:I,createInvitation:c,updateInvitation:x,revokeInvitation:v,reopenInvitation:F,deleteInvitation:f}}),Dt=V=>(Ie("data-v-a654224b"),V=V(),Te(),V),Cd={class:"settings-panel"},Vd={class:"settings-card"},Ed={class:"settings-card__header"},Pd={class:"settings-card__header-label"},Dd={class:"settings-hint"},Ld={class:"settings-hint__icon"},Rd={class:"settings-hint__text"},Id={class:"settings-hint__strong"},Td=Dt(()=>e("div",{class:"settings-card__divider"},null,-1)),Ud={class:"settings-card__table-area"},zd={key:0,class:"flex flex-col gap-2 p-4"},Md={key:1,class:"flex flex-col items-center gap-3 py-12 text-gray-400"},Nd={class:"text-sm"},Od={key:2,class:"overflow-x-auto"},qd={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Kd={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Fd={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},Bd={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text whitespace-nowrap"},Gd={class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text whitespace-nowrap"},Qd=Dt(()=>e("th",{class:"px-3 py-2 text-left text-xs font-semibold uppercase text-light-text"},null,-1)),jd={class:"px-3 py-3 align-top"},Hd={class:"font-medium text-sm text-gray-900"},Zd={class:"text-xs text-gray-500 bg-gray-100 px-1.5 py-0.5 rounded mt-1 inline-block"},Wd={class:"px-3 py-3 align-top"},Yd={class:"flex flex-wrap gap-1 max-w-xs"},Jd={class:"px-3 py-3 align-top whitespace-nowrap"},Xd={class:"px-3 py-3 align-top text-sm text-gray-500 whitespace-nowrap"},ec={class:"px-3 py-3 align-top text-sm text-gray-500 whitespace-nowrap"},tc={class:"px-3 py-3 align-top"},ac={class:"flex gap-1 items-center"},sc={class:"flex flex-col gap-4"},lc={class:"text-sm font-medium text-gray-700 mb-2"},ic={class:"flex flex-col gap-1"},nc={class:"text-xs font-semibold uppercase text-gray-400 mt-2 mb-1"},oc={class:"text-sm text-gray-500 mb-4"},rc={class:"flex flex-col items-center gap-3 py-6 bg-gray-50 rounded-xl mb-4"},dc={class:"text-xs font-semibold uppercase text-gray-400 tracking-widest"},cc={class:"text-4xl font-bold tracking-[0.2em] text-gray-900 font-mono"},uc={class:"flex items-center gap-2"},pc=he({__name:"ConsoleSettings",setup(V){const{t:_}=we(),y=xd(),{notifyError:I,notifySuccess:c}=Ae(),v=[{groupKey:"riskAnalysis",scopes:["can_view_analyses","can_annotate_analyses"]},{groupKey:"campaigns",scopes:["can_manage_campaigns"]},{groupKey:"catalogs",scopes:["can_manage_catalogs"]}],x={can_annotate_analyses:["can_view_analyses"],can_manage_campaigns:["can_view_analyses"]},F=v.flatMap(n=>n.scopes),f=ne(()=>v.map(n=>({label:_(`App.console.scopeGroups.${n.groupKey}`),scopes:n.scopes.map(M=>({key:M,label:_(`App.console.scopes.${M}`)}))})));function o(n){const M=`App.console.scopes.${n}`,N=_(M);return N===M?n:N}const m=ne(()=>F.every(n=>k.value.scopes.includes(n))),Q=ne(()=>F.some(n=>k.value.scopes.includes(n))&&!m.value);function j(){m.value?k.value.scopes=[]:(k.value.scopes=[...F],q())}const K=i(!1),U=i(!1),T=i(!1),z=i(!1),B=i(null),G=i(null),te=i(null),D=i(null),H=i(!1),O=i(null),se=i(null),k=i({label:"",scopes:[],expiresInDays:null});function q(){const n=new Set(k.value.scopes);
1for(const[M,N]of Object.entries(x))n.has(M)&&N.forEach(de=>n.add(de));k.value.scopes=[...n]}function W(){se.value=null,k.value={label:"",scopes:[],expiresInDays:null},K.value=!0}function w(n){se.value=n.id;let M=null;if(n.expiresAt){const N=Math.ceil((new Date(n.expiresAt).getTime()-Date.now())/864e5);M=N>0?N:1}k.value={label:n.label,scopes:[...n.scopes],expiresInDays:M},K.value=!0}function E(){K.value=!1,se.value=null}async function C(){z.value=!0;try{if(se.value){const n={label:k.value.label.trim(),scopes:k.value.scopes,expiresInDays:k.value.expiresInDays??null};await y.updateInvitation(se.value,n),c(_("App.console.updateSuccess")),K.value=!1,se.value=null}else{const n=await y.createInvitation({label:k.value.label.trim(),scopes:k.value.scopes,expiresInDays:k.value.expiresInDays||void 0});O.value=n,K.value=!1,U.value=!0}}catch(n){const M=se.value?_("App.console.updateError"):_("App.console.createError");I(n?.response?.data?.message??M)}finally{z.value=!1}}async function h(n){B.value=n;try{await y.revokeInvitation(n),c(_("App.console.revokeSuccess"))}catch(M){I(M?.response?.data?.message??_("App.console.revokeError"))}finally{B.value=null}}async function Y(n){G.value=n;try{await y.reopenInvitation(n),c(_("App.console.reopenSuccess"))}catch(M){I(M?.response?.data?.message??_("App.console.reopenError"))}finally{G.value=null}}function u(n){D.value=n,T.value=!0}async function X(){if(D.value){te.value=D.value;try{await y.deleteInvitation(D.value),c(_("App.console.deleteSuccess")),T.value=!1,D.value=null}catch(n){I(n?.response?.data?.message??_("App.console.deleteError"))}finally{te.value=null}}}async function J(){O.value?.inviteUrl&&(await navigator.clipboard.writeText(O.value.inviteUrl),H.value=!0,setTimeout(()=>{H.value=!1},2e3))}function P(n){return{open:"success",redeemed:"info",revoked:"error",expired:"default"}[n]??"default"}function g(n){if(n.status==="redeemed"&&n.redeemedBy)return _("App.console.status.redeemedBy",{name:n.redeemedBy.name});const M=`App.console.status.${n.status}`,N=_(M);return N===M?n.status:N}function L(n){return new Date(n).toLocaleDateString(void 0,{day:"2-digit",month:"2-digit",year:"numeric"})}return ke(()=>y.fetchInvitations()),(n,M)=>(l(),r("div",Cd,[e("div",Vd,[e("div",Ed,[e("div",Pd,a(n.$t("App.console.listTitle")),1),t(R,{class:"create-btn",size:"small","prepend-icon":A(nt),onClick:W},{default:s(()=>[p(a(n.$t("App.console.createInvitation")),1)]),_:1},8,["prepend-icon"])]),e("div",Dd,[e("div",Ld,[t(ue,{icon:A(ot),size:"16"},null,8,["icon"])]),e("div",Rd,[e("span",Id,a(n.$t("App.console.hintStrong")),1),p(" "+a(n.$t("App.console.hintText")),1)])]),Td,e("div",Ud,[A(y).loading?(l(),r("div",zd,[t(Se,{type:"table-thead"}),t(Se,{type:"table-tbody"})])):A(y).invitations.length?(l(),r("div",Od,[t(Et,{class:"min-w-full"},{default:s(()=>[e("thead",null,[e("tr",null,[e("th",qd,a(n.$t("App.console.table.label")),1),e("th",Kd,a(n.$t("App.console.table.scopes")),1),e("th",Fd,a(n.$t("App.console.table.status")),1),e("th",Bd,a(n.$t("App.console.table.expiresAt")),1),e("th",Gd,a(n.$t("App.console.table.createdAt")),1),Qd])]),e("tbody",null,[(l(!0),r(oe,null,ce(A(y).invitations,N=>(l(),r("tr",{key:N.id,class:"table-row"},[e("td",jd,[e("div",Hd,a(N.label),1),e("code",Zd,a(N.token),1)]),e("td",Wd,[e("div",Yd,[(l(!0),r(oe,null,ce(N.scopes,de=>(l(),ae(De,{key:de,size:"x-small",variant:"tonal",color:"primary"},{default:s(()=>[p(a(o(de)),1)]),_:2},1024))),128))])]),e("td",Jd,[t(De,{size:"small",color:P(N.status),variant:"tonal"},{default:s(()=>[p(a(g(N)),1)]),_:2},1032,["color"])]),e("td",Xd,a(N.expiresAt?L(N.expiresAt):"â"),1),e("td",ec,a(L(N.createdAt)),1),e("td",tc,[e("div",ac,[t(Pe,{text:n.$t("App.console.tooltip.edit"),location:"top"},{activator:s(({props:de})=>[N.status!=="redeemed"?(l(),ae(R,Ee({key:0,ref_for:!0},de,{size:"x-small",variant:"text",color:"default",icon:A(bt),onClick:xe=>w(N)}),null,16,["icon","onClick"])):ee("",!0)]),_:2},1032,["text"]),t(Pe,{text:n.$t("App.console.tooltip.reopen"),location:"top"},{activator:s(({props:de})=>[N.status==="revoked"?(l(),ae(R,Ee({key:0,ref_for:!0},de,{size:"x-small",variant:"text",color:"success",icon:A(Aa),loading:G.value===N.id,onClick:xe=>Y(N.id)}),null,16,["icon","loading","onClick"])):ee("",!0)]),_:2},1032,["text"]),t(Pe,{text:n.$t("App.console.tooltip.revoke"),location:"top"},{activator:s(({props:de})=>[N.status==="open"||N.status==="redeemed"?(l(),ae(R,Ee({key:0,ref_for:!0},de,{size:"x-small",variant:"text",color:"warning",icon:A(ka),loading:B.value===N.id,onClick:xe=>h(N.id)}),null,16,["icon","loading","onClick"])):ee("",!0)]),_:2},1032,["text"]),t(Pe,{text:n.$t("App.console.tooltip.delete"),location:"top"},{activator:s(({props:de})=>[N.status!=="redeemed"?(l(),ae(R,Ee({key:0,ref_for:!0},de,{size:"x-small",variant:"text",color:"error",icon:A(kt),onClick:xe=>u(N.id)}),null,16,["icon","onClick"])):ee("",!0)]),_:2},1032,["text"])])])]))),128))])]),_:1})])):(l(),r("div",Md,[t(ue,{icon:A($a),size:"40"},null,8,["icon"]),e("p",Nd,a(n.$t("App.console.empty")),1)]))])]),t(pe,{modelValue:K.value,"onUpdate:modelValue":M[3]||(M[3]=N=>K.value=N),"max-width":"560",persistent:""},{default:s(()=>[t(ve,{class:"rounded-xl"},{default:s(()=>[t(me,{class:"text-base font-semibold px-6 pt-5 pb-2"},{default:s(()=>
1[p(a(se.value?n.$t("App.console.editDialog.title"):n.$t("App.console.createDialog.title")),1)]),_:1}),t(_e,{class:"px-6 pb-2"},{default:s(()=>[e("div",sc,[t(re,{modelValue:k.value.label,"onUpdate:modelValue":M[0]||(M[0]=N=>k.value.label=N),label:n.$t("App.console.createDialog.labelLabel"),hint:n.$t("App.console.createDialog.labelHint"),"persistent-hint":"",variant:"outlined",density:"compact"},null,8,["modelValue","label","hint"]),e("div",null,[e("div",lc,a(n.$t("App.console.createDialog.permissionsLabel")),1),e("div",ic,[t(Je,{"model-value":m.value,indeterminate:Q.value,label:n.$t("App.console.createDialog.allLabel"),density:"compact","hide-details":"",color:"primary",class:"font-medium","onUpdate:modelValue":j},null,8,["model-value","indeterminate","label"]),t(wa,{class:"my-1"}),(l(!0),r(oe,null,ce(f.value,N=>(l(),r(oe,{key:N.label},[e("div",nc,a(N.label),1),(l(!0),r(oe,null,ce(N.scopes,de=>(l(),ae(Je,{key:de.key,modelValue:k.value.scopes,"onUpdate:modelValue":[M[1]||(M[1]=xe=>k.value.scopes=xe),q],value:de.key,label:de.label,density:"compact","hide-details":"",color:"primary"},null,8,["modelValue","value","label"]))),128))],64))),128))])]),t(re,{modelValue:k.value.expiresInDays,"onUpdate:modelValue":M[2]||(M[2]=N=>k.value.expiresInDays=N),modelModifiers:{number:!0},label:n.$t("App.console.createDialog.expiresInDaysLabel"),type:"number",min:"1",max:"365",hint:n.$t("App.console.createDialog.expiresInDaysHint"),"persistent-hint":"",variant:"outlined",density:"compact",clearable:""},null,8,["modelValue","label","hint"])])]),_:1}),t(ye,{class:"px-6 pb-5 gap-2"},{default:s(()=>[t(We),t(R,{variant:"text",onClick:E},{default:s(()=>[p(a(n.$t("General.cancel")),1)]),_:1}),t(R,{variant:"flat",color:"primary",loading:z.value,disabled:!k.value.label.trim()||k.value.scopes.length===0,onClick:C},{default:s(()=>[p(a(se.value?n.$t("General.save"):n.$t("General.create")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:T.value,"onUpdate:modelValue":M[5]||(M[5]=N=>T.value=N),"max-width":"440"},{default:s(()=>[t(ve,{class:"rounded-xl"},{default:s(()=>[t(me,{class:"text-base font-semibold px-6 pt-5 pb-2"},{default:s(()=>[p(a(n.$t("App.console.tooltip.delete")),1)]),_:1}),t(_e,{class:"px-6 pb-2 text-sm text-gray-500"},{default:s(()=>[p(a(n.$t("App.console.deleteConfirm")),1)]),_:1}),t(ye,{class:"px-6 pb-5 gap-2"},{default:s(()=>[t(We),t(R,{variant:"text",onClick:M[4]||(M[4]=N=>T.value=!1)},{default:s(()=>[p(a(n.$t("General.cancel")),1)]),_:1}),t(R,{variant:"flat",color:"error",loading:te.value===D.value,onClick:X},{default:s(()=>[p(a(n.$t("App.console.tooltip.delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(pe,{modelValue:U.value,"onUpdate:modelValue":M[7]||(M[7]=N=>U.value=N),"max-width":"480"},{default:s(()=>[t(ve,{class:"rounded-xl"},{default:s(()=>[t(me,{class:"text-base font-semibold px-6 pt-5 pb-1"},{default:s(()=>[p(a(n.$t("App.console.resultDialog.title")),1)]),_:1}),t(_e,{class:"px-6 pb-4"},{default:s(()=>[e("p",oc,a(n.$t("App.console.resultDialog.description")),1),e("div",rc,[e("div",dc,a(n.$t("App.console.resultDialog.codeLabel")),1),e("div",cc,a(O.value?.token),1)]),e("div",uc,[t(re,{"model-value":O.value?.inviteUrl,label:n.$t("App.console.resultDialog.linkLabel"),variant:"outlined",density:"compact",readonly:"","hide-details":"",class:"flex-1"},null,8,["model-value","label"]),t(R,{icon:H.value?A(Sa):A(Ct),variant:"tonal",size:"small",color:H.value?"success":"default",onClick:J},null,8,["icon","color"])])]),_:1}),t(ye,{class:"px-6 pb-5"},{default:s(()=>[t(We),t(R,{variant:"flat",color:"primary",onClick:M[6]||(M[6]=N=>U.value=!1)},{default:s(()=>[p(a(n.$t("App.console.resultDialog.close")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),vc=be(pc,[["__scopeId","data-v-a654224b"]]),mc={class:"settings-panel"},_c={class:"settings-card"},fc={class:"settings-card__header"},yc={class:"settings-card__header-label"},gc={class:"settings-card__body"},hc={class:"theme-subtitle"},bc=he({__name:"OnboardingSettings",setup(V){const _=xa();return(y,I)=>(l(),r("div",mc,[e("div",_c,[e("div",fc,[e("div",yc,a(y.$t("App.Onboarding.settingsTitle")),1)]),e("div",gc,[e("p",hc,a(y.$t("App.Onboarding.settingsText")),1),e("div",null,[t(R,{color:"secondary",class:"onboarding-start-btn","prepe
1nd-icon":A(Vt),loading:A(_).starting,onClick:I[0]||(I[0]=c=>A(_).startTour())},{default:s(()=>[p(a(y.$t("App.Onboarding.settingsStart")),1)]),_:1},8,["prepend-icon","loading"])])])])]))}}),$c=be(bc,[["__scopeId","data-v-4f9af231"]]),Ac=V=>(Ie("data-v-5071edaa"),V=V(),Te(),V),kc={key:0,class:"settings-shell"},wc={class:"settings-nav"},Sc={class:"settings-nav__header"},xc={class:"settings-nav__icon-wrap"},Cc={class:"settings-nav__title"},Vc={class:"settings-nav__groups"},Ec={class:"settings-nav__group-label"},Pc=["onClick"],Dc={class:"settings-nav__item-icon"},Lc={class:"settings-nav__item-label"},Rc={key:0,class:"settings-nav__item-indicator"},Ic={class:"settings-content"},Tc={class:"settings-content__inner"},Uc={class:"settings-section-header"},zc=Ac(()=>e("div",{class:"settings-section-header__accent"},null,-1)),Mc={class:"settings-section-header__title"},Nc={key:0,class:"settings-section-header__subtitle"},Oc={key:1,class:"settings-loading"},qc=he({__name:"Settings",props:{onlySections:{default:void 0}},emits:["close"],setup(V,{emit:_}){const y=_,I=V,{notifyError:c}=Ae(),{t:v}=we(),x=i("company"),F=i(!0),f=rt(),o=i(!1),m=i(!1),Q=i(!1),j=i(!0),K=i(!1),U=i(!1),T=i(!1),z=i(!1),B=ne(()=>[{label:v("App.Settings.groupOrganization"),items:[{id:"company",label:v("App.Company.title"),description:v("App.Company.description"),icon:At,visible:!0},{id:"rolesRights",label:v("App.rolesRights.title"),description:v("App.rolesRights.description"),icon:Ca,visible:Q.value}]},{label:v("App.Settings.groupCompliance"),items:[{id:"actionRequired",label:v("App.actionRequired.title"),description:v("App.actionRequired.description"),icon:Va,visible:o.value},{id:"privacy",label:v("App.privacy.title"),description:v("App.privacy.description"),icon:Ea,visible:m.value},{id:"catalog",label:v("App.CatalogSettings.title"),description:v("App.CatalogSettings.description"),icon:Pa,visible:K.value}]},{label:v("App.Settings.groupSystem"),items:[{id:"payment",label:v("App.Payment.title"),description:v("App.Payment.description"),icon:xt,visible:!0},{id:"misc",label:v("App.misc.title"),description:v("App.misc.description"),icon:Da,visible:!z.value},{id:"appearance",label:v("App.Appearance.title"),description:v("App.Appearance.description"),icon:La,visible:!0},{id:"notifications",label:v("App.Notifications.title"),description:v("App.Notifications.description"),icon:Ra,visible:!0},{id:"api",label:v("App.api.title"),description:v("App.api.description"),icon:Ia,visible:U.value},{id:"console",label:v("App.console.title"),description:v("App.console.description"),icon:Ta,visible:T.value},{id:"onboarding",label:v("App.Onboarding.settingsTitle"),description:v("App.Onboarding.settingsDescription"),icon:Vt,visible:!0}]}]),G=ne(()=>B.value.map(D=>({...D,items:D.items.filter(H=>H.visible&&(!I.onlySections||I.onlySections.includes(H.id)))})).filter(D=>D.items.length>0));Ve(G,D=>{const H=D.flatMap(O=>O.items.map(se=>se.id));H.length&&!H.includes(x.value)&&(x.value=H[0])},{immediate:!0});const te=ne(()=>{for(const D of G.value){const H=D.items.find(O=>O.id===x.value);if(H)return H}return null});return Ut(async()=>{F.value=!0;try{const D=await f.getLicenseKey();z.value=D==="free"}catch{}try{j.value=await f.hasPermission("basic","can_edit_company_data","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{o.value=await f.hasPermission("professional","can_edit_action_required_settings","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{m.value=await f.hasPermission("basic","can_edit_privacy_settings","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{K.value=await f.hasPermission("basic_plus","can_edit_catalogs","operational supervisor")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{Q.value=await f.hasPermission("enterprise","can_edit_roles","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{U.value=await f.hasPermission("enterprise","can_view_api_keys","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}try{T.value=await f.hasPermission("basic","can_manage_console_access","admin")}catch(D){c(v(ie(D,"App.rolesRights.permissionCheckError")))}F.value=!1}),(D,H)=>F.value?(l(),r("div",Oc,[t(Ue,{indeterminate:"",color:"secondary",size:"40"})])):(l(),r("div",kc,[e("nav",wc,[e("div",Sc,[e("div",xc,[t(ue,{icon:A(Ua),size:"20"},null,8,["icon"])]),e("span",Cc,a(D.$t("General.settings")),1),t(R,{icon:"",size:"x-small",variant:"text",class:"settings-nav__close-btn ml-auto",onClick:H[0]||(H[0]=O=>y("close"))},{default:s(()=>[t(ue,{icon:A($t),size:"18"},null,8,["icon"])]),_:1})]),e("div",Vc,[(l(!0),r(oe,null,ce(G.value,O=>(l(),r(oe,{key:O.label},[e("div",Ec,a(O.label),1),(l(!0),r(oe,null,ce(O.items,se=>(l(),r("button",{key:se.id,class:Re(["settings-nav__item",{"settings-nav__item--active":x.value===se.id}]),onClick:k=>x.value=se.id},[e("span",Dc,[t(ue,{icon:se.icon,size:"18"},null,8,["icon"])]),e("span",Lc,a(se.label),1),x.value===se.id?(l(),r("span",Rc)):ee("",!0)],10,Pc))),128))],64))),128))])]),e("div",Ic,[e("div",Tc,[e("div",Uc,[zc,e("div",null,[e("h2",Mc,a(te.value?.label),1),te.value?.description?(l(),r("p",Nc,a(te.value.description),1)):ee("",!0)])]),t(zt,{name:"section-fade",mode:"out-in"},{default:s(()=>[(l(),r("div",{key:x.value},[x.value==="company"?(l(),ae($s,{key:0,"can-manage-company-settings":j.value},null,8,["can-manage-company-settings"])):x.value==="actionRequired"&&o.value?(l(),ae(Ms,{key:1})):x.value==="privacy"&&m.value?(l(),ae(tl,{key:2})):x.value==="api"&&U.value?(l(),ae(mo,{key:3})):x.value==="catalog"&&K.value?(l(),ae(Ml,{key:4})):x.value==="rolesRights"&&Q.value?(l(),ae(ai,{key:5})):x.value==="payment"?(l(),ae(gn,{key:6,onClose:H[1]||(H[1]=O=>y("close"))})):x.value==="misc"?(l(),ae(Oo,{key:7})):x.value==="appearance"?(l(),ae(cd,{key:8,"is-free-user":z.value},null,8,["is-free-user"])):x.value==="notifications"?(l(),ae(Sd,{key:9})):x.value==="console"&&T.value?(l(),ae(vc,{key:10})):x.value==="onboarding"?(l(),ae($c,{key:11})):ee("",!0)]))]),_:1})])])]))}}),vu=be(qc,[["__scopeId","data-v-5071edaa"]]);export{vu 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.