import{useApi as e,defineModule as a}from"@directus/extensions-sdk";import{defineComponent as l,ref as t,computed as n,onMounted as i,resolveComponent as s,resolveDirective as o,openBlock as d,createBlock as u,unref as r,withCtx as c,createVNode as m,createElementBlock as v,Fragment as p,renderList as f,createTextVNode as g,toDisplayString as y,createCommentVNode as _,withDirectives as h,createElementVNode as b}from"vue";import{MintelManagerLayout as x,MintelSelect as w}from"@mintel/directus-extension-toolkit";const k={key:0,class:"details-grid"},V={class:"detail-item"},P={class:"value"},C={class:"detail-item"},N={class:"value"},A={class:"detail-item"},E={class:"value"},M={class:"detail-item"},U={class:"value"},$={class:"drawer-content"},F={class:"form-section"},O={class:"field"},S={class:"field"},T={class:"field"},j={class:"field"},z={class:"drawer-actions"};var B=l({__name:"module",setup(a){const l=e(),B=t([]),q=t([]),I=t(null),W=t(null),Z=t(!1),D=t(!1),G=t(!1),H=t({id:null,first_name:"",last_name:"",email:"",company:null}),J=n(()=>q.value.map(e=>({text:e.name,value:e.id})));function K(e){var a;return e&&e.company?"object"==typeof e.company?e.company.name:(null==(a=q.value.find(a=>a.id===e.company))?void 0:a.name)||"Unbekannte Firma":"---"}async function L(){try{const[e,a]=await Promise.all([l.get("/items/people",{params:{sort:"last_name",fields:"*.*"}}),l.get("/items/companies",{params:{sort:"name"}})]);B.value=e.data.data,q.value=a.data.data}catch(e){console.error("Failed to fetch data:",e)}}function Q(){G.value=!1,H.value={id:null,first_name:"",last_name:"",email:"",company:null},D.value=!0}function R(){var e;G.value=!0;const a=I.value;H.value={id:a.id,first_name:a.first_name,last_name:a.last_name,email:a.email,company:(null==(e=a.company)?void 0:e.id)||a.company},D.value=!0}async function X(){if(H.value.first_name&&H.value.last_name){Z.value=!0;try{let e;if(G.value){const a=await l.patch(`/items/people/${H.value.id}`,H.value);e=a.data.data,W.value={type:"success",message:"Person aktualisiert!"}}else{const a=await l.post("/items/people",H.value);e=a.data.data,W.value={type:"success",message:"Person angelegt!"}}D.value=!1,await L(),e&&(I.value=B.value.find(a=>a.id===e.id)||e)}catch(e){W.value={type:"danger",message:e.message}}finally{Z.value=!1}}else W.value={type:"danger",message:"Vor- und Nachname sind erforderlich."}}async function Y(){if(confirm("Soll diese Person wirklich gelöscht werden?"))try{await l.delete(`/items/people/${I.value.id}`),W.value={type:"success",message:"Person gelöscht."},I.value=null,await L()}catch(e){W.value={type:"danger",message:e.message}}}return i(L),(e,a)=>{var l,t;const n=s("v-icon"),i=s("v-list-item-icon"),q=s("v-text-overflow"),L=s("v-list-item-content"),ee=s("v-list-item"),ae=s("v-divider"),le=s("v-list"),te=s("v-button"),ne=s("v-input"),ie=s("v-drawer"),se=o("tooltip");return d(),u(r(x),{title:"People Manager","item-title":`${null==(l=I.value)?void 0:l.first_name} ${null==(t=I.value)?void 0:t.last_name}`||"Person wählen","is-empty":!I.value,"empty-title":"Person auswählen","empty-icon":"person",notice:W.value,onCloseNotice:a[7]||(a[7]=e=>W.value=null)},{navigation:c(()=>[m(le,{nav:""},{default:c(()=>[m(ee,{onClick:Q,clickable:""},{default:c(()=>[m(i,null,{default:c(()=>[m(n,{name:"add",color:"var(--theme--primary)"})]),_:1}),m(L,null,{default:c(()=>[m(q,{text:"Neue Person anlegen"})]),_:1})]),_:1}),m(ae),(d(!0),v(p,null,f(B.value,e=>{var a;return d(),u(ee,{key:e.id,active:(null==(a=I.value)?void 0:a.id)===e.id,class:"nav-item",clickable:"",onClick:a=>function(e){I.value=e}(e)},{default:c(()=>[m(i,null,{default:c(()=>[m(n,{name:"person"})]),_:1}),m(L,null,{default:c(()=>[m(q,{text:`${e.first_name} ${e.last_name}`},null,8,["text"])]),_:2},1024)]),_:2},1032,["active","onClick"])}),128))]),_:1})]),subtitle:c(()=>[I.value?(d(),v(p,{key:0},[g(y(K(I.value)),1)],64)):_("v-if",!0)]),actions:c(()=>[h((d(),u(te,{secondary:"",rounded:"",icon:"",onClick:R},{default:c(()=>[m(n,{name:"edit"})]),_:1})),[[se,"Person bearbeiten",void 0,{bottom:!0}]]),h((d(),u(te,{danger:"",rounded:"",icon:"",onClick:Y},{default:c(()=>[m(n,{name:"delete"})]),_:1})),[[se,"Person löschen",void 0,{bottom:!0}]])]),"empty-state":c(()=>[a[9]||(a[9]=g(" Wähle eine Person in der Navigation aus oder ",-1)),m(te,{"x-small":"",onClick:Q},{default:c(()=>[...a[8]||(a[8]=[g("erstelle eine neue Person",-1)])]),_:1}),a[10]||(a[10]=g(". ",-1))]),default:c(()=>[I.value?(d(),v("div",k,[b("div",V,[a[11]||(a[11]=b("span",{class:"label"},"Vorname",-1)),b("p",P,y(I.value.first_name),1)]),b("div",C,[a[12]||(a[12]=b("span",{class:"label"},"Nachname",-1)),b("p",N,y(I.value.last_name),1)]),b("div",A,[a[13]||(a[13]=b("span",{class:"label"},"E-Mail",-1)),b("p",E,y(I.value.email||"---"),1)]),b("div",M,[a[14]||(a[14]=b("span",{class:"label"},"Organisation",-1)),b("p",U,y(K(I.value)),1)])])):_("v-if",!0),m(ie,{modelValue:D.value,"onUpdate:modelValue":a[5]||(a[5]=e=>D.value=e),title:G.value?"Person bearbeiten":"Neue Person anlegen",icon:"person",onCancel:a[6]||(a[6]=e=>D.value=!1)},{default:c(()=>[b("div",$,[b("div",F,[b("div",O,[a[15]||(a[15]=b("span",{class:"label"},"Vorname",-1)),m(ne,{modelValue:H.value.first_name,"onUpdate:modelValue":a[0]||(a[0]=e=>H.value.first_name=e),placeholder:"Vorname",autofocus:""},null,8,["modelValue"])]),b("div",S,[a[16]||(a[16]=b("span",{class:"label"},"Nachname",-1)),m(ne,{modelValue:H.value.last_name,"onUpdate:modelValue":a[1]||(a[1]=e=>H.value.last_name=e),placeholder:"Nachname"},null,8,["modelValue"])]),b("div",T,[a[17]||(a[17]=b("span",{class:"label"},"E-Mail",-1)),m(ne,{modelValue:H.value.email,"onUpdate:modelValue":a[2]||(a[2]=e=>H.value.email=e),placeholder:"E-Mail Adresse",type:"email"},null,8,["modelValue"])]),b("div",j,[a[18]||(a[18]=b("span",{class:"label"},"Zentrale Firma",-1)),m(r(w),{modelValue:H.value.company,"onUpdate:modelValue":a[3]||(a[3]=e=>H.value.company=e),items:J.value,placeholder:"Bestehende Firma auswählen...","allow-add":"",onAdd:a[4]||(a[4]=e=>{W.value={type:"info",message:"Firma im Company Manager anlegen."}})},null,8,["modelValue","items"])])]),b("div",z,[m(te,{primary:"",block:"",loading:Z.value,onClick:X},{default:c(()=>[...a[19]||(a[19]=[g(" Person speichern ",-1)])]),_:1},8,["loading"])])])]),_:1},8,["modelValue","title"])]),_:1},8,["item-title","is-empty","notice"])}}}),q=[],I=[];!function(e,a){if(e&&"undefined"!=typeof document){var l,t=!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 s=q.indexOf(i);-1===s&&(s=q.push(i)-1,I[s]={}),l=I[s]&&I[s][t]?I[s][t]:I[s][t]=o()}else l=o();65279===e.charCodeAt(0)&&(e=e.substring(1)),l.styleSheet?l.styleSheet.cssText+=e:l.appendChild(document.createTextNode(e))}function o(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),a.attributes)for(var l=Object.keys(a.attributes),n=0;n{const l=e.__vccOpts||e;for(const[e,t]of a)l[e]=t;return l})(B,[["__scopeId","data-v-04ecd491"],["__file","module.vue"]])}]});export{W as default};