PageSourceSearch

https://flowmq.io/_nuxt/CG9qgpEj.js

js flowmq.io collected 2026-10-10 00:36:24 UTC 34,830 bytes, 1 lines download raw bytes

1import{_ as nt}from"./DzYU8giY.js";import{_ as ot,a as st,b as it,c as lt,d as ct,e as rt}from"./DteklFc3.js";import re from"./C1tSitqM.js";import{_ as xe}from"./BKfUJqhE.js";import{d as ne,ad as $e,u as se,o as s,i as p,j as a,U as e,a1 as d,_ as n,Z as i,a as t,I as ve,R as ye,a9 as ie,ae as ce,g as w,s as Ce,c as U,a2 as M,a6 as oe,a7 as fe,t as ge,h as P,K as X,n as Pe,w as ut,e as dt,a3 as mt,a5 as Ue,a4 as ft}from"./B5ypgLFi.js";import{_ as pt}from"./BsfawM3S.js";import{a as _t,b as ht,_ as gt}from"./D1VYwGKt.js";import{_ as vt}from"./yyvD9b_q.js";import{_ as pe,a as _e}from"./_TtA5Tsl.js";import{_ as yt,a as bt,b as wt,c as xt,d as $t,e as Ct}from"./ChWKMCm1.js";import{c as kt,_ as At,a as Dt,b as Ut}from"./BMy3M5ND.js";import{_ as Tt}from"./Bvnz_6WZ.js";import{_ as ze}from"./BBRrDerq.js";import{_ as je,a as Ve,b as Le,c as Me,d as Re}from"./CGDBN8qY.js";import{t as Ne,_ as Ee,a as Ie,b as qe,c as Oe}from"./BA39RLzk.js";import{u as We,F as Ke}from"./B9quOlT3.js";import{_ as He}from"./B2cu2pV_.js";import{v as be}from"./TFuywogJ.js";import{o as Ge,s as we}from"./CBLLHJls.js";import{a as St,b as Bt,c as Ft,d as Pt,_ as zt}from"./CN0_uVTB.js";import{_ as jt,a as Vt}from"./ooQD6586.js";import{a as Te}from"./BZ-M58A3.js";import{u as Lt}from"./D760BmmB.js";import{g as Y}from"./CKidQALd.js";import{_ as Mt,i as Rt,p as Nt,b as Et,e as It,a as qt,d as Ot,h as Wt,j as Kt,k as Ht,g as Gt}from"./Mebr4kd0.js";import{A as ae}from"./JYrm0qof.js";import{_ as Jt}from"./mauPQu7x.js";import{u as Zt}from"./Bfn-nj-u.js";import{u as Qt,d as Se,e as Be}from"./DwCSus_l.js";import"./CjMghhTy.js";import"./FrAQO-h2.js";import"./3sHOUTE6.js";import"./D7ya1U8D.js";import"./DmTjTZK9.js";import"./CeXtrIGW.js";import"./D8QuksZR.js";import"./B9XI9Wk7.js";import"./DNIe5Eja.js";import"./B_2CejD5.js";import"./DO0c_oJ9.js";import"./FUKBWQwh.js";import"./BFv9G3aH.js";import"./CPYVXSHG.js";import"./D_YSECl6.js";import"./DB3uAXBF.js";import"./D-pctMGk.js";import"./C_YeUtWc.js";import"./CzUTk3fd.js";import"./DXjxXx8E.js";import"./_-4i6Y1m.js";import"./DqVHIdJ9.js";import"./CUomUwTM.js";import"./DrFF-_Eh.js";import"./Cqn-kKL7.js";import"./B7fCO2tf.js";import"./CpKqLNFw.js";import"./C9Nsyr5t.js";import"./B68jF18q.js";import"./CplkJ2fU.js";import"./jFYhBC76.js";import"./B_QpV7S7.js";import"./D3VfEJkO.js";import"./DJoM9oIS.js";import"./DNiwHND4.js";import"./_k5JrEIz.js";import"./CL0fvtzj.js";import"./B2SBFMO9.js";import"./kHv3GrG3.js";import"./B3x-bhXU.js";import"./DlAUqK2U.js";import"./B2fAmnXM.js";const Xt={class:"relative"},Yt=ne({__name:"CreateCredentialDialog",props:ce({loading:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:ce(["submit"],["update:modelValue"]),setup(h,{emit:T}){const o=h,g=T,f=$e(h,"modelValue"),{t:c}=se(),l=w(!1),x=Ne(Ge({username:we().min(1,c("d.authentication.form.create.validation.usernameRequired")).min(3,c("d.authentication.form.create.validation.usernameMinLength")).max(256,c("d.authentication.form.create.validation.usernameMaxLength")).regex(/^\w+$/,c("d.authentication.form.create.validation.usernameFormat")),password:we().min(1,c("d.authentication.form.create.validation.passwordRequired")).max(100,c("d.authentication.form.create.validation.passwordMaxLength"))})),{handleSubmit:S,resetForm:A}=We({keepValuesOnUnmount:!1,validationSchema:x,initialValues:{username:"",password:""}}),v=S(m=>{g("submit",m)});function _(){f.value=!1}function F(m){m||(A(),l.value=!1)}return(m,y)=>{const $=Le,D=Me,R=Ve,W=Ie,z=He,H=qe,q=Oe,G=Ee,j=Ke,N=re,K=ie,u=Re,B=je,b=ze;return s(),p(b,{open:f.value,"onUpdate:open":[y[2]||(y[2]=C=>f.value=C),F]},{default:a(()=>[e(B,{class:"sm:max-w-md"},{default:a(()=>[e(R,null,{default:a(()=>[e($,null,{default:a(()=>[d(n(m.$t("d.authentication.form.create.title")),1)]),_:1}),e(D,null,{default:a(()=>[d(n(m.$t("d.authentication.form.create.description")),1)]),_:1})]),_:1}),i("form",{class:"space-y-4 py-5",onSubmit:y[1]||(y[1]=(...C)=>t(v)&&t(v)(...C))},[e(j,{name:"username","validate-on-blur":!1},{default:a(({componentField:C})=>[ve((s(),p(G,null,{default:a(()=>[e(W,null,{default:a(()=>[d(n(m.$t("d.authentication.form.create.username")),1)]),_:1}),e(H,null,{default:a(()=>[e(z,ye({placeholder:m.$t("d.authentication.form.create.usernamePlaceholder")},C,{class:"h-10"}),null,16,["placeholder"])]),_:2},1024),e(q)]),_:2},1024)),[[t(be)]])]),_:1}),e(j,{name:"password","validate-on-blur":!1},{default:a(({componentField:C})=>[ve((s(),p(G,null,{default:a(()=>[e(W,null,{default:a(()=>[d(n(m.$t("d.authentication.form.create.password")),1)]),_:1}),e(H,null,{default:a(()=>[i("div",Xt,[e(z,ye({type:t(l)?"text":"password",placeholder:m.$t("d.authentication.form.create.passwordPlaceholder")},C,{class:"h-10 pr-10"}),null,16,["type","placeholder"]),i("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 w-6 h-6 flex items-center justify-center text-muted-foreground hover:text-foreground","aria-label":"Toggle password visibility",onClick:y[0]||(y[0]=V=>l.value=!t(l))},[t(l)?(s(),p(N,{key:1,name:"mdi:eye-off-outline",size:"16"})):(s(),p(N,{key:0,name:"mdi:eye-outline",size:"16"}))])])]),_:2},1024),e(q)]),_:2},1024)),[[t(be)]])]),_:1}),e(u,null,{default:a(()=>[e(K,{type:"button",variant:"outline",size:"sm",onClick:_},{default:a(()=>
1[d(n(m.$t("d.authentication.form.create.cancelButton")),1)]),_:1}),e(K,{type:"submit",loading:o.loading,size:"sm"},{default:a(()=>[d(n(m.$t("d.authentication.form.create.createButton")),1)]),_:1},8,["loading"])]),_:1})],32)]),_:1})]),_:1},8,["open"])}}}),ea=Object.assign(Yt,{__name:"SharedAuthCreateCredentialDialog"}),ta={class:"relative"},aa=ne({__name:"EditCredentialDialog",props:ce({loading:{type:Boolean,default:!1},credential:{default:null}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:ce(["submit"],["update:modelValue"]),setup(h,{emit:T}){const o=h,g=T,f=$e(h,"modelValue"),{t:c}=se(),l=w(!1),x=Ne(Ge({password:we().min(1,c("d.authentication.form.edit.validation.passwordRequired")).max(100,c("d.authentication.form.edit.validation.passwordMaxLength"))})),{handleSubmit:S,resetForm:A}=We({keepValuesOnUnmount:!1,validationSchema:x,initialValues:{password:""}}),v=S(m=>{g("submit",m)});function _(){f.value=!1}function F(m){m||(A(),l.value=!1)}return(m,y)=>{const $=Le,D=Me,R=Ve,W=Ie,z=He,H=re,q=qe,G=Oe,j=Ee,N=Ke,K=ie,u=Re,B=je,b=ze;return s(),p(b,{open:f.value,"onUpdate:open":[y[2]||(y[2]=C=>f.value=C),F]},{default:a(()=>[e(B,{class:"sm:max-w-md"},{default:a(()=>[e(R,null,{default:a(()=>[e($,null,{default:a(()=>[d(n(m.$t("d.authentication.form.edit.title")),1)]),_:1}),e(D,{class:"wrap-anywhere"},{default:a(()=>[d(n(m.$t("d.authentication.form.edit.description",{username:h.credential?.username||""})),1)]),_:1})]),_:1}),i("form",{class:"space-y-4 py-5",onSubmit:y[1]||(y[1]=(...C)=>t(v)&&t(v)(...C))},[e(N,{name:"password","validate-on-blur":!1},{default:a(({componentField:C})=>[ve((s(),p(j,null,{default:a(()=>[e(W,null,{default:a(()=>[d(n(m.$t("d.authentication.form.edit.newPassword")),1)]),_:1}),e(q,null,{default:a(()=>[i("div",ta,[e(z,ye({type:t(l)?"text":"password",placeholder:m.$t("d.authentication.form.edit.newPasswordPlaceholder")},C,{class:"h-10 pr-10"}),null,16,["type","placeholder"]),i("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 w-6 h-6 flex items-center justify-center text-muted-foreground hover:text-foreground","aria-label":"Toggle password visibility",onClick:y[0]||(y[0]=V=>l.value=!t(l))},[t(l)?(s(),p(H,{key:1,name:"mdi:eye-off-outline",size:"16"})):(s(),p(H,{key:0,name:"mdi:eye-outline",size:"16"}))])])]),_:2},1024),e(G)]),_:2},1024)),[[t(be)]])]),_:1}),e(u,null,{default:a(()=>[e(K,{type:"button",variant:"outline",size:"sm",onClick:_},{default:a(()=>[d(n(m.$t("d.authentication.form.edit.cancelButton")),1)]),_:1}),e(K,{type:"submit",loading:o.loading,size:"sm"},{default:a(()=>[d(n(m.$t("d.authentication.form.edit.updateButton")),1)]),_:1},8,["loading"])]),_:1})],32)]),_:1})]),_:1},8,["open"])}}}),na=Object.assign(aa,{__name:"SharedAuthEditCredentialDialog"}),oa=ne({__name:"DeleteCredentialDialog",props:ce({loading:{type:Boolean,default:!1},credential:{default:null}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:ce(["confirm","cancel"],["update:modelValue"]),setup(h,{emit:T}){const o=h,g=T,f=$e(h,"modelValue");return(c,l)=>{const x=Ft,S=Pt,A=Bt,v=Vt,_=ie,F=jt,m=St,y=zt;return s(),p(y,{open:f.value,"onUpdate:open":l[2]||(l[2]=$=>f.value=$)},{default:a(()=>[e(m,null,{default:a(()=>[e(A,null,{default:a(()=>[e(x,null,{default:a(()=>[d(n(c.$t("d.authentication.form.delete.title")),1)]),_:1}),e(S,{class:"wrap-anywhere"},{default:a(()=>[d(n(c.$t("d.authentication.form.delete.description",{username:h.credential?.username||""})),1)]),_:1})]),_:1}),e(F,null,{default:a(()=>[e(v,{disabled:o.loading,class:"h-9 px-3 text-sm",onClick:l[0]||(l[0]=$=>g("cancel"))},{default:a(()=>[d(n(c.$t("d.authentication.form.delete.cancelButton")),1)]),_:1},8,["disabled"]),e(_,{variant:"destructive",size:"sm",class:"h-9 px-3 text-sm",disabled:o.loading,loading:o.loading,onClick:l[1]||(l[1]=$=>g("confirm"))},{default:a(()=>[d(n(c.$t("d.authentication.form.delete.deleteButton")),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),sa=Object.assign(oa,{__name:"SharedAuthDeleteCredentialDialog"}),ia={class:"flex flex-col gap-4"},la={class:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"},ca={class:"min-w-0"},ra={class:"text-lg font-semibold"},ua={class:"text-sm text-muted-foreground mt-0.5"},da={class:"overflow-x-auto"},ma={class:"max-w-xl break-words text-sm font-medium text-foreground"},fa={key:2,class:"flex flex-col items-center justify-center gap-3 py-10 text-center"},pa={class:"text-base font-medium text-foreground"},_a={key:0,class:"max-w-sm text-sm text-muted-foreground"},ha={class:"overflow-x-auto"},ga=["title"],va={class:"sr-only"},ya={key:1,class:"text-muted-foreground text-sm"},ba={class:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},wa={class:"min-w-0"},xa={key:0,class:"text-sm text-muted-foreground"},$a={class:"flex items-center justify-center gap-2 sm:justify-end"},Fe=20,Ca=ne({__name:"BuiltinConfig",props:{fetchUsers:{type:Function},fetchUsersCount:{type:Function},createUser:{type:Function},updateUser:{type:Function},deleteUser:{type:Function}},emits:["countUpdated"],setup(h,{emit:T}){const o=h,g=T,{t:f}=se(),c=w([]),l=w(0),x=w(!1),S=w(!1),A=w(!1),v=w(!1),_=w(!1),F=w(null),m=w(!1),y=w(!1),$=w(!1),D=w(null),R=w(null),W=P(()=>!!o.createUser),z=P(()=>!!o.updateUser),H=P(()=>!!o.deleteUser),{isFetchingData:q,isLoadingNext:G,isLoadingPrevious:j,hasNextPage:N,hasPreviousPage:K,fetchData:u,goToNextPage:B,goToPreviousPage:b}=Lt({limit:Fe,onFetch:async r=>
1{const k=await o.fetchUsers({cursor:r,limit:Fe});return c.value=k.users||[],{data:k.users||[],cursor:k.cursor||"",has_next:k.has_next||!1}}});async function C(r="",k=!1){try{x.value=!0,F.value=null,await u(r,k)}catch(O){F.value=Y(O,f("d.authentication.messages.loadError"))}finally{x.value=!1}}async function V(){if(o.fetchUsersCount)try{S.value=!0,l.value=await o.fetchUsersCount(),g("countUpdated",l.value)}catch(r){console.error("Failed to fetch users count:",r)}finally{S.value=!1}}async function J(r){if(o.createUser)try{A.value=!0,await o.createUser(r),X.success(f("d.authentication.messages.createSuccess")),m.value=!1,await C("",!0),await V()}catch(k){X.error(Y(k,f("d.authentication.messages.createError")))}finally{A.value=!1}}async function Z(r){if(!(!o.updateUser||!D.value?.username))try{v.value=!0,await o.updateUser(D.value.username,r),X.success(f("d.authentication.messages.updateSuccess")),y.value=!1,D.value=null,await C("",!0),await V()}catch(k){X.error(Y(k,f("d.authentication.messages.updateError")))}finally{v.value=!1}}async function ue(){if(!(!o.deleteUser||!R.value?.username))try{_.value=!0,await o.deleteUser(R.value.username),X.success(f("d.authentication.messages.deleteSuccess")),$.value=!1,R.value=null,await C("",!0),await V()}catch(r){X.error(Y(r,f("d.authentication.messages.deleteError")))}finally{_.value=!1}}async function E(){await Promise.all([C("",!0),V()])}return Ce(()=>{C(),V()}),(r,k)=>{const O=re,ee=ie,Q=xt,le=wt,I=bt,de=xe,te=Ct,ke=$t,Ae=yt,me=pe,he=_e,Je=At,De=Ut,Ze=Tt,Qe=Dt,Xe=kt,Ye=ea,et=na,tt=sa;return s(),U("div",ia,[i("div",la,[i("div",ca,[i("h2",ra,n(r.$t("d.authentication.detail.principals.title")),1),i("p",ua,n(r.$t("d.authentication.detail.principals.subtitle")),1)]),t(W)&&t(c).length>0?(s(),p(ee,{key:0,size:"sm",onClick:k[0]||(k[0]=L=>m.value=!0)},{default:a(()=>[e(O,{name:"lucide:plus",class:"w-4 h-4"}),d(" "+n(r.$t("d.authentication.detail.principals.addPrincipal")),1)]),_:1})):M("",!0)]),(t(x)||t(q))&&t(c).length===0?(s(),p(he,{key:0,class:"shadow-sm"},{default:a(()=>[e(me,{class:"p-0"},{default:a(()=>[i("div",da,[e(Ae,null,{default:a(()=>[e(I,null,{default:a(()=>[e(le,null,{default:a(()=>[e(Q,{class:"min-w-[180px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.username")),1)]),_:1}),e(Q,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.createdAt")),1)]),_:1}),e(Q,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.updatedAt")),1)]),_:1}),e(Q,{class:"w-[100px] min-w-[100px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.actions")),1)]),_:1})]),_:1})]),_:1}),e(ke,null,{default:a(()=>[(s(),U(oe,null,fe(3,L=>e(le,{key:L},{default:a(()=>[e(te,{class:"min-w-[180px] px-4 py-3"},{default:a(()=>[e(de,{class:"h-4 w-24"})]),_:1}),e(te,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[e(de,{class:"h-4 w-32"})]),_:1}),e(te,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[e(de,{class:"h-4 w-32"})]),_:1}),e(te,{class:"w-[100px] min-w-[100px] px-4 py-3"},{default:a(()=>[e(de,{class:"h-8 w-8 rounded-md"})]),_:1})]),_:1})),64))]),_:1})]),_:1})])]),_:1})]),_:1})):t(F)&&t(c).length===0?(s(),p(he,{key:1,class:"shadow-sm"},{default:a(()=>[e(me,{class:"flex flex-col items-center justify-center gap-4 p-8 text-center"},{default:a(()=>[e(O,{name:"lucide:alert-circle",class:"h-10 w-10 text-destructive"}),i("h3",ma,n(t(F)),1),e(ee,{variant:"outline",size:"sm",onClick:E},{default:a(()=>[d(n(r.$t("common.retry")),1)]),_:1})]),_:1})]),_:1})):t(c).length===0&&!t(x)&&!t(q)&&!t(K)?(s(),U("div",fa,[e(O,{name:"lucide:users",class:"h-8 w-8 text-muted-foreground"}),i("h3",pa,n(r.$t("d.authentication.detail.principals.noPrincipals")),1),t(W)?(s(),U("p",_a,n(r.$t("d.authentication.detail.principals.noPrincipalsDescription")),1)):M("",!0),t(W)?(s(),p(ee,{key:1,size:"sm",onClick:k[1]||(k[1]=L=>m.value=!0)},{default:a(()=>[e(O,{name:"lucide:plus",class:"w-4 h-4"}),d(" "+n(r.$t("d.authentication.detail.principals.addPrincipal")),1)]),_:1})):M("",!0)])):(s(),p(he,{key:3,class:"shadow-sm"},{default:a(()=>[e(me,{class:"p-0"},{default:a(()=>[i("div",ha,[e(Ae,null,{default:a(()=>[e(I,null,{default:a(()=>[e(le,null,{default:a(()=>[e(Q,{class:"min-w-[180px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.username")),1)]),_:1}),e(Q,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.createdAt")),1)]),_:1}),e(Q,{class:"min-w-[150px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.updatedAt")),1)]),_:1}),e(Q,{class:"w-[100px] min-w-[100px] px-4 py-3"},{default:a(()=>[d(n(r.$t("d.authentication.table.actions")),1)]),_:1})]),_:1})]),_:1}),e(ke,null,{default:a(()=>[(s(!0),U(oe,null,fe(t(c),L=>(s(),p(le,{key:L.username},{default:a(()=>[e(te,{class:"min-w-[180px] px-4 py-3 font-medium"},{default:a(()=>[i("span",{class:"block max-w-[32ch] truncate",title:L.username||"-"},n(L.username||"-"),9,ga)]),_:2},1024),e(te,{class:"min-w-[150px] whitespace-nowrap px-4 py-3 text-sm text-muted-foreground"},{default:a(()=>[d(n(("formatDateTime"in r?r.formatDateTime:t(Te))(L.created_at)),1)]),_:2},1024),e(te,{class:"min-w-[150px] whitespace-nowrap px-4 py-3 text-sm text-muted-foreground"},{default:a(()=>[d(n(("formatDateTime"in r?r.formatDateTime:t(Te))(L.updated_at)),1)]),_:2},1024),e(te,{class:"w-[100px] min-w-[100px] px-4 py-3"},{default:a(()=>[t(z)||t(H)?(s(),p(Xe,{key:0},{default:a(()=>[e(Je,{"as-child":""},{default:a(()=>[e(ee,{variant:"ghost",class:"h-8 w-8 p-0"},{default:a(()=>[i("span",va,n(r.$t("common.accessibility.openMenu")),1),e(O,{name:"lucide:more-horizontal",class:"h-4 w-4"})]),_:1})]),_:1}),e(Qe,{align:"end"},{default:a(()=>[t(z)?(s(),p(De,{key:0,onClick:at=>{D.value=L,y.value=!0}},{default:a(()=>[e(O,{name:"lucide:edit",class:"h-4 w-4"}),d(" "+n(r.$t("d.authentication.actions.edit")),1)]),_:1},8,["onClick"])):M("",!0),t(H)?(s(),U(oe,{key:1},[t(z)?(s(),p(Ze,{key:0})):M("",!0),e(De,{class:"text-destructive hover:text-destructive focus:text-destructive",onClick:at=>{R.value=L,$.value=!0}},{default:a(()=>[e(O,{name:"lucide:trash",class:"h-4 w-4"}),d(" "+n(r.$t("d.authentication.actions.delete")),1)]),_:1},8,["onClick"])],64)):M("",!0)]),_:2},1024)]),_:2},1024)):(s(),U("span",ya,"-"))]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])]),_:1}
1),t(N)||t(K)?(s(),p(me,{key:0,class:"border-t px-4 py-3"},{default:a(()=>[i("div",ba,[i("div",wa,[t(S)?(s(),p(de,{key:1,class:"h-4 w-20"})):(s(),U("span",xa,n(r.$t("d.authentication.totalUsers",{count:t(l)})),1))]),i("div",$a,[e(ee,{variant:"outline",size:"sm",disabled:!t(K)||t(j),onClick:t(b)},{default:a(()=>[t(j)?(s(),p(O,{key:1,name:"lucide:loader-2",class:"w-4 h-4 animate-spin"})):(s(),p(O,{key:0,name:"lucide:chevron-left",class:"w-4 h-4"})),d(" "+n(r.$t("common.pagination.previous")),1)]),_:1},8,["disabled","onClick"]),e(ee,{variant:"outline",size:"sm",disabled:!t(N)||t(G),onClick:t(B)},{default:a(()=>[d(n(r.$t("common.pagination.next"))+" ",1),t(G)?(s(),p(O,{key:1,name:"lucide:loader-2",class:"w-4 h-4 animate-spin"})):(s(),p(O,{key:0,name:"lucide:chevron-right",class:"w-4 h-4"}))]),_:1},8,["disabled","onClick"])])])]),_:1})):M("",!0)]),_:1})),o.createUser?(s(),p(Ye,{key:4,modelValue:t(m),"onUpdate:modelValue":k[2]||(k[2]=L=>ge(m)?m.value=L:null),loading:t(A),onSubmit:J},null,8,["modelValue","loading"])):M("",!0),o.updateUser?(s(),p(et,{key:5,modelValue:t(y),"onUpdate:modelValue":k[3]||(k[3]=L=>ge(y)?y.value=L:null),loading:t(v),credential:t(D),onSubmit:Z},null,8,["modelValue","loading","credential"])):M("",!0),o.deleteUser?(s(),p(tt,{key:6,modelValue:t($),"onUpdate:modelValue":k[4]||(k[4]=L=>ge($)?$.value=L:null),loading:t(_),credential:t(R),onConfirm:ue,onCancel:k[5]||(k[5]=L=>$.value=!1)},null,8,["modelValue","loading","credential"])):M("",!0)])}}}),ka=Object.assign(Ca,{__name:"SharedAuthConfigBuiltinConfig"}),Aa={class:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"},Da={class:"min-w-0"},Ua={class:"text-lg font-semibold"},Ta={class:"mt-0.5 text-sm text-muted-foreground"},Sa={key:0,class:"mt-6 flex flex-col items-center justify-center gap-4 roun
1ded-md border p-8 text-center"},Ba={class:"max-w-xl break-words text-sm font-medium text-foreground"},Fa={key:0,class:"mt-6 flex justify-end border-t pt-4"},Pa=ne({__name:"WebhookConfig",props:{fetchAuthenticatorDetail:{type:Function},updateAuthenticatorConfig:{type:Function}},setup(h){const T=h,{t:o}=se(),g=w(It()),f=w(!1),c=w(!1),l=w(null),x=P(()=>!!(T.updateAuthenticatorConfig&&!f.value&&!c.value&&Rt(g.value)));async function S(){try{f.value=!0,l.value=null;const v=await T.fetchAuthenticatorDetail();g.value=Nt(v.config)}catch(v){l.value=Y(v,o("d.authentication.detail.webhook.messages.loadError"))}finally{f.value=!1}}async function A(){if(!(!T.updateAuthenticatorConfig||!x.value))try{c.value=!0,await T.updateAuthenticatorConfig(Et(g.value)),X.success(o("d.authentication.detail.webhook.messages.saveSuccess")),await S()}catch(v){X.error(Y(v,o("d.authentication.detail.webhook.messages.saveError")))}finally{c.value=!1}}return Ce(()=>{S()}),(v,_)=>{const F=re,m=ie,y=Mt,$=pe,D=_e;return s(),p(D,{class:"shadow-sm"},{default:a(()=>[e($,{class:"p-5"},{default:a(()=>[i("div",Aa,[i("div",Da,[i("h2",Ua,n(v.$t("d.authentication.detail.webhook.title")),1),i("p",Ta,n(v.$t("d.authentication.detail.webhook.subtitle")),1)])]),t(l)&&!t(f)?(s(),U("div",Sa,[e(F,{name:"lucide:alert-circle",class:"h-10 w-10 text-destructive"}),i("h3",Ba,n(t(l)),1),e(m,{variant:"outline",size:"sm",onClick:S},{default:a(()=>[d(n(v.$t("common.retry")),1)]),_:1})])):(s(),U("div",{key:1,class:Pe(t(f)?"mt-6 opacity-60 pointer-events-none":"mt-6")},[e(y,{"model-value":t(g),"i18n-prefix":"d.authentication.webhookForm","onUpdate:modelValue":_[0]||(_[0]=R=>g.value=R)},null,8,["model-value"]),T.updateAuthenticatorConfig?(s(),U("div",Fa,[e(m,{size:"sm",disabled:!t(x),loading:t(c),onClick:A},{default:a(()=>[t(c)?M("",!0):(s(),p(F,{key:0,name:"lucide:save",class:"h-4 w-4"})),d(" "+n(v.$t("d.authentication.detail.webhook.actions.save")),1)]),_:1},8,["disabled","loading"])])):M("",!0)],2))]),_:1})]),_:1})}}}),za=Object.assign(Pa,{__name:"SharedAuthConfigWebhookConfig"}),ja={class:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"},Va={class:"min-w-0"},La={class:"text-lg font-semibold"},Ma={class:"mt-0.5 text-sm text-muted-foreground"},Ra={key:0,class:"mt-6 flex flex-col items-center justify-center gap-4 roun
1ded-md border p-8 text-center"},Na={class:"max-w-xl break-words text-sm font-medium text-foreground"},Ea={key:1,class:"mt-6 grid gap-5"},Ia={key:0,class:"mt-6 flex justify-end border-t pt-4"},qa=ne({__name:"RedisConfig",props:{fetchAuthenticatorDetail:{type:Function},updateAuthenticatorConfig:{type:Function}},setup(h){const T=h,{t:o}=se(),g=w(null),f=w(null),c=w(!1),l=w(!1),x=w(null),S=P(()=>!!(T.updateAuthenticatorConfig&&!c.value&&!l.value&&g.value&&f.value&&Ot(g.value)&&Wt(g.value,f.value)));async function A(){try{c.value=!0,x.value=null;const _=await T.fetchAuthenticatorDetail();try{const F=Kt(_.config);g.value=F,f.value=structuredClone(F)}catch{g.value=null,f.value=null,x.value=o("d.authentication.detail.redis.messages.invalidConfig")}}catch(_){x.value=Y(_,o("d.authentication.detail.redis.messages.loadError"))}finally{c.value=!1}}async function v(){if(!(!T.updateAuthenticatorConfig||!g.value||!f.value||!S.value))try{l.value=!0,await T.updateAuthenticatorConfig(Ht(g.value,f.value)),X.success(o("d.authentication.detail.redis.messages.saveSuccess")),await A()}catch(_){X.error(Y(_,o("d.authentication.detail.redis.messages.saveError")))}finally{l.value=!1}}return Ce(()=>{A()}),(_,F)=>{const m=re,y=ie,$=xe,D=qt,R=pe,W=_e;return s(),p(W,{class:"shadow-sm"},{default:a(()=>[e(R,{class:"p-5"},{default:a(()=>[i("div",ja,[i("div",Va,[i("h2",La,n(_.$t("d.authentication.detail.redis.title")),1),i("p",Ma,n(_.$t("d.authentication.detail.redis.subtitle")),1)])]),t(x)&&!t(c)?(s(),U("div",Ra,[e(m,{name:"lucide:alert-circle",class:"h-10 w-10 text-destructive"}),i("h3",Na,n(t(x)),1),e(y,{variant:"outline",size:"sm",onClick:A},{default:a(()=>[d(n(_.$t("common.retry")),1)]),_:1})])):t(c)?(s(),U("div",Ea,[e($,{class:"h-20 w-full"}),e($,{class:"h-36 w-full"}),e($,{class:"h-28 w-full"})])):t(g)?(s(),U(oe,{key:2},[e(D,{"model-value":t(g),"i18n-prefix":"d.authentication.redisForm",mode:"edit",class:"mt-6","onUpdate:modelValue":F[0]||(F[0]=z=>g.value=z)},null,8,["model-value"]),T.updateAuthenticatorConfig?(s(),U("div",Ia,[e(y,{size:"sm",disabled:!t(S),loading:t(l),onClick:v},{default:a(()=>[t(l)?M("",!0):(s(),p(m,{key:0,name:"lucide:save",class:"h-4 w-4"})),d(" "+n(_.$t("d.authentication.detail.redis.actions.save")),1)]),_:1},8,["disabled","loading"])])):M("",!0)],64)):M("",!0)]),_:1})]),_:1})}}}),Oa=Object.assign(qa,{__name:"SharedAuthConfigRedisConfig"});function Wa(){let h=null;function T(c){return h?.key===c?h.promise:null}function o(c,l){const x={key:c,promise:l};return h=x,x}function g(c,l){return h===c&&c.key===l}function f(c){return h!==c?!1:(h=null,!0)}return{get:T,track:o,isCurrent:g,clear:f}}const Ka={class:"flex flex-col gap-6"},Ha={class:"border bg-card p-4 sm:p-5"},Ga={class:"flex min-w-0 items-start gap-4"},Ja={class:"min-w-0 flex-1"},Za=["title"],Qa={class:"mt-1.5 flex flex-wrap items-center gap-2"},Xa={key:0,class:"inline-flex border bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground"},Ya={key:2,class:"flex min-w-0 items-center gap-1.5"},en=["title"],tn={class:"max-w-[240px] truncate"},an={class:"inline-flex items-center gap-1.5 whitespace-nowrap"},nn={class:"inline-flex items-center gap-1.5 whitespace-nowrap"},on={class:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"},sn={class:"min-w-0"},ln={class:"text-base font-semibold"},cn={class:"mt-0.5 text-sm text-muted-foreground"},rn={key:0,class:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4"},un={key:1,class:"flex flex-col items-center justify-center py-12"},dn={class:"grid max-w-md gap-4 text-center"},mn={class:"max-w-xl break-words text-sm font-medium"},fn={key:2,class:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4"},pn=["title"],_n=["title"],hn={key:3,class:"flex min-h-32 items-center justify-center border border-dashed border-border bg-muted/20 p-6 text-center"},gn={class:"grid max-w-md gap-2"},vn={class:"grid gap-1"},yn={class:"text-sm font-semibold"},bn={class:"max-w-md text-sm text-muted-foreground"},wn={class:"mb-4 border bg-card p-4 sm:p-5"},xn={class:"flex items-start justify-between gap-4"},$n={class:"min-w-0"},Cn={class:"text-sm font-medium text-muted-foreground"},kn={class:"mt-1 font-mono text-2xl font-semibold tabular-nums"},An={key:3,class:"flex min-h-56 flex-col items-center justify-center gap-3 border bg-card p-8 text-center"},Dn={class:"grid gap-1"},Un={class:"text-sm font-semibold"},Tn={class:"max-w-sm text-sm text-muted-foreground"},Sn=ne({__name:"AuthenticatorDetail",props:{authenticatorName:{},authenticatorType:{},activeTab:{default:"overview"},fetchAuthenticatorDetail:{},updateAuthenticatorConfig:{},fetchUsers:{},fetchUsersCount:{},createUser:{},updateUser:{},deleteUser:{}
1,configurableTypes:{}},emits:["update:activeTab"],setup(h,{emit:T}){const o=h,g=T,{t:f}=se(),c=w(0),l=w(null),x=w(null),S=w(!1),A=w(null),v=Wa(),_=P(()=>o.authenticatorType===ae.Password),F=P(()=>o.authenticatorType===ae.Webhook),m=P(()=>o.authenticatorType===ae.Redis),y=P(()=>new Set(o.configurableTypes??[ae.Webhook])),$=P(()=>_.value?"d.authentication.detail.tabs.principals":"d.authentication.detail.tabs.configuration"),D=P(()=>l.value?.metrics??null),R=P(()=>!!(D.value&&Object.values(D.value).some(u=>typeof u=="number"))),W=P(()=>[{key:"total",value:z(D.value?.total)},{key:"success",value:z(D.value?.success)},{key:"failed",value:z(D.value?.failed)},{key:"nomatch",value:z(D.value?.nomatch)},{key:"rate",value:z(D.value?.rate,!0)},{key:"rateLast5m",value:z(D.value?.rate_last5m,!0)},{key:"rateMax",value:z(D.value?.rate_max,!0)}]);function z(u,B=!1){if(typeof u!="number"||!Number.isFinite(u))return"-";const b=u.toLocaleString(void 0,{maximumFractionDigits:B?2:0});return B?f("d.authentication.detail.metrics.perSecond",{value:b}):b}function H(u){(u==="overview"||u==="conf")&&g("update:activeTab",u)}function q(u,B){return JSON.stringify([B,u])}async function G(){const u=q(o.authenticatorName,o.authenticatorType),B=v.get(u);return B||(x.value===u&&l.value?l.value:j())}async function j(){const u=o.authenticatorName,B=o.authenticatorType,b=q(u,B),C=v.get(b);if(C)return C;S.value=!0,A.value=null;const V=v.track(b,Promise.resolve().then(()=>o.fetchAuthenticatorDetail(u,B)));try{const J=await V.promise,Z=q(o.authenticatorName,o.authenticatorType);return v.isCurrent(V,Z)?(l.value=J,x.value=b,J):G()}catch(J){const Z=q(o.authenticatorName,o.authenticatorType);if(!v.isCurrent(V,Z))return G();throw A.value=Y(J,f("d.authentication.detail.messages.loadError")),J}finally{v.clear(V)&&q(o.authenticatorName,o.authenticatorType)===b&&(S.value=!1)}}function N(){j().catch(()=>{})}function K(u){if(!u)return"-";const B=`d.authentication.authenticators.types.${u}`,b=f(B);return b===B?u:b}return ut(()=>[o.authenticatorName,o.authenticatorType],()=>{l.value=null,x.value=null,A.value=null,N()},{immediate:!0}),(u,B)=>{const b=re,C=xe,V=ie,J=pt,Z=ht,ue=_t,E=pe,r=_e,k=vt,O=ka,ee=za,Q=Oa,le=gt;return s(),U("div",Ka,[i("div",Ha,[i("div",Ga,[e(b,{name:t(Gt)(h.authenticatorType),class:"mt-0.5 size-9 shrink-0"},null,8,["name"]),i("div",Ja,[i("h1",{class:"truncate text-xl font-semibold",title:h.authenticatorName},n(h.authenticatorName),9,Za),i("div",Qa,[h.authenticatorType?(s(),U("span",Xa,n(K(h.authenticatorType)),1)):M("",!0),t(S)&&!t(l)?(s(),p(C,{key:1,class:"h-5 w-20"})):t(A)?(s(),U("div",Ya,[i("span",{class:"inline-flex min-w-0 items-center gap-1.5 text-xs font-medium text-destructive",title:t(A)},[e(b,{name:"lucide:circle-alert",class:"size-3.5 shrink-0"}),i("span",tn,n(t(A)),1)],8,en),e(V,{type:"button",variant:"outline",size:"sm",class:"h-6 shrink-0 gap-1 px-2 text-xs",onClick:N},{default:a(()=>[e(b,{name:"lucide:refresh-cw",class:"size-3"}),d(" "+n(u.$t("common.retry")),1)]),_:1})])):t(l)?(s(),p(J,{key:3,status:t(l).status},null,8,["status"])):M("",!0)])])])]),e(le,{"model-value":o.activeTab,"onUpdate:modelValue":H},{default:a(()=>[e(ue,{class:"grid w-full max-w-[360px] grid-cols-2 rounded-md border border-border/70 bg-muted/40 p-1"},{default:a(()=>[e(Z,{value:"overview"},{default:a(()=>[i("span",an,[e(b,{name:"lucide:chart-no-axes-column",class:"size-4"}),d(" "+n(u.$t("d.authentication.detail.tabs.overview")),1)])]),_:1}),e(Z,{value:"conf"},{default:a(()=>[i("span",nn,[e(b,{name:t(_)?"lucide:users":"lucide:settings-2",class:"size-4"},null,8,["name"]),d(" "+n(u.$t(t($))),1)])]),_:1})]),_:1}),e(k,{value:"overview",class:"mt-4 grid gap-4"},{default:a(()=>[i("div",on,[i("div",sn,[i("h2",ln,n(u.$t("d.authentication.detail.metrics.title")),1),i("p",cn,n(u.$t("d.authentication.detail.metrics.subtitle")),1)]),e(V,{type:"button",variant:"outline",size:"sm",class:"shrink-0",disabled:t(S),onClick:N},{default:a(()=>[e(b,{name:"lucide:refresh-cw",class:Pe(["size-4",t(S)?"animate-spin":""])},null,8,["class"]),d(" "+n(u.$t("common.refresh")),1)]),_:1},8,["disabled"])]),t(S)&&!t(l)?(s(),U("div",rn,[(s(),U(oe,null,fe(7,I=>e(r,{key:I},{default:a(()=>[e(E,{class:"p-4"},{default:a(()=>[e(C,{class:"h-3 w-24"}),e(C,{class:"mt-3 h-6 w-20"})]),_:1})]),_:1})),64))])):t(A)&&!t(l)?(s(),U("div",un,[i("div",dn,[e(b,{name:"lucide:circle-alert",class:"mx-auto 
1size-12 text-destructive"}),i("p",mn,n(t(A)),1),e(V,{variant:"outline",size:"sm",class:"mx-auto",onClick:N},{default:a(()=>[d(n(u.$t("common.retry")),1)]),_:1})])])):t(R)?(s(),U("div",fn,[(s(!0),U(oe,null,fe(t(W),I=>(s(),p(r,{key:I.key,class:"min-w-0"},{default:a(()=>[e(E,{class:"p-4"},{default:a(()=>[i("p",{class:"truncate text-xs uppercase tracking-wide text-muted-foreground",title:u.$t(`d.authentication.detail.metrics.${I.key}`)},n(u.$t(`d.authentication.detail.metrics.${I.key}`)),9,pn),i("p",{class:"mt-1.5 truncate text-lg font-semibold tabular-nums",title:I.value},n(I.value),9,_n)]),_:2},1024)]),_:2},1024))),128))])):(s(),U("div",hn,[i("div",gn,[e(b,{name:"lucide:chart-no-axes-column",class:"mx-auto size-8 text-muted-foreground"}),i("div",vn,[i("h3",yn,n(u.$t("d.authentication.detail.metrics.emptyTitle")),1),i("p",bn,n(u.$t("d.authentication.detail.metrics.emptyDescription")),1)])])]))]),_:1}),e(k,{value:"conf",class:"mt-4"},{default:a(()=>[t(_)?(s(),U(oe,{key:0},[i("div",wn,[i("div",xn,[i("div",$n,[i("p",Cn,n(u.$t("d.authentication.detail.stats.totalPrincipals")),1),i("p",kn,n(t(c)),1)]),e(b,{name:"lucide:users",class:"size-5 shrink-0 text-muted-foreground"})])]),o.fetchUsers?(s(),p(O,{key:0,"fetch-users":o.fetchUsers,"fetch-users-count":o.fetchUsersCount,"create-user":o.createUser,"update-user":o.updateUser,"delete-user":o.deleteUser,onCountUpdated:B[0]||(B[0]=I=>c.value=I)},null,8,["fetch-users","fetch-users-count","create-user","update-user","delete-user"])):M("",!0)],64)):t(F)&&t(y).has(t(ae).Webhook)?(s(),p(ee,{key:1,"fetch-authenticator-detail":j,"update-authenticator-config":o.updateAuthenticatorConfig?I=>o.updateAuthenticatorConfig(h.authenticatorName,h.authenticatorType,{config:I}):void 0},null,8,["update-authenticator-config"])):t(m)&&t(y).has(t(ae).Redis)?(s(),p(Q,{key:2,"fetch-authenticator-detail":j,"update-authenticator-config":o.updateAuthenticatorConfig?I=>o.updateAuthenticatorConfig(h.authenticatorName,h.authenticatorType,{config:I}):void 0},null,8,["update-authenticator-config"])):(s(),U("div",An,[e(b,{name:"lucide:settings",class:"size-10 text-muted-foreground"}),i("div",Dn,[i("h3",Un,n(u.$t("d.authentication.detail.placeholder.title")),1),i("p",Tn,n(u.$t("d.authentication.detail.placeholder.description")),1)])]))]),_:1})]),_:1},8,["model-value"])])}}}),Bn=Object.assign(Sn,{__name:"SharedAuthAuthenticatorDetail"}),Fn={class:"mx-auto w-full max-w-[1440px] px-4 lg:px-6 xl:px-12 2xl:px-20 3xl:px-24 my-8"},Pn={class:"flex flex-col gap-6"},Xo=ne({__name:"[name]",setup(h){const{t:T}=se(),o=dt(),{can:g}=Zt(),{getAuthenticator:f,updateAuthenticatorConfig:c,getAuthUsers:l,getAuthUsersCount:x,createAuthUser:S,updateAuthUser:A,deleteAuthUser:v}=Qt(),_=P(()=>o.params.id),F=P(()=>o.params.orgId),m=P(()=>String(o.params.name??"")),y=P(()=>String(o.params.type??"")),$=P(()=>Se(m.value)),D=P(()=>Se(y.value)),R=P(()=>o.query.tab==="conf"?"conf":"overview"),W=P(()=>`/dashboard/organizations/${F.value}/projects/${_.value}/authentication/${Be(D.value)}/${Be($.value)}`),z=P(()=>g("update","MqttAuthentication")),H=P(()=>g("create","MqttAuthentication")),q=P(()=>g("delete","MqttAuthentication"));function G(j){const N={...o.query};j==="conf"?N.tab="conf":delete N.tab,ft({path:Ue(W.value),query:N})}return mt(()=>({title:`${$.value} - ${T("d.authentication.title")}`})),(j,N)=>{const K=nt,u=lt,B=it,b=ct,C=rt,V=st,J=ot,Z=Bn,ue=Jt;return s(),p(ue,null,{default:a(()=>[i("div",Fn,[i("div",Pn,[e(J,null,{default:a(()=>[e(V,null,{default:a(()=>[e(B,null,{default:a(()=>[e(u,{"as-child":""},{default:a(()=>[e(K,{url:("i18nLocalePath"in j?j.i18nLocalePath:t(Ue))(`/dashboard/organizations/${t(F)}/projects/${t(_)}/authentication`)},{default:a(()=>[d(n(j.$t("d.authentication.title")),1)]),_:1},8,["url"])]),_:1})]),_:1}),e(b),e(B,null,{default:a(()=>[e(C,{class:"inline-block max-w-[40ch] truncate align-bottom",title:t($)},{default:a(()=>[d(n(t($)),1)]),_:1},8,["title"])]),_:1})]),_:1})]),_:1}),e(Z,{"authenticator-name":t($),"authenticator-type":t(D),"active-tab":t(R),"fetch-authenticator-detail":(E,r)=>t(f)(t(_),E,r),"update-authenticator-config":t(z)?(E,r,k)=>t(c)(t(_),E,r,k):void 0,"fetch-users":E=>t(l)(t(_),E),"fetch-users-count":()=>
1t(x)(t(_)),"create-user":t(H)?E=>t(S)(t(_),E):void 0,"update-user":t(z)?(E,r)=>t(A)(t(_),E,r):void 0,"delete-user":t(q)?E=>t(v)(t(_),E):void 0,"configurable-types":[t(ae).Webhook,t(ae).Redis],"onUpdate:activeTab":G},null,8,["authenticator-name","authenticator-type","active-tab","fetch-authenticator-detail","update-authenticator-config","fetch-users","fetch-users-count","create-user","update-user","delete-user","configurable-types"])])])]),_:1})}}});export{Xo 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.