1import{b as U,_ as R,ap as X,z as Z,C as q}from"./main-BdJZwHB3.js";import{P as Q}from"./PageShell-BKaKfiIJ.js";import{s as M}from"./supplierConnect-CClKI5on.js";import{r as _,c as k,d as O,k as p,m,u as e,G as I,v as l,j as L,y as s,x as N,w as W,l as B,t as V,E as P,a6 as Y,F as J,n as K,O as D,a7 as ee,M as ne,o as te}from"./vendor-vue-Cjp9t_ih.js";import{I as se}from"./IntegrationBackLink-BeNLThDp.js";import{S as ie}from"./StatusTag-D4nscNcg.js";import{a as oe}from"./formatUtils-BlqCcTBE.js";import{a as le}from"./integrationLastError-BxmE2kwL.js";import"./vendor-axios-D5GkNzM3.js";import"./intlLocale-ChF_m2hD.js";function ae(){const a=_([]),o=_([]),r=_(!1),C=_(!1),n=_(null),g=_(!1),h=k(()=>a.value.filter(c=>!c.connected)),$=k(()=>o.value.length>0);async function S(){r.value=!0,C.value=!1;try{const[c,i]=await Promise.all([M.listServices(),M.listConnections()]);a.value=c,o.value=i}catch(c){C.value=!0,console.error("supplier-connect: failed to load connections",c)}finally{r.value=!1}}async function y(c){g.value=!0;try{const i=await M.saveConnection(c);return E(i),x(i.serviceId,!0),i}finally{g.value=!1}}async function d(c){n.value=c;try{const i=await M.verifyConnection(c);return E(i),i}finally{n.value=null}}async function w(c){n.value=c;try{const i=o.value.find(t=>t.id===c);await M.deleteConnection(c),o.value=o.value.filter(t=>t.id!==c),i&&x(i.serviceId,!1)}finally{n.value=null}}async function T(c){n.value=c;try{return(await M.backfillImages(c)).updated}finally{n.value=null}}function E(c){const i=o.value.findIndex(t=>t.id===c.id);i>=0?o.value.splice(i,1,c):o.value.push(c)}function x(c,i){const t=a.value.find(b=>b.serviceId===c);t&&(t.connected=i)}return{services:a,connections:o,connectableServices:h,hasConnections:$,loading:r,error:C,saving:g,busyConnectionId:n,load:S,save:y,verify:d,disconnect:w,backfillImages:T}}const re=/could not reach|unreadable supplier response|interrupted while|not a valid url/i;function ce(a){var r;if(a.lastErrorCode==="CREDENTIALS_INCOMPLETE")return"CREDENTIALS_INCOMPLETE";const o=(r=a.lastError)==null?void 0:r.trim();return o?re.test(o)||le(o)==="UNAVAILABLE"?"SUPPLIER_UNAVAILABLE":"SUPPLIER_REJECTED":null}function ue(a){const o=ce(a);return o?`supplierConnect.errors.${o}`:null}const de={class:"integration-card"},pe={class:"integration-card__title"},fe={class:"supplier-connection__facts"},me={class:"supplier-connection__fact"},ve={class:"supplier-connection__fact"},be={class:"supplier-connection__fact"},ge={class:"supplier-connection__fact"},ye={key:0,class:"supplier-connection__fact"},Ce=["title"],he={class:"integration-actions"},_e=["disabled"],ke=["disabled"],we={key:0,class:"spinner-border spinner-border-sm me-1","aria-hidden":"true"},Se={key:1,class:"bi bi-arrow-repeat me-1","aria-hidden":"true"},$e=["disabled"],Ie=["disabled"],Ee=O({__name:"SupplierConnectionCard",props:{connection:{},busy:{type:Boolean}},emits:["verify","disconnect","edit","backfill-images"],setup(a,{emit:o}){const r=a,C=o,{t:n}=U(),g=k(()=>{switch(r.connection.status){case"CONNECTED":return"success";case"ERROR":return"danger";default:return"warning"}}),h=k(()=>n(`supplierConnect.status.${r.connection.status}`)),$=k(()=>{const y=r.connection.salesMarginPct;return y==null||y===0?n("supplierConnect.fields.noMargin"):`${y} ${n("common.percentSign")}`}),S=k(()=>{const y=ue(r.connection);return y?n(y):null});return(y,d)=>(p(),m("section",de,[e("h2",pe,[d[4]||(d[4]=e("i",{class:"bi bi-shop","aria-hidden":"true"},null,-1)),I(" "+l(a.connection.displayName)+" ",1),L(ie,{severity:g.value,label:h.value,size:"sm"},null,8,["severity","label"])]),e("dl",fe,[e("div",me,[e("dt",null,l(s(n)("supplierConnect.fields.customerNumber")),1),e("dd",null,l(a.connection.customerNumber||s(n)("supplierConnect.fields.notSet")),1)]),e("div",ve,[e("dt",null,l(s(n)("supplierConnect.fields.username")),1),e("dd",null,l(a.connection.username||s(n)("supplierConnect.fields.notSet")),1)]),e("div",be,[e("dt",null,l(s(n)("supplierConnect.fields.adoptedItems")),1),e("dd",null,l(a.connection.adoptedItemCount),1)]),e("div",ge,[e("dt",null,l(s(n)("supplierConnect.fields.salesMargin")),1),e("dd",null,l($.value),1)]),a.connection.lastVerifiedAt?(p(),m("div",ye,[e("dt",null,l(s(n)("supplierConnect.fields.lastVerified")),1),e("dd",null,l(s(oe)(a.connection.lastVerifiedAt)),1)])):N("",!0)]),S.value?(p(),m("p",{key:0,class:"integration-error",role:"alert","data-error-report":"off",title:a.connection.lastError||void 0},[d[5]||(d[5]=e("i",{class:"bi bi-exclamation-triangle-fill","aria-hidden":"true"},null,-1)),e("span",null,l(S.value),1)],8,Ce)):N("",!0),e("div",he,[e("button",{type:"button",class:"btn btn-outline-secondary",disabled:a.busy,onClick:d[0]||(d[0]=w=>C("edit"))},[d[6]||(d[6]=e("i",{class:"bi bi-pencil me-1","aria-hidden":"true"},null,-1)),I(" "+l(s(n)("supplierConnect.actions.edit")),1)],8,_e),e("button",{type:"button",class:"btn btn-outline-primary",disabled:a.busy,onClick:d[1]||(d[1]=w=>C("verify"))},[a.busy?(p(),m("span",we)):(p(),m("i",Se)),I(" "+l(s(n)("supplierConnect.actions.verify")),1)],8,ke),a.connection.status==="CONNECTED"?(p(),m("button",{key:0,t
1ype:"button",class:"btn btn-outline-secondary",disabled:a.busy,onClick:d[2]||(d[2]=w=>C("backfill-images"))},[d[7]||(d[7]=e("i",{class:"bi bi-image me-1","aria-hidden":"true"},null,-1)),I(" "+l(s(n)("supplierConnect.actions.backfillImages")),1)],8,$e)):N("",!0),e("button",{type:"button",class:"btn btn-outline-danger",disabled:a.busy,onClick:d[3]||(d[3]=w=>C("disconnect"))},[d[8]||(d[8]=e("i",{class:"bi bi-x-circle me-1","aria-hidden":"true"},null,-1)),I(" "+l(s(n)("supplierConnect.actions.disconnect")),1)],8,Ie)])]))}}),Ne=R(Ee,[["__scopeId","data-v-3af66701"]]),xe={key:0,class:"integration-form__field"},Te={for:"supplier-connect-service"},Me=["disabled"],Pe=["value"],Ve={key:0,class:"integration-hint"},De={class:"integration-form__field"},Ae={for:"supplier-connect-customer"},Le=["disabled"],Be={class:"integration-form__field"},Ue={for:"supplier-connect-username"},Re=["disabled"],Oe={class:"integration-form__field"},Fe={for:"supplier-connect-password"},He=["placeholder","disabled"],ze={key:0,class:"integration-hint"},Ge={class:"integration-form__field"},je={for:"supplier-connect-margin"},Je={class:"supplier-margin"},Ke=["disabled","aria-invalid"],Xe={class:"supplier-margin__unit"},Ze={key:0,id:"supplier-connect-margin-help",class:"integration-error",role:"alert"},qe={key:1,id:"supplier-connect-margin-help",class:"integration-hint"},Qe={class:"form-check form-switch supplier-margin__switch"},We=["disabled"],Ye={class:"form-check-label",for:"supplier-connect-margin-refresh"},en={class:"integration-hint"},nn={class:"integration-hint"},tn=["disabled"],sn=["disabled"],on={key:0,class:"spinner-border spinner-border-sm me-1","aria-hidden":"true"},ln={key:1,class:"bi bi-plug me-1","aria-hidden":"true"},A=1e3,an=O({__name:"SupplierConnectDialog",props:{show:{type:Boolean},services:{},connection:{},busy:{type:Boolean}},emits:["update:show","submit"],setup(a,{emit:o}){const r=a,C=o,{t:n}=U(),g=_(""),h=_(""),$=_(""),S=_(""),y=_(""),d=_(!1),w=k(()=>r.connection!=null),T=k(()=>{const v=String(y.value??"").trim();return v===""?null:Number(v.replace(",","."))}),E=k(()=>{const v=T.value;return v===null?!1:Number.isNaN(v)||v<0||v>A}),x=k(()=>{var v;return w.value?n("supplierConnect.dialog.editTitle",{name:((v=r.connection)==null?void 0:v.displayName)??""}):n("supplierConnect.dialog.addTitle")}),c=k(()=>` ${n("supplierConnect.dialog.demoSuffix")}`),i=k(()=>g.value.length>0&&!E.value);W(()=>r.show,v=>{var f,F,H,z,G,j;if(!v)return;g.value=((f=r.connection)==null?void 0:f.serviceId)??((F=r.services[0])==null?void 0:F.serviceId)??"",h.value=((H=r.connection)==null?void 0:H.customerNumber)??"",$.value=((z=r.connection)==null?void 0:z.username)??"",S.value="";const u=(G=r.connection)==null?void 0:G.salesMarginPct;y.value=u==null?"":String(u),d.value=((j=r.connection)==null?void 0:j.refreshSalesPrice)??!1},{immediate:!0});function t(){i.value&&C("submit",{serviceId:g.value,customerNumber:h.value||null,username:$.value||null,password:S.value||null,salesMarginPct:T.value,refreshSalesPrice:d.value})}function b(){C("update:show",!1)}return(v,u)=>(p(),B(X,{show:a.show,title:x.value,icon:"bi bi-plug",size:"md","onUpdate:show":u[6]||(u[6]=f=>C("update:show",f)),onClose:b},{body:V(()=>[e("form",{class:"integration-form",novalidate:"",onSubmit:ne(t,["prevent"])},[w.value?N("",!0):(p(),m("div",xe,[e("label",Te,l(s(n)("supplierConnect.fields.supplier")),1),P(e("select",{id:"supplier-connect-service","onUpdate:modelValue":u[0]||(u[0]=f=>g.value=f),class:"form-select",disabled:a.busy},[(p(!0),m(J,null,K(a.services,f=>(p(),m("option",{key:f.serviceId,value:f.serviceId},l(f.name)+l(f.demo?c.value:""),9,Pe))),128))],8,Me),[[Y,g.value]]),a.services.length===0?(p(),m("p",Ve,[u[7]||(u[7]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.noneAvailable")),1)])):N("",!0)])),e("div",De,[e("label",Ae,l(s(n)("supplierConnect.fields.customerNumber")),1),P(e("input",{id:"supplier-connect-customer","onUpdate:modelValue":u[1]||(u[1]=f=>h.value=f),type:"text",class:"form-control",autocomplete:"off",spellcheck:"false",disabled:a.busy},null,8,Le),[[D,h.value,void 0,{trim:!0}]])]),e("div",Be,[e("label",Ue,l(s(n)("supplierConnect.fields.username")),1),P(e("input",{id:"supplier-connect-username","onUpdate:modelValue":u[2]||(u[2]=f=>$.value=f),type:"text",class:"form-control",autocomplete:"off",spellcheck:"false",disabled:a.busy},null,8,Re),[[D,$.value,void 0,{trim:!0}]])]),e("div",Oe,[e("label",Fe,l(s(n)("supplierConnect.fields.password")),1),P(e("input",{id:"supplier-connect-password","onUpdate:modelValue":u[3]||(u[3]=f=>S.value=f),type:"password",class:"form-control",autocomplete:"new-password",placeholder:w.value?s(n)("supplierConnect.dialog.passwordUnchanged"):"",disabled:a.busy},null,8,He),[[D,S.value]]),w.value?(p(),m("p",ze,[u[8]||(u[8]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.passwordHint")),1)])):N("",!0)]),e("div",Ge,[e("label",je,l(s(n)("supplierConnect.fields.salesMargin")),1),e("div",Je,[P(e("input",{id:"supplier-connect-margin","onUpdate:modelValue":u[4]||(u[4]=f=>y.value=f),type:"number",class:"form-control",inputmode:"decimal",min:"0",max:A,step:"0.5",disabled:a.busy,"aria-invalid":E.value,"aria-describedby":"supplier-connect-margin-help"},null,8,Ke),[[D,y.value]]),e("span",Xe,l(s(n)("common.percentSign")),1)]),E.value?(p(),m("p",Ze,[u[9]||(u[9]=e("i",{class:"bi bi-exclamation-triangle-fill","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.marginRange",{max:A})),1)])):(p(),m("p",qe,[u[10]||(u[10]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.marginHint")),1)])),e("div",Qe,[P(e("input",{id:"supplier-connect-margin-refresh","onUpdate:modelValue":u[5]||(u[5]=f=>d.value=f),class:"form-check-input",type:"checkbox",role:"switch",disabled:a.busy},null,8,We),[[ee,d.value]]),e("label",Ye,l(s(n)("supplierConnect.fields.refreshSalesPr
1ice")),1)]),e("p",en,[u[11]||(u[11]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.refreshSalesPriceHint")),1)])]),e("p",nn,[u[12]||(u[12]=e("i",{class:"bi bi-shield-lock","aria-hidden":"true"},null,-1)),e("span",null,l(s(n)("supplierConnect.dialog.securityHint")),1)])],32)]),footer:V(()=>[e("button",{type:"button",class:"btn btn-secondary",disabled:a.busy,onClick:b},l(s(n)("common.cancel")),9,tn),e("button",{type:"button",class:"btn btn-primary",disabled:a.busy||!i.value,onClick:t},[a.busy?(p(),m("span",on)):(p(),m("i",ln)),I(" "+l(s(n)("supplierConnect.actions.connect")),1)],8,sn)]),_:1},8,["show","title"]))}}),rn=R(an,[["__scopeId","data-v-cb3e10f9"]]),cn={class:"integration-page","data-guide-anchor":"supplierConnect.settings","data-guide-route":"settings-integrations-supplier-connect","data-guide-desc":"Lieferanten-Anbindung â Lieferanten verbinden und Zugangsdaten verwalten"},un={key:0,class:"integration-loading"},dn={key:1,class:"integration-error",role:"alert"},pn={key:2,class:"integration-stack"},fn={class:"integration-card"},mn={class:"integration-card__title"},vn={class:"integration-card__intro"},bn={class:"integration-actions"},gn=["disabled"],yn={key:0,class:"integration-hint"},Cn={key:0,class:"integration-hint"},hn=O({__name:"SupplierConnectSettings",setup(a){const{t:o}=U(),r=q(),{confirm:C}=Z(),n=ae(),g=_(!1),h=_(null),$=k(()=>h.value?n.services.value.filter(i=>{var t;return i.serviceId===((t=h.value)==null?void 0:t.serviceId)}):n.connectableServices.value);te(()=>{n.load()});function S(){h.value=null,g.value=!0}function y(i){h.value=i,g.value=!0}async function d(i){try{const t=await n.save(i);g.value=!1,t.status==="CONNECTED"?r.success(o("supplierConnect.toast.connected",{name:t.displayName})):r.warning(x(t))}catch(t){r.error(c(t)??o("supplierConnect.toast.saveFailed"))}}async function w(i){try{const t=await n.verify(i.id);t.status==="CONNECTED"?r.success(o("supplierConnect.toast.verified",{name:t.displayName})):r.warning(x(t))}catch(t){r.error(c(t)??o("supplierConnect.toast.verifyFailed"))}}async function T(i){if(await C({message:o("supplierConnect.confirm.disconnect",{name:i.displayName,count:i.adoptedItemCount}),variant:"danger"}))try{await n.disconnect(i.id),r.success(o("supplierConnect.toast.disconnected",{name:i.displayName}))}catch(b){r.error(c(b)??o("supplierConnect.toast.disconnectFailed"))}}async function E(i){try{const t=await n.backfillImages(i.id);t>0?r.success(o("supplierConnect.toast.imagesBackfilled",{count:t})):r.info(o("supplierConnect.toast.imagesUpToDate"))}catch(t){r.error(c(t)??o("supplierConnect.toast.backfillFailed"))}}function x(i){return i.lastErrorCode?o(`supplierConnect.errors.${i.lastErrorCode}`):i.lastError||o("supplierConnect.toast.verifyFailed")}function c(i){var b,v;const t=(v=(b=i==null?void 0:i.response)==null?void 0:b.data)==null?void 0:v.message;return typeof t=="string"&&t.trim().length>0?t:null}return(i,t)=>(p(),B(s(Q),null,{title:V(()=>[I(l(s(o)("supplierConnect.title")),1)]),subtitle:V(()=>[I(l(s(o)("supplierConnect.subtitle")),1)]),default:V(()=>[e("div",cn,[L(se),s(n).loading.value?(p(),m("div",un,[t[1]||(t[1]=e("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1)),e("span",null,l(s(o)("common.loading")),1)])):s(n).error.value?(p(),m("div",dn,[t[2]||(t[2]=e("i",{class:"bi bi-exclamation-triangle-fill","aria-hidden":"true"},null,-1)),e("span",null,l(s(o)("supplierConnect.loadError")),1)])):(p(),m("div",pn,[e("section",fn,[e("h2",mn,[t[3]||(t[3]=e("i",{class:"bi bi-shop","aria-hidden":"true"},null,-1)),I(" "+l(s(o)("supplierConnect.intro.title")),1)]),e("p",vn,l(s(o)("supplierConnect.intro.text")),1),e("div",bn,[e("button",{type:"button",class:"btn btn-primary",disabled:s(n).connectableServices.value.length===0,onClick:S},[t[4]||(t[4]=e("i",{class:"bi bi-plus-lg me-1","aria-hidden":"true"},null,-1)),I(" "+l(s(o)("supplierConnect.actions.add")),1)],8,gn)]),s(n).connectableServices.value.length===0?(p(),m("p",yn,[t[5]||(t[5]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(o)("supplierConnect.intro.allConnected")),1)])):N("",!0)]),(p(!0),m(J,null,K(s(n).connections.value,b=>(p(),B(Ne,{key:b.id,connection:b,busy:s(n).busyConnectionId.value===b.
1id,onVerify:v=>w(b),onDisconnect:v=>T(b),onEdit:v=>y(b),onBackfillImages:v=>E(b)},null,8,["connection","busy","onVerify","onDisconnect","onEdit","onBackfillImages"]))),128)),s(n).hasConnections.value?N("",!0):(p(),m("p",Cn,[t[6]||(t[6]=e("i",{class:"bi bi-info-circle","aria-hidden":"true"},null,-1)),e("span",null,l(s(o)("supplierConnect.empty")),1)]))]))]),L(rn,{show:g.value,"onUpdate:show":t[0]||(t[0]=b=>g.value=b),services:$.value,connection:h.value,busy:s(n).saving.value,onSubmit:d},null,8,["show","services","connection","busy"])]),_:1}))}}),Mn=R(hn,[["__scopeId","data-v-1f166dc6"]]);export{Mn 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.