omegga 1.2.0 → 1.2.2
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/dist/cli/terminal.js +7 -3
- package/dist/cli/terminal.js.map +1 -1
- package/dist/omegga/matchers/join.js +3 -2
- package/dist/omegga/matchers/join.js.map +1 -1
- package/dist/omegga/player.js +1 -1
- package/dist/omegga/player.js.map +1 -1
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +1 -0
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
- package/dist/omegga/server.d.ts +1 -0
- package/dist/omegga/server.js +4 -2
- package/dist/omegga/server.js.map +1 -1
- package/dist/plugin.d.ts +1 -0
- package/dist/plugin.js.map +1 -1
- package/dist/webserver/backend/api.d.ts +1 -0
- package/dist/webserver/backend/api.js.map +1 -1
- package/dist/webserver/backend/database.d.ts +2 -0
- package/dist/webserver/backend/database.js +21 -3
- package/dist/webserver/backend/database.js.map +1 -1
- package/dist/webserver/backend/metrics.js +6 -4
- package/dist/webserver/backend/metrics.js.map +1 -1
- package/package.json +1 -1
- package/public/app.html +12 -4
- package/public/assets/app-CtCP4WJN.js +6 -0
- package/public/assets/{app-CRu25Om6.js.map → app-CtCP4WJN.js.map} +1 -1
- package/public/assets/auth-CvxEWAMc.js +2 -0
- package/public/assets/auth-CvxEWAMc.js.map +1 -0
- package/public/assets/{index-CtY8r8rg.js → index-BC_vZ56r.js} +6 -5
- package/public/assets/index-BC_vZ56r.js.map +1 -0
- package/public/assets/index-DYcAgWjJ.js +2 -0
- package/public/assets/index-DYcAgWjJ.js.map +1 -0
- package/public/assets/shared/@components-B442wlEb.js +2 -0
- package/public/assets/shared/@components-B442wlEb.js.map +1 -0
- package/public/auth.html +7 -3
- package/templates/safe-ts/omegga.d.ts +1 -0
- package/public/assets/app-CRu25Om6.js +0 -6
- package/public/assets/auth-DdQ5DJ5h.js +0 -2
- package/public/assets/auth-DdQ5DJ5h.js.map +0 -1
- package/public/assets/index-CtY8r8rg.js.map +0 -1
- package/public/assets/index-DaWNRjkx.js +0 -2
- package/public/assets/index-DaWNRjkx.js.map +0 -1
- package/public/assets/shared/@components-BiaBe0jO.js +0 -2
- package/public/assets/shared/@components-BiaBe0jO.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as s}from"./jsx-runtime-DoEZbXM1.js";import{useStore as v}from"./shared/@nanostores_react-HTG3s0lp.js";import{a as j}from"./index-CSV4ZXsq.js";import{I as p,a as f}from"./IconX-SYtbnYKI.js";import{r as x}from"./index-i4mjW0og.js";import{I as g}from"./IconCheck-Dyq5qyY1.js";const N=j(null),b="/assets/dark_bg-uu5tZDxN.webp",$="/assets/auth_bg-DJZN1T-H.webp",z=({children:e})=>{const a=v(N);return s.jsxs("div",{className:"background",children:[s.jsx("img",{className:"bg-img dark",src:b}),s.jsx("img",{className:"bg-img light",src:$}),a&&s.jsxs("div",{className:"version",children:["Omegga v",a]}),e]})},h=({children:e,warn:a,main:r,error:t,info:o,normal:l,disabled:m=!1,icon:n,boxy:i,onClick:c,className:d,...u})=>s.jsx("div",{className:["button",d??"",a&&"warn",r&&"main",t&&"error",o&&"info",l&&"normal",m&&"disabled",i&&"boxy",n&&"icon"].filter(Boolean).join(" "),onClick:c,...u,children:s.jsx("div",{className:"button-content",children:e})}),k=({children:e,className:a,attached:r,...t})=>s.jsx("div",{className:`footer ${r?"attached":""} ${a??""}`,...t,children:e}),w=({children:e,className:a,attached:r,...t})=>s.jsx("div",{className:`header ${r?"attached":""} ${a??""}`,...t,children:e});function E({placeholder:e,tooltip:a,disabled:r,type:t="text",value:o,roboto:l,onBlur:m,onFocus:n,onChange:i,...c}){return s.jsx("div",{className:`input ${r?"disabled":""} ${l?"roboto":""}`,"data-tooltip":a,children:s.jsx("input",{spellCheck:"false",type:t,placeholder:e,disabled:r,value:o,onChange:d=>{const u=t==="number"?Number(d.target.value):d.target.value;i&&i(u)},...c})})}const C={small:"24",normal:"30",huge:"60",massive:"120"},M=({children:e,onClick:a,blur:r,active:t=!0,inline:o=!1,size:l="normal"})=>s.jsx("div",{className:`loader ${t?"active":""} ${o?"inline":""}`,onClick:a,children:s.jsxs("div",{className:`loader-container ${r?"blur":""}`,children:[s.jsx(p,{className:"loader-icon",size:C[l]}),s.jsx("div",{children:e})]})}),B=({visible:e,children:a})=>s.jsx("div",{className:`dimmer ${e?"visible":""}`,children:s.jsx("div",{className:"dimmer-content",children:a})}),I=({children:e})=>s.jsx("div",{className:"popout-content",children:e}),y=({visible:e,children:a})=>s.jsx("div",{className:`modal ${e?"visible":""}`,children:s.jsx("div",{className:"modal-content",children:a})}),S=({leftButton:e,rightButton:a,title:r,content:t}={})=>{const[o,l]=x.useState({show:!1,message:"",children:null,resolve:n=>{}});return{prompt:x.useCallback(n=>new Promise(i=>{l({message:typeof n=="string"?n:"",children:typeof n!="string"&&n?n:null,show:!0,resolve(c){i(c),l({show:!1,message:"",children:null,resolve:()=>{}})}})}),[]),children:s.jsx(B,{visible:o.show,children:s.jsxs(y,{visible:!0,children:[s.jsx(w,{attached:!0,children:r??"Confirmation"}),s.jsx(I,{children:t??o.children??s.jsxs("p",{children:["Are you sure you want to ",o.message,"?"]})}),s.jsxs(k,{attached:!0,children:[e?.(o.resolve)??s.jsxs(h,{main:!0,onClick:()=>o.resolve(!0),children:[s.jsx(g,{}),"Yes"]}),s.jsx("div",{style:{flex:1}}),a?.(o.resolve)??s.jsxs(h,{normal:!0,onClick:()=>o.resolve(!1),children:[s.jsx(f,{}),"No"]})]})]})})}};export{N as $,z as B,B as D,k as F,w as H,E as I,M as L,y as M,I as P,h as a,S as u};
|
|
2
|
+
//# sourceMappingURL=index-DYcAgWjJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DYcAgWjJ.js","sources":["../../frontend/src/stores/version.ts","../../frontend/assets/img/dark_bg.webp","../../frontend/assets/img/auth_bg.webp","../../frontend/src/components/background/index.tsx","../../frontend/src/components/button/index.tsx","../../frontend/src/components/footer/index.tsx","../../frontend/src/components/header/index.tsx","../../frontend/src/components/input/index.tsx","../../frontend/src/components/loader/index.tsx","../../frontend/src/components/dimmer/index.tsx","../../frontend/src/components/popout/index.tsx","../../frontend/src/components/modal/index.tsx"],"sourcesContent":["import { atom } from 'nanostores';\n\nexport const $version = atom<string | null>(null);\n","export default \"__VITE_ASSET__DZw7aIWt__\"","export default \"__VITE_ASSET__CbOwMhlW__\"","import { useStore } from '@nanostores/react';\nimport type React from 'react';\nimport { $version } from '../../stores/version';\nimport darkBg from '../../../assets/img/dark_bg.webp';\nimport lightBg from '../../../assets/img/auth_bg.webp';\n\nexport const Background = ({ children }: React.PropsWithChildren) => {\n const version = useStore($version);\n return (\n <div className=\"background\">\n <img className=\"bg-img dark\" src={darkBg} />\n <img className=\"bg-img light\" src={lightBg} />\n {version && <div className=\"version\">Omegga v{version}</div>}\n {children}\n </div>\n );\n};\n","import type React from 'react';\nimport type { HTMLAttributes, MouseEventHandler } from 'react';\n\nexport const Button = ({\n children,\n warn,\n main,\n error,\n info,\n normal,\n disabled = false,\n icon,\n boxy,\n onClick,\n className,\n ...props\n}: React.PropsWithChildren<{\n warn?: boolean;\n main?: boolean;\n error?: boolean;\n info?: boolean;\n normal?: boolean;\n disabled?: boolean;\n icon?: boolean;\n boxy?: boolean;\n onClick?: MouseEventHandler;\n}> &\n HTMLAttributes<HTMLDivElement>) => (\n <div\n className={[\n 'button',\n className ?? '',\n warn && 'warn',\n main && 'main',\n error && 'error',\n info && 'info',\n normal && 'normal',\n disabled && 'disabled',\n boxy && 'boxy',\n icon && 'icon',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onClick}\n {...props}\n >\n <div className=\"button-content\">{children}</div>\n </div>\n);\n","import type { HTMLAttributes } from 'react';\n\nexport const Footer = ({\n children,\n className,\n attached,\n ...props\n}: HTMLAttributes<HTMLDivElement> & {\n attached?: boolean;\n}) => (\n <div\n className={`footer ${attached ? 'attached' : ''} ${className ?? ''}`}\n {...props}\n >\n {children}\n </div>\n);\n","import type { HTMLAttributes } from 'react';\nimport type React from 'react';\n\nexport const Header = ({\n children,\n className,\n attached,\n ...props\n}: React.PropsWithChildren &\n HTMLAttributes<HTMLDivElement> & { attached?: boolean }) => (\n <div\n className={`header ${attached ? 'attached' : ''} ${className ?? ''}`}\n {...props}\n >\n {children}\n </div>\n);\n","import type { HTMLAttributes } from 'react';\n\nexport function Input<T extends 'text' | 'number' | 'password'>({\n placeholder,\n tooltip,\n disabled,\n type = 'text' as T,\n value,\n roboto,\n onBlur,\n onFocus,\n onChange,\n ...props\n}: {\n placeholder?: string;\n tooltip?: string;\n disabled?: boolean;\n roboto?: boolean;\n type?: T;\n value: T extends 'number' ? number : string;\n onChange?: (v: T extends 'number' ? number : string) => void;\n} & Omit<HTMLAttributes<HTMLInputElement>, 'onChange'>) {\n return (\n <div\n className={`input ${disabled ? 'disabled' : ''} ${roboto ? 'roboto' : ''}`}\n data-tooltip={tooltip}\n >\n <input\n spellCheck=\"false\"\n type={type}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n onChange={e => {\n const newValue =\n type === 'number' ? Number(e.target.value) : e.target.value;\n if (onChange)\n onChange(newValue as T extends 'number' ? number : string);\n }}\n {...props}\n />\n </div>\n );\n}\n","import { IconLoader } from '@tabler/icons-react';\nimport type React from 'react';\nimport type { MouseEventHandler } from 'react';\n\nconst sizes = {\n small: '24',\n normal: '30',\n huge: '60',\n massive: '120',\n};\n\nexport const Loader = ({\n children,\n onClick,\n blur,\n active = true,\n inline = false,\n size = 'normal',\n}: React.PropsWithChildren<{\n active?: boolean;\n inline?: boolean;\n blur?: boolean;\n size?: 'small' | 'normal' | 'huge' | 'massive';\n onClick?: MouseEventHandler;\n}>) => {\n return (\n <div\n className={`loader ${active ? 'active' : ''} ${inline ? 'inline' : ''}`}\n onClick={onClick}\n >\n <div className={`loader-container ${blur ? 'blur' : ''}`}>\n <IconLoader className=\"loader-icon\" size={sizes[size]} />\n <div>{children}</div>\n </div>\n </div>\n );\n};\n","import type { PropsWithChildren } from 'react';\n\nexport const Dimmer = ({\n visible,\n children,\n}: PropsWithChildren<{ visible: boolean }>) => (\n <div className={`dimmer ${visible ? 'visible' : ''}`}>\n <div className=\"dimmer-content\">{children}</div>\n </div>\n);\n","export const PopoutContent = ({ children }: React.PropsWithChildren) => (\n <div className=\"popout-content\">{children}</div>\n);\n","import { IconCheck, IconX } from '@tabler/icons-react';\nimport {\n useCallback,\n useState,\n type PropsWithChildren,\n type ReactNode,\n} from 'react';\nimport { Button } from '../button';\nimport { Dimmer } from '../dimmer';\nimport { Footer } from '../footer';\nimport { Header } from '../header';\nimport { PopoutContent } from '../popout';\n\nexport const Modal = ({\n visible,\n children,\n}: PropsWithChildren<{ visible: boolean }>) => (\n <div className={`modal ${visible ? 'visible' : ''}`}>\n <div className=\"modal-content\">{children}</div>\n </div>\n);\n\nexport const useConfirm = <T = boolean,>({\n leftButton,\n rightButton,\n title,\n content,\n}: {\n title?: string;\n content?: ReactNode;\n leftButton?: (confirm: (ok: T) => void) => React.ReactNode;\n rightButton?: (confirm: (ok: T) => void) => React.ReactNode;\n} = {}) => {\n const [confirm, setConfim] = useState({\n show: false,\n message: '',\n children: null as ReactNode | null,\n resolve: (_val: T) => {},\n });\n const prompt = useCallback(\n (message?: string | ReactNode) =>\n new Promise<T>(resolve => {\n setConfim({\n message: typeof message === 'string' ? message : '',\n children: typeof message !== 'string' && message ? message : null,\n show: true,\n resolve(val: T) {\n resolve(val);\n setConfim({\n show: false,\n message: '',\n children: null,\n resolve: () => {},\n });\n },\n });\n }),\n [],\n );\n\n return {\n prompt,\n children: (\n <Dimmer visible={confirm.show}>\n <Modal visible>\n <Header attached>{title ?? 'Confirmation'}</Header>\n <PopoutContent>\n {content ?? confirm.children ?? (\n <p>Are you sure you want to {confirm.message}?</p>\n )}\n </PopoutContent>\n <Footer attached>\n {leftButton?.(confirm.resolve) ?? (\n <Button main onClick={() => confirm.resolve(true as T)}>\n <IconCheck />\n Yes\n </Button>\n )}\n <div style={{ flex: 1 }} />\n {rightButton?.(confirm.resolve) ?? (\n <Button normal onClick={() => confirm.resolve(false as T)}>\n <IconX />\n No\n </Button>\n )}\n </Footer>\n </Modal>\n </Dimmer>\n ),\n };\n};\n"],"names":["$version","atom","darkBg","lightBg","Background","children","version","useStore","jsxs","jsx","Button","warn","main","error","info","normal","disabled","icon","boxy","onClick","className","props","Footer","attached","Header","Input","placeholder","tooltip","type","value","roboto","onBlur","onFocus","onChange","e","newValue","sizes","Loader","blur","active","inline","size","IconLoader","Dimmer","visible","PopoutContent","Modal","useConfirm","leftButton","rightButton","title","content","confirm","setConfim","useState","_val","useCallback","message","resolve","val","IconCheck","IconX"],"mappings":"2RAEO,MAAMA,EAAWC,EAAoB,IAAI,ECFhDC,EAAe,gCCAfC,EAAe,gCCMFC,EAAa,CAAC,CAAE,SAAAC,KAAwC,CACnE,MAAMC,EAAUC,EAASP,CAAQ,EACjC,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAU,aACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,cAAc,IAAKP,EAAQ,EAC1CO,EAAAA,IAAC,MAAA,CAAI,UAAU,eAAe,IAAKN,EAAS,EAC3CG,GAAWE,EAAAA,KAAC,MAAA,CAAI,UAAU,UAAU,SAAA,CAAA,WAASF,CAAA,EAAQ,EACrDD,CAAA,EACH,CAEJ,ECbaK,EAAS,CAAC,CACrB,SAAAL,EACA,KAAAM,EACA,KAAAC,EACA,MAAAC,EACA,KAAAC,EACA,OAAAC,EACA,SAAAC,EAAW,GACX,KAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAYEZ,EAAAA,IAAC,MAAA,CACC,UAAW,CACT,SACAW,GAAa,GACbT,GAAQ,OACRC,GAAQ,OACRC,GAAS,QACTC,GAAQ,OACRC,GAAU,SACVC,GAAY,WACZE,GAAQ,OACRD,GAAQ,MAAA,EAEP,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAAAE,EACC,GAAGE,EAEJ,SAAAZ,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAkB,SAAAJ,CAAA,CAAS,CAAA,CAC5C,EC7CWiB,EAAS,CAAC,CACrB,SAAAjB,EACA,UAAAe,EACA,SAAAG,EACA,GAAGF,CACL,IAGEZ,EAAAA,IAAC,MAAA,CACC,UAAW,UAAUc,EAAW,WAAa,EAAE,IAAIH,GAAa,EAAE,GACjE,GAAGC,EAEH,SAAAhB,CAAA,CACH,ECZWmB,EAAS,CAAC,CACrB,SAAAnB,EACA,UAAAe,EACA,SAAAG,EACA,GAAGF,CACL,IAEEZ,EAAAA,IAAC,MAAA,CACC,UAAW,UAAUc,EAAW,WAAa,EAAE,IAAIH,GAAa,EAAE,GACjE,GAAGC,EAEH,SAAAhB,CAAA,CACH,ECbK,SAASoB,EAAgD,CAC9D,YAAAC,EACA,QAAAC,EACA,SAAAX,EACA,KAAAY,EAAO,OACP,MAAAC,EACA,OAAAC,EACA,OAAAC,EACA,QAAAC,EACA,SAAAC,EACA,GAAGZ,CACL,EAQwD,CACtD,OACEZ,EAAAA,IAAC,MAAA,CACC,UAAW,SAASO,EAAW,WAAa,EAAE,IAAIc,EAAS,SAAW,EAAE,GACxE,eAAcH,EAEd,SAAAlB,EAAAA,IAAC,QAAA,CACC,WAAW,QACX,KAAAmB,EACA,YAAAF,EACA,SAAAV,EACA,MAAAa,EACA,SAAUK,GAAK,CACb,MAAMC,EACJP,IAAS,SAAW,OAAOM,EAAE,OAAO,KAAK,EAAIA,EAAE,OAAO,MACpDD,GACFA,EAASE,CAAgD,CAC7D,EACC,GAAGd,CAAA,CAAA,CACN,CAAA,CAGN,CCvCA,MAAMe,EAAQ,CACZ,MAAO,KACP,OAAQ,KACR,KAAM,KACN,QAAS,KACX,EAEaC,EAAS,CAAC,CACrB,SAAAhC,EACA,QAAAc,EACA,KAAAmB,EACA,OAAAC,EAAS,GACT,OAAAC,EAAS,GACT,KAAAC,EAAO,QACT,IAQIhC,EAAAA,IAAC,MAAA,CACC,UAAW,UAAU8B,EAAS,SAAW,EAAE,IAAIC,EAAS,SAAW,EAAE,GACrE,QAAArB,EAEA,gBAAC,MAAA,CAAI,UAAW,oBAAoBmB,EAAO,OAAS,EAAE,GACpD,SAAA,CAAA7B,MAACiC,GAAW,UAAU,cAAc,KAAMN,EAAMK,CAAI,EAAG,EACvDhC,MAAC,OAAK,SAAAJ,CAAA,CAAS,CAAA,CAAA,CACjB,CAAA,CAAA,EC/BOsC,EAAS,CAAC,CACrB,QAAAC,EACA,SAAAvC,CACF,IACEI,EAAAA,IAAC,MAAA,CAAI,UAAW,UAAUmC,EAAU,UAAY,EAAE,GAChD,SAAAnC,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAkB,SAAAJ,EAAS,CAAA,CAC5C,ECRWwC,EAAgB,CAAC,CAAE,SAAAxC,KAC9BI,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAkB,SAAAJ,CAAA,CAAS,ECY/ByC,EAAQ,CAAC,CACpB,QAAAF,EACA,SAAAvC,CACF,IACEI,EAAAA,IAAC,MAAA,CAAI,UAAW,SAASmC,EAAU,UAAY,EAAE,GAC/C,SAAAnC,EAAAA,IAAC,MAAA,CAAI,UAAU,gBAAiB,SAAAJ,EAAS,CAAA,CAC3C,EAGW0C,EAAa,CAAe,CACvC,WAAAC,EACA,YAAAC,EACA,MAAAC,EACA,QAAAC,CACF,EAKI,KAAO,CACT,KAAM,CAACC,EAASC,CAAS,EAAIC,WAAS,CACpC,KAAM,GACN,QAAS,GACT,SAAU,KACV,QAAUC,GAAY,CAAC,CAAA,CACxB,EAsBD,MAAO,CACL,OAtBaC,EAAAA,YACZC,GACC,IAAI,QAAWC,GAAW,CACxBL,EAAU,CACR,QAAS,OAAOI,GAAY,SAAWA,EAAU,GACjD,SAAU,OAAOA,GAAY,UAAYA,EAAUA,EAAU,KAC7D,KAAM,GACN,QAAQE,EAAQ,CACdD,EAAQC,CAAG,EACXN,EAAU,CACR,KAAM,GACN,QAAS,GACT,SAAU,KACV,QAAS,IAAM,CAAC,CAAA,CACjB,CACH,CAAA,CACD,CACH,CAAC,EACH,CAAA,CAAC,EAKD,eACGV,EAAA,CAAO,QAASS,EAAQ,KACvB,SAAA5C,EAAAA,KAACsC,EAAA,CAAM,QAAO,GACZ,SAAA,CAAArC,EAAAA,IAACe,EAAA,CAAO,SAAQ,GAAE,SAAA0B,GAAS,eAAe,QACzCL,EAAA,CACE,SAAAM,GAAWC,EAAQ,iBACjB,IAAA,CAAE,SAAA,CAAA,4BAA0BA,EAAQ,QAAQ,GAAA,CAAA,CAAC,CAAA,CAElD,EACA5C,EAAAA,KAACc,EAAA,CAAO,SAAQ,GACb,SAAA,CAAA0B,IAAaI,EAAQ,OAAO,GAC3B5C,EAAAA,KAACE,EAAA,CAAO,KAAI,GAAC,QAAS,IAAM0C,EAAQ,QAAQ,EAAS,EACnD,SAAA,CAAA3C,EAAAA,IAACmD,EAAA,EAAU,EAAE,KAAA,EAEf,QAED,MAAA,CAAI,MAAO,CAAE,KAAM,GAAK,EACxBX,IAAcG,EAAQ,OAAO,GAC5B5C,EAAAA,KAACE,EAAA,CAAO,OAAM,GAAC,QAAS,IAAM0C,EAAQ,QAAQ,EAAU,EACtD,SAAA,CAAA3C,EAAAA,IAACoD,EAAA,EAAM,EAAE,IAAA,CAAA,CAEX,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAGN"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{B as I,a as P,D as c,F as f,H as g,I as N,L as S,M as B,P as v,u as w}from"../index-DYcAgWjJ.js";import{C as L,o as T,D as h,I as x,e as y,c as F,N as M,n as R,P as U,f as k,R as E,a as b,S as j,d as q,T as z,U as A}from"../index-BC_vZ56r.js";import"../jsx-runtime-DoEZbXM1.js";import"../jsx-runtime-Bw5QeaCk.js";import"./@nanostores_react-HTG3s0lp.js";import"../index-i4mjW0og.js";import"../_commonjsHelpers-CE1G-McA.js";import"../index-c0qeY2gs.js";import"../index-CJ4e7_2M.js";import"../index-CSV4ZXsq.js";import"../IconX-SYtbnYKI.js";import"../IconCheck-Dyq5qyY1.js";import"../index-CRRRLlCc.js";import"../IconWorld-DtARpBKX.js";import"./@utils-BQyGUOvP.js";export{I as Background,P as Button,L as ChatEntry,T as ChatTime,c as Dimmer,h as Dropdown,f as Footer,g as Header,x as InfiniteScroll,N as Input,y as ListInput,S as Loader,B as Modal,F as NavBar,M as NavHeader,R as Page,U as PageContent,k as PlayerDropdown,v as PopoutContent,E as RoleDropdown,b as Scroll,j as SideNav,q as SortIcons,z as Toggle,A as UserName,w as useConfirm};
|
|
2
|
+
//# sourceMappingURL=@components-B442wlEb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"@components-B442wlEb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/public/auth.html
CHANGED
|
@@ -632,6 +632,10 @@ a,
|
|
|
632
632
|
background: #5e7190;
|
|
633
633
|
outline: none;
|
|
634
634
|
}
|
|
635
|
+
.input.roboto > input {
|
|
636
|
+
font-family: "Roboto";
|
|
637
|
+
font-weight: 400;
|
|
638
|
+
}
|
|
635
639
|
.input .icon {
|
|
636
640
|
margin-right: 8px;
|
|
637
641
|
}
|
|
@@ -1182,8 +1186,8 @@ body {
|
|
|
1182
1186
|
}
|
|
1183
1187
|
}
|
|
1184
1188
|
</style>
|
|
1185
|
-
<script type="importmap">{"imports":{"react":"./assets/shared/react-CR6vSpIu.js","react-dom":"./assets/shared/react-dom-BznoGTRX.js","react/jsx-runtime":"./assets/shared/react_jsx-runtime-C15Zu6_p.js","@nanostores/react":"./assets/shared/@nanostores_react-HTG3s0lp.js","nanostores":"./assets/shared/nanostores-BFqqIY_c.js","@utils":"./assets/shared/@utils-BQyGUOvP.js","@tabler/icons-react":"./assets/shared/@tabler_icons-react-DwfGvIVr.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@components":"./assets/shared/@components-
|
|
1186
|
-
<script type="module" crossorigin src="/assets/auth-
|
|
1189
|
+
<script type="importmap">{"imports":{"react":"./assets/shared/react-CR6vSpIu.js","react-dom":"./assets/shared/react-dom-BznoGTRX.js","react/jsx-runtime":"./assets/shared/react_jsx-runtime-C15Zu6_p.js","@nanostores/react":"./assets/shared/@nanostores_react-HTG3s0lp.js","nanostores":"./assets/shared/nanostores-BFqqIY_c.js","@utils":"./assets/shared/@utils-BQyGUOvP.js","@tabler/icons-react":"./assets/shared/@tabler_icons-react-DwfGvIVr.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@components":"./assets/shared/@components-B442wlEb.js"}}</script>
|
|
1190
|
+
<script type="module" crossorigin src="/assets/auth-CvxEWAMc.js"></script>
|
|
1187
1191
|
<link rel="modulepreload" crossorigin href="/assets/index-c0qeY2gs.js">
|
|
1188
1192
|
<link rel="modulepreload" crossorigin href="/assets/index-DqHVrEeL.js">
|
|
1189
1193
|
<link rel="modulepreload" crossorigin href="/assets/client-C5T7_OK9.js">
|
|
@@ -1196,7 +1200,7 @@ body {
|
|
|
1196
1200
|
<link rel="modulepreload" crossorigin href="/assets/index-CSV4ZXsq.js">
|
|
1197
1201
|
<link rel="modulepreload" crossorigin href="/assets/IconCheck-Dyq5qyY1.js">
|
|
1198
1202
|
<link rel="modulepreload" crossorigin href="/assets/IconX-SYtbnYKI.js">
|
|
1199
|
-
<link rel="modulepreload" crossorigin href="/assets/index-
|
|
1203
|
+
<link rel="modulepreload" crossorigin href="/assets/index-DYcAgWjJ.js">
|
|
1200
1204
|
<link rel="modulepreload" crossorigin href="/assets/IconArrowRight-CA5_cccJ.js">
|
|
1201
1205
|
<link rel="modulepreload" crossorigin href="/assets/IconLockOpen-D95XLORK.js">
|
|
1202
1206
|
</head>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{c as or}from"./client-C5T7_OK9.js";import{j as e}from"./jsx-runtime-DoEZbXM1.js";import{r as z,a as lr}from"./index-i4mjW0og.js";import{N as Pe,P as Ne,S as Ee,r as V,I as cr,C as ur,s as De,i as Ue,a as be,L as Ut,b as En,c as ge,D as Mt,T as xe,d as Re,e as dr,f as hr,R as fr,u as On,$ as _n,g as pr,h as mr,j as gr,k as yr,l as vr,m as xr,n as br}from"./index-CtY8r8rg.js";import{u as Oe,L as rt,a as Tt,S as zn,R as me,b as jr,c as wr}from"./index-CRRRLlCc.js";import{duration as ue,isoTime as Sr,heartbeatAgo as kn,isoDate as Ft,debounce as Lt,logout as Rr}from"./shared/@utils-BQyGUOvP.js";import{a as A,L as he,F as We,I as ie,H as Wt,D as Mn,M as Tn,P as zt,u as ut}from"./index-DaWNRjkx.js";import{I as Cr,a as dt,b as Dr,c as Pr,d as Nr,e as Er,f as Gt,g as Or,h as ht,i as _r,j as bt,k as zr,l as Ln,m as Wn,n as kr,o as ft,p as qn,q as Hn,r as Mr,s as Tr,t as Lr,u as Wr,v as qr,w as Hr,x as Ar,y as An,z as Ir,A as Br,B as $t,C as Yt,D as In,E as Bn,F as Ur,G as Fr,H as Gr,J as $r}from"./IconWorldPlus-CMeE6oOX.js";import pt from"./IconArrowRight-CA5_cccJ.js";import{a as Yr,g as Xr}from"./_commonjsHelpers-CE1G-McA.js";import{r as fe}from"./index-c0qeY2gs.js";import{r as qt}from"./index-DqHVrEeL.js";import{I as Vr,a as Un,b as mt,c as Fn,d as Xt,e as Kr}from"./IconWorld-DtARpBKX.js";import{a as st}from"./IconX-SYtbnYKI.js";import{I as Jr}from"./IconCheck-Dyq5qyY1.js";import{useStore as Ce}from"./shared/@nanostores_react-HTG3s0lp.js";import{useSaved as Zr,SavedSpan as Qr,SavedStatus as es}from"./shared/@hooks-DfTzYBIL.js";import{a as Gn}from"./index-CSV4ZXsq.js";import"./jsx-runtime-Bw5QeaCk.js";import"./index-CJ4e7_2M.js";let gt=-1,yt=-1,He=!1,Ae,$e;const de=document.createElement("div");Object.assign(de.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"});de.innerText="";document.body.appendChild(de);document.body.addEventListener("mousemove",t=>{gt=t.clientX,yt=t.clientY,Ae&&$n()});function $n(){const t=document.body.clientWidth,l=document.body.clientHeight;Object.assign(de.style,{left:gt+(gt<t/2?16:-16-de.clientWidth)+"px",top:yt+(yt<l/2?16:-16-de.clientHeight)+"px"})}function Yn(t){if(!t||!t.getAttribute)return;const l=t.getAttribute("data-tooltip");return l||Yn(t.parentNode??null)}function ts(){const t=document.elementFromPoint(gt,yt),l=Yn(t),s=de.innerText;!l&&He&&!Ae&&(He=!1,clearTimeout($e)),l&&!He&&!Ae?(clearTimeout($e),He=!0,$e=setTimeout(()=>{de.innerText=l,$n(),de.style.opacity="1",Ae=!0},400)):s!==l&&Ae&&He&&(clearTimeout($e),He=!1,$e=setTimeout(()=>{Ae=!1,Object.assign(de.style,{left:"-1000px",top:"-1000px"})},300),de.style.opacity="0")}setInterval(()=>{ts()},100);const ns=()=>e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Not Found"}),e.jsx(Ne,{children:e.jsx(Ee,{})})]}),Vt=["January","February","March","April","May","June","July","August","September","October","November","December"],je=(t,l=!1)=>Object.keys(t).map(Number).sort((s,f)=>l?f-s:s-f),rs=()=>{const[t,l]=Oe("/history/:time?"),s=l?.time,[f,b]=z.useState(!0),[m,g]=z.useState(!0),[w,R]=z.useState(!1),[j,k]=z.useState({}),[S,C]=z.useState(0),E=z.useMemo(()=>new Date().getFullYear(),[]),[x,p]=z.useState(E),n=z.useMemo(()=>new Date().getMonth(),[]),[a,r]=z.useState(n),o=z.useMemo(()=>new Date().getDate(),[]),h=z.useRef(null),[c,u]=z.useState(null),[i,v]=z.useState(null),N=z.useRef(null),P=z.useRef(null),O=z.useRef([]),_=z.useCallback(async()=>{b(!0);const M=await V("chat.calendar");k(M),b(!1)},[]),T=z.useCallback(M=>{if(!M.length)return;O.current=O.current.concat(M),O.current.sort((d,y)=>d.created-y.created);const W=O.current[0].created,$=O.current[O.current.length-1].created;for(let d=0;d<O.current.length;d++){const y=O.current[d],D=new Date(y.created);y.date=D.getDate(),d===0||y.date!==O.current[d-1].date?y.newDay=`${Vt[D.getMonth()]} ${y.date}, ${D.getFullYear()}`:y.newDay=void 0}N.current=W,P.current=$,C(d=>d+1)},[]),H=z.useCallback(async({before:M,after:W},$)=>{b(!0);const d=await V("chat.history",{before:M,after:W});return T(d),$==="bottom"&&O.current.length>200&&O.current.splice(0,O.current.length-200),$==="top"&&O.current.length>200&&O.current.splice(200,O.current.length-200),g(!1),b(!1),d},[]),F=()=>new Promise(M=>{const W=h.current?.querySelector(".scroll-scroller");window.requestAnimationFrame(()=>{W&&(W.scrollTop=W.scrollHeight,M())})});z.useEffect(()=>{const M=s&&new Date(s.match(/^\d+$/)?Number(s):s);(async()=>(m&&await _(),M&&!Number.isNaN(M.getTime())?(O.current=[],await H({before:M.getTime()-1}),await H({after:M.getTime()-1}),requestAnimationFrame(()=>{h.current?.querySelector(".focused")?.scrollIntoView({block:"center"})})):(O.current=[],await H({before:Date.now()}),F())))()},[s]);const U=async(M,W,$)=>{O.current=[],C(y=>y+1);const d=new Date(M,W,$).getTime();await H({after:d})},K=async()=>{if(c&&N.current&&N.current<=c)return;(await H({before:N.current},"top")).length===0&&u(N.current)},J=async()=>{if(i&&P.current&&P.current>=i)return;(await H({after:P.current},"bottom")).length===0&&v(P.current)},Q=z.useMemo(()=>je(j),[j]),Y=z.useMemo(()=>je(j,!0),[j]),te=z.useMemo(()=>{const M=Y.find(W=>W>x)??null;return M?[M,je(j[M])[0]]:null},[j,Y]),ne=z.useMemo(()=>{const M=Q.find(W=>W<x)??null;return M?[M,je(j[M],!0)[0]]:null},[j,Q]),ae=z.useMemo(()=>{if(a!==11&&j[x]){const $=je(j[x]).find(d=>d>a);if(typeof $=="number")return[x,$]}const M=Q.find($=>$>x);if(!M)return null;const W=je(j[M])[0];return typeof W!="number"?null:[M,W]},[x,a,Q,j]),le=z.useMemo(()=>{if(a!==0&&j[x]){const $=je(j[x],!0).find(d=>d<a);if(typeof $=="number")return[x,$]}const M=Y.find($=>$<x);if(!M)return null;const W=je(j[M],!0)[0];return typeof W!="number"?null:[M,W]},[x,a,j]),oe=M=>{M&&(p(x),r(a))},ze=new Date(x,a+1,0).getDate(),ke=new Date(x,a,1).getDay();return e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"History",children:e.jsxs("div",{className:"calendar-container",children:[e.jsxs(A,{normal:!0,boxy:!0,style:{marginRight:0},"data-tooltip":"Show a calendar previewing days",onClick:()=>R(!w),children:[e.jsx(Cr,{})," Calendar"]}),w&&e.jsxs("div",{className:"calendar",children:[e.jsxs("div",{className:"year",children:[e.jsx(A,{icon:!0,normal:!0,disabled:!ne,onClick:()=>oe(ne),children:e.jsx(dt,{})}),x,e.jsx(A,{icon:!0,normal:!0,disabled:!te,onClick:()=>oe(te),children:e.jsx(pt,{})})]}),e.jsxs("div",{className:"month",children:[e.jsx(A,{icon:!0,normal:!0,disabled:!le,onClick:()=>oe(le),children:e.jsx(dt,{})}),Vt[a],e.jsx(A,{icon:!0,normal:!0,disabled:!ae,onClick:()=>oe(ae),children:e.jsx(pt,{})})]}),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:ke}).map((M,W)=>e.jsx("div",{},`empty-${W}`)),Array.from({length:ze}).map((M,W)=>e.jsx("div",{className:`days ${n===a&&E===x&&W+1===o?"today":""} ${!(n===a&&E===x&&W+1>o)&&j[x]?.[a]?.[W]?"available":""}`,onClick:()=>U(x,a,W+1),children:W+1},W))]})]})]})}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsx("div",{className:"generic-container history-container",ref:h,children:e.jsxs("div",{className:"chat-history",children:[e.jsx("div",{className:"scroll-container",children:e.jsx(cr,{loading:f,onTop:K,onBottom:J,onTopScrollsToBottom:!1,offset:500,className:"scroll-scroller",children:O.current.map(M=>e.jsxs(lr.Fragment,{children:[M.newDay&&e.jsx("div",{className:"chat-new-day",children:M.newDay}),e.jsx(ur,{log:M},M._id)]},M._id))})}),e.jsx(he,{active:f&&m,size:"huge",children:"Loading Chat"})]})})]})]})};var Ct={exports:{}},Ye={},nt={exports:{}},ss=nt.exports,Kt;function Ht(){return Kt||(Kt=1,function(t,l){(function(s,f){f(l)})(ss,function(s){function f(M){return function($,d,y,D,L,I,q){return M($,d,q)}}function b(M){return function($,d,y,D){if(!$||!d||typeof $!="object"||typeof d!="object")return M($,d,y,D);var L=D.get($),I=D.get(d);if(L&&I)return L===d&&I===$;D.set($,d),D.set(d,$);var q=M($,d,y,D);return D.delete($),D.delete(d),q}}function m(M,W){var $={};for(var d in M)$[d]=M[d];for(var d in W)$[d]=W[d];return $}function g(M){return M.constructor===Object||M.constructor==null}function w(M){return typeof M.then=="function"}function R(M,W){return M===W||M!==M&&W!==W}var j="[object Arguments]",k="[object Boolean]",S="[object Date]",C="[object RegExp]",E="[object Map]",x="[object Number]",p="[object Object]",n="[object Set]",a="[object String]",r=Object.prototype.toString;function o(M){var W=M.areArraysEqual,$=M.areDatesEqual,d=M.areMapsEqual,y=M.areObjectsEqual,D=M.areRegExpsEqual,L=M.areSetsEqual,I=M.createIsNestedEqual,q=I(G);function G(B,X,ee){if(B===X)return!0;if(!B||!X||typeof B!="object"||typeof X!="object")return B!==B&&X!==X;if(g(B)&&g(X))return y(B,X,q,ee);var Me=Array.isArray(B),ce=Array.isArray(X);if(Me||ce)return Me===ce&&W(B,X,q,ee);var se=r.call(B);return se!==r.call(X)?!1:se===S?$(B,X,q,ee):se===C?D(B,X,q,ee):se===E?d(B,X,q,ee):se===n?L(B,X,q,ee):se===p||se===j?w(B)||w(X)?!1:y(B,X,q,ee):se===k||se===x||se===a?R(B.valueOf(),X.valueOf()):!1}return G}function h(M,W,$,d){var y=M.length;if(W.length!==y)return!1;for(;y-- >0;)if(!$(M[y],W[y],y,y,M,W,d))return!1;return!0}var c=b(h);function u(M,W){return R(M.valueOf(),W.valueOf())}function i(M,W,$,d){var y=M.size===W.size;if(!y)return!1;if(!M.size)return!0;var D={},L=0;return M.forEach(function(I,q){if(y){var G=!1,B=0;W.forEach(function(X,ee){!G&&!D[B]&&(G=$(q,ee,L,B,M,W,d)&&$(I,X,q,ee,M,W,d))&&(D[B]=!0),B++}),L++,y=G}}),y}var v=b(i),N="_owner",P=Object.prototype.hasOwnProperty;function O(M,W,$,d){var y=Object.keys(M),D=y.length;if(Object.keys(W).length!==D)return!1;for(var L;D-- >0;){if(L=y[D],L===N){var I=!!M.$$typeof,q=!!W.$$typeof;if((I||q)&&I!==q)return!1}if(!P.call(W,L)||!$(M[L],W[L],L,L,M,W,d))return!1}return!0}var _=b(O);function T(M,W){return M.source===W.source&&M.flags===W.flags}function H(M,W,$,d){var y=M.size===W.size;if(!y)return!1;if(!M.size)return!0;var D={};return M.forEach(function(L,I){if(y){var q=!1,G=0;W.forEach(function(B,X){!q&&!D[G]&&(q=$(L,B,I,X,M,W,d))&&(D[G]=!0),G++}),y=q}}),y}var F=b(H),U=Object.freeze({areArraysEqual:h,areDatesEqual:u,areMapsEqual:i,areObjectsEqual:O,areRegExpsEqual:T,areSetsEqual:H,createIsNestedEqual:f}),K=Object.freeze({areArraysEqual:c,areDatesEqual:u,areMapsEqual:v,areObjectsEqual:_,areRegExpsEqual:T,areSetsEqual:F,createIsNestedEqual:f}),J=o(U);function Q(M,W){return J(M,W,void 0)}var Y=o(m(U,{createIsNestedEqual:function(){return R}}));function te(M,W){return Y(M,W,void 0)}var ne=o(K);function ae(M,W){return ne(M,W,new WeakMap)}var le=o(m(K,{createIsNestedEqual:function(){return R}}));function oe(M,W){return le(M,W,new WeakMap)}function ze(M){return o(m(U,M(U)))}function ke(M){var W=o(m(K,M(K)));return function($,d,y){return y===void 0&&(y=new WeakMap),W($,d,y)}}s.circularDeepEqual=ae,s.circularShallowEqual=oe,s.createCustomCircularEqual=ke,s.createCustomEqual=ze,s.deepEqual=Q,s.sameValueZeroEqual=R,s.shallowEqual=te,Object.defineProperty(s,"__esModule",{value:!0})})}(nt,nt.exports)),nt.exports}var it={exports:{}},Jt;function jt(){if(Jt)return it.exports;Jt=1;function t(s){var f,b,m="";if(typeof s=="string"||typeof s=="number")m+=s;else if(typeof s=="object")if(Array.isArray(s)){var g=s.length;for(f=0;f<g;f++)s[f]&&(b=t(s[f]))&&(m&&(m+=" "),m+=b)}else for(b in s)s[b]&&(m&&(m+=" "),m+=b);return m}function l(){for(var s,f,b=0,m="",g=arguments.length;b<g;b++)(s=arguments[b])&&(f=t(s))&&(m&&(m+=" "),m+=f);return m}return it.exports=l,it.exports.clsx=l,it.exports}var Z={},Dt,Zt;function as(){return Zt||(Zt=1,Dt=function(l,s,f){return l===s?!0:l.className===s.className&&f(l.style,s.style)&&l.width===s.width&&l.autoSize===s.autoSize&&l.cols===s.cols&&l.draggableCancel===s.draggableCancel&&l.draggableHandle===s.draggableHandle&&f(l.verticalCompact,s.verticalCompact)&&f(l.compactType,s.compactType)&&f(l.layout,s.layout)&&f(l.margin,s.margin)&&f(l.containerPadding,s.containerPadding)&&l.rowHeight===s.rowHeight&&l.maxRows===s.maxRows&&l.isBounded===s.isBounded&&l.isDraggable===s.isDraggable&&l.isResizable===s.isResizable&&l.allowOverlap===s.allowOverlap&&l.preventCollision===s.preventCollision&&l.useCSSTransforms===s.useCSSTransforms&&l.transformScale===s.transformScale&&l.isDroppable===s.isDroppable&&f(l.resizeHandles,s.resizeHandles)&&f(l.resizeHandle,s.resizeHandle)&&l.onLayoutChange===s.onLayoutChange&&l.onDragStart===s.onDragStart&&l.onDrag===s.onDrag&&l.onDragStop===s.onDragStop&&l.onResizeStart===s.onResizeStart&&l.onResize===s.onResize&&l.onResizeStop===s.onResizeStop&&l.onDrop===s.onDrop&&f(l.droppingItem,s.droppingItem)&&f(l.innerRef,s.innerRef)}),Dt}var Qt;function Ge(){if(Qt)return Z;Qt=1,Object.defineProperty(Z,"__esModule",{value:!0}),Z.bottom=f,Z.childrenEqual=R,Z.cloneLayout=b,Z.cloneLayoutItem=w,Z.collides=k,Z.compact=S,Z.compactItem=x,Z.compactType=M,Z.correctBounds=p,Z.fastPositionEqual=j,Z.fastRGLPropsEqual=void 0,Z.getAllCollisions=r,Z.getFirstCollision=a,Z.getLayoutItem=n,Z.getStatics=o,Z.modifyLayout=m,Z.moveElement=h,Z.moveElementAwayFromCollision=c,Z.noop=void 0,Z.perc=u,Z.resizeItemInDirection=Y,Z.setTopLeft=ne,Z.setTransform=te,Z.sortLayoutItems=ae,Z.sortLayoutItemsByColRow=oe,Z.sortLayoutItemsByRowCol=le,Z.synchronizeLayoutWithChildren=ze,Z.validateLayout=ke,Z.withLayoutItem=g;var t=Ht(),l=s(fe());function s(d){return d&&d.__esModule?d:{default:d}}function f(d){let y=0,D;for(let L=0,I=d.length;L<I;L++)D=d[L].y+d[L].h,D>y&&(y=D);return y}function b(d){const y=Array(d.length);for(let D=0,L=d.length;D<L;D++)y[D]=w(d[D]);return y}function m(d,y){const D=Array(d.length);for(let L=0,I=d.length;L<I;L++)y.i===d[L].i?D[L]=y:D[L]=d[L];return D}function g(d,y,D){let L=n(d,y);return L?(L=D(w(L)),d=m(d,L),[d,L]):[d,null]}function w(d){return{w:d.w,h:d.h,x:d.x,y:d.y,i:d.i,minW:d.minW,maxW:d.maxW,minH:d.minH,maxH:d.maxH,moved:!!d.moved,static:!!d.static,isDraggable:d.isDraggable,isResizable:d.isResizable,resizeHandles:d.resizeHandles,isBounded:d.isBounded}}function R(d,y){return(0,t.deepEqual)(l.default.Children.map(d,D=>D?.key),l.default.Children.map(y,D=>D?.key))&&(0,t.deepEqual)(l.default.Children.map(d,D=>D?.props["data-grid"]),l.default.Children.map(y,D=>D?.props["data-grid"]))}Z.fastRGLPropsEqual=as();function j(d,y){return d.left===y.left&&d.top===y.top&&d.width===y.width&&d.height===y.height}function k(d,y){return!(d.i===y.i||d.x+d.w<=y.x||d.x>=y.x+y.w||d.y+d.h<=y.y||d.y>=y.y+y.h)}function S(d,y,D,L){const I=o(d),q=ae(d,y),G=Array(d.length);for(let B=0,X=q.length;B<X;B++){let ee=w(q[B]);ee.static||(ee=x(I,ee,y,D,q,L),I.push(ee)),G[d.indexOf(q[B])]=ee,ee.moved=!1}return G}const C={x:"w",y:"h"};function E(d,y,D,L){const I=C[L];y[L]+=1;const q=d.map(G=>G.i).indexOf(y.i);for(let G=q+1;G<d.length;G++){const B=d[G];if(!B.static){if(B.y>y.y+y.h)break;k(y,B)&&E(d,B,D+y[I],L)}}y[L]=D}function x(d,y,D,L,I,q){const G=D==="vertical",B=D==="horizontal";if(G)for(y.y=Math.min(f(d),y.y);y.y>0&&!a(d,y);)y.y--;else if(B)for(;y.x>0&&!a(d,y);)y.x--;let X;for(;(X=a(d,y))&&!(D===null&&q);)if(B?E(I,y,X.x+X.w,"x"):E(I,y,X.y+X.h,"y"),B&&y.x+y.w>L)for(y.x=L-y.w,y.y++;y.x>0&&!a(d,y);)y.x--;return y.y=Math.max(y.y,0),y.x=Math.max(y.x,0),y}function p(d,y){const D=o(d);for(let L=0,I=d.length;L<I;L++){const q=d[L];if(q.x+q.w>y.cols&&(q.x=y.cols-q.w),q.x<0&&(q.x=0,q.w=y.cols),!q.static)D.push(q);else for(;a(D,q);)q.y++}return d}function n(d,y){for(let D=0,L=d.length;D<L;D++)if(d[D].i===y)return d[D]}function a(d,y){for(let D=0,L=d.length;D<L;D++)if(k(d[D],y))return d[D]}function r(d,y){return d.filter(D=>k(D,y))}function o(d){return d.filter(y=>y.static)}function h(d,y,D,L,I,q,G,B,X){if(y.static&&y.isDraggable!==!0||y.y===L&&y.x===D)return d;`${y.i}${String(D)}${String(L)}${y.x}${y.y}`;const ee=y.x,Me=y.y;typeof D=="number"&&(y.x=D),typeof L=="number"&&(y.y=L),y.moved=!0;let ce=ae(d,G);(G==="vertical"&&typeof L=="number"?Me>=L:G==="horizontal"&&typeof D=="number"?ee>=D:!1)&&(ce=ce.reverse());const qe=r(ce,y),at=qe.length>0;if(at&&X)return b(d);if(at&&q)return`${y.i}`,y.x=ee,y.y=Me,y.moved=!1,d;for(let Rt=0,ir=qe.length;Rt<ir;Rt++){const Te=qe[Rt];`${y.i}${y.x}${y.y}${Te.i}${Te.x}${Te.y}`,!Te.moved&&(Te.static?d=c(d,Te,y,I,G):d=c(d,y,Te,I,G))}return d}function c(d,y,D,L,I,q){const G=I==="horizontal",B=I==="vertical",X=y.static;if(L){L=!1;const ce={x:G?Math.max(y.x-D.w,0):D.x,y:B?Math.max(y.y-D.h,0):D.y,w:D.w,h:D.h,i:"-1"},se=a(d,ce),qe=se&&se.y+se.h>y.y,at=se&&y.x+y.w>se.x;if(se){if(qe&&B)return h(d,D,void 0,y.y+1,L,X,I);if(qe&&I==null)return y.y=D.y,D.y=D.y+D.h,d;if(at&&G)return h(d,y,D.x,void 0,L,X,I)}else return`${D.i}${ce.x}${ce.y}`,h(d,D,G?ce.x:void 0,B?ce.y:void 0,L,X,I)}const ee=G?D.x+1:void 0,Me=B?D.y+1:void 0;return ee==null&&Me==null?d:h(d,D,G?D.x+1:void 0,B?D.y+1:void 0,L,X,I)}function u(d){return d*100+"%"}const i=(d,y,D,L)=>d+D>L?y:D,v=(d,y,D)=>d<0?y:D,N=d=>Math.max(0,d),P=d=>Math.max(0,d),O=(d,y,D)=>{let{left:L,height:I,width:q}=y;const G=d.top-(I-d.height);return{left:L,width:q,height:v(G,d.height,I),top:P(G)}},_=(d,y,D)=>{let{top:L,left:I,height:q,width:G}=y;return{top:L,height:q,width:i(d.left,d.width,G,D),left:N(I)}},T=(d,y,D)=>{let{top:L,height:I,width:q}=y;const G=d.left-(q-d.width);return{height:I,width:G<0?d.width:i(d.left,d.width,q,D),top:P(L),left:N(G)}},H=(d,y,D)=>{let{top:L,left:I,height:q,width:G}=y;return{width:G,left:I,height:v(L,d.height,q),top:P(L)}},Q={n:O,ne:function(){return O(arguments.length<=0?void 0:arguments[0],_(...arguments))},e:_,se:function(){return H(arguments.length<=0?void 0:arguments[0],_(...arguments))},s:H,sw:function(){return H(arguments.length<=0?void 0:arguments[0],T(...arguments))},w:T,nw:function(){return O(arguments.length<=0?void 0:arguments[0],T(...arguments))}};function Y(d,y,D,L){const I=Q[d];return I?I(y,{...y,...D},L):D}function te(d){let{top:y,left:D,width:L,height:I}=d;const q=`translate(${D}px,${y}px)`;return{transform:q,WebkitTransform:q,MozTransform:q,msTransform:q,OTransform:q,width:`${L}px`,height:`${I}px`,position:"absolute"}}function ne(d){let{top:y,left:D,width:L,height:I}=d;return{top:`${y}px`,left:`${D}px`,width:`${L}px`,height:`${I}px`,position:"absolute"}}function ae(d,y){return y==="horizontal"?oe(d):y==="vertical"?le(d):d}function le(d){return d.slice(0).sort(function(y,D){return y.y>D.y||y.y===D.y&&y.x>D.x?1:y.y===D.y&&y.x===D.x?0:-1})}function oe(d){return d.slice(0).sort(function(y,D){return y.x>D.x||y.x===D.x&&y.y>D.y?1:-1})}function ze(d,y,D,L,I){d=d||[];const q=[];l.default.Children.forEach(y,B=>{if(B?.key==null)return;const X=n(d,String(B.key)),ee=B.props["data-grid"];X&&ee==null?q.push(w(X)):ee?q.push(w({...ee,i:B.key})):q.push(w({w:1,h:1,x:0,y:f(q),i:String(B.key)}))});const G=p(q,{cols:D});return I?G:S(G,L,D)}function ke(d){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const D=["x","y","w","h"];if(!Array.isArray(d))throw new Error(y+" must be an array!");for(let L=0,I=d.length;L<I;L++){const q=d[L];for(let G=0;G<D.length;G++){const B=D[G],X=q[B];if(typeof X!="number"||Number.isNaN(X))throw new Error(`ReactGridLayout: ${y}[${L}].${B} must be a number! Received: ${X} (${typeof X})`)}if(typeof q.i<"u"&&typeof q.i!="string")throw new Error(`ReactGridLayout: ${y}[${L}].i must be a string! Received: ${q.i} (${typeof q.i})`)}}function M(d){const{verticalCompact:y,compactType:D}=d||{};return y===!1?null:D}function W(){}const $=()=>{};return Z.noop=$,Z}var ye={},en;function At(){if(en)return ye;en=1,Object.defineProperty(ye,"__esModule",{value:!0}),ye.calcGridColWidth=t,ye.calcGridItemPosition=s,ye.calcGridItemWHPx=l,ye.calcWH=b,ye.calcXY=f,ye.clamp=m;function t(g){const{margin:w,containerPadding:R,containerWidth:j,cols:k}=g;return(j-w[0]*(k-1)-R[0]*2)/k}function l(g,w,R){return Number.isFinite(g)?Math.round(w*g+Math.max(0,g-1)*R):g}function s(g,w,R,j,k,S){const{margin:C,containerPadding:E,rowHeight:x}=g,p=t(g),n={};return S&&S.resizing?(n.width=Math.round(S.resizing.width),n.height=Math.round(S.resizing.height)):(n.width=l(j,p,C[0]),n.height=l(k,x,C[1])),S&&S.dragging?(n.top=Math.round(S.dragging.top),n.left=Math.round(S.dragging.left)):S&&S.resizing&&typeof S.resizing.top=="number"&&typeof S.resizing.left=="number"?(n.top=Math.round(S.resizing.top),n.left=Math.round(S.resizing.left)):(n.top=Math.round((x+C[1])*R+E[1]),n.left=Math.round((p+C[0])*w+E[0])),n}function f(g,w,R,j,k){const{margin:S,containerPadding:C,cols:E,rowHeight:x,maxRows:p}=g,n=t(g);let a=Math.round((R-C[0])/(n+S[0])),r=Math.round((w-C[1])/(x+S[1]));return a=m(a,0,E-j),r=m(r,0,p-k),{x:a,y:r}}function b(g,w,R,j,k,S){const{margin:C,maxRows:E,cols:x,rowHeight:p}=g,n=t(g);let a=Math.round((w+C[0])/(n+C[0])),r=Math.round((R+C[1])/(p+C[1])),o=m(a,0,x-j),h=m(r,0,E-k);return["sw","w","nw"].indexOf(S)!==-1&&(o=m(a,0,x)),["nw","n","ne"].indexOf(S)!==-1&&(h=m(r,0,E)),{w:o,h}}function m(g,w,R){return Math.max(Math.min(g,R),w)}return ye}var Xe={},Pt={exports:{}},Nt,tn;function is(){if(tn)return Nt;tn=1;var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Nt=t,Nt}var Et,nn;function os(){if(nn)return Et;nn=1;var t=is();function l(){}function s(){}return s.resetWarningCache=l,Et=function(){function f(g,w,R,j,k,S){if(S!==t){var C=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 C.name="Invariant Violation",C}}f.isRequired=f;function b(){return f}var m={array:f,bigint:f,bool:f,func:f,number:f,object:f,string:f,symbol:f,any:f,arrayOf:b,element:f,elementType:f,instanceOf:b,node:f,objectOf:b,oneOf:b,oneOfType:b,shape:b,exact:b,checkPropTypes:s,resetWarningCache:l};return m.PropTypes=m,m},Et}var rn;function _e(){return rn||(rn=1,Pt.exports=os()()),Pt.exports}var Ve={exports:{}},Ot={},re={},we={},sn;function wt(){if(sn)return we;sn=1,Object.defineProperty(we,"__esModule",{value:!0}),we.dontSetMe=b,we.findInArray=t,we.int=f,we.isFunction=l,we.isNum=s;function t(m,g){for(let w=0,R=m.length;w<R;w++)if(g.apply(g,[m[w],w,m]))return m[w]}function l(m){return typeof m=="function"||Object.prototype.toString.call(m)==="[object Function]"}function s(m){return typeof m=="number"&&!isNaN(m)}function f(m){return parseInt(m,10)}function b(m,g,w){if(m[g])return new Error(`Invalid prop ${g} passed to ${w} - do not set this, set it on the child.`)}return we}var Se={},an;function ls(){if(an)return Se;an=1,Object.defineProperty(Se,"__esModule",{value:!0}),Se.browserPrefixToKey=s,Se.browserPrefixToStyle=f,Se.default=void 0,Se.getPrefix=l;const t=["Moz","Webkit","O","ms"];function l(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const g=window.document?.documentElement?.style;if(!g||m in g)return"";for(let w=0;w<t.length;w++)if(s(m,t[w])in g)return t[w];return""}function s(m,g){return g?`${g}${b(m)}`:m}function f(m,g){return g?`-${g.toLowerCase()}-${m}`:m}function b(m){let g="",w=!0;for(let R=0;R<m.length;R++)w?(g+=m[R].toUpperCase(),w=!1):m[R]==="-"?w=!0:g+=m[R];return g}return Se.default=l(),Se}var on;function It(){if(on)return re;on=1,Object.defineProperty(re,"__esModule",{value:!0}),re.addClassName=c,re.addEvent=g,re.addUserSelectStyles=r,re.createCSSTransform=E,re.createSVGTransform=x,re.getTouch=n,re.getTouchIdentifier=a,re.getTranslation=p,re.innerHeight=k,re.innerWidth=S,re.matchesSelector=b,re.matchesSelectorAndParentsTo=m,re.offsetXYFromParent=C,re.outerHeight=R,re.outerWidth=j,re.removeClassName=u,re.removeEvent=w,re.scheduleRemoveUserSelectStyles=o;var t=wt(),l=s(ls());function s(i,v){if(typeof WeakMap=="function")var N=new WeakMap,P=new WeakMap;return(s=function(O,_){if(!_&&O&&O.__esModule)return O;var T,H,F={__proto__:null,default:O};if(O===null||typeof O!="object"&&typeof O!="function")return F;if(T=_?P:N){if(T.has(O))return T.get(O);T.set(O,F)}for(const U in O)U!=="default"&&{}.hasOwnProperty.call(O,U)&&((H=(T=Object.defineProperty)&&Object.getOwnPropertyDescriptor(O,U))&&(H.get||H.set)?T(F,U,H):F[U]=O[U]);return F})(i,v)}let f="";function b(i,v){return f||(f=(0,t.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(N){return(0,t.isFunction)(i[N])})),(0,t.isFunction)(i[f])?i[f](v):!1}function m(i,v,N){let P=i;do{if(b(P,v))return!0;if(P===N)return!1;P=P.parentNode}while(P);return!1}function g(i,v,N,P){if(!i)return;const O={capture:!0,...P};i.addEventListener?i.addEventListener(v,N,O):i.attachEvent?i.attachEvent("on"+v,N):i["on"+v]=N}function w(i,v,N,P){if(!i)return;const O={capture:!0,...P};i.removeEventListener?i.removeEventListener(v,N,O):i.detachEvent?i.detachEvent("on"+v,N):i["on"+v]=null}function R(i){let v=i.clientHeight;const N=i.ownerDocument.defaultView.getComputedStyle(i);return v+=(0,t.int)(N.borderTopWidth),v+=(0,t.int)(N.borderBottomWidth),v}function j(i){let v=i.clientWidth;const N=i.ownerDocument.defaultView.getComputedStyle(i);return v+=(0,t.int)(N.borderLeftWidth),v+=(0,t.int)(N.borderRightWidth),v}function k(i){let v=i.clientHeight;const N=i.ownerDocument.defaultView.getComputedStyle(i);return v-=(0,t.int)(N.paddingTop),v-=(0,t.int)(N.paddingBottom),v}function S(i){let v=i.clientWidth;const N=i.ownerDocument.defaultView.getComputedStyle(i);return v-=(0,t.int)(N.paddingLeft),v-=(0,t.int)(N.paddingRight),v}function C(i,v,N){const O=v===v.ownerDocument.body?{left:0,top:0}:v.getBoundingClientRect(),_=(i.clientX+v.scrollLeft-O.left)/N,T=(i.clientY+v.scrollTop-O.top)/N;return{x:_,y:T}}function E(i,v){const N=p(i,v,"px");return{[(0,l.browserPrefixToKey)("transform",l.default)]:N}}function x(i,v){return p(i,v,"")}function p(i,v,N){let{x:P,y:O}=i,_=`translate(${P}${N},${O}${N})`;if(v){const T=`${typeof v.x=="string"?v.x:v.x+N}`,H=`${typeof v.y=="string"?v.y:v.y+N}`;_=`translate(${T}, ${H})`+_}return _}function n(i,v){return i.targetTouches&&(0,t.findInArray)(i.targetTouches,N=>v===N.identifier)||i.changedTouches&&(0,t.findInArray)(i.changedTouches,N=>v===N.identifier)}function a(i){if(i.targetTouches&&i.targetTouches[0])return i.targetTouches[0].identifier;if(i.changedTouches&&i.changedTouches[0])return i.changedTouches[0].identifier}function r(i){if(!i)return;let v=i.getElementById("react-draggable-style-el");v||(v=i.createElement("style"),v.type="text/css",v.id="react-draggable-style-el",v.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
2
|
-
`,v.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
3
|
-
`,i.getElementsByTagName("head")[0].appendChild(v)),i.body&&c(i.body,"react-draggable-transparent-selection")}function o(i){window.requestAnimationFrame?window.requestAnimationFrame(()=>{h(i)}):h(i)}function h(i){if(i)try{if(i.body&&u(i.body,"react-draggable-transparent-selection"),i.selection)i.selection.empty();else{const v=(i.defaultView||window).getSelection();v&&v.type!=="Caret"&&v.removeAllRanges()}}catch{}}function c(i,v){i.classList?i.classList.add(v):i.className.match(new RegExp(`(?:^|\\s)${v}(?!\\S)`))||(i.className+=` ${v}`)}function u(i,v){i.classList?i.classList.remove(v):i.className=i.className.replace(new RegExp(`(?:^|\\s)${v}(?!\\S)`,"g"),"")}return re}var pe={},ln;function Xn(){if(ln)return pe;ln=1,Object.defineProperty(pe,"__esModule",{value:!0}),pe.canDragX=b,pe.canDragY=m,pe.createCoreData=w,pe.createDraggableData=R,pe.getBoundPosition=s,pe.getControlPosition=g,pe.snapToGrid=f;var t=wt(),l=It();function s(S,C,E){if(!S.props.bounds)return[C,E];let{bounds:x}=S.props;x=typeof x=="string"?x:j(x);const p=k(S);if(typeof x=="string"){const{ownerDocument:n}=p,a=n.defaultView;let r;if(x==="parent"?r=p.parentNode:r=p.getRootNode().querySelector(x),!(r instanceof a.HTMLElement))throw new Error('Bounds selector "'+x+'" could not find an element.');const o=r,h=a.getComputedStyle(p),c=a.getComputedStyle(o);x={left:-p.offsetLeft+(0,t.int)(c.paddingLeft)+(0,t.int)(h.marginLeft),top:-p.offsetTop+(0,t.int)(c.paddingTop)+(0,t.int)(h.marginTop),right:(0,l.innerWidth)(o)-(0,l.outerWidth)(p)-p.offsetLeft+(0,t.int)(c.paddingRight)-(0,t.int)(h.marginRight),bottom:(0,l.innerHeight)(o)-(0,l.outerHeight)(p)-p.offsetTop+(0,t.int)(c.paddingBottom)-(0,t.int)(h.marginBottom)}}return(0,t.isNum)(x.right)&&(C=Math.min(C,x.right)),(0,t.isNum)(x.bottom)&&(E=Math.min(E,x.bottom)),(0,t.isNum)(x.left)&&(C=Math.max(C,x.left)),(0,t.isNum)(x.top)&&(E=Math.max(E,x.top)),[C,E]}function f(S,C,E){const x=Math.round(C/S[0])*S[0],p=Math.round(E/S[1])*S[1];return[x,p]}function b(S){return S.props.axis==="both"||S.props.axis==="x"}function m(S){return S.props.axis==="both"||S.props.axis==="y"}function g(S,C,E){const x=typeof C=="number"?(0,l.getTouch)(S,C):null;if(typeof C=="number"&&!x)return null;const p=k(E),n=E.props.offsetParent||p.offsetParent||p.ownerDocument.body;return(0,l.offsetXYFromParent)(x||S,n,E.props.scale)}function w(S,C,E){const x=!(0,t.isNum)(S.lastX),p=k(S);return x?{node:p,deltaX:0,deltaY:0,lastX:C,lastY:E,x:C,y:E}:{node:p,deltaX:C-S.lastX,deltaY:E-S.lastY,lastX:S.lastX,lastY:S.lastY,x:C,y:E}}function R(S,C){const E=S.props.scale;return{node:C.node,x:S.state.x+C.deltaX/E,y:S.state.y+C.deltaY/E,deltaX:C.deltaX/E,deltaY:C.deltaY/E,lastX:S.state.x,lastY:S.state.y}}function j(S){return{left:S.left,top:S.top,right:S.right,bottom:S.bottom}}function k(S){const C=S.findDOMNode();if(!C)throw new Error("<DraggableCore>: Unmounted during event!");return C}return pe}var Ke={},ot={},cn;function Vn(){if(cn)return ot;cn=1,Object.defineProperty(ot,"__esModule",{value:!0}),ot.default=t;function t(){}return ot}var un;function cs(){if(un)return Ke;un=1,Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.default=void 0;var t=R(fe()),l=w(_e()),s=w(qt()),f=It(),b=Xn(),m=wt(),g=w(Vn());function w(p){return p&&p.__esModule?p:{default:p}}function R(p,n){if(typeof WeakMap=="function")var a=new WeakMap,r=new WeakMap;return(R=function(o,h){if(!h&&o&&o.__esModule)return o;var c,u,i={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return i;if(c=h?r:a){if(c.has(o))return c.get(o);c.set(o,i)}for(const v in o)v!=="default"&&{}.hasOwnProperty.call(o,v)&&((u=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,v))&&(u.get||u.set)?c(i,v,u):i[v]=o[v]);return i})(p,n)}function j(p,n,a){return(n=k(n))in p?Object.defineProperty(p,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[n]=a,p}function k(p){var n=S(p,"string");return typeof n=="symbol"?n:n+""}function S(p,n){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var r=a.call(p,n);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(p)}const C={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let E=C.mouse,x=class extends t.Component{constructor(){super(...arguments),j(this,"dragging",!1),j(this,"lastX",NaN),j(this,"lastY",NaN),j(this,"touchIdentifier",null),j(this,"mounted",!1),j(this,"handleDragStart",n=>{if(this.props.onMouseDown(n),!this.props.allowAnyClick&&typeof n.button=="number"&&n.button!==0)return!1;const a=this.findDOMNode();if(!a||!a.ownerDocument||!a.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:r}=a;if(this.props.disabled||!(n.target instanceof r.defaultView.Node)||this.props.handle&&!(0,f.matchesSelectorAndParentsTo)(n.target,this.props.handle,a)||this.props.cancel&&(0,f.matchesSelectorAndParentsTo)(n.target,this.props.cancel,a))return;n.type==="touchstart"&&!this.props.allowMobileScroll&&n.preventDefault();const o=(0,f.getTouchIdentifier)(n);this.touchIdentifier=o;const h=(0,b.getControlPosition)(n,o,this);if(h==null)return;const{x:c,y:u}=h,i=(0,b.createCoreData)(this,c,u);(0,g.default)("DraggableCore: handleDragStart: %j",i),(0,g.default)("calling",this.props.onStart),!(this.props.onStart(n,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,f.addUserSelectStyles)(r),this.dragging=!0,this.lastX=c,this.lastY=u,(0,f.addEvent)(r,E.move,this.handleDrag),(0,f.addEvent)(r,E.stop,this.handleDragStop))}),j(this,"handleDrag",n=>{const a=(0,b.getControlPosition)(n,this.touchIdentifier,this);if(a==null)return;let{x:r,y:o}=a;if(Array.isArray(this.props.grid)){let u=r-this.lastX,i=o-this.lastY;if([u,i]=(0,b.snapToGrid)(this.props.grid,u,i),!u&&!i)return;r=this.lastX+u,o=this.lastY+i}const h=(0,b.createCoreData)(this,r,o);if((0,g.default)("DraggableCore: handleDrag: %j",h),this.props.onDrag(n,h)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const i=document.createEvent("MouseEvents");i.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(i)}return}this.lastX=r,this.lastY=o}),j(this,"handleDragStop",n=>{if(!this.dragging)return;const a=(0,b.getControlPosition)(n,this.touchIdentifier,this);if(a==null)return;let{x:r,y:o}=a;if(Array.isArray(this.props.grid)){let i=r-this.lastX||0,v=o-this.lastY||0;[i,v]=(0,b.snapToGrid)(this.props.grid,i,v),r=this.lastX+i,o=this.lastY+v}const h=(0,b.createCoreData)(this,r,o);if(this.props.onStop(n,h)===!1||this.mounted===!1)return!1;const u=this.findDOMNode();u&&this.props.enableUserSelectHack&&(0,f.scheduleRemoveUserSelectStyles)(u.ownerDocument),(0,g.default)("DraggableCore: handleDragStop: %j",h),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,u&&((0,g.default)("DraggableCore: Removing handlers"),(0,f.removeEvent)(u.ownerDocument,E.move,this.handleDrag),(0,f.removeEvent)(u.ownerDocument,E.stop,this.handleDragStop))}),j(this,"onMouseDown",n=>(E=C.mouse,this.handleDragStart(n))),j(this,"onMouseUp",n=>(E=C.mouse,this.handleDragStop(n))),j(this,"onTouchStart",n=>(E=C.touch,this.handleDragStart(n))),j(this,"onTouchEnd",n=>(E=C.touch,this.handleDragStop(n)))}componentDidMount(){this.mounted=!0;const n=this.findDOMNode();n&&(0,f.addEvent)(n,C.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const n=this.findDOMNode();if(n){const{ownerDocument:a}=n;(0,f.removeEvent)(a,C.mouse.move,this.handleDrag),(0,f.removeEvent)(a,C.touch.move,this.handleDrag),(0,f.removeEvent)(a,C.mouse.stop,this.handleDragStop),(0,f.removeEvent)(a,C.touch.stop,this.handleDragStop),(0,f.removeEvent)(n,C.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,f.scheduleRemoveUserSelectStyles)(a)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:s.default.findDOMNode(this)}render(){return t.cloneElement(t.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return Ke.default=x,j(x,"displayName","DraggableCore"),j(x,"propTypes",{allowAnyClick:l.default.bool,allowMobileScroll:l.default.bool,children:l.default.node.isRequired,disabled:l.default.bool,enableUserSelectHack:l.default.bool,offsetParent:function(p,n){if(p[n]&&p[n].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:l.default.arrayOf(l.default.number),handle:l.default.string,cancel:l.default.string,nodeRef:l.default.object,onStart:l.default.func,onDrag:l.default.func,onStop:l.default.func,onMouseDown:l.default.func,scale:l.default.number,className:m.dontSetMe,style:m.dontSetMe,transform:m.dontSetMe}),j(x,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),Ke}var dn;function us(){return dn||(dn=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return R.default}}),t.default=void 0;var l=S(fe()),s=k(_e()),f=k(qt()),b=jt(),m=It(),g=Xn(),w=wt(),R=k(cs()),j=k(Vn());function k(a){return a&&a.__esModule?a:{default:a}}function S(a,r){if(typeof WeakMap=="function")var o=new WeakMap,h=new WeakMap;return(S=function(c,u){if(!u&&c&&c.__esModule)return c;var i,v,N={__proto__:null,default:c};if(c===null||typeof c!="object"&&typeof c!="function")return N;if(i=u?h:o){if(i.has(c))return i.get(c);i.set(c,N)}for(const P in c)P!=="default"&&{}.hasOwnProperty.call(c,P)&&((v=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(c,P))&&(v.get||v.set)?i(N,P,v):N[P]=c[P]);return N})(a,r)}function C(){return C=Object.assign?Object.assign.bind():function(a){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var h in o)({}).hasOwnProperty.call(o,h)&&(a[h]=o[h])}return a},C.apply(null,arguments)}function E(a,r,o){return(r=x(r))in a?Object.defineProperty(a,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[r]=o,a}function x(a){var r=p(a,"string");return typeof r=="symbol"?r:r+""}function p(a,r){if(typeof a!="object"||!a)return a;var o=a[Symbol.toPrimitive];if(o!==void 0){var h=o.call(a,r);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(a)}class n extends l.Component{static getDerivedStateFromProps(r,o){let{position:h}=r,{prevPropsPosition:c}=o;return h&&(!c||h.x!==c.x||h.y!==c.y)?((0,j.default)("Draggable: getDerivedStateFromProps %j",{position:h,prevPropsPosition:c}),{x:h.x,y:h.y,prevPropsPosition:{...h}}):null}constructor(r){super(r),E(this,"onDragStart",(o,h)=>{if((0,j.default)("Draggable: onDragStart: %j",h),this.props.onStart(o,(0,g.createDraggableData)(this,h))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),E(this,"onDrag",(o,h)=>{if(!this.state.dragging)return!1;(0,j.default)("Draggable: onDrag: %j",h);const c=(0,g.createDraggableData)(this,h),u={x:c.x,y:c.y,slackX:0,slackY:0};if(this.props.bounds){const{x:v,y:N}=u;u.x+=this.state.slackX,u.y+=this.state.slackY;const[P,O]=(0,g.getBoundPosition)(this,u.x,u.y);u.x=P,u.y=O,u.slackX=this.state.slackX+(v-u.x),u.slackY=this.state.slackY+(N-u.y),c.x=u.x,c.y=u.y,c.deltaX=u.x-this.state.x,c.deltaY=u.y-this.state.y}if(this.props.onDrag(o,c)===!1)return!1;this.setState(u)}),E(this,"onDragStop",(o,h)=>{if(!this.state.dragging||this.props.onStop(o,(0,g.createDraggableData)(this,h))===!1)return!1;(0,j.default)("Draggable: onDragStop: %j",h);const u={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:v,y:N}=this.props.position;u.x=v,u.y=N}this.setState(u)}),this.state={dragging:!1,dragged:!1,x:r.position?r.position.x:r.defaultPosition.x,y:r.position?r.position.y:r.defaultPosition.y,prevPropsPosition:{...r.position},slackX:0,slackY:0,isElementSVG:!1},r.position&&!(r.onDrag||r.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??f.default.findDOMNode(this)}render(){const{axis:r,bounds:o,children:h,defaultPosition:c,defaultClassName:u,defaultClassNameDragging:i,defaultClassNameDragged:v,position:N,positionOffset:P,scale:O,..._}=this.props;let T={},H=null;const U=!!!N||this.state.dragging,K=N||c,J={x:(0,g.canDragX)(this)&&U?this.state.x:K.x,y:(0,g.canDragY)(this)&&U?this.state.y:K.y};this.state.isElementSVG?H=(0,m.createSVGTransform)(J,P):T=(0,m.createCSSTransform)(J,P);const Q=(0,b.clsx)(h.props.className||"",u,{[i]:this.state.dragging,[v]:this.state.dragged});return l.createElement(R.default,C({},_,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),l.cloneElement(l.Children.only(h),{className:Q,style:{...h.props.style,...T},transform:H}))}}t.default=n,E(n,"displayName","Draggable"),E(n,"propTypes",{...R.default.propTypes,axis:s.default.oneOf(["both","x","y","none"]),bounds:s.default.oneOfType([s.default.shape({left:s.default.number,right:s.default.number,top:s.default.number,bottom:s.default.number}),s.default.string,s.default.oneOf([!1])]),defaultClassName:s.default.string,defaultClassNameDragging:s.default.string,defaultClassNameDragged:s.default.string,defaultPosition:s.default.shape({x:s.default.number,y:s.default.number}),positionOffset:s.default.shape({x:s.default.oneOfType([s.default.number,s.default.string]),y:s.default.oneOfType([s.default.number,s.default.string])}),position:s.default.shape({x:s.default.number,y:s.default.number}),className:w.dontSetMe,style:w.dontSetMe,transform:w.dontSetMe}),E(n,"defaultProps",{...R.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})}(Ot)),Ot}var hn;function Bt(){if(hn)return Ve.exports;hn=1;const{default:t,DraggableCore:l}=us();return Ve.exports=t,Ve.exports.default=t,Ve.exports.DraggableCore=l,Ve.exports}var Je={exports:{}},Ze={},lt={},fn;function ds(){if(fn)return lt;fn=1,lt.__esModule=!0,lt.cloneElement=w;var t=l(fe());function l(R){return R&&R.__esModule?R:{default:R}}function s(R,j){var k=Object.keys(R);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(R);j&&(S=S.filter(function(C){return Object.getOwnPropertyDescriptor(R,C).enumerable})),k.push.apply(k,S)}return k}function f(R){for(var j=1;j<arguments.length;j++){var k=arguments[j]!=null?arguments[j]:{};j%2?s(Object(k),!0).forEach(function(S){b(R,S,k[S])}):Object.getOwnPropertyDescriptors?Object.defineProperties(R,Object.getOwnPropertyDescriptors(k)):s(Object(k)).forEach(function(S){Object.defineProperty(R,S,Object.getOwnPropertyDescriptor(k,S))})}return R}function b(R,j,k){return j=m(j),j in R?Object.defineProperty(R,j,{value:k,enumerable:!0,configurable:!0,writable:!0}):R[j]=k,R}function m(R){var j=g(R,"string");return typeof j=="symbol"?j:String(j)}function g(R,j){if(typeof R!="object"||R===null)return R;var k=R[Symbol.toPrimitive];if(k!==void 0){var S=k.call(R,j);if(typeof S!="object")return S;throw new TypeError("@@toPrimitive must return a primitive value.")}return(j==="string"?String:Number)(R)}function w(R,j){return j.style&&R.props.style&&(j.style=f(f({},R.props.style),j.style)),j.className&&R.props.className&&(j.className=R.props.className+" "+j.className),t.default.cloneElement(R,j)}return lt}var Qe={},pn;function Kn(){if(pn)return Qe;pn=1,Qe.__esModule=!0,Qe.resizableProps=void 0;var t=l(_e());Bt();function l(f){return f&&f.__esModule?f:{default:f}}var s={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 b=arguments.length,m=new Array(b),g=0;g<b;g++)m[g]=arguments[g];var w=m[0];if(w.axis==="both"||w.axis==="y"){var R;return(R=t.default.number).isRequired.apply(R,m)}return t.default.number.apply(t.default,m)},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 b=arguments.length,m=new Array(b),g=0;g<b;g++)m[g]=arguments[g];var w=m[0];if(w.axis==="both"||w.axis==="x"){var R;return(R=t.default.number).isRequired.apply(R,m)}return t.default.number.apply(t.default,m)}};return Qe.resizableProps=s,Qe}var mn;function Jn(){if(mn)return Ze;mn=1,Ze.__esModule=!0,Ze.default=void 0;var t=g(fe()),l=Bt(),s=ds(),f=Kn(),b=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function m(a){if(typeof WeakMap!="function")return null;var r=new WeakMap,o=new WeakMap;return(m=function(c){return c?o:r})(a)}function g(a,r){if(a&&a.__esModule)return a;if(a===null||typeof a!="object"&&typeof a!="function")return{default:a};var o=m(r);if(o&&o.has(a))return o.get(a);var h={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in a)if(u!=="default"&&Object.prototype.hasOwnProperty.call(a,u)){var i=c?Object.getOwnPropertyDescriptor(a,u):null;i&&(i.get||i.set)?Object.defineProperty(h,u,i):h[u]=a[u]}return h.default=a,o&&o.set(a,h),h}function w(){return w=Object.assign?Object.assign.bind():function(a){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var h in o)Object.prototype.hasOwnProperty.call(o,h)&&(a[h]=o[h])}return a},w.apply(this,arguments)}function R(a,r){if(a==null)return{};var o={},h=Object.keys(a),c,u;for(u=0;u<h.length;u++)c=h[u],!(r.indexOf(c)>=0)&&(o[c]=a[c]);return o}function j(a,r){var o=Object.keys(a);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(a);r&&(h=h.filter(function(c){return Object.getOwnPropertyDescriptor(a,c).enumerable})),o.push.apply(o,h)}return o}function k(a){for(var r=1;r<arguments.length;r++){var o=arguments[r]!=null?arguments[r]:{};r%2?j(Object(o),!0).forEach(function(h){S(a,h,o[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):j(Object(o)).forEach(function(h){Object.defineProperty(a,h,Object.getOwnPropertyDescriptor(o,h))})}return a}function S(a,r,o){return r=C(r),r in a?Object.defineProperty(a,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[r]=o,a}function C(a){var r=E(a,"string");return typeof r=="symbol"?r:String(r)}function E(a,r){if(typeof a!="object"||a===null)return a;var o=a[Symbol.toPrimitive];if(o!==void 0){var h=o.call(a,r);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(a)}function x(a,r){a.prototype=Object.create(r.prototype),a.prototype.constructor=a,p(a,r)}function p(a,r){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,c){return h.__proto__=c,h},p(a,r)}var n=function(a){x(r,a);function r(){for(var h,c=arguments.length,u=new Array(c),i=0;i<c;i++)u[i]=arguments[i];return h=a.call.apply(a,[this].concat(u))||this,h.handleRefs={},h.lastHandleRect=null,h.slack=null,h}var o=r.prototype;return o.componentWillUnmount=function(){this.resetData()},o.resetData=function(){this.lastHandleRect=this.slack=null},o.runConstraints=function(c,u){var i=this.props,v=i.minConstraints,N=i.maxConstraints,P=i.lockAspectRatio;if(!v&&!N&&!P)return[c,u];if(P){var O=this.props.width/this.props.height,_=c-this.props.width,T=u-this.props.height;Math.abs(_)>Math.abs(T*O)?u=c/O:c=u*O}var H=c,F=u,U=this.slack||[0,0],K=U[0],J=U[1];return c+=K,u+=J,v&&(c=Math.max(v[0],c),u=Math.max(v[1],u)),N&&(c=Math.min(N[0],c),u=Math.min(N[1],u)),this.slack=[K+(H-c),J+(F-u)],[c,u]},o.resizeHandler=function(c,u){var i=this;return function(v,N){var P=N.node,O=N.deltaX,_=N.deltaY;c==="onResizeStart"&&i.resetData();var T=(i.props.axis==="both"||i.props.axis==="x")&&u!=="n"&&u!=="s",H=(i.props.axis==="both"||i.props.axis==="y")&&u!=="e"&&u!=="w";if(!(!T&&!H)){var F=u[0],U=u[u.length-1],K=P.getBoundingClientRect();if(i.lastHandleRect!=null){if(U==="w"){var J=K.left-i.lastHandleRect.left;O+=J}if(F==="n"){var Q=K.top-i.lastHandleRect.top;_+=Q}}i.lastHandleRect=K,U==="w"&&(O=-O),F==="n"&&(_=-_);var Y=i.props.width+(T?O/i.props.transformScale:0),te=i.props.height+(H?_/i.props.transformScale:0),ne=i.runConstraints(Y,te);Y=ne[0],te=ne[1];var ae=Y!==i.props.width||te!==i.props.height,le=typeof i.props[c]=="function"?i.props[c]:null,oe=c==="onResize"&&!ae;le&&!oe&&(v.persist==null||v.persist(),le(v,{node:P,size:{width:Y,height:te},handle:u})),c==="onResizeStop"&&i.resetData()}}},o.renderResizeHandle=function(c,u){var i=this.props.handle;if(!i)return t.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+c,ref:u});if(typeof i=="function")return i(c,u);var v=typeof i.type=="string",N=k({ref:u},v?{}:{handleAxis:c});return t.cloneElement(i,N)},o.render=function(){var c=this,u=this.props,i=u.children,v=u.className,N=u.draggableOpts;u.width,u.height,u.handle,u.handleSize,u.lockAspectRatio,u.axis,u.minConstraints,u.maxConstraints,u.onResize,u.onResizeStop,u.onResizeStart;var P=u.resizeHandles;u.transformScale;var O=R(u,b);return(0,s.cloneElement)(i,k(k({},O),{},{className:(v?v+" ":"")+"react-resizable",children:[].concat(i.props.children,P.map(function(_){var T,H=(T=c.handleRefs[_])!=null?T:c.handleRefs[_]=t.createRef();return t.createElement(l.DraggableCore,w({},N,{nodeRef:H,key:"resizableHandle-"+_,onStop:c.resizeHandler("onResizeStop",_),onStart:c.resizeHandler("onResizeStart",_),onDrag:c.resizeHandler("onResize",_)}),c.renderResizeHandle(_,H))}))}))},r}(t.Component);return Ze.default=n,n.propTypes=f.resizableProps,n.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},Ze}var et={},gn;function hs(){if(gn)return et;gn=1,et.__esModule=!0,et.default=void 0;var t=w(fe()),l=m(_e()),s=m(Jn()),f=Kn(),b=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function m(r){return r&&r.__esModule?r:{default:r}}function g(r){if(typeof WeakMap!="function")return null;var o=new WeakMap,h=new WeakMap;return(g=function(u){return u?h:o})(r)}function w(r,o){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var h=g(o);if(h&&h.has(r))return h.get(r);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in r)if(i!=="default"&&Object.prototype.hasOwnProperty.call(r,i)){var v=u?Object.getOwnPropertyDescriptor(r,i):null;v&&(v.get||v.set)?Object.defineProperty(c,i,v):c[i]=r[i]}return c.default=r,h&&h.set(r,c),c}function R(){return R=Object.assign?Object.assign.bind():function(r){for(var o=1;o<arguments.length;o++){var h=arguments[o];for(var c in h)Object.prototype.hasOwnProperty.call(h,c)&&(r[c]=h[c])}return r},R.apply(this,arguments)}function j(r,o){var h=Object.keys(r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(r);o&&(c=c.filter(function(u){return Object.getOwnPropertyDescriptor(r,u).enumerable})),h.push.apply(h,c)}return h}function k(r){for(var o=1;o<arguments.length;o++){var h=arguments[o]!=null?arguments[o]:{};o%2?j(Object(h),!0).forEach(function(c){S(r,c,h[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(h)):j(Object(h)).forEach(function(c){Object.defineProperty(r,c,Object.getOwnPropertyDescriptor(h,c))})}return r}function S(r,o,h){return o=C(o),o in r?Object.defineProperty(r,o,{value:h,enumerable:!0,configurable:!0,writable:!0}):r[o]=h,r}function C(r){var o=E(r,"string");return typeof o=="symbol"?o:String(o)}function E(r,o){if(typeof r!="object"||r===null)return r;var h=r[Symbol.toPrimitive];if(h!==void 0){var c=h.call(r,o);if(typeof c!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(r)}function x(r,o){if(r==null)return{};var h={},c=Object.keys(r),u,i;for(i=0;i<c.length;i++)u=c[i],!(o.indexOf(u)>=0)&&(h[u]=r[u]);return h}function p(r,o){r.prototype=Object.create(o.prototype),r.prototype.constructor=r,n(r,o)}function n(r,o){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,u){return c.__proto__=u,c},n(r,o)}var a=function(r){p(o,r);function o(){for(var c,u=arguments.length,i=new Array(u),v=0;v<u;v++)i[v]=arguments[v];return c=r.call.apply(r,[this].concat(i))||this,c.state={width:c.props.width,height:c.props.height,propsWidth:c.props.width,propsHeight:c.props.height},c.onResize=function(N,P){var O=P.size;c.props.onResize?(N.persist==null||N.persist(),c.setState(O,function(){return c.props.onResize&&c.props.onResize(N,P)})):c.setState(O)},c}o.getDerivedStateFromProps=function(u,i){return i.propsWidth!==u.width||i.propsHeight!==u.height?{width:u.width,height:u.height,propsWidth:u.width,propsHeight:u.height}:null};var h=o.prototype;return h.render=function(){var u=this.props,i=u.handle,v=u.handleSize;u.onResize;var N=u.onResizeStart,P=u.onResizeStop,O=u.draggableOpts,_=u.minConstraints,T=u.maxConstraints,H=u.lockAspectRatio,F=u.axis;u.width,u.height;var U=u.resizeHandles,K=u.style,J=u.transformScale,Q=x(u,b);return t.createElement(s.default,{axis:F,draggableOpts:O,handle:i,handleSize:v,height:this.state.height,lockAspectRatio:H,maxConstraints:T,minConstraints:_,onResizeStart:N,onResize:this.onResize,onResizeStop:P,resizeHandles:U,transformScale:J,width:this.state.width},t.createElement("div",R({},Q,{style:k(k({},K),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},o}(t.Component);return et.default=a,a.propTypes=k(k({},f.resizableProps),{},{children:l.default.element}),et}var yn;function fs(){return yn||(yn=1,Je.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},Je.exports.Resizable=Jn().default,Je.exports.ResizableBox=hs().default),Je.exports}var ve={},vn;function Zn(){if(vn)return ve;vn=1,Object.defineProperty(ve,"__esModule",{value:!0}),ve.resizeHandleType=ve.resizeHandleAxesType=ve.default=void 0;var t=s(_e()),l=s(fe());function s(m){return m&&m.__esModule?m:{default:m}}const f=ve.resizeHandleAxesType=t.default.arrayOf(t.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),b=ve.resizeHandleType=t.default.oneOfType([t.default.node,t.default.func]);return ve.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(m){m.verticalCompact},compactType:t.default.oneOf(["vertical","horizontal"]),layout:function(m){var g=m.layout;g!==void 0&&Ge().validateLayout(g,"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:f,resizeHandle:b,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(m,g){const w=m[g],R={};l.default.Children.forEach(w,function(j){if(j?.key!=null){if(R[j.key])throw new Error('Duplicate child key "'+j.key+'" found! This will cause problems in ReactGridLayout.');R[j.key]=!0}})},innerRef:t.default.any},ve}var xn;function ps(){if(xn)return Xe;xn=1,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.default=void 0;var t=j(fe()),l=qt(),s=j(_e()),f=Bt(),b=fs(),m=Ge(),g=At(),w=Zn(),R=j(jt());function j(x){return x&&x.__esModule?x:{default:x}}function k(x,p,n){return(p=S(p))in x?Object.defineProperty(x,p,{value:n,enumerable:!0,configurable:!0,writable:!0}):x[p]=n,x}function S(x){var p=C(x,"string");return typeof p=="symbol"?p:p+""}function C(x,p){if(typeof x!="object"||!x)return x;var n=x[Symbol.toPrimitive];if(n!==void 0){var a=n.call(x,p);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(p==="string"?String:Number)(x)}let E=class extends t.default.Component{constructor(){super(...arguments),k(this,"state",{resizing:null,dragging:null,className:""}),k(this,"elementRef",t.default.createRef()),k(this,"onDragStart",(p,n)=>{let{node:a}=n;const{onDragStart:r,transformScale:o}=this.props;if(!r)return;const h={top:0,left:0},{offsetParent:c}=a;if(!c)return;const u=c.getBoundingClientRect(),i=a.getBoundingClientRect(),v=i.left/o,N=u.left/o,P=i.top/o,O=u.top/o;h.left=v-N+c.scrollLeft,h.top=P-O+c.scrollTop,this.setState({dragging:h});const{x:_,y:T}=(0,g.calcXY)(this.getPositionParams(),h.top,h.left,this.props.w,this.props.h);return r.call(this,this.props.i,_,T,{e:p,node:a,newPosition:h})}),k(this,"onDrag",(p,n,a)=>{let{node:r,deltaX:o,deltaY:h}=n;const{onDrag:c}=this.props;if(!c)return;if(!this.state.dragging)throw new Error("onDrag called before onDragStart.");let u=this.state.dragging.top+h,i=this.state.dragging.left+o;const{isBounded:v,i:N,w:P,h:O,containerWidth:_}=this.props,T=this.getPositionParams();if(v){const{offsetParent:K}=r;if(K){const{margin:J,rowHeight:Q}=this.props,Y=K.clientHeight-(0,g.calcGridItemWHPx)(O,Q,J[1]);u=(0,g.clamp)(u,0,Y);const te=(0,g.calcGridColWidth)(T),ne=_-(0,g.calcGridItemWHPx)(P,te,J[0]);i=(0,g.clamp)(i,0,ne)}}const H={top:u,left:i};a?this.setState({dragging:H}):(0,l.flushSync)(()=>{this.setState({dragging:H})});const{x:F,y:U}=(0,g.calcXY)(T,u,i,P,O);return c.call(this,N,F,U,{e:p,node:r,newPosition:H})}),k(this,"onDragStop",(p,n)=>{let{node:a}=n;const{onDragStop:r}=this.props;if(!r)return;if(!this.state.dragging)throw new Error("onDragEnd called before onDragStart.");const{w:o,h,i:c}=this.props,{left:u,top:i}=this.state.dragging,v={top:i,left:u};this.setState({dragging:null});const{x:N,y:P}=(0,g.calcXY)(this.getPositionParams(),i,u,o,h);return r.call(this,c,N,P,{e:p,node:a,newPosition:v})}),k(this,"onResizeStop",(p,n,a)=>this.onResizeHandler(p,n,a,"onResizeStop")),k(this,"onResizeStart",(p,n,a)=>this.onResizeHandler(p,n,a,"onResizeStart")),k(this,"onResize",(p,n,a)=>this.onResizeHandler(p,n,a,"onResize"))}shouldComponentUpdate(p,n){if(this.props.children!==p.children||this.props.droppingPosition!==p.droppingPosition)return!0;const a=(0,g.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),r=(0,g.calcGridItemPosition)(this.getPositionParams(p),p.x,p.y,p.w,p.h,n);return!(0,m.fastPositionEqual)(a,r)||this.props.useCSSTransforms!==p.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(p){this.moveDroppingItem(p)}moveDroppingItem(p){const{droppingPosition:n}=this.props;if(!n)return;const a=this.elementRef.current;if(!a)return;const r=p.droppingPosition||{left:0,top:0},{dragging:o}=this.state,h=o&&n.left!==r.left||n.top!==r.top;if(!o)this.onDragStart(n.e,{node:a,deltaX:n.left,deltaY:n.top});else if(h){const c=n.left-o.left,u=n.top-o.top;this.onDrag(n.e,{node:a,deltaX:c,deltaY:u},!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:n,containerWidth:a,useCSSTransforms:r}=this.props;let o;return r?o=(0,m.setTransform)(p):(o=(0,m.setTopLeft)(p),n&&(o.left=(0,m.perc)(p.left/a),o.width=(0,m.perc)(p.width/a))),o}mixinDraggable(p,n){return t.default.createElement(f.DraggableCore,{disabled:!n,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,n){return(a,r)=>n(a,r,p)}mixinResizable(p,n,a){const{cols:r,minW:o,minH:h,maxW:c,maxH:u,transformScale:i,resizeHandles:v,resizeHandle:N}=this.props,P=this.getPositionParams(),O=(0,g.calcGridItemPosition)(P,0,0,r,0).width,_=(0,g.calcGridItemPosition)(P,0,0,o,h),T=(0,g.calcGridItemPosition)(P,0,0,c,u),H=[_.width,_.height],F=[Math.min(T.width,O),Math.min(T.height,1/0)];return t.default.createElement(b.Resizable,{draggableOpts:{disabled:!a},className:a?void 0:"react-resizable-hide",width:n.width,height:n.height,minConstraints:H,maxConstraints:F,onResizeStop:this.curryResizeHandler(n,this.onResizeStop),onResizeStart:this.curryResizeHandler(n,this.onResizeStart),onResize:this.curryResizeHandler(n,this.onResize),transformScale:i,resizeHandles:v,handle:N},p)}onResizeHandler(p,n,a,r){let{node:o,size:h,handle:c}=n;const u=this.props[r];if(!u)return;const{x:i,y:v,i:N,maxH:P,minH:O,containerWidth:_}=this.props,{minW:T,maxW:H}=this.props;let F=h;o&&(F=(0,m.resizeItemInDirection)(c,a,h,_),(0,l.flushSync)(()=>{this.setState({resizing:r==="onResizeStop"?null:F})}));let{w:U,h:K}=(0,g.calcWH)(this.getPositionParams(),F.width,F.height,i,v,c);U=(0,g.clamp)(U,Math.max(T,1),H),K=(0,g.clamp)(K,O,P),u.call(this,N,U,K,{e:p,node:o,size:F,handle:c})}render(){const{x:p,y:n,w:a,h:r,isDraggable:o,isResizable:h,droppingPosition:c,useCSSTransforms:u}=this.props,i=(0,g.calcGridItemPosition)(this.getPositionParams(),p,n,a,r,this.state),v=t.default.Children.only(this.props.children);let N=t.default.cloneElement(v,{ref:this.elementRef,className:(0,R.default)("react-grid-item",v.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":o,"react-draggable-dragging":!!this.state.dragging,dropping:!!c,cssTransforms:u}),style:{...this.props.style,...v.props.style,...this.createStyle(i)}});return N=this.mixinResizable(N,i,h),N=this.mixinDraggable(N,o),N}};return Xe.default=E,k(E,"propTypes",{children:s.default.element,cols:s.default.number.isRequired,containerWidth:s.default.number.isRequired,rowHeight:s.default.number.isRequired,margin:s.default.array.isRequired,maxRows:s.default.number.isRequired,containerPadding:s.default.array.isRequired,x:s.default.number.isRequired,y:s.default.number.isRequired,w:s.default.number.isRequired,h:s.default.number.isRequired,minW:function(x,p){const n=x[p];if(typeof n!="number")return new Error("minWidth not Number");if(n>x.w||n>x.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function(x,p){const n=x[p];if(typeof n!="number")return new Error("maxWidth not Number");if(n<x.w||n<x.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function(x,p){const n=x[p];if(typeof n!="number")return new Error("minHeight not Number");if(n>x.h||n>x.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function(x,p){const n=x[p];if(typeof n!="number")return new Error("maxHeight not Number");if(n<x.h||n<x.minH)return new Error("maxHeight smaller than item height/minHeight")},i:s.default.string.isRequired,resizeHandles:w.resizeHandleAxesType,resizeHandle:w.resizeHandleType,onDragStop:s.default.func,onDragStart:s.default.func,onDrag:s.default.func,onResizeStop:s.default.func,onResizeStart:s.default.func,onResize:s.default.func,isDraggable:s.default.bool.isRequired,isResizable:s.default.bool.isRequired,isBounded:s.default.bool.isRequired,static:s.default.bool,useCSSTransforms:s.default.bool.isRequired,transformScale:s.default.number,className:s.default.string,handle:s.default.string,cancel:s.default.string,droppingPosition:s.default.shape({e:s.default.object.isRequired,left:s.default.number.isRequired,top:s.default.number.isRequired})}),k(E,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1}),Xe}var bn;function Qn(){if(bn)return Ye;bn=1,Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.default=void 0;var t=R(fe()),l=Ht(),s=w(jt()),f=Ge(),b=At(),m=w(ps()),g=w(Zn());function w(p){return p&&p.__esModule?p:{default:p}}function R(p,n){if(typeof WeakMap=="function")var a=new WeakMap,r=new WeakMap;return(R=function(o,h){if(!h&&o&&o.__esModule)return o;var c,u,i={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return i;if(c=h?r:a){if(c.has(o))return c.get(o);c.set(o,i)}for(const v in o)v!=="default"&&{}.hasOwnProperty.call(o,v)&&((u=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,v))&&(u.get||u.set)?c(i,v,u):i[v]=o[v]);return i})(p,n)}function j(p,n,a){return(n=k(n))in p?Object.defineProperty(p,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[n]=a,p}function k(p){var n=S(p,"string");return typeof n=="symbol"?n:n+""}function S(p,n){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var r=a.call(p,n);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(p)}const C="react-grid-layout";let E=!1;try{E=/firefox/i.test(navigator.userAgent)}catch{}let x=class extends t.Component{constructor(){super(...arguments),j(this,"state",{activeDrag:null,layout:(0,f.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,f.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),j(this,"dragEnterCounter",0),j(this,"onDragStart",(n,a,r,o)=>{let{e:h,node:c}=o;const{layout:u}=this.state,i=(0,f.getLayoutItem)(u,n);if(!i)return;const v={w:i.w,h:i.h,x:i.x,y:i.y,placeholder:!0,i:n};return this.setState({oldDragItem:(0,f.cloneLayoutItem)(i),oldLayout:u,activeDrag:v}),this.props.onDragStart(u,i,i,null,h,c)}),j(this,"onDrag",(n,a,r,o)=>{let{e:h,node:c}=o;const{oldDragItem:u}=this.state;let{layout:i}=this.state;const{cols:v,allowOverlap:N,preventCollision:P}=this.props,O=(0,f.getLayoutItem)(i,n);if(!O)return;const _={w:O.w,h:O.h,x:O.x,y:O.y,placeholder:!0,i:n};i=(0,f.moveElement)(i,O,a,r,!0,P,(0,f.compactType)(this.props),v,N),this.props.onDrag(i,u,O,_,h,c),this.setState({layout:N?i:(0,f.compact)(i,(0,f.compactType)(this.props),v),activeDrag:_})}),j(this,"onDragStop",(n,a,r,o)=>{let{e:h,node:c}=o;if(!this.state.activeDrag)return;const{oldDragItem:u}=this.state;let{layout:i}=this.state;const{cols:v,preventCollision:N,allowOverlap:P}=this.props,O=(0,f.getLayoutItem)(i,n);if(!O)return;i=(0,f.moveElement)(i,O,a,r,!0,N,(0,f.compactType)(this.props),v,P);const T=P?i:(0,f.compact)(i,(0,f.compactType)(this.props),v);this.props.onDragStop(T,u,O,null,h,c);const{oldLayout:H}=this.state;this.setState({activeDrag:null,layout:T,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(T,H)}),j(this,"onResizeStart",(n,a,r,o)=>{let{e:h,node:c}=o;const{layout:u}=this.state,i=(0,f.getLayoutItem)(u,n);i&&(this.setState({oldResizeItem:(0,f.cloneLayoutItem)(i),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(u,i,i,null,h,c))}),j(this,"onResize",(n,a,r,o)=>{let{e:h,node:c,size:u,handle:i}=o;const{oldResizeItem:v}=this.state,{layout:N}=this.state,{cols:P,preventCollision:O,allowOverlap:_}=this.props;let T=!1,H,F,U;const[K,J]=(0,f.withLayoutItem)(N,n,Y=>{let te;return F=Y.x,U=Y.y,["sw","w","nw","n","ne"].indexOf(i)!==-1&&(["sw","nw","w"].indexOf(i)!==-1&&(F=Y.x+(Y.w-a),a=Y.x!==F&&F<0?Y.w:a,F=F<0?0:F),["ne","n","nw"].indexOf(i)!==-1&&(U=Y.y+(Y.h-r),r=Y.y!==U&&U<0?Y.h:r,U=U<0?0:U),T=!0),O&&!_&&(te=(0,f.getAllCollisions)(N,{...Y,w:a,h:r,x:F,y:U}).filter(ae=>ae.i!==Y.i).length>0,te&&(U=Y.y,r=Y.h,F=Y.x,a=Y.w,T=!1)),Y.w=a,Y.h=r,Y});if(!J)return;H=K,T&&(H=(0,f.moveElement)(K,J,F,U,!0,this.props.preventCollision,(0,f.compactType)(this.props),P,_));const Q={w:J.w,h:J.h,x:J.x,y:J.y,static:!0,i:n};this.props.onResize(H,v,J,Q,h,c),this.setState({layout:_?H:(0,f.compact)(H,(0,f.compactType)(this.props),P),activeDrag:Q})}),j(this,"onResizeStop",(n,a,r,o)=>{let{e:h,node:c}=o;const{layout:u,oldResizeItem:i}=this.state,{cols:v,allowOverlap:N}=this.props,P=(0,f.getLayoutItem)(u,n),O=N?u:(0,f.compact)(u,(0,f.compactType)(this.props),v);this.props.onResizeStop(O,i,P,null,h,c);const{oldLayout:_}=this.state;this.setState({activeDrag:null,layout:O,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(O,_)}),j(this,"onDragOver",n=>{if(n.preventDefault(),n.stopPropagation(),E&&!n.nativeEvent.target?.classList.contains(C))return!1;const{droppingItem:a,onDropDragOver:r,margin:o,cols:h,rowHeight:c,maxRows:u,width:i,containerPadding:v,transformScale:N}=this.props,P=r?.(n);if(P===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;const O={...a,...P},{layout:_}=this.state,T=n.currentTarget.getBoundingClientRect(),H=n.clientX-T.left,F=n.clientY-T.top,U={left:H/N,top:F/N,e:n};if(this.state.droppingDOMNode){if(this.state.droppingPosition){const{left:K,top:J}=this.state.droppingPosition;(K!=H||J!=F)&&this.setState({droppingPosition:U})}}else{const K={cols:h,margin:o,maxRows:u,rowHeight:c,containerWidth:i,containerPadding:v||o},J=(0,b.calcXY)(K,F,H,O.w,O.h);this.setState({droppingDOMNode:t.createElement("div",{key:O.i}),droppingPosition:U,layout:[..._,{...O,x:J.x,y:J.y,static:!1,isDraggable:!0}]})}}),j(this,"removeDroppingPlaceholder",()=>{const{droppingItem:n,cols:a}=this.props,{layout:r}=this.state,o=(0,f.compact)(r.filter(h=>h.i!==n.i),(0,f.compactType)(this.props),a,this.props.allowOverlap);this.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),j(this,"onDragLeave",n=>{n.preventDefault(),n.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),j(this,"onDragEnter",n=>{n.preventDefault(),n.stopPropagation(),this.dragEnterCounter++}),j(this,"onDrop",n=>{n.preventDefault(),n.stopPropagation();const{droppingItem:a}=this.props,{layout:r}=this.state,o=r.find(h=>h.i===a.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(r,o,n)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(n,a){let r;return a.activeDrag?null:(!(0,l.deepEqual)(n.layout,a.propsLayout)||n.compactType!==a.compactType?r=n.layout:(0,f.childrenEqual)(n.children,a.children)||(r=a.layout),r?{layout:(0,f.synchronizeLayoutWithChildren)(r,n.children,n.cols,(0,f.compactType)(n),n.allowOverlap),compactType:n.compactType,children:n.children,propsLayout:n.layout}:null)}shouldComponentUpdate(n,a){return this.props.children!==n.children||!(0,f.fastRGLPropsEqual)(this.props,n,l.deepEqual)||this.state.activeDrag!==a.activeDrag||this.state.mounted!==a.mounted||this.state.droppingPosition!==a.droppingPosition}componentDidUpdate(n,a){if(!this.state.activeDrag){const r=this.state.layout,o=a.layout;this.onLayoutMaybeChanged(r,o)}}containerHeight(){if(!this.props.autoSize)return;const n=(0,f.bottom)(this.state.layout),a=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return n*this.props.rowHeight+(n-1)*this.props.margin[1]+a*2+"px"}onLayoutMaybeChanged(n,a){a||(a=this.state.layout),(0,l.deepEqual)(a,n)||this.props.onLayoutChange(n)}placeholder(){const{activeDrag:n}=this.state;if(!n)return null;const{width:a,cols:r,margin:o,containerPadding:h,rowHeight:c,maxRows:u,useCSSTransforms:i,transformScale:v}=this.props;return t.createElement(m.default,{w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,className:`react-grid-placeholder ${this.state.resizing?"placeholder-resizing":""}`,containerWidth:a,cols:r,margin:o,containerPadding:h||o,maxRows:u,rowHeight:c,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:i,transformScale:v},t.createElement("div",null))}processGridItem(n,a){if(!n||!n.key)return;const r=(0,f.getLayoutItem)(this.state.layout,String(n.key));if(!r)return null;const{width:o,cols:h,margin:c,containerPadding:u,rowHeight:i,maxRows:v,isDraggable:N,isResizable:P,isBounded:O,useCSSTransforms:_,transformScale:T,draggableCancel:H,draggableHandle:F,resizeHandles:U,resizeHandle:K}=this.props,{mounted:J,droppingPosition:Q}=this.state,Y=typeof r.isDraggable=="boolean"?r.isDraggable:!r.static&&N,te=typeof r.isResizable=="boolean"?r.isResizable:!r.static&&P,ne=r.resizeHandles||U,ae=Y&&O&&r.isBounded!==!1;return t.createElement(m.default,{containerWidth:o,cols:h,margin:c,containerPadding:u||c,maxRows:v,rowHeight:i,cancel:H,handle:F,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:Y,isResizable:te,isBounded:ae,useCSSTransforms:_&&J,usePercentages:!J,transformScale:T,w:r.w,h:r.h,x:r.x,y:r.y,i:r.i,minH:r.minH,minW:r.minW,maxH:r.maxH,maxW:r.maxW,static:r.static,droppingPosition:a?Q:void 0,resizeHandles:ne,resizeHandle:K},n)}render(){const{className:n,style:a,isDroppable:r,innerRef:o}=this.props,h=(0,s.default)(C,n),c={height:this.containerHeight(),...a};return t.createElement("div",{ref:o,className:h,style:c,onDrop:r?this.onDrop:f.noop,onDragLeave:r?this.onDragLeave:f.noop,onDragEnter:r?this.onDragEnter:f.noop,onDragOver:r?this.onDragOver:f.noop},t.Children.map(this.props.children,u=>this.processGridItem(u)),r&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}};return Ye.default=x,j(x,"displayName","ReactGridLayout"),j(x,"propTypes",g.default),j(x,"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:f.noop,onDragStart:f.noop,onDrag:f.noop,onDragStop:f.noop,onResizeStart:f.noop,onResize:f.noop,onResizeStop:f.noop,onDrop:f.noop,onDropDragOver:f.noop}),Ye}var tt={},Le={},jn;function er(){if(jn)return Le;jn=1,Object.defineProperty(Le,"__esModule",{value:!0}),Le.findOrGenerateResponsiveLayout=f,Le.getBreakpointFromWidth=l,Le.getColsFromBreakpoint=s,Le.sortBreakpoints=b;var t=Ge();function l(m,g){const w=b(m);let R=w[0];for(let j=1,k=w.length;j<k;j++){const S=w[j];g>m[S]&&(R=S)}return R}function s(m,g){if(!g[m])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+m+" is missing!");return g[m]}function f(m,g,w,R,j,k){if(m[w])return(0,t.cloneLayout)(m[w]);let S=m[R];const C=b(g),E=C.slice(C.indexOf(w));for(let x=0,p=E.length;x<p;x++){const n=E[x];if(m[n]){S=m[n];break}}return S=(0,t.cloneLayout)(S||[]),(0,t.compact)((0,t.correctBounds)(S,{cols:j}),k,j)}function b(m){return Object.keys(m).sort(function(w,R){return m[w]-m[R]})}return Le}var wn;function ms(){if(wn)return tt;wn=1,Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var t=w(fe()),l=g(_e()),s=Ht(),f=Ge(),b=er(),m=g(Qn());function g(p){return p&&p.__esModule?p:{default:p}}function w(p,n){if(typeof WeakMap=="function")var a=new WeakMap,r=new WeakMap;return(w=function(o,h){if(!h&&o&&o.__esModule)return o;var c,u,i={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return i;if(c=h?r:a){if(c.has(o))return c.get(o);c.set(o,i)}for(const v in o)v!=="default"&&{}.hasOwnProperty.call(o,v)&&((u=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,v))&&(u.get||u.set)?c(i,v,u):i[v]=o[v]);return i})(p,n)}function R(){return R=Object.assign?Object.assign.bind():function(p){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var r in a)({}).hasOwnProperty.call(a,r)&&(p[r]=a[r])}return p},R.apply(null,arguments)}function j(p,n,a){return(n=k(n))in p?Object.defineProperty(p,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[n]=a,p}function k(p){var n=S(p,"string");return typeof n=="symbol"?n:n+""}function S(p,n){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var r=a.call(p,n);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(p)}const C=p=>Object.prototype.toString.call(p);function E(p,n){return p==null?null:Array.isArray(p)?p:p[n]}let x=class extends t.Component{constructor(){super(...arguments),j(this,"state",this.generateInitialState()),j(this,"onLayoutChange",n=>{this.props.onLayoutChange(n,{...this.props.layouts,[this.state.breakpoint]:n})})}generateInitialState(){const{width:n,breakpoints:a,layouts:r,cols:o}=this.props,h=(0,b.getBreakpointFromWidth)(a,n),c=(0,b.getColsFromBreakpoint)(h,o),u=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,b.findOrGenerateResponsiveLayout)(r,a,h,h,c,u),breakpoint:h,cols:c}}static getDerivedStateFromProps(n,a){if(!(0,s.deepEqual)(n.layouts,a.layouts)){const{breakpoint:r,cols:o}=a;return{layout:(0,b.findOrGenerateResponsiveLayout)(n.layouts,n.breakpoints,r,r,o,n.compactType),layouts:n.layouts}}return null}componentDidUpdate(n){(this.props.width!=n.width||this.props.breakpoint!==n.breakpoint||!(0,s.deepEqual)(this.props.breakpoints,n.breakpoints)||!(0,s.deepEqual)(this.props.cols,n.cols))&&this.onWidthChange(n)}onWidthChange(n){const{breakpoints:a,cols:r,layouts:o,compactType:h}=this.props,c=this.props.breakpoint||(0,b.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),u=this.state.breakpoint,i=(0,b.getColsFromBreakpoint)(c,r),v={...o};if(u!==c||n.breakpoints!==a||n.cols!==r){u in v||(v[u]=(0,f.cloneLayout)(this.state.layout));let O=(0,b.findOrGenerateResponsiveLayout)(v,a,c,u,i,h);O=(0,f.synchronizeLayoutWithChildren)(O,this.props.children,i,h,this.props.allowOverlap),v[c]=O,this.props.onBreakpointChange(c,i),this.props.onLayoutChange(O,v),this.setState({breakpoint:c,layout:O,cols:i})}const N=E(this.props.margin,c),P=E(this.props.containerPadding,c);this.props.onWidthChange(this.props.width,N,i,P)}render(){const{breakpoint:n,breakpoints:a,cols:r,layouts:o,margin:h,containerPadding:c,onBreakpointChange:u,onLayoutChange:i,onWidthChange:v,...N}=this.props;return t.createElement(m.default,R({},N,{margin:E(h,this.state.breakpoint),containerPadding:E(c,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}};return tt.default=x,j(x,"propTypes",{breakpoint:l.default.string,breakpoints:l.default.object,allowOverlap:l.default.bool,cols:l.default.object,margin:l.default.oneOfType([l.default.array,l.default.object]),containerPadding:l.default.oneOfType([l.default.array,l.default.object]),layouts(p,n){if(C(p[n])!=="[object Object]")throw new Error("Layout property must be an object. Received: "+C(p[n]));Object.keys(p[n]).forEach(a=>{if(!(a in p.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,f.validateLayout)(p.layouts[a],"layouts."+a)})},width:l.default.number.isRequired,onBreakpointChange:l.default.func,onLayoutChange:l.default.func,onWidthChange:l.default.func}),j(x,"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:f.noop,onLayoutChange:f.noop,onWidthChange:f.noop}),tt}var ct={},tr=function(){if(typeof Map<"u")return Map;function t(l,s){var f=-1;return l.some(function(b,m){return b[0]===s?(f=m,!0):!1}),f}return function(){function l(){this.__entries__=[]}return Object.defineProperty(l.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),l.prototype.get=function(s){var f=t(this.__entries__,s),b=this.__entries__[f];return b&&b[1]},l.prototype.set=function(s,f){var b=t(this.__entries__,s);~b?this.__entries__[b][1]=f:this.__entries__.push([s,f])},l.prototype.delete=function(s){var f=this.__entries__,b=t(f,s);~b&&f.splice(b,1)},l.prototype.has=function(s){return!!~t(this.__entries__,s)},l.prototype.clear=function(){this.__entries__.splice(0)},l.prototype.forEach=function(s,f){f===void 0&&(f=null);for(var b=0,m=this.__entries__;b<m.length;b++){var g=m[b];s.call(f,g[1],g[0])}},l}()}(),kt=typeof window<"u"&&typeof document<"u"&&window.document===document,vt=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")()}(),gs=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(vt):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)}}(),ys=2;function vs(t,l){var s=!1,f=!1,b=0;function m(){s&&(s=!1,t()),f&&w()}function g(){gs(m)}function w(){var R=Date.now();if(s){if(R-b<ys)return;f=!0}else s=!0,f=!1,setTimeout(g,l);b=R}return w}var xs=20,bs=["top","right","bottom","left","width","height","size","weight"],js=typeof MutationObserver<"u",ws=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=vs(this.refresh.bind(this),xs)}return t.prototype.addObserver=function(l){~this.observers_.indexOf(l)||this.observers_.push(l),this.connected_||this.connect_()},t.prototype.removeObserver=function(l){var s=this.observers_,f=s.indexOf(l);~f&&s.splice(f,1),!s.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){var l=this.updateObservers_();l&&this.refresh()},t.prototype.updateObservers_=function(){var l=this.observers_.filter(function(s){return s.gatherActive(),s.hasActive()});return l.forEach(function(s){return s.broadcastActive()}),l.length>0},t.prototype.connect_=function(){!kt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),js?(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(){!kt||!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(l){var s=l.propertyName,f=s===void 0?"":s,b=bs.some(function(m){return!!~f.indexOf(m)});b&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),nr=function(t,l){for(var s=0,f=Object.keys(l);s<f.length;s++){var b=f[s];Object.defineProperty(t,b,{value:l[b],enumerable:!1,writable:!1,configurable:!0})}return t},Fe=function(t){var l=t&&t.ownerDocument&&t.ownerDocument.defaultView;return l||vt},rr=St(0,0,0,0);function xt(t){return parseFloat(t)||0}function Sn(t){for(var l=[],s=1;s<arguments.length;s++)l[s-1]=arguments[s];return l.reduce(function(f,b){var m=t["border-"+b+"-width"];return f+xt(m)},0)}function Ss(t){for(var l=["top","right","bottom","left"],s={},f=0,b=l;f<b.length;f++){var m=b[f],g=t["padding-"+m];s[m]=xt(g)}return s}function Rs(t){var l=t.getBBox();return St(0,0,l.width,l.height)}function Cs(t){var l=t.clientWidth,s=t.clientHeight;if(!l&&!s)return rr;var f=Fe(t).getComputedStyle(t),b=Ss(f),m=b.left+b.right,g=b.top+b.bottom,w=xt(f.width),R=xt(f.height);if(f.boxSizing==="border-box"&&(Math.round(w+m)!==l&&(w-=Sn(f,"left","right")+m),Math.round(R+g)!==s&&(R-=Sn(f,"top","bottom")+g)),!Ps(t)){var j=Math.round(w+m)-l,k=Math.round(R+g)-s;Math.abs(j)!==1&&(w-=j),Math.abs(k)!==1&&(R-=k)}return St(b.left,b.top,w,R)}var Ds=function(){return typeof SVGGraphicsElement<"u"?function(t){return t instanceof Fe(t).SVGGraphicsElement}:function(t){return t instanceof Fe(t).SVGElement&&typeof t.getBBox=="function"}}();function Ps(t){return t===Fe(t).document.documentElement}function Ns(t){return kt?Ds(t)?Rs(t):Cs(t):rr}function Es(t){var l=t.x,s=t.y,f=t.width,b=t.height,m=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,g=Object.create(m.prototype);return nr(g,{x:l,y:s,width:f,height:b,top:s,right:l+f,bottom:b+s,left:l}),g}function St(t,l,s,f){return{x:t,y:l,width:s,height:f}}var Os=function(){function t(l){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=St(0,0,0,0),this.target=l}return t.prototype.isActive=function(){var l=Ns(this.target);return this.contentRect_=l,l.width!==this.broadcastWidth||l.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var l=this.contentRect_;return this.broadcastWidth=l.width,this.broadcastHeight=l.height,l},t}(),_s=function(){function t(l,s){var f=Es(s);nr(this,{target:l,contentRect:f})}return t}(),zs=function(){function t(l,s,f){if(this.activeObservations_=[],this.observations_=new tr,typeof l!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=l,this.controller_=s,this.callbackCtx_=f}return t.prototype.observe=function(l){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(l instanceof Fe(l).Element))throw new TypeError('parameter 1 is not of type "Element".');var s=this.observations_;s.has(l)||(s.set(l,new Os(l)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(l){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(l instanceof Fe(l).Element))throw new TypeError('parameter 1 is not of type "Element".');var s=this.observations_;s.has(l)&&(s.delete(l),s.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var l=this;this.clearActive(),this.observations_.forEach(function(s){s.isActive()&&l.activeObservations_.push(s)})},t.prototype.broadcastActive=function(){if(this.hasActive()){var l=this.callbackCtx_,s=this.activeObservations_.map(function(f){return new _s(f.target,f.broadcastRect())});this.callback_.call(l,s,l),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),sr=typeof WeakMap<"u"?new WeakMap:new tr,ar=function(){function t(l){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 s=ws.getInstance(),f=new zs(l,s,this);sr.set(this,f)}return t}();["observe","unobserve","disconnect"].forEach(function(t){ar.prototype[t]=function(){var l;return(l=sr.get(this))[t].apply(l,arguments)}});var ks=function(){return typeof vt.ResizeObserver<"u"?vt.ResizeObserver:ar}();const Ms=Object.freeze(Object.defineProperty({__proto__:null,default:ks},Symbol.toStringTag,{value:"Module"})),Ts=Yr(Ms);var Rn;function Ls(){if(Rn)return ct;Rn=1,Object.defineProperty(ct,"__esModule",{value:!0}),ct.default=S;var t=m(fe()),l=b(_e()),s=b(Ts),f=b(jt());function b(C){return C&&C.__esModule?C:{default:C}}function m(C,E){if(typeof WeakMap=="function")var x=new WeakMap,p=new WeakMap;return(m=function(n,a){if(!a&&n&&n.__esModule)return n;var r,o,h={__proto__:null,default:n};if(n===null||typeof n!="object"&&typeof n!="function")return h;if(r=a?p:x){if(r.has(n))return r.get(n);r.set(n,h)}for(const c in n)c!=="default"&&{}.hasOwnProperty.call(n,c)&&((o=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(n,c))&&(o.get||o.set)?r(h,c,o):h[c]=n[c]);return h})(C,E)}function g(){return g=Object.assign?Object.assign.bind():function(C){for(var E=1;E<arguments.length;E++){var x=arguments[E];for(var p in x)({}).hasOwnProperty.call(x,p)&&(C[p]=x[p])}return C},g.apply(null,arguments)}function w(C,E,x){return(E=R(E))in C?Object.defineProperty(C,E,{value:x,enumerable:!0,configurable:!0,writable:!0}):C[E]=x,C}function R(C){var E=j(C,"string");return typeof E=="symbol"?E:E+""}function j(C,E){if(typeof C!="object"||!C)return C;var x=C[Symbol.toPrimitive];if(x!==void 0){var p=x.call(C,E);if(typeof p!="object")return p;throw new TypeError("@@toPrimitive must return a primitive value.")}return(E==="string"?String:Number)(C)}const k="react-grid-layout";function S(C){var E;return E=class extends t.Component{constructor(){super(...arguments),w(this,"state",{width:1280}),w(this,"elementRef",t.createRef()),w(this,"mounted",!1),w(this,"resizeObserver",void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new s.default(n=>{if(this.elementRef.current instanceof HTMLElement){const r=n[0].contentRect.width;this.setState({width:r})}});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,...n}=this.props;return p&&!this.mounted?t.createElement("div",{className:(0,f.default)(this.props.className,k),style:this.props.style,ref:this.elementRef}):t.createElement(C,g({innerRef:this.elementRef},n,this.state))}},w(E,"defaultProps",{measureBeforeMount:!1}),w(E,"propTypes",{measureBeforeMount:l.default.bool}),E}return ct}var Cn;function Ws(){return Cn||(Cn=1,function(t){t.exports=Qn().default,t.exports.utils=Ge(),t.exports.calculateUtils=At(),t.exports.Responsive=ms().default,t.exports.Responsive.utils=er(),t.exports.WidthProvider=Ls().default}(Ct)),Ct.exports}var qs=Ws();const Hs=Xr(qs),As=()=>{const[t,l]=z.useState([]),[s,f]=z.useState(""),b=z.useRef(null),m=()=>{b.current&&(b.current.scrollTop=b.current.scrollHeight)};z.useEffect(()=>{const w=R=>{l(j=>{const k=[...j,R];return k.length>50?k.slice(k.length-50):k}),m()};return De.on("chat",w),Ue("subscribe","chat"),V("chat.recent").then(R=>{l(R.reverse()),m()}),()=>{De.off("chat",w),Ue("unsubscribe","chat")}},[]);const g=w=>{w.preventDefault(),!(s.length>140||s.length===0)&&(En("chat",s),f(""))};return e.jsxs("div",{className:"chat-widget",children:[e.jsx(be,{className:"messages",children:e.jsx("div",{className:"messages-child",children:t.map(w=>e.jsxs("div",{className:"log-entry",children:[w.action==="msg"&&e.jsxs("div",{className:"chat-message",children:[w.user?.web?"[":"",e.jsx("span",{style:{color:`#${w.user?.color}`},children:w.user?.name}),w.user?.web?"]":"",":"," ",e.jsx(Ut,{as:"span",children:w.message})]}),w.action==="leave"&&e.jsxs("div",{className:"join-message",children:[e.jsx("span",{children:w.user?.name})," left the game."]}),w.action==="join"&&e.jsxs("div",{className:"join-message",children:[e.jsx("span",{children:w.user?.name})," joined the game",w.user?.isFirst?" for the first time":"","."]}),w.action==="server"&&e.jsx(Ut,{as:"div",className:"server-message",children:w.message})]},w._id))})}),e.jsx("form",{onSubmit:g,children:e.jsxs(We,{children:[e.jsx(ie,{type:"text",placeholder:"Message",value:s,onChange:w=>f(w)}),e.jsx(A,{normal:!0,icon:!0,style:{marginLeft:"10px"},onClick:g,children:e.jsx(Dr,{})})]})})]})},Is=()=>{const[t,l]=z.useState(null);return z.useEffect(()=>(De.on("server.status",l),Ue("subscribe","status"),V("server.status").then(l),()=>{De.off("server.status",l),Ue("unsubscribe","status")}),[]),e.jsxs("div",{className:"status-widget",children:[t?.players&&e.jsx(be,{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:"})," ",t.serverName]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Uptime:"})," ",ue(t.time)]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Bricks:"})," ",t.bricks]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Players:"})," ",t.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:t.players.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx(rt,{className:"user",to:"/players/"+s.id,children:s.name})}),e.jsx("td",{style:{textAlign:"right"},children:ue(s.time)}),e.jsx("td",{style:{textAlign:"right"},children:s.ping})]},s.address+s.id))})]})]})}),!t?.players&&e.jsx(he,{blur:!0,size:"huge",children:"Loading Status"})]})},_t={chat:{component:As,icon:Nr,tooltip:"Chat with online players"},status:{component:Is,icon:Vr,tooltip:"View current online players and server status"}},Dn=[{x:0,y:0,w:2,h:2,i:"chat"},{x:2,y:0,w:2,h:2,i:"status"}],Bs={minW:2,maxW:10,minH:2,maxH:10},Us=[8,8],Fs=()=>{const[t,l]=z.useState(()=>{if(localStorage.omeggaDashLayout2)try{return JSON.parse(localStorage.omeggaDashLayout2)}catch(S){return console.error("Invalid layout in localStorage, using default layout",S),Dn}return Dn});z.useEffect(()=>{localStorage.omeggaDashLayout2=JSON.stringify(t)},[t]);const s=S=>{l(t.filter(C=>C.i!==S))},f=S=>{S in _t&&l([...t,{x:0,y:0,w:2,h:2,i:S}])},[b,m]=z.useState(!1),g=Object.fromEntries(t.map(S=>[S.i,!0])),w=z.useCallback(S=>{l(S)},[]),R=z.useRef(null),[j,k]=z.useState(null);return z.useEffect(()=>{R.current&&k(R.current.clientWidth);const S=new ResizeObserver(C=>{for(const E of C)E.target===R.current&&k(E.contentRect.width)});return R.current&&S.observe(R.current),()=>{S.disconnect()}},[R.current]),e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Dashboard",children:e.jsxs("div",{className:"widgets-container",children:[e.jsxs(A,{normal:!0,boxy:!0,"data-tooltip":"Add more widgets to the dashboard",onClick:()=>m(!b),children:[e.jsx(Pr,{}),"Widgets"]}),e.jsx("div",{className:"widgets-list",style:{display:b?"block":"none"},children:Object.entries(_t).map(([S,C])=>e.jsxs("div",{className:"widget-item",children:[e.jsxs("div",{className:"name","data-tooltip":C.tooltip,children:[e.jsx(C.icon,{}),S]}),g[S]?e.jsx(A,{warn:!0,icon:!0,"data-tooltip":`Remove ${S} widget`,onClick:()=>s(S),children:e.jsx(Un,{})}):e.jsx(A,{main:!0,icon:!0,"data-tooltip":`Add ${S} widget`,onClick:()=>f(S),children:e.jsx(mt,{})})]},S))})]})}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsx("div",{className:"grid-container",ref:R,children:j!==null&&e.jsx(Hs,{layout:t.map(S=>({...S,...Bs})),width:j,cols:10,autoSize:!0,useCSSTransforms:!0,rowHeight:100,isBounded:!0,isResizable:!0,isDraggable:!0,margin:Us,onLayoutChange:w,draggableHandle:".drag-handle",draggableCancel:".no-drag",resizeHandles:["se"],resizeHandle:e.jsx(Er,{style:{cursor:"se-resize"},className:"resize-handle"}),children:t.map(S=>{const C=_t[S.i].component;return e.jsxs("div",{className:"grid-item",children:[e.jsxs(Wt,{className:"drag-handle",children:[e.jsx("span",{style:{flex:1},children:S.i}),e.jsx(A,{icon:!0,error:!0,className:"no-drag","data-tooltip":"Close widget",onClick:()=>s(S.i),children:e.jsx(st,{})})]}),e.jsx("div",{className:"drag-contents",children:e.jsx(C,{})})]},S.i)})})})]})]})},Pn={"Minute(s)":1,"Hour(s)":60,"Day(s)":24*60,"Week(s)":24*60*7,"Month(s)":24*60*30},Gs=["Permanent","Minute(s)","Hour(s)","Day(s)","Week(s)","Month(s)"],$s=()=>{const[t,l]=Oe("/players/:id"),[s,f]=Tt(),[b,m]=z.useState(null),[g,w]=z.useState(null),[R,j]=z.useState(!1),[k,S]=z.useState(""),[C,E]=z.useState(10),[x,p]=z.useState("Permanent"),[n,a]=z.useState(!0),[r,o]=z.useState(!1),h=z.useCallback(async()=>{if(!l?.id)return;a(!0);const P=await V("player.get",l.id);if(!P)return f("/players");w(P),a(!1)},[l?.id]);z.useEffect(()=>{h()},[h]);const c=async()=>{if(!g.id)return;o(!0);const P=x==="Permanent"?-1:C*Pn[x];try{await V("player.ban",g.id,P,k)}catch(O){console.error("Failed to ban player:",O)}m(null),h(),o(!1)},u=async()=>{if(g.id){o(!0);try{await V("player.kick",g.id,k)}catch(P){console.error("Failed to kick player:",P)}m(null),h(),o(!1)}},i=async()=>{if(g.id){o(!0);try{await V("player.unban",g.id)}catch(P){console.error("Failed to unban player:",P)}h(),o(!1)}},v=async()=>{if(g.id){o(!0);try{await V("player.clearbricks",g.id)}catch(P){console.error("Failed to clear bricks:",P)}o(!1),m(null)}},N=z.useMemo(()=>x==="Permanent"?"Never":Sr(Date.now()+Pn[x]*60*1e3*C),[x,C]);return e.jsxs("div",{className:"player-inspector-container",children:[e.jsxs(ge,{attached:!0,children:[g?.name||"SELECT A PLAYER",e.jsx("span",{style:{flex:1}}),g&&e.jsxs("div",{className:"widgets-container",children:[e.jsxs(A,{normal:!0,boxy:!0,onClick:()=>j(!R),children:[e.jsx(Fn,{}),"User Actions..."]}),e.jsxs("div",{className:"widgets-list",style:{display:R?"block":"none"},children:[e.jsxs(A,{boxy:!0,warn:!0,disabled:r,onClick:()=>{m("clear"),j(!1)},children:[e.jsx(Gt,{}),"Clear Bricks"]}),!g.isHost&&g.isOnline&&e.jsxs(A,{boxy:!0,error:!0,disabled:r,onClick:()=>{m("kick"),j(!1)},children:[e.jsx(Xt,{}),"Kick"]}),g.currentBan&&e.jsxs(A,{boxy:!0,warn:!0,disabled:r,onClick:()=>{i(),j(!1)},children:[e.jsx(Or,{}),"Unban"]}),!g.isHost&&e.jsxs(A,{boxy:!0,error:!0,disabled:r,onClick:()=>{m("ban"),j(!1)},children:[e.jsx(ht,{}),"Ban"]})]})]})]}),e.jsx("div",{className:"player-inspector",children:e.jsxs("div",{className:"player-view",children:[e.jsx(he,{active:n,size:"huge",children:"Loading Player"}),e.jsx("div",{className:"player-info",children:!n&&g&&e.jsxs(be,{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/"+g.id,target:"_blank",children:g.name})]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Host:"})," ",g.isHost?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Banned:"})," ",g.currentBan&&g.currentBan.duration<=0?e.jsx("span",{children:"Permanent"}):g.currentBan?e.jsxs("span",{children:[ue(g.currentBan.remainingTime)," of"," ",ue(g.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:"})," ",kn(g.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(g.lastSeen),children:[ue(g.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(g.created),children:[ue(g.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:"})," ",g.sessions]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of server instances this player has joined",children:"Server Visits:"})," ",g.instances]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Bans:"})," ",g.banHistory.length]})]}),e.jsx("div",{className:"section-header","data-tooltip":"Roles this player has",children:"Roles"}),e.jsxs("div",{className:"option-list",children:[g.roles.map(P=>e.jsx("div",{className:"option-item",children:e.jsx("div",{className:"option-name",style:{color:"#"+P.color},children:P.name})},P.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",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:g.nameHistory.map(P=>e.jsxs("tr",{children:[e.jsx("td",{children:P.name}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(P.date),children:ue(P.ago)})]},P.date+P.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:[g.banHistory.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:e.jsx("i",{children:"None"})})}),g.banHistory.map(P=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:P.reason}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":"Expires "+new Date(P.expires),children:0>=(P.duration??-1)?"Permanent":ue(P.duration)}),e.jsx("td",{children:e.jsx(rt,{to:"/players/"+P.bannerId,children:P.bannerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(P.created),children:Ft(P.created)})]},P.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:[g.kickHistory.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:e.jsx("i",{children:"None"})})}),g.kickHistory.map(P=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:P.reason}),e.jsx("td",{children:e.jsx(rt,{to:"/players/"+P.kickerId,children:P.kickerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(P.created),children:Ft(P.created)})]},P.created))]})]})]})})]})}),e.jsxs(Mn,{visible:!!b,children:[e.jsx(he,{active:r,size:"huge",children:"Running Action..."}),e.jsxs(Tn,{visible:!r,children:[e.jsx(Wt,{children:b==="ban"?"Ban Player":b==="kick"?"Kick Player":"Clear Bricks"}),(b==="kick"||b==="ban")&&e.jsxs("div",{className:`popout-inputs ${b}`,children:[e.jsx(ie,{type:"text",placeholder:"Reason",value:k,onChange:S}),b==="ban"&&e.jsxs("div",{className:"ban-duration",style:{display:"flex"},children:[x!=="Permanent"&&e.jsx(ie,{placeholder:"Duration",type:"number",value:C,onChange:E}),e.jsx(Mt,{options:Gs,value:x,onChange:P=>p(P)})]})]}),b==="ban"&&e.jsxs(zt,{children:["This ban will expire"," ",e.jsx("span",{style:{color:"white"},children:N}),"."]}),b==="clear"&&e.jsx(zt,{children:e.jsxs("p",{style:{padding:20},children:["Are you sure you want to clear"," ",e.jsx("span",{style:{color:"white"},children:g?.name??"??"}),"'s bricks?"]})}),e.jsxs(We,{attached:!0,children:[b==="ban"&&e.jsxs(A,{error:!0,onClick:c,children:[e.jsx(ht,{}),"Ban"]}),b==="clear"&&e.jsxs(A,{warn:!0,onClick:v,children:[e.jsx(Gt,{}),"Clear Bricks"]}),b==="kick"&&e.jsxs(A,{error:!0,onClick:u,children:[e.jsx(Xt,{}),"Kick"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(A,{normal:!0,onClick:()=>m(null),children:[e.jsx(st,{}),"Cancel"]})]})]})]})]})},Ys=()=>{const[t,l]=z.useState(0),[s,f]=z.useState(0),[b,m]=z.useState(!0),[g,w]=z.useState(!1),[R,j]=z.useState([]),[k,S]=Tt(),[C,E]=Oe("/players/:id?"),x=z.useRef({page:0,search:"",sort:"lastSeen",direction:-1,filterBanned:!1}),{page:p,search:n,sort:a,direction:r,filterBanned:o}=x.current,[h,c]=z.useState(0),u=T=>{x.current.search=T,O(),c(H=>H+1)},i=T=>{typeof T=="function"&&(T=T(x.current.page)),x.current.page=T,P()},v=T=>{typeof T=="function"&&(T=T(x.current.direction)),x.current.direction=T},N=T=>{x.current.filterBanned=T,O()},P=z.useCallback(async()=>{m(!0);const{page:T,search:H,sort:F,direction:U,filterBanned:K}=x.current,{players:J,total:Q,pages:Y}=await V("players.list",{page:T,search:H,sort:F,direction:U,filter:K?"banned":""});l(Y),f(Q),j(J),m(!1)},[]);z.useEffect(()=>{P()},[]);const O=z.useMemo(()=>Lt(()=>{x.current.page=0,P()},500),[]),_=T=>{T==a?v(H=>H*-1):(x.current.sort=T,v(T==="name"?1:-1)),P()};return e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Players",className:"players-view",children:e.jsxs("div",{className:"widgets-container",children:[e.jsxs(A,{normal:!0,boxy:!0,"data-tooltip":"Player list filters",onClick:()=>w(T=>!T),children:[e.jsx(_r,{}),"Filters"]}),e.jsx("div",{className:"widgets-list",style:{display:g?"block":"none"},children:e.jsxs("div",{className:"widget-item","data-tooltip":"Filter by banned players",children:[e.jsxs("div",{className:"name",children:[e.jsx(ht,{}),"Banned"]}),e.jsx(xe,{onChange:N,value:o})]})})]})}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsxs("div",{className:"generic-container players-container",children:[e.jsxs("div",{className:"player-table-container",children:[e.jsxs(ge,{attached:!0,children:[e.jsx(ie,{type:"text",placeholder:"Search Players...",value:n,onChange:u}),e.jsx("span",{style:{flex:1}}),e.jsx(A,{icon:!0,normal:!0,"data-tooltip":"Refresh player list",onClick:P,children:e.jsx(bt,{})})]}),e.jsxs("div",{className:"players-list",children:[e.jsx(be,{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:()=>_("name"),children:e.jsxs("span",{children:["Name",e.jsx(Re,{name:"name",sort:a,direction:r})]})}),e.jsx("th",{onClick:()=>_("heartbeats"),"data-tooltip":"Number of heartbeats the player has been part of (minutely)",children:e.jsxs("span",{children:["Played",e.jsx(Re,{name:"heartbeats",sort:a,direction:r})]})}),e.jsx("th",{onClick:()=>_("lastSeen"),"data-tooltip":"When the player was last seen",children:e.jsxs("span",{children:["Seen",e.jsx(Re,{name:"lastSeen",sort:a,direction:r})]})}),e.jsx("th",{onClick:()=>_("created"),"data-tooltip":"When the player joined",children:e.jsxs("span",{children:["Joined",e.jsx(Re,{name:"created",sort:a,direction:r})]})}),e.jsx("th",{onClick:()=>_("sessions"),"data-tooltip":"Number of Visits",children:e.jsxs("span",{className:"icon-cell",children:[e.jsx(zr,{className:"label",size:"30"}),e.jsx(Re,{name:"sessions",sort:a,direction:r})]})})]})}),e.jsx("tbody",{children:R.map(T=>e.jsxs("tr",{onClick:()=>S(`/players/${T.id}`),className:T.id===E?.id?"active":"",children:[e.jsxs("td",{className:T.ban?"ban":"",children:[T.name,T.ban&&e.jsx(ht,{size:"18"})]}),e.jsx("td",{style:{textAlign:"right"},children:kn(T.heartbeats)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(T.lastSeen),children:ue(T.seenAgo)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(T.created),children:ue(T.createdAgo)}),e.jsx("td",{style:{textAlign:"right"},children:T.sessions})]},T.id))})]})}),e.jsxs(We,{className:"pagination-footer",children:[e.jsx(A,{icon:!0,normal:!0,disabled:p===0,onClick:()=>{i(0)},children:e.jsx(Ln,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:p===0,onClick:()=>i(T=>Math.max(0,T-1)),children:e.jsx(dt,{})}),e.jsxs("div",{className:"current-page",children:[e.jsxs("div",{children:["Page ",p+1," of ",t]}),e.jsxs("div",{children:["Showing ",R.length," of ",s]})]}),e.jsx(A,{icon:!0,normal:!0,disabled:p>=t-1,onClick:()=>i(T=>Math.min(R.length-1,T+1)),children:e.jsx(pt,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:p>=t-1,onClick:()=>i(R.length-1),children:e.jsx(Wn,{})})]}),e.jsx(he,{active:b,size:"huge",children:"Loading Players"})]})]}),e.jsxs(zn,{children:[e.jsx(me,{path:"/players/:id",component:$s}),e.jsx(me,{children:e.jsxs("div",{className:"player-inspector-container","v-if":"!$route.params.id",children:[e.jsx(ge,{attached:!0,children:"SELECT A PLAYER"}),e.jsx("div",{className:"player-inspector"})]})})]})]})]})]})},Xs=(t,l)=>{try{return JSON.stringify(t)===JSON.stringify(l)}catch{return!1}},Vs=()=>{const[t,l]=Oe("/plugins/:id"),[s,f]=z.useState(null),[b,m]=z.useState({}),[g,w]=z.useState(!!s?.path),[R,j]=z.useState(!1),[k,S]=z.useState({}),C=async()=>{if(!l?.id)return;w(!0);const c=await V("plugin.get",l.id);f(c),m(c.config),w(!1)},E=async()=>{l?.id&&(j(!0),await V("plugin.load",l.id),await C(),j(!1))},x=async()=>{l?.id&&(j(!0),await V("plugin.unload",l.id),await C(),j(!1))},p=async()=>{if(!l?.id)return;j(!0),await V("plugin.unload",l.id)&&await V("plugin.load",l.id),await C(),j(!1)},n=async c=>{l?.id&&(j(!0),await V("plugin.toggle",l.id,c),await C(),j(!1))},a=z.useRef(b);a.current=b;const r=z.useRef(s);r.current=s,z.useEffect(()=>{if(!l?.id)return;r.current=null,a.current={},f(null),m({}),C();const c=([u,i])=>{u===s?.path&&f(v=>({...v,...i}))};return De.on("plugin",c),()=>{De.off("plugin",c)}},[l?.id]);const o=z.useMemo(()=>Lt(async()=>{if(!l?.id||!r.current)return;const c={},u=a.current,i=r.current.path;for(const v in r.current?.config??{})r.current?.config[v]!=u[v]&&(c[v]=!0),await V("plugin.config",l?.id,u)&&(S(c),setTimeout(()=>{S({}),f(P=>P?.path===i?{...P,config:u}:P)}))},500),[l?.id]),h=(c,u)=>{!s||!b||(m(i=>({...i,[c]:u})),o())};return e.jsxs("div",{className:"plugin-view",children:[e.jsx(he,{active:g,size:"huge",children:"Loading Plugin"}),e.jsx("div",{className:"plugin-info",children:!g&&s&&e.jsxs(be,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin name",children:"Name:"})," ",s.name]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin creator",children:"Author:"})," ",s.documentation?.author??"unknown"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{children:"Description:"})," ",s.documentation?.description??"none"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"The folder this plugin runs in",children:"Folder:"})," ",s.path]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"The type of plugin this is",children:"Format:"})," ",s.format]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Number of objects in the plugin's storage",children:"Stored Objects:"})," ",s.objCount]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin can be started",children:"Enabled:"})," ",s.isEnabled?"Yes":"No"]}),e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"Plugin is running",children:"Loaded:"})," ",s.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(s.documentation.config??{}).length===0&&e.jsx("div",{className:"option-item",children:e.jsx("i",{className:"option-name",children:"None"})}),Object.entries(s.documentation.config??{}).map(([c,u])=>e.jsx("div",{className:"option-item config",children:e.jsxs("div",{className:"option-input",children:[e.jsxs("div",{className:"option-label","data-tooltip":u.description,children:[c,e.jsxs("span",{className:`saved-note ${k[c]?"show":""}`,children:["SAVED ",e.jsx(Jr,{size:"20"})]})]}),e.jsxs("div",{className:"option-value",children:[["string","password","number"].includes(u.type)&&e.jsx(ie,{type:u.type==="string"?"text":u.type,value:b[c],onChange:i=>h(c,i)}),u.type==="list"&&e.jsx(dr,{options:"options"in u?u.options:void 0,type:u.itemType,value:b[c],onChange:i=>h(c,i)}),u.type==="players"&&e.jsx(hr,{value:b[c],onChange:i=>h(c,i)}),u.type==="role"&&e.jsx(fr,{value:b[c],onChange:i=>h(c,i)}),u.type==="enum"&&e.jsx(Mt,{options:u.options,value:b[c],onChange:i=>h(c,i)}),u.type==="boolean"&&e.jsx(xe,{value:b[c],onChange:i=>h(c,i)}),!Xs(u.default,b[c])&&e.jsx(kr,{onClick:()=>h(c,u.default),className:"reset-button","data-tooltip":"Reset to default value"})]})]})},c))]}),e.jsx("div",{className:"section-header","data-tooltip":"Ways to control the plugin",children:"Commands"}),e.jsxs("div",{className:"option-list",children:[(s.documentation.commands??[]).length===0&&e.jsx("div",{className:"option-item",children:e.jsx("i",{className:"option-name",children:"None"})}),(s.documentation.commands||[]).map(c=>e.jsxs("div",{className:"option-item",children:[e.jsx("div",{className:"option-name","data-tooltip":c.description,children:c.name}),e.jsx("div",{className:"option-args",children:(c.args||[]).map(u=>e.jsx("div",{className:`option-arg ${u.required?"required":""}`,"data-tooltip":(u.required?"(required) ":"")+u.description,children:u.name},u.name))})]},c.name))]})]})}),e.jsxs(We,{attached:!0,children:[s?.isEnabled&&!s.isLoaded&&e.jsxs(A,{main:!0,disabled:R,"data-tooltip":"Start the plugin",onClick:()=>E(),children:[e.jsx(ft,{}),"Load"]}),s?.isEnabled&&s.isLoaded&&e.jsxs(A,{warn:!0,"data-tooltip":"Stop, then start the plugin",disabled:R,onClick:()=>p(),children:[e.jsx(qn,{}),"Reload"]}),e.jsx("span",{style:{flex:1}}),s?.isEnabled&&s.isLoaded&&e.jsxs(A,{error:!0,disabled:R,"data-tooltip":"Stop the plugin",onClick:()=>x(),children:[e.jsx(Hn,{}),"Unload"]}),s&&!s?.isEnabled&&e.jsxs(A,{main:!0,"data-tooltip":"Allow the plugin to be started",disabled:R,onClick:()=>n(!0),children:[e.jsx(mt,{}),"Enable"]}),s?.isEnabled&&!s.isLoaded&&e.jsxs(A,{error:!0,"data-tooltip":"Prevent the plugin from being started",disabled:R,onClick:()=>n(!1),children:[e.jsx(Un,{}),"Disable"]})]})]})},Nn=t=>{const l=(t.isLoaded?2:0)+(t.isEnabled?1:0),s=["disabled","broken","bugged","running"][l],f=["Plugin is disabled","Plugin is enabled but not running","Plugin is running but not enabled","Plugin is running"][l],b=[Tr,Lr,Wr,qr][l];return{...t,state:l,status:s,tooltip:f,icon:b}},Ks=()=>{const[t,l]=z.useState(""),[s,f]=z.useState(!0),[b,m]=z.useState(!1),[g,w]=z.useState([]),[R,j]=Oe("/plugins/:id?"),k=z.useMemo(()=>g.find(x=>x.name===j?.id)?.name??"SELECT A PLUGIN",[g,j?.id]),S=async()=>{f(!0);const x=await V("plugins.list");w(x.map(Nn)),f(!1)},C=async()=>{m(!0),await V("plugins.reload"),m(!1)},E=x=>x.name.toLowerCase().includes(t.toLowerCase());return z.useEffect(()=>{const x=([p,n])=>{const a=Nn(n);w(r=>r.map(o=>o.path===p?{...o,...a}:o))};return De.on("plugin",x),Ue("subscribe","plugins"),S(),()=>{De.off("plugin",x),Ue("unsubscribe","plugins")}},[]),e.jsxs(e.Fragment,{children:[e.jsxs(Pe,{title:"Plugins",children:[e.jsx("span",{style:{flex:1}}),e.jsxs(A,{warn:!0,disabled:b,onClick:C,"data-tooltip":"Reload all plugins, this may clear current plugin progress",children:[e.jsx(Mr,{}),"Reload Plugins"]})]}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsxs("div",{className:"generic-container plugins-container",children:[e.jsxs("div",{className:"plugins-list-container",children:[e.jsxs(ge,{children:[e.jsx(ie,{type:"text",placeholder:"Search Plugins...",value:t,onChange:x=>l(x)}),e.jsx("span",{style:{flex:1}}),e.jsx(A,{icon:!0,normal:!0,"data-tooltip":"Refresh plugin list",onClick:S,children:e.jsx(bt,{})})]}),e.jsxs("div",{className:"plugins-list",children:[e.jsx(be,{children:g.map(x=>E(x)&&e.jsxs(rt,{href:"/plugins/"+x.path,"data-tooltip":x.documentation?.description,className:"plugin-item",children:[e.jsx(x.icon,{className:x.status,"data-tooltip":x.tooltip}),x.name]},x.path))}),e.jsx(he,{active:s,size:"huge",children:"Loading Plugins"})]})]}),e.jsxs("div",{className:"plugin-inspector-container",children:[e.jsx(ge,{attached:!0,children:k}),e.jsx("div",{className:"plugin-inspector",children:e.jsx(Vs,{})})]})]})]})]})},Js=()=>{const{started:t,stopping:l,starting:s,loading:f}=On(),b=ut(),[m,g]=z.useState(null),w=Ce(_n),[R,j]=z.useState(w?.update?.lastCheck??null);z.useEffect(()=>{j(w?.update?.lastCheck??null)},[w?.update?.lastCheck]);const[k,S]=z.useState(!1),[C,E]=z.useState(!1);z.useEffect(()=>{V("server.autorestart.get").then(g)},[]);const x=w?.update?.canCheck??!1,p=z.useCallback(()=>{x&&(S(!0),V("server.updatecheck").then(h=>{j(h),S(!1)}))},[x]),n=z.useCallback(async()=>{if(!m)return;const h={type:"autoRestartConfig",maxUptime:Math.round(Math.max(1,Math.min(m.maxUptime,168))),maxUptimeEnabled:m.maxUptimeEnabled,emptyUptime:Math.round(Math.max(1,Math.min(m.emptyUptime,168))),emptyUptimeEnabled:m.emptyUptimeEnabled,dailyHour:Math.round(Math.max(0,Math.min(m.dailyHour,23))),dailyHourEnabled:m.dailyHourEnabled,announcementEnabled:m.announcementEnabled,playersEnabled:m.playersEnabled,saveWorld:m.saveWorld,autoUpdateEnabled:m.autoUpdateEnabled??!0,autoUpdateIntervalMins:Math.round(Math.max(10,Math.min(m.autoUpdateIntervalMins??60,1/0)))};En("server.autorestart.set",h)},[m]),a=async()=>{E(!0),await V("world.save"),E(!1)},r=Zr(n),o=h=>c=>{m&&(g(u=>({...u,[h]:c})),r.fire())};return e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Server",children:w?.isSteam&&x!==null&&e.jsx(A,{main:!!R,normal:!R,"data-tooltip":"Check for updates",disabled:k,onClick:p,children:R===!0?e.jsxs(e.Fragment,{children:[e.jsx(Hr,{}),"Update Available"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ar,{}),"Check for Update"]})})}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsxs("div",{className:"generic-container server-container",children:[e.jsxs(ge,{children:["Server Status:"," ",s?"starting":l?"stopping":t?"started":"stopped"]}),e.jsxs("div",{className:"buttons",children:[e.jsxs(A,{main:!0,"data-tooltip":"Start the server",disabled:s||l||f||t,onClick:()=>b.prompt("start the server").then(h=>h&&pr()),children:[e.jsx(ft,{}),"Start"]}),e.jsxs(A,{error:!0,"data-tooltip":"Stop the server",disabled:s||l||f||!t,onClick:()=>b.prompt("stop the server").then(h=>h&&mr()),children:[e.jsx(Hn,{}),"Stop"]}),e.jsxs(A,{warn:!0,"data-tooltip":"Reloads the server's world. Saves minigames/environment/bricks if 'Save World' is enabled below.",disabled:s||l||f,onClick:()=>b.prompt("restart the server").then(h=>h&&gr()),children:[e.jsx(qn,{}),"Restart"]}),e.jsxs(A,{info:!0,"data-tooltip":"Save the current world.",disabled:s||l||f||C,onClick:a,children:[e.jsx(An,{}),"Save World"]}),w?.isSteam&&e.jsxs(A,{normal:!R,main:R===!0,"data-tooltip":`Stop and update the server even if there are no updates available.
|
|
4
|
-
|
|
5
|
-
Does not save the world or player locations.`,disabled:s||l||f,onClick:()=>b.prompt("update the server").then(h=>h&&yr()),children:[e.jsx(Ir,{}),"Update"]})]}),e.jsxs(ge,{attached:!0,style:{marginTop:8},children:["Auto Restart",e.jsx(Qr,{show:r.status===es.Waiting})]}),m&&e.jsxs("div",{className:"inputs-list",children:[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",x?"":" (Feature requires SteamCMD)"]}),e.jsxs("div",{className:"inputs",children:[e.jsx(xe,{tooltip:"Enabled",value:m.autoUpdateEnabled,onChange:o("autoUpdateEnabled")}),e.jsx(ie,{type:"number",placeholder:"Minutes",tooltip:"Interval in minutes to check for updates (min 10)",value:m.autoUpdateIntervalMins,onChange:o("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(xe,{tooltip:"Enabled",value:m.maxUptimeEnabled,onChange:o("maxUptimeEnabled")}),e.jsx(ie,{type:"number",placeholder:"Hours",tooltip:"Uptime Hours",value:m.maxUptime,onChange:o("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(xe,{tooltip:"Enabled",value:m.emptyUptimeEnabled,onChange:o("emptyUptimeEnabled")}),e.jsx(ie,{type:"number",placeholder:"Hours",tooltip:"Uptime Hours",value:m.emptyUptime,onChange:o("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(xe,{tooltip:"Enabled",value:m.dailyHourEnabled,onChange:o("dailyHourEnabled")}),e.jsx(ie,{type:"number",placeholder:"Hour",tooltip:"Hour (0 = 12am, 13 = 1pm)",value:m.dailyHour,onChange:o("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(xe,{tooltip:"Enabled",value:m.announcementEnabled,onChange:o("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(xe,{tooltip:"Enabled",value:m.playersEnabled,onChange:o("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(xe,{tooltip:"Enabled",value:m.saveWorld??!0,onChange:o("saveWorld")})})]})]}),b.children]})]})]})},Zs=()=>{const t=Ce(_n)?.userless,l=Ce(vr),[s,f]=z.useState(0),[b,m]=z.useState(0),[g,w]=z.useState(!0),[R,j]=z.useState([]),[k,S]=z.useState(""),[C,E]=z.useState(""),[x,p]=z.useState(""),[n,a]=z.useState(""),[r,o]=z.useState(!1),[h,c]=z.useState(!1),[u,i]=z.useState(!1),[v,N]=Tt(),[P,O]=Oe("/users/:id?"),_=z.useRef({page:0,search:"",sort:"lastSeen",direction:-1}),{page:T,search:H,sort:F,direction:U}=_.current,[K,J]=z.useState(0),Q=d=>{_.current.search=d,le(),J(y=>y+1)},Y=d=>{typeof d=="function"&&(d=d(_.current.page)),_.current.page=d,ne()},te=d=>{typeof d=="function"&&(d=d(_.current.direction)),_.current.direction=d},ne=async()=>{w(!0);const{page:d,search:y,sort:D,direction:L}=_.current,{users:I,total:q,pages:G}=await V("users.list",{page:d,search:y,sort:D,direction:L});f(G),m(q),j(I),w(!1)},ae=z.useRef(ne);ae.current=ne,z.useEffect(()=>{ne()},[]);const le=z.useMemo(()=>Lt(()=>{_.current.page=0,ae.current?.()},500),[]),oe=d=>{d==F?te(y=>y*-1):(_.current.sort=d,te(d==="name"?1:-1)),ne()},ze=()=>{c(!h),o(!1),E(""),S("")},ke=()=>{o(!r),c(!1),t||E(l?.username??""),S("")},M=()=>{c(!1),o(!1),E(""),S(""),p(""),a("")},W=async()=>{if(S(""),x!==n)return;i(!0);let d="";try{if(r&&!t?d=await V("users.passwd",l?.username,x):d=await V("users.create",C,x),i(!1),!d){r&&t?Rr():M();return}}catch(y){console.error("error setting user credentials",y)}S(d)},$=z.useMemo(()=>{const d=C.length!==0||!(r&&!t);return C.match(/^\w{0,32}$/)&&d&&x.length!==0},[C,x,r,t]);return e.jsxs(e.Fragment,{children:[e.jsxs(Pe,{title:"Users",children:[e.jsx("span",{style:{flex:1}}),e.jsx(A,{normal:!0,"data-tooltip":t?"Enable user sign-in":"Change password",onClick:ke,children:t?e.jsxs(e.Fragment,{children:[e.jsx(Br,{}),"Enable Users"]}):e.jsxs(e.Fragment,{children:[e.jsx($t,{}),"Change Password"]})}),!t&&l?.isOwner&&e.jsxs(A,{normal:!0,onClick:ze,"data-tooltip":"Add a new user",children:[e.jsx(Yt,{}),"Add User"]})]}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsxs("div",{className:"generic-container players-container",children:[e.jsxs("div",{className:"player-table-container",children:[e.jsxs(ge,{attached:!0,children:[e.jsx(ie,{type:"text",placeholder:"Search Users...",value:H,onChange:Q}),e.jsx("span",{style:{flex:1}}),e.jsx(A,{icon:!0,normal:!0,"data-tooltip":"Refresh user list",onClick:ne,children:e.jsx(bt,{})})]}),e.jsxs("div",{className:"players-list",children:[e.jsx(be,{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:()=>oe("username"),children:e.jsxs("span",{children:["Username",e.jsx(Re,{name:"username",sort:F,direction:U})]})}),e.jsx("th",{onClick:()=>oe("lastOnline"),"data-tooltip":"When the user was last active",children:e.jsxs("span",{children:["Active",e.jsx(Re,{name:"lastOnline",sort:F,direction:U})]})}),e.jsx("th",{onClick:()=>oe("created"),"data-tooltip":"When the user joined",children:e.jsxs("span",{children:["Joined",e.jsx(Re,{name:"created",sort:F,direction:U})]})})]})}),e.jsx("tbody",{children:R.map(d=>e.jsxs("tr",{onClick:()=>N(`/users/${d.username}`),className:d.username===O?.id?"active":"",children:[e.jsxs("td",{children:[d.username||"Admin"," ",(d.username||"Admin")===(l?.username||"Admin")&&e.jsx("span",{style:{fontSize:12},children:"(You)"})]}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":d.lastOnline?new Date(d.lastOnline):"Never",children:d.lastOnline?ue(d.seenAgo):"Never"}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(d.created),children:ue(d.createdAgo)})]},d.username))})]})}),e.jsxs(We,{className:"pagination-footer",children:[e.jsx(A,{icon:!0,normal:!0,disabled:T===0,onClick:()=>{Y(0)},children:e.jsx(Ln,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:T===0,onClick:()=>Y(d=>Math.max(0,d-1)),children:e.jsx(dt,{})}),e.jsxs("div",{className:"current-page",children:[e.jsxs("div",{children:["Page ",T+1," of ",s]}),e.jsxs("div",{children:["Showing ",R.length," of ",b]})]}),e.jsx(A,{icon:!0,normal:!0,disabled:T>=s-1,onClick:()=>Y(d=>Math.min(R.length-1,d+1)),children:e.jsx(pt,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:T>=s-1,onClick:()=>Y(R.length-1),children:e.jsx(Wn,{})})]}),e.jsx(he,{active:g,size:"huge",children:"Loading Users"})]})]}),e.jsxs(Mn,{visible:r||h,children:[e.jsx(he,{active:u,size:"huge",children:"Submitting"}),e.jsxs(Tn,{visible:!u,children:[e.jsx(Wt,{children:h?"Create New User":"Update Credentials"}),e.jsxs(zt,{children:[t&&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."})]}),!t&&r&&e.jsxs("p",{children:['Updating credentials for user "',C,'""']}),h&&e.jsx("p",{children:"Creating a new user. It's recommended to create a temporary password."}),k&&e.jsxs("p",{style:{color:"red"},children:["Error: ",k]})]}),e.jsxs("div",{className:"popout-inputs",children:[(t||h)&&e.jsx(ie,{placeholder:"username",type:"text",value:C,onChange:d=>E(d)}),e.jsx(ie,{placeholder:"password",type:"password",value:x,onChange:d=>p(d)}),e.jsx(ie,{placeholder:"confirm password",type:"password",value:n,onChange:d=>a(d)})]}),e.jsxs(We,{children:[e.jsxs(A,{main:!0,disabled:!$||n!==x,onClick:()=>W(),children:[h&&e.jsx(Yt,{}),!h&&e.jsx($t,{}),h?"Add":"Update"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(A,{normal:!0,onClick:M,children:[e.jsx(st,{}),"Cancel"]})]})]})]})]})]})]})},Ie=Gn(null),Be=Gn(null),Qs=()=>{const[t,l]=Oe("/worlds/*"),s=l?.["*"],[f,b]=z.useState(!1),m=Ce(Ie),g=Ce(Be),w=Ce(xr),[R,j]=z.useState(!1),[k,S]=z.useState(null),C=z.useRef(s);C.current=s;const E=ut();z.useEffect(()=>{!s||!w.started||(j(!0),S(null),V("world.revisions",s).then(a=>{C.current===s&&(S(a?.reverse()??null),j(!1))}))},[s,w.started]);const x=async()=>{if(!s)return;b(!0),await V("world.use",s)&&(Be.set(s),Ie.set(s)),b(!1)},p=async()=>{if(!s)return;if(b(!0),await V("world.use")){const r=await V("world.next"),o=await V("world.active");Be.set(o),Ie.set(r)}b(!1)},n=async a=>{if(!s)return;b(!0);const r=await V("world.load",s,a??null);console.info("world loaded",r),b(!1)};return e.jsxs("div",{className:"world-view",children:[e.jsx("div",{className:"world-info",children:s&&e.jsxs(be,{children:[e.jsxs("div",{className:"stats",children:[e.jsxs("div",{className:"stat",children:[e.jsx("b",{"data-tooltip":"World name",children:"Name:"})," ",s]}),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:"})," ",g===s?"Yes":"No"]}),m!==g&&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:"})," ",m===s?"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:"Revisions"}),e.jsxs("div",{className:"revision-list",children:[e.jsx(he,{active:R,size:"huge",children:"Loading World"}),k?.length===0&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:"Something went wrong listing the revisions"})}),k===null&&!R&&w.started&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:"World might not exist"})}),k?.map(a=>e.jsxs("div",{className:"revision-item config",children:[e.jsx("div",{className:"revision-index",children:a.index}),e.jsxs("div",{className:"revision-note",children:[a.note,e.jsx("div",{className:"revision-date",children:new Date(a.date).toLocaleString()})]}),e.jsx(A,{icon:!0,main:!0,disabled:f||!w.started,onClick:()=>E.prompt(e.jsxs("p",{children:["Are you sure you want to load revision ",a.index," of"," ",e.jsx("b",{style:{color:"white"},children:s}),"? Unsaved work will be lost."]})).then(r=>{r&&n(a.index)}),"data-tooltip":`Load revision ${a.index}`,children:e.jsx(ft,{})})]},a.index))]})]})}),e.jsxs(We,{attached:!0,children:[g!==s&&e.jsxs(A,{normal:!0,disabled:f||!s,"data-tooltip":"Make this the default world for the server (on startup)",onClick:()=>x(),children:[e.jsx(In,{}),"Make Default"]}),g===s&&e.jsxs(A,{warn:!0,disabled:f||!s,"data-tooltip":"Remove this world as the default world for the server (on startup)",onClick:()=>p(),children:[e.jsx(Bn,{}),"Clear Default"]}),e.jsx("span",{style:{flex:1}}),e.jsxs(A,{main:!0,"data-tooltip":"Load this world immediately",disabled:f||!w.started||!s,onClick:()=>E.prompt(e.jsxs("p",{children:["Are you sure you want to load"," ",e.jsx("b",{style:{color:"white"},children:s}),"? Unsaved work will be lost."]})).then(a=>{a&&n()}),children:[e.jsx(ft,{}),"Load"]})]}),E.children]})},ea=["Plate","Space","Studio","Peaks"],ta=()=>{const[t,l]=z.useState(""),[s,f]=z.useState(!0),[b,m]=z.useState([]),[g,w]=z.useState(!1),R=Ce(Ie),j=Ce(Be),[k,S]=z.useState(!1),C=On(),[E,x]=Oe("/worlds/*?"),p=x?.["*"],n=async()=>{f(!0);const[_,T,H]=await Promise.all([V("world.list"),V("world.active"),V("world.next")]);m(_),Be.set(T),Ie.set(H),f(!1)};z.useEffect(()=>{n()},[]);const a=async()=>{if(w(!0),await V("world.use",null)){Be.set(null);const T=await V("world.next");Ie.set(T)}w(!1)},r=async()=>{w(!0),await V("world.save"),w(!1)},o=async _=>{w(!0),await V("world.save",_),w(!1),n()},h=async(_,T)=>{w(!0),await V("world.create",_,T),w(!1),n()},c=_=>_.toLowerCase().includes(t.toLowerCase()),[u,i]=z.useState(null),v=ut({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(ie,{type:"text",placeholder:"World Name",value:u??"",onChange:_=>i(_)})})]}),leftButton:_=>e.jsxs(A,{normal:!0,onClick:()=>_(null),children:[e.jsx(st,{}),"Cancel"]}),rightButton:_=>e.jsxs(A,{disabled:!u,main:!0,onClick:()=>_(u),children:[e.jsx(mt,{}),"Save As"]})}),[N,P]=z.useState("Plate"),O=ut({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(ie,{type:"text",placeholder:"World Name",value:u??"",onChange:_=>i(_)})}),e.jsx("p",{children:e.jsx(Mt,{value:N,options:ea,onChange:_=>P(_)})})]}),leftButton:_=>e.jsxs(A,{normal:!0,onClick:()=>_(null),children:[e.jsx(st,{}),"Cancel"]}),rightButton:_=>e.jsxs(A,{disabled:!u,main:!0,onClick:()=>_({name:u,map:N}),children:[e.jsx(mt,{}),"Create"]})});return e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Worlds",children:e.jsxs("div",{className:"widgets-container worlds",children:[e.jsxs(A,{normal:!0,boxy:!0,"data-tooltip":"Show more world actions",onClick:()=>S(!k),children:[k?e.jsx(Ur,{}):e.jsx(Fn,{}),"Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:k?"block":"none"},children:[e.jsxs(A,{info:!0,disabled:g||!C.started,"data-tooltip":"Save the currently loaded world",onClick:()=>{S(!1),r()},children:[e.jsx(An,{}),"Save World"]}),e.jsxs(A,{normal:!0,disabled:g||!C.started,"data-tooltip":"Save a copy of the currently loaded world",onClick:()=>{S(!1),i(null),v.prompt().then(_=>{_&&o(_)})},children:[e.jsx(Fr,{}),"Save As"]}),e.jsxs(A,{main:!0,disabled:g||!C.started,"data-tooltip":"Create a new world",onClick:()=>{S(!1),i(null),P("Plate"),O.prompt().then(_=>{_&&h(_.name,_.map)})},children:[e.jsx(Gr,{}),"New World"]}),e.jsxs(A,{normal:j===null,warn:j!==null,disabled:g||!j,"data-tooltip":"Remove the default world for the server (on startup)",onClick:()=>{S(!1),a()},children:[e.jsx(Bn,{}),"Clear Default"]})]})]})}),e.jsxs(Ne,{children:[e.jsx(Ee,{}),e.jsxs("div",{className:"generic-container worlds-container",children:[e.jsxs("div",{className:"worlds-list-container",children:[e.jsxs(ge,{children:[e.jsx(ie,{type:"text",placeholder:"Search Worlds...",value:t,onChange:_=>l(_)}),e.jsx("span",{style:{flex:1}}),e.jsx(A,{icon:!0,normal:!0,"data-tooltip":"Refresh world list",onClick:n,children:e.jsx(bt,{})})]}),e.jsxs("div",{className:"worlds-list",children:[e.jsx(be,{children:b.map(_=>c(_)&&e.jsxs(rt,{href:"/worlds/"+_,className:`world-item ${_===p?"selected":""}`,"data-tooltip":_===R?"This world will load when the server starts":"",children:[_===j?e.jsx(In,{className:"world-item-active"}):!j&&_===R?e.jsx($r,{className:"world-item-next"}):e.jsx(Kr,{}),_]},_))}),e.jsx(he,{active:s,size:"huge",children:"Loading Worlds"})]})]}),e.jsxs("div",{className:"world-inspector-container",children:[e.jsx(ge,{attached:!0,children:p??"SELECT A WORLD"}),e.jsx("div",{className:"world-inspector",children:e.jsx(Qs,{})})]})]})]}),v.children,O.children]})},na=()=>e.jsx(br,{children:e.jsx(jr,{hook:wr,children:e.jsxs(zn,{children:[e.jsx(me,{path:"/",component:Fs}),e.jsx(me,{path:"/history/:time?",component:rs}),e.jsx(me,{path:"/players/:id?",component:Ys}),e.jsx(me,{path:"/plugins/:id?",component:Ks}),e.jsx(me,{path:"/server",component:Js}),e.jsx(me,{path:"/users/:id?",component:Zs}),e.jsx(me,{path:"/worlds/*?",component:ta}),e.jsx(me,{component:ns})]})})});or.createRoot(document.getElementById("root")).render(e.jsx(na,{}));
|
|
6
|
-
//# sourceMappingURL=app-CRu25Om6.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as C}from"./client-C5T7_OK9.js";import{j as e}from"./jsx-runtime-DoEZbXM1.js";import{r as s}from"./index-i4mjW0og.js";import{B as b,M as S,H as I,P as L,I as d,F as B,a as p,L as A}from"./index-DaWNRjkx.js";import x from"./IconArrowRight-CA5_cccJ.js";import E from"./IconLockOpen-D95XLORK.js";import"./index-c0qeY2gs.js";import"./index-DqHVrEeL.js";import"./jsx-runtime-Bw5QeaCk.js";import"./_commonjsHelpers-CE1G-McA.js";import"./shared/@nanostores_react-HTG3s0lp.js";import"./index-CJ4e7_2M.js";import"./index-CSV4ZXsq.js";import"./IconX-SYtbnYKI.js";import"./IconCheck-Dyq5qyY1.js";const O="/assets/turkey-BW4gu-4u.webp",M=()=>{const[u,i]=s.useState(!0),[o,j]=s.useState(!0),[r,f]=s.useState(""),[t,g]=s.useState(""),[c,y]=s.useState("");s.useEffect(()=>{fetch("/api/v1/first").then(a=>a.json()).then(a=>{j(a),i(!1)})},[]);const l=s.useCallback(async(a,w)=>{i(!0);try{const n=await fetch("/api/v1/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:a,password:w})}),v=await n.json();n.status===200?location.reload():console.error(v.message)}catch(n){console.error("Authentication failed:",n)}i(!1)},[]),m=r.length===0&&t.length===0,h=r.match(/^\w{0,32}$/)&&!m,k=s.useMemo(()=>({top:`${Math.random()*50+25}%`}),[]);return e.jsxs("div",{children:[e.jsx(b,{children:e.jsx("div",{className:"turkey",style:k,children:e.jsx("img",{src:O})})}),e.jsxs(S,{visible:!u,children:[e.jsx(I,{children:"Brickadia Server Login"}),e.jsxs(L,{children:[e.jsx("p",{children:"Welcome to the Omegga Web UI."}),o&&e.jsx("p",{children:"Enter credentials for an Admin user. You can also skip this step if you don't want to use a password."})]}),e.jsxs("div",{className:"popout-inputs",children:[e.jsx(d,{placeholder:"username",type:"text",value:r,onChange:f}),e.jsx(d,{placeholder:"password",type:"password",value:t,onChange:g}),o&&e.jsx(d,{placeholder:"confirm password",type:"password",value:c,onChange:y})]}),e.jsxs(B,{children:[o&&e.jsxs(p,{main:!0,disabled:!h||c!==t,onClick:()=>l(r,t),children:[e.jsx(x,{})," Create"]}),!o&&e.jsxs(p,{main:!0,disabled:!h,onClick:()=>l(r,t),children:[e.jsx(x,{})," Login"]}),e.jsx("div",{style:{flex:1}}),o&&e.jsxs(p,{warn:!0,disabled:!m||c!==t,onClick:()=>l("",""),children:[e.jsx(E,{})," Skip"]})]}),e.jsx(A,{active:u,blur:!0,size:"huge",children:e.jsx("b",{children:"AUTHORIZING"})})]})]})};C.createRoot(document.getElementById("root")).render(e.jsx(M,{}));
|
|
2
|
-
//# sourceMappingURL=auth-DdQ5DJ5h.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-DdQ5DJ5h.js","sources":["../../frontend/assets/img/turkey.webp","../../frontend/src/auth/index.tsx"],"sourcesContent":["export default \"__VITE_ASSET__CArnIZrw__\"","import { IconArrowRight, IconLockOpen } from '@tabler/icons-react';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Background } from '../components/background';\nimport { Button } from '../components/button';\nimport { Footer } from '../components/footer';\nimport { Header } from '../components/header';\nimport { Input } from '../components/input';\nimport { Loader } from '../components/loader';\nimport { Modal } from '../components/modal';\nimport { PopoutContent } from '../components/popout';\nimport turkeyImage from '../../assets/img/turkey.webp';\n\nconst Auth = () => {\n const [loading, setLoading] = useState(true);\n const [firstLoad, setFirstLoad] = useState(true);\n\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [confirm, setConfirm] = useState('');\n\n useEffect(() => {\n fetch('/api/v1/first')\n .then(response => response.json())\n .then(data => {\n setFirstLoad(data);\n setLoading(false);\n });\n }, []);\n\n const tryAuth = useCallback(async (username: string, password: string) => {\n setLoading(true);\n try {\n const res = await fetch('/api/v1/auth', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ username, password }),\n });\n const data = await res.json();\n if (res.status === 200) {\n location.reload();\n } else {\n console.error(data.message);\n }\n } catch (error) {\n console.error('Authentication failed:', error);\n }\n setLoading(false);\n }, []);\n\n const authBlank = username.length === 0 && password.length === 0;\n const authOk = username.match(/^\\w{0,32}$/) && !authBlank;\n\n const turkeyStyle = useMemo(\n () => ({ top: `${Math.random() * 50 + 25}%` }),\n [],\n );\n\n return (\n <div>\n <Background>\n <div className=\"turkey\" style={turkeyStyle}>\n <img src={turkeyImage} />\n </div>\n </Background>\n <Modal visible={!loading}>\n <Header>Brickadia Server Login</Header>\n <PopoutContent>\n <p>Welcome to the Omegga Web UI.</p>\n {firstLoad && (\n <p>\n Enter credentials for an Admin user. You can also skip this step\n if you don't want to use a password.\n </p>\n )}\n </PopoutContent>\n <div className=\"popout-inputs\">\n <Input\n placeholder=\"username\"\n type=\"text\"\n value={username}\n onChange={setUsername}\n />\n <Input\n placeholder=\"password\"\n type=\"password\"\n value={password}\n onChange={setPassword}\n />\n {firstLoad && (\n <Input\n placeholder=\"confirm password\"\n type=\"password\"\n value={confirm}\n onChange={setConfirm}\n />\n )}\n </div>\n <Footer>\n {firstLoad && (\n <Button\n main\n disabled={!authOk || confirm !== password}\n onClick={() => tryAuth(username, password)}\n >\n <IconArrowRight /> Create\n </Button>\n )}\n {!firstLoad && (\n <Button\n main\n disabled={!authOk}\n onClick={() => tryAuth(username, password)}\n >\n <IconArrowRight /> Login\n </Button>\n )}\n <div style={{ flex: 1 }} />\n {firstLoad && (\n <Button\n warn\n disabled={!authBlank || confirm !== password}\n onClick={() => tryAuth('', '')}\n >\n <IconLockOpen /> Skip\n </Button>\n )}\n </Footer>\n <Loader active={loading} blur size=\"huge\">\n <b>AUTHORIZING</b>\n </Loader>\n </Modal>\n </div>\n );\n};\n\ncreateRoot(document.getElementById('root')!).render(<Auth />);\n"],"names":["turkeyImage","Auth","loading","setLoading","useState","firstLoad","setFirstLoad","username","setUsername","password","setPassword","confirm","setConfirm","useEffect","response","data","tryAuth","useCallback","res","error","authBlank","authOk","turkeyStyle","useMemo","jsx","Background","jsxs","Modal","Header","PopoutContent","Input","Footer","Button","IconArrowRight","IconLockOpen","Loader","createRoot"],"mappings":"klBAAA,MAAAA,EAAe,+BCaTC,EAAO,IAAM,CACjB,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAI,EACrC,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAS,EAAI,EAEzC,CAACG,EAAUC,CAAW,EAAIJ,EAAAA,SAAS,EAAE,EACrC,CAACK,EAAUC,CAAW,EAAIN,EAAAA,SAAS,EAAE,EACrC,CAACO,EAASC,CAAU,EAAIR,EAAAA,SAAS,EAAE,EAEzCS,EAAAA,UAAU,IAAM,CACd,MAAM,eAAe,EAClB,KAAKC,GAAYA,EAAS,MAAM,EAChC,KAAKC,GAAQ,CACZT,EAAaS,CAAI,EACjBZ,EAAW,EAAK,CAClB,CAAC,CACL,EAAG,CAAA,CAAE,EAEL,MAAMa,EAAUC,EAAAA,YAAY,MAAOV,EAAkBE,IAAqB,CACxEN,EAAW,EAAI,EACf,GAAI,CACF,MAAMe,EAAM,MAAM,MAAM,eAAgB,CACtC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,SAAAX,EAAU,SAAAE,EAAU,CAAA,CAC5C,EACKM,EAAO,MAAMG,EAAI,KAAA,EACnBA,EAAI,SAAW,IACjB,SAAS,OAAA,EAET,QAAQ,MAAMH,EAAK,OAAO,CAE9B,OAASI,EAAO,CACd,QAAQ,MAAM,yBAA0BA,CAAK,CAC/C,CACAhB,EAAW,EAAK,CAClB,EAAG,CAAA,CAAE,EAECiB,EAAYb,EAAS,SAAW,GAAKE,EAAS,SAAW,EACzDY,EAASd,EAAS,MAAM,YAAY,GAAK,CAACa,EAE1CE,EAAcC,EAAAA,QAClB,KAAO,CAAE,IAAK,GAAG,KAAK,OAAA,EAAW,GAAK,EAAE,MACxC,CAAA,CAAC,EAGH,cACG,MAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACC,SAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,SAAS,MAAOF,EAC7B,SAAAE,EAAAA,IAAC,MAAA,CAAI,IAAKxB,CAAA,CAAa,CAAA,CACzB,EACF,EACA0B,EAAAA,KAACC,EAAA,CAAM,QAAS,CAACzB,EACf,SAAA,CAAAsB,EAAAA,IAACI,GAAO,SAAA,wBAAA,CAAsB,SAC7BC,EAAA,CACC,SAAA,CAAAL,EAAAA,IAAC,KAAE,SAAA,+BAAA,CAA6B,EAC/BnB,GACCmB,EAAAA,IAAC,IAAA,CAAE,SAAA,uGAAA,CAGH,CAAA,EAEJ,EACAE,EAAAA,KAAC,MAAA,CAAI,UAAU,gBACb,SAAA,CAAAF,EAAAA,IAACM,EAAA,CACC,YAAY,WACZ,KAAK,OACL,MAAOvB,EACP,SAAUC,CAAA,CAAA,EAEZgB,EAAAA,IAACM,EAAA,CACC,YAAY,WACZ,KAAK,WACL,MAAOrB,EACP,SAAUC,CAAA,CAAA,EAEXL,GACCmB,EAAAA,IAACM,EAAA,CACC,YAAY,mBACZ,KAAK,WACL,MAAOnB,EACP,SAAUC,CAAA,CAAA,CACZ,EAEJ,SACCmB,EAAA,CACE,SAAA,CAAA1B,GACCqB,EAAAA,KAACM,EAAA,CACC,KAAI,GACJ,SAAU,CAACX,GAAUV,IAAYF,EACjC,QAAS,IAAMO,EAAQT,EAAUE,CAAQ,EAEzC,SAAA,CAAAe,EAAAA,IAACS,EAAA,EAAe,EAAE,SAAA,CAAA,CAAA,EAGrB,CAAC5B,GACAqB,EAAAA,KAACM,EAAA,CACC,KAAI,GACJ,SAAU,CAACX,EACX,QAAS,IAAML,EAAQT,EAAUE,CAAQ,EAEzC,SAAA,CAAAe,EAAAA,IAACS,EAAA,EAAe,EAAE,QAAA,CAAA,CAAA,QAGrB,MAAA,CAAI,MAAO,CAAE,KAAM,GAAK,EACxB5B,GACCqB,EAAAA,KAACM,EAAA,CACC,KAAI,GACJ,SAAU,CAACZ,GAAaT,IAAYF,EACpC,QAAS,IAAMO,EAAQ,GAAI,EAAE,EAE7B,SAAA,CAAAQ,EAAAA,IAACU,EAAA,EAAa,EAAE,OAAA,CAAA,CAAA,CAClB,EAEJ,EACAV,EAAAA,IAACW,EAAA,CAAO,OAAQjC,EAAS,KAAI,GAAC,KAAK,OACjC,SAAAsB,EAAAA,IAAC,IAAA,CAAE,SAAA,aAAA,CAAW,CAAA,CAChB,CAAA,CAAA,CACF,CAAA,EACF,CAEJ,EAEAY,EAAAA,WAAW,SAAS,eAAe,MAAM,CAAE,EAAE,OAAOZ,EAAAA,IAACvB,IAAK,CAAE"}
|