3 lines
11 KiB
JavaScript
3 lines
11 KiB
JavaScript
import"../chunks/DsnmJJEf.js";import{p as tt,i as h,m as me,u as rt,j as n,a as _,b as at,k as ot,o as st,c as p,s as a,t as T,d as r,$ as it,r as t,g as e,h as te,f as q,e as lt,n as ce,l as Se,x as nt}from"../chunks/krC2xWPP.js";import{d as dt,e as vt,s as i,a as he}from"../chunks/CddAxf8c.js";import{i as F}from"../chunks/DjsWWzyL.js";import{t as re,B as ae,r as fe,c as ut,e as Oe,d as _t}from"../chunks/Lvd_r9sp.js";import{h as mt,s as oe}from"../chunks/j_DJpx8B.js";import{b as Ie}from"../chunks/ciapVzar.js";import{i as o}from"../chunks/Cu5ilWky.js";import{g as De}from"../chunks/BVTiZ3e2.js";import{b as ye}from"../chunks/BSopV7IU.js";import{c as ct}from"../chunks/BdLHIMkW.js";import{a as ft}from"../chunks/DRw0n_lJ.js";import{P as It}from"../chunks/DHzx-VDt.js";import{S as Nt}from"../chunks/K87jKp17.js";import{D as pt}from"../chunks/nlum2O0L.js";import{M as xt}from"../chunks/gco9CfpC.js";import{L as Me}from"../chunks/C_E2vM9U.js";import{S as Tt}from"../chunks/DbyOCN1L.js";import{C as Ve}from"../chunks/DEuEFefA.js";import{C as gt}from"../chunks/Cv606Ht4.js";import{T as bt}from"../chunks/zdwqcrP5.js";var At=p('<div class="flex h-9 w-9 items-center justify-center rounded-full bg-primary/10 text-primary"><!></div>'),Et=p("<!> ",1),St=p('<div><div><div class="flex items-center gap-3"><button type="button" class="inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"><!></button> <!> <h1> </h1></div> <!></div></div>'),ht=p('<div class="mt-4 flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-700 dark:text-amber-400"><!> <span> </span></div>'),Ot=p('<p class="mt-3 text-xs text-muted-foreground"> </p>'),Dt=p("<!> ",1),yt=p("<!> ",1),Mt=p('<div class="rounded-xl border border-border bg-card p-5"><div class="flex items-center gap-2"><div class="flex h-9 w-9 items-center justify-center rounded-full bg-primary/10 text-primary"><!></div> <h2 class="text-sm font-semibold text-foreground"> </h2></div> <!> <label for="invite-link" class="mt-4 block text-xs font-medium text-muted-foreground"> </label> <div class="mt-1 flex gap-2"><input id="invite-link" type="text" readonly="" class="h-9 w-full rounded-md border border-input bg-muted/40 px-3 font-mono text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring"/> <!></div> <div class="mt-5 flex gap-2"><!> <!></div></div>'),Vt=p("<option> </option>"),Xt=p('<div class="flex items-center gap-2 text-xs text-muted-foreground"><!> </div>'),kt=p('<p class="text-xs text-muted-foreground"> </p>'),Pt=p('<button type="button"> </button>'),wt=p('<div class="flex flex-wrap gap-2"></div>'),$t=p('<div class="rounded-xl border border-border bg-card p-5"><h2 class="text-sm font-semibold text-foreground"> </h2> <p class="mt-1 text-xs text-muted-foreground"> </p> <div class="mt-4 space-y-4"><div><label for="email" class="block text-xs font-medium text-muted-foreground"> <span class="text-destructive">*</span></label> <input id="email" type="email" placeholder="name@example.com" class="mt-1 h-9 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"/></div> <div><label for="fullname" class="block text-xs font-medium text-muted-foreground"> </label> <input id="fullname" type="text" class="mt-1 h-9 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-ring"/></div> <div><label for="message" class="block text-xs font-medium text-muted-foreground"> </label> <textarea id="message" rows="2" class="mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-ring"></textarea></div> <div><label for="expiration" class="block text-xs font-medium text-muted-foreground"> </label> <select id="expiration" class="mt-1 h-9 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-ring"></select></div></div></div> <div class="rounded-xl border border-border bg-card p-5"><h2 class="text-sm font-semibold text-foreground"> </h2> <p class="mt-1 text-xs text-muted-foreground"> </p> <div class="mt-4"><!></div></div> <div class="rounded-xl border border-border bg-card p-5"><h2 class="text-sm font-semibold text-foreground"> </h2> <p class="mt-1 text-xs text-muted-foreground"> </p> <div class="mt-4"><!></div></div>',1),Rt=p('<div class="flex h-full flex-col"><!> <div class="flex-1 overflow-y-auto"><div class="space-y-6 px-6 py-6"><!></div></div></div>');function sr(Xe,ke){tt(ke,!0);let H=h(""),J=h(""),Q=h(""),se=h(604800),K=h(me({})),y=h(me([])),Z=h(!1),ee=h(me([])),ie=h(!0),S=h(null),le=h(!1);const Pe=te(()=>/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(e(H).trim())),Ne=te(()=>e(Pe)&&!e(Z)),we=te(()=>[{value:86400,label:o.t("ADMIN_NEXT.INVITATIONS.EXPIRY_1_DAY")},{value:259200,label:o.t("ADMIN_NEXT.INVITATIONS.EXPIRY_3_DAYS")},{value:604800,label:o.t("ADMIN_NEXT.INVITATIONS.EXPIRY_7_DAYS")},{value:1209600,label:o.t("ADMIN_NEXT.INVITATIONS.EXPIRY_14_DAYS")},{value:2592e3,label:o.t("ADMIN_NEXT.INVITATIONS.EXPIRY_30_DAYS")}]);rt(()=>{$e()});async function $e(){n(ie,!0);try{const s=await ft(1,200);n(ee,s.groups,!0)}catch{n(ee,[],!0)}finally{n(ie,!1)}}function Re(s){e(y).includes(s)?n(y,e(y).filter(x=>x!==s),!0):n(y,[...e(y),s],!0)}function Le(s){n(K,s,!0)}async function pe(){n(Z,!0);try{n(S,await ct({email:e(H).trim(),fullname:e(J)||void 0,message:e(Q)||void 0,expiration:e(se),access:Object.keys(e(K)).length>0?e(K):void 0,groups:e(y).length>0?e(y):void 0}),!0),e(S).email_sent?re.success(o.t("ADMIN_NEXT.INVITATIONS.SENT_TOAST",{email:e(H).trim()})):re.warning(o.t("ADMIN_NEXT.INVITATIONS.CREATED_NO_EMAIL_TOAST"))}catch(s){const x=s&&typeof s=="object"&&"message"in s?s.message:o.t("ADMIN_NEXT.INVITATIONS.SEND_FAILED");re.error(x)}finally{n(Z,!1)}}async function ze(){if(e(S)?.link)try{await navigator.clipboard.writeText(e(S).link),n(le,!0),setTimeout(()=>n(le,!1),2e3)}catch{re.error(o.t("ADMIN_NEXT.INVITATIONS.COPY_FAILED"))}}function Ye(){n(S,null),n(H,""),n(J,""),n(Q,""),n(K,{},!0),n(y,[],!0)}function Ce(s){(s.metaKey||s.ctrlKey)&&s.key==="s"&&(s.preventDefault(),e(Ne)&&pe())}var ne=Rt();mt("179m7it",s=>{ot(x=>{it.title=x??""},[()=>o.t("ADMIN_NEXT.INVITATIONS.INVITE_USER")])}),vt("keydown",st,Ce);var xe=r(ne);Nt(xe,{children:(x,M)=>{let g=()=>M?.().scrolled;var w=St(),O=r(w),L=r(O),D=r(L),z=r(D);pt(z,{name:"arrow-back",size:16}),t(D);var $=a(D,2);{var Y=N=>{var b=At(),k=r(b);xt(k,{size:16}),t(b),_(N,b)};F($,N=>{g()||N(Y)})}var R=a($,2),V=r(R,!0);t(R),t(L);var X=a(L,2);{var B=N=>{{let b=te(()=>!e(Ne));ae(N,{size:"sm",onclick:pe,get disabled(){return e(b)},children:(k,m)=>{var u=Et(),d=q(u);{var f=v=>{Me(v,{size:14,class:"me-1.5 animate-spin"})},C=v=>{Tt(v,{size:14,class:"me-1.5"})};F(d,v=>{e(Z)?v(f):v(C,-1)})}var G=a(d);T(v=>i(G,` ${v??""}`),[()=>o.t("ADMIN_NEXT.INVITATIONS.SEND_INVITE")]),_(k,u)},$$slots:{default:!0}})}};F(X,N=>{e(S)||N(B)})}t(O),t(w),T(N=>{oe(w,1,`px-6 transition-[padding] duration-200 ${g()?"py-2":"pt-6 pb-3"}`),oe(O,1,`flex items-center justify-between gap-4 ${g()?"min-h-6":"min-h-8"}`),oe(R,1,`font-semibold text-foreground transition-[font-size] duration-200 ${g()?"text-sm":"text-lg"}`),i(V,N)},[()=>o.t("ADMIN_NEXT.INVITATIONS.INVITE_USER")]),he("click",D,()=>De(`${ye}/users/invitations`)),_(x,w)},$$slots:{default:!0}});var Te=a(xe,2),ge=r(Te),Ge=r(ge);{var je=s=>{var x=Mt(),M=r(x),g=r(M),w=r(g);Ve(w,{size:16}),t(g);var O=a(g,2),L=r(O,!0);t(O),t(M);var D=a(M,2);{var z=m=>{var u=ht(),d=r(u);bt(d,{size:14,class:"mt-0.5 shrink-0"});var f=a(d,2),C=r(f,!0);t(f),t(u),T(()=>i(C,e(S).warning)),_(m,u)},$=m=>{var u=Ot(),d=r(u,!0);t(u),T(f=>i(d,f),[()=>o.t("ADMIN_NEXT.INVITATIONS.EMAIL_SENT_TO",{email:e(S).email})]),_(m,u)};F(D,m=>{e(S).warning?m(z):m($,-1)})}var Y=a(D,2),R=r(Y,!0);t(Y);var V=a(Y,2),X=r(V);fe(X);var B=a(X,2);ae(B,{size:"sm",variant:"outline",onclick:ze,children:(m,u)=>{var d=lt(),f=q(d);{var C=v=>{var P=Dt(),j=q(P);Ve(j,{size:14,class:"me-1.5"});var U=a(j,1,!0);T(W=>i(U,W),[()=>o.t("ADMIN_NEXT.INVITATIONS.COPIED")]),_(v,P)},G=v=>{var P=yt(),j=q(P);gt(j,{size:14,class:"me-1.5"});var U=a(j,1,!0);T(W=>i(U,W),[()=>o.t("ADMIN_NEXT.INVITATIONS.COPY")]),_(v,P)};F(f,v=>{e(le)?v(C):v(G,-1)})}_(m,d)},$$slots:{default:!0}}),t(V);var N=a(V,2),b=r(N);ae(b,{size:"sm",variant:"outline",onclick:Ye,children:(m,u)=>{ce();var d=Se();T(f=>i(d,f),[()=>o.t("ADMIN_NEXT.INVITATIONS.INVITE_ANOTHER")]),_(m,d)},$$slots:{default:!0}});var k=a(b,2);ae(k,{size:"sm",onclick:()=>De(`${ye}/users/invitations`),children:(m,u)=>{ce();var d=Se();T(f=>i(d,f),[()=>o.t("ADMIN_NEXT.INVITATIONS.VIEW_PENDING")]),_(m,d)},$$slots:{default:!0}}),t(N),t(x),T((m,u)=>{i(L,m),i(R,u),ut(X,e(S).link??"")},[()=>o.t("ADMIN_NEXT.INVITATIONS.INVITE_READY"),()=>o.t("ADMIN_NEXT.INVITATIONS.INVITE_LINK")]),_(s,x)},Ue=s=>{var x=$t(),M=q(x),g=r(M),w=r(g,!0);t(g);var O=a(g,2),L=r(O,!0);t(O);var D=a(O,2),z=r(D),$=r(z),Y=r($);ce(),t($);var R=a($,2);fe(R),t(z);var V=a(z,2),X=r(V),B=r(X,!0);t(X);var N=a(X,2);fe(N),t(V);var b=a(V,2),k=r(b),m=r(k,!0);t(k);var u=a(k,2);nt(u),t(b);var d=a(b,2),f=r(d),C=r(f,!0);t(f);var G=a(f,2);Oe(G,21,()=>e(we),l=>l.value,(l,c)=>{var I=Vt(),A=r(I,!0);t(I);var E={};T(()=>{i(A,e(c).label),E!==(E=e(c).value)&&(I.value=(I.__value=e(c).value)??"")}),_(l,I)}),t(G),t(d),t(D),t(M);var v=a(M,2),P=r(v),j=r(P,!0);t(P);var U=a(P,2),W=r(U,!0);t(U);var be=a(U,2),Fe=r(be);{var He=l=>{var c=Xt(),I=r(c);Me(I,{size:14,class:"animate-spin"});var A=a(I);t(c),T(E=>i(A,` ${E??""}`),[()=>o.t("ADMIN_NEXT.INVITATIONS.LOADING_GROUPS")]),_(l,c)},Ke=l=>{var c=kt(),I=r(c,!0);t(c),T(A=>i(I,A),[()=>o.t("ADMIN_NEXT.INVITATIONS.NO_GROUPS")]),_(l,c)},Be=l=>{var c=wt();Oe(c,21,()=>e(ee),I=>I.groupname,(I,A)=>{var E=Pt(),ue=r(E,!0);t(E),T(_e=>{oe(E,1,`rounded-full border px-3 py-1 text-xs font-medium transition-colors
|
|
${_e??""}`),i(ue,e(A).readableName||e(A).groupname)},[()=>e(y).includes(e(A).groupname)?"border-primary bg-primary/10 text-primary":"border-border text-muted-foreground hover:text-foreground"]),he("click",E,()=>Re(e(A).groupname)),_(I,E)}),t(c),_(l,c)};F(Fe,l=>{e(ie)?l(He):e(ee).length===0?l(Ke,1):l(Be,-1)})}t(be),t(v);var Ae=a(v,2),de=r(Ae),We=r(de,!0);t(de);var ve=a(de,2),qe=r(ve,!0);t(ve);var Ee=a(ve,2),Je=r(Ee);It(Je,{get value(){return e(K)},onchange:Le}),t(Ee),t(Ae),T((l,c,I,A,E,ue,_e,Qe,Ze,et)=>{i(w,l),i(L,c),i(Y,`${I??""} `),i(B,A),i(m,E),i(C,ue),i(j,_e),i(W,Qe),i(We,Ze),i(qe,et)},[()=>o.t("ADMIN_NEXT.INVITATIONS.RECIPIENT"),()=>o.t("ADMIN_NEXT.INVITATIONS.RECIPIENT_HINT"),()=>o.t("ADMIN_NEXT.INVITATIONS.EMAIL"),()=>o.t("ADMIN_NEXT.INVITATIONS.FULL_NAME_OPTIONAL"),()=>o.t("ADMIN_NEXT.INVITATIONS.MESSAGE_OPTIONAL"),()=>o.t("ADMIN_NEXT.INVITATIONS.EXPIRES_AFTER"),()=>o.t("ADMIN_NEXT.INVITATIONS.GROUPS"),()=>o.t("ADMIN_NEXT.INVITATIONS.GROUPS_HINT"),()=>o.t("ADMIN_NEXT.INVITATIONS.PERMISSIONS"),()=>o.t("ADMIN_NEXT.INVITATIONS.PERMISSIONS_HINT")]),Ie(R,()=>e(H),l=>n(H,l)),Ie(N,()=>e(J),l=>n(J,l)),Ie(u,()=>e(Q),l=>n(Q,l)),_t(G,()=>e(se),l=>n(se,l)),_(s,x)};F(Ge,s=>{e(S)?s(je):s(Ue,-1)})}t(ge),t(Te),t(ne),_(Xe,ne),at()}dt(["click"]);export{sr as component};
|