import{useApi as e,defineModule as a}from"@directus/extensions-sdk";import{defineComponent as t,ref as l,onMounted as n,resolveComponent as i,resolveDirective as d,openBlock as u,createBlock as r,withCtx as o,createVNode as s,createElementBlock as c,Fragment as v,renderList as m,createTextVNode as f,toDisplayString as p,createCommentVNode as g,createElementVNode as _,withDirectives as b,withModifiers as y}from"vue";var h=Object.defineProperty,x=Object.defineProperties,w=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable,N=(e,a,t)=>a in e?h(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;const M={class:"content-wrapper"},O={key:0,class:"empty-state"},j={class:"header"},F={class:"header-left"},E={class:"title"},z={class:"subtitle"},P={class:"header-right"},U={class:"user-cell"},q={class:"user-name"},S={key:0,class:"status-date"},$={class:"action-buttons"},A={class:"drawer-content"},T={class:"drawer-actions"},Z={class:"drawer-content"},D={class:"drawer-actions"},B={key:0,class:"drawer-content"},I={class:"drawer-actions"};var K=t({__name:"module",setup(a){const t=e(),h=l([]),K=l(null),L=l([]),Q=l(!1),W=l(!1),G=l(null),H=l(null),J=l(!1),R=l(!1),X=l(!1),Y=l(null),ee=l({name:""}),ae=l({first_name:"",last_name:"",email:""}),te=[{text:"Name",value:"name",sortable:!0},{text:"E-Mail",value:"email",sortable:!0},{text:"Zuletzt eingeladen",value:"last_invited",sortable:!0},{text:"",value:"actions",width:60,align:"right"}];async function le(){const e=await t.get("/items/companies",{params:{fields:["id","name"],sort:"name"}});h.value=e.data.data}async function ne(e){K.value=e,Q.value=!0;try{const a=await t.get("/items/client_users",{params:{filter:{company:{_eq:e.id}},fields:["*"],sort:"first_name"}});L.value=a.data.data}finally{Q.value=!1}}async function ie(){if(ee.value.name){W.value=!0;try{await t.post("/items/companies",ee.value),H.value={type:"success",message:"Firma erfolgreich angelegt!"},ee.value.name="",J.value=!1,await le()}catch(e){H.value={type:"danger",message:e.message}}finally{W.value=!1}}}async function de(){if(ae.value.email&&K.value){W.value=!0;try{await t.post("/items/client_users",(e=((e,a)=>{for(var t in a||(a={}))V.call(a,t)&&N(e,t,a[t]);if(k)for(var t of k(a))C.call(a,t)&&N(e,t,a[t]);return e})({},ae.value),a={company:K.value.id},x(e,w(a)))),H.value={type:"success",message:"Mitarbeiter erfolgreich angelegt!"},ae.value={first_name:"",last_name:"",email:""},R.value=!1,await ne(K.value)}catch(e){H.value={type:"danger",message:e.message}}finally{W.value=!1}var e,a}}function ue(e){return new Date(e).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}function re(e){const a=(null==e?void 0:e.item)||e;a&&a.id&&oe(a)}function oe(e){Y.value=e,X.value=!0}function se(){K.value&&window.open(`/admin/content/companies/${K.value.id}`,"_blank")}return n(()=>{le()}),(e,a)=>{const l=i("v-icon"),n=i("v-list-item-icon"),x=i("v-text-overflow"),w=i("v-list-item-content"),k=i("v-list-item"),V=i("v-divider"),C=i("v-list"),N=i("v-notice"),le=i("v-button"),ce=i("v-info"),ve=i("v-avatar"),me=i("v-chip"),fe=i("v-table"),pe=i("v-input"),ge=i("v-field-template"),_e=i("v-drawer"),be=i("v-list-item-label"),ye=i("v-list-item-hint"),he=i("private-view"),xe=d("tooltip");return u(),r(he,{title:"Customer Manager"},{navigation:o(()=>[s(C,{nav:""},{default:o(()=>[s(k,{onClick:a[0]||(a[0]=e=>J.value=!0),clickable:""},{default:o(()=>[s(n,null,{default:o(()=>[s(l,{name:"add",color:"var(--theme--primary)"})]),_:1}),s(w,null,{default:o(()=>[s(x,{text:"Neue Firma anlegen"})]),_:1})]),_:1}),s(V),(u(!0),c(v,null,m(h.value,e=>{var a;return u(),r(k,{key:e.id,active:(null==(a=K.value)?void 0:a.id)===e.id,class:"company-item",clickable:"",onClick:a=>ne(e)},{default:o(()=>[s(n,null,{default:o(()=>[s(l,{name:"business"})]),_:1}),s(w,null,{default:o(()=>[s(x,{text:e.name},null,8,["text"])]),_:2},1024)]),_:2},1032,["active","onClick"])}),128))]),_:1})]),"title-outer:after":o(()=>[H.value?(u(),r(N,{key:0,type:H.value.type,onClose:a[1]||(a[1]=e=>H.value=null),dismissible:""},{default:o(()=>[f(p(H.value.message),1)]),_:1},8,["type"])):g("v-if",!0)]),default:o(()=>[_("div",M,[K.value?(u(),c(v,{key:1},[_("header",j,[_("div",F,[_("h1",E,p(K.value.name),1),_("p",z,p(L.value.length)+" Kunden-Mitarbeiter",1)]),_("div",P,[b((u(),r(le,{secondary:"",rounded:"",icon:"",onClick:se},{default:o(()=>[s(l,{name:"edit"})]),_:1})),[[xe,"Firma bearbeiten",void 0,{bottom:!0}]]),s(le,{primary:"",onClick:a[3]||(a[3]=e=>R.value=!0)},{default:o(()=>[...a[19]||(a[19]=[f(" Mitarbeiter hinzufügen ",-1)])]),_:1})])]),s(fe,{headers:te,items:L.value,loading:Q.value,class:"clickable-table","fixed-header":"","onClick:row":re},{"item.name":o(({item:e})=>[_("div",U,[s(ve,{name:e.first_name,"x-small":""},null,8,["name"]),_("span",q,p(e.first_name)+" "+p(e.last_name),1)])]),"item.last_invited":o(({item:e})=>[e.last_invited?(u(),c("span",S,p(ue(e.last_invited)),1)):(u(),r(me,{key:1,"x-small":""},{default:o(()=>[...a[20]||(a[20]=[f("Noch nie",-1)])]),_:1}))]),"item.actions":o(({item:e})=>[_("div",$,[b((u(),r(le,{secondary:"",rounded:"",icon:"",onClick:y(a=>oe(e),["stop"])},{default:o(()=>[s(l,{name:"visibility"})]),_:1},8,["onClick"])),[[xe,"Quick-View",void 0,{bottom:!0}]])])]),_:2},1032,["items","loading"])],64)):(u(),c("div",O,[s(ce,{title:"Firmen auswählen",icon:"business",center:""},{default:o(()=>[a[17]||(a[17]=f(" Wähle eine Firma in der Navigation aus oder ",-1)),s(le,{"x-small":"",onClick:a[2]||(a[2]=e=>J.value=!0)},{default:o(()=>[...a[16]||(a[16]=[f("erstelle eine neue Firma",-1)])]),_:1}),a[18]||(a[18]=f(". ",-1))]),_:1})]))]),s(_e,{modelValue:J.value,"onUpdate:modelValue":a[5]||(a[5]=e=>J.value=e),title:"Neue Firma anlegen",icon:"business",onCancel:a[6]||(a[6]=e=>J.value=!1)},{default:o(()=>[_("div",A,[s(ge,{label:"Firmenname",required:""},{default:o(()=>[s(pe,{modelValue:ee.value.name,"onUpdate:modelValue":a[4]||(a[4]=e=>ee.value.name=e),placeholder:"z.B. KLZ Cables",autofocus:""},null,8,["modelValue"])]),_:1}),_("div",T,[s(le,{primary:"",block:"",loading:W.value,onClick:ie},{default:o(()=>[...a[21]||(a[21]=[f("Firma speichern",-1)])]),_:1},8,["loading"])])])]),_:1},8,["modelValue"]),s(_e,{modelValue:R.value,"onUpdate:modelValue":a[10]||(a[10]=e=>R.value=e),title:"Neuen Mitarbeiter anlegen",icon:"person_add",onCancel:a[11]||(a[11]=e=>R.value=!1)},{default:o(()=>[_("div",Z,[s(ge,{label:"Vorname",required:""},{default:o(()=>[s(pe,{modelValue:ae.value.first_name,"onUpdate:modelValue":a[7]||(a[7]=e=>ae.value.first_name=e),placeholder:"Vorname",autofocus:""},null,8,["modelValue"])]),_:1}),s(ge,{label:"Nachname",required:""},{default:o(()=>[s(pe,{modelValue:ae.value.last_name,"onUpdate:modelValue":a[8]||(a[8]=e=>ae.value.last_name=e),placeholder:"Nachname"},null,8,["modelValue"])]),_:1}),s(ge,{label:"E-Mail",required:""},{default:o(()=>[s(pe,{modelValue:ae.value.email,"onUpdate:modelValue":a[9]||(a[9]=e=>ae.value.email=e),placeholder:"E-Mail Adresse",type:"email"},null,8,["modelValue"])]),_:1}),_("div",D,[s(le,{primary:"",block:"",loading:W.value,onClick:de},{default:o(()=>[...a[22]||(a[22]=[f("Mitarbeiter speichern",-1)])]),_:1},8,["loading"])])])]),_:1},8,["modelValue"]),s(_e,{modelValue:X.value,"onUpdate:modelValue":a[14]||(a[14]=e=>X.value=e),title:Y.value?`${Y.value.first_name} ${Y.value.last_name}`:"Mitarbeiter",icon:"person",onCancel:a[15]||(a[15]=e=>X.value=!1)},{default:o(()=>[Y.value?(u(),c("div",B,[s(C,null,{default:o(()=>[s(k,null,{default:o(()=>[s(w,null,{default:o(()=>[s(be,null,{default:o(()=>[...a[23]||(a[23]=[f("Name",-1)])]),_:1}),s(ye,null,{default:o(()=>[f(p(Y.value.first_name)+" "+p(Y.value.last_name),1)]),_:1})]),_:1})]),_:1}),s(k,{divider:""},{default:o(()=>[s(w,null,{default:o(()=>[s(be,null,{default:o(()=>[...a[24]||(a[24]=[f("E-Mail",-1)])]),_:1}),s(ye,null,{default:o(()=>[f(p(Y.value.email),1)]),_:1})]),_:1})]),_:1}),s(k,{divider:""},{default:o(()=>[s(w,null,{default:o(()=>[s(be,null,{default:o(()=>[...a[25]||(a[25]=[f("Temporäres Passwort",-1)])]),_:1}),s(ye,{class:"password-text"},{default:o(()=>[f(p(Y.value.temporary_password||"Noch nicht generiert"),1)]),_:1})]),_:1})]),_:1}),s(k,{divider:""},{default:o(()=>[s(w,null,{default:o(()=>[s(be,null,{default:o(()=>[...a[26]||(a[26]=[f("Zuletzt eingeladen",-1)])]),_:1}),s(ye,null,{default:o(()=>[f(p(Y.value.last_invited?ue(Y.value.last_invited):"Nie"),1)]),_:1})]),_:1})]),_:1})]),_:1}),_("div",I,[s(le,{primary:"",block:"",loading:G.value===Y.value.id,onClick:a[12]||(a[12]=e=>async function(e){var a,l,n,i,d;G.value=e.id;try{await t.post("/flows/trigger/33443f6b-cec7-4668-9607-f33ea674d501",[e.id]),H.value={type:"success",message:`Zugangsdaten für ${e.first_name} wurden versendet. 📧`},await ne(K.value),(null==(a=Y.value)?void 0:a.id)===e.id&&(Y.value=L.value.find(a=>a.id===e.id))}catch(e){console.error("Failed to trigger invite flow",e),H.value={type:"danger",message:`Fehler beim Senden: ${(null==(d=null==(i=null==(n=null==(l=e.response)?void 0:l.data)?void 0:n.errors)?void 0:i[0])?void 0:d.message)||e.message}`}}finally{G.value=null}}(Y.value))},{default:o(()=>[...a[27]||(a[27]=[f(" Zugangsdaten generieren & senden ",-1)])]),_:1},8,["loading"]),s(le,{secondary:"",block:"",onClick:a[13]||(a[13]=e=>{var a;(a=Y.value)&&a.id&&window.open(`/admin/content/client_users/${a.id}`,"_blank")})},{default:o(()=>[...a[28]||(a[28]=[f(" Vollständiges Profil öffnen ",-1)])]),_:1})])])):g("v-if",!0)]),_:1},8,["modelValue","title"])]),_:1})}}}),L=[],Q=[];!function(e,a){if(e&&"undefined"!=typeof document){var t,l=!0===a.prepend?"prepend":"append",n=!0===a.singleTag,i="string"==typeof a.container?document.querySelector(a.container):document.getElementsByTagName("head")[0];if(n){var d=L.indexOf(i);-1===d&&(d=L.push(i)-1,Q[d]={}),t=Q[d]&&Q[d][l]?Q[d][l]:Q[d][l]=u()}else t=u();65279===e.charCodeAt(0)&&(e=e.substring(1)),t.styleSheet?t.styleSheet.cssText+=e:t.appendChild(document.createTextNode(e))}function u(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),a.attributes)for(var t=Object.keys(a.attributes),n=0;n{const t=e.__vccOpts||e;for(const[e,l]of a)t[e]=l;return t})(K,[["__scopeId","data-v-1ad61722"],["__file","module.vue"]])}]});export{W as default};