omegga 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -2
- package/bin/omegga +1 -1
- package/dist/cli/terminal.js +46 -0
- package/dist/cli/terminal.js.map +1 -1
- package/dist/omegga/commandInjector.js +13 -6
- package/dist/omegga/commandInjector.js.map +1 -1
- package/dist/omegga/player.js +2 -2
- package/dist/omegga/player.js.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/webserver/backend/database.js +219 -7
- package/dist/webserver/backend/database.js.map +1 -1
- package/dist/webserver/backend/events.js +1 -1
- package/dist/webserver/backend/events.js.map +1 -1
- package/dist/webserver/backend/index.js +120 -2
- package/dist/webserver/backend/index.js.map +1 -1
- package/dist/webserver/backend/permissions.js +74 -0
- package/dist/webserver/backend/permissions.js.map +1 -0
- package/dist/webserver/backend/router/chat.js +9 -7
- package/dist/webserver/backend/router/chat.js.map +1 -1
- package/dist/webserver/backend/router/index.js +3 -1
- package/dist/webserver/backend/router/index.js.map +1 -1
- package/dist/webserver/backend/router/mfa.js +162 -0
- package/dist/webserver/backend/router/mfa.js.map +1 -0
- package/dist/webserver/backend/router/player.js +7 -6
- package/dist/webserver/backend/router/player.js.map +1 -1
- package/dist/webserver/backend/router/plugin.js +14 -10
- package/dist/webserver/backend/router/plugin.js.map +1 -1
- package/dist/webserver/backend/router/role.js +2 -1
- package/dist/webserver/backend/router/role.js.map +1 -1
- package/dist/webserver/backend/router/server.js +85 -71
- package/dist/webserver/backend/router/server.js.map +1 -1
- package/dist/webserver/backend/router/session.js +11 -2
- package/dist/webserver/backend/router/session.js.map +1 -1
- package/dist/webserver/backend/router/user.js +175 -13
- package/dist/webserver/backend/router/user.js.map +1 -1
- package/dist/webserver/backend/router/world.js +10 -9
- package/dist/webserver/backend/router/world.js.map +1 -1
- package/dist/webserver/backend/scopes.js +303 -0
- package/dist/webserver/backend/scopes.js.map +1 -0
- package/dist/webserver/backend/totp.js +32 -0
- package/dist/webserver/backend/totp.js.map +1 -0
- package/dist/webserver/backend/trpc.js +47 -4
- package/dist/webserver/backend/trpc.js.map +1 -1
- package/doc/permissions.md +193 -0
- package/package.json +7 -2
- package/public/app.html +932 -526
- package/public/assets/IconShieldCheck-Bjlm8mX2.js +2 -0
- package/public/assets/IconShieldCheck-Bjlm8mX2.js.map +1 -0
- package/public/assets/IconWorld-XmQNg6JI.js +2 -0
- package/public/assets/IconWorld-XmQNg6JI.js.map +1 -0
- package/public/assets/IconWorldPlus-CxGGv2eD.js +2 -0
- package/public/assets/IconWorldPlus-CxGGv2eD.js.map +1 -0
- package/public/assets/app-DMr_-wik.js +7 -0
- package/public/assets/app-DMr_-wik.js.map +1 -0
- package/public/assets/auth-CEYiizOt.js +2 -0
- package/public/assets/auth-CEYiizOt.js.map +1 -0
- package/public/assets/index-BDkarAkX.js +3 -0
- package/public/assets/index-BDkarAkX.js.map +1 -0
- package/public/assets/{index-2cgXLhrt.js → index-DEL-PD_8.js} +2 -2
- package/public/assets/{index-2cgXLhrt.js.map → index-DEL-PD_8.js.map} +1 -1
- package/public/assets/index-D_STNela.js +2 -0
- package/public/assets/index-D_STNela.js.map +1 -0
- package/public/assets/index-Dkh3HiBz.js +4 -0
- package/public/assets/index-Dkh3HiBz.js.map +1 -0
- package/public/assets/shared/@components-CgsSYMe6.js +2 -0
- package/public/assets/shared/@components-CgsSYMe6.js.map +1 -0
- package/public/assets/shared/@hooks-DT93N7wd.js +2 -0
- package/public/assets/shared/{@hooks-Ch_hJYh0.js.map → @hooks-DT93N7wd.js.map} +1 -1
- package/public/assets/shared/@tabler_icons-react-DrVFX3uL.js +3 -0
- package/public/assets/shared/{@tabler_icons-react-iQk11eD_.js.map → @tabler_icons-react-DrVFX3uL.js.map} +1 -1
- package/public/assets/shared/{wouter-CUC1caxu.js → wouter-CNISJ5i6.js} +2 -2
- package/public/assets/shared/wouter-CNISJ5i6.js.map +1 -0
- package/public/assets/useHasScope-BOdFktko.js +2 -0
- package/public/assets/useHasScope-BOdFktko.js.map +1 -0
- package/public/auth.html +97 -33
- package/templates/safe-ts/omegga.d.ts +1 -1
- package/public/assets/IconArrowRight-BuVxhqKX.js +0 -2
- package/public/assets/IconArrowRight-BuVxhqKX.js.map +0 -1
- package/public/assets/IconWorld-B6GK5qpx.js +0 -2
- package/public/assets/IconWorld-B6GK5qpx.js.map +0 -1
- package/public/assets/IconWorldPlus-Dkos72Ws.js +0 -2
- package/public/assets/IconWorldPlus-Dkos72Ws.js.map +0 -1
- package/public/assets/app-CLZ-5FIi.js +0 -6
- package/public/assets/app-CLZ-5FIi.js.map +0 -1
- package/public/assets/auth-6N37o421.js +0 -2
- package/public/assets/auth-6N37o421.js.map +0 -1
- package/public/assets/index-DLZ8-XzO.js +0 -4
- package/public/assets/index-DLZ8-XzO.js.map +0 -1
- package/public/assets/index-DY750sgZ.js +0 -2
- package/public/assets/index-DY750sgZ.js.map +0 -1
- package/public/assets/shared/@components-DPHARroA.js +0 -2
- package/public/assets/shared/@components-DPHARroA.js.map +0 -1
- package/public/assets/shared/@hooks-Ch_hJYh0.js +0 -2
- package/public/assets/shared/@tabler_icons-react-iQk11eD_.js +0 -3
- package/public/assets/shared/wouter-CUC1caxu.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{c as vc}from"./client-BT1QYH0O.js";import{j as e}from"./jsx-runtime-BX5r4UiA.js";import{r as D,a as yc}from"./index-CrN8I5Az.js";import{t as K,T as xc,N as qe,P as Me,S as Ae,D as ca,a as sr,b as ua,c as ar,d as _e,e as V,f as xe,g as we,I as bc,C as jc,h as Je,U as ir,L as da,i as Bs,j as ye,k as wc,l as _c,R as Sc,m as yt,n as Cc,q as ha,Q as Rc}from"./index-Dkh3HiBz.js";import{a as ke,u as xt,L as mt,S as Gs,R as ge,b as Pc,c as Nc}from"./index-DEL-PD_8.js";import{d as ve,i as Dc,h as Dl,a as fa,b as El,l as Ec,r as It,c as Ht,e as Oc,f as Wt,g as $s,j as Ut,k as He,m as qc}from"./utils-Ds3ldd-U.js";import{a as bt}from"./index-CSV4ZXsq.js";import{$ as Ks,a as Ft,b as Mc,c as Ac,d as kc,u as te,e as Is,f as Ze}from"./useHasScope-BOdFktko.js";import{$ as Tc,L as fe,I as le,a as H,u as Be,F as Pe,D as jt,M as Bt,H as wt,P as gt}from"./index-D_STNela.js";import{useStore as be}from"./shared/@nanostores_react-DJPF1Eqx.js";import{_ as Lc,b as pa,a as zc,c as Hs,I as Ot}from"./IconShieldCheck-Bjlm8mX2.js";import{a as Oe}from"./IconX-CvmO0bbE.js";import{I as ma,a as Ol,b as Ic,c as Hc,d as Gt,e as Ve,f as Wc,g as Ws,h as Uc,i as qt,j as Fc,k as Bc,l as Gc,m as $c,n as Kc,o as Yc,p as Xc,q as Vc,r as ga,s as Qc,t as Jc,u as $t,v as Zc,w as ql,x as Ml,y as eu,z as Mt,A as Al,B as kl,C as tu,D as ru,E as nu,F as su,G as au,H as iu,J as ou,K as lu,L as cu,M as va,N as ya,O as Tl,P as Ll,Q as uu,R as du,S as hu}from"./IconWorldPlus-CxGGv2eD.js";import{I as At}from"./IconCheck-DOe3u7iH.js";import{I as vt,a as _t,b as St,c as fu,d as zl,e as xa,f as pu}from"./IconWorld-XmQNg6JI.js";import{a as mu,g as Ys}from"./_commonjsHelpers-CE1G-McA.js";import{r as Ce}from"./index-D0OPOe3j.js";import{r as Xs}from"./index-CtCtK5BX.js";import{useSaved as gu,SavedSpan as vu,SavedStatus as yu}from"./shared/@hooks-DT93N7wd.js";import"./jsx-runtime-DldvXD6N.js";import"./index-CJ4e7_2M.js";let kt=-1,Tt=-1,$e=!1,Ke,tt;const Se=document.createElement("div");Object.assign(Se.style,{position:"fixed",left:"-1000px",top:"-1000px",border:"2px solid black",background:"white",fontFamily:"Glacial Indifference",fontWeight:"bold",fontSize:"16px",padding:"8px",maxWidth:"300px",zIndex:"100000",borderRadius:"8px",pointerEvents:"none",opacity:0,transition:"opacity .2s ease"});Se.innerText="";document.body.appendChild(Se);document.body.addEventListener("mousemove",t=>{kt=t.clientX,Tt=t.clientY,Ke&&Il()});function Il(){const t=document.body.clientWidth,n=document.body.clientHeight;Object.assign(Se.style,{left:kt+(kt<t/2?16:-16-Se.clientWidth)+"px",top:Tt+(Tt<n/2?16:-16-Se.clientHeight)+"px"})}function Hl(t){if(!t||!t.getAttribute)return;const n=t.getAttribute("data-tooltip");return n||Hl(t.parentNode??null)}function xu(){const t=document.elementFromPoint(kt,Tt),n=Hl(t),r=Se.innerText;!n&&$e&&!Ke&&($e=!1,clearTimeout(tt)),n&&!$e&&!Ke?(clearTimeout(tt),$e=!0,tt=setTimeout(()=>{Se.innerText=n,Il(),Se.style.opacity="1",Ke=!0},400)):r!==n&&Ke&&$e&&(clearTimeout(tt),$e=!1,tt=setTimeout(()=>{Ke=!1,Object.assign(Se.style,{left:"-1000px",top:"-1000px"})},300),Se.style.opacity="0")}setInterval(()=>{xu()},100);const ba=bt(!1),ja=bt(!1),bu=()=>{const{data:t,status:n,error:r}=K.session.info.useQuery();return D.useEffect(()=>{n==="success"&&t?(Ks.set(t),Tc.set(t.version),Ft.set(t.user),Mc.set(t.roles),Ac.set(t.user.resolvedScopes??{}),kc.set(t.canLogOut),ba.set(!0),ja.set(!1)):n==="error"&&(ba.set(!1),ja.set(!0),r instanceof xc&&r.data?.code==="UNAUTHORIZED"&&location.reload())},[t,n]),null},ju=()=>e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Not Found"}),e.jsx(Me,{children:e.jsx(Ae,{})})]}),or=({error:t})=>t?e.jsx("div",{className:"mfa-error",children:t}):null,wu=()=>{const t=K.mfa.status.useQuery(),n=K.mfa.totp.setup.useMutation(),r=K.mfa.totp.enable.useMutation(),s=K.mfa.totp.disable.useMutation(),i=K.mfa.passkey.registerOptions.useMutation(),a=K.mfa.passkey.register.useMutation(),c=K.mfa.passkey.remove.useMutation(),d=K.mfa.recoveryCodes.generate.useMutation(),[g,b]=D.useState(null),[C,x]=D.useState(""),[j,P]=D.useState(""),[_,p]=D.useState(""),[o,u]=D.useState(""),[l,h]=D.useState(""),[v,m]=D.useState(null),[y,f]=D.useState(""),[S,N]=D.useState(""),[M,E]=D.useState(""),[T,A]=D.useState(!1),q=typeof window<"u"&&!!window.PublicKeyCredential&&(location.protocol==="https:"||location.hostname==="localhost"),z=D.useCallback(async()=>{if(!j)return;f(""),A(!0);const Y=await n.mutateAsync({password:j});A(!1),"error"in Y&&Y.error?f(Y.error):"secret"in Y&&(b(Y),x(""),P(""))},[j]),W=D.useCallback(async()=>{if(!g)return;f(""),A(!0);const Y=await r.mutateAsync({code:C});A(!1),Y?f(Y):(b(null),x(""),t.refetch())},[g,C]),L=D.useCallback(async()=>{if(!j)return;f(""),A(!0);const Y=await s.mutateAsync({password:j});A(!1),Y?f(Y):(P(""),t.refetch())},[j]),$=D.useCallback(async()=>{N(""),A(!0);try{const Y=await i.mutateAsync(),{startRegistration:ie}=await Lc(async()=>{const{startRegistration:pe}=await import("./index-BDkarAkX.js");return{startRegistration:pe}},[]),ce=await ie({optionsJSON:Y}),he=await a.mutateAsync({credential:ce,name:l||"Passkey"});he?N(he):(h(""),t.refetch())}catch(Y){Y?.name!=="NotAllowedError"&&N(Y?.message||"Registration failed")}A(!1)},[l]),ee=D.useCallback(async Y=>{if(!_){N("Enter your password to remove a passkey");return}N(""),A(!0);const ie=await c.mutateAsync({id:Y,password:_});ie?N(ie):(p(""),t.refetch()),A(!1)},[_]),J=D.useCallback(async()=>{if(!o)return;E(""),A(!0);const Y=await d.mutateAsync({password:o});"error"in Y&&Y.error?E(Y.error):"codes"in Y&&(m(Y.codes),u(""),t.refetch()),A(!1)},[o]),oe=D.useCallback(()=>{v&&navigator.clipboard.writeText(v.join(`
|
|
2
|
+
`))},[v]);if(t.isLoading)return e.jsx(fe,{active:!0,size:"huge",children:"Loading MFA"});const B=t.data;return e.jsxs("div",{className:"mfa-manager",children:[e.jsx("div",{className:"section-header",children:"Authenticator App"}),e.jsxs("div",{className:"stats",children:[e.jsx(or,{error:y}),B?.totpEnabled&&!g&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"stat",children:[e.jsx(pa,{size:16})," TOTP is enabled."]}),e.jsxs("div",{className:"mfa-actions",children:[e.jsx(le,{placeholder:"Password to disable",type:"password",value:j,onChange:P,onSubmit:j&&!T?L:void 0}),e.jsxs(H,{warn:!0,boxy:!0,disabled:!j||T,onClick:L,children:[e.jsx(Oe,{})," Disable"]})]})]}),!B?.totpEnabled&&!g&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"stat",children:"TOTP is not configured."}),e.jsxs("div",{className:"mfa-actions",children:[e.jsx(le,{placeholder:"Password to set up",type:"password",value:j,onChange:P,onSubmit:j&&!T?z:void 0}),e.jsxs(H,{main:!0,boxy:!0,disabled:!j||T,onClick:z,children:[e.jsx(pa,{})," Set Up"]})]})]}),g&&e.jsxs("div",{className:"totp-setup",children:[e.jsx("div",{className:"stat",children:"Scan this QR code with your authenticator app:"}),e.jsx("img",{className:"qr-code",src:g.qrCode,alt:"TOTP QR Code"}),e.jsxs("div",{className:"stat manual-secret",children:[e.jsx("b",{children:"Manual entry:"})," ",e.jsx("code",{children:g.secret}),e.jsx(H,{icon:!0,normal:!0,"data-tooltip":"Copy secret",onClick:()=>navigator.clipboard.writeText(g.secret),children:e.jsx(ma,{})})]}),e.jsxs("div",{className:"mfa-actions",children:[e.jsx(le,{placeholder:"6-digit code",type:"text",value:C,onChange:x,onSubmit:C&&!T?W:void 0}),e.jsxs(H,{main:!0,boxy:!0,disabled:!C||T,onClick:W,children:[e.jsx(At,{})," Verify"]}),e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>{b(null),f("")},children:[e.jsx(Oe,{})," Cancel"]})]})]})]}),q&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"section-header",children:"Passkeys"}),e.jsxs("div",{className:"stats",children:[e.jsx(or,{error:S}),B?.passkeys?.length?e.jsx("div",{className:"passkey-list",children:B.passkeys.map(Y=>e.jsxs("div",{className:"passkey-item",children:[e.jsxs("span",{className:"passkey-name",children:[e.jsx(zc,{size:16})," ",Y.name]}),e.jsxs("span",{className:"passkey-meta",children:["Added ",new Date(Y.created).toLocaleDateString()]}),e.jsx(H,{icon:!0,error:!0,disabled:T,"data-tooltip":"Remove passkey",onClick:()=>ee(Y.id),children:e.jsx(Ol,{})})]},Y.id))}):e.jsx("div",{className:"stat",children:"No passkeys registered."}),e.jsxs("div",{className:"mfa-actions",children:[e.jsx(le,{placeholder:"Passkey name",type:"text",value:l,onChange:h}),e.jsxs(H,{main:!0,boxy:!0,disabled:T,onClick:$,children:[e.jsx(vt,{})," Add Passkey"]})]}),B?.passkeys?.length?e.jsx("div",{className:"mfa-actions",children:e.jsx(le,{placeholder:"Password to remove",type:"password",value:_,onChange:p})}):e.jsx("div",{className:"stat note",children:"Passkeys may not work with IP addresses. Use a domain name for reliable passkey support."})]})]}),e.jsx("div",{className:"section-header",children:"Recovery Codes"}),e.jsxs("div",{className:"stats",children:[e.jsx(or,{error:M}),v?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"stat",children:"Save these codes. They will not be shown again."}),e.jsx("div",{className:"recovery-grid",children:v.map((Y,ie)=>e.jsx("code",{children:Y},ie))}),e.jsxs("div",{className:"mfa-actions",children:[e.jsxs(H,{normal:!0,boxy:!0,onClick:oe,children:[e.jsx(ma,{})," Copy"]}),e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>m(null),children:[e.jsx(At,{})," Done"]})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"stat",children:B?.hasRecoveryCodes?"Recovery codes are configured.":"No recovery codes generated."}),e.jsxs("div",{className:"mfa-actions",children:[e.jsx(le,{placeholder:"Password",type:"password",value:o,onChange:u,onSubmit:o&&!T?J:void 0}),e.jsxs(H,{warn:!!B?.hasRecoveryCodes,main:!B?.hasRecoveryCodes,boxy:!0,disabled:!o||T,onClick:J,children:[e.jsx(Hs,{})," ",B?.hasRecoveryCodes?"Regenerate":"Generate"]})]})]})]})]})},_u=[{value:"all",label:"All"},{value:"read",label:"Read Only"},{value:"off",label:"Manual"}],Su=[{value:"all",label:"All"},{value:"read",label:"Read Only"},{value:"none",label:"Manual"}];function wa({value:t,options:n,onChange:r,disabled:s}){return e.jsx("div",{className:`level-picker ${s?"dimmed":""}`,children:n.map((i,a)=>e.jsx("button",{className:["level-option",t===i.value?"active":"",`level-${i.value}`,a===0?"first":"",a===n.length-1?"last":""].filter(Boolean).join(" "),onClick:()=>{s||t===i.value||r(i.value)},disabled:s,children:i.label},i.value))})}const Us=({perms:t,onChange:n,defaultPerms:r,disabled:s})=>{const[i,a]=D.useState({}),[c,d]=D.useState(""),g=c.toLowerCase(),b=g.length>0,C=t.root!=="off",x=u=>{n(u!=="off"?{...t,root:u,domains:{},scopes:{}}:{...t,root:u})},j=(u,l)=>{const h={...t.domains},v={...t.scopes};if(l!=="none"){h[u]=l;for(const m of sr[u]??[])delete v[m]}else delete h[u];n({...t,domains:h,scopes:v})},P=(u,l)=>{const h={...t.scopes};l?h[u]=!0:delete h[u],n({...t,scopes:h})},_=u=>a(l=>({...l,[u]:!l[u]})),p=u=>{if(!r)return null;const l=ar[u];if(!l)return null;if(r.root==="all")return!0;if(r.root==="read")return l.readOnly;const h=r.domains[l.domain];return h==="all"?!0:h==="read"?l.readOnly:r.scopes[u]??!1},o=D.useMemo(()=>{if(!b)return null;const u={};for(const l of ca){const v=(sr[l]??[]).filter(m=>{const y=ar[m];return m.toLowerCase().includes(g)||ua[l]?.toLowerCase().includes(g)||y?.description?.toLowerCase().includes(g)});v.length>0&&(u[l]=v)}return u},[g,b]);return e.jsxs("div",{className:"permission-editor",children:[e.jsx("div",{className:"perm-search",children:e.jsx(le,{type:"text",placeholder:"Search Permissions...",value:c,onChange:d})}),!b&&e.jsxs("div",{className:"perm-row root-row",children:[e.jsx("span",{className:"perm-label root-label",children:"Everything"}),e.jsx(wa,{value:t.root,options:_u,onChange:x,disabled:s})]}),ca.map(u=>{const l=t.domains[u],h=C||l==="all"||l==="read",v=sr[u]??[],m=b?o?.[u]??[]:v;if(b&&m.length===0)return null;const y=b||i[u]!==!1;return e.jsxs("div",{className:"perm-domain",children:[e.jsxs("div",{className:"perm-row domain-row",children:[e.jsxs("span",{className:"perm-label domain-label",onClick:()=>_(u),children:[y?e.jsx(Ic,{size:16}):e.jsx(Hc,{size:16})," ",ua[u]]}),e.jsx(wa,{value:l??"none",options:Su,onChange:f=>j(u,f),disabled:s||C})]}),y&&m.map((f,S)=>{const N=ar[f],M=t.scopes[f]??!1,E=p(f);return e.jsxs("div",{className:`perm-row scope-row ${S%2===0?"even":"odd"}`,children:[e.jsxs("div",{className:"scope-info",children:[e.jsxs("span",{className:"scope-name",children:[e.jsx("span",{className:`scope-badge ${N?.readOnly?"read":"write"}`,"data-tooltip":N?.readOnly?"Read-only":"Read/Write",children:N?.readOnly?"R":"W"}),f.split(".").slice(1).join(".")]}),e.jsx("span",{className:"scope-desc",children:N?.description})]}),e.jsxs("div",{className:"scope-controls",children:[E===!0&&e.jsx("span",{className:"inherited on","data-tooltip":"Granted by defaults",children:e.jsx(At,{size:14})}),e.jsx(_e,{value:M,onChange:T=>P(f,T),disabled:s||h})]})]},f)})]},u)})]})},Wl=({selfUser:t})=>{const[n,r]=ke("/users/:id"),[s,i]=xt(),a=be(Ft),c=te(V.UserPermissions),d=te(V.UserBan),g=te(V.UserDelete),b=te(V.UserPasswd),C=te(V.UserReadMfa),x=te(V.UserResetMfa),j=!!t,P=t??r?.id??"",_=K.user.list.useQuery(void 0,{enabled:!j}),p=K.user.self.useQuery(void 0,{enabled:j}),o=D.useMemo(()=>j?p.data??null:_.data?_.data.users.find(ae=>ae.username===P)??null:null,[j,p.data,_.data,P]),u=j?p.isLoading:_.isLoading,l=K.user.defaultPermissions.get.useQuery(void 0,{enabled:c}),h=K.user.permissions.useMutation(),v=K.user.ban.useMutation(),m=K.user.delete.useMutation(),y=K.user.passwd.useMutation(),f=K.user.resetMfa.useMutation(),S=Be(),N=Be(),M=Be(),[E,T]=D.useState(null),[A,q]=D.useState(!1),[z,W]=D.useState(""),[L,$]=D.useState(!1),[ee,J]=D.useState(!1),[oe,B]=D.useState(!1),[Y,ie]=D.useState(""),[ce,he]=D.useState(""),[pe,G]=D.useState("");D.useEffect(()=>{if(o){const ae=o.permissions?.root;T({root:ae==="all"||ae==="read"?ae:"off",domains:o.permissions?.domains??{},scopes:o.permissions?.scopes??{}})}else T(null)},[o?.username,o?.permissions]),D.useEffect(()=>{!j&&!u&&!o&&P&&i("/users")},[j,u,o,P]);const Z=K.useUtils(),re=D.useCallback(async()=>{if(!(!E||!P)){q(!0),W("");try{const ae=await h.mutateAsync({username:P,permissions:E});ae?W(ae):(await Z.user.list.refetch(),j&&await p.refetch())}catch(ae){W(ae?.message||"Failed to save permissions")}q(!1)}},[E,P]),w=D.useMemo(()=>!E||!o?.permissions?!1:JSON.stringify(E)!==JSON.stringify(o.permissions),[E,o?.permissions]),R=async ae=>{const me=ae?"Disable":"Re-enable";if(!await S.prompt(e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:[me," user ",e.jsx("b",{children:P}),"?"]}),e.jsx("p",{children:ae?"Disabled users cannot sign in to the web UI.":"This will allow the user to sign in again."})]})))return;const ue=await v.mutateAsync({username:P,banned:ae});ue?console.error("Failed to ban user:",ue):_.refetch()},O=async()=>{if(!await N.prompt(e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Permanently delete user ",e.jsx("b",{children:P}),"?"]}),e.jsx("p",{children:"This will remove the account and all of its permissions. This action cannot be undone."})]})))return;const ae=await m.mutateAsync({username:P});ae?console.error("Failed to delete user:",ae):(i("/users"),_.refetch(),Is.set(Is.get()+1))},k=async()=>{if(!await M.prompt(e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Reset MFA for ",e.jsx("b",{children:P}),"?"]}),e.jsx("p",{children:"This will clear TOTP, passkeys, and recovery codes."})]})))return;const ae=await f.mutateAsync({username:P});ae?console.error("Failed to reset MFA:",ae):j?p.refetch():_.refetch()},F=async()=>{if(ie(""),ce===pe){B(!0);try{const ae=await y.mutateAsync({username:P,password:ce});B(!1),ae?ie(ae):(J(!1),he(""),G(""))}catch{B(!1)}}},U=(a?.username||"Admin")===(P||"Admin"),Q=o&&(o.totpEnabled||(o.passkeyCount??0)>0),X=o&&!o.isOwner&&!U&&(d||g||b||x&&Q),I=l.data?{root:l.data.root,domains:l.data.domains,scopes:l.data.scopes}:null,ne=Date.now();return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"player-inspector-container",children:[e.jsxs(xe,{attached:!0,children:[o?.username||(j?"Account":"SELECT A USER"),e.jsx("span",{style:{flex:1}}),o&&c&&!o.isOwner&&e.jsxs(H,{normal:!0,disabled:A||!w,onClick:re,"data-tooltip":"Save Permissions",children:[e.jsx(Gt,{}),"Save"]})]}),e.jsx("div",{className:"player-inspector",children:e.jsxs("div",{className:"player-view",children:[e.jsx(fe,{active:u,size:"huge",children:"Loading User"}),e.jsx("div",{className:"player-info",children:!u&&o&&e.jsxs(we,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Username:"})," ",o.username||"Admin"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Owner:"})," ",o.isOwner?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Disabled:"})," ",o.isBanned?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Last Active:"})," ",o.lastOnline?ve(ne-o.lastOnline)+" ago":"Never"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Created:"})," ",ve(ne-o.created)," ago"]}),!U&&C&&e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"MFA:"})," ",o.totpEnabled||(o.passkeyCount??0)>0?[o.totpEnabled&&"TOTP",(o.passkeyCount??0)>0&&`${o.passkeyCount??0} passkey(s)`].filter(Boolean).join(" + "):"Not configured"]})]}),j&&e.jsx(wu,{}),c&&!o.isOwner&&E&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"section-header",children:"Permissions"}),z&&e.jsx("div",{className:"perm-error",children:z}),e.jsx(Us,{perms:E,onChange:T,defaultPerms:I})]}),o.isOwner&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"section-header",children:"Permissions"}),e.jsx(Us,{perms:{root:"all",domains:{},scopes:{}},onChange:()=>{},disabled:!0})]})]})})]})}),X&&e.jsxs(Pe,{attached:!0,children:[e.jsx("span",{style:{flex:1}}),e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>$(!L),children:[L?e.jsx(_t,{}):e.jsx(St,{}),"Actions"]}),e.jsxs("div",{className:"widgets-list widgets-list-up",style:{display:L?"block":"none"},children:[b&&e.jsxs(H,{info:!0,onClick:()=>{$(!1),J(!0)},children:[e.jsx(Hs,{}),"Change Password"]}),d&&e.jsxs(H,{normal:!o.isBanned,warn:!!o.isBanned,onClick:()=>{$(!1),R(!o.isBanned)},children:[e.jsx(Ve,{}),o.isBanned?"Re-enable":"Disable"]}),x&&Q&&e.jsxs(H,{warn:!0,onClick:()=>{$(!1),k()},children:[e.jsx(Wc,{}),"Reset MFA"]}),g&&e.jsxs(H,{error:!0,onClick:()=>{$(!1),O()},children:[e.jsx(Ol,{}),"Delete"]})]})]})]})]}),S.children,N.children,M.children,e.jsxs(jt,{visible:ee,children:[e.jsx(fe,{active:oe,size:"huge",children:"Submitting"}),e.jsxs(Bt,{visible:!oe,children:[e.jsx(wt,{children:"Change Password"}),e.jsxs(gt,{children:[e.jsxs("p",{children:["Set a new password for ",e.jsx("b",{children:P}),"."]}),Y&&e.jsxs("p",{style:{color:"red"},children:["Error: ",Y]})]}),e.jsxs("div",{className:"popout-inputs",children:[e.jsx(le,{placeholder:"new password",type:"password",value:ce,onChange:he}),e.jsx(le,{placeholder:"confirm new password",type:"password",value:pe,onChange:G,onSubmit:ce.length&&pe===ce?F:void 0})]}),e.jsxs(Pe,{children:[e.jsxs(H,{main:!0,disabled:!ce.length||pe!==ce,onClick:F,children:[e.jsx(Hs,{}),"Update"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(H,{normal:!0,onClick:()=>{J(!1),he(""),G(""),ie("")},children:[e.jsx(Oe,{}),"Cancel"]})]})]})]})]})},Cu=()=>{const t=be(Ft),n=K.user.passwd.useMutation(),[r,s]=D.useState(!1),[i,a]=D.useState(!1),[c,d]=D.useState(!1),[g,b]=D.useState(""),[C,x]=D.useState(""),[j,P]=D.useState(""),[_,p]=D.useState(""),o=t?.username??"",u=()=>{a(!1),b(""),x(""),P(""),p("")},l=async()=>{if(b(""),j===_){d(!0);try{const v=await n.mutateAsync({username:o,password:j,currentPassword:C});if(d(!1),!v){u();return}b(v)}catch(v){console.error("error setting password",v),d(!1)}}},h=D.useMemo(()=>C.length>0&&j.length>0&&_===j,[C,j,_]);return e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Account",children:e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>s(!r),children:[r?e.jsx(St,{}):e.jsx(_t,{}),"Actions"]}),e.jsx("div",{className:"widgets-list",style:{display:r?"block":"none"},children:e.jsxs(H,{info:!0,onClick:()=>{s(!1),a(!0)},children:[e.jsx(Ws,{}),"Change Password"]})})]})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsx("div",{className:"generic-container players-container",children:e.jsx(Wl,{selfUser:o})}),e.jsxs(jt,{visible:i,children:[e.jsx(fe,{active:c,size:"huge",children:"Submitting"}),e.jsxs(Bt,{visible:!c,children:[e.jsx(wt,{children:"Change Password"}),e.jsx(gt,{children:g&&e.jsxs("p",{style:{color:"red"},children:["Error: ",g]})}),e.jsxs("div",{className:"popout-inputs",children:[e.jsx(le,{placeholder:"current password",type:"password",value:C,onChange:x}),e.jsx(le,{placeholder:"new password",type:"password",value:j,onChange:P}),e.jsx(le,{placeholder:"confirm new password",type:"password",value:_,onChange:p,onSubmit:h?l:void 0})]}),e.jsxs(Pe,{children:[e.jsxs(H,{main:!0,disabled:!h,onClick:l,children:[e.jsx(Ws,{}),"Update"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(H,{normal:!0,onClick:u,children:[e.jsx(Oe,{}),"Cancel"]})]})]})]})]})]})},Ul=["January","February","March","April","May","June","July","August","September","October","November","December"],Le=(t,n=!1)=>Object.keys(t).map(Number).sort((r,s)=>n?s-r:r-s),Ru=()=>{const t=Ze(V.ChatHistory),n=te(V.ChatCalendar),[r,s]=ke("/history/:time?"),i=s?.time,[a,c]=D.useState(!0),[d,g]=D.useState(!0),[b,C]=D.useState(!1),[x,j]=D.useState({}),[P,_]=D.useState(0),p=D.useMemo(()=>new Date().getFullYear(),[]),[o,u]=D.useState(p),l=D.useMemo(()=>new Date().getMonth(),[]),[h,v]=D.useState(l),m=D.useMemo(()=>new Date().getDate(),[]),y=D.useRef(null),[f,S]=D.useState(null),[N,M]=D.useState(null),E=D.useRef(null),T=D.useRef(null),A=D.useRef([]),q=K.useUtils(),z=D.useCallback(async()=>{c(!0);const w=await q.chat.calendar.fetch();j(w),c(!1)},[]),W=D.useCallback(w=>{if(!w.length)return;A.current=A.current.concat(w),A.current.sort((k,F)=>k.created-F.created);const R=A.current[0].created,O=A.current[A.current.length-1].created;for(let k=0;k<A.current.length;k++){const F=A.current[k],U=new Date(F.created);F.date=U.getDate(),k===0||F.date!==A.current[k-1].date?F.newDay=`${Ul[U.getMonth()]} ${F.date}, ${U.getFullYear()}`:F.newDay=void 0}E.current=R,T.current=O,_(k=>k+1)},[]),L=D.useCallback(async({before:w,after:R},O)=>{c(!0);const k=await q.chat.history.fetch({before:w,after:R});W(k),g(!1),c(!1);const F=O;return F&&A.current.length>200&&requestAnimationFrame(()=>{F==="bottom"?(A.current.splice(0,A.current.length-200),E.current=A.current[0].created,S(null)):F==="top"&&(A.current.splice(200,A.current.length-200),T.current=A.current[A.current.length-1].created,M(null)),_(U=>U+1)}),k},[]),$=()=>new Promise(w=>{const R=y.current?.querySelector(".scroll-scroller");window.requestAnimationFrame(()=>{R&&(R.scrollTop=R.scrollHeight,w())})});D.useEffect(()=>{const w=i&&new Date(i.match(/^\d+$/)?Number(i):i);(async()=>(d&&n&&await z(),w&&!Number.isNaN(w.getTime())?(A.current=[],await L({before:w.getTime()-1}),await L({after:w.getTime()-1}),requestAnimationFrame(()=>{y.current?.querySelector(".focused")?.scrollIntoView({block:"center"})})):(A.current=[],await L({before:Date.now()}),$())))()},[i]);const ee=async(w,R,O)=>{A.current=[],_(F=>F+1);const k=new Date(w,R,O).getTime();await L({after:k})},J=async()=>{if(f&&E.current&&E.current<=f)return;(await L({before:E.current},"top")).length===0&&S(E.current)},oe=async()=>{if(N&&T.current&&T.current>=N)return;(await L({after:T.current},"bottom")).length===0&&M(T.current)},B=D.useMemo(()=>Le(x),[x]),Y=D.useMemo(()=>Le(x,!0),[x]),ie=D.useMemo(()=>{const w=Y.find(R=>R>o)??null;return w?[w,Le(x[w])[0]]:null},[x,Y]),ce=D.useMemo(()=>{const w=B.find(R=>R<o)??null;return w?[w,Le(x[w],!0)[0]]:null},[x,B]),he=D.useMemo(()=>{if(h!==11&&x[o]){const O=Le(x[o]).find(k=>k>h);if(typeof O=="number")return[o,O]}const w=B.find(O=>O>o);if(!w)return null;const R=Le(x[w])[0];return typeof R!="number"?null:[w,R]},[o,h,B,x]),pe=D.useMemo(()=>{if(h!==0&&x[o]){const O=Le(x[o],!0).find(k=>k<h);if(typeof O=="number")return[o,O]}const w=Y.find(O=>O<o);if(!w)return null;const R=Le(x[w],!0)[0];return typeof R!="number"?null:[w,R]},[o,h,x]),G=w=>{w&&(u(o),v(h))},Z=new Date(o,h+1,0).getDate(),re=new Date(o,h,1).getDay();return t?e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"History",children:n&&e.jsxs("div",{className:"calendar-container",children:[e.jsxs(H,{normal:!0,boxy:!0,style:{marginRight:0},"data-tooltip":"Show a calendar previewing days",onClick:()=>C(!b),children:[e.jsx(Uc,{})," Calendar"]}),b&&e.jsx(Pu,{prevYear:ce,setDate:G,year:o,nextYear:ie,prevMonth:pe,month:h,nextMonth:he,startDay:re,numDays:Z,nowMonth:l,nowYear:p,nowDay:m,calendar:x,focusDay:ee})]})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsx("div",{className:"generic-container history-container",ref:y,children:e.jsxs("div",{className:"chat-history",children:[e.jsx("div",{className:"scroll-container",children:e.jsx(bc,{loading:a,onTop:J,onBottom:oe,onTopScrollsToBottom:!1,offset:500,className:"scroll-scroller",children:A.current.map(w=>e.jsxs(yc.Fragment,{children:[w.newDay&&e.jsx("div",{className:"chat-new-day",children:w.newDay}),e.jsx(jc,{log:w},w._id)]},w._id))})}),e.jsx(fe,{active:a&&d,size:"huge",children:"Loading Chat"})]})})]})]}):null},Pu=({prevYear:t,setDate:n,year:r,nextYear:s,prevMonth:i,month:a,nextMonth:c,startDay:d,numDays:g,nowMonth:b,nowYear:C,nowDay:x,calendar:j,focusDay:P})=>e.jsxs("div",{className:"calendar",children:[e.jsxs("div",{className:"year",children:[e.jsx(H,{icon:!0,normal:!0,disabled:!t,onClick:()=>n(t),children:e.jsx(qt,{})}),r,e.jsx(H,{icon:!0,normal:!0,disabled:!s,onClick:()=>n(s),children:e.jsx(Ot,{})})]}),e.jsxs("div",{className:"month",children:[e.jsx(H,{icon:!0,normal:!0,disabled:!i,onClick:()=>n(i),children:e.jsx(qt,{})}),Ul[a],e.jsx(H,{icon:!0,normal:!0,disabled:!c,onClick:()=>n(c),children:e.jsx(Ot,{})})]}),e.jsxs("div",{className:"calendar-days",children:[e.jsx("div",{className:"week-header days",children:"S"}),e.jsx("div",{className:"week-header days",children:"M"}),e.jsx("div",{className:"week-header days",children:"T"}),e.jsx("div",{className:"week-header days",children:"W"}),e.jsx("div",{className:"week-header days",children:"T"}),e.jsx("div",{className:"week-header days",children:"F"}),e.jsx("div",{className:"week-header days",children:"S"}),Array.from({length:d}).map((_,p)=>e.jsx("div",{},`empty-${p}`)),Array.from({length:g}).map((_,p)=>e.jsx("div",{className:`days ${b===a&&C===r&&p+1===x?"today":""} ${!(b===a&&C===r&&p+1>x)&&j[r]?.[a]?.[p]?"available":""}`,onClick:()=>P(r,a,p+1),children:p+1},p))]})]});var lr={exports:{}},rt={},ht={exports:{}},Nu=ht.exports,_a;function Vs(){return _a||(_a=1,(function(t,n){(function(r,s){s(n)})(Nu,(function(r){function s(G){return function(re,w,R,O,k,F,U){return G(re,w,U)}}function i(G){return function(re,w,R,O){if(!re||!w||typeof re!="object"||typeof w!="object")return G(re,w,R,O);var k=O.get(re),F=O.get(w);if(k&&F)return k===w&&F===re;O.set(re,w),O.set(w,re);var U=G(re,w,R,O);return O.delete(re),O.delete(w),U}}function a(G,Z){var re={};for(var w in G)re[w]=G[w];for(var w in Z)re[w]=Z[w];return re}function c(G){return G.constructor===Object||G.constructor==null}function d(G){return typeof G.then=="function"}function g(G,Z){return G===Z||G!==G&&Z!==Z}var b="[object Arguments]",C="[object Boolean]",x="[object Date]",j="[object RegExp]",P="[object Map]",_="[object Number]",p="[object Object]",o="[object Set]",u="[object String]",l=Object.prototype.toString;function h(G){var Z=G.areArraysEqual,re=G.areDatesEqual,w=G.areMapsEqual,R=G.areObjectsEqual,O=G.areRegExpsEqual,k=G.areSetsEqual,F=G.createIsNestedEqual,U=F(Q);function Q(X,I,ne){if(X===I)return!0;if(!X||!I||typeof X!="object"||typeof I!="object")return X!==X&&I!==I;if(c(X)&&c(I))return R(X,I,U,ne);var ae=Array.isArray(X),me=Array.isArray(I);if(ae||me)return ae===me&&Z(X,I,U,ne);var ue=l.call(X);return ue!==l.call(I)?!1:ue===x?re(X,I,U,ne):ue===j?O(X,I,U,ne):ue===P?w(X,I,U,ne):ue===o?k(X,I,U,ne):ue===p||ue===b?d(X)||d(I)?!1:R(X,I,U,ne):ue===C||ue===_||ue===u?g(X.valueOf(),I.valueOf()):!1}return Q}function v(G,Z,re,w){var R=G.length;if(Z.length!==R)return!1;for(;R-- >0;)if(!re(G[R],Z[R],R,R,G,Z,w))return!1;return!0}var m=i(v);function y(G,Z){return g(G.valueOf(),Z.valueOf())}function f(G,Z,re,w){var R=G.size===Z.size;if(!R)return!1;if(!G.size)return!0;var O={},k=0;return G.forEach(function(F,U){if(R){var Q=!1,X=0;Z.forEach(function(I,ne){!Q&&!O[X]&&(Q=re(U,ne,k,X,G,Z,w)&&re(F,I,U,ne,G,Z,w))&&(O[X]=!0),X++}),k++,R=Q}}),R}var S=i(f),N="_owner",M=Object.prototype.hasOwnProperty;function E(G,Z,re,w){var R=Object.keys(G),O=R.length;if(Object.keys(Z).length!==O)return!1;for(var k;O-- >0;){if(k=R[O],k===N){var F=!!G.$$typeof,U=!!Z.$$typeof;if((F||U)&&F!==U)return!1}if(!M.call(Z,k)||!re(G[k],Z[k],k,k,G,Z,w))return!1}return!0}var T=i(E);function A(G,Z){return G.source===Z.source&&G.flags===Z.flags}function q(G,Z,re,w){var R=G.size===Z.size;if(!R)return!1;if(!G.size)return!0;var O={};return G.forEach(function(k,F){if(R){var U=!1,Q=0;Z.forEach(function(X,I){!U&&!O[Q]&&(U=re(k,X,F,I,G,Z,w))&&(O[Q]=!0),Q++}),R=U}}),R}var z=i(q),W=Object.freeze({areArraysEqual:v,areDatesEqual:y,areMapsEqual:f,areObjectsEqual:E,areRegExpsEqual:A,areSetsEqual:q,createIsNestedEqual:s}),L=Object.freeze({areArraysEqual:m,areDatesEqual:y,areMapsEqual:S,areObjectsEqual:T,areRegExpsEqual:A,areSetsEqual:z,createIsNestedEqual:s}),$=h(W);function ee(G,Z){return $(G,Z,void 0)}var J=h(a(W,{createIsNestedEqual:function(){return g}}));function oe(G,Z){return J(G,Z,void 0)}var B=h(L);function Y(G,Z){return B(G,Z,new WeakMap)}var ie=h(a(L,{createIsNestedEqual:function(){return g}}));function ce(G,Z){return ie(G,Z,new WeakMap)}function he(G){return h(a(W,G(W)))}function pe(G){var Z=h(a(L,G(L)));return(function(re,w,R){return R===void 0&&(R=new WeakMap),Z(re,w,R)})}r.circularDeepEqual=Y,r.circularShallowEqual=ce,r.createCustomCircularEqual=pe,r.createCustomEqual=he,r.deepEqual=ee,r.sameValueZeroEqual=g,r.shallowEqual=oe,Object.defineProperty(r,"__esModule",{value:!0})}))})(ht,ht.exports)),ht.exports}var Rt={exports:{}},Sa;function Kt(){if(Sa)return Rt.exports;Sa=1;function t(r){var s,i,a="";if(typeof r=="string"||typeof r=="number")a+=r;else if(typeof r=="object")if(Array.isArray(r)){var c=r.length;for(s=0;s<c;s++)r[s]&&(i=t(r[s]))&&(a&&(a+=" "),a+=i)}else for(i in r)r[i]&&(a&&(a+=" "),a+=i);return a}function n(){for(var r,s,i=0,a="",c=arguments.length;i<c;i++)(r=arguments[i])&&(s=t(r))&&(a&&(a+=" "),a+=s);return a}return Rt.exports=n,Rt.exports.clsx=n,Rt.exports}var se={},cr,Ca;function Du(){return Ca||(Ca=1,cr=function(n,r,s){return n===r?!0:n.className===r.className&&s(n.style,r.style)&&n.width===r.width&&n.autoSize===r.autoSize&&n.cols===r.cols&&n.draggableCancel===r.draggableCancel&&n.draggableHandle===r.draggableHandle&&s(n.verticalCompact,r.verticalCompact)&&s(n.compactType,r.compactType)&&s(n.layout,r.layout)&&s(n.margin,r.margin)&&s(n.containerPadding,r.containerPadding)&&n.rowHeight===r.rowHeight&&n.maxRows===r.maxRows&&n.isBounded===r.isBounded&&n.isDraggable===r.isDraggable&&n.isResizable===r.isResizable&&n.allowOverlap===r.allowOverlap&&n.preventCollision===r.preventCollision&&n.useCSSTransforms===r.useCSSTransforms&&n.transformScale===r.transformScale&&n.isDroppable===r.isDroppable&&s(n.resizeHandles,r.resizeHandles)&&s(n.resizeHandle,r.resizeHandle)&&n.onLayoutChange===r.onLayoutChange&&n.onDragStart===r.onDragStart&&n.onDrag===r.onDrag&&n.onDragStop===r.onDragStop&&n.onResizeStart===r.onResizeStart&&n.onResize===r.onResize&&n.onResizeStop===r.onResizeStop&&n.onDrop===r.onDrop&&s(n.droppingItem,r.droppingItem)&&s(n.innerRef,r.innerRef)}),cr}var Ra;function et(){if(Ra)return se;Ra=1,Object.defineProperty(se,"__esModule",{value:!0}),se.bottom=s,se.childrenEqual=g,se.cloneLayout=i,se.cloneLayoutItem=d,se.collides=C,se.compact=x,se.compactItem=_,se.compactType=G,se.correctBounds=p,se.fastPositionEqual=b,se.fastRGLPropsEqual=void 0,se.getAllCollisions=l,se.getFirstCollision=u,se.getLayoutItem=o,se.getStatics=h,se.modifyLayout=a,se.moveElement=v,se.moveElementAwayFromCollision=m,se.noop=void 0,se.perc=y,se.resizeItemInDirection=J,se.setTopLeft=B,se.setTransform=oe,se.sortLayoutItems=Y,se.sortLayoutItemsByColRow=ce,se.sortLayoutItemsByRowCol=ie,se.synchronizeLayoutWithChildren=he,se.validateLayout=pe,se.withLayoutItem=c;var t=Vs(),n=r(Ce());function r(w){return w&&w.__esModule?w:{default:w}}function s(w){let R=0,O;for(let k=0,F=w.length;k<F;k++)O=w[k].y+w[k].h,O>R&&(R=O);return R}function i(w){const R=Array(w.length);for(let O=0,k=w.length;O<k;O++)R[O]=d(w[O]);return R}function a(w,R){const O=Array(w.length);for(let k=0,F=w.length;k<F;k++)R.i===w[k].i?O[k]=R:O[k]=w[k];return O}function c(w,R,O){let k=o(w,R);return k?(k=O(d(k)),w=a(w,k),[w,k]):[w,null]}function d(w){return{w:w.w,h:w.h,x:w.x,y:w.y,i:w.i,minW:w.minW,maxW:w.maxW,minH:w.minH,maxH:w.maxH,moved:!!w.moved,static:!!w.static,isDraggable:w.isDraggable,isResizable:w.isResizable,resizeHandles:w.resizeHandles,isBounded:w.isBounded}}function g(w,R){return(0,t.deepEqual)(n.default.Children.map(w,O=>O?.key),n.default.Children.map(R,O=>O?.key))&&(0,t.deepEqual)(n.default.Children.map(w,O=>O?.props["data-grid"]),n.default.Children.map(R,O=>O?.props["data-grid"]))}se.fastRGLPropsEqual=Du();function b(w,R){return w.left===R.left&&w.top===R.top&&w.width===R.width&&w.height===R.height}function C(w,R){return!(w.i===R.i||w.x+w.w<=R.x||w.x>=R.x+R.w||w.y+w.h<=R.y||w.y>=R.y+R.h)}function x(w,R,O,k){const F=h(w),U=Y(w,R),Q=Array(w.length);for(let X=0,I=U.length;X<I;X++){let ne=d(U[X]);ne.static||(ne=_(F,ne,R,O,U,k),F.push(ne)),Q[w.indexOf(U[X])]=ne,ne.moved=!1}return Q}const j={x:"w",y:"h"};function P(w,R,O,k){const F=j[k];R[k]+=1;const U=w.map(Q=>Q.i).indexOf(R.i);for(let Q=U+1;Q<w.length;Q++){const X=w[Q];if(!X.static){if(X.y>R.y+R.h)break;C(R,X)&&P(w,X,O+R[F],k)}}R[k]=O}function _(w,R,O,k,F,U){const Q=O==="vertical",X=O==="horizontal";if(Q)for(R.y=Math.min(s(w),R.y);R.y>0&&!u(w,R);)R.y--;else if(X)for(;R.x>0&&!u(w,R);)R.x--;let I;for(;(I=u(w,R))&&!(O===null&&U);)if(X?P(F,R,I.x+I.w,"x"):P(F,R,I.y+I.h,"y"),X&&R.x+R.w>k)for(R.x=k-R.w,R.y++;R.x>0&&!u(w,R);)R.x--;return R.y=Math.max(R.y,0),R.x=Math.max(R.x,0),R}function p(w,R){const O=h(w);for(let k=0,F=w.length;k<F;k++){const U=w[k];if(U.x+U.w>R.cols&&(U.x=R.cols-U.w),U.x<0&&(U.x=0,U.w=R.cols),!U.static)O.push(U);else for(;u(O,U);)U.y++}return w}function o(w,R){for(let O=0,k=w.length;O<k;O++)if(w[O].i===R)return w[O]}function u(w,R){for(let O=0,k=w.length;O<k;O++)if(C(w[O],R))return w[O]}function l(w,R){return w.filter(O=>C(O,R))}function h(w){return w.filter(R=>R.static)}function v(w,R,O,k,F,U,Q,X,I){if(R.static&&R.isDraggable!==!0||R.y===k&&R.x===O)return w;`${R.i}${String(O)}${String(k)}${R.x}${R.y}`;const ne=R.x,ae=R.y;typeof O=="number"&&(R.x=O),typeof k=="number"&&(R.y=k),R.moved=!0;let me=Y(w,Q);(Q==="vertical"&&typeof k=="number"?ae>=k:Q==="horizontal"&&typeof O=="number"&&ne>=O)&&(me=me.reverse());const Te=l(me,R),Ct=Te.length>0;if(Ct&&I)return i(w);if(Ct&&U)return`${R.i}`,R.x=ne,R.y=ae,R.moved=!1,w;for(let nr=0,gc=Te.length;nr<gc;nr++){const Ue=Te[nr];`${R.i}${R.x}${R.y}${Ue.i}${Ue.x}${Ue.y}`,!Ue.moved&&(Ue.static?w=m(w,Ue,R,F,Q):w=m(w,R,Ue,F,Q))}return w}function m(w,R,O,k,F,U){const Q=F==="horizontal",X=F==="vertical",I=R.static;if(k){k=!1;const me={x:Q?Math.max(R.x-O.w,0):O.x,y:X?Math.max(R.y-O.h,0):O.y,w:O.w,h:O.h,i:"-1"},ue=u(w,me),Te=ue&&ue.y+ue.h>R.y,Ct=ue&&R.x+R.w>ue.x;if(ue){if(Te&&X)return v(w,O,void 0,R.y+1,k,I,F);if(Te&&F==null)return R.y=O.y,O.y=O.y+O.h,w;if(Ct&&Q)return v(w,R,O.x,void 0,k,I,F)}else return`${O.i}${me.x}${me.y}`,v(w,O,Q?me.x:void 0,X?me.y:void 0,k,I,F)}const ne=Q?O.x+1:void 0,ae=X?O.y+1:void 0;return ne==null&&ae==null?w:v(w,O,Q?O.x+1:void 0,X?O.y+1:void 0,k,I,F)}function y(w){return w*100+"%"}const f=(w,R,O,k)=>w+O>k?R:O,S=(w,R,O)=>w<0?R:O,N=w=>Math.max(0,w),M=w=>Math.max(0,w),E=(w,R,O)=>{let{left:k,height:F,width:U}=R;const Q=w.top-(F-w.height);return{left:k,width:U,height:S(Q,w.height,F),top:M(Q)}},T=(w,R,O)=>{let{top:k,left:F,height:U,width:Q}=R;return{top:k,height:U,width:f(w.left,w.width,Q,O),left:N(F)}},A=(w,R,O)=>{let{top:k,height:F,width:U}=R;const Q=w.left-(U-w.width);return{height:F,width:Q<0?w.width:f(w.left,w.width,U,O),top:M(k),left:N(Q)}},q=(w,R,O)=>{let{top:k,left:F,height:U,width:Q}=R;return{width:Q,left:F,height:S(k,w.height,U),top:M(k)}},ee={n:E,ne:function(){return E(arguments.length<=0?void 0:arguments[0],T(...arguments))},e:T,se:function(){return q(arguments.length<=0?void 0:arguments[0],T(...arguments))},s:q,sw:function(){return q(arguments.length<=0?void 0:arguments[0],A(...arguments))},w:A,nw:function(){return E(arguments.length<=0?void 0:arguments[0],A(...arguments))}};function J(w,R,O,k){const F=ee[w];return F?F(R,{...R,...O},k):O}function oe(w){let{top:R,left:O,width:k,height:F}=w;const U=`translate(${O}px,${R}px)`;return{transform:U,WebkitTransform:U,MozTransform:U,msTransform:U,OTransform:U,width:`${k}px`,height:`${F}px`,position:"absolute"}}function B(w){let{top:R,left:O,width:k,height:F}=w;return{top:`${R}px`,left:`${O}px`,width:`${k}px`,height:`${F}px`,position:"absolute"}}function Y(w,R){return R==="horizontal"?ce(w):R==="vertical"?ie(w):w}function ie(w){return w.slice(0).sort(function(R,O){return R.y>O.y||R.y===O.y&&R.x>O.x?1:R.y===O.y&&R.x===O.x?0:-1})}function ce(w){return w.slice(0).sort(function(R,O){return R.x>O.x||R.x===O.x&&R.y>O.y?1:-1})}function he(w,R,O,k,F){w=w||[];const U=[];n.default.Children.forEach(R,X=>{if(X?.key==null)return;const I=o(w,String(X.key)),ne=X.props["data-grid"];I&&ne==null?U.push(d(I)):ne?U.push(d({...ne,i:X.key})):U.push(d({w:1,h:1,x:0,y:s(U),i:String(X.key)}))});const Q=p(U,{cols:O});return F?Q:x(Q,k,O)}function pe(w){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const O=["x","y","w","h"];if(!Array.isArray(w))throw new Error(R+" must be an array!");for(let k=0,F=w.length;k<F;k++){const U=w[k];for(let Q=0;Q<O.length;Q++){const X=O[Q],I=U[X];if(typeof I!="number"||Number.isNaN(I))throw new Error(`ReactGridLayout: ${R}[${k}].${X} must be a number! Received: ${I} (${typeof I})`)}if(typeof U.i<"u"&&typeof U.i!="string")throw new Error(`ReactGridLayout: ${R}[${k}].i must be a string! Received: ${U.i} (${typeof U.i})`)}}function G(w){const{verticalCompact:R,compactType:O}=w||{};return R===!1?null:O}function Z(){}const re=()=>{};return se.noop=re,se}var De={},Pa;function Qs(){if(Pa)return De;Pa=1,Object.defineProperty(De,"__esModule",{value:!0}),De.calcGridColWidth=t,De.calcGridItemPosition=r,De.calcGridItemWHPx=n,De.calcWH=i,De.calcXY=s,De.clamp=a;function t(c){const{margin:d,containerPadding:g,containerWidth:b,cols:C}=c;return(b-d[0]*(C-1)-g[0]*2)/C}function n(c,d,g){return Number.isFinite(c)?Math.round(d*c+Math.max(0,c-1)*g):c}function r(c,d,g,b,C,x){const{margin:j,containerPadding:P,rowHeight:_}=c,p=t(c),o={};return x&&x.resizing?(o.width=Math.round(x.resizing.width),o.height=Math.round(x.resizing.height)):(o.width=n(b,p,j[0]),o.height=n(C,_,j[1])),x&&x.dragging?(o.top=Math.round(x.dragging.top),o.left=Math.round(x.dragging.left)):x&&x.resizing&&typeof x.resizing.top=="number"&&typeof x.resizing.left=="number"?(o.top=Math.round(x.resizing.top),o.left=Math.round(x.resizing.left)):(o.top=Math.round((_+j[1])*g+P[1]),o.left=Math.round((p+j[0])*d+P[0])),o}function s(c,d,g,b,C){const{margin:x,containerPadding:j,cols:P,rowHeight:_,maxRows:p}=c,o=t(c);let u=Math.round((g-j[0])/(o+x[0])),l=Math.round((d-j[1])/(_+x[1]));return u=a(u,0,P-b),l=a(l,0,p-C),{x:u,y:l}}function i(c,d,g,b,C,x){const{margin:j,maxRows:P,cols:_,rowHeight:p}=c,o=t(c);let u=Math.round((d+j[0])/(o+j[0])),l=Math.round((g+j[1])/(p+j[1])),h=a(u,0,_-b),v=a(l,0,P-C);return["sw","w","nw"].indexOf(x)!==-1&&(h=a(u,0,_)),["nw","n","ne"].indexOf(x)!==-1&&(v=a(l,0,P)),{w:h,h:v}}function a(c,d,g){return Math.max(Math.min(c,g),d)}return De}var nt={},ur={exports:{}},dr,Na;function Eu(){if(Na)return dr;Na=1;var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return dr=t,dr}var hr,Da;function Ou(){if(Da)return hr;Da=1;var t=Eu();function n(){}function r(){}return r.resetWarningCache=n,hr=function(){function s(c,d,g,b,C,x){if(x!==t){var j=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw j.name="Invariant Violation",j}}s.isRequired=s;function i(){return s}var a={array:s,bigint:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:i,element:s,elementType:s,instanceOf:i,node:s,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},hr}var Ea;function We(){return Ea||(Ea=1,ur.exports=Ou()()),ur.exports}var st={exports:{}},fr={},de={},ze={},Oa;function Yt(){if(Oa)return ze;Oa=1,Object.defineProperty(ze,"__esModule",{value:!0}),ze.dontSetMe=i,ze.findInArray=t,ze.int=s,ze.isFunction=n,ze.isNum=r;function t(a,c){for(let d=0,g=a.length;d<g;d++)if(c.apply(c,[a[d],d,a]))return a[d]}function n(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Function]"}function r(a){return typeof a=="number"&&!isNaN(a)}function s(a){return parseInt(a,10)}function i(a,c,d){if(a[c])return new Error(`Invalid prop ${c} passed to ${d} - do not set this, set it on the child.`)}return ze}var Ie={},qa;function qu(){if(qa)return Ie;qa=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.browserPrefixToKey=r,Ie.browserPrefixToStyle=s,Ie.default=void 0,Ie.getPrefix=n;const t=["Moz","Webkit","O","ms"];function n(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const c=window.document?.documentElement?.style;if(!c||a in c)return"";for(let d=0;d<t.length;d++)if(r(a,t[d])in c)return t[d];return""}function r(a,c){return c?`${c}${i(a)}`:a}function s(a,c){return c?`-${c.toLowerCase()}-${a}`:a}function i(a){let c="",d=!0;for(let g=0;g<a.length;g++)d?(c+=a[g].toUpperCase(),d=!1):a[g]==="-"?d=!0:c+=a[g];return c}return Ie.default=n(),Ie}var Ma;function Js(){if(Ma)return de;Ma=1,Object.defineProperty(de,"__esModule",{value:!0}),de.addClassName=m,de.addEvent=c,de.addUserSelectStyles=l,de.createCSSTransform=P,de.createSVGTransform=_,de.getTouch=o,de.getTouchIdentifier=u,de.getTranslation=p,de.innerHeight=C,de.innerWidth=x,de.matchesSelector=i,de.matchesSelectorAndParentsTo=a,de.offsetXYFromParent=j,de.outerHeight=g,de.outerWidth=b,de.removeClassName=y,de.removeEvent=d,de.scheduleRemoveUserSelectStyles=h;var t=Yt(),n=r(qu());function r(f,S){if(typeof WeakMap=="function")var N=new WeakMap,M=new WeakMap;return(r=function(E,T){if(!T&&E&&E.__esModule)return E;var A,q,z={__proto__:null,default:E};if(E===null||typeof E!="object"&&typeof E!="function")return z;if(A=T?M:N){if(A.has(E))return A.get(E);A.set(E,z)}for(const W in E)W!=="default"&&{}.hasOwnProperty.call(E,W)&&((q=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(E,W))&&(q.get||q.set)?A(z,W,q):z[W]=E[W]);return z})(f,S)}let s="";function i(f,S){return s||(s=(0,t.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(N){return(0,t.isFunction)(f[N])})),(0,t.isFunction)(f[s])?f[s](S):!1}function a(f,S,N){let M=f;do{if(i(M,S))return!0;if(M===N)return!1;M=M.parentNode}while(M);return!1}function c(f,S,N,M){if(!f)return;const E={capture:!0,...M};f.addEventListener?f.addEventListener(S,N,E):f.attachEvent?f.attachEvent("on"+S,N):f["on"+S]=N}function d(f,S,N,M){if(!f)return;const E={capture:!0,...M};f.removeEventListener?f.removeEventListener(S,N,E):f.detachEvent?f.detachEvent("on"+S,N):f["on"+S]=null}function g(f){let S=f.clientHeight;const N=f.ownerDocument.defaultView.getComputedStyle(f);return S+=(0,t.int)(N.borderTopWidth),S+=(0,t.int)(N.borderBottomWidth),S}function b(f){let S=f.clientWidth;const N=f.ownerDocument.defaultView.getComputedStyle(f);return S+=(0,t.int)(N.borderLeftWidth),S+=(0,t.int)(N.borderRightWidth),S}function C(f){let S=f.clientHeight;const N=f.ownerDocument.defaultView.getComputedStyle(f);return S-=(0,t.int)(N.paddingTop),S-=(0,t.int)(N.paddingBottom),S}function x(f){let S=f.clientWidth;const N=f.ownerDocument.defaultView.getComputedStyle(f);return S-=(0,t.int)(N.paddingLeft),S-=(0,t.int)(N.paddingRight),S}function j(f,S,N){const E=S===S.ownerDocument.body?{left:0,top:0}:S.getBoundingClientRect(),T=(f.clientX+S.scrollLeft-E.left)/N,A=(f.clientY+S.scrollTop-E.top)/N;return{x:T,y:A}}function P(f,S){const N=p(f,S,"px");return{[(0,n.browserPrefixToKey)("transform",n.default)]:N}}function _(f,S){return p(f,S,"")}function p(f,S,N){let{x:M,y:E}=f,T=`translate(${M}${N},${E}${N})`;if(S){const A=`${typeof S.x=="string"?S.x:S.x+N}`,q=`${typeof S.y=="string"?S.y:S.y+N}`;T=`translate(${A}, ${q})`+T}return T}function o(f,S){return f.targetTouches&&(0,t.findInArray)(f.targetTouches,N=>S===N.identifier)||f.changedTouches&&(0,t.findInArray)(f.changedTouches,N=>S===N.identifier)}function u(f){if(f.targetTouches&&f.targetTouches[0])return f.targetTouches[0].identifier;if(f.changedTouches&&f.changedTouches[0])return f.changedTouches[0].identifier}function l(f){if(!f)return;let S=f.getElementById("react-draggable-style-el");S||(S=f.createElement("style"),S.type="text/css",S.id="react-draggable-style-el",S.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
3
|
+
`,S.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
4
|
+
`,f.getElementsByTagName("head")[0].appendChild(S)),f.body&&m(f.body,"react-draggable-transparent-selection")}function h(f){window.requestAnimationFrame?window.requestAnimationFrame(()=>{v(f)}):v(f)}function v(f){if(f)try{if(f.body&&y(f.body,"react-draggable-transparent-selection"),f.selection)f.selection.empty();else{const S=(f.defaultView||window).getSelection();S&&S.type!=="Caret"&&S.removeAllRanges()}}catch{}}function m(f,S){f.classList?f.classList.add(S):f.className.match(new RegExp(`(?:^|\\s)${S}(?!\\S)`))||(f.className+=` ${S}`)}function y(f,S){f.classList?f.classList.remove(S):f.className=f.className.replace(new RegExp(`(?:^|\\s)${S}(?!\\S)`,"g"),"")}return de}var Re={},Aa;function Fl(){if(Aa)return Re;Aa=1,Object.defineProperty(Re,"__esModule",{value:!0}),Re.canDragX=i,Re.canDragY=a,Re.createCoreData=d,Re.createDraggableData=g,Re.getBoundPosition=r,Re.getControlPosition=c,Re.snapToGrid=s;var t=Yt(),n=Js();function r(x,j,P){if(!x.props.bounds)return[j,P];let{bounds:_}=x.props;_=typeof _=="string"?_:b(_);const p=C(x);if(typeof _=="string"){const{ownerDocument:o}=p,u=o.defaultView;let l;if(_==="parent"?l=p.parentNode:l=p.getRootNode().querySelector(_),!(l instanceof u.HTMLElement))throw new Error('Bounds selector "'+_+'" could not find an element.');const h=l,v=u.getComputedStyle(p),m=u.getComputedStyle(h);_={left:-p.offsetLeft+(0,t.int)(m.paddingLeft)+(0,t.int)(v.marginLeft),top:-p.offsetTop+(0,t.int)(m.paddingTop)+(0,t.int)(v.marginTop),right:(0,n.innerWidth)(h)-(0,n.outerWidth)(p)-p.offsetLeft+(0,t.int)(m.paddingRight)-(0,t.int)(v.marginRight),bottom:(0,n.innerHeight)(h)-(0,n.outerHeight)(p)-p.offsetTop+(0,t.int)(m.paddingBottom)-(0,t.int)(v.marginBottom)}}return(0,t.isNum)(_.right)&&(j=Math.min(j,_.right)),(0,t.isNum)(_.bottom)&&(P=Math.min(P,_.bottom)),(0,t.isNum)(_.left)&&(j=Math.max(j,_.left)),(0,t.isNum)(_.top)&&(P=Math.max(P,_.top)),[j,P]}function s(x,j,P){const _=Math.round(j/x[0])*x[0],p=Math.round(P/x[1])*x[1];return[_,p]}function i(x){return x.props.axis==="both"||x.props.axis==="x"}function a(x){return x.props.axis==="both"||x.props.axis==="y"}function c(x,j,P){const _=typeof j=="number"?(0,n.getTouch)(x,j):null;if(typeof j=="number"&&!_)return null;const p=C(P),o=P.props.offsetParent||p.offsetParent||p.ownerDocument.body;return(0,n.offsetXYFromParent)(_||x,o,P.props.scale)}function d(x,j,P){const _=!(0,t.isNum)(x.lastX),p=C(x);return _?{node:p,deltaX:0,deltaY:0,lastX:j,lastY:P,x:j,y:P}:{node:p,deltaX:j-x.lastX,deltaY:P-x.lastY,lastX:x.lastX,lastY:x.lastY,x:j,y:P}}function g(x,j){const P=x.props.scale;return{node:j.node,x:x.state.x+j.deltaX/P,y:x.state.y+j.deltaY/P,deltaX:j.deltaX/P,deltaY:j.deltaY/P,lastX:x.state.x,lastY:x.state.y}}function b(x){return{left:x.left,top:x.top,right:x.right,bottom:x.bottom}}function C(x){const j=x.findDOMNode();if(!j)throw new Error("<DraggableCore>: Unmounted during event!");return j}return Re}var at={},Pt={},ka;function Bl(){if(ka)return Pt;ka=1,Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.default=t;function t(){}return Pt}var Ta;function Mu(){if(Ta)return at;Ta=1,Object.defineProperty(at,"__esModule",{value:!0}),at.default=void 0;var t=g(Ce()),n=d(We()),r=d(Xs()),s=Js(),i=Fl(),a=Yt(),c=d(Bl());function d(p){return p&&p.__esModule?p:{default:p}}function g(p,o){if(typeof WeakMap=="function")var u=new WeakMap,l=new WeakMap;return(g=function(h,v){if(!v&&h&&h.__esModule)return h;var m,y,f={__proto__:null,default:h};if(h===null||typeof h!="object"&&typeof h!="function")return f;if(m=v?l:u){if(m.has(h))return m.get(h);m.set(h,f)}for(const S in h)S!=="default"&&{}.hasOwnProperty.call(h,S)&&((y=(m=Object.defineProperty)&&Object.getOwnPropertyDescriptor(h,S))&&(y.get||y.set)?m(f,S,y):f[S]=h[S]);return f})(p,o)}function b(p,o,u){return(o=C(o))in p?Object.defineProperty(p,o,{value:u,enumerable:!0,configurable:!0,writable:!0}):p[o]=u,p}function C(p){var o=x(p,"string");return typeof o=="symbol"?o:o+""}function x(p,o){if(typeof p!="object"||!p)return p;var u=p[Symbol.toPrimitive];if(u!==void 0){var l=u.call(p,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(p)}const j={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let P=j.mouse,_=class extends t.Component{constructor(){super(...arguments),b(this,"dragging",!1),b(this,"lastX",NaN),b(this,"lastY",NaN),b(this,"touchIdentifier",null),b(this,"mounted",!1),b(this,"handleDragStart",o=>{if(this.props.onMouseDown(o),!this.props.allowAnyClick&&typeof o.button=="number"&&o.button!==0)return!1;const u=this.findDOMNode();if(!u||!u.ownerDocument||!u.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:l}=u;if(this.props.disabled||!(o.target instanceof l.defaultView.Node)||this.props.handle&&!(0,s.matchesSelectorAndParentsTo)(o.target,this.props.handle,u)||this.props.cancel&&(0,s.matchesSelectorAndParentsTo)(o.target,this.props.cancel,u))return;o.type==="touchstart"&&!this.props.allowMobileScroll&&o.preventDefault();const h=(0,s.getTouchIdentifier)(o);this.touchIdentifier=h;const v=(0,i.getControlPosition)(o,h,this);if(v==null)return;const{x:m,y}=v,f=(0,i.createCoreData)(this,m,y);(0,c.default)("DraggableCore: handleDragStart: %j",f),(0,c.default)("calling",this.props.onStart),!(this.props.onStart(o,f)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,s.addUserSelectStyles)(l),this.dragging=!0,this.lastX=m,this.lastY=y,(0,s.addEvent)(l,P.move,this.handleDrag),(0,s.addEvent)(l,P.stop,this.handleDragStop))}),b(this,"handleDrag",o=>{const u=(0,i.getControlPosition)(o,this.touchIdentifier,this);if(u==null)return;let{x:l,y:h}=u;if(Array.isArray(this.props.grid)){let y=l-this.lastX,f=h-this.lastY;if([y,f]=(0,i.snapToGrid)(this.props.grid,y,f),!y&&!f)return;l=this.lastX+y,h=this.lastY+f}const v=(0,i.createCoreData)(this,l,h);if((0,c.default)("DraggableCore: handleDrag: %j",v),this.props.onDrag(o,v)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const f=document.createEvent("MouseEvents");f.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(f)}return}this.lastX=l,this.lastY=h}),b(this,"handleDragStop",o=>{if(!this.dragging)return;const u=(0,i.getControlPosition)(o,this.touchIdentifier,this);if(u==null)return;let{x:l,y:h}=u;if(Array.isArray(this.props.grid)){let f=l-this.lastX||0,S=h-this.lastY||0;[f,S]=(0,i.snapToGrid)(this.props.grid,f,S),l=this.lastX+f,h=this.lastY+S}const v=(0,i.createCoreData)(this,l,h);if(this.props.onStop(o,v)===!1||this.mounted===!1)return!1;const y=this.findDOMNode();y&&this.props.enableUserSelectHack&&(0,s.scheduleRemoveUserSelectStyles)(y.ownerDocument),(0,c.default)("DraggableCore: handleDragStop: %j",v),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,y&&((0,c.default)("DraggableCore: Removing handlers"),(0,s.removeEvent)(y.ownerDocument,P.move,this.handleDrag),(0,s.removeEvent)(y.ownerDocument,P.stop,this.handleDragStop))}),b(this,"onMouseDown",o=>(P=j.mouse,this.handleDragStart(o))),b(this,"onMouseUp",o=>(P=j.mouse,this.handleDragStop(o))),b(this,"onTouchStart",o=>(P=j.touch,this.handleDragStart(o))),b(this,"onTouchEnd",o=>(P=j.touch,this.handleDragStop(o)))}componentDidMount(){this.mounted=!0;const o=this.findDOMNode();o&&(0,s.addEvent)(o,j.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const o=this.findDOMNode();if(o){const{ownerDocument:u}=o;(0,s.removeEvent)(u,j.mouse.move,this.handleDrag),(0,s.removeEvent)(u,j.touch.move,this.handleDrag),(0,s.removeEvent)(u,j.mouse.stop,this.handleDragStop),(0,s.removeEvent)(u,j.touch.stop,this.handleDragStop),(0,s.removeEvent)(o,j.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,s.scheduleRemoveUserSelectStyles)(u)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return t.cloneElement(t.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return at.default=_,b(_,"displayName","DraggableCore"),b(_,"propTypes",{allowAnyClick:n.default.bool,allowMobileScroll:n.default.bool,children:n.default.node.isRequired,disabled:n.default.bool,enableUserSelectHack:n.default.bool,offsetParent:function(p,o){if(p[o]&&p[o].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:n.default.arrayOf(n.default.number),handle:n.default.string,cancel:n.default.string,nodeRef:n.default.object,onStart:n.default.func,onDrag:n.default.func,onStop:n.default.func,onMouseDown:n.default.func,scale:n.default.number,className:a.dontSetMe,style:a.dontSetMe,transform:a.dontSetMe}),b(_,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),at}var La;function Au(){return La||(La=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return g.default}}),t.default=void 0;var n=x(Ce()),r=C(We()),s=C(Xs()),i=Kt(),a=Js(),c=Fl(),d=Yt(),g=C(Mu()),b=C(Bl());function C(u){return u&&u.__esModule?u:{default:u}}function x(u,l){if(typeof WeakMap=="function")var h=new WeakMap,v=new WeakMap;return(x=function(m,y){if(!y&&m&&m.__esModule)return m;var f,S,N={__proto__:null,default:m};if(m===null||typeof m!="object"&&typeof m!="function")return N;if(f=y?v:h){if(f.has(m))return f.get(m);f.set(m,N)}for(const M in m)M!=="default"&&{}.hasOwnProperty.call(m,M)&&((S=(f=Object.defineProperty)&&Object.getOwnPropertyDescriptor(m,M))&&(S.get||S.set)?f(N,M,S):N[M]=m[M]);return N})(u,l)}function j(){return j=Object.assign?Object.assign.bind():function(u){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var v in h)({}).hasOwnProperty.call(h,v)&&(u[v]=h[v])}return u},j.apply(null,arguments)}function P(u,l,h){return(l=_(l))in u?Object.defineProperty(u,l,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[l]=h,u}function _(u){var l=p(u,"string");return typeof l=="symbol"?l:l+""}function p(u,l){if(typeof u!="object"||!u)return u;var h=u[Symbol.toPrimitive];if(h!==void 0){var v=h.call(u,l);if(typeof v!="object")return v;throw new TypeError("@@toPrimitive must return a primitive value.")}return(l==="string"?String:Number)(u)}class o extends n.Component{static getDerivedStateFromProps(l,h){let{position:v}=l,{prevPropsPosition:m}=h;return v&&(!m||v.x!==m.x||v.y!==m.y)?((0,b.default)("Draggable: getDerivedStateFromProps %j",{position:v,prevPropsPosition:m}),{x:v.x,y:v.y,prevPropsPosition:{...v}}):null}constructor(l){super(l),P(this,"onDragStart",(h,v)=>{if((0,b.default)("Draggable: onDragStart: %j",v),this.props.onStart(h,(0,c.createDraggableData)(this,v))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),P(this,"onDrag",(h,v)=>{if(!this.state.dragging)return!1;(0,b.default)("Draggable: onDrag: %j",v);const m=(0,c.createDraggableData)(this,v),y={x:m.x,y:m.y,slackX:0,slackY:0};if(this.props.bounds){const{x:S,y:N}=y;y.x+=this.state.slackX,y.y+=this.state.slackY;const[M,E]=(0,c.getBoundPosition)(this,y.x,y.y);y.x=M,y.y=E,y.slackX=this.state.slackX+(S-y.x),y.slackY=this.state.slackY+(N-y.y),m.x=y.x,m.y=y.y,m.deltaX=y.x-this.state.x,m.deltaY=y.y-this.state.y}if(this.props.onDrag(h,m)===!1)return!1;this.setState(y)}),P(this,"onDragStop",(h,v)=>{if(!this.state.dragging||this.props.onStop(h,(0,c.createDraggableData)(this,v))===!1)return!1;(0,b.default)("Draggable: onDragStop: %j",v);const y={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:S,y:N}=this.props.position;y.x=S,y.y=N}this.setState(y)}),this.state={dragging:!1,dragged:!1,x:l.position?l.position.x:l.defaultPosition.x,y:l.position?l.position.y:l.defaultPosition.y,prevPropsPosition:{...l.position},slackX:0,slackY:0,isElementSVG:!1},l.position&&!(l.onDrag||l.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??s.default.findDOMNode(this)}render(){const{axis:l,bounds:h,children:v,defaultPosition:m,defaultClassName:y,defaultClassNameDragging:f,defaultClassNameDragged:S,position:N,positionOffset:M,scale:E,...T}=this.props;let A={},q=null;const W=!!!N||this.state.dragging,L=N||m,$={x:(0,c.canDragX)(this)&&W?this.state.x:L.x,y:(0,c.canDragY)(this)&&W?this.state.y:L.y};this.state.isElementSVG?q=(0,a.createSVGTransform)($,M):A=(0,a.createCSSTransform)($,M);const ee=(0,i.clsx)(v.props.className||"",y,{[f]:this.state.dragging,[S]:this.state.dragged});return n.createElement(g.default,j({},T,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),n.cloneElement(n.Children.only(v),{className:ee,style:{...v.props.style,...A},transform:q}))}}t.default=o,P(o,"displayName","Draggable"),P(o,"propTypes",{...g.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:d.dontSetMe,style:d.dontSetMe,transform:d.dontSetMe}),P(o,"defaultProps",{...g.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(fr)),fr}var za;function Zs(){if(za)return st.exports;za=1;const{default:t,DraggableCore:n}=Au();return st.exports=t,st.exports.default=t,st.exports.DraggableCore=n,st.exports}var it={exports:{}},ot={},Nt={},Ia;function ku(){if(Ia)return Nt;Ia=1,Nt.__esModule=!0,Nt.cloneElement=d;var t=n(Ce());function n(g){return g&&g.__esModule?g:{default:g}}function r(g,b){var C=Object.keys(g);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(g);b&&(x=x.filter(function(j){return Object.getOwnPropertyDescriptor(g,j).enumerable})),C.push.apply(C,x)}return C}function s(g){for(var b=1;b<arguments.length;b++){var C=arguments[b]!=null?arguments[b]:{};b%2?r(Object(C),!0).forEach(function(x){i(g,x,C[x])}):Object.getOwnPropertyDescriptors?Object.defineProperties(g,Object.getOwnPropertyDescriptors(C)):r(Object(C)).forEach(function(x){Object.defineProperty(g,x,Object.getOwnPropertyDescriptor(C,x))})}return g}function i(g,b,C){return b=a(b),b in g?Object.defineProperty(g,b,{value:C,enumerable:!0,configurable:!0,writable:!0}):g[b]=C,g}function a(g){var b=c(g,"string");return typeof b=="symbol"?b:String(b)}function c(g,b){if(typeof g!="object"||g===null)return g;var C=g[Symbol.toPrimitive];if(C!==void 0){var x=C.call(g,b);if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(g)}function d(g,b){return b.style&&g.props.style&&(b.style=s(s({},g.props.style),b.style)),b.className&&g.props.className&&(b.className=g.props.className+" "+b.className),t.default.cloneElement(g,b)}return Nt}var lt={},Ha;function Gl(){if(Ha)return lt;Ha=1,lt.__esModule=!0,lt.resizableProps=void 0;var t=n(We());Zs();function n(s){return s&&s.__esModule?s:{default:s}}var r={axis:t.default.oneOf(["both","x","y","none"]),className:t.default.string,children:t.default.element.isRequired,draggableOpts:t.default.shape({allowAnyClick:t.default.bool,cancel:t.default.string,children:t.default.node,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:t.default.node,grid:t.default.arrayOf(t.default.number),handle:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number}),height:function(){for(var i=arguments.length,a=new Array(i),c=0;c<i;c++)a[c]=arguments[c];var d=a[0];if(d.axis==="both"||d.axis==="y"){var g;return(g=t.default.number).isRequired.apply(g,a)}return t.default.number.apply(t.default,a)},handle:t.default.oneOfType([t.default.node,t.default.func]),handleSize:t.default.arrayOf(t.default.number),lockAspectRatio:t.default.bool,maxConstraints:t.default.arrayOf(t.default.number),minConstraints:t.default.arrayOf(t.default.number),onResizeStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,resizeHandles:t.default.arrayOf(t.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:t.default.number,width:function(){for(var i=arguments.length,a=new Array(i),c=0;c<i;c++)a[c]=arguments[c];var d=a[0];if(d.axis==="both"||d.axis==="x"){var g;return(g=t.default.number).isRequired.apply(g,a)}return t.default.number.apply(t.default,a)}};return lt.resizableProps=r,lt}var Wa;function $l(){if(Wa)return ot;Wa=1,ot.__esModule=!0,ot.default=void 0;var t=c(Ce()),n=Zs(),r=ku(),s=Gl(),i=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function a(u){if(typeof WeakMap!="function")return null;var l=new WeakMap,h=new WeakMap;return(a=function(m){return m?h:l})(u)}function c(u,l){if(u&&u.__esModule)return u;if(u===null||typeof u!="object"&&typeof u!="function")return{default:u};var h=a(l);if(h&&h.has(u))return h.get(u);var v={},m=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var y in u)if(y!=="default"&&Object.prototype.hasOwnProperty.call(u,y)){var f=m?Object.getOwnPropertyDescriptor(u,y):null;f&&(f.get||f.set)?Object.defineProperty(v,y,f):v[y]=u[y]}return v.default=u,h&&h.set(u,v),v}function d(){return d=Object.assign?Object.assign.bind():function(u){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var v in h)Object.prototype.hasOwnProperty.call(h,v)&&(u[v]=h[v])}return u},d.apply(this,arguments)}function g(u,l){if(u==null)return{};var h={},v=Object.keys(u),m,y;for(y=0;y<v.length;y++)m=v[y],!(l.indexOf(m)>=0)&&(h[m]=u[m]);return h}function b(u,l){var h=Object.keys(u);if(Object.getOwnPropertySymbols){var v=Object.getOwnPropertySymbols(u);l&&(v=v.filter(function(m){return Object.getOwnPropertyDescriptor(u,m).enumerable})),h.push.apply(h,v)}return h}function C(u){for(var l=1;l<arguments.length;l++){var h=arguments[l]!=null?arguments[l]:{};l%2?b(Object(h),!0).forEach(function(v){x(u,v,h[v])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(h)):b(Object(h)).forEach(function(v){Object.defineProperty(u,v,Object.getOwnPropertyDescriptor(h,v))})}return u}function x(u,l,h){return l=j(l),l in u?Object.defineProperty(u,l,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[l]=h,u}function j(u){var l=P(u,"string");return typeof l=="symbol"?l:String(l)}function P(u,l){if(typeof u!="object"||u===null)return u;var h=u[Symbol.toPrimitive];if(h!==void 0){var v=h.call(u,l);if(typeof v!="object")return v;throw new TypeError("@@toPrimitive must return a primitive value.")}return(l==="string"?String:Number)(u)}function _(u,l){u.prototype=Object.create(l.prototype),u.prototype.constructor=u,p(u,l)}function p(u,l){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(v,m){return v.__proto__=m,v},p(u,l)}var o=(function(u){_(l,u);function l(){for(var v,m=arguments.length,y=new Array(m),f=0;f<m;f++)y[f]=arguments[f];return v=u.call.apply(u,[this].concat(y))||this,v.handleRefs={},v.lastHandleRect=null,v.slack=null,v}var h=l.prototype;return h.componentWillUnmount=function(){this.resetData()},h.resetData=function(){this.lastHandleRect=this.slack=null},h.runConstraints=function(m,y){var f=this.props,S=f.minConstraints,N=f.maxConstraints,M=f.lockAspectRatio;if(!S&&!N&&!M)return[m,y];if(M){var E=this.props.width/this.props.height,T=m-this.props.width,A=y-this.props.height;Math.abs(T)>Math.abs(A*E)?y=m/E:m=y*E}var q=m,z=y,W=this.slack||[0,0],L=W[0],$=W[1];return m+=L,y+=$,S&&(m=Math.max(S[0],m),y=Math.max(S[1],y)),N&&(m=Math.min(N[0],m),y=Math.min(N[1],y)),this.slack=[L+(q-m),$+(z-y)],[m,y]},h.resizeHandler=function(m,y){var f=this;return function(S,N){var M=N.node,E=N.deltaX,T=N.deltaY;m==="onResizeStart"&&f.resetData();var A=(f.props.axis==="both"||f.props.axis==="x")&&y!=="n"&&y!=="s",q=(f.props.axis==="both"||f.props.axis==="y")&&y!=="e"&&y!=="w";if(!(!A&&!q)){var z=y[0],W=y[y.length-1],L=M.getBoundingClientRect();if(f.lastHandleRect!=null){if(W==="w"){var $=L.left-f.lastHandleRect.left;E+=$}if(z==="n"){var ee=L.top-f.lastHandleRect.top;T+=ee}}f.lastHandleRect=L,W==="w"&&(E=-E),z==="n"&&(T=-T);var J=f.props.width+(A?E/f.props.transformScale:0),oe=f.props.height+(q?T/f.props.transformScale:0),B=f.runConstraints(J,oe);J=B[0],oe=B[1];var Y=J!==f.props.width||oe!==f.props.height,ie=typeof f.props[m]=="function"?f.props[m]:null,ce=m==="onResize"&&!Y;ie&&!ce&&(S.persist==null||S.persist(),ie(S,{node:M,size:{width:J,height:oe},handle:y})),m==="onResizeStop"&&f.resetData()}}},h.renderResizeHandle=function(m,y){var f=this.props.handle;if(!f)return t.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+m,ref:y});if(typeof f=="function")return f(m,y);var S=typeof f.type=="string",N=C({ref:y},S?{}:{handleAxis:m});return t.cloneElement(f,N)},h.render=function(){var m=this,y=this.props,f=y.children,S=y.className,N=y.draggableOpts;y.width,y.height,y.handle,y.handleSize,y.lockAspectRatio,y.axis,y.minConstraints,y.maxConstraints,y.onResize,y.onResizeStop,y.onResizeStart;var M=y.resizeHandles;y.transformScale;var E=g(y,i);return(0,r.cloneElement)(f,C(C({},E),{},{className:(S?S+" ":"")+"react-resizable",children:[].concat(f.props.children,M.map(function(T){var A,q=(A=m.handleRefs[T])!=null?A:m.handleRefs[T]=t.createRef();return t.createElement(n.DraggableCore,d({},N,{nodeRef:q,key:"resizableHandle-"+T,onStop:m.resizeHandler("onResizeStop",T),onStart:m.resizeHandler("onResizeStart",T),onDrag:m.resizeHandler("onResize",T)}),m.renderResizeHandle(T,q))}))}))},l})(t.Component);return ot.default=o,o.propTypes=s.resizableProps,o.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},ot}var ct={},Ua;function Tu(){if(Ua)return ct;Ua=1,ct.__esModule=!0,ct.default=void 0;var t=d(Ce()),n=a(We()),r=a($l()),s=Gl(),i=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function a(l){return l&&l.__esModule?l:{default:l}}function c(l){if(typeof WeakMap!="function")return null;var h=new WeakMap,v=new WeakMap;return(c=function(y){return y?v:h})(l)}function d(l,h){if(l&&l.__esModule)return l;if(l===null||typeof l!="object"&&typeof l!="function")return{default:l};var v=c(h);if(v&&v.has(l))return v.get(l);var m={},y=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in l)if(f!=="default"&&Object.prototype.hasOwnProperty.call(l,f)){var S=y?Object.getOwnPropertyDescriptor(l,f):null;S&&(S.get||S.set)?Object.defineProperty(m,f,S):m[f]=l[f]}return m.default=l,v&&v.set(l,m),m}function g(){return g=Object.assign?Object.assign.bind():function(l){for(var h=1;h<arguments.length;h++){var v=arguments[h];for(var m in v)Object.prototype.hasOwnProperty.call(v,m)&&(l[m]=v[m])}return l},g.apply(this,arguments)}function b(l,h){var v=Object.keys(l);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(l);h&&(m=m.filter(function(y){return Object.getOwnPropertyDescriptor(l,y).enumerable})),v.push.apply(v,m)}return v}function C(l){for(var h=1;h<arguments.length;h++){var v=arguments[h]!=null?arguments[h]:{};h%2?b(Object(v),!0).forEach(function(m){x(l,m,v[m])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(v)):b(Object(v)).forEach(function(m){Object.defineProperty(l,m,Object.getOwnPropertyDescriptor(v,m))})}return l}function x(l,h,v){return h=j(h),h in l?Object.defineProperty(l,h,{value:v,enumerable:!0,configurable:!0,writable:!0}):l[h]=v,l}function j(l){var h=P(l,"string");return typeof h=="symbol"?h:String(h)}function P(l,h){if(typeof l!="object"||l===null)return l;var v=l[Symbol.toPrimitive];if(v!==void 0){var m=v.call(l,h);if(typeof m!="object")return m;throw new TypeError("@@toPrimitive must return a primitive value.")}return(h==="string"?String:Number)(l)}function _(l,h){if(l==null)return{};var v={},m=Object.keys(l),y,f;for(f=0;f<m.length;f++)y=m[f],!(h.indexOf(y)>=0)&&(v[y]=l[y]);return v}function p(l,h){l.prototype=Object.create(h.prototype),l.prototype.constructor=l,o(l,h)}function o(l,h){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(m,y){return m.__proto__=y,m},o(l,h)}var u=(function(l){p(h,l);function h(){for(var m,y=arguments.length,f=new Array(y),S=0;S<y;S++)f[S]=arguments[S];return m=l.call.apply(l,[this].concat(f))||this,m.state={width:m.props.width,height:m.props.height,propsWidth:m.props.width,propsHeight:m.props.height},m.onResize=function(N,M){var E=M.size;m.props.onResize?(N.persist==null||N.persist(),m.setState(E,function(){return m.props.onResize&&m.props.onResize(N,M)})):m.setState(E)},m}h.getDerivedStateFromProps=function(y,f){return f.propsWidth!==y.width||f.propsHeight!==y.height?{width:y.width,height:y.height,propsWidth:y.width,propsHeight:y.height}:null};var v=h.prototype;return v.render=function(){var y=this.props,f=y.handle,S=y.handleSize;y.onResize;var N=y.onResizeStart,M=y.onResizeStop,E=y.draggableOpts,T=y.minConstraints,A=y.maxConstraints,q=y.lockAspectRatio,z=y.axis;y.width,y.height;var W=y.resizeHandles,L=y.style,$=y.transformScale,ee=_(y,i);return t.createElement(r.default,{axis:z,draggableOpts:E,handle:f,handleSize:S,height:this.state.height,lockAspectRatio:q,maxConstraints:A,minConstraints:T,onResizeStart:N,onResize:this.onResize,onResizeStop:M,resizeHandles:W,transformScale:$,width:this.state.width},t.createElement("div",g({},ee,{style:C(C({},L),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},h})(t.Component);return ct.default=u,u.propTypes=C(C({},s.resizableProps),{},{children:n.default.element}),ct}var Fa;function Lu(){return Fa||(Fa=1,it.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},it.exports.Resizable=$l().default,it.exports.ResizableBox=Tu().default),it.exports}var Ee={},Ba;function Kl(){if(Ba)return Ee;Ba=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.resizeHandleType=Ee.resizeHandleAxesType=Ee.default=void 0;var t=r(We()),n=r(Ce());function r(a){return a&&a.__esModule?a:{default:a}}const s=Ee.resizeHandleAxesType=t.default.arrayOf(t.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),i=Ee.resizeHandleType=t.default.oneOfType([t.default.node,t.default.func]);return Ee.default={className:t.default.string,style:t.default.object,width:t.default.number,autoSize:t.default.bool,cols:t.default.number,draggableCancel:t.default.string,draggableHandle:t.default.string,verticalCompact:function(a){a.verticalCompact},compactType:t.default.oneOf(["vertical","horizontal"]),layout:function(a){var c=a.layout;c!==void 0&&et().validateLayout(c,"layout")},margin:t.default.arrayOf(t.default.number),containerPadding:t.default.arrayOf(t.default.number),rowHeight:t.default.number,maxRows:t.default.number,isBounded:t.default.bool,isDraggable:t.default.bool,isResizable:t.default.bool,allowOverlap:t.default.bool,preventCollision:t.default.bool,useCSSTransforms:t.default.bool,transformScale:t.default.number,isDroppable:t.default.bool,resizeHandles:s,resizeHandle:i,onLayoutChange:t.default.func,onDragStart:t.default.func,onDrag:t.default.func,onDragStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,onResizeStop:t.default.func,onDrop:t.default.func,droppingItem:t.default.shape({i:t.default.string.isRequired,w:t.default.number.isRequired,h:t.default.number.isRequired}),children:function(a,c){const d=a[c],g={};n.default.Children.forEach(d,function(b){if(b?.key!=null){if(g[b.key])throw new Error('Duplicate child key "'+b.key+'" found! This will cause problems in ReactGridLayout.');g[b.key]=!0}})},innerRef:t.default.any},Ee}var Ga;function zu(){if(Ga)return nt;Ga=1,Object.defineProperty(nt,"__esModule",{value:!0}),nt.default=void 0;var t=b(Ce()),n=Xs(),r=b(We()),s=Zs(),i=Lu(),a=et(),c=Qs(),d=Kl(),g=b(Kt());function b(_){return _&&_.__esModule?_:{default:_}}function C(_,p,o){return(p=x(p))in _?Object.defineProperty(_,p,{value:o,enumerable:!0,configurable:!0,writable:!0}):_[p]=o,_}function x(_){var p=j(_,"string");return typeof p=="symbol"?p:p+""}function j(_,p){if(typeof _!="object"||!_)return _;var o=_[Symbol.toPrimitive];if(o!==void 0){var u=o.call(_,p);if(typeof u!="object")return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return(p==="string"?String:Number)(_)}let P=class extends t.default.Component{constructor(){super(...arguments),C(this,"state",{resizing:null,dragging:null,className:""}),C(this,"elementRef",t.default.createRef()),C(this,"onDragStart",(p,o)=>{let{node:u}=o;const{onDragStart:l,transformScale:h}=this.props;if(!l)return;const v={top:0,left:0},{offsetParent:m}=u;if(!m)return;const y=m.getBoundingClientRect(),f=u.getBoundingClientRect(),S=f.left/h,N=y.left/h,M=f.top/h,E=y.top/h;v.left=S-N+m.scrollLeft,v.top=M-E+m.scrollTop,this.setState({dragging:v});const{x:T,y:A}=(0,c.calcXY)(this.getPositionParams(),v.top,v.left,this.props.w,this.props.h);return l.call(this,this.props.i,T,A,{e:p,node:u,newPosition:v})}),C(this,"onDrag",(p,o,u)=>{let{node:l,deltaX:h,deltaY:v}=o;const{onDrag:m}=this.props;if(!m)return;if(!this.state.dragging)throw new Error("onDrag called before onDragStart.");let y=this.state.dragging.top+v,f=this.state.dragging.left+h;const{isBounded:S,i:N,w:M,h:E,containerWidth:T}=this.props,A=this.getPositionParams();if(S){const{offsetParent:L}=l;if(L){const{margin:$,rowHeight:ee}=this.props,J=L.clientHeight-(0,c.calcGridItemWHPx)(E,ee,$[1]);y=(0,c.clamp)(y,0,J);const oe=(0,c.calcGridColWidth)(A),B=T-(0,c.calcGridItemWHPx)(M,oe,$[0]);f=(0,c.clamp)(f,0,B)}}const q={top:y,left:f};u?this.setState({dragging:q}):(0,n.flushSync)(()=>{this.setState({dragging:q})});const{x:z,y:W}=(0,c.calcXY)(A,y,f,M,E);return m.call(this,N,z,W,{e:p,node:l,newPosition:q})}),C(this,"onDragStop",(p,o)=>{let{node:u}=o;const{onDragStop:l}=this.props;if(!l)return;if(!this.state.dragging)throw new Error("onDragEnd called before onDragStart.");const{w:h,h:v,i:m}=this.props,{left:y,top:f}=this.state.dragging,S={top:f,left:y};this.setState({dragging:null});const{x:N,y:M}=(0,c.calcXY)(this.getPositionParams(),f,y,h,v);return l.call(this,m,N,M,{e:p,node:u,newPosition:S})}),C(this,"onResizeStop",(p,o,u)=>this.onResizeHandler(p,o,u,"onResizeStop")),C(this,"onResizeStart",(p,o,u)=>this.onResizeHandler(p,o,u,"onResizeStart")),C(this,"onResize",(p,o,u)=>this.onResizeHandler(p,o,u,"onResize"))}shouldComponentUpdate(p,o){if(this.props.children!==p.children||this.props.droppingPosition!==p.droppingPosition)return!0;const u=(0,c.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),l=(0,c.calcGridItemPosition)(this.getPositionParams(p),p.x,p.y,p.w,p.h,o);return!(0,a.fastPositionEqual)(u,l)||this.props.useCSSTransforms!==p.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(p){this.moveDroppingItem(p)}moveDroppingItem(p){const{droppingPosition:o}=this.props;if(!o)return;const u=this.elementRef.current;if(!u)return;const l=p.droppingPosition||{left:0,top:0},{dragging:h}=this.state,v=h&&o.left!==l.left||o.top!==l.top;if(!h)this.onDragStart(o.e,{node:u,deltaX:o.left,deltaY:o.top});else if(v){const m=o.left-h.left,y=o.top-h.top;this.onDrag(o.e,{node:u,deltaX:m,deltaY:y},!0)}}getPositionParams(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:p.cols,containerPadding:p.containerPadding,containerWidth:p.containerWidth,margin:p.margin,maxRows:p.maxRows,rowHeight:p.rowHeight}}createStyle(p){const{usePercentages:o,containerWidth:u,useCSSTransforms:l}=this.props;let h;return l?h=(0,a.setTransform)(p):(h=(0,a.setTopLeft)(p),o&&(h.left=(0,a.perc)(p.left/u),h.width=(0,a.perc)(p.width/u))),h}mixinDraggable(p,o){return t.default.createElement(s.DraggableCore,{disabled:!o,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},p)}curryResizeHandler(p,o){return(u,l)=>o(u,l,p)}mixinResizable(p,o,u){const{cols:l,minW:h,minH:v,maxW:m,maxH:y,transformScale:f,resizeHandles:S,resizeHandle:N}=this.props,M=this.getPositionParams(),E=(0,c.calcGridItemPosition)(M,0,0,l,0).width,T=(0,c.calcGridItemPosition)(M,0,0,h,v),A=(0,c.calcGridItemPosition)(M,0,0,m,y),q=[T.width,T.height],z=[Math.min(A.width,E),Math.min(A.height,1/0)];return t.default.createElement(i.Resizable,{draggableOpts:{disabled:!u},className:u?void 0:"react-resizable-hide",width:o.width,height:o.height,minConstraints:q,maxConstraints:z,onResizeStop:this.curryResizeHandler(o,this.onResizeStop),onResizeStart:this.curryResizeHandler(o,this.onResizeStart),onResize:this.curryResizeHandler(o,this.onResize),transformScale:f,resizeHandles:S,handle:N},p)}onResizeHandler(p,o,u,l){let{node:h,size:v,handle:m}=o;const y=this.props[l];if(!y)return;const{x:f,y:S,i:N,maxH:M,minH:E,containerWidth:T}=this.props,{minW:A,maxW:q}=this.props;let z=v;h&&(z=(0,a.resizeItemInDirection)(m,u,v,T),(0,n.flushSync)(()=>{this.setState({resizing:l==="onResizeStop"?null:z})}));let{w:W,h:L}=(0,c.calcWH)(this.getPositionParams(),z.width,z.height,f,S,m);W=(0,c.clamp)(W,Math.max(A,1),q),L=(0,c.clamp)(L,E,M),y.call(this,N,W,L,{e:p,node:h,size:z,handle:m})}render(){const{x:p,y:o,w:u,h:l,isDraggable:h,isResizable:v,droppingPosition:m,useCSSTransforms:y}=this.props,f=(0,c.calcGridItemPosition)(this.getPositionParams(),p,o,u,l,this.state),S=t.default.Children.only(this.props.children);let N=t.default.cloneElement(S,{ref:this.elementRef,className:(0,g.default)("react-grid-item",S.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":h,"react-draggable-dragging":!!this.state.dragging,dropping:!!m,cssTransforms:y}),style:{...this.props.style,...S.props.style,...this.createStyle(f)}});return N=this.mixinResizable(N,f,v),N=this.mixinDraggable(N,h),N}};return nt.default=P,C(P,"propTypes",{children:r.default.element,cols:r.default.number.isRequired,containerWidth:r.default.number.isRequired,rowHeight:r.default.number.isRequired,margin:r.default.array.isRequired,maxRows:r.default.number.isRequired,containerPadding:r.default.array.isRequired,x:r.default.number.isRequired,y:r.default.number.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired,minW:function(_,p){const o=_[p];if(typeof o!="number")return new Error("minWidth not Number");if(o>_.w||o>_.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function(_,p){const o=_[p];if(typeof o!="number")return new Error("maxWidth not Number");if(o<_.w||o<_.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function(_,p){const o=_[p];if(typeof o!="number")return new Error("minHeight not Number");if(o>_.h||o>_.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function(_,p){const o=_[p];if(typeof o!="number")return new Error("maxHeight not Number");if(o<_.h||o<_.minH)return new Error("maxHeight smaller than item height/minHeight")},i:r.default.string.isRequired,resizeHandles:d.resizeHandleAxesType,resizeHandle:d.resizeHandleType,onDragStop:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onResizeStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,isDraggable:r.default.bool.isRequired,isResizable:r.default.bool.isRequired,isBounded:r.default.bool.isRequired,static:r.default.bool,useCSSTransforms:r.default.bool.isRequired,transformScale:r.default.number,className:r.default.string,handle:r.default.string,cancel:r.default.string,droppingPosition:r.default.shape({e:r.default.object.isRequired,left:r.default.number.isRequired,top:r.default.number.isRequired})}),C(P,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1}),nt}var $a;function Yl(){if($a)return rt;$a=1,Object.defineProperty(rt,"__esModule",{value:!0}),rt.default=void 0;var t=g(Ce()),n=Vs(),r=d(Kt()),s=et(),i=Qs(),a=d(zu()),c=d(Kl());function d(p){return p&&p.__esModule?p:{default:p}}function g(p,o){if(typeof WeakMap=="function")var u=new WeakMap,l=new WeakMap;return(g=function(h,v){if(!v&&h&&h.__esModule)return h;var m,y,f={__proto__:null,default:h};if(h===null||typeof h!="object"&&typeof h!="function")return f;if(m=v?l:u){if(m.has(h))return m.get(h);m.set(h,f)}for(const S in h)S!=="default"&&{}.hasOwnProperty.call(h,S)&&((y=(m=Object.defineProperty)&&Object.getOwnPropertyDescriptor(h,S))&&(y.get||y.set)?m(f,S,y):f[S]=h[S]);return f})(p,o)}function b(p,o,u){return(o=C(o))in p?Object.defineProperty(p,o,{value:u,enumerable:!0,configurable:!0,writable:!0}):p[o]=u,p}function C(p){var o=x(p,"string");return typeof o=="symbol"?o:o+""}function x(p,o){if(typeof p!="object"||!p)return p;var u=p[Symbol.toPrimitive];if(u!==void 0){var l=u.call(p,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(p)}const j="react-grid-layout";let P=!1;try{P=/firefox/i.test(navigator.userAgent)}catch{}let _=class extends t.Component{constructor(){super(...arguments),b(this,"state",{activeDrag:null,layout:(0,s.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,s.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),b(this,"dragEnterCounter",0),b(this,"onDragStart",(o,u,l,h)=>{let{e:v,node:m}=h;const{layout:y}=this.state,f=(0,s.getLayoutItem)(y,o);if(!f)return;const S={w:f.w,h:f.h,x:f.x,y:f.y,placeholder:!0,i:o};return this.setState({oldDragItem:(0,s.cloneLayoutItem)(f),oldLayout:y,activeDrag:S}),this.props.onDragStart(y,f,f,null,v,m)}),b(this,"onDrag",(o,u,l,h)=>{let{e:v,node:m}=h;const{oldDragItem:y}=this.state;let{layout:f}=this.state;const{cols:S,allowOverlap:N,preventCollision:M}=this.props,E=(0,s.getLayoutItem)(f,o);if(!E)return;const T={w:E.w,h:E.h,x:E.x,y:E.y,placeholder:!0,i:o};f=(0,s.moveElement)(f,E,u,l,!0,M,(0,s.compactType)(this.props),S,N),this.props.onDrag(f,y,E,T,v,m),this.setState({layout:N?f:(0,s.compact)(f,(0,s.compactType)(this.props),S),activeDrag:T})}),b(this,"onDragStop",(o,u,l,h)=>{let{e:v,node:m}=h;if(!this.state.activeDrag)return;const{oldDragItem:y}=this.state;let{layout:f}=this.state;const{cols:S,preventCollision:N,allowOverlap:M}=this.props,E=(0,s.getLayoutItem)(f,o);if(!E)return;f=(0,s.moveElement)(f,E,u,l,!0,N,(0,s.compactType)(this.props),S,M);const A=M?f:(0,s.compact)(f,(0,s.compactType)(this.props),S);this.props.onDragStop(A,y,E,null,v,m);const{oldLayout:q}=this.state;this.setState({activeDrag:null,layout:A,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(A,q)}),b(this,"onResizeStart",(o,u,l,h)=>{let{e:v,node:m}=h;const{layout:y}=this.state,f=(0,s.getLayoutItem)(y,o);f&&(this.setState({oldResizeItem:(0,s.cloneLayoutItem)(f),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(y,f,f,null,v,m))}),b(this,"onResize",(o,u,l,h)=>{let{e:v,node:m,size:y,handle:f}=h;const{oldResizeItem:S}=this.state,{layout:N}=this.state,{cols:M,preventCollision:E,allowOverlap:T}=this.props;let A=!1,q,z,W;const[L,$]=(0,s.withLayoutItem)(N,o,J=>{let oe;return z=J.x,W=J.y,["sw","w","nw","n","ne"].indexOf(f)!==-1&&(["sw","nw","w"].indexOf(f)!==-1&&(z=J.x+(J.w-u),u=J.x!==z&&z<0?J.w:u,z=z<0?0:z),["ne","n","nw"].indexOf(f)!==-1&&(W=J.y+(J.h-l),l=J.y!==W&&W<0?J.h:l,W=W<0?0:W),A=!0),E&&!T&&(oe=(0,s.getAllCollisions)(N,{...J,w:u,h:l,x:z,y:W}).filter(Y=>Y.i!==J.i).length>0,oe&&(W=J.y,l=J.h,z=J.x,u=J.w,A=!1)),J.w=u,J.h=l,J});if(!$)return;q=L,A&&(q=(0,s.moveElement)(L,$,z,W,!0,this.props.preventCollision,(0,s.compactType)(this.props),M,T));const ee={w:$.w,h:$.h,x:$.x,y:$.y,static:!0,i:o};this.props.onResize(q,S,$,ee,v,m),this.setState({layout:T?q:(0,s.compact)(q,(0,s.compactType)(this.props),M),activeDrag:ee})}),b(this,"onResizeStop",(o,u,l,h)=>{let{e:v,node:m}=h;const{layout:y,oldResizeItem:f}=this.state,{cols:S,allowOverlap:N}=this.props,M=(0,s.getLayoutItem)(y,o),E=N?y:(0,s.compact)(y,(0,s.compactType)(this.props),S);this.props.onResizeStop(E,f,M,null,v,m);const{oldLayout:T}=this.state;this.setState({activeDrag:null,layout:E,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(E,T)}),b(this,"onDragOver",o=>{if(o.preventDefault(),o.stopPropagation(),P&&!o.nativeEvent.target?.classList.contains(j))return!1;const{droppingItem:u,onDropDragOver:l,margin:h,cols:v,rowHeight:m,maxRows:y,width:f,containerPadding:S,transformScale:N}=this.props,M=l?.(o);if(M===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;const E={...u,...M},{layout:T}=this.state,A=o.currentTarget.getBoundingClientRect(),q=o.clientX-A.left,z=o.clientY-A.top,W={left:q/N,top:z/N,e:o};if(this.state.droppingDOMNode){if(this.state.droppingPosition){const{left:L,top:$}=this.state.droppingPosition;(L!=q||$!=z)&&this.setState({droppingPosition:W})}}else{const L={cols:v,margin:h,maxRows:y,rowHeight:m,containerWidth:f,containerPadding:S||h},$=(0,i.calcXY)(L,z,q,E.w,E.h);this.setState({droppingDOMNode:t.createElement("div",{key:E.i}),droppingPosition:W,layout:[...T,{...E,x:$.x,y:$.y,static:!1,isDraggable:!0}]})}}),b(this,"removeDroppingPlaceholder",()=>{const{droppingItem:o,cols:u}=this.props,{layout:l}=this.state,h=(0,s.compact)(l.filter(v=>v.i!==o.i),(0,s.compactType)(this.props),u,this.props.allowOverlap);this.setState({layout:h,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),b(this,"onDragLeave",o=>{o.preventDefault(),o.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),b(this,"onDragEnter",o=>{o.preventDefault(),o.stopPropagation(),this.dragEnterCounter++}),b(this,"onDrop",o=>{o.preventDefault(),o.stopPropagation();const{droppingItem:u}=this.props,{layout:l}=this.state,h=l.find(v=>v.i===u.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(l,h,o)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(o,u){let l;return u.activeDrag?null:(!(0,n.deepEqual)(o.layout,u.propsLayout)||o.compactType!==u.compactType?l=o.layout:(0,s.childrenEqual)(o.children,u.children)||(l=u.layout),l?{layout:(0,s.synchronizeLayoutWithChildren)(l,o.children,o.cols,(0,s.compactType)(o),o.allowOverlap),compactType:o.compactType,children:o.children,propsLayout:o.layout}:null)}shouldComponentUpdate(o,u){return this.props.children!==o.children||!(0,s.fastRGLPropsEqual)(this.props,o,n.deepEqual)||this.state.activeDrag!==u.activeDrag||this.state.mounted!==u.mounted||this.state.droppingPosition!==u.droppingPosition}componentDidUpdate(o,u){if(!this.state.activeDrag){const l=this.state.layout,h=u.layout;this.onLayoutMaybeChanged(l,h)}}containerHeight(){if(!this.props.autoSize)return;const o=(0,s.bottom)(this.state.layout),u=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return o*this.props.rowHeight+(o-1)*this.props.margin[1]+u*2+"px"}onLayoutMaybeChanged(o,u){u||(u=this.state.layout),(0,n.deepEqual)(u,o)||this.props.onLayoutChange(o)}placeholder(){const{activeDrag:o}=this.state;if(!o)return null;const{width:u,cols:l,margin:h,containerPadding:v,rowHeight:m,maxRows:y,useCSSTransforms:f,transformScale:S}=this.props;return t.createElement(a.default,{w:o.w,h:o.h,x:o.x,y:o.y,i:o.i,className:`react-grid-placeholder ${this.state.resizing?"placeholder-resizing":""}`,containerWidth:u,cols:l,margin:h,containerPadding:v||h,maxRows:y,rowHeight:m,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:f,transformScale:S},t.createElement("div",null))}processGridItem(o,u){if(!o||!o.key)return;const l=(0,s.getLayoutItem)(this.state.layout,String(o.key));if(!l)return null;const{width:h,cols:v,margin:m,containerPadding:y,rowHeight:f,maxRows:S,isDraggable:N,isResizable:M,isBounded:E,useCSSTransforms:T,transformScale:A,draggableCancel:q,draggableHandle:z,resizeHandles:W,resizeHandle:L}=this.props,{mounted:$,droppingPosition:ee}=this.state,J=typeof l.isDraggable=="boolean"?l.isDraggable:!l.static&&N,oe=typeof l.isResizable=="boolean"?l.isResizable:!l.static&&M,B=l.resizeHandles||W,Y=J&&E&&l.isBounded!==!1;return t.createElement(a.default,{containerWidth:h,cols:v,margin:m,containerPadding:y||m,maxRows:S,rowHeight:f,cancel:q,handle:z,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:J,isResizable:oe,isBounded:Y,useCSSTransforms:T&&$,usePercentages:!$,transformScale:A,w:l.w,h:l.h,x:l.x,y:l.y,i:l.i,minH:l.minH,minW:l.minW,maxH:l.maxH,maxW:l.maxW,static:l.static,droppingPosition:u?ee:void 0,resizeHandles:B,resizeHandle:L},o)}render(){const{className:o,style:u,isDroppable:l,innerRef:h}=this.props,v=(0,r.default)(j,o),m={height:this.containerHeight(),...u};return t.createElement("div",{ref:h,className:v,style:m,onDrop:l?this.onDrop:s.noop,onDragLeave:l?this.onDragLeave:s.noop,onDragEnter:l?this.onDragEnter:s.noop,onDragOver:l?this.onDragOver:s.noop},t.Children.map(this.props.children,y=>this.processGridItem(y)),l&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}};return rt.default=_,b(_,"displayName","ReactGridLayout"),b(_,"propTypes",c.default),b(_,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:s.noop,onDragStart:s.noop,onDrag:s.noop,onDragStop:s.noop,onResizeStart:s.noop,onResize:s.noop,onResizeStop:s.noop,onDrop:s.noop,onDropDragOver:s.noop}),rt}var ut={},Fe={},Ka;function Xl(){if(Ka)return Fe;Ka=1,Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.findOrGenerateResponsiveLayout=s,Fe.getBreakpointFromWidth=n,Fe.getColsFromBreakpoint=r,Fe.sortBreakpoints=i;var t=et();function n(a,c){const d=i(a);let g=d[0];for(let b=1,C=d.length;b<C;b++){const x=d[b];c>a[x]&&(g=x)}return g}function r(a,c){if(!c[a])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+a+" is missing!");return c[a]}function s(a,c,d,g,b,C){if(a[d])return(0,t.cloneLayout)(a[d]);let x=a[g];const j=i(c),P=j.slice(j.indexOf(d));for(let _=0,p=P.length;_<p;_++){const o=P[_];if(a[o]){x=a[o];break}}return x=(0,t.cloneLayout)(x||[]),(0,t.compact)((0,t.correctBounds)(x,{cols:b}),C,b)}function i(a){return Object.keys(a).sort(function(d,g){return a[d]-a[g]})}return Fe}var Ya;function Iu(){if(Ya)return ut;Ya=1,Object.defineProperty(ut,"__esModule",{value:!0}),ut.default=void 0;var t=d(Ce()),n=c(We()),r=Vs(),s=et(),i=Xl(),a=c(Yl());function c(p){return p&&p.__esModule?p:{default:p}}function d(p,o){if(typeof WeakMap=="function")var u=new WeakMap,l=new WeakMap;return(d=function(h,v){if(!v&&h&&h.__esModule)return h;var m,y,f={__proto__:null,default:h};if(h===null||typeof h!="object"&&typeof h!="function")return f;if(m=v?l:u){if(m.has(h))return m.get(h);m.set(h,f)}for(const S in h)S!=="default"&&{}.hasOwnProperty.call(h,S)&&((y=(m=Object.defineProperty)&&Object.getOwnPropertyDescriptor(h,S))&&(y.get||y.set)?m(f,S,y):f[S]=h[S]);return f})(p,o)}function g(){return g=Object.assign?Object.assign.bind():function(p){for(var o=1;o<arguments.length;o++){var u=arguments[o];for(var l in u)({}).hasOwnProperty.call(u,l)&&(p[l]=u[l])}return p},g.apply(null,arguments)}function b(p,o,u){return(o=C(o))in p?Object.defineProperty(p,o,{value:u,enumerable:!0,configurable:!0,writable:!0}):p[o]=u,p}function C(p){var o=x(p,"string");return typeof o=="symbol"?o:o+""}function x(p,o){if(typeof p!="object"||!p)return p;var u=p[Symbol.toPrimitive];if(u!==void 0){var l=u.call(p,o);if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(p)}const j=p=>Object.prototype.toString.call(p);function P(p,o){return p==null?null:Array.isArray(p)?p:p[o]}let _=class extends t.Component{constructor(){super(...arguments),b(this,"state",this.generateInitialState()),b(this,"onLayoutChange",o=>{this.props.onLayoutChange(o,{...this.props.layouts,[this.state.breakpoint]:o})})}generateInitialState(){const{width:o,breakpoints:u,layouts:l,cols:h}=this.props,v=(0,i.getBreakpointFromWidth)(u,o),m=(0,i.getColsFromBreakpoint)(v,h),y=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,i.findOrGenerateResponsiveLayout)(l,u,v,v,m,y),breakpoint:v,cols:m}}static getDerivedStateFromProps(o,u){if(!(0,r.deepEqual)(o.layouts,u.layouts)){const{breakpoint:l,cols:h}=u;return{layout:(0,i.findOrGenerateResponsiveLayout)(o.layouts,o.breakpoints,l,l,h,o.compactType),layouts:o.layouts}}return null}componentDidUpdate(o){(this.props.width!=o.width||this.props.breakpoint!==o.breakpoint||!(0,r.deepEqual)(this.props.breakpoints,o.breakpoints)||!(0,r.deepEqual)(this.props.cols,o.cols))&&this.onWidthChange(o)}onWidthChange(o){const{breakpoints:u,cols:l,layouts:h,compactType:v}=this.props,m=this.props.breakpoint||(0,i.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),y=this.state.breakpoint,f=(0,i.getColsFromBreakpoint)(m,l),S={...h};if(y!==m||o.breakpoints!==u||o.cols!==l){y in S||(S[y]=(0,s.cloneLayout)(this.state.layout));let E=(0,i.findOrGenerateResponsiveLayout)(S,u,m,y,f,v);E=(0,s.synchronizeLayoutWithChildren)(E,this.props.children,f,v,this.props.allowOverlap),S[m]=E,this.props.onBreakpointChange(m,f),this.props.onLayoutChange(E,S),this.setState({breakpoint:m,layout:E,cols:f})}const N=P(this.props.margin,m),M=P(this.props.containerPadding,m);this.props.onWidthChange(this.props.width,N,f,M)}render(){const{breakpoint:o,breakpoints:u,cols:l,layouts:h,margin:v,containerPadding:m,onBreakpointChange:y,onLayoutChange:f,onWidthChange:S,...N}=this.props;return t.createElement(a.default,g({},N,{margin:P(v,this.state.breakpoint),containerPadding:P(m,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}};return ut.default=_,b(_,"propTypes",{breakpoint:n.default.string,breakpoints:n.default.object,allowOverlap:n.default.bool,cols:n.default.object,margin:n.default.oneOfType([n.default.array,n.default.object]),containerPadding:n.default.oneOfType([n.default.array,n.default.object]),layouts(p,o){if(j(p[o])!=="[object Object]")throw new Error("Layout property must be an object. Received: "+j(p[o]));Object.keys(p[o]).forEach(u=>{if(!(u in p.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,s.validateLayout)(p.layouts[u],"layouts."+u)})},width:n.default.number.isRequired,onBreakpointChange:n.default.func,onLayoutChange:n.default.func,onWidthChange:n.default.func}),b(_,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:s.noop,onLayoutChange:s.noop,onWidthChange:s.noop}),ut}var Dt={},Vl=(function(){if(typeof Map<"u")return Map;function t(n,r){var s=-1;return n.some(function(i,a){return i[0]===r?(s=a,!0):!1}),s}return(function(){function n(){this.__entries__=[]}return Object.defineProperty(n.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),n.prototype.get=function(r){var s=t(this.__entries__,r),i=this.__entries__[s];return i&&i[1]},n.prototype.set=function(r,s){var i=t(this.__entries__,r);~i?this.__entries__[i][1]=s:this.__entries__.push([r,s])},n.prototype.delete=function(r){var s=this.__entries__,i=t(s,r);~i&&s.splice(i,1)},n.prototype.has=function(r){return!!~t(this.__entries__,r)},n.prototype.clear=function(){this.__entries__.splice(0)},n.prototype.forEach=function(r,s){s===void 0&&(s=null);for(var i=0,a=this.__entries__;i<a.length;i++){var c=a[i];r.call(s,c[1],c[0])}},n})()})(),Fs=typeof window<"u"&&typeof document<"u"&&window.document===document,Lt=(function(){return typeof global<"u"&&global.Math===Math?global:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()})(),Hu=(function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(Lt):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)}})(),Wu=2;function Uu(t,n){var r=!1,s=!1,i=0;function a(){r&&(r=!1,t()),s&&d()}function c(){Hu(a)}function d(){var g=Date.now();if(r){if(g-i<Wu)return;s=!0}else r=!0,s=!1,setTimeout(c,n);i=g}return d}var Fu=20,Bu=["top","right","bottom","left","width","height","size","weight"],Gu=typeof MutationObserver<"u",$u=(function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=Uu(this.refresh.bind(this),Fu)}return t.prototype.addObserver=function(n){~this.observers_.indexOf(n)||this.observers_.push(n),this.connected_||this.connect_()},t.prototype.removeObserver=function(n){var r=this.observers_,s=r.indexOf(n);~s&&r.splice(s,1),!r.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){var n=this.updateObservers_();n&&this.refresh()},t.prototype.updateObservers_=function(){var n=this.observers_.filter(function(r){return r.gatherActive(),r.hasActive()});return n.forEach(function(r){return r.broadcastActive()}),n.length>0},t.prototype.connect_=function(){!Fs||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Gu?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){!Fs||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(n){var r=n.propertyName,s=r===void 0?"":r,i=Bu.some(function(a){return!!~s.indexOf(a)});i&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t})(),Ql=(function(t,n){for(var r=0,s=Object.keys(n);r<s.length;r++){var i=s[r];Object.defineProperty(t,i,{value:n[i],enumerable:!1,writable:!1,configurable:!0})}return t}),Qe=(function(t){var n=t&&t.ownerDocument&&t.ownerDocument.defaultView;return n||Lt}),Jl=Xt(0,0,0,0);function zt(t){return parseFloat(t)||0}function Xa(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return n.reduce(function(s,i){var a=t["border-"+i+"-width"];return s+zt(a)},0)}function Ku(t){for(var n=["top","right","bottom","left"],r={},s=0,i=n;s<i.length;s++){var a=i[s],c=t["padding-"+a];r[a]=zt(c)}return r}function Yu(t){var n=t.getBBox();return Xt(0,0,n.width,n.height)}function Xu(t){var n=t.clientWidth,r=t.clientHeight;if(!n&&!r)return Jl;var s=Qe(t).getComputedStyle(t),i=Ku(s),a=i.left+i.right,c=i.top+i.bottom,d=zt(s.width),g=zt(s.height);if(s.boxSizing==="border-box"&&(Math.round(d+a)!==n&&(d-=Xa(s,"left","right")+a),Math.round(g+c)!==r&&(g-=Xa(s,"top","bottom")+c)),!Qu(t)){var b=Math.round(d+a)-n,C=Math.round(g+c)-r;Math.abs(b)!==1&&(d-=b),Math.abs(C)!==1&&(g-=C)}return Xt(i.left,i.top,d,g)}var Vu=(function(){return typeof SVGGraphicsElement<"u"?function(t){return t instanceof Qe(t).SVGGraphicsElement}:function(t){return t instanceof Qe(t).SVGElement&&typeof t.getBBox=="function"}})();function Qu(t){return t===Qe(t).document.documentElement}function Ju(t){return Fs?Vu(t)?Yu(t):Xu(t):Jl}function Zu(t){var n=t.x,r=t.y,s=t.width,i=t.height,a=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,c=Object.create(a.prototype);return Ql(c,{x:n,y:r,width:s,height:i,top:r,right:n+s,bottom:i+r,left:n}),c}function Xt(t,n,r,s){return{x:t,y:n,width:r,height:s}}var ed=(function(){function t(n){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=Xt(0,0,0,0),this.target=n}return t.prototype.isActive=function(){var n=Ju(this.target);return this.contentRect_=n,n.width!==this.broadcastWidth||n.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var n=this.contentRect_;return this.broadcastWidth=n.width,this.broadcastHeight=n.height,n},t})(),td=(function(){function t(n,r){var s=Zu(r);Ql(this,{target:n,contentRect:s})}return t})(),rd=(function(){function t(n,r,s){if(this.activeObservations_=[],this.observations_=new Vl,typeof n!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=n,this.controller_=r,this.callbackCtx_=s}return t.prototype.observe=function(n){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(n instanceof Qe(n).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(n)||(r.set(n,new ed(n)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(n){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(n instanceof Qe(n).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(n)&&(r.delete(n),r.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var n=this;this.clearActive(),this.observations_.forEach(function(r){r.isActive()&&n.activeObservations_.push(r)})},t.prototype.broadcastActive=function(){if(this.hasActive()){var n=this.callbackCtx_,r=this.activeObservations_.map(function(s){return new td(s.target,s.broadcastRect())});this.callback_.call(n,r,n),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t})(),Zl=typeof WeakMap<"u"?new WeakMap:new Vl,ec=(function(){function t(n){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=$u.getInstance(),s=new rd(n,r,this);Zl.set(this,s)}return t})();["observe","unobserve","disconnect"].forEach(function(t){ec.prototype[t]=function(){var n;return(n=Zl.get(this))[t].apply(n,arguments)}});var nd=(function(){return typeof Lt.ResizeObserver<"u"?Lt.ResizeObserver:ec})();const sd=Object.freeze(Object.defineProperty({__proto__:null,default:nd},Symbol.toStringTag,{value:"Module"})),ad=mu(sd);var Va;function id(){if(Va)return Dt;Va=1,Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.default=x;var t=a(Ce()),n=i(We()),r=i(ad),s=i(Kt());function i(j){return j&&j.__esModule?j:{default:j}}function a(j,P){if(typeof WeakMap=="function")var _=new WeakMap,p=new WeakMap;return(a=function(o,u){if(!u&&o&&o.__esModule)return o;var l,h,v={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return v;if(l=u?p:_){if(l.has(o))return l.get(o);l.set(o,v)}for(const m in o)m!=="default"&&{}.hasOwnProperty.call(o,m)&&((h=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,m))&&(h.get||h.set)?l(v,m,h):v[m]=o[m]);return v})(j,P)}function c(){return c=Object.assign?Object.assign.bind():function(j){for(var P=1;P<arguments.length;P++){var _=arguments[P];for(var p in _)({}).hasOwnProperty.call(_,p)&&(j[p]=_[p])}return j},c.apply(null,arguments)}function d(j,P,_){return(P=g(P))in j?Object.defineProperty(j,P,{value:_,enumerable:!0,configurable:!0,writable:!0}):j[P]=_,j}function g(j){var P=b(j,"string");return typeof P=="symbol"?P:P+""}function b(j,P){if(typeof j!="object"||!j)return j;var _=j[Symbol.toPrimitive];if(_!==void 0){var p=_.call(j,P);if(typeof p!="object")return p;throw new TypeError("@@toPrimitive must return a primitive value.")}return(P==="string"?String:Number)(j)}const C="react-grid-layout";function x(j){var P;return P=class extends t.Component{constructor(){super(...arguments),d(this,"state",{width:1280}),d(this,"elementRef",t.createRef()),d(this,"mounted",!1),d(this,"resizeObserver",void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new r.default(o=>{if(this.elementRef.current instanceof HTMLElement){const l=o[0].contentRect.width;this.setState({width:l})}});const p=this.elementRef.current;p instanceof HTMLElement&&this.resizeObserver.observe(p)}componentWillUnmount(){this.mounted=!1;const p=this.elementRef.current;p instanceof HTMLElement&&this.resizeObserver.unobserve(p),this.resizeObserver.disconnect()}render(){const{measureBeforeMount:p,...o}=this.props;return p&&!this.mounted?t.createElement("div",{className:(0,s.default)(this.props.className,C),style:this.props.style,ref:this.elementRef}):t.createElement(j,c({innerRef:this.elementRef},o,this.state))}},d(P,"defaultProps",{measureBeforeMount:!1}),d(P,"propTypes",{measureBeforeMount:n.default.bool}),P}return Dt}var Qa;function od(){return Qa||(Qa=1,(function(t){t.exports=Yl().default,t.exports.utils=et(),t.exports.calculateUtils=Qs(),t.exports.Responsive=Iu().default,t.exports.Responsive.utils=Xl(),t.exports.WidthProvider=id().default})(lr)),lr.exports}var ld=od();const cd=Ys(ld),ud=()=>{const t=te(V.ChatSend),[n,r]=D.useState([]),[s,i]=D.useState(""),a=D.useRef(null),c=K.chat.send.useMutation(),d=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},g=te(V.ChatRecent),{data:b}=K.chat.recent.useQuery(void 0,{enabled:g});D.useEffect(()=>{b&&r(b.slice().reverse())},[b]),K.chat.onMessage.useSubscription(void 0,{enabled:g,onError:Je,onData:x=>{r(j=>{const P=[...j,x];return P.length>50?P.slice(P.length-50):P})}}),D.useLayoutEffect(()=>{d()},[n]);const C=x=>{x.preventDefault(),!(s.length>140||s.length===0)&&(c.mutate(s),i(""))};return e.jsxs("div",{className:"chat-widget",children:[e.jsx(we,{className:"messages",ref:a,children:e.jsx("div",{className:"messages-child",children:n.map(x=>e.jsxs("div",{className:"log-entry",children:[x.action==="msg"&&e.jsxs("div",{className:"chat-message",children:[x.user?.web?"[":"",e.jsx(ir,{color:!0,user:x.user}),x.user?.web?"]":"",":"," ",e.jsx(da,{as:"span",children:x.message})]}),x.action==="leave"&&e.jsxs("div",{className:"join-message",children:[e.jsx(ir,{user:x.user})," left the game."]}),x.action==="join"&&e.jsxs("div",{className:"join-message",children:[e.jsx(ir,{user:x.user})," joined the game",x.user?.isFirst?" for the first time":"","."]}),x.action==="server"&&e.jsx(da,{as:"div",className:"server-message",children:x.message})]},x._id))})}),t&&e.jsx("form",{onSubmit:C,children:e.jsxs(Pe,{children:[e.jsx(le,{roboto:!0,type:"text",placeholder:"Message",value:s,onChange:x=>i(x)}),e.jsx(H,{normal:!0,icon:!0,style:{marginLeft:"10px"},onClick:C,children:e.jsx(Fc,{})})]})})]})},dd=()=>{const t=te(V.ServerStatus),n=te(V.PlayerList),[r,s]=D.useState(null),{data:i}=K.server.status.useQuery(void 0,{enabled:t});return D.useEffect(()=>{i&&!r&&s(i)},[i]),K.server.onHeartbeat.useSubscription(void 0,{enabled:t,onError:Je,onData:s}),e.jsxs("div",{className:"status-widget",children:[r?.players&&e.jsx(we,{className:"players",children:e.jsxs("div",{className:"players-child",children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Name:"})," ",r.serverName]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Uptime:"})," ",ve(r.time)]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Bricks:"})," ",r.bricks]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Players:"})," ",r.players.length]})]}),e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},children:"Name"}),e.jsx("th",{children:"Time"}),e.jsx("th",{children:"Ping"})]})}),e.jsx("tbody",{children:r.players.map(a=>e.jsxs("tr",{children:[e.jsx("td",{children:n?e.jsx(mt,{className:"user",to:"/players/"+a.id,children:a.name}):e.jsx("span",{className:"user",children:a.name})}),e.jsx("td",{style:{textAlign:"right"},children:ve(a.time)}),e.jsx("td",{style:{textAlign:"right"},children:a.ping})]},a.address+a.id))})]})]})}),!r?.players&&e.jsx(fe,{blur:!0,size:"huge",children:"Loading Status"})]})},Ja=30;function Et(t){return t<1024?`${t} B`:t<1024**2?`${(t/1024).toFixed(1)} KB`:t<1024**3?`${(t/1024**2).toFixed(1)} MB`:`${(t/1024**3).toFixed(1)} GB`}function Za(t){return t<1024?`${Math.round(t)} B/s`:t<1024**2?`${(t/1024).toFixed(1)} KB/s`:`${(t/1024**2).toFixed(1)} MB/s`}function pr(t){return t.length>=Ja?t:[...new Array(Ja-t.length).fill(t[0]??0),...t]}const mr=({value:t,color:n})=>{const s=Math.PI*2*36,i=Math.max(0,Math.min(100,t));return e.jsxs("svg",{viewBox:"0 0 100 100",className:"donut-svg",children:[e.jsx("circle",{cx:"50",cy:"50",r:36,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:"8"}),e.jsx("circle",{cx:"50",cy:"50",r:36,fill:"none",stroke:n,strokeWidth:"8",strokeDasharray:`${i/100*s} ${s}`,strokeLinecap:"round",transform:"rotate(-90 50 50)",style:{transition:"stroke-dasharray 0.5s ease"}}),e.jsx("text",{x:"50",y:"50",textAnchor:"middle",dominantBaseline:"central",className:"donut-pct",children:Math.round(i)===100?"100":`${Math.round(i)}%`})]})},gr=({data:t,color:n,height:r=32,width:s=120})=>{if(t.length<2)return null;const i=Math.max(...t,1),a=s/(t.length-1),c=t.map((g,b)=>`${b*a},${r-g/i*(r-2)-1}`).join(" "),d=`0,${r} ${c} ${s},${r}`;return e.jsxs("svg",{viewBox:`0 0 ${s} ${r}`,className:"sparkline",preserveAspectRatio:"none",children:[e.jsx("polygon",{points:d,fill:n,fillOpacity:"0.12"}),e.jsx("polyline",{points:c,fill:"none",stroke:n,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})]})},hd=()=>{const[t,n]=D.useState(null),r=D.useRef([]),s=D.useRef([]),i=D.useRef([]),[,a]=D.useState(0),c=D.useCallback(_=>{n(_),r.current=[...r.current.slice(-29),_.cpu],s.current=[...s.current.slice(-29),_.net.rxSec],i.current=[...i.current.slice(-29),_.net.txSec],a(p=>p+1)},[]),d=te(V.ServerUtilization),{data:g}=K.server.utilization.useQuery(void 0,{enabled:d});if(D.useEffect(()=>{if(!g)return;const _=g.history;_.length>0&&(r.current=_.map(p=>p.cpu),s.current=_.map(p=>p.net.rxSec),i.current=_.map(p=>p.net.txSec)),g.current&&!t&&n(g.current),a(p=>p+1)},[g]),K.server.onUtilization.useSubscription(void 0,{enabled:d,onError:Je,onData:c}),!t)return e.jsx("div",{className:"utilization-widget",children:e.jsx(fe,{blur:!0,size:"huge",children:"Waiting for metrics..."})});const b=t.cpu>80?"#e02d2d":t.cpu>50?"#ffa10b":"#5da93d",C=t.mem.used/t.mem.total*100,x=C>80?"#e02d2d":C>50?"#ffa10b":"#009bee",j=t.disk.used/t.disk.total*100,P=j>90?"#e02d2d":j>70?"#ffa10b":"#009bee";return e.jsxs("div",{className:"utilization-widget",children:[e.jsxs("div",{className:"util-donuts",children:[e.jsxs("div",{className:"donut-row",children:[e.jsx(mr,{value:t.cpu,color:b}),e.jsx("div",{className:"donut-detail",children:e.jsx("b",{children:"CPU"})})]}),e.jsxs("div",{className:"donut-row",children:[e.jsx(mr,{value:C,color:x}),e.jsxs("div",{className:"donut-detail",children:[e.jsx("b",{children:"MEMORY"}),e.jsxs("div",{className:"donut-detail-line",children:[e.jsx("span",{children:Et(t.mem.used)}),e.jsxs("span",{className:"donut-detail-sub",children:["/ ",Et(t.mem.total)]})]})]})]}),e.jsxs("div",{className:"donut-row",children:[e.jsx(mr,{value:j,color:P}),e.jsxs("div",{className:"donut-detail",children:[e.jsx("b",{children:"STORAGE"}),e.jsxs("div",{className:"donut-detail-line",children:[e.jsx("span",{children:Et(t.disk.used)}),e.jsxs("span",{className:"donut-detail-sub",children:["/ ",Et(t.disk.total)]})]})]})]})]}),e.jsxs("div",{className:"util-sparklines",children:[e.jsxs("div",{className:"spark-row",children:[e.jsxs("span",{className:"spark-label",children:[e.jsx(Bc,{size:14}),"CPU"]}),e.jsx(gr,{data:pr(r.current),color:b}),e.jsxs("span",{className:"spark-value",children:[t.cpu,"%"]})]}),e.jsxs("div",{className:"spark-row",children:[e.jsxs("span",{className:"spark-label",children:[e.jsx(Gc,{size:14}),"RX"]}),e.jsx(gr,{data:pr(s.current),color:"#009bee"}),e.jsx("span",{className:"spark-value",children:Za(t.net.rxSec)})]}),e.jsxs("div",{className:"spark-row",children:[e.jsxs("span",{className:"spark-label",children:[e.jsx($c,{size:14}),"TX"]}),e.jsx(gr,{data:pr(i.current),color:"#5da93d"}),e.jsx("span",{className:"spark-value",children:Za(t.net.txSec)})]})]})]})},fd={chat:{component:ud,icon:Yc,tooltip:"Chat with online players",scope:V.ChatRecent},status:{component:dd,icon:fu,tooltip:"View current online players and server status",scope:V.ServerStatus},utilization:{component:hd,icon:Kc,tooltip:"View CPU, memory, disk, and network usage",scope:V.ServerUtilization}},ei=[{x:0,y:0,w:4,h:4,i:"chat"},{x:4,y:0,w:4,h:4,i:"status"}],pd={minW:2,maxW:10,minH:2,maxH:10},md=[8,8],gd=()=>{const t=te(V.ChatRecent),n=te(V.ServerStatus),r=te(V.ServerUtilization),s=D.useMemo(()=>{const l={};return t&&(l.chat=!0),n&&(l.status=!0),r&&(l.utilization=!0),l},[t,n,r]),i=t||n||r,a=D.useMemo(()=>{const l={};for(const[h,v]of Object.entries(fd))s[h]&&(l[h]=v);return l},[s]),[c,d]=D.useState(()=>{if(localStorage.omeggaDashLayout2)try{return JSON.parse(localStorage.omeggaDashLayout2)}catch(l){return console.error("Invalid layout in localStorage, using default layout",l),ei}return ei}),g=D.useMemo(()=>c.filter(l=>s[l.i]),[c,s]);D.useEffect(()=>{localStorage.omeggaDashLayout2=JSON.stringify(c)},[c]);const b=l=>{d(c.filter(h=>h.i!==l))},C=l=>{l in a&&d([...c,{x:0,y:0,w:4,h:4,i:l}])},[x,j]=D.useState(!1),P=Object.fromEntries(c.map(l=>[l.i,!0])),_=D.useCallback(l=>{d(l)},[]),p=D.useRef(null),[o,u]=D.useState(null);return D.useEffect(()=>{p.current&&u(p.current.clientWidth);const l=new ResizeObserver(h=>{for(const v of h)v.target===p.current&&u(v.contentRect.width)});return p.current&&l.observe(p.current),()=>{l.disconnect()}},[p.current]),e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Dashboard",children:i&&e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,"data-tooltip":"Add more widgets to the dashboard",onClick:()=>j(!x),children:[e.jsx(Xc,{}),"Widgets"]}),e.jsx("div",{className:"widgets-list",style:{display:x?"block":"none"},children:Object.entries(a).map(([l,h])=>e.jsxs("div",{className:"widget-item",children:[e.jsxs("div",{className:"name","data-tooltip":h.tooltip,children:[e.jsx(h.icon,{}),l]}),P[l]?e.jsx(H,{warn:!0,icon:!0,"data-tooltip":`Remove ${l} widget`,onClick:()=>b(l),children:e.jsx(zl,{})}):e.jsx(H,{main:!0,icon:!0,"data-tooltip":`Add ${l} widget`,onClick:()=>C(l),children:e.jsx(vt,{})})]},l))})]})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"grid-container",ref:p,children:[!i&&e.jsx("div",{className:"no-permissions-message",children:"Contact your admin for support"}),i&&o!==null&&e.jsx(cd,{layout:g.map(l=>({...l,...pd})),width:o,cols:10,autoSize:!0,useCSSTransforms:!0,rowHeight:100,isBounded:!0,isResizable:!0,isDraggable:!0,margin:md,onLayoutChange:_,draggableHandle:".drag-handle",draggableCancel:".no-drag",resizeHandles:["se"],resizeHandle:e.jsx(Vc,{style:{cursor:"se-resize"},className:"resize-handle"}),children:g.map(l=>{const h=a[l.i]?.component;return h?e.jsxs("div",{className:"grid-item",children:[e.jsxs(wt,{className:"drag-handle",children:[e.jsx("span",{style:{flex:1},children:l.i}),e.jsx(H,{icon:!0,error:!0,className:"no-drag","data-tooltip":"Close widget",onClick:()=>b(l.i),children:e.jsx(Oe,{})})]}),e.jsx("div",{className:"drag-contents",children:e.jsx(h,{})})]},l.i):null})})]})]})]})},ti={"Minute(s)":1,"Hour(s)":60,"Day(s)":1440,"Week(s)":1440*7,"Month(s)":1440*30},vd=["Permanent","Minute(s)","Hour(s)","Day(s)","Week(s)","Month(s)"],yd=()=>{const[t,n]=ke("/players/:id"),[r,s]=xt(),[i,a]=D.useState(null),[c,d]=D.useState(!1),[g,b]=D.useState(""),[C,x]=D.useState(10),[j,P]=D.useState("Permanent"),[_,p]=D.useState(!1),o=te(V.PlayerGet),u=te(V.PlayerBan),l=te(V.PlayerKick),h=te(V.PlayerUnban),v=te(V.PlayerClearBricks),{data:m,isLoading:y,refetch:f}=K.player.get.useQuery(n?.id??"",{enabled:!!n?.id&&o});D.useEffect(()=>{!y&&!m&&n?.id&&s("/players")},[y,m,n?.id]);const S=K.player.ban.useMutation(),N=K.player.kick.useMutation(),M=K.player.unban.useMutation(),E=K.player.clearBricks.useMutation(),T=async()=>{if(!m.id)return;p(!0);const L=j==="Permanent"?-1:C*ti[j];try{await S.mutateAsync({id:m.id,duration:L,reason:g})}catch($){console.error("Failed to ban player:",$)}a(null),f(),p(!1)},A=async()=>{if(m.id){p(!0);try{await N.mutateAsync({id:m.id,reason:g})}catch(L){console.error("Failed to kick player:",L)}a(null),f(),p(!1)}},q=async()=>{if(m.id){p(!0);try{await M.mutateAsync({id:m.id})}catch(L){console.error("Failed to unban player:",L)}f(),p(!1)}},z=async()=>{if(m.id){p(!0);try{await E.mutateAsync({id:m.id})}catch(L){console.error("Failed to clear bricks:",L)}p(!1),a(null)}},W=D.useMemo(()=>j==="Permanent"?"Never":Dc(Date.now()+ti[j]*60*1e3*C),[j,C]);return e.jsxs("div",{className:"player-inspector-container",children:[e.jsxs(xe,{attached:!0,children:[m?.name||"SELECT A PLAYER",e.jsx("span",{style:{flex:1}}),m&&e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>d(!c),children:[c?e.jsx(St,{}):e.jsx(_t,{}),"User Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:c?"block":"none"},children:[v&&e.jsxs(H,{boxy:!0,warn:!0,disabled:_,onClick:()=>{a("clear"),d(!1)},children:[e.jsx(ga,{}),"Clear Bricks"]}),l&&!m.isHost&&m.isOnline&&e.jsxs(H,{boxy:!0,error:!0,disabled:_,onClick:()=>{a("kick"),d(!1)},children:[e.jsx(xa,{}),"Kick"]}),h&&m.currentBan&&e.jsxs(H,{boxy:!0,warn:!0,disabled:_,onClick:()=>{q(),d(!1)},children:[e.jsx(Qc,{}),"Unban"]}),u&&!m.isHost&&e.jsxs(H,{boxy:!0,error:!0,disabled:_,onClick:()=>{a("ban"),d(!1)},children:[e.jsx(Ve,{}),"Ban"]})]})]})]}),e.jsx("div",{className:"player-inspector",children:e.jsxs("div",{className:"player-view",children:[e.jsx(fe,{active:y,size:"huge",children:"Loading Player"}),e.jsx("div",{className:"player-info",children:!y&&m&&e.jsxs(we,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Profile:"})," ",e.jsx("a",{href:"https://brickadia.com/users/"+m.id,target:"_blank",children:m.name})]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Display Name:"})," ",m.displayName??"unknown"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Host:"})," ",m.isHost?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Banned:"})," ",m.currentBan&&m.currentBan.duration<=0?e.jsx("span",{children:"Permanent"}):m.currentBan?e.jsxs("span",{children:[ve(m.currentBan.remainingTime)," of"," ",ve(m.currentBan.duration)," remaining"]}):e.jsx("span",{children:"No"})]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of status heartbeats this player has been part of",children:"Time Played:"})," ",Dl(m.heartbeats)]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Date player was last seen",children:"Last Seen:"})," ",e.jsxs("span",{"data-tooltip":new Date(m.lastSeen),children:[ve(m.seenAgo)," ago"]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Date player was first seen",children:"First Seen:"})," ",e.jsxs("span",{"data-tooltip":new Date(m.created),children:[ve(m.createdAgo)," ago"]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of times this player has visited the server (new visits are registered if the player joins 3 hours after last seen)",children:"Visits:"})," ",m.sessions]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of server instances this player has joined",children:"Server Visits:"})," ",m.instances]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Bans:"})," ",m.banHistory.length]})]}),e.jsx("div",{className:"section-header","data-tooltip":"Roles this player has",children:"Roles"}),e.jsxs("div",{className:"option-list",children:[m.roles.map(L=>e.jsx("div",{className:"option-item",children:e.jsx("div",{className:"option-name",style:{color:"#"+L.color},children:L.name})},L.name)),e.jsx("div",{className:"option-item",children:e.jsx("div",{className:"option-name",style:{color:"white"},children:"Default"})})]}),e.jsx("div",{className:"section-header","data-tooltip":"Names this player has gone by historically",children:"Name History"}),e.jsxs("table",{className:"br-table name-history",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},children:e.jsx("span",{children:"Name"})}),e.jsx("th",{children:"First Seen"})]})}),e.jsx("tbody",{children:m.nameHistory.map(L=>e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("div",{"data-tooltip":L.displayName?"Display Name":"Username",children:L.displayName??L.name}),L.displayName&&e.jsx("div",{"data-tooltip":"Username",className:"username",children:L.name})]}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(L.date),children:ve(L.ago)})]},L.date+L.name))})]}),e.jsx("div",{className:"section-header","data-tooltip":"Times this player has been banned from the server",children:"Ban History"}),e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{width:"100%",textAlign:"left"},children:"Reason"}),e.jsx("th",{children:"Length"}),e.jsx("th",{children:"Issuer"}),e.jsx("th",{children:"Date"})]})}),e.jsxs("tbody",{children:[m.banHistory.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:e.jsx("i",{children:"None"})})}),m.banHistory.map(L=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:L.reason}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":"Expires "+new Date(L.expires),children:0>=(L.duration??-1)?"Permanent":ve(L.duration)}),e.jsx("td",{children:e.jsx(mt,{to:"/players/"+L.bannerId,children:L.bannerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(L.created),children:fa(L.created)})]},L.created))]})]}),e.jsx("div",{className:"section-header","data-tooltip":"Times this player has been booted from the server",children:"Kick History"}),e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{width:"100%",textAlign:"left"},children:"Reason"}),e.jsx("th",{children:"Issuer"}),e.jsx("th",{children:"Date"})]})}),e.jsxs("tbody",{children:[m.kickHistory.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:e.jsx("i",{children:"None"})})}),m.kickHistory.map(L=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:L.reason}),e.jsx("td",{children:e.jsx(mt,{to:"/players/"+L.kickerId,children:L.kickerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(L.created),children:fa(L.created)})]},L.created))]})]})]})})]})}),e.jsxs(jt,{visible:!!i,children:[e.jsx(fe,{active:_,size:"huge",children:"Running Action..."}),e.jsxs(Bt,{visible:!_,children:[e.jsx(wt,{children:i==="ban"?"Ban Player":i==="kick"?"Kick Player":"Clear Bricks"}),(i==="kick"||i==="ban")&&e.jsxs("div",{className:`popout-inputs ${i}`,children:[e.jsx(le,{type:"text",placeholder:"Reason",value:g,onChange:b}),i==="ban"&&e.jsxs("div",{className:"ban-duration",style:{display:"flex"},children:[j!=="Permanent"&&e.jsx(le,{placeholder:"Duration",type:"number",value:C,onChange:x}),e.jsx(Bs,{options:vd,value:j,onChange:L=>P(L)})]})]}),i==="ban"&&e.jsxs(gt,{children:["This ban will expire"," ",e.jsx("span",{style:{color:"white"},children:W}),"."]}),i==="clear"&&e.jsx(gt,{children:e.jsxs("p",{style:{padding:20},children:["Are you sure you want to clear"," ",e.jsx("span",{style:{color:"white"},children:m?.name??"??"}),"'s bricks?"]})}),e.jsxs(Pe,{attached:!0,children:[i==="ban"&&e.jsxs(H,{error:!0,onClick:T,children:[e.jsx(Ve,{}),"Ban"]}),i==="clear"&&e.jsxs(H,{warn:!0,onClick:z,children:[e.jsx(ga,{}),"Clear Bricks"]}),i==="kick"&&e.jsxs(H,{error:!0,onClick:A,children:[e.jsx(xa,{}),"Kick"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(H,{normal:!0,onClick:()=>a(null),children:[e.jsx(Oe,{}),"Cancel"]})]})]})]})]})},xd=()=>{const t=Ze(V.PlayerList);te(V.PlayerGet);const[n,r]=D.useState(!1),[s,i]=xt(),[a,c]=ke("/players/:id?"),d=D.useRef({page:0,search:"",sort:"lastSeen",direction:-1,filterBanned:!1}),{page:g,search:b,sort:C,direction:x,filterBanned:j}=d.current,[P,_]=D.useState({page:d.current.page,search:d.current.search,sort:d.current.sort,direction:d.current.direction,filter:""}),p=()=>{_({page:d.current.page,search:d.current.search,sort:d.current.sort,direction:d.current.direction,filter:d.current.filterBanned?"banned":""})},[o,u]=D.useState(0),l=q=>{d.current.search=q,T(),u(z=>z+1)},h=q=>{typeof q=="function"&&(q=q(d.current.page)),d.current.page=q,p()},v=q=>{typeof q=="function"&&(q=q(d.current.direction)),d.current.direction=q},m=q=>{d.current.filterBanned=q,T()},{data:y,isLoading:f,refetch:S}=K.player.list.useQuery(P,{placeholderData:q=>q}),N=y?.players??[],M=y?.total??0,E=y?.pages??0,T=D.useMemo(()=>El(()=>{d.current.page=0,p()},500),[]),A=q=>{q==C?v(z=>z*-1):(d.current.sort=q,v(q==="name"?1:-1)),p()};return t?e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Players",className:"players-view",children:e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,"data-tooltip":"Player list filters",onClick:()=>r(q=>!q),children:[e.jsx(Jc,{}),"Filters"]}),e.jsx("div",{className:"widgets-list",style:{display:n?"block":"none"},children:e.jsxs("div",{className:"widget-item","data-tooltip":"Filter by banned players",children:[e.jsxs("div",{className:"name",children:[e.jsx(Ve,{}),"Banned"]}),e.jsx(_e,{onChange:m,value:j})]})})]})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"generic-container players-container",children:[e.jsxs("div",{className:"player-table-container",children:[e.jsxs(xe,{attached:!0,children:[e.jsx(le,{type:"text",placeholder:"Search Players...",value:b,onChange:l}),e.jsx("span",{style:{flex:1}}),e.jsx(H,{icon:!0,normal:!0,"data-tooltip":"Refresh player list",onClick:()=>S(),children:e.jsx($t,{})})]}),e.jsxs("div",{className:"players-list",children:[e.jsx(we,{children:e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},onClick:()=>A("name"),children:e.jsxs("span",{children:["Name",e.jsx(ye,{name:"name",sort:C,direction:x})]})}),e.jsx("th",{onClick:()=>A("heartbeats"),"data-tooltip":"Number of heartbeats the player has been part of (minutely)",children:e.jsxs("span",{children:["Played",e.jsx(ye,{name:"heartbeats",sort:C,direction:x})]})}),e.jsx("th",{onClick:()=>A("lastSeen"),"data-tooltip":"When the player was last seen",children:e.jsxs("span",{children:["Seen",e.jsx(ye,{name:"lastSeen",sort:C,direction:x})]})}),e.jsx("th",{onClick:()=>A("created"),"data-tooltip":"When the player joined",children:e.jsxs("span",{children:["Joined",e.jsx(ye,{name:"created",sort:C,direction:x})]})}),e.jsx("th",{onClick:()=>A("sessions"),"data-tooltip":"Number of Visits",children:e.jsxs("span",{className:"icon-cell",children:[e.jsx(Zc,{className:"label",size:"30"}),e.jsx(ye,{name:"sessions",sort:C,direction:x})]})})]})}),e.jsx("tbody",{children:N.map(q=>e.jsxs("tr",{onClick:()=>i(`/players/${q.id}`),className:q.id===c?.id?"active":"",children:[e.jsx("td",{className:`player-name ${q.ban?"ban":""}`,children:e.jsxs("div",{className:"player-name-container",children:[e.jsxs("div",{children:[e.jsx("div",{"data-tooltip":q.displayName?"Display Name":"Username",children:q.displayName??q.name}),q.displayName&&e.jsx("div",{className:"username","data-tooltip":"Username",children:q.name})]}),q.ban&&e.jsx(Ve,{size:"18"})]})}),e.jsx("td",{style:{textAlign:"right"},children:Dl(q.heartbeats)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(q.lastSeen),children:ve(q.seenAgo)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(q.created),children:ve(q.createdAgo)}),e.jsx("td",{style:{textAlign:"right"},children:q.sessions})]},q.id))})]})}),e.jsxs(Pe,{className:"pagination-footer",children:[e.jsx(H,{icon:!0,normal:!0,disabled:g===0,onClick:()=>{h(0)},children:e.jsx(ql,{})}),e.jsx(H,{icon:!0,normal:!0,disabled:g===0,onClick:()=>h(q=>Math.max(0,q-1)),children:e.jsx(qt,{})}),e.jsxs("div",{className:"current-page",children:[e.jsxs("div",{children:["Page ",g+1," of ",E]}),e.jsxs("div",{children:["Showing ",N.length," of ",M]})]}),e.jsx(H,{icon:!0,normal:!0,disabled:g>=E-1,onClick:()=>h(q=>Math.min(N.length-1,q+1)),children:e.jsx(Ot,{})}),e.jsx(H,{icon:!0,normal:!0,disabled:g>=E-1,onClick:()=>h(N.length-1),children:e.jsx(Ml,{})})]}),e.jsx(fe,{active:f,size:"huge",children:"Loading Players"})]})]}),e.jsxs(Gs,{children:[e.jsx(ge,{path:"/players/:id",component:yd}),e.jsx(ge,{children:e.jsxs("div",{className:"player-inspector-container",children:[e.jsx(xe,{attached:!0,children:"SELECT A PLAYER"}),e.jsx("div",{className:"player-inspector"})]})})]})]})]})]}):null},bd=(t,n)=>{try{return JSON.stringify(t)===JSON.stringify(n)}catch{return!1}},jd=()=>{const[t,n]=ke("/plugins/:id"),[r,s]=D.useState(null),[i,a]=D.useState({}),[c,d]=D.useState(!!r?.path),[g,b]=D.useState(!1),[C,x]=D.useState({}),j=te(V.PluginGet),P=te(V.PluginLoad),_=te(V.PluginUnload),p=te(V.PluginToggle),o=te(V.PluginConfig),u=K.plugin.get.useQuery({shortPath:n?.id??""},{enabled:!!n?.id&&j});D.useEffect(()=>{u.data?(s(u.data),a(u.data.config),d(!1)):u.isError&&d(!1)},[u.data,u.isError]);const l=K.plugin.load.useMutation(),h=K.plugin.unload.useMutation(),v=K.plugin.toggle.useMutation(),m=K.plugin.config.useMutation(),y=async()=>{n?.id&&(b(!0),await l.mutateAsync({shortPath:n.id}),await u.refetch(),b(!1))},f=async()=>{n?.id&&(b(!0),await h.mutateAsync({shortPath:n.id}),await u.refetch(),b(!1))},S=async()=>{if(!n?.id)return;b(!0),await h.mutateAsync({shortPath:n.id})&&await l.mutateAsync({shortPath:n.id}),await u.refetch(),b(!1)},N=async q=>{n?.id&&(b(!0),await v.mutateAsync({shortPath:n.id,enabled:q}),await u.refetch(),b(!1))},M=D.useRef(i);M.current=i;const E=D.useRef(r);E.current=r,K.plugin.onStatus.useSubscription(void 0,{enabled:j,onError:Je,onData(q){q.shortPath===E.current?.path&&s(z=>({...z,...q}))}});const T=D.useMemo(()=>El(async()=>{if(!n?.id||!E.current)return;const q={},z=M.current,W=E.current.path;for(const L in E.current?.config??{})E.current?.config[L]!=z[L]&&(q[L]=!0),await m.mutateAsync({shortPath:n?.id,config:z})&&(x(q),setTimeout(()=>{x({}),s(ee=>ee?.path===W?{...ee,config:z}:ee)}))},500),[n?.id]),A=(q,z)=>{!r||!i||(a(W=>({...W,[q]:z})),T())};return e.jsxs("div",{className:"plugin-view",children:[e.jsx(fe,{active:c,size:"huge",children:"Loading Plugin"}),e.jsx("div",{className:"plugin-info",children:!c&&r&&e.jsxs(we,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin name",children:"Name:"})," ",r.name]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin creator",children:"Author:"})," ",r.documentation?.author??"unknown"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Description:"})," ",r.documentation?.description??"none"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"The folder this plugin runs in",children:"Folder:"})," ",r.path]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"The type of plugin this is",children:"Format:"})," ",r.format]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of objects in the plugin's storage",children:"Stored Objects:"})," ",r.objCount]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin can be started",children:"Enabled:"})," ",r.isEnabled?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin is running",children:"Loaded:"})," ",r.isLoaded?"Yes":"No"]})]}),e.jsx("div",{className:"section-header","data-tooltip":"Ways to configure the plugin. Changes take place the next time a plugin is loaded.",children:"Configs"}),e.jsxs("div",{className:"option-list",children:[Object.keys(r.documentation.config??{}).length===0&&e.jsx("div",{className:"option-item",children:e.jsx("i",{className:"option-name",children:"None"})}),Object.entries(r.documentation.config??{}).map(([q,z])=>e.jsx("div",{className:"option-item config",children:e.jsxs("div",{className:"option-input",children:[e.jsxs("div",{className:"option-label","data-tooltip":z.description,children:[q,e.jsxs("span",{className:`saved-note ${C[q]?"show":""}`,children:["SAVED ",e.jsx(At,{size:"20"})]})]}),e.jsxs("div",{className:"option-value",children:[["string","password","number"].includes(z.type)&&e.jsx(le,{type:z.type==="string"?"text":z.type,disabled:!o,value:i[q],onChange:W=>A(q,W)}),z.type==="list"&&e.jsx(wc,{options:"options"in z?z.options:void 0,type:z.itemType,disabled:!o,value:i[q],onChange:W=>A(q,W)}),z.type==="players"&&e.jsx(_c,{disabled:!o,value:i[q],onChange:W=>A(q,W)}),z.type==="role"&&e.jsx(Sc,{disabled:!o,value:i[q],onChange:W=>A(q,W)}),z.type==="enum"&&e.jsx(Bs,{options:z.options,disabled:!o,value:i[q],onChange:W=>A(q,W)}),z.type==="boolean"&&e.jsx(_e,{disabled:!o,value:i[q],onChange:W=>A(q,W)}),o&&!bd(z.default,i[q])&&e.jsx(eu,{onClick:()=>A(q,z.default),className:"reset-button","data-tooltip":"Reset to default value"})]})]})},q))]}),e.jsx("div",{className:"section-header","data-tooltip":"Ways to control the plugin",children:"Commands"}),e.jsxs("div",{className:"option-list",children:[(r.documentation.commands??[]).length===0&&e.jsx("div",{className:"option-item",children:e.jsx("i",{className:"option-name",children:"None"})}),(r.documentation.commands||[]).map(q=>e.jsxs("div",{className:"option-item",children:[e.jsx("div",{className:"option-name","data-tooltip":q.description,children:q.name}),e.jsx("div",{className:"option-args",children:(q.args||[]).map(z=>e.jsx("div",{className:`option-arg ${z.required?"required":""}`,"data-tooltip":(z.required?"(required) ":"")+z.description,children:z.name},z.name))})]},q.name))]})]})}),e.jsxs(Pe,{attached:!0,children:[P&&r?.isEnabled&&!r.isLoaded&&e.jsxs(H,{main:!0,disabled:g,"data-tooltip":"Start the plugin",onClick:()=>y(),children:[e.jsx(Mt,{}),"Load"]}),P&&_&&r?.isEnabled&&r.isLoaded&&e.jsxs(H,{warn:!0,"data-tooltip":"Stop, then start the plugin",disabled:g,onClick:()=>S(),children:[e.jsx(Al,{}),"Reload"]}),e.jsx("span",{style:{flex:1}}),_&&r?.isEnabled&&r.isLoaded&&e.jsxs(H,{error:!0,disabled:g,"data-tooltip":"Stop the plugin",onClick:()=>f(),children:[e.jsx(kl,{}),"Unload"]}),p&&r&&!r?.isEnabled&&e.jsxs(H,{main:!0,"data-tooltip":"Allow the plugin to be started",disabled:g,onClick:()=>N(!0),children:[e.jsx(vt,{}),"Enable"]}),p&&r?.isEnabled&&!r.isLoaded&&e.jsxs(H,{error:!0,"data-tooltip":"Prevent the plugin from being started",disabled:g,onClick:()=>N(!1),children:[e.jsx(zl,{}),"Disable"]})]})]})},ri=t=>{const n=(t.isLoaded?2:0)+(t.isEnabled?1:0),r=["disabled","broken","bugged","running"][n],s=["Plugin is disabled","Plugin is enabled but not running","Plugin is running but not enabled","Plugin is running"][n],i=[ru,nu,su,au][n];return{...t,state:n,status:r,tooltip:s,icon:i}},wd=()=>{const t=Ze(V.PluginList);te(V.PluginGet);const[n,r]=D.useState(""),[s,i]=D.useState(!1),[a,c]=D.useState([]),d=te(V.PluginReloadAll),[g,b]=ke("/plugins/:id?"),C=D.useMemo(()=>a.find(u=>u.path===b?.id)?.name??"SELECT A PLUGIN",[a,b?.id]),x=K.plugin.list.useQuery();D.useEffect(()=>{x.data&&c(x.data.map(ri))},[x.data]);const j=x.isLoading,P=K.plugin.reloadAll.useMutation(),_=()=>{x.refetch()},p=async()=>{i(!0),await P.mutateAsync(),i(!1),_()},o=u=>u.name.toLowerCase().includes(n.toLowerCase());return K.plugin.onStatus.useSubscription(void 0,{enabled:t,onError:Je,onData(u){const l=ri(u);c(h=>h.map(v=>v.path===u.shortPath?{...v,...l}:v))}}),t?e.jsxs(e.Fragment,{children:[e.jsxs(qe,{title:"Plugins",children:[e.jsx("span",{style:{flex:1}}),d&&e.jsxs(H,{warn:!0,disabled:s,onClick:p,"data-tooltip":"Reload all plugins, this may clear current plugin progress",children:[e.jsx(tu,{}),"Reload Plugins"]})]}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"generic-container plugins-container",children:[e.jsxs("div",{className:"plugins-list-container",children:[e.jsxs(xe,{children:[e.jsx(le,{type:"text",placeholder:"Search Plugins...",value:n,onChange:u=>r(u)}),e.jsx("span",{style:{flex:1}}),e.jsx(H,{icon:!0,normal:!0,"data-tooltip":"Refresh plugin list",onClick:_,children:e.jsx($t,{})})]}),e.jsxs("div",{className:"plugins-list",children:[e.jsx(we,{children:a.map(u=>o(u)&&e.jsxs(mt,{href:"/plugins/"+u.path,"data-tooltip":u.documentation?.description,className:`plugin-item ${b?.id===u.path?"selected":""}`,children:[e.jsx(u.icon,{className:u.status,"data-tooltip":u.tooltip}),u.name]},u.path))}),e.jsx(fe,{active:j,size:"huge",children:"Loading Plugins"})]})]}),e.jsxs("div",{className:"plugin-inspector-container",children:[e.jsx(xe,{attached:!0,children:C}),e.jsx("div",{className:"plugin-inspector",children:e.jsx(jd,{})})]})]})]})]}):null},je=bt({starting:!1,started:!1,stopping:!1,loading:!0}),tc=()=>{const t=te(V.ServerStatus),{data:n}=K.server.started.useQuery(void 0,{enabled:t});return D.useEffect(()=>{n&&je.set({started:n.started,starting:n.starting,stopping:n.stopping,loading:!1})},[n]),K.server.onStatus.useSubscription(void 0,{enabled:t,onError:Je,onData(r){je.set({started:r.started,starting:r.starting,stopping:r.stopping,loading:!1})}}),be(je)},_d=()=>{je.set({...je.get(),loading:!0}),yt.server.start.mutate()},Sd=()=>{je.set({...je.get(),loading:!0}),yt.server.stop.mutate()},Cd=()=>{je.set({...je.get(),loading:!0}),yt.server.restart.mutate()},Rd=()=>{je.set({...je.get(),loading:!0}),yt.server.update.run.mutate()};function Pd(t){const n=Math.floor((Date.now()-t)/1e3);if(n<60)return"just now";const r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}const Nd=()=>{const t=Ze(V.ServerStatus),{started:n,stopping:r,starting:s,loading:i}=tc(),a=Be(),c=te(V.ServerStart),d=te(V.ServerStop),g=te(V.ServerRestart),b=te(V.ServerUpdateRun),C=te(V.ServerAutorestartGet),x=te(V.ServerUpdateCheck),j=te(V.ServerAutorestartSet),P=te(V.WorldSave),[_,p]=D.useState(null),o=be(Ks),[u,l]=D.useState(o?.update?.lastCheck??null);D.useEffect(()=>{l(o?.update?.lastCheck??null)},[o?.update?.lastCheck]);const[h,v]=D.useState(!1),[m,y]=D.useState(null),[f,S]=D.useState(!1),{data:N}=K.server.autoRestart.get.useQuery(void 0,{enabled:C});D.useEffect(()=>{N&&p(N)},[N]);const M=o?.update?.canCheck??!1,E=K.server.update.check.useQuery(void 0,{enabled:!1}),T=D.useCallback(()=>{!M||!x||(v(!0),E.refetch().then(({data:ee})=>{l(ee??null),y(Date.now()),v(!1)}))},[M,x,E]),A=K.server.autoRestart.set.useMutation(),q=D.useCallback(async()=>{if(!_)return;const ee={type:"autoRestartConfig",maxUptime:Math.round(Math.max(1,Math.min(_.maxUptime,168))),maxUptimeEnabled:_.maxUptimeEnabled,emptyUptime:Math.round(Math.max(1,Math.min(_.emptyUptime,168))),emptyUptimeEnabled:_.emptyUptimeEnabled,dailyHour:Math.round(Math.max(0,Math.min(_.dailyHour,23))),dailyHourEnabled:_.dailyHourEnabled,announcementEnabled:_.announcementEnabled,playersEnabled:_.playersEnabled,saveWorld:_.saveWorld,autoUpdateEnabled:_.autoUpdateEnabled??!0,autoUpdateIntervalMins:Math.round(Math.max(10,Math.min(_.autoUpdateIntervalMins??60,1/0))),crashRestartEnabled:_.crashRestartEnabled??!0};A.mutate(ee)},[_,A]),z=K.world.save.useMutation(),W=async()=>{S(!0),await z.mutateAsync({}),S(!1)},L=gu(q),$=ee=>J=>{_&&(p(oe=>({...oe,[ee]:J})),L.fire())};return t?e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Server",children:M&&x&&e.jsx(H,{main:!!u,normal:!u,"data-tooltip":"Check for updates",disabled:h,onClick:T,children:h?e.jsxs(e.Fragment,{children:[e.jsx(iu,{className:"spinning"}),"Checking..."]}):u===!0?e.jsxs(e.Fragment,{children:[e.jsx(ou,{}),"Update Available"]}):e.jsxs(e.Fragment,{children:[e.jsx(lu,{}),"Check for Update"]})})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"generic-container server-container",children:[e.jsxs(xe,{className:"server-status",children:["Server Status:"," ",s?"starting":r?"stopping":n?"started":"stopped",M&&x&&u!==null&&e.jsx("span",{style:{marginLeft:8,fontSize:"0.75em",opacity:.7},children:u?"Update available":`Up to date${m?` (checked ${Pd(m)})`:""}`})]}),e.jsxs("div",{className:"buttons",children:[c&&e.jsxs(H,{main:!0,"data-tooltip":"Start the server",disabled:s||r||i||n,onClick:()=>a.prompt("start the server").then(ee=>ee&&_d()),children:[e.jsx(Mt,{}),"Start"]}),d&&e.jsxs(H,{error:!0,"data-tooltip":"Stop the server",disabled:s||r||i||!n,onClick:()=>a.prompt("stop the server").then(ee=>ee&&Sd()),children:[e.jsx(kl,{}),"Stop"]}),g&&e.jsxs(H,{warn:!0,"data-tooltip":"Reloads the server's world. Saves minigames/environment/bricks if 'Save World' is enabled below.",disabled:s||r||i,onClick:()=>a.prompt("restart the server").then(ee=>ee&&Cd()),children:[e.jsx(Al,{}),"Restart"]}),P&&e.jsxs(H,{info:!0,"data-tooltip":"Save the current world.",disabled:s||r||i||f,onClick:W,children:[e.jsx(Gt,{}),"Save World"]}),b&&o?.isSteam&&e.jsxs(H,{normal:!u,main:u===!0,"data-tooltip":`Stop and update the server even if there are no updates available.
|
|
5
|
+
|
|
6
|
+
Does not save the world or player locations.`,disabled:s||r||i,onClick:()=>a.prompt("update the server").then(ee=>ee&&Rd()),children:[e.jsx(cu,{}),"Update"]})]}),C&&e.jsxs(xe,{attached:!0,style:{marginTop:8},children:["Auto Restart",e.jsx(vu,{show:L.status===yu.Waiting})]}),C&&_&&e.jsxs("div",{className:"inputs-list",children:[e.jsxs("div",{className:"inputs-item","data-tooltip":"When enabled, automatically restarts the server if the game engine crashes",children:[e.jsx("label",{children:"Restart on Crash"}),e.jsx("div",{className:"inputs",children:e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.crashRestartEnabled??!0,onChange:$("crashRestartEnabled")})})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"When enabled on servers setup with SteamCMD, automatically updates the server when a new version is available",children:[e.jsxs("label",{children:["Auto Update",M?"":" (SteamCMD Only)"]}),e.jsxs("div",{className:"inputs",children:[e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.autoUpdateEnabled,onChange:$("autoUpdateEnabled")}),e.jsx(le,{disabled:!j,type:"number",placeholder:"Minutes",tooltip:"Interval in minutes to check for updates (min 10)",value:_.autoUpdateIntervalMins,onChange:$("autoUpdateIntervalMins")})]})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"How many hours before restarting regardless of online players",children:[e.jsx("label",{children:"Max Server Uptime (Hours)"}),e.jsxs("div",{className:"inputs",children:[e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.maxUptimeEnabled,onChange:$("maxUptimeEnabled")}),e.jsx(le,{disabled:!j,type:"number",placeholder:"Hours",tooltip:"Uptime Hours",value:_.maxUptime,onChange:$("maxUptime")})]})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"How many hours before restarting when no players are online",children:[e.jsx("label",{children:"Empty Server Lifetime (Hours)"}),e.jsxs("div",{className:"inputs",children:[e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.emptyUptimeEnabled,onChange:$("emptyUptimeEnabled")}),e.jsx(le,{disabled:!j,type:"number",placeholder:"Hours",tooltip:"Uptime Hours",value:_.emptyUptime,onChange:$("emptyUptime")})]})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"Restart every day at a certain hour",children:[e.jsx("label",{children:"Daily at a Specific Hour"}),e.jsxs("div",{className:"inputs",children:[e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.dailyHourEnabled,onChange:$("dailyHourEnabled")}),e.jsx(le,{disabled:!j,type:"number",placeholder:"Hour",tooltip:"Hour (0 = 12am, 13 = 1pm)",value:_.dailyHour,onChange:$("dailyHour")})]})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"When enabled, announces auto restart",children:[e.jsx("label",{children:"Restart Announcement"}),e.jsx("div",{className:"inputs",children:e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.announcementEnabled,onChange:$("announcementEnabled")})})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"When enabled, reconnects players at their previous positions",children:[e.jsx("label",{children:"Reload Players"}),e.jsx("div",{className:"inputs",children:e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.playersEnabled,onChange:$("playersEnabled")})})]}),e.jsxs("div",{className:"inputs-item","data-tooltip":"When enabled, saves the current world. The default world will be loaded on restart",children:[e.jsx("label",{children:"Save World"}),e.jsx("div",{className:"inputs",children:e.jsx(_e,{disabled:!j,tooltip:"Enabled",value:_.saveWorld??!0,onChange:$("saveWorld")})})]})]}),a.children]})]})]}):null},Dd=()=>{const t=K.user.defaultPermissions.get.useQuery(),n=K.user.defaultPermissions.set.useMutation(),[r,s]=D.useState(null),[i,a]=D.useState(!1);D.useEffect(()=>{t.data&&s({root:t.data.root??"off",domains:t.data.domains??{},scopes:t.data.scopes??{}})},[t.data]);const c=D.useMemo(()=>!r||!t.data?!1:JSON.stringify(r)!==JSON.stringify(t.data),[r,t.data]),d=D.useCallback(async()=>{if(r){a(!0);try{const g=await n.mutateAsync(r);g?console.error("Failed to save default permissions:",g):t.refetch()}catch(g){console.error("Failed to save default permissions:",g)}a(!1)}},[r]);return e.jsxs("div",{className:"player-inspector-container",children:[e.jsxs(xe,{attached:!0,children:["Default Permissions",e.jsx("span",{style:{flex:1}}),e.jsxs(H,{normal:!0,disabled:i||!c,onClick:d,children:[e.jsx(Gt,{}),"Save"]})]}),e.jsx("div",{className:"player-inspector",children:e.jsxs("div",{className:"player-view",children:[e.jsx(fe,{active:t.isLoading,size:"huge",children:"Loading Defaults"}),e.jsx("div",{className:"player-info",children:r&&e.jsxs(we,{children:[e.jsx("div",{className:"stats",children:e.jsx("div",{className:"stat",children:"These permissions apply to all users who don't have an explicit override set."})}),e.jsx("div",{className:"section-header",children:"Permissions"}),e.jsx(Us,{perms:r,onChange:s})]})})]})})]})},Ed="Enable Users",Od="Add User",ni="Default Permissions",qd=()=>{const t=Ze(V.UserList),n=be(Ks)?.userless,r=be(Ft),s=te(V.UserCreate),i=te(V.UserPermissions),[a,c]=D.useState(0),[d,g]=D.useState(0),[b,C]=D.useState(!0),[x,j]=D.useState([]),[P,_]=D.useState(""),[p,o]=D.useState(""),[u,l]=D.useState(""),[h,v]=D.useState(""),[m,y]=D.useState(""),[f,S]=D.useState(!1),[N,M]=D.useState(!1),[E,T]=D.useState(!1),[A,q]=xt(),[z,W]=ke("/users/:id?"),L=K.useUtils(),$=K.user.create.useMutation(),[ee,J]=D.useState(!1),oe=()=>{J(!1),M(!0),S(!1),l(""),o("")},B=()=>{J(!1),S(!0),M(!1),l(""),o("")},Y=()=>{J(!1),q("/users/_defaults")},ie=D.useRef({page:0,sort:"lastSeen",direction:-1}),{page:ce,sort:he,direction:pe}=ie.current,G=I=>{typeof I=="function"&&(I=I(ie.current.page)),ie.current.page=I,re()},Z=I=>{typeof I=="function"&&(I=I(ie.current.direction)),ie.current.direction=I},re=async()=>{C(!0);const{page:I,sort:ne,direction:ae}=ie.current,{users:me,total:ue,pages:Te}=await L.user.list.fetch({page:I,search:"",sort:ne,direction:ae});c(Te),g(ue),j(me),C(!1)},w=D.useRef(re);w.current=re;const R=be(Is);D.useEffect(()=>{re()},[R]);const O=I=>{I==he?Z(ne=>ne*-1):(ie.current.sort=I,Z(I==="name"?1:-1)),re()},k=D.useMemo(()=>{if(!P)return x;const I=P.toLowerCase();return x.filter(ne=>(ne.username||"Admin").toLowerCase().includes(I))},[x,P]),F=()=>{S(!1),M(!1),l(""),o(""),v(""),y("")},U=async()=>{if(o(""),h!==m)return;T(!0);let I="";try{if(I=await $.mutateAsync({username:u,password:h}),T(!1),!I){if(N)Ec();else{const ne=u;F(),await re(),q(`/users/${ne}`)}return}}catch(ne){console.error("error setting user credentials",ne)}o(I)},Q=D.useMemo(()=>u.match(/^\w{0,32}$/)&&u.length!==0&&h.length!==0,[u,h]);if(!t)return null;const X=n||!n&&s;return e.jsxs(e.Fragment,{children:[e.jsxs(qe,{title:"Users",children:[!n&&i&&e.jsxs(H,{normal:!0,boxy:!0,className:"default-perms-standalone",onClick:Y,children:[e.jsx(va,{}),ni]}),X&&e.jsxs("div",{className:"widgets-container",children:[e.jsxs(H,{normal:!0,boxy:!0,onClick:()=>J(!ee),children:[ee?e.jsx(St,{}):e.jsx(_t,{}),"Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:ee?"block":"none"},children:[!n&&i&&e.jsxs(H,{normal:!0,className:"default-perms-dropdown hidden",onClick:Y,children:[e.jsx(va,{}),ni]}),n&&e.jsxs(H,{info:!0,onClick:oe,children:[e.jsx(Ws,{}),Ed]}),!n&&s&&e.jsxs(H,{main:!0,onClick:B,children:[e.jsx(ya,{}),Od]})]})]})]}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"generic-container players-container",children:[e.jsxs("div",{className:"player-table-container",children:[e.jsxs(xe,{attached:!0,children:[e.jsx(le,{type:"text",placeholder:"Search Users...",value:P,onChange:I=>_(I)}),e.jsx("span",{style:{flex:1}}),e.jsx(H,{icon:!0,normal:!0,"data-tooltip":"Refresh user list",onClick:re,children:e.jsx($t,{})})]}),e.jsxs("div",{className:"players-list",children:[e.jsx(we,{children:e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},onClick:()=>O("username"),children:e.jsxs("span",{children:["Username",e.jsx(ye,{name:"username",sort:he,direction:pe})]})}),e.jsx("th",{onClick:()=>O("lastOnline"),"data-tooltip":"When the user was last active",children:e.jsxs("span",{children:["Active",e.jsx(ye,{name:"lastOnline",sort:he,direction:pe})]})}),e.jsx("th",{onClick:()=>O("created"),"data-tooltip":"When the user joined",children:e.jsxs("span",{children:["Joined",e.jsx(ye,{name:"created",sort:he,direction:pe})]})})]})}),e.jsx("tbody",{children:k.map(I=>e.jsxs("tr",{onClick:()=>q(`/users/${I.username}`),className:I.username===W?.id?"active":"",children:[e.jsxs("td",{children:[I.isBanned&&e.jsxs("span",{className:"ban",children:[e.jsx(Ve,{size:14})," "]}),I.username||"Admin"," ",(I.username||"Admin")===(r?.username||"Admin")&&e.jsx("span",{style:{fontSize:12},children:"(You)"})]}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":I.lastOnline?new Date(I.lastOnline):"Never",children:I.lastOnline?ve(I.seenAgo):"Never"}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(I.created),children:ve(I.createdAgo)})]},I.username))})]})}),e.jsxs(Pe,{className:"pagination-footer",attached:!0,children:[e.jsx(H,{icon:!0,normal:!0,disabled:ce===0,onClick:()=>G(0),children:e.jsx(ql,{})}),e.jsx(H,{icon:!0,normal:!0,disabled:ce===0,onClick:()=>G(I=>Math.max(0,I-1)),children:e.jsx(qt,{})}),e.jsxs("div",{className:"current-page",children:[e.jsxs("div",{children:["Page ",ce+1," of ",a]}),e.jsxs("div",{children:["Showing ",k.length," of ",d]})]}),e.jsx(H,{icon:!0,normal:!0,disabled:ce>=a-1,onClick:()=>G(I=>Math.min(a-1,I+1)),children:e.jsx(Ot,{})}),e.jsx(H,{icon:!0,normal:!0,disabled:ce>=a-1,onClick:()=>G(a-1),children:e.jsx(Ml,{})})]}),e.jsx(fe,{active:b,size:"huge",children:"Loading Users"})]})]}),e.jsxs(Gs,{children:[e.jsx(ge,{path:"/users/_defaults",component:Dd}),e.jsx(ge,{path:"/users/:id",component:Wl}),e.jsx(ge,{children:e.jsxs("div",{className:"player-inspector-container",children:[e.jsx(xe,{attached:!0,children:"SELECT A USER"}),e.jsx("div",{className:"player-inspector"})]})})]}),e.jsxs(jt,{visible:f||N,children:[e.jsx(fe,{active:E,size:"huge",children:"Submitting"}),e.jsxs(Bt,{visible:!E,children:[e.jsx(wt,{children:N?"Enable Users":"Create New User"}),e.jsxs(gt,{children:[N&&e.jsxs(e.Fragment,{children:[e.jsx("p",{children:"This will require you to enter a password when you sign in."}),e.jsx("p",{children:"This action cannot be undone."})]}),f&&e.jsx("p",{children:"Creating a new user. It's recommended to create a temporary password."}),p&&e.jsxs("p",{style:{color:"red"},children:["Error: ",p]})]}),e.jsxs("div",{className:"popout-inputs",children:[e.jsx(le,{placeholder:"username",type:"text",value:u,onChange:I=>l(I)}),e.jsx(le,{placeholder:"password",type:"password",value:h,onChange:I=>v(I)}),e.jsx(le,{placeholder:"confirm password",type:"password",value:m,onChange:I=>y(I),onSubmit:Q&&m===h?U:void 0})]}),e.jsxs(Pe,{children:[e.jsxs(H,{main:!0,disabled:!Q||m!==h,onClick:()=>U(),children:[e.jsx(ya,{}),N?"Enable":"Add"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(H,{normal:!0,onClick:F,children:[e.jsx(Oe,{}),"Cancel"]})]})]})]})]})]})]})},Ye=bt(null),Xe=bt(null);var vr,si;function Md(){if(si)return vr;si=1;var t=Math.ceil,n=Math.max;function r(s,i,a,c){for(var d=-1,g=n(t((i-s)/(a||1)),0),b=Array(g);g--;)b[c?g:++d]=s,s+=a;return b}return vr=r,vr}var yr,ai;function ea(){if(ai)return yr;ai=1;function t(n,r){return n===r||n!==n&&r!==r}return yr=t,yr}var xr,ii;function rc(){if(ii)return xr;ii=1;var t=It(),n=Ht(),r="[object AsyncFunction]",s="[object Function]",i="[object GeneratorFunction]",a="[object Proxy]";function c(d){if(!n(d))return!1;var g=t(d);return g==s||g==i||g==r||g==a}return xr=c,xr}var br,oi;function ta(){if(oi)return br;oi=1;var t=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=t}return br=n,br}var jr,li;function Vt(){if(li)return jr;li=1;var t=rc(),n=ta();function r(s){return s!=null&&n(s.length)&&!t(s)}return jr=r,jr}var wr,ci;function ra(){if(ci)return wr;ci=1;var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,i){var a=typeof s;return i=i??t,!!i&&(a=="number"||a!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<i}return wr=r,wr}var _r,ui;function nc(){if(ui)return _r;ui=1;var t=ea(),n=Vt(),r=ra(),s=Ht();function i(a,c,d){if(!s(d))return!1;var g=typeof c;return(g=="number"?n(d)&&r(c,d.length):g=="string"&&c in d)?t(d[c],a):!1}return _r=i,_r}var Sr,di;function Ad(){if(di)return Sr;di=1;var t=Oc(),n=1/0,r=17976931348623157e292;function s(i){if(!i)return i===0?i:0;if(i=t(i),i===n||i===-n){var a=i<0?-1:1;return a*r}return i===i?i:0}return Sr=s,Sr}var Cr,hi;function kd(){if(hi)return Cr;hi=1;var t=Md(),n=nc(),r=Ad();function s(i){return function(a,c,d){return d&&typeof d!="number"&&n(a,c,d)&&(c=d=void 0),a=r(a),c===void 0?(c=a,a=0):c=r(c),d=d===void 0?a<c?1:-1:r(d),t(a,c,d,i)}}return Cr=s,Cr}var Rr,fi;function Td(){if(fi)return Rr;fi=1;var t=kd(),n=t();return Rr=n,Rr}var Ld=Td();const pi=Ys(Ld);var Pr,mi;function sc(){if(mi)return Pr;mi=1;function t(n,r){for(var s=-1,i=r.length,a=n.length;++s<i;)n[a+s]=r[s];return n}return Pr=t,Pr}var Nr,gi;function zd(){if(gi)return Nr;gi=1;var t=It(),n=Wt(),r="[object Arguments]";function s(i){return n(i)&&t(i)==r}return Nr=s,Nr}var Dr,vi;function na(){if(vi)return Dr;vi=1;var t=zd(),n=Wt(),r=Object.prototype,s=r.hasOwnProperty,i=r.propertyIsEnumerable,a=t((function(){return arguments})())?t:function(c){return n(c)&&s.call(c,"callee")&&!i.call(c,"callee")};return Dr=a,Dr}var Er,yi;function Ne(){if(yi)return Er;yi=1;var t=Array.isArray;return Er=t,Er}var Or,xi;function Id(){if(xi)return Or;xi=1;var t=$s(),n=na(),r=Ne(),s=t?t.isConcatSpreadable:void 0;function i(a){return r(a)||n(a)||!!(s&&a&&a[s])}return Or=i,Or}var qr,bi;function Hd(){if(bi)return qr;bi=1;var t=sc(),n=Id();function r(s,i,a,c,d){var g=-1,b=s.length;for(a||(a=n),d||(d=[]);++g<b;){var C=s[g];i>0&&a(C)?i>1?r(C,i-1,a,c,d):t(d,C):c||(d[d.length]=C)}return d}return qr=r,qr}var Mr,ji;function ac(){if(ji)return Mr;ji=1;function t(n,r){for(var s=-1,i=n==null?0:n.length,a=Array(i);++s<i;)a[s]=r(n[s],s,n);return a}return Mr=t,Mr}var Ar,wi;function sa(){if(wi)return Ar;wi=1;var t=Ne(),n=Ut(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function i(a,c){if(t(a))return!1;var d=typeof a;return d=="number"||d=="symbol"||d=="boolean"||a==null||n(a)?!0:s.test(a)||!r.test(a)||c!=null&&a in Object(c)}return Ar=i,Ar}var kr,_i;function Wd(){if(_i)return kr;_i=1;var t=He(),n=t["__core-js_shared__"];return kr=n,kr}var Tr,Si;function Ud(){if(Si)return Tr;Si=1;var t=Wd(),n=(function(){var s=/[^.]+$/.exec(t&&t.keys&&t.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return Tr=r,Tr}var Lr,Ci;function ic(){if(Ci)return Lr;Ci=1;var t=Function.prototype,n=t.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Lr=r,Lr}var zr,Ri;function Fd(){if(Ri)return zr;Ri=1;var t=rc(),n=Ud(),r=Ht(),s=ic(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,c=Function.prototype,d=Object.prototype,g=c.toString,b=d.hasOwnProperty,C=RegExp("^"+g.call(b).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function x(j){if(!r(j)||n(j))return!1;var P=t(j)?C:a;return P.test(s(j))}return zr=x,zr}var Ir,Pi;function Bd(){if(Pi)return Ir;Pi=1;function t(n,r){return n?.[r]}return Ir=t,Ir}var Hr,Ni;function Ge(){if(Ni)return Hr;Ni=1;var t=Fd(),n=Bd();function r(s,i){var a=n(s,i);return t(a)?a:void 0}return Hr=r,Hr}var Wr,Di;function Qt(){if(Di)return Wr;Di=1;var t=Ge(),n=t(Object,"create");return Wr=n,Wr}var Ur,Ei;function Gd(){if(Ei)return Ur;Ei=1;var t=Qt();function n(){this.__data__=t?t(null):{},this.size=0}return Ur=n,Ur}var Fr,Oi;function $d(){if(Oi)return Fr;Oi=1;function t(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return Fr=t,Fr}var Br,qi;function Kd(){if(qi)return Br;qi=1;var t=Qt(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function i(a){var c=this.__data__;if(t){var d=c[a];return d===n?void 0:d}return s.call(c,a)?c[a]:void 0}return Br=i,Br}var Gr,Mi;function Yd(){if(Mi)return Gr;Mi=1;var t=Qt(),n=Object.prototype,r=n.hasOwnProperty;function s(i){var a=this.__data__;return t?a[i]!==void 0:r.call(a,i)}return Gr=s,Gr}var $r,Ai;function Xd(){if(Ai)return $r;Ai=1;var t=Qt(),n="__lodash_hash_undefined__";function r(s,i){var a=this.__data__;return this.size+=this.has(s)?0:1,a[s]=t&&i===void 0?n:i,this}return $r=r,$r}var Kr,ki;function Vd(){if(ki)return Kr;ki=1;var t=Gd(),n=$d(),r=Kd(),s=Yd(),i=Xd();function a(c){var d=-1,g=c==null?0:c.length;for(this.clear();++d<g;){var b=c[d];this.set(b[0],b[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=s,a.prototype.set=i,Kr=a,Kr}var Yr,Ti;function Qd(){if(Ti)return Yr;Ti=1;function t(){this.__data__=[],this.size=0}return Yr=t,Yr}var Xr,Li;function Jt(){if(Li)return Xr;Li=1;var t=ea();function n(r,s){for(var i=r.length;i--;)if(t(r[i][0],s))return i;return-1}return Xr=n,Xr}var Vr,zi;function Jd(){if(zi)return Vr;zi=1;var t=Jt(),n=Array.prototype,r=n.splice;function s(i){var a=this.__data__,c=t(a,i);if(c<0)return!1;var d=a.length-1;return c==d?a.pop():r.call(a,c,1),--this.size,!0}return Vr=s,Vr}var Qr,Ii;function Zd(){if(Ii)return Qr;Ii=1;var t=Jt();function n(r){var s=this.__data__,i=t(s,r);return i<0?void 0:s[i][1]}return Qr=n,Qr}var Jr,Hi;function eh(){if(Hi)return Jr;Hi=1;var t=Jt();function n(r){return t(this.__data__,r)>-1}return Jr=n,Jr}var Zr,Wi;function th(){if(Wi)return Zr;Wi=1;var t=Jt();function n(r,s){var i=this.__data__,a=t(i,r);return a<0?(++this.size,i.push([r,s])):i[a][1]=s,this}return Zr=n,Zr}var en,Ui;function Zt(){if(Ui)return en;Ui=1;var t=Qd(),n=Jd(),r=Zd(),s=eh(),i=th();function a(c){var d=-1,g=c==null?0:c.length;for(this.clear();++d<g;){var b=c[d];this.set(b[0],b[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=s,a.prototype.set=i,en=a,en}var tn,Fi;function aa(){if(Fi)return tn;Fi=1;var t=Ge(),n=He(),r=t(n,"Map");return tn=r,tn}var rn,Bi;function rh(){if(Bi)return rn;Bi=1;var t=Vd(),n=Zt(),r=aa();function s(){this.size=0,this.__data__={hash:new t,map:new(r||n),string:new t}}return rn=s,rn}var nn,Gi;function nh(){if(Gi)return nn;Gi=1;function t(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return nn=t,nn}var sn,$i;function er(){if($i)return sn;$i=1;var t=nh();function n(r,s){var i=r.__data__;return t(s)?i[typeof s=="string"?"string":"hash"]:i.map}return sn=n,sn}var an,Ki;function sh(){if(Ki)return an;Ki=1;var t=er();function n(r){var s=t(this,r).delete(r);return this.size-=s?1:0,s}return an=n,an}var on,Yi;function ah(){if(Yi)return on;Yi=1;var t=er();function n(r){return t(this,r).get(r)}return on=n,on}var ln,Xi;function ih(){if(Xi)return ln;Xi=1;var t=er();function n(r){return t(this,r).has(r)}return ln=n,ln}var cn,Vi;function oh(){if(Vi)return cn;Vi=1;var t=er();function n(r,s){var i=t(this,r),a=i.size;return i.set(r,s),this.size+=i.size==a?0:1,this}return cn=n,cn}var un,Qi;function ia(){if(Qi)return un;Qi=1;var t=rh(),n=sh(),r=ah(),s=ih(),i=oh();function a(c){var d=-1,g=c==null?0:c.length;for(this.clear();++d<g;){var b=c[d];this.set(b[0],b[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=s,a.prototype.set=i,un=a,un}var dn,Ji;function lh(){if(Ji)return dn;Ji=1;var t=ia(),n="Expected a function";function r(s,i){if(typeof s!="function"||i!=null&&typeof i!="function")throw new TypeError(n);var a=function(){var c=arguments,d=i?i.apply(this,c):c[0],g=a.cache;if(g.has(d))return g.get(d);var b=s.apply(this,c);return a.cache=g.set(d,b)||g,b};return a.cache=new(r.Cache||t),a}return r.Cache=t,dn=r,dn}var hn,Zi;function ch(){if(Zi)return hn;Zi=1;var t=lh(),n=500;function r(s){var i=t(s,function(c){return a.size===n&&a.clear(),c}),a=i.cache;return i}return hn=r,hn}var fn,eo;function uh(){if(eo)return fn;eo=1;var t=ch(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=t(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace(n,function(c,d,g,b){a.push(g?b.replace(r,"$1"):d||c)}),a});return fn=s,fn}var pn,to;function dh(){if(to)return pn;to=1;var t=$s(),n=ac(),r=Ne(),s=Ut(),i=t?t.prototype:void 0,a=i?i.toString:void 0;function c(d){if(typeof d=="string")return d;if(r(d))return n(d,c)+"";if(s(d))return a?a.call(d):"";var g=d+"";return g=="0"&&1/d==-1/0?"-0":g}return pn=c,pn}var mn,ro;function hh(){if(ro)return mn;ro=1;var t=dh();function n(r){return r==null?"":t(r)}return mn=n,mn}var gn,no;function oc(){if(no)return gn;no=1;var t=Ne(),n=sa(),r=uh(),s=hh();function i(a,c){return t(a)?a:n(a,c)?[a]:r(s(a))}return gn=i,gn}var vn,so;function tr(){if(so)return vn;so=1;var t=Ut();function n(r){if(typeof r=="string"||t(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return vn=n,vn}var yn,ao;function oa(){if(ao)return yn;ao=1;var t=oc(),n=tr();function r(s,i){i=t(i,s);for(var a=0,c=i.length;s!=null&&a<c;)s=s[n(i[a++])];return a&&a==c?s:void 0}return yn=r,yn}var xn,io;function fh(){if(io)return xn;io=1;var t=Zt();function n(){this.__data__=new t,this.size=0}return xn=n,xn}var bn,oo;function ph(){if(oo)return bn;oo=1;function t(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return bn=t,bn}var jn,lo;function mh(){if(lo)return jn;lo=1;function t(n){return this.__data__.get(n)}return jn=t,jn}var wn,co;function gh(){if(co)return wn;co=1;function t(n){return this.__data__.has(n)}return wn=t,wn}var _n,uo;function vh(){if(uo)return _n;uo=1;var t=Zt(),n=aa(),r=ia(),s=200;function i(a,c){var d=this.__data__;if(d instanceof t){var g=d.__data__;if(!n||g.length<s-1)return g.push([a,c]),this.size=++d.size,this;d=this.__data__=new r(g)}return d.set(a,c),this.size=d.size,this}return _n=i,_n}var Sn,ho;function lc(){if(ho)return Sn;ho=1;var t=Zt(),n=fh(),r=ph(),s=mh(),i=gh(),a=vh();function c(d){var g=this.__data__=new t(d);this.size=g.size}return c.prototype.clear=n,c.prototype.delete=r,c.prototype.get=s,c.prototype.has=i,c.prototype.set=a,Sn=c,Sn}var Cn,fo;function yh(){if(fo)return Cn;fo=1;var t="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,t),this}return Cn=n,Cn}var Rn,po;function xh(){if(po)return Rn;po=1;function t(n){return this.__data__.has(n)}return Rn=t,Rn}var Pn,mo;function bh(){if(mo)return Pn;mo=1;var t=ia(),n=yh(),r=xh();function s(i){var a=-1,c=i==null?0:i.length;for(this.__data__=new t;++a<c;)this.add(i[a])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,Pn=s,Pn}var Nn,go;function jh(){if(go)return Nn;go=1;function t(n,r){for(var s=-1,i=n==null?0:n.length;++s<i;)if(r(n[s],s,n))return!0;return!1}return Nn=t,Nn}var Dn,vo;function wh(){if(vo)return Dn;vo=1;function t(n,r){return n.has(r)}return Dn=t,Dn}var En,yo;function cc(){if(yo)return En;yo=1;var t=bh(),n=jh(),r=wh(),s=1,i=2;function a(c,d,g,b,C,x){var j=g&s,P=c.length,_=d.length;if(P!=_&&!(j&&_>P))return!1;var p=x.get(c),o=x.get(d);if(p&&o)return p==d&&o==c;var u=-1,l=!0,h=g&i?new t:void 0;for(x.set(c,d),x.set(d,c);++u<P;){var v=c[u],m=d[u];if(b)var y=j?b(m,v,u,d,c,x):b(v,m,u,c,d,x);if(y!==void 0){if(y)continue;l=!1;break}if(h){if(!n(d,function(f,S){if(!r(h,S)&&(v===f||C(v,f,g,b,x)))return h.push(S)})){l=!1;break}}else if(!(v===m||C(v,m,g,b,x))){l=!1;break}}return x.delete(c),x.delete(d),l}return En=a,En}var On,xo;function _h(){if(xo)return On;xo=1;var t=He(),n=t.Uint8Array;return On=n,On}var qn,bo;function Sh(){if(bo)return qn;bo=1;function t(n){var r=-1,s=Array(n.size);return n.forEach(function(i,a){s[++r]=[a,i]}),s}return qn=t,qn}var Mn,jo;function Ch(){if(jo)return Mn;jo=1;function t(n){var r=-1,s=Array(n.size);return n.forEach(function(i){s[++r]=i}),s}return Mn=t,Mn}var An,wo;function Rh(){if(wo)return An;wo=1;var t=$s(),n=_h(),r=ea(),s=cc(),i=Sh(),a=Ch(),c=1,d=2,g="[object Boolean]",b="[object Date]",C="[object Error]",x="[object Map]",j="[object Number]",P="[object RegExp]",_="[object Set]",p="[object String]",o="[object Symbol]",u="[object ArrayBuffer]",l="[object DataView]",h=t?t.prototype:void 0,v=h?h.valueOf:void 0;function m(y,f,S,N,M,E,T){switch(S){case l:if(y.byteLength!=f.byteLength||y.byteOffset!=f.byteOffset)return!1;y=y.buffer,f=f.buffer;case u:return!(y.byteLength!=f.byteLength||!E(new n(y),new n(f)));case g:case b:case j:return r(+y,+f);case C:return y.name==f.name&&y.message==f.message;case P:case p:return y==f+"";case x:var A=i;case _:var q=N&c;if(A||(A=a),y.size!=f.size&&!q)return!1;var z=T.get(y);if(z)return z==f;N|=d,T.set(y,f);var W=s(A(y),A(f),N,M,E,T);return T.delete(y),W;case o:if(v)return v.call(y)==v.call(f)}return!1}return An=m,An}var kn,_o;function Ph(){if(_o)return kn;_o=1;var t=sc(),n=Ne();function r(s,i,a){var c=i(s);return n(s)?c:t(c,a(s))}return kn=r,kn}var Tn,So;function Nh(){if(So)return Tn;So=1;function t(n,r){for(var s=-1,i=n==null?0:n.length,a=0,c=[];++s<i;){var d=n[s];r(d,s,n)&&(c[a++]=d)}return c}return Tn=t,Tn}var Ln,Co;function Dh(){if(Co)return Ln;Co=1;function t(){return[]}return Ln=t,Ln}var zn,Ro;function Eh(){if(Ro)return zn;Ro=1;var t=Nh(),n=Dh(),r=Object.prototype,s=r.propertyIsEnumerable,i=Object.getOwnPropertySymbols,a=i?function(c){return c==null?[]:(c=Object(c),t(i(c),function(d){return s.call(c,d)}))}:n;return zn=a,zn}var In,Po;function Oh(){if(Po)return In;Po=1;function t(n,r){for(var s=-1,i=Array(n);++s<n;)i[s]=r(s);return i}return In=t,In}var ft={exports:{}},Hn,No;function qh(){if(No)return Hn;No=1;function t(){return!1}return Hn=t,Hn}ft.exports;var Do;function uc(){return Do||(Do=1,(function(t,n){var r=He(),s=qh(),i=n&&!n.nodeType&&n,a=i&&!0&&t&&!t.nodeType&&t,c=a&&a.exports===i,d=c?r.Buffer:void 0,g=d?d.isBuffer:void 0,b=g||s;t.exports=b})(ft,ft.exports)),ft.exports}var Wn,Eo;function Mh(){if(Eo)return Wn;Eo=1;var t=It(),n=ta(),r=Wt(),s="[object Arguments]",i="[object Array]",a="[object Boolean]",c="[object Date]",d="[object Error]",g="[object Function]",b="[object Map]",C="[object Number]",x="[object Object]",j="[object RegExp]",P="[object Set]",_="[object String]",p="[object WeakMap]",o="[object ArrayBuffer]",u="[object DataView]",l="[object Float32Array]",h="[object Float64Array]",v="[object Int8Array]",m="[object Int16Array]",y="[object Int32Array]",f="[object Uint8Array]",S="[object Uint8ClampedArray]",N="[object Uint16Array]",M="[object Uint32Array]",E={};E[l]=E[h]=E[v]=E[m]=E[y]=E[f]=E[S]=E[N]=E[M]=!0,E[s]=E[i]=E[o]=E[a]=E[u]=E[c]=E[d]=E[g]=E[b]=E[C]=E[x]=E[j]=E[P]=E[_]=E[p]=!1;function T(A){return r(A)&&n(A.length)&&!!E[t(A)]}return Wn=T,Wn}var Un,Oo;function dc(){if(Oo)return Un;Oo=1;function t(n){return function(r){return n(r)}}return Un=t,Un}var pt={exports:{}};pt.exports;var qo;function Ah(){return qo||(qo=1,(function(t,n){var r=qc(),s=n&&!n.nodeType&&n,i=s&&!0&&t&&!t.nodeType&&t,a=i&&i.exports===s,c=a&&r.process,d=(function(){try{var g=i&&i.require&&i.require("util").types;return g||c&&c.binding&&c.binding("util")}catch{}})();t.exports=d})(pt,pt.exports)),pt.exports}var Fn,Mo;function hc(){if(Mo)return Fn;Mo=1;var t=Mh(),n=dc(),r=Ah(),s=r&&r.isTypedArray,i=s?n(s):t;return Fn=i,Fn}var Bn,Ao;function kh(){if(Ao)return Bn;Ao=1;var t=Oh(),n=na(),r=Ne(),s=uc(),i=ra(),a=hc(),c=Object.prototype,d=c.hasOwnProperty;function g(b,C){var x=r(b),j=!x&&n(b),P=!x&&!j&&s(b),_=!x&&!j&&!P&&a(b),p=x||j||P||_,o=p?t(b.length,String):[],u=o.length;for(var l in b)(C||d.call(b,l))&&!(p&&(l=="length"||P&&(l=="offset"||l=="parent")||_&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||i(l,u)))&&o.push(l);return o}return Bn=g,Bn}var Gn,ko;function Th(){if(ko)return Gn;ko=1;var t=Object.prototype;function n(r){var s=r&&r.constructor,i=typeof s=="function"&&s.prototype||t;return r===i}return Gn=n,Gn}var $n,To;function Lh(){if(To)return $n;To=1;function t(n,r){return function(s){return n(r(s))}}return $n=t,$n}var Kn,Lo;function zh(){if(Lo)return Kn;Lo=1;var t=Lh(),n=t(Object.keys,Object);return Kn=n,Kn}var Yn,zo;function Ih(){if(zo)return Yn;zo=1;var t=Th(),n=zh(),r=Object.prototype,s=r.hasOwnProperty;function i(a){if(!t(a))return n(a);var c=[];for(var d in Object(a))s.call(a,d)&&d!="constructor"&&c.push(d);return c}return Yn=i,Yn}var Xn,Io;function la(){if(Io)return Xn;Io=1;var t=kh(),n=Ih(),r=Vt();function s(i){return r(i)?t(i):n(i)}return Xn=s,Xn}var Vn,Ho;function Hh(){if(Ho)return Vn;Ho=1;var t=Ph(),n=Eh(),r=la();function s(i){return t(i,r,n)}return Vn=s,Vn}var Qn,Wo;function Wh(){if(Wo)return Qn;Wo=1;var t=Hh(),n=1,r=Object.prototype,s=r.hasOwnProperty;function i(a,c,d,g,b,C){var x=d&n,j=t(a),P=j.length,_=t(c),p=_.length;if(P!=p&&!x)return!1;for(var o=P;o--;){var u=j[o];if(!(x?u in c:s.call(c,u)))return!1}var l=C.get(a),h=C.get(c);if(l&&h)return l==c&&h==a;var v=!0;C.set(a,c),C.set(c,a);for(var m=x;++o<P;){u=j[o];var y=a[u],f=c[u];if(g)var S=x?g(f,y,u,c,a,C):g(y,f,u,a,c,C);if(!(S===void 0?y===f||b(y,f,d,g,C):S)){v=!1;break}m||(m=u=="constructor")}if(v&&!m){var N=a.constructor,M=c.constructor;N!=M&&"constructor"in a&&"constructor"in c&&!(typeof N=="function"&&N instanceof N&&typeof M=="function"&&M instanceof M)&&(v=!1)}return C.delete(a),C.delete(c),v}return Qn=i,Qn}var Jn,Uo;function Uh(){if(Uo)return Jn;Uo=1;var t=Ge(),n=He(),r=t(n,"DataView");return Jn=r,Jn}var Zn,Fo;function Fh(){if(Fo)return Zn;Fo=1;var t=Ge(),n=He(),r=t(n,"Promise");return Zn=r,Zn}var es,Bo;function Bh(){if(Bo)return es;Bo=1;var t=Ge(),n=He(),r=t(n,"Set");return es=r,es}var ts,Go;function Gh(){if(Go)return ts;Go=1;var t=Ge(),n=He(),r=t(n,"WeakMap");return ts=r,ts}var rs,$o;function $h(){if($o)return rs;$o=1;var t=Uh(),n=aa(),r=Fh(),s=Bh(),i=Gh(),a=It(),c=ic(),d="[object Map]",g="[object Object]",b="[object Promise]",C="[object Set]",x="[object WeakMap]",j="[object DataView]",P=c(t),_=c(n),p=c(r),o=c(s),u=c(i),l=a;return(t&&l(new t(new ArrayBuffer(1)))!=j||n&&l(new n)!=d||r&&l(r.resolve())!=b||s&&l(new s)!=C||i&&l(new i)!=x)&&(l=function(h){var v=a(h),m=v==g?h.constructor:void 0,y=m?c(m):"";if(y)switch(y){case P:return j;case _:return d;case p:return b;case o:return C;case u:return x}return v}),rs=l,rs}var ns,Ko;function Kh(){if(Ko)return ns;Ko=1;var t=lc(),n=cc(),r=Rh(),s=Wh(),i=$h(),a=Ne(),c=uc(),d=hc(),g=1,b="[object Arguments]",C="[object Array]",x="[object Object]",j=Object.prototype,P=j.hasOwnProperty;function _(p,o,u,l,h,v){var m=a(p),y=a(o),f=m?C:i(p),S=y?C:i(o);f=f==b?x:f,S=S==b?x:S;var N=f==x,M=S==x,E=f==S;if(E&&c(p)){if(!c(o))return!1;m=!0,N=!1}if(E&&!N)return v||(v=new t),m||d(p)?n(p,o,u,l,h,v):r(p,o,f,u,l,h,v);if(!(u&g)){var T=N&&P.call(p,"__wrapped__"),A=M&&P.call(o,"__wrapped__");if(T||A){var q=T?p.value():p,z=A?o.value():o;return v||(v=new t),h(q,z,u,l,v)}}return E?(v||(v=new t),s(p,o,u,l,h,v)):!1}return ns=_,ns}var ss,Yo;function fc(){if(Yo)return ss;Yo=1;var t=Kh(),n=Wt();function r(s,i,a,c,d){return s===i?!0:s==null||i==null||!n(s)&&!n(i)?s!==s&&i!==i:t(s,i,a,c,r,d)}return ss=r,ss}var as,Xo;function Yh(){if(Xo)return as;Xo=1;var t=lc(),n=fc(),r=1,s=2;function i(a,c,d,g){var b=d.length,C=b,x=!g;if(a==null)return!C;for(a=Object(a);b--;){var j=d[b];if(x&&j[2]?j[1]!==a[j[0]]:!(j[0]in a))return!1}for(;++b<C;){j=d[b];var P=j[0],_=a[P],p=j[1];if(x&&j[2]){if(_===void 0&&!(P in a))return!1}else{var o=new t;if(g)var u=g(_,p,P,a,c,o);if(!(u===void 0?n(p,_,r|s,g,o):u))return!1}}return!0}return as=i,as}var is,Vo;function pc(){if(Vo)return is;Vo=1;var t=Ht();function n(r){return r===r&&!t(r)}return is=n,is}var os,Qo;function Xh(){if(Qo)return os;Qo=1;var t=pc(),n=la();function r(s){for(var i=n(s),a=i.length;a--;){var c=i[a],d=s[c];i[a]=[c,d,t(d)]}return i}return os=r,os}var ls,Jo;function mc(){if(Jo)return ls;Jo=1;function t(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return ls=t,ls}var cs,Zo;function Vh(){if(Zo)return cs;Zo=1;var t=Yh(),n=Xh(),r=mc();function s(i){var a=n(i);return a.length==1&&a[0][2]?r(a[0][0],a[0][1]):function(c){return c===i||t(c,i,a)}}return cs=s,cs}var us,el;function Qh(){if(el)return us;el=1;var t=oa();function n(r,s,i){var a=r==null?void 0:t(r,s);return a===void 0?i:a}return us=n,us}var ds,tl;function Jh(){if(tl)return ds;tl=1;function t(n,r){return n!=null&&r in Object(n)}return ds=t,ds}var hs,rl;function Zh(){if(rl)return hs;rl=1;var t=oc(),n=na(),r=Ne(),s=ra(),i=ta(),a=tr();function c(d,g,b){g=t(g,d);for(var C=-1,x=g.length,j=!1;++C<x;){var P=a(g[C]);if(!(j=d!=null&&b(d,P)))break;d=d[P]}return j||++C!=x?j:(x=d==null?0:d.length,!!x&&i(x)&&s(P,x)&&(r(d)||n(d)))}return hs=c,hs}var fs,nl;function ef(){if(nl)return fs;nl=1;var t=Jh(),n=Zh();function r(s,i){return s!=null&&n(s,i,t)}return fs=r,fs}var ps,sl;function tf(){if(sl)return ps;sl=1;var t=fc(),n=Qh(),r=ef(),s=sa(),i=pc(),a=mc(),c=tr(),d=1,g=2;function b(C,x){return s(C)&&i(x)?a(c(C),x):function(j){var P=n(j,C);return P===void 0&&P===x?r(j,C):t(x,P,d|g)}}return ps=b,ps}var ms,al;function rr(){if(al)return ms;al=1;function t(n){return n}return ms=t,ms}var gs,il;function rf(){if(il)return gs;il=1;function t(n){return function(r){return r?.[n]}}return gs=t,gs}var vs,ol;function nf(){if(ol)return vs;ol=1;var t=oa();function n(r){return function(s){return t(s,r)}}return vs=n,vs}var ys,ll;function sf(){if(ll)return ys;ll=1;var t=rf(),n=nf(),r=sa(),s=tr();function i(a){return r(a)?t(s(a)):n(a)}return ys=i,ys}var xs,cl;function af(){if(cl)return xs;cl=1;var t=Vh(),n=tf(),r=rr(),s=Ne(),i=sf();function a(c){return typeof c=="function"?c:c==null?r:typeof c=="object"?s(c)?n(c[0],c[1]):t(c):i(c)}return xs=a,xs}var bs,ul;function of(){if(ul)return bs;ul=1;function t(n){return function(r,s,i){for(var a=-1,c=Object(r),d=i(r),g=d.length;g--;){var b=d[n?g:++a];if(s(c[b],b,c)===!1)break}return r}}return bs=t,bs}var js,dl;function lf(){if(dl)return js;dl=1;var t=of(),n=t();return js=n,js}var ws,hl;function cf(){if(hl)return ws;hl=1;var t=lf(),n=la();function r(s,i){return s&&t(s,i,n)}return ws=r,ws}var _s,fl;function uf(){if(fl)return _s;fl=1;var t=Vt();function n(r,s){return function(i,a){if(i==null)return i;if(!t(i))return r(i,a);for(var c=i.length,d=s?c:-1,g=Object(i);(s?d--:++d<c)&&a(g[d],d,g)!==!1;);return i}}return _s=n,_s}var Ss,pl;function df(){if(pl)return Ss;pl=1;var t=cf(),n=uf(),r=n(t);return Ss=r,Ss}var Cs,ml;function hf(){if(ml)return Cs;ml=1;var t=df(),n=Vt();function r(s,i){var a=-1,c=n(s)?Array(s.length):[];return t(s,function(d,g,b){c[++a]=i(d,g,b)}),c}return Cs=r,Cs}var Rs,gl;function ff(){if(gl)return Rs;gl=1;function t(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Rs=t,Rs}var Ps,vl;function pf(){if(vl)return Ps;vl=1;var t=Ut();function n(r,s){if(r!==s){var i=r!==void 0,a=r===null,c=r===r,d=t(r),g=s!==void 0,b=s===null,C=s===s,x=t(s);if(!b&&!x&&!d&&r>s||d&&g&&C&&!b&&!x||a&&g&&C||!i&&C||!c)return 1;if(!a&&!d&&!x&&r<s||x&&i&&c&&!a&&!d||b&&i&&c||!g&&c||!C)return-1}return 0}return Ps=n,Ps}var Ns,yl;function mf(){if(yl)return Ns;yl=1;var t=pf();function n(r,s,i){for(var a=-1,c=r.criteria,d=s.criteria,g=c.length,b=i.length;++a<g;){var C=t(c[a],d[a]);if(C){if(a>=b)return C;var x=i[a];return C*(x=="desc"?-1:1)}}return r.index-s.index}return Ns=n,Ns}var Ds,xl;function gf(){if(xl)return Ds;xl=1;var t=ac(),n=oa(),r=af(),s=hf(),i=ff(),a=dc(),c=mf(),d=rr(),g=Ne();function b(C,x,j){x.length?x=t(x,function(p){return g(p)?function(o){return n(o,p.length===1?p[0]:p)}:p}):x=[d];var P=-1;x=t(x,a(r));var _=s(C,function(p,o,u){var l=t(x,function(h){return h(p)});return{criteria:l,index:++P,value:p}});return i(_,function(p,o){return c(p,o,j)})}return Ds=b,Ds}var Es,bl;function vf(){if(bl)return Es;bl=1;function t(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return Es=t,Es}var Os,jl;function yf(){if(jl)return Os;jl=1;var t=vf(),n=Math.max;function r(s,i,a){return i=n(i===void 0?s.length-1:i,0),function(){for(var c=arguments,d=-1,g=n(c.length-i,0),b=Array(g);++d<g;)b[d]=c[i+d];d=-1;for(var C=Array(i+1);++d<i;)C[d]=c[d];return C[i]=a(b),t(s,this,C)}}return Os=r,Os}var qs,wl;function xf(){if(wl)return qs;wl=1;function t(n){return function(){return n}}return qs=t,qs}var Ms,_l;function bf(){if(_l)return Ms;_l=1;var t=Ge(),n=(function(){try{var r=t(Object,"defineProperty");return r({},"",{}),r}catch{}})();return Ms=n,Ms}var As,Sl;function jf(){if(Sl)return As;Sl=1;var t=xf(),n=bf(),r=rr(),s=n?function(i,a){return n(i,"toString",{configurable:!0,enumerable:!1,value:t(a),writable:!0})}:r;return As=s,As}var ks,Cl;function wf(){if(Cl)return ks;Cl=1;var t=800,n=16,r=Date.now;function s(i){var a=0,c=0;return function(){var d=r(),g=n-(d-c);if(c=d,g>0){if(++a>=t)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}return ks=s,ks}var Ts,Rl;function _f(){if(Rl)return Ts;Rl=1;var t=jf(),n=wf(),r=n(t);return Ts=r,Ts}var Ls,Pl;function Sf(){if(Pl)return Ls;Pl=1;var t=rr(),n=yf(),r=_f();function s(i,a){return r(n(i,a,t),i+"")}return Ls=s,Ls}var zs,Nl;function Cf(){if(Nl)return zs;Nl=1;var t=Hd(),n=gf(),r=Sf(),s=nc(),i=r(function(a,c){if(a==null)return[];var d=c.length;return d>1&&s(a,c[0],c[1])?c=[]:d>2&&s(c[0],c[1],c[2])&&(c=[c[0]]),n(a,t(c,1),[])});return zs=i,zs}var Rf=Cf();const dt=Ys(Rf),Pf=()=>{const[t,n]=ke("/worlds/*"),r=n?.["*"],[s,i]=D.useState(!1),a=be(Ye),c=be(Xe),d=be(je),g=te(V.WorldRevisions),b=te(V.WorldUse),C=te(V.WorldLoad),[x,j]=D.useState(!1),[P,_]=D.useState(null),[p,o]=D.useState(null),u=D.useRef(r);u.current=r;const l=K.useUtils(),h=K.world.use.useMutation(),v=K.world.load.useMutation(),m=Be();D.useEffect(()=>{!r||!d.started||!g||(j(!0),_(null),Promise.all([l.world.revisions.fetch({world:r}),l.world.meta.fetch({world:r})]).then(([N,M])=>{u.current===r&&(_(N?.reverse()??null),o(M??null),j(!1))}))},[r,d.started]);const y=async()=>{if(!r)return;i(!0),await h.mutateAsync({world:r})&&(Xe.set(r),Ye.set(r)),i(!1)},f=async()=>{if(!r)return;if(i(!0),await h.mutateAsync({})){const M=await l.world.next.fetch(),E=await l.world.active.fetch();Xe.set(E),Ye.set(M)}i(!1)},S=async N=>{if(!r)return;i(!0);const M=await v.mutateAsync({world:r,revision:N??void 0});console.info("world loaded",M),i(!1)};return e.jsxs("div",{className:"world-view",children:[e.jsx("div",{className:"world-info",children:r&&e.jsxs(we,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"World name",children:"Name:"})," ",r]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"World map",children:"Map:"})," ",p?.meta.world.environment??"Unknown"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"If yes, this world will be loaded on the next server start",children:"Is Default:"})," ",c===r?"Yes":"No"]}),a!==c&&e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Whether this world is configured to load next start if no other default is specified",children:"Is Fallback World:"})," ",a===r?"Yes":"No"]})]}),e.jsx("div",{className:"section-header","data-tooltip":"A list of all brick, component, or entity owners in this world.",children:"Owners"}),e.jsx("div",{className:"owners-table",children:e.jsx(Nf,{meta:p})}),e.jsx("div",{className:"section-header","data-tooltip":"A list of all the revisions made to this world. Click the buttons on the right to load a specific revision.",children:"Revisions"}),e.jsxs("div",{className:"revision-list",children:[e.jsx(jt,{visible:x,children:e.jsx(fe,{active:x,size:"huge",children:"Loading World"})}),P?.length===0&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:"Something went wrong listing the revisions"})}),P===null&&!x&&d.started&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:g?"World might not exist":"Missing permission to view revisions"})}),P?.map(N=>e.jsxs("div",{className:"revision-item config",children:[e.jsx("div",{className:"revision-index",children:N.index}),e.jsxs("div",{className:"revision-note",children:[N.note,e.jsx("div",{className:"revision-date",children:new Date(N.date).toLocaleString()})]}),C&&e.jsx(H,{icon:!0,main:!0,disabled:s||!d.started,onClick:()=>m.prompt(e.jsxs("p",{children:["Are you sure you want to load revision ",N.index," ","of"," ",e.jsx("b",{style:{color:"white"},children:r}),"? Unsaved work will be lost."]})).then(M=>{M&&S(N.index)}),"data-tooltip":`Load revision ${N.index}`,children:e.jsx(Mt,{})})]},N.index))]})]})}),e.jsxs(Pe,{attached:!0,children:[b&&c!==r&&e.jsxs(H,{normal:!0,disabled:s||!r,"data-tooltip":"Make this the default world for the server (on startup)",onClick:()=>y(),children:[e.jsx(Tl,{}),"Make Default"]}),b&&c===r&&e.jsxs(H,{warn:!0,disabled:s||!r,"data-tooltip":"Remove this world as the default world for the server (on startup)",onClick:()=>f(),children:[e.jsx(Ll,{}),"Clear Default"]}),e.jsx("span",{style:{flex:1}}),C&&e.jsxs(H,{main:!0,"data-tooltip":"Load this world immediately",disabled:s||!d.started||!r,onClick:()=>m.prompt(e.jsxs("p",{children:["Are you sure you want to load"," ",e.jsx("b",{style:{color:"white"},children:r}),"? Unsaved work will be lost."]})).then(N=>{N&&S()}),children:[e.jsx(Mt,{}),"Load"]})]}),m.children]})},Nf=({meta:t})=>{const[n,r]=xt(),s=D.useMemo(()=>Object.fromEntries(t?.owners.map(C=>[C.id,C])??[]),[t]),i=D.useMemo(()=>{const C=Object.keys(s),x=dt(C,l=>s[l].display_name),j=dt(C,l=>s[l].brick_count),P=dt(C,l=>s[l].component_count),_=dt(C,l=>s[l].entity_count),p=dt(C,l=>s[l].wire_count),o=pi(C.length).reverse(),u=pi(C.length);return{display_name:x,brick_count:j,component_count:P,entity_count:_,wire_count:p,reverse:o,inorder:u}},[t]),[a,c]=D.useState("brick_count"),[d,g]=D.useState(-1),b=C=>{C==a?g(x=>x*-1):(c(C),g(C==="display_name"?1:-1))};return t?e.jsx(we,{children:e.jsxs("table",{className:"br-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},onClick:()=>b("display_name"),children:e.jsxs("span",{children:["Name",e.jsx(ye,{name:"display_name",sort:a,direction:d})]})}),e.jsx("th",{onClick:()=>b("brick_count"),children:e.jsxs("span",{children:["Bricks",e.jsx(ye,{name:"brick_count",sort:a,direction:d})]})}),e.jsx("th",{onClick:()=>b("component_count"),children:e.jsxs("span",{children:["Components",e.jsx(ye,{name:"component_count",sort:a,direction:d})]})}),e.jsx("th",{onClick:()=>b("entity_count"),children:e.jsxs("span",{children:["Entities",e.jsx(ye,{name:"entity_count",sort:a,direction:d})]})}),e.jsx("th",{onClick:()=>b("wire_count"),children:e.jsxs("span",{children:["Wires",e.jsx(ye,{name:"wire_count",sort:a,direction:d})]})})]})}),e.jsxs("tbody",{children:[t?.owners.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:5,style:{textAlign:"center"},children:"No owners found in this world"})}),(d>0?i.inorder:i.reverse).map(C=>{const x=i[a][C],j=s[x];return!j||j.brick_count+j.component_count+j.entity_count+j.wire_count===0?null:e.jsxs("tr",{onClick:()=>r(`/players/${x}`),children:[e.jsx("td",{className:"player-name",children:e.jsx("div",{className:"player-name-container",children:e.jsxs("div",{children:[e.jsx("div",{"data-tooltip":j.display_name?"Display Name":"Username",children:j.display_name??j.name}),j.display_name&&e.jsx("div",{className:"username","data-tooltip":"Username",children:j.name})]})})}),e.jsx("td",{style:{textAlign:"right"},children:j.brick_count.toLocaleString()}),e.jsx("td",{style:{textAlign:"right"},children:j.component_count.toLocaleString()}),e.jsx("td",{style:{textAlign:"right"},children:j.entity_count.toLocaleString()}),e.jsx("td",{style:{textAlign:"right"},children:j.wire_count.toLocaleString()})]},x)})]})]})}):null},Df=["Plate","Space","Studio","Peaks"],Ef=()=>{const t=Ze(V.WorldList),[n,r]=D.useState(""),[s,i]=D.useState(!0),[a,c]=D.useState([]),[d,g]=D.useState(!1),b=be(Ye),C=be(Xe),[x,j]=D.useState(!1);te(V.WorldRevisions);const P=te(V.WorldSave),_=te(V.WorldCreate),p=te(V.WorldUse),o=te(V.WorldActive),u=te(V.WorldNext),l=tc(),[h,v]=ke("/worlds/*?"),m=v?.["*"],y=K.useUtils(),f=K.world.use.useMutation(),S=K.world.save.useMutation(),N=K.world.create.useMutation(),M=async()=>{i(!0);const[B,Y,ie]=await Promise.all([y.world.list.fetch(),o?y.world.active.fetch():null,u?y.world.next.fetch():null]);c(B),Xe.set(Y),Ye.set(ie),i(!1)};D.useEffect(()=>{M()},[]);const E=async()=>{if(g(!0),await f.mutateAsync({})&&(Xe.set(null),u)){const Y=await y.world.next.fetch();Ye.set(Y)}g(!1)},T=async()=>{g(!0),await S.mutateAsync({}),g(!1)},A=async B=>{g(!0),await S.mutateAsync({name:B}),g(!1),M()},q=async(B,Y)=>{g(!0),await N.mutateAsync({name:B,level:Y}),g(!1),M()},z=B=>B.toLowerCase().includes(n.toLowerCase()),[W,L]=D.useState(null),$=Be({title:"Save World As",content:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:"Enter a name for the new world"}),e.jsx("p",{children:e.jsx(le,{type:"text",placeholder:"World Name",value:W??"",onChange:B=>L(B)})})]}),leftButton:B=>e.jsxs(H,{normal:!0,onClick:()=>B(null),children:[e.jsx(Oe,{}),"Cancel"]}),rightButton:B=>e.jsxs(H,{disabled:!W,main:!0,onClick:()=>B(W),children:[e.jsx(vt,{}),"Save As"]})}),[ee,J]=D.useState("Plate"),oe=Be({title:"Create New World",content:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:"Select a name and map for the new world"}),e.jsx("p",{children:e.jsx(le,{type:"text",placeholder:"World Name",value:W??"",onChange:B=>L(B)})}),e.jsx("p",{children:e.jsx(Bs,{value:ee,options:Df,onChange:B=>J(B)})})]}),leftButton:B=>e.jsxs(H,{normal:!0,onClick:()=>B(null),children:[e.jsx(Oe,{}),"Cancel"]}),rightButton:B=>e.jsxs(H,{disabled:!W,main:!0,onClick:()=>B({name:W,map:ee}),children:[e.jsx(vt,{}),"Create"]})});return t?e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"Worlds",children:(P||_||p)&&e.jsxs("div",{className:"widgets-container worlds",children:[e.jsxs(H,{normal:!0,boxy:!0,"data-tooltip":"Show more world actions",onClick:()=>j(!x),children:[x?e.jsx(St,{}):e.jsx(_t,{}),"Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:x?"block":"none"},children:[P&&e.jsxs(H,{info:!0,disabled:d||!l.started,"data-tooltip":"Save the currently loaded world",onClick:()=>{j(!1),T()},children:[e.jsx(Gt,{}),"Save World"]}),P&&e.jsxs(H,{normal:!0,disabled:d||!l.started,"data-tooltip":"Save a copy of the currently loaded world",onClick:()=>{j(!1),L(null),$.prompt().then(B=>{B&&A(B)})},children:[e.jsx(uu,{}),"Save As"]}),_&&e.jsxs(H,{main:!0,disabled:d||!l.started,"data-tooltip":"Create a new world",onClick:()=>{j(!1),L(null),J("Plate"),oe.prompt().then(B=>{B&&q(B.name,B.map)})},children:[e.jsx(du,{}),"New World"]}),p&&e.jsxs(H,{normal:C===null,warn:C!==null,disabled:d||!C,"data-tooltip":"Remove the default world for the server (on startup)",onClick:()=>{j(!1),E()},children:[e.jsx(Ll,{}),"Clear Default"]})]})]})}),e.jsxs(Me,{children:[e.jsx(Ae,{}),e.jsxs("div",{className:"generic-container worlds-container",children:[e.jsxs("div",{className:"worlds-list-container",children:[e.jsxs(xe,{children:[e.jsx(le,{type:"text",placeholder:"Search Worlds...",value:n,onChange:B=>r(B)}),e.jsx("span",{style:{flex:1}}),e.jsx(H,{icon:!0,normal:!0,"data-tooltip":"Refresh world list",onClick:M,children:e.jsx($t,{})})]}),e.jsxs("div",{className:"worlds-list",children:[e.jsx(we,{children:a.map(B=>z(B)&&e.jsxs(mt,{href:"/worlds/"+B,className:`world-item ${B===m?"selected":""} ${B===C?"next":""}`,"data-tooltip":B===C?"This world will load when the server starts":"",children:[B===C?e.jsx(Tl,{className:"world-item-active"}):!C&&B===b?e.jsx(hu,{className:"world-item-next"}):e.jsx(pu,{}),B]},B))}),e.jsx(fe,{active:s,size:"huge",children:"Loading Worlds"})]})]}),e.jsxs("div",{className:"world-inspector-container",children:[e.jsx(xe,{attached:!0,children:m??"SELECT A WORLD"}),e.jsx("div",{className:"world-inspector",children:e.jsx(Pf,{})})]})]})]}),$.children,oe.children]}):null},Of=({children:t})=>e.jsx(K.Provider,{client:yt,queryClient:ha,children:e.jsxs(Rc,{client:ha,children:[e.jsx(bu,{}),t]})}),qf=()=>e.jsx(Of,{children:e.jsx(Cc,{children:e.jsx(Pc,{hook:Nc,children:e.jsxs(Gs,{children:[e.jsx(ge,{path:"/",component:gd}),e.jsx(ge,{path:"/account",component:Cu}),e.jsx(ge,{path:"/history/:time?",component:Ru}),e.jsx(ge,{path:"/players/:id?",component:xd}),e.jsx(ge,{path:"/plugins/:id?",component:wd}),e.jsx(ge,{path:"/server",component:Nd}),e.jsx(ge,{path:"/users/:id?",component:qd}),e.jsx(ge,{path:"/worlds/*?",component:Ef}),e.jsx(ge,{component:ju})]})})})});vc.createRoot(document.getElementById("root")).render(e.jsx(qf,{}));
|
|
7
|
+
//# sourceMappingURL=app-DMr_-wik.js.map
|