omegga 1.2.4 → 1.2.6

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.
@@ -1,2 +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
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-CaQVH23j.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-Ds3ldd-U.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-CI115H3G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@components-CI115H3G.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{b as e,d as t,h as i,a as r,i as b,l as d}from"../utils-Ds3ldd-U.js";import"../_commonjsHelpers-CE1G-McA.js";export{e as debounce,t as duration,i as heartbeatAgo,r as isoDate,b as isoTime,d as logout};
2
+ //# sourceMappingURL=@utils-BA2UvC9c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"@utils-BA2UvC9c.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{c as _,g as de}from"./_commonjsHelpers-CE1G-McA.js";var I,H;function ie(){if(H)return I;H=1;function e(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}return I=e,I}var R,U;function be(){if(U)return R;U=1;var e=typeof _=="object"&&_&&_.Object===Object&&_;return R=e,R}var x,X;function ae(){if(X)return x;X=1;var e=be(),r=typeof self=="object"&&self&&self.Object===Object&&self,t=e||r||Function("return this")();return x=t,x}var E,Y;function me(){if(Y)return E;Y=1;var e=ae(),r=function(){return e.Date.now()};return E=r,E}var k,z;function le(){if(z)return k;z=1;var e=/\s/;function r(t){for(var i=t.length;i--&&e.test(t.charAt(i)););return i}return k=r,k}var M,J;function ve(){if(J)return M;J=1;var e=le(),r=/^\s+/;function t(i){return i&&i.slice(0,e(i)+1).replace(r,"")}return M=t,M}var w,K;function oe(){if(K)return w;K=1;var e=ae(),r=e.Symbol;return w=r,w}var G,Q;function ge(){if(Q)return G;Q=1;var e=oe(),r=Object.prototype,t=r.hasOwnProperty,i=r.toString,o=e?e.toStringTag:void 0;function m(u){var f=t.call(u,o),c=u[o];try{u[o]=void 0;var n=!0}catch{}var s=i.call(u);return n&&(f?u[o]=c:delete u[o]),s}return G=m,G}var N,V;function Te(){if(V)return N;V=1;var e=Object.prototype,r=e.toString;function t(i){return r.call(i)}return N=t,N}var L,Z;function he(){if(Z)return L;Z=1;var e=oe(),r=ge(),t=Te(),i="[object Null]",o="[object Undefined]",m=e?e.toStringTag:void 0;function u(f){return f==null?f===void 0?o:i:m&&m in Object(f)?r(f):t(f)}return L=u,L}var D,ee;function ye(){if(ee)return D;ee=1;function e(r){return r!=null&&typeof r=="object"}return D=e,D}var W,re;function je(){if(re)return W;re=1;var e=he(),r=ye(),t="[object Symbol]";function i(o){return typeof o=="symbol"||r(o)&&e(o)==t}return W=i,W}var A,te;function Se(){if(te)return A;te=1;var e=ve(),r=ie(),t=je(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,u=/^0o[0-7]+$/i,f=parseInt;function c(n){if(typeof n=="number")return n;if(t(n))return i;if(r(n)){var s=typeof n.valueOf=="function"?n.valueOf():n;n=r(s)?s+"":s}if(typeof n!="string")return n===0?n:+n;n=e(n);var b=m.test(n);return b||u.test(n)?f(n.slice(2),b?2:8):o.test(n)?i:+n}return A=c,A}var C,ne;function _e(){if(ne)return C;ne=1;var e=ie(),r=me(),t=Se(),i="Expected a function",o=Math.max,m=Math.min;function u(f,c,n){var s,b,j,g,d,v,T=0,F=!1,h=!1,p=!0;if(typeof f!="function")throw new TypeError(i);c=t(c)||0,e(n)&&(F=!!n.leading,h="maxWait"in n,j=h?o(t(n.maxWait)||0,c):j,p="trailing"in n?!!n.trailing:p);function q(a){var l=s,y=b;return s=b=void 0,T=a,g=f.apply(y,l),g}function ue(a){return T=a,d=setTimeout(S,c),F?q(a):g}function fe(a){var l=a-v,y=a-T,$=c-l;return h?m($,j-y):$}function P(a){var l=a-v,y=a-T;return v===void 0||l>=c||l<0||h&&y>=j}function S(){var a=r();if(P(a))return B(a);d=setTimeout(S,fe(a))}function B(a){return d=void 0,p&&s?q(a):(s=b=void 0,g)}function ce(){d!==void 0&&clearTimeout(d),T=0,s=v=b=d=void 0}function se(){return d===void 0?g:B(r())}function O(){var a=r(),l=P(a);if(s=arguments,b=this,v=a,l){if(d===void 0)return ue(v);if(h)return clearTimeout(d),d=setTimeout(S,c),q(v)}return d===void 0&&(d=setTimeout(S,c)),g}return O.cancel=ce,O.flush=se,O}return C=u,C}var pe=_e();const qe=de(pe),Re=()=>fetch("/api/v1/logout").then(()=>location.reload()),xe=qe;function Ee(e){return e<60?e+" mins":(e/=60,e<24?Math.round(e)+" hours":(e/=24,Math.round(e)+" days"))}function ke(e){return typeof e>"u"?"":e<0?"not yet":(e/=1e3,e<5?"a moment":e<60?Math.round(e)+" secs":(e/=60,e<60?Math.round(e)+" mins":(e/=60,e<24?Math.round(e)+" hours":(e/=24,Math.round(e)+" days"))))}function Oe(e){const r=new Date(e),t=i=>(i+"").padStart(2,"0");return r.getFullYear()+"-"+t(r.getMonth()+1)+"-"+t(r.getDate())+" "+t(r.getHours())+":"+t(r.getMinutes())+":"+t(r.getSeconds())}const Me=e=>Oe(e).split(" ")[0];export{Me as a,xe as b,ie as c,ke as d,Se as e,ye as f,oe as g,Ee as h,Oe as i,je as j,ae as k,Re as l,be as m,he as r};
2
+ //# sourceMappingURL=utils-Ds3ldd-U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-Ds3ldd-U.js","sources":["../../node_modules/lodash/isObject.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../frontend/src/utils.ts"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","export const logout = () =>\n fetch('/api/v1/logout').then(() => location.reload());\n\nimport debounce_ from 'lodash/debounce';\nexport const debounce = debounce_;\n\nexport function heartbeatAgo(mins: number): string {\n if (mins < 60) return mins + ' mins';\n mins /= 60;\n if (mins < 24) return Math.round(mins) + ' hours';\n mins /= 24;\n return Math.round(mins) + ' days';\n}\n\nexport function duration(ago?: number): string {\n if (typeof ago === 'undefined') return '';\n if (ago < 0) return 'not yet';\n ago /= 1000;\n\n if (ago < 5) return 'a moment';\n if (ago < 60) return Math.round(ago) + ' secs';\n ago /= 60;\n if (ago < 60) return Math.round(ago) + ' mins';\n ago /= 60;\n if (ago < 24) return Math.round(ago) + ' hours';\n ago /= 24;\n return Math.round(ago) + ' days';\n}\n\nexport function isoTime(time: string | number) {\n const date = new Date(time);\n const pad = (s: number) => (s + '').padStart(2, '0');\n return (\n date.getFullYear() +\n '-' +\n pad(date.getMonth() + 1) +\n '-' +\n pad(date.getDate()) +\n ' ' +\n pad(date.getHours()) +\n ':' +\n pad(date.getMinutes()) +\n ':' +\n pad(date.getSeconds())\n );\n}\n\nexport const isoDate = (time: string) => isoTime(time).split(' ')[0];\n"],"names":["isObject","value","type","isObject_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","now","now_1","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","logout","debounce_","heartbeatAgo","mins","duration","ago","isoTime","date","pad","s","isoDate"],"mappings":"mGAyBA,SAASA,EAASC,EAAO,CACvB,IAAIC,EAAO,OAAOD,EAClB,OAAOA,GAAS,OAASC,GAAQ,UAAYA,GAAQ,WACvD,CAEA,OAAAC,EAAiBH,4CC7BjB,IAAII,EAAa,OAAOC,GAAU,UAAYA,GAAUA,EAAO,SAAW,QAAUA,EAEpF,OAAAC,EAAiBF,4CCHjB,IAAIA,EAAaG,GAAA,EAGbC,EAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEC,EAAOL,GAAcI,GAAY,SAAS,aAAa,EAAC,EAE5D,OAAAE,EAAiBD,4CCRjB,IAAIA,EAAOF,GAAA,EAkBPI,EAAM,UAAW,CACnB,OAAOF,EAAK,KAAK,IAAG,CACtB,EAEA,OAAAG,EAAiBD,4CCrBjB,IAAIE,EAAe,KAUnB,SAASC,EAAgBC,EAAQ,CAG/B,QAFIC,EAAQD,EAAO,OAEZC,KAAWH,EAAa,KAAKE,EAAO,OAAOC,CAAK,CAAC,GAAG,CAC3D,OAAOA,CACT,CAEA,OAAAC,EAAiBH,4CClBjB,IAAIA,EAAkBP,GAAA,EAGlBW,EAAc,OASlB,SAASC,EAASJ,EAAQ,CACxB,OAAOA,GACHA,EAAO,MAAM,EAAGD,EAAgBC,CAAM,EAAI,CAAC,EAAE,QAAQG,EAAa,EAAE,CAE1E,CAEA,OAAAE,EAAiBD,4CClBjB,IAAIV,EAAOF,GAAA,EAGPc,EAASZ,EAAK,OAElB,OAAAa,EAAiBD,4CCLjB,IAAIA,EAASd,GAAA,EAGTgB,EAAc,OAAO,UAGrBC,EAAiBD,EAAY,eAO7BE,EAAuBF,EAAY,SAGnCG,EAAiBL,EAASA,EAAO,YAAc,OASnD,SAASM,EAAU1B,EAAO,CACxB,IAAI2B,EAAQJ,EAAe,KAAKvB,EAAOyB,CAAc,EACjDG,EAAM5B,EAAMyB,CAAc,EAE9B,GAAI,CACFzB,EAAMyB,CAAc,EAAI,OACxB,IAAII,EAAW,EACnB,MAAc,CAAA,CAEZ,IAAIC,EAASN,EAAqB,KAAKxB,CAAK,EAC5C,OAAI6B,IACEF,EACF3B,EAAMyB,CAAc,EAAIG,EAExB,OAAO5B,EAAMyB,CAAc,GAGxBK,CACT,CAEA,OAAAC,EAAiBL,4CC5CjB,IAAIJ,EAAc,OAAO,UAOrBE,EAAuBF,EAAY,SASvC,SAASU,EAAehC,EAAO,CAC7B,OAAOwB,EAAqB,KAAKxB,CAAK,CACxC,CAEA,OAAAiC,EAAiBD,4CCrBjB,IAAIZ,EAASd,GAAA,EACToB,EAAYQ,GAAA,EACZF,EAAiBG,GAAA,EAGjBC,EAAU,gBACVC,EAAe,qBAGfZ,EAAiBL,EAASA,EAAO,YAAc,OASnD,SAASkB,EAAWtC,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAYqC,EAAeD,EAEtCX,GAAkBA,KAAkB,OAAOzB,CAAK,EACpD0B,EAAU1B,CAAK,EACfgC,EAAehC,CAAK,CAC1B,CAEA,OAAAuC,EAAiBD,+CCHjB,SAASE,EAAaxC,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CAEA,OAAAyC,EAAiBD,+CC5BjB,IAAIF,EAAahC,GAAA,EACbkC,EAAeN,GAAA,EAGfQ,EAAY,kBAmBhB,SAASC,EAAS3C,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpBwC,EAAaxC,CAAK,GAAKsC,EAAWtC,CAAK,GAAK0C,CACjD,CAEA,OAAAE,EAAiBD,+CC5BjB,IAAIzB,EAAWZ,GAAA,EACXP,EAAWmC,GAAA,EACXS,EAAWR,GAAA,EAGXU,EAAM,IAGNC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAe,SAyBnB,SAASC,EAASlD,EAAO,CACvB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAI2C,EAAS3C,CAAK,EAChB,OAAO6C,EAET,GAAI9C,EAASC,CAAK,EAAG,CACnB,IAAImD,EAAQ,OAAOnD,EAAM,SAAW,WAAaA,EAAM,QAAO,EAAKA,EACnEA,EAAQD,EAASoD,CAAK,EAAKA,EAAQ,GAAMA,CAC7C,CACE,GAAI,OAAOnD,GAAS,SAClB,OAAOA,IAAU,EAAIA,EAAQ,CAACA,EAEhCA,EAAQkB,EAASlB,CAAK,EACtB,IAAIoD,EAAWL,EAAW,KAAK/C,CAAK,EACpC,OAAQoD,GAAYJ,EAAU,KAAKhD,CAAK,EACpCiD,EAAajD,EAAM,MAAM,CAAC,EAAGoD,EAAW,EAAI,CAAC,EAC5CN,EAAW,KAAK9C,CAAK,EAAI6C,EAAM,CAAC7C,CACvC,CAEA,OAAAqD,EAAiBH,+CC/DjB,IAAInD,EAAWO,GAAA,EACXI,EAAMwB,GAAA,EACNgB,EAAWf,GAAA,EAGXmB,EAAkB,sBAGlBC,EAAY,KAAK,IACjBC,EAAY,KAAK,IAwDrB,SAASC,EAASC,EAAMC,EAAMC,EAAS,CACrC,IAAIC,EACAC,EACAC,EACAjC,EACAkC,EACAC,EACAC,EAAiB,EACjBC,EAAU,GACVC,EAAS,GACTC,EAAW,GAEf,GAAI,OAAOX,GAAQ,WACjB,MAAM,IAAI,UAAUJ,CAAe,EAErCK,EAAOT,EAASS,CAAI,GAAK,EACrB5D,EAAS6D,CAAO,IAClBO,EAAU,CAAC,CAACP,EAAQ,QACpBQ,EAAS,YAAaR,EACtBG,EAAUK,EAASb,EAAUL,EAASU,EAAQ,OAAO,GAAK,EAAGD,CAAI,EAAII,EACrEM,EAAW,aAAcT,EAAU,CAAC,CAACA,EAAQ,SAAWS,GAG1D,SAASC,EAAWC,EAAM,CACxB,IAAIC,EAAOX,EACPY,EAAUX,EAEd,OAAAD,EAAWC,EAAW,OACtBI,EAAiBK,EACjBzC,EAAS4B,EAAK,MAAMe,EAASD,CAAI,EAC1B1C,CACX,CAEE,SAAS4C,GAAYH,EAAM,CAEzB,OAAAL,EAAiBK,EAEjBP,EAAU,WAAWW,EAAchB,CAAI,EAEhCQ,EAAUG,EAAWC,CAAI,EAAIzC,CACxC,CAEE,SAAS8C,GAAcL,EAAM,CAC3B,IAAIM,EAAoBN,EAAON,EAC3Ba,EAAsBP,EAAOL,EAC7Ba,EAAcpB,EAAOkB,EAEzB,OAAOT,EACHZ,EAAUuB,EAAahB,EAAUe,CAAmB,EACpDC,CACR,CAEE,SAASC,EAAaT,EAAM,CAC1B,IAAIM,EAAoBN,EAAON,EAC3Ba,EAAsBP,EAAOL,EAKjC,OAAQD,IAAiB,QAAcY,GAAqBlB,GACzDkB,EAAoB,GAAOT,GAAUU,GAAuBf,CACnE,CAEE,SAASY,GAAe,CACtB,IAAIJ,EAAO7D,EAAG,EACd,GAAIsE,EAAaT,CAAI,EACnB,OAAOU,EAAaV,CAAI,EAG1BP,EAAU,WAAWW,EAAcC,GAAcL,CAAI,CAAC,CAC1D,CAEE,SAASU,EAAaV,EAAM,CAK1B,OAJAP,EAAU,OAINK,GAAYR,EACPS,EAAWC,CAAI,GAExBV,EAAWC,EAAW,OACfhC,EACX,CAEE,SAASoD,IAAS,CACZlB,IAAY,QACd,aAAaA,CAAO,EAEtBE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,EAAU,MACnD,CAEE,SAASmB,IAAQ,CACf,OAAOnB,IAAY,OAAYlC,EAASmD,EAAavE,EAAG,CAAE,CAC9D,CAEE,SAAS0E,GAAY,CACnB,IAAIb,EAAO7D,EAAG,EACV2E,EAAaL,EAAaT,CAAI,EAMlC,GAJAV,EAAW,UACXC,EAAW,KACXG,EAAeM,EAEXc,EAAY,CACd,GAAIrB,IAAY,OACd,OAAOU,GAAYT,CAAY,EAEjC,GAAIG,EAEF,oBAAaJ,CAAO,EACpBA,EAAU,WAAWW,EAAchB,CAAI,EAChCW,EAAWL,CAAY,CAEtC,CACI,OAAID,IAAY,SACdA,EAAU,WAAWW,EAAchB,CAAI,GAElC7B,CACX,CACE,OAAAsD,EAAU,OAASF,GACnBE,EAAU,MAAQD,GACXC,CACT,CAEA,OAAAE,EAAiB7B,gCC9LJ8B,GAAS,IACpB,MAAM,gBAAgB,EAAE,KAAK,IAAM,SAAS,OAAA,CAAQ,EAGzC9B,GAAW+B,GAEjB,SAASC,GAAaC,EAAsB,CACjD,OAAIA,EAAO,GAAWA,EAAO,SAC7BA,GAAQ,GACJA,EAAO,GAAW,KAAK,MAAMA,CAAI,EAAI,UACzCA,GAAQ,GACD,KAAK,MAAMA,CAAI,EAAI,SAC5B,CAEO,SAASC,GAASC,EAAsB,CAC7C,OAAI,OAAOA,EAAQ,IAAoB,GACnCA,EAAM,EAAU,WACpBA,GAAO,IAEHA,EAAM,EAAU,WAChBA,EAAM,GAAW,KAAK,MAAMA,CAAG,EAAI,SACvCA,GAAO,GACHA,EAAM,GAAW,KAAK,MAAMA,CAAG,EAAI,SACvCA,GAAO,GACHA,EAAM,GAAW,KAAK,MAAMA,CAAG,EAAI,UACvCA,GAAO,GACA,KAAK,MAAMA,CAAG,EAAI,WAC3B,CAEO,SAASC,GAAQtB,EAAuB,CAC7C,MAAMuB,EAAO,IAAI,KAAKvB,CAAI,EACpBwB,EAAOC,IAAeA,EAAI,IAAI,SAAS,EAAG,GAAG,EACnD,OACEF,EAAK,YAAA,EACL,IACAC,EAAID,EAAK,WAAa,CAAC,EACvB,IACAC,EAAID,EAAK,SAAS,EAClB,IACAC,EAAID,EAAK,SAAA,CAAU,EACnB,IACAC,EAAID,EAAK,WAAA,CAAY,EACrB,IACAC,EAAID,EAAK,YAAY,CAEzB,CAEO,MAAMG,GAAW1B,GAAiBsB,GAAQtB,CAAI,EAAE,MAAM,GAAG,EAAE,CAAC","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
package/public/auth.html CHANGED
@@ -1034,6 +1034,62 @@ a,
1034
1034
  .menu-button:not(.disabled):active .menu-button-content {
1035
1035
  padding-top: 4px;
1036
1036
  }
1037
+ .br-table {
1038
+ width: 100%;
1039
+ flex: 1;
1040
+ }
1041
+ .br-table thead th:hover {
1042
+ background-color: #5e7190;
1043
+ }
1044
+ .br-table thead th:active {
1045
+ background-color: #263f61;
1046
+ }
1047
+ .br-table thead th span {
1048
+ display: flex;
1049
+ align-items: center;
1050
+ position: relative;
1051
+ cursor: pointer;
1052
+ user-select: none;
1053
+ padding-left: 20px;
1054
+ }
1055
+ .br-table thead th span.icon-cell {
1056
+ padding-right: 0;
1057
+ }
1058
+ .br-table thead th span .label,
1059
+ .br-table thead th span .icon {
1060
+ padding: 0;
1061
+ }
1062
+ .br-table thead th span .icon:not(.label) {
1063
+ color: #a7bbce;
1064
+ position: absolute;
1065
+ left: 16px;
1066
+ transform: translate(-100%);
1067
+ }
1068
+ .br-table tbody tr {
1069
+ cursor: pointer;
1070
+ user-select: none;
1071
+ }
1072
+ .br-table tbody tr .ban {
1073
+ color: #e02d2d;
1074
+ vertical-align: center;
1075
+ }
1076
+ .br-table tbody tr:hover td, .br-table tbody tr.active td {
1077
+ background-color: #5e7190;
1078
+ }
1079
+ .br-table tbody tr:hover td .username, .br-table tbody tr.active td .username {
1080
+ color: #a7bbce !important;
1081
+ }
1082
+ .br-table tbody tr:active td {
1083
+ background-color: #263f61;
1084
+ }
1085
+ .br-table tbody tr td.player-name .player-name-container {
1086
+ display: flex;
1087
+ align-items: center;
1088
+ }
1089
+ .br-table tbody tr td.player-name .player-name-container .username {
1090
+ font-size: 14px;
1091
+ color: #5e7190;
1092
+ }
1037
1093
  .toggle {
1038
1094
  display: flex;
1039
1095
  font-weight: bold;
@@ -1186,7 +1242,7 @@ body {
1186
1242
  }
1187
1243
  }
1188
1244
  </style>
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--FJWdUou.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@components":"./assets/shared/@components-B442wlEb.js"}}</script>
1245
+ <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","@tabler/icons-react":"./assets/shared/@tabler_icons-react--FJWdUou.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@utils":"./assets/shared/@utils-BA2UvC9c.js","@components":"./assets/shared/@components-CI115H3G.js"}}</script>
1190
1246
  <script type="module" crossorigin src="/assets/auth-CvxEWAMc.js"></script>
1191
1247
  <link rel="modulepreload" crossorigin href="/assets/index-c0qeY2gs.js">
1192
1248
  <link rel="modulepreload" crossorigin href="/assets/index-DqHVrEeL.js">
@@ -34,15 +34,13 @@ has_lib32gcc="yes" # sorry anyone not running arch/debian
34
34
  lib32gcc_dep="lib32gcc-s1"
35
35
  pkg_manager="apt-get install"
36
36
 
37
- # check if lib32-gcc-libs is installed in arch linux
38
37
  if [[ -f /etc/arch-release ]]; then
38
+ # if lib32-gcc-libs is installed in arch linux
39
39
  lib32gcc_dep="lib32-gcc-libs"
40
40
  pkg_manager="pacman -S"
41
41
  has_lib32gcc=$(pacman -Q lib32-gcc-libs >/dev/null 2>&1 && echo "yes" || echo "no")
42
- fi
43
-
44
- # check if lib32gcc-s1 exists in debian/ubuntu
45
- if [[ -f /etc/debian_version ]] || [[ -f /etc/lsb-release ]]; then
42
+ elif [[ -f /etc/debian_version ]] || [[ -f /etc/lsb-release ]]; then
43
+ # if lib32gcc-s1 exists in debian/ubuntu
46
44
  lib32gcc_dep="lib32gcc-s1"
47
45
  pkg_manager="apt-get install"
48
46
  has_lib32gcc=$(dpkg -s lib32gcc-s1 >/dev/null 2>&1 && echo "yes" || echo "no")
@@ -1,6 +0,0 @@
1
- import{c as cn}from"./client-C5T7_OK9.js";import{j as e}from"./jsx-runtime-DoEZbXM1.js";import{r as z,a as un}from"./index-i4mjW0og.js";import{N as Pe,P as Ne,S as Ee,r as V,I as dn,C as hn,s as De,i as Be,a as be,U as Ct,L as Ft,b as Er,c as ge,D as Tt,T as xe,d as Re,e as fn,f as pn,R as mn,u as Or,$ as _r,g as gn,h as yn,j as vn,k as xn,l as bn,m as jn,n as wn}from"./index-BC_vZ56r.js";import{u as Oe,L as nt,a as Lt,S as zr,R as me,b as Sn,c as Rn}from"./index-CRRRLlCc.js";import{duration as ue,isoTime as Cn,heartbeatAgo as kr,isoDate as Gt,debounce as Wt,logout as Dn}from"./shared/@utils-BQyGUOvP.js";import{a as A,L as he,F as We,I as ie,H as qt,D as Mr,M as Tr,P as kt,u as ut}from"./index-DYcAgWjJ.js";import{I as Pn,a as dt,b as Nn,c as En,d as On,e as _n,f as Lr,g as $t,h as zn,i as ht,j as kn,k as bt,l as Mn,m as Wr,n as qr,o as Tn,p as ft,q as Hr,r as Ar,s as Ln,t as Wn,u as qn,v as Hn,w as An,x as In,y as Un,z as Ir,A as Bn,B as Fn,C as Yt,D as Xt,E as Ur,F as Br,G as Gn,H as $n,J as Yn}from"./IconWorldPlus-CGBAsLNj.js";import pt from"./IconArrowRight-CA5_cccJ.js";import{a as Xn,g as Vn}from"./_commonjsHelpers-CE1G-McA.js";import{r as fe}from"./index-c0qeY2gs.js";import{r as Ht}from"./index-DqHVrEeL.js";import{I as Kn,a as Fr,b as mt,c as Gr,d as Vt,e as Jn}from"./IconWorld-DtARpBKX.js";import{a as st}from"./IconX-SYtbnYKI.js";import{I as Zn}from"./IconCheck-Dyq5qyY1.js";import{useStore as Ce}from"./shared/@nanostores_react-HTG3s0lp.js";import{useSaved as Qn,SavedSpan as es,SavedStatus as ts}from"./shared/@hooks-DfTzYBIL.js";import{a as $r}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&&Yr()});function Yr(){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 Xr(t){if(!t||!t.getAttribute)return;const l=t.getAttribute("data-tooltip");return l||Xr(t.parentNode??null)}function rs(){const t=document.elementFromPoint(gt,yt),l=Xr(t),s=de.innerText;!l&&He&&!Ae&&(He=!1,clearTimeout($e)),l&&!He&&!Ae?(clearTimeout($e),He=!0,$e=setTimeout(()=>{de.innerText=l,Yr(),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(()=>{rs()},100);const ns=()=>e.jsxs(e.Fragment,{children:[e.jsx(Pe,{title:"Not Found"}),e.jsx(Ne,{children:e.jsx(Ee,{})})]}),Kt=["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),ss=()=>{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,M]=z.useState({}),[S,C]=z.useState(0),E=z.useMemo(()=>new Date().getFullYear(),[]),[x,p]=z.useState(E),r=z.useMemo(()=>new Date().getMonth(),[]),[a,n]=z.useState(r),o=z.useMemo(()=>new Date().getDate(),[]),h=z.useRef(null),[c,u]=z.useState(null),[i,v]=z.useState(null),N=z.useRef(null),D=z.useRef(null),O=z.useRef([]),_=z.useCallback(async()=>{b(!0);const T=await V("chat.calendar");M(T),b(!1)},[]),k=z.useCallback(T=>{if(!T.length)return;O.current=O.current.concat(T),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],P=new Date(y.created);y.date=P.getDate(),d===0||y.date!==O.current[d-1].date?y.newDay=`${Kt[P.getMonth()]} ${y.date}, ${P.getFullYear()}`:y.newDay=void 0}N.current=W,D.current=$,C(d=>d+1)},[]),H=z.useCallback(async({before:T,after:W},$)=>{b(!0);const d=await V("chat.history",{before:T,after:W});return k(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(T=>{const W=h.current?.querySelector(".scroll-scroller");window.requestAnimationFrame(()=>{W&&(W.scrollTop=W.scrollHeight,T())})});z.useEffect(()=>{const T=s&&new Date(s.match(/^\d+$/)?Number(s):s);(async()=>(m&&await _(),T&&!Number.isNaN(T.getTime())?(O.current=[],await H({before:T.getTime()-1}),await H({after:T.getTime()-1}),requestAnimationFrame(()=>{h.current?.querySelector(".focused")?.scrollIntoView({block:"center"})})):(O.current=[],await H({before:Date.now()}),F())))()},[s]);const B=async(T,W,$)=>{O.current=[],C(y=>y+1);const d=new Date(T,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&&D.current&&D.current>=i)return;(await H({after:D.current},"bottom")).length===0&&v(D.current)},Q=z.useMemo(()=>je(j),[j]),Y=z.useMemo(()=>je(j,!0),[j]),te=z.useMemo(()=>{const T=Y.find(W=>W>x)??null;return T?[T,je(j[T])[0]]:null},[j,Y]),re=z.useMemo(()=>{const T=Q.find(W=>W<x)??null;return T?[T,je(j[T],!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 T=Q.find($=>$>x);if(!T)return null;const W=je(j[T])[0];return typeof W!="number"?null:[T,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 T=Y.find($=>$<x);if(!T)return null;const W=je(j[T],!0)[0];return typeof W!="number"?null:[T,W]},[x,a,j]),oe=T=>{T&&(p(x),n(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(Pn,{})," Calendar"]}),w&&e.jsxs("div",{className:"calendar",children:[e.jsxs("div",{className:"year",children:[e.jsx(A,{icon:!0,normal:!0,disabled:!re,onClick:()=>oe(re),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,{})}),Kt[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((T,W)=>e.jsx("div",{},`empty-${W}`)),Array.from({length:ze}).map((T,W)=>e.jsx("div",{className:`days ${r===a&&E===x&&W+1===o?"today":""} ${!(r===a&&E===x&&W+1>o)&&j[x]?.[a]?.[W]?"available":""}`,onClick:()=>B(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(dn,{loading:f,onTop:K,onBottom:J,onTopScrollsToBottom:!1,offset:500,className:"scroll-scroller",children:O.current.map(T=>e.jsxs(un.Fragment,{children:[T.newDay&&e.jsx("div",{className:"chat-new-day",children:T.newDay}),e.jsx(hn,{log:T},T._id)]},T._id))})}),e.jsx(he,{active:f&&m,size:"huge",children:"Loading Chat"})]})})]})]})};var Dt={exports:{}},Ye={},rt={exports:{}},as=rt.exports,Jt;function At(){return Jt||(Jt=1,function(t,l){(function(s,f){f(l)})(as,function(s){function f(T){return function($,d,y,P,L,I,q){return T($,d,q)}}function b(T){return function($,d,y,P){if(!$||!d||typeof $!="object"||typeof d!="object")return T($,d,y,P);var L=P.get($),I=P.get(d);if(L&&I)return L===d&&I===$;P.set($,d),P.set(d,$);var q=T($,d,y,P);return P.delete($),P.delete(d),q}}function m(T,W){var $={};for(var d in T)$[d]=T[d];for(var d in W)$[d]=W[d];return $}function g(T){return T.constructor===Object||T.constructor==null}function w(T){return typeof T.then=="function"}function R(T,W){return T===W||T!==T&&W!==W}var j="[object Arguments]",M="[object Boolean]",S="[object Date]",C="[object RegExp]",E="[object Map]",x="[object Number]",p="[object Object]",r="[object Set]",a="[object String]",n=Object.prototype.toString;function o(T){var W=T.areArraysEqual,$=T.areDatesEqual,d=T.areMapsEqual,y=T.areObjectsEqual,P=T.areRegExpsEqual,L=T.areSetsEqual,I=T.createIsNestedEqual,q=I(G);function G(U,X,ee){if(U===X)return!0;if(!U||!X||typeof U!="object"||typeof X!="object")return U!==U&&X!==X;if(g(U)&&g(X))return y(U,X,q,ee);var Me=Array.isArray(U),ce=Array.isArray(X);if(Me||ce)return Me===ce&&W(U,X,q,ee);var se=n.call(U);return se!==n.call(X)?!1:se===S?$(U,X,q,ee):se===C?P(U,X,q,ee):se===E?d(U,X,q,ee):se===r?L(U,X,q,ee):se===p||se===j?w(U)||w(X)?!1:y(U,X,q,ee):se===M||se===x||se===a?R(U.valueOf(),X.valueOf()):!1}return G}function h(T,W,$,d){var y=T.length;if(W.length!==y)return!1;for(;y-- >0;)if(!$(T[y],W[y],y,y,T,W,d))return!1;return!0}var c=b(h);function u(T,W){return R(T.valueOf(),W.valueOf())}function i(T,W,$,d){var y=T.size===W.size;if(!y)return!1;if(!T.size)return!0;var P={},L=0;return T.forEach(function(I,q){if(y){var G=!1,U=0;W.forEach(function(X,ee){!G&&!P[U]&&(G=$(q,ee,L,U,T,W,d)&&$(I,X,q,ee,T,W,d))&&(P[U]=!0),U++}),L++,y=G}}),y}var v=b(i),N="_owner",D=Object.prototype.hasOwnProperty;function O(T,W,$,d){var y=Object.keys(T),P=y.length;if(Object.keys(W).length!==P)return!1;for(var L;P-- >0;){if(L=y[P],L===N){var I=!!T.$$typeof,q=!!W.$$typeof;if((I||q)&&I!==q)return!1}if(!D.call(W,L)||!$(T[L],W[L],L,L,T,W,d))return!1}return!0}var _=b(O);function k(T,W){return T.source===W.source&&T.flags===W.flags}function H(T,W,$,d){var y=T.size===W.size;if(!y)return!1;if(!T.size)return!0;var P={};return T.forEach(function(L,I){if(y){var q=!1,G=0;W.forEach(function(U,X){!q&&!P[G]&&(q=$(L,U,I,X,T,W,d))&&(P[G]=!0),G++}),y=q}}),y}var F=b(H),B=Object.freeze({areArraysEqual:h,areDatesEqual:u,areMapsEqual:i,areObjectsEqual:O,areRegExpsEqual:k,areSetsEqual:H,createIsNestedEqual:f}),K=Object.freeze({areArraysEqual:c,areDatesEqual:u,areMapsEqual:v,areObjectsEqual:_,areRegExpsEqual:k,areSetsEqual:F,createIsNestedEqual:f}),J=o(B);function Q(T,W){return J(T,W,void 0)}var Y=o(m(B,{createIsNestedEqual:function(){return R}}));function te(T,W){return Y(T,W,void 0)}var re=o(K);function ae(T,W){return re(T,W,new WeakMap)}var le=o(m(K,{createIsNestedEqual:function(){return R}}));function oe(T,W){return le(T,W,new WeakMap)}function ze(T){return o(m(B,T(B)))}function ke(T){var W=o(m(K,T(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})})}(rt,rt.exports)),rt.exports}var it={exports:{}},Zt;function jt(){if(Zt)return it.exports;Zt=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={},Pt,Qt;function is(){return Qt||(Qt=1,Pt=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)}),Pt}var er;function Ge(){if(er)return Z;er=1,Object.defineProperty(Z,"__esModule",{value:!0}),Z.bottom=f,Z.childrenEqual=R,Z.cloneLayout=b,Z.cloneLayoutItem=w,Z.collides=M,Z.compact=S,Z.compactItem=x,Z.compactType=T,Z.correctBounds=p,Z.fastPositionEqual=j,Z.fastRGLPropsEqual=void 0,Z.getAllCollisions=n,Z.getFirstCollision=a,Z.getLayoutItem=r,Z.getStatics=o,Z.modifyLayout=m,Z.moveElement=h,Z.moveElementAwayFromCollision=c,Z.noop=void 0,Z.perc=u,Z.resizeItemInDirection=Y,Z.setTopLeft=re,Z.setTransform=te,Z.sortLayoutItems=ae,Z.sortLayoutItemsByColRow=oe,Z.sortLayoutItemsByRowCol=le,Z.synchronizeLayoutWithChildren=ze,Z.validateLayout=ke,Z.withLayoutItem=g;var t=At(),l=s(fe());function s(d){return d&&d.__esModule?d:{default:d}}function f(d){let y=0,P;for(let L=0,I=d.length;L<I;L++)P=d[L].y+d[L].h,P>y&&(y=P);return y}function b(d){const y=Array(d.length);for(let P=0,L=d.length;P<L;P++)y[P]=w(d[P]);return y}function m(d,y){const P=Array(d.length);for(let L=0,I=d.length;L<I;L++)y.i===d[L].i?P[L]=y:P[L]=d[L];return P}function g(d,y,P){let L=r(d,y);return L?(L=P(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,P=>P?.key),l.default.Children.map(y,P=>P?.key))&&(0,t.deepEqual)(l.default.Children.map(d,P=>P?.props["data-grid"]),l.default.Children.map(y,P=>P?.props["data-grid"]))}Z.fastRGLPropsEqual=is();function j(d,y){return d.left===y.left&&d.top===y.top&&d.width===y.width&&d.height===y.height}function M(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,P,L){const I=o(d),q=ae(d,y),G=Array(d.length);for(let U=0,X=q.length;U<X;U++){let ee=w(q[U]);ee.static||(ee=x(I,ee,y,P,q,L),I.push(ee)),G[d.indexOf(q[U])]=ee,ee.moved=!1}return G}const C={x:"w",y:"h"};function E(d,y,P,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 U=d[G];if(!U.static){if(U.y>y.y+y.h)break;M(y,U)&&E(d,U,P+y[I],L)}}y[L]=P}function x(d,y,P,L,I,q){const G=P==="vertical",U=P==="horizontal";if(G)for(y.y=Math.min(f(d),y.y);y.y>0&&!a(d,y);)y.y--;else if(U)for(;y.x>0&&!a(d,y);)y.x--;let X;for(;(X=a(d,y))&&!(P===null&&q);)if(U?E(I,y,X.x+X.w,"x"):E(I,y,X.y+X.h,"y"),U&&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 P=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)P.push(q);else for(;a(P,q);)q.y++}return d}function r(d,y){for(let P=0,L=d.length;P<L;P++)if(d[P].i===y)return d[P]}function a(d,y){for(let P=0,L=d.length;P<L;P++)if(M(d[P],y))return d[P]}function n(d,y){return d.filter(P=>M(P,y))}function o(d){return d.filter(y=>y.static)}function h(d,y,P,L,I,q,G,U,X){if(y.static&&y.isDraggable!==!0||y.y===L&&y.x===P)return d;`${y.i}${String(P)}${String(L)}${y.x}${y.y}`;const ee=y.x,Me=y.y;typeof P=="number"&&(y.x=P),typeof L=="number"&&(y.y=L),y.moved=!0;let ce=ae(d,G);(G==="vertical"&&typeof L=="number"?Me>=L:G==="horizontal"&&typeof P=="number"?ee>=P:!1)&&(ce=ce.reverse());const qe=n(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,ln=qe.length;Rt<ln;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,P,L,I,q){const G=I==="horizontal",U=I==="vertical",X=y.static;if(L){L=!1;const ce={x:G?Math.max(y.x-P.w,0):P.x,y:U?Math.max(y.y-P.h,0):P.y,w:P.w,h:P.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&&U)return h(d,P,void 0,y.y+1,L,X,I);if(qe&&I==null)return y.y=P.y,P.y=P.y+P.h,d;if(at&&G)return h(d,y,P.x,void 0,L,X,I)}else return`${P.i}${ce.x}${ce.y}`,h(d,P,G?ce.x:void 0,U?ce.y:void 0,L,X,I)}const ee=G?P.x+1:void 0,Me=U?P.y+1:void 0;return ee==null&&Me==null?d:h(d,P,G?P.x+1:void 0,U?P.y+1:void 0,L,X,I)}function u(d){return d*100+"%"}const i=(d,y,P,L)=>d+P>L?y:P,v=(d,y,P)=>d<0?y:P,N=d=>Math.max(0,d),D=d=>Math.max(0,d),O=(d,y,P)=>{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:D(G)}},_=(d,y,P)=>{let{top:L,left:I,height:q,width:G}=y;return{top:L,height:q,width:i(d.left,d.width,G,P),left:N(I)}},k=(d,y,P)=>{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,P),top:D(L),left:N(G)}},H=(d,y,P)=>{let{top:L,left:I,height:q,width:G}=y;return{width:G,left:I,height:v(L,d.height,q),top:D(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],k(...arguments))},w:k,nw:function(){return O(arguments.length<=0?void 0:arguments[0],k(...arguments))}};function Y(d,y,P,L){const I=Q[d];return I?I(y,{...y,...P},L):P}function te(d){let{top:y,left:P,width:L,height:I}=d;const q=`translate(${P}px,${y}px)`;return{transform:q,WebkitTransform:q,MozTransform:q,msTransform:q,OTransform:q,width:`${L}px`,height:`${I}px`,position:"absolute"}}function re(d){let{top:y,left:P,width:L,height:I}=d;return{top:`${y}px`,left:`${P}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,P){return y.y>P.y||y.y===P.y&&y.x>P.x?1:y.y===P.y&&y.x===P.x?0:-1})}function oe(d){return d.slice(0).sort(function(y,P){return y.x>P.x||y.x===P.x&&y.y>P.y?1:-1})}function ze(d,y,P,L,I){d=d||[];const q=[];l.default.Children.forEach(y,U=>{if(U?.key==null)return;const X=r(d,String(U.key)),ee=U.props["data-grid"];X&&ee==null?q.push(w(X)):ee?q.push(w({...ee,i:U.key})):q.push(w({w:1,h:1,x:0,y:f(q),i:String(U.key)}))});const G=p(q,{cols:P});return I?G:S(G,L,P)}function ke(d){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const P=["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<P.length;G++){const U=P[G],X=q[U];if(typeof X!="number"||Number.isNaN(X))throw new Error(`ReactGridLayout: ${y}[${L}].${U} 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 T(d){const{verticalCompact:y,compactType:P}=d||{};return y===!1?null:P}function W(){}const $=()=>{};return Z.noop=$,Z}var ye={},tr;function It(){if(tr)return ye;tr=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:M}=g;return(j-w[0]*(M-1)-R[0]*2)/M}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,M,S){const{margin:C,containerPadding:E,rowHeight:x}=g,p=t(g),r={};return S&&S.resizing?(r.width=Math.round(S.resizing.width),r.height=Math.round(S.resizing.height)):(r.width=l(j,p,C[0]),r.height=l(M,x,C[1])),S&&S.dragging?(r.top=Math.round(S.dragging.top),r.left=Math.round(S.dragging.left)):S&&S.resizing&&typeof S.resizing.top=="number"&&typeof S.resizing.left=="number"?(r.top=Math.round(S.resizing.top),r.left=Math.round(S.resizing.left)):(r.top=Math.round((x+C[1])*R+E[1]),r.left=Math.round((p+C[0])*w+E[0])),r}function f(g,w,R,j,M){const{margin:S,containerPadding:C,cols:E,rowHeight:x,maxRows:p}=g,r=t(g);let a=Math.round((R-C[0])/(r+S[0])),n=Math.round((w-C[1])/(x+S[1]));return a=m(a,0,E-j),n=m(n,0,p-M),{x:a,y:n}}function b(g,w,R,j,M,S){const{margin:C,maxRows:E,cols:x,rowHeight:p}=g,r=t(g);let a=Math.round((w+C[0])/(r+C[0])),n=Math.round((R+C[1])/(p+C[1])),o=m(a,0,x-j),h=m(n,0,E-M);return["sw","w","nw"].indexOf(S)!==-1&&(o=m(a,0,x)),["nw","n","ne"].indexOf(S)!==-1&&(h=m(n,0,E)),{w:o,h}}function m(g,w,R){return Math.max(Math.min(g,R),w)}return ye}var Xe={},Nt={exports:{}},Et,rr;function os(){if(rr)return Et;rr=1;var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Et=t,Et}var Ot,nr;function ls(){if(nr)return Ot;nr=1;var t=os();function l(){}function s(){}return s.resetWarningCache=l,Ot=function(){function f(g,w,R,j,M,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},Ot}var sr;function _e(){return sr||(sr=1,Nt.exports=ls()()),Nt.exports}var Ve={exports:{}},_t={},ne={},we={},ar;function wt(){if(ar)return we;ar=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={},ir;function cs(){if(ir)return Se;ir=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 or;function Ut(){if(or)return ne;or=1,Object.defineProperty(ne,"__esModule",{value:!0}),ne.addClassName=c,ne.addEvent=g,ne.addUserSelectStyles=n,ne.createCSSTransform=E,ne.createSVGTransform=x,ne.getTouch=r,ne.getTouchIdentifier=a,ne.getTranslation=p,ne.innerHeight=M,ne.innerWidth=S,ne.matchesSelector=b,ne.matchesSelectorAndParentsTo=m,ne.offsetXYFromParent=C,ne.outerHeight=R,ne.outerWidth=j,ne.removeClassName=u,ne.removeEvent=w,ne.scheduleRemoveUserSelectStyles=o;var t=wt(),l=s(cs());function s(i,v){if(typeof WeakMap=="function")var N=new WeakMap,D=new WeakMap;return(s=function(O,_){if(!_&&O&&O.__esModule)return O;var k,H,F={__proto__:null,default:O};if(O===null||typeof O!="object"&&typeof O!="function")return F;if(k=_?D:N){if(k.has(O))return k.get(O);k.set(O,F)}for(const B in O)B!=="default"&&{}.hasOwnProperty.call(O,B)&&((H=(k=Object.defineProperty)&&Object.getOwnPropertyDescriptor(O,B))&&(H.get||H.set)?k(F,B,H):F[B]=O[B]);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 D=i;do{if(b(D,v))return!0;if(D===N)return!1;D=D.parentNode}while(D);return!1}function g(i,v,N,D){if(!i)return;const O={capture:!0,...D};i.addEventListener?i.addEventListener(v,N,O):i.attachEvent?i.attachEvent("on"+v,N):i["on"+v]=N}function w(i,v,N,D){if(!i)return;const O={capture:!0,...D};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 M(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,k=(i.clientY+v.scrollTop-O.top)/N;return{x:_,y:k}}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:D,y:O}=i,_=`translate(${D}${N},${O}${N})`;if(v){const k=`${typeof v.x=="string"?v.x:v.x+N}`,H=`${typeof v.y=="string"?v.y:v.y+N}`;_=`translate(${k}, ${H})`+_}return _}function r(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 n(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 ne}var pe={},lr;function Vr(){if(lr)return pe;lr=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=Ut();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=M(S);if(typeof x=="string"){const{ownerDocument:r}=p,a=r.defaultView;let n;if(x==="parent"?n=p.parentNode:n=p.getRootNode().querySelector(x),!(n instanceof a.HTMLElement))throw new Error('Bounds selector "'+x+'" could not find an element.');const o=n,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=M(E),r=E.props.offsetParent||p.offsetParent||p.ownerDocument.body;return(0,l.offsetXYFromParent)(x||S,r,E.props.scale)}function w(S,C,E){const x=!(0,t.isNum)(S.lastX),p=M(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 M(S){const C=S.findDOMNode();if(!C)throw new Error("<DraggableCore>: Unmounted during event!");return C}return pe}var Ke={},ot={},cr;function Kr(){if(cr)return ot;cr=1,Object.defineProperty(ot,"__esModule",{value:!0}),ot.default=t;function t(){}return ot}var ur;function us(){if(ur)return Ke;ur=1,Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.default=void 0;var t=R(fe()),l=w(_e()),s=w(Ht()),f=Ut(),b=Vr(),m=wt(),g=w(Kr());function w(p){return p&&p.__esModule?p:{default:p}}function R(p,r){if(typeof WeakMap=="function")var a=new WeakMap,n=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?n: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,r)}function j(p,r,a){return(r=M(r))in p?Object.defineProperty(p,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[r]=a,p}function M(p){var r=S(p,"string");return typeof r=="symbol"?r:r+""}function S(p,r){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var n=a.call(p,r);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="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",r=>{if(this.props.onMouseDown(r),!this.props.allowAnyClick&&typeof r.button=="number"&&r.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:n}=a;if(this.props.disabled||!(r.target instanceof n.defaultView.Node)||this.props.handle&&!(0,f.matchesSelectorAndParentsTo)(r.target,this.props.handle,a)||this.props.cancel&&(0,f.matchesSelectorAndParentsTo)(r.target,this.props.cancel,a))return;r.type==="touchstart"&&!this.props.allowMobileScroll&&r.preventDefault();const o=(0,f.getTouchIdentifier)(r);this.touchIdentifier=o;const h=(0,b.getControlPosition)(r,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(r,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,f.addUserSelectStyles)(n),this.dragging=!0,this.lastX=c,this.lastY=u,(0,f.addEvent)(n,E.move,this.handleDrag),(0,f.addEvent)(n,E.stop,this.handleDragStop))}),j(this,"handleDrag",r=>{const a=(0,b.getControlPosition)(r,this.touchIdentifier,this);if(a==null)return;let{x:n,y:o}=a;if(Array.isArray(this.props.grid)){let u=n-this.lastX,i=o-this.lastY;if([u,i]=(0,b.snapToGrid)(this.props.grid,u,i),!u&&!i)return;n=this.lastX+u,o=this.lastY+i}const h=(0,b.createCoreData)(this,n,o);if((0,g.default)("DraggableCore: handleDrag: %j",h),this.props.onDrag(r,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=n,this.lastY=o}),j(this,"handleDragStop",r=>{if(!this.dragging)return;const a=(0,b.getControlPosition)(r,this.touchIdentifier,this);if(a==null)return;let{x:n,y:o}=a;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,v=o-this.lastY||0;[i,v]=(0,b.snapToGrid)(this.props.grid,i,v),n=this.lastX+i,o=this.lastY+v}const h=(0,b.createCoreData)(this,n,o);if(this.props.onStop(r,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",r=>(E=C.mouse,this.handleDragStart(r))),j(this,"onMouseUp",r=>(E=C.mouse,this.handleDragStop(r))),j(this,"onTouchStart",r=>(E=C.touch,this.handleDragStart(r))),j(this,"onTouchEnd",r=>(E=C.touch,this.handleDragStop(r)))}componentDidMount(){this.mounted=!0;const r=this.findDOMNode();r&&(0,f.addEvent)(r,C.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const r=this.findDOMNode();if(r){const{ownerDocument:a}=r;(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)(r,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,r){if(p[r]&&p[r].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 dr;function ds(){return dr||(dr=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=M(_e()),f=M(Ht()),b=jt(),m=Ut(),g=Vr(),w=wt(),R=M(us()),j=M(Kr());function M(a){return a&&a.__esModule?a:{default:a}}function S(a,n){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 D in c)D!=="default"&&{}.hasOwnProperty.call(c,D)&&((v=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(c,D))&&(v.get||v.set)?i(N,D,v):N[D]=c[D]);return N})(a,n)}function C(){return C=Object.assign?Object.assign.bind():function(a){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var h in o)({}).hasOwnProperty.call(o,h)&&(a[h]=o[h])}return a},C.apply(null,arguments)}function E(a,n,o){return(n=x(n))in a?Object.defineProperty(a,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[n]=o,a}function x(a){var n=p(a,"string");return typeof n=="symbol"?n:n+""}function p(a,n){if(typeof a!="object"||!a)return a;var o=a[Symbol.toPrimitive];if(o!==void 0){var h=o.call(a,n);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(a)}class r extends l.Component{static getDerivedStateFromProps(n,o){let{position:h}=n,{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(n){super(n),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[D,O]=(0,g.getBoundPosition)(this,u.x,u.y);u.x=D,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:n.position?n.position.x:n.defaultPosition.x,y:n.position?n.position.y:n.defaultPosition.y,prevPropsPosition:{...n.position},slackX:0,slackY:0,isElementSVG:!1},n.position&&!(n.onDrag||n.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:n,bounds:o,children:h,defaultPosition:c,defaultClassName:u,defaultClassNameDragging:i,defaultClassNameDragged:v,position:N,positionOffset:D,scale:O,..._}=this.props;let k={},H=null;const B=!!!N||this.state.dragging,K=N||c,J={x:(0,g.canDragX)(this)&&B?this.state.x:K.x,y:(0,g.canDragY)(this)&&B?this.state.y:K.y};this.state.isElementSVG?H=(0,m.createSVGTransform)(J,D):k=(0,m.createCSSTransform)(J,D);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,...k},transform:H}))}}t.default=r,E(r,"displayName","Draggable"),E(r,"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(r,"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})}(_t)),_t}var hr;function Bt(){if(hr)return Ve.exports;hr=1;const{default:t,DraggableCore:l}=ds();return Ve.exports=t,Ve.exports.default=t,Ve.exports.DraggableCore=l,Ve.exports}var Je={exports:{}},Ze={},lt={},fr;function hs(){if(fr)return lt;fr=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 M=Object.keys(R);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(R);j&&(S=S.filter(function(C){return Object.getOwnPropertyDescriptor(R,C).enumerable})),M.push.apply(M,S)}return M}function f(R){for(var j=1;j<arguments.length;j++){var M=arguments[j]!=null?arguments[j]:{};j%2?s(Object(M),!0).forEach(function(S){b(R,S,M[S])}):Object.getOwnPropertyDescriptors?Object.defineProperties(R,Object.getOwnPropertyDescriptors(M)):s(Object(M)).forEach(function(S){Object.defineProperty(R,S,Object.getOwnPropertyDescriptor(M,S))})}return R}function b(R,j,M){return j=m(j),j in R?Object.defineProperty(R,j,{value:M,enumerable:!0,configurable:!0,writable:!0}):R[j]=M,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 M=R[Symbol.toPrimitive];if(M!==void 0){var S=M.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={},pr;function Jr(){if(pr)return Qe;pr=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 mr;function Zr(){if(mr)return Ze;mr=1,Ze.__esModule=!0,Ze.default=void 0;var t=g(fe()),l=Bt(),s=hs(),f=Jr(),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 n=new WeakMap,o=new WeakMap;return(m=function(c){return c?o:n})(a)}function g(a,n){if(a&&a.__esModule)return a;if(a===null||typeof a!="object"&&typeof a!="function")return{default:a};var o=m(n);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 n=1;n<arguments.length;n++){var o=arguments[n];for(var h in o)Object.prototype.hasOwnProperty.call(o,h)&&(a[h]=o[h])}return a},w.apply(this,arguments)}function R(a,n){if(a==null)return{};var o={},h=Object.keys(a),c,u;for(u=0;u<h.length;u++)c=h[u],!(n.indexOf(c)>=0)&&(o[c]=a[c]);return o}function j(a,n){var o=Object.keys(a);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(a);n&&(h=h.filter(function(c){return Object.getOwnPropertyDescriptor(a,c).enumerable})),o.push.apply(o,h)}return o}function M(a){for(var n=1;n<arguments.length;n++){var o=arguments[n]!=null?arguments[n]:{};n%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,n,o){return n=C(n),n in a?Object.defineProperty(a,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[n]=o,a}function C(a){var n=E(a,"string");return typeof n=="symbol"?n:String(n)}function E(a,n){if(typeof a!="object"||a===null)return a;var o=a[Symbol.toPrimitive];if(o!==void 0){var h=o.call(a,n);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(a)}function x(a,n){a.prototype=Object.create(n.prototype),a.prototype.constructor=a,p(a,n)}function p(a,n){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(h,c){return h.__proto__=c,h},p(a,n)}var r=function(a){x(n,a);function n(){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=n.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,D=i.lockAspectRatio;if(!v&&!N&&!D)return[c,u];if(D){var O=this.props.width/this.props.height,_=c-this.props.width,k=u-this.props.height;Math.abs(_)>Math.abs(k*O)?u=c/O:c=u*O}var H=c,F=u,B=this.slack||[0,0],K=B[0],J=B[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 D=N.node,O=N.deltaX,_=N.deltaY;c==="onResizeStart"&&i.resetData();var k=(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(!(!k&&!H)){var F=u[0],B=u[u.length-1],K=D.getBoundingClientRect();if(i.lastHandleRect!=null){if(B==="w"){var J=K.left-i.lastHandleRect.left;O+=J}if(F==="n"){var Q=K.top-i.lastHandleRect.top;_+=Q}}i.lastHandleRect=K,B==="w"&&(O=-O),F==="n"&&(_=-_);var Y=i.props.width+(k?O/i.props.transformScale:0),te=i.props.height+(H?_/i.props.transformScale:0),re=i.runConstraints(Y,te);Y=re[0],te=re[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:D,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=M({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 D=u.resizeHandles;u.transformScale;var O=R(u,b);return(0,s.cloneElement)(i,M(M({},O),{},{className:(v?v+" ":"")+"react-resizable",children:[].concat(i.props.children,D.map(function(_){var k,H=(k=c.handleRefs[_])!=null?k: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))}))}))},n}(t.Component);return Ze.default=r,r.propTypes=f.resizableProps,r.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},Ze}var et={},gr;function fs(){if(gr)return et;gr=1,et.__esModule=!0,et.default=void 0;var t=w(fe()),l=m(_e()),s=m(Zr()),f=Jr(),b=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function m(n){return n&&n.__esModule?n:{default:n}}function g(n){if(typeof WeakMap!="function")return null;var o=new WeakMap,h=new WeakMap;return(g=function(u){return u?h:o})(n)}function w(n,o){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var h=g(o);if(h&&h.has(n))return h.get(n);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in n)if(i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)){var v=u?Object.getOwnPropertyDescriptor(n,i):null;v&&(v.get||v.set)?Object.defineProperty(c,i,v):c[i]=n[i]}return c.default=n,h&&h.set(n,c),c}function R(){return R=Object.assign?Object.assign.bind():function(n){for(var o=1;o<arguments.length;o++){var h=arguments[o];for(var c in h)Object.prototype.hasOwnProperty.call(h,c)&&(n[c]=h[c])}return n},R.apply(this,arguments)}function j(n,o){var h=Object.keys(n);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);o&&(c=c.filter(function(u){return Object.getOwnPropertyDescriptor(n,u).enumerable})),h.push.apply(h,c)}return h}function M(n){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(n,c,h[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(h)):j(Object(h)).forEach(function(c){Object.defineProperty(n,c,Object.getOwnPropertyDescriptor(h,c))})}return n}function S(n,o,h){return o=C(o),o in n?Object.defineProperty(n,o,{value:h,enumerable:!0,configurable:!0,writable:!0}):n[o]=h,n}function C(n){var o=E(n,"string");return typeof o=="symbol"?o:String(o)}function E(n,o){if(typeof n!="object"||n===null)return n;var h=n[Symbol.toPrimitive];if(h!==void 0){var c=h.call(n,o);if(typeof c!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(n)}function x(n,o){if(n==null)return{};var h={},c=Object.keys(n),u,i;for(i=0;i<c.length;i++)u=c[i],!(o.indexOf(u)>=0)&&(h[u]=n[u]);return h}function p(n,o){n.prototype=Object.create(o.prototype),n.prototype.constructor=n,r(n,o)}function r(n,o){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,u){return c.__proto__=u,c},r(n,o)}var a=function(n){p(o,n);function o(){for(var c,u=arguments.length,i=new Array(u),v=0;v<u;v++)i[v]=arguments[v];return c=n.call.apply(n,[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,D){var O=D.size;c.props.onResize?(N.persist==null||N.persist(),c.setState(O,function(){return c.props.onResize&&c.props.onResize(N,D)})):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,D=u.onResizeStop,O=u.draggableOpts,_=u.minConstraints,k=u.maxConstraints,H=u.lockAspectRatio,F=u.axis;u.width,u.height;var B=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:k,minConstraints:_,onResizeStart:N,onResize:this.onResize,onResizeStop:D,resizeHandles:B,transformScale:J,width:this.state.width},t.createElement("div",R({},Q,{style:M(M({},K),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},o}(t.Component);return et.default=a,a.propTypes=M(M({},f.resizableProps),{},{children:l.default.element}),et}var yr;function ps(){return yr||(yr=1,Je.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},Je.exports.Resizable=Zr().default,Je.exports.ResizableBox=fs().default),Je.exports}var ve={},vr;function Qr(){if(vr)return ve;vr=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 xr;function ms(){if(xr)return Xe;xr=1,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.default=void 0;var t=j(fe()),l=Ht(),s=j(_e()),f=Bt(),b=ps(),m=Ge(),g=It(),w=Qr(),R=j(jt());function j(x){return x&&x.__esModule?x:{default:x}}function M(x,p,r){return(p=S(p))in x?Object.defineProperty(x,p,{value:r,enumerable:!0,configurable:!0,writable:!0}):x[p]=r,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 r=x[Symbol.toPrimitive];if(r!==void 0){var a=r.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),M(this,"state",{resizing:null,dragging:null,className:""}),M(this,"elementRef",t.default.createRef()),M(this,"onDragStart",(p,r)=>{let{node:a}=r;const{onDragStart:n,transformScale:o}=this.props;if(!n)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,D=i.top/o,O=u.top/o;h.left=v-N+c.scrollLeft,h.top=D-O+c.scrollTop,this.setState({dragging:h});const{x:_,y:k}=(0,g.calcXY)(this.getPositionParams(),h.top,h.left,this.props.w,this.props.h);return n.call(this,this.props.i,_,k,{e:p,node:a,newPosition:h})}),M(this,"onDrag",(p,r,a)=>{let{node:n,deltaX:o,deltaY:h}=r;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:D,h:O,containerWidth:_}=this.props,k=this.getPositionParams();if(v){const{offsetParent:K}=n;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)(k),re=_-(0,g.calcGridItemWHPx)(D,te,J[0]);i=(0,g.clamp)(i,0,re)}}const H={top:u,left:i};a?this.setState({dragging:H}):(0,l.flushSync)(()=>{this.setState({dragging:H})});const{x:F,y:B}=(0,g.calcXY)(k,u,i,D,O);return c.call(this,N,F,B,{e:p,node:n,newPosition:H})}),M(this,"onDragStop",(p,r)=>{let{node:a}=r;const{onDragStop:n}=this.props;if(!n)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:D}=(0,g.calcXY)(this.getPositionParams(),i,u,o,h);return n.call(this,c,N,D,{e:p,node:a,newPosition:v})}),M(this,"onResizeStop",(p,r,a)=>this.onResizeHandler(p,r,a,"onResizeStop")),M(this,"onResizeStart",(p,r,a)=>this.onResizeHandler(p,r,a,"onResizeStart")),M(this,"onResize",(p,r,a)=>this.onResizeHandler(p,r,a,"onResize"))}shouldComponentUpdate(p,r){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),n=(0,g.calcGridItemPosition)(this.getPositionParams(p),p.x,p.y,p.w,p.h,r);return!(0,m.fastPositionEqual)(a,n)||this.props.useCSSTransforms!==p.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(p){this.moveDroppingItem(p)}moveDroppingItem(p){const{droppingPosition:r}=this.props;if(!r)return;const a=this.elementRef.current;if(!a)return;const n=p.droppingPosition||{left:0,top:0},{dragging:o}=this.state,h=o&&r.left!==n.left||r.top!==n.top;if(!o)this.onDragStart(r.e,{node:a,deltaX:r.left,deltaY:r.top});else if(h){const c=r.left-o.left,u=r.top-o.top;this.onDrag(r.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:r,containerWidth:a,useCSSTransforms:n}=this.props;let o;return n?o=(0,m.setTransform)(p):(o=(0,m.setTopLeft)(p),r&&(o.left=(0,m.perc)(p.left/a),o.width=(0,m.perc)(p.width/a))),o}mixinDraggable(p,r){return t.default.createElement(f.DraggableCore,{disabled:!r,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,r){return(a,n)=>r(a,n,p)}mixinResizable(p,r,a){const{cols:n,minW:o,minH:h,maxW:c,maxH:u,transformScale:i,resizeHandles:v,resizeHandle:N}=this.props,D=this.getPositionParams(),O=(0,g.calcGridItemPosition)(D,0,0,n,0).width,_=(0,g.calcGridItemPosition)(D,0,0,o,h),k=(0,g.calcGridItemPosition)(D,0,0,c,u),H=[_.width,_.height],F=[Math.min(k.width,O),Math.min(k.height,1/0)];return t.default.createElement(b.Resizable,{draggableOpts:{disabled:!a},className:a?void 0:"react-resizable-hide",width:r.width,height:r.height,minConstraints:H,maxConstraints:F,onResizeStop:this.curryResizeHandler(r,this.onResizeStop),onResizeStart:this.curryResizeHandler(r,this.onResizeStart),onResize:this.curryResizeHandler(r,this.onResize),transformScale:i,resizeHandles:v,handle:N},p)}onResizeHandler(p,r,a,n){let{node:o,size:h,handle:c}=r;const u=this.props[n];if(!u)return;const{x:i,y:v,i:N,maxH:D,minH:O,containerWidth:_}=this.props,{minW:k,maxW:H}=this.props;let F=h;o&&(F=(0,m.resizeItemInDirection)(c,a,h,_),(0,l.flushSync)(()=>{this.setState({resizing:n==="onResizeStop"?null:F})}));let{w:B,h:K}=(0,g.calcWH)(this.getPositionParams(),F.width,F.height,i,v,c);B=(0,g.clamp)(B,Math.max(k,1),H),K=(0,g.clamp)(K,O,D),u.call(this,N,B,K,{e:p,node:o,size:F,handle:c})}render(){const{x:p,y:r,w:a,h:n,isDraggable:o,isResizable:h,droppingPosition:c,useCSSTransforms:u}=this.props,i=(0,g.calcGridItemPosition)(this.getPositionParams(),p,r,a,n,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,M(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 r=x[p];if(typeof r!="number")return new Error("minWidth not Number");if(r>x.w||r>x.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function(x,p){const r=x[p];if(typeof r!="number")return new Error("maxWidth not Number");if(r<x.w||r<x.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function(x,p){const r=x[p];if(typeof r!="number")return new Error("minHeight not Number");if(r>x.h||r>x.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function(x,p){const r=x[p];if(typeof r!="number")return new Error("maxHeight not Number");if(r<x.h||r<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})}),M(E,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1}),Xe}var br;function en(){if(br)return Ye;br=1,Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.default=void 0;var t=R(fe()),l=At(),s=w(jt()),f=Ge(),b=It(),m=w(ms()),g=w(Qr());function w(p){return p&&p.__esModule?p:{default:p}}function R(p,r){if(typeof WeakMap=="function")var a=new WeakMap,n=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?n: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,r)}function j(p,r,a){return(r=M(r))in p?Object.defineProperty(p,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[r]=a,p}function M(p){var r=S(p,"string");return typeof r=="symbol"?r:r+""}function S(p,r){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var n=a.call(p,r);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="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",(r,a,n,o)=>{let{e:h,node:c}=o;const{layout:u}=this.state,i=(0,f.getLayoutItem)(u,r);if(!i)return;const v={w:i.w,h:i.h,x:i.x,y:i.y,placeholder:!0,i:r};return this.setState({oldDragItem:(0,f.cloneLayoutItem)(i),oldLayout:u,activeDrag:v}),this.props.onDragStart(u,i,i,null,h,c)}),j(this,"onDrag",(r,a,n,o)=>{let{e:h,node:c}=o;const{oldDragItem:u}=this.state;let{layout:i}=this.state;const{cols:v,allowOverlap:N,preventCollision:D}=this.props,O=(0,f.getLayoutItem)(i,r);if(!O)return;const _={w:O.w,h:O.h,x:O.x,y:O.y,placeholder:!0,i:r};i=(0,f.moveElement)(i,O,a,n,!0,D,(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",(r,a,n,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:D}=this.props,O=(0,f.getLayoutItem)(i,r);if(!O)return;i=(0,f.moveElement)(i,O,a,n,!0,N,(0,f.compactType)(this.props),v,D);const k=D?i:(0,f.compact)(i,(0,f.compactType)(this.props),v);this.props.onDragStop(k,u,O,null,h,c);const{oldLayout:H}=this.state;this.setState({activeDrag:null,layout:k,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(k,H)}),j(this,"onResizeStart",(r,a,n,o)=>{let{e:h,node:c}=o;const{layout:u}=this.state,i=(0,f.getLayoutItem)(u,r);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",(r,a,n,o)=>{let{e:h,node:c,size:u,handle:i}=o;const{oldResizeItem:v}=this.state,{layout:N}=this.state,{cols:D,preventCollision:O,allowOverlap:_}=this.props;let k=!1,H,F,B;const[K,J]=(0,f.withLayoutItem)(N,r,Y=>{let te;return F=Y.x,B=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&&(B=Y.y+(Y.h-n),n=Y.y!==B&&B<0?Y.h:n,B=B<0?0:B),k=!0),O&&!_&&(te=(0,f.getAllCollisions)(N,{...Y,w:a,h:n,x:F,y:B}).filter(ae=>ae.i!==Y.i).length>0,te&&(B=Y.y,n=Y.h,F=Y.x,a=Y.w,k=!1)),Y.w=a,Y.h=n,Y});if(!J)return;H=K,k&&(H=(0,f.moveElement)(K,J,F,B,!0,this.props.preventCollision,(0,f.compactType)(this.props),D,_));const Q={w:J.w,h:J.h,x:J.x,y:J.y,static:!0,i:r};this.props.onResize(H,v,J,Q,h,c),this.setState({layout:_?H:(0,f.compact)(H,(0,f.compactType)(this.props),D),activeDrag:Q})}),j(this,"onResizeStop",(r,a,n,o)=>{let{e:h,node:c}=o;const{layout:u,oldResizeItem:i}=this.state,{cols:v,allowOverlap:N}=this.props,D=(0,f.getLayoutItem)(u,r),O=N?u:(0,f.compact)(u,(0,f.compactType)(this.props),v);this.props.onResizeStop(O,i,D,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",r=>{if(r.preventDefault(),r.stopPropagation(),E&&!r.nativeEvent.target?.classList.contains(C))return!1;const{droppingItem:a,onDropDragOver:n,margin:o,cols:h,rowHeight:c,maxRows:u,width:i,containerPadding:v,transformScale:N}=this.props,D=n?.(r);if(D===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;const O={...a,...D},{layout:_}=this.state,k=r.currentTarget.getBoundingClientRect(),H=r.clientX-k.left,F=r.clientY-k.top,B={left:H/N,top:F/N,e:r};if(this.state.droppingDOMNode){if(this.state.droppingPosition){const{left:K,top:J}=this.state.droppingPosition;(K!=H||J!=F)&&this.setState({droppingPosition:B})}}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:B,layout:[..._,{...O,x:J.x,y:J.y,static:!1,isDraggable:!0}]})}}),j(this,"removeDroppingPlaceholder",()=>{const{droppingItem:r,cols:a}=this.props,{layout:n}=this.state,o=(0,f.compact)(n.filter(h=>h.i!==r.i),(0,f.compactType)(this.props),a,this.props.allowOverlap);this.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),j(this,"onDragLeave",r=>{r.preventDefault(),r.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),j(this,"onDragEnter",r=>{r.preventDefault(),r.stopPropagation(),this.dragEnterCounter++}),j(this,"onDrop",r=>{r.preventDefault(),r.stopPropagation();const{droppingItem:a}=this.props,{layout:n}=this.state,o=n.find(h=>h.i===a.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(n,o,r)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(r,a){let n;return a.activeDrag?null:(!(0,l.deepEqual)(r.layout,a.propsLayout)||r.compactType!==a.compactType?n=r.layout:(0,f.childrenEqual)(r.children,a.children)||(n=a.layout),n?{layout:(0,f.synchronizeLayoutWithChildren)(n,r.children,r.cols,(0,f.compactType)(r),r.allowOverlap),compactType:r.compactType,children:r.children,propsLayout:r.layout}:null)}shouldComponentUpdate(r,a){return this.props.children!==r.children||!(0,f.fastRGLPropsEqual)(this.props,r,l.deepEqual)||this.state.activeDrag!==a.activeDrag||this.state.mounted!==a.mounted||this.state.droppingPosition!==a.droppingPosition}componentDidUpdate(r,a){if(!this.state.activeDrag){const n=this.state.layout,o=a.layout;this.onLayoutMaybeChanged(n,o)}}containerHeight(){if(!this.props.autoSize)return;const r=(0,f.bottom)(this.state.layout),a=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return r*this.props.rowHeight+(r-1)*this.props.margin[1]+a*2+"px"}onLayoutMaybeChanged(r,a){a||(a=this.state.layout),(0,l.deepEqual)(a,r)||this.props.onLayoutChange(r)}placeholder(){const{activeDrag:r}=this.state;if(!r)return null;const{width:a,cols:n,margin:o,containerPadding:h,rowHeight:c,maxRows:u,useCSSTransforms:i,transformScale:v}=this.props;return t.createElement(m.default,{w:r.w,h:r.h,x:r.x,y:r.y,i:r.i,className:`react-grid-placeholder ${this.state.resizing?"placeholder-resizing":""}`,containerWidth:a,cols:n,margin:o,containerPadding:h||o,maxRows:u,rowHeight:c,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:i,transformScale:v},t.createElement("div",null))}processGridItem(r,a){if(!r||!r.key)return;const n=(0,f.getLayoutItem)(this.state.layout,String(r.key));if(!n)return null;const{width:o,cols:h,margin:c,containerPadding:u,rowHeight:i,maxRows:v,isDraggable:N,isResizable:D,isBounded:O,useCSSTransforms:_,transformScale:k,draggableCancel:H,draggableHandle:F,resizeHandles:B,resizeHandle:K}=this.props,{mounted:J,droppingPosition:Q}=this.state,Y=typeof n.isDraggable=="boolean"?n.isDraggable:!n.static&&N,te=typeof n.isResizable=="boolean"?n.isResizable:!n.static&&D,re=n.resizeHandles||B,ae=Y&&O&&n.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:k,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:a?Q:void 0,resizeHandles:re,resizeHandle:K},r)}render(){const{className:r,style:a,isDroppable:n,innerRef:o}=this.props,h=(0,s.default)(C,r),c={height:this.containerHeight(),...a};return t.createElement("div",{ref:o,className:h,style:c,onDrop:n?this.onDrop:f.noop,onDragLeave:n?this.onDragLeave:f.noop,onDragEnter:n?this.onDragEnter:f.noop,onDragOver:n?this.onDragOver:f.noop},t.Children.map(this.props.children,u=>this.processGridItem(u)),n&&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={},jr;function tn(){if(jr)return Le;jr=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,M=w.length;j<M;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,M){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 r=E[x];if(m[r]){S=m[r];break}}return S=(0,t.cloneLayout)(S||[]),(0,t.compact)((0,t.correctBounds)(S,{cols:j}),M,j)}function b(m){return Object.keys(m).sort(function(w,R){return m[w]-m[R]})}return Le}var wr;function gs(){if(wr)return tt;wr=1,Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var t=w(fe()),l=g(_e()),s=At(),f=Ge(),b=tn(),m=g(en());function g(p){return p&&p.__esModule?p:{default:p}}function w(p,r){if(typeof WeakMap=="function")var a=new WeakMap,n=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?n: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,r)}function R(){return R=Object.assign?Object.assign.bind():function(p){for(var r=1;r<arguments.length;r++){var a=arguments[r];for(var n in a)({}).hasOwnProperty.call(a,n)&&(p[n]=a[n])}return p},R.apply(null,arguments)}function j(p,r,a){return(r=M(r))in p?Object.defineProperty(p,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):p[r]=a,p}function M(p){var r=S(p,"string");return typeof r=="symbol"?r:r+""}function S(p,r){if(typeof p!="object"||!p)return p;var a=p[Symbol.toPrimitive];if(a!==void 0){var n=a.call(p,r);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(p)}const C=p=>Object.prototype.toString.call(p);function E(p,r){return p==null?null:Array.isArray(p)?p:p[r]}let x=class extends t.Component{constructor(){super(...arguments),j(this,"state",this.generateInitialState()),j(this,"onLayoutChange",r=>{this.props.onLayoutChange(r,{...this.props.layouts,[this.state.breakpoint]:r})})}generateInitialState(){const{width:r,breakpoints:a,layouts:n,cols:o}=this.props,h=(0,b.getBreakpointFromWidth)(a,r),c=(0,b.getColsFromBreakpoint)(h,o),u=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,b.findOrGenerateResponsiveLayout)(n,a,h,h,c,u),breakpoint:h,cols:c}}static getDerivedStateFromProps(r,a){if(!(0,s.deepEqual)(r.layouts,a.layouts)){const{breakpoint:n,cols:o}=a;return{layout:(0,b.findOrGenerateResponsiveLayout)(r.layouts,r.breakpoints,n,n,o,r.compactType),layouts:r.layouts}}return null}componentDidUpdate(r){(this.props.width!=r.width||this.props.breakpoint!==r.breakpoint||!(0,s.deepEqual)(this.props.breakpoints,r.breakpoints)||!(0,s.deepEqual)(this.props.cols,r.cols))&&this.onWidthChange(r)}onWidthChange(r){const{breakpoints:a,cols:n,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,n),v={...o};if(u!==c||r.breakpoints!==a||r.cols!==n){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),D=E(this.props.containerPadding,c);this.props.onWidthChange(this.props.width,N,i,D)}render(){const{breakpoint:r,breakpoints:a,cols:n,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,r){if(C(p[r])!=="[object Object]")throw new Error("Layout property must be an object. Received: "+C(p[r]));Object.keys(p[r]).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={},rn=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}()}(),Mt=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")()}(),ys=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(vt):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)}}(),vs=2;function xs(t,l){var s=!1,f=!1,b=0;function m(){s&&(s=!1,t()),f&&w()}function g(){ys(m)}function w(){var R=Date.now();if(s){if(R-b<vs)return;f=!0}else s=!0,f=!1,setTimeout(g,l);b=R}return w}var bs=20,js=["top","right","bottom","left","width","height","size","weight"],ws=typeof MutationObserver<"u",Ss=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=xs(this.refresh.bind(this),bs)}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(){!Mt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),ws?(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(){!Mt||!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=js.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}(),nn=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},sn=St(0,0,0,0);function xt(t){return parseFloat(t)||0}function Sr(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 Rs(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 Cs(t){var l=t.getBBox();return St(0,0,l.width,l.height)}function Ds(t){var l=t.clientWidth,s=t.clientHeight;if(!l&&!s)return sn;var f=Fe(t).getComputedStyle(t),b=Rs(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-=Sr(f,"left","right")+m),Math.round(R+g)!==s&&(R-=Sr(f,"top","bottom")+g)),!Ns(t)){var j=Math.round(w+m)-l,M=Math.round(R+g)-s;Math.abs(j)!==1&&(w-=j),Math.abs(M)!==1&&(R-=M)}return St(b.left,b.top,w,R)}var Ps=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 Ns(t){return t===Fe(t).document.documentElement}function Es(t){return Mt?Ps(t)?Cs(t):Ds(t):sn}function Os(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 nn(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 _s=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=Es(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}(),zs=function(){function t(l,s){var f=Os(s);nn(this,{target:l,contentRect:f})}return t}(),ks=function(){function t(l,s,f){if(this.activeObservations_=[],this.observations_=new rn,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 _s(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 zs(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}(),an=typeof WeakMap<"u"?new WeakMap:new rn,on=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=Ss.getInstance(),f=new ks(l,s,this);an.set(this,f)}return t}();["observe","unobserve","disconnect"].forEach(function(t){on.prototype[t]=function(){var l;return(l=an.get(this))[t].apply(l,arguments)}});var Ms=function(){return typeof vt.ResizeObserver<"u"?vt.ResizeObserver:on}();const Ts=Object.freeze(Object.defineProperty({__proto__:null,default:Ms},Symbol.toStringTag,{value:"Module"})),Ls=Xn(Ts);var Rr;function Ws(){if(Rr)return ct;Rr=1,Object.defineProperty(ct,"__esModule",{value:!0}),ct.default=S;var t=m(fe()),l=b(_e()),s=b(Ls),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(r,a){if(!a&&r&&r.__esModule)return r;var n,o,h={__proto__:null,default:r};if(r===null||typeof r!="object"&&typeof r!="function")return h;if(n=a?p:x){if(n.has(r))return n.get(r);n.set(r,h)}for(const c in r)c!=="default"&&{}.hasOwnProperty.call(r,c)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(r,c))&&(o.get||o.set)?n(h,c,o):h[c]=r[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 M="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(r=>{if(this.elementRef.current instanceof HTMLElement){const n=r[0].contentRect.width;this.setState({width:n})}});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,...r}=this.props;return p&&!this.mounted?t.createElement("div",{className:(0,f.default)(this.props.className,M),style:this.props.style,ref:this.elementRef}):t.createElement(C,g({innerRef:this.elementRef},r,this.state))}},w(E,"defaultProps",{measureBeforeMount:!1}),w(E,"propTypes",{measureBeforeMount:l.default.bool}),E}return ct}var Cr;function qs(){return Cr||(Cr=1,function(t){t.exports=en().default,t.exports.utils=Ge(),t.exports.calculateUtils=It(),t.exports.Responsive=gs().default,t.exports.Responsive.utils=tn(),t.exports.WidthProvider=Ws().default}(Dt)),Dt.exports}var Hs=qs();const As=Vn(Hs),Is=()=>{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 M=[...j,R];return M.length>50?M.slice(M.length-50):M})};return De.on("chat",w),Be("subscribe","chat"),V("chat.recent").then(R=>{l(R.reverse())}),()=>{De.off("chat",w),Be("unsubscribe","chat")}},[]),z.useLayoutEffect(()=>{m()},[t]);const g=w=>{w.preventDefault(),!(s.length>140||s.length===0)&&(Er("chat",s),f(""))};return e.jsxs("div",{className:"chat-widget",children:[e.jsx(be,{className:"messages",ref:b,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(Ct,{color:!0,user:w.user}),w.user?.web?"]":"",":"," ",e.jsx(Ft,{as:"span",children:w.message})]}),w.action==="leave"&&e.jsxs("div",{className:"join-message",children:[e.jsx(Ct,{user:w.user})," left the game."]}),w.action==="join"&&e.jsxs("div",{className:"join-message",children:[e.jsx(Ct,{user:w.user})," joined the game",w.user?.isFirst?" for the first time":"","."]}),w.action==="server"&&e.jsx(Ft,{as:"div",className:"server-message",children:w.message})]},w._id))})}),e.jsx("form",{onSubmit:g,children:e.jsxs(We,{children:[e.jsx(ie,{roboto:!0,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(Nn,{})})]})})]})},Us=()=>{const[t,l]=z.useState(null);return z.useEffect(()=>(De.on("server.status",l),Be("subscribe","status"),V("server.status").then(l),()=>{De.off("server.status",l),Be("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(nt,{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"})]})},zt={chat:{component:Is,icon:On,tooltip:"Chat with online players"},status:{component:Us,icon:Kn,tooltip:"View current online players and server status"}},Dr=[{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},Fs=[8,8],Gs=()=>{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),Dr}return Dr});z.useEffect(()=>{localStorage.omeggaDashLayout2=JSON.stringify(t)},[t]);const s=S=>{l(t.filter(C=>C.i!==S))},f=S=>{S in zt&&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,M]=z.useState(null);return z.useEffect(()=>{R.current&&M(R.current.clientWidth);const S=new ResizeObserver(C=>{for(const E of C)E.target===R.current&&M(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(En,{}),"Widgets"]}),e.jsx("div",{className:"widgets-list",style:{display:b?"block":"none"},children:Object.entries(zt).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(Fr,{})}):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(As,{layout:t.map(S=>({...S,...Bs})),width:j,cols:10,autoSize:!0,useCSSTransforms:!0,rowHeight:100,isBounded:!0,isResizable:!0,isDraggable:!0,margin:Fs,onLayoutChange:w,draggableHandle:".drag-handle",draggableCancel:".no-drag",resizeHandles:["se"],resizeHandle:e.jsx(_n,{style:{cursor:"se-resize"},className:"resize-handle"}),children:t.map(S=>{const C=zt[S.i].component;return e.jsxs("div",{className:"grid-item",children:[e.jsxs(qt,{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)})})})]})]})},Pr={"Minute(s)":1,"Hour(s)":60,"Day(s)":24*60,"Week(s)":24*60*7,"Month(s)":24*60*30},$s=["Permanent","Minute(s)","Hour(s)","Day(s)","Week(s)","Month(s)"],Ys=()=>{const[t,l]=Oe("/players/:id"),[s,f]=Lt(),[b,m]=z.useState(null),[g,w]=z.useState(null),[R,j]=z.useState(!1),[M,S]=z.useState(""),[C,E]=z.useState(10),[x,p]=z.useState("Permanent"),[r,a]=z.useState(!0),[n,o]=z.useState(!1),h=z.useCallback(async()=>{if(!l?.id)return;a(!0);const D=await V("player.get",l.id);if(!D)return f("/players");w(D),a(!1)},[l?.id]);z.useEffect(()=>{h()},[h]);const c=async()=>{if(!g.id)return;o(!0);const D=x==="Permanent"?-1:C*Pr[x];try{await V("player.ban",g.id,D,M)}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,M)}catch(D){console.error("Failed to kick player:",D)}m(null),h(),o(!1)}},i=async()=>{if(g.id){o(!0);try{await V("player.unban",g.id)}catch(D){console.error("Failed to unban player:",D)}h(),o(!1)}},v=async()=>{if(g.id){o(!0);try{await V("player.clearbricks",g.id)}catch(D){console.error("Failed to clear bricks:",D)}o(!1),m(null)}},N=z.useMemo(()=>x==="Permanent"?"Never":Cn(Date.now()+Pr[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:[R?e.jsx(Lr,{}):e.jsx(Gr,{}),"User Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:R?"block":"none"},children:[e.jsxs(A,{boxy:!0,warn:!0,disabled:n,onClick:()=>{m("clear"),j(!1)},children:[e.jsx($t,{}),"Clear Bricks"]}),!g.isHost&&g.isOnline&&e.jsxs(A,{boxy:!0,error:!0,disabled:n,onClick:()=>{m("kick"),j(!1)},children:[e.jsx(Vt,{}),"Kick"]}),g.currentBan&&e.jsxs(A,{boxy:!0,warn:!0,disabled:n,onClick:()=>{i(),j(!1)},children:[e.jsx(zn,{}),"Unban"]}),!g.isHost&&e.jsxs(A,{boxy:!0,error:!0,disabled:n,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:r,size:"huge",children:"Loading Player"}),e.jsx("div",{className:"player-info",children:!r&&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:"Display Name:"})," ",g.displayName??"unknown"]}),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:"})," ",kr(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(D=>e.jsx("div",{className:"option-item",children:e.jsx("div",{className:"option-name",style:{color:"#"+D.color},children:D.name})},D.name)),e.jsx("div",{className:"option-item",children:e.jsx("div",{className:"option-name",style:{color:"white"},children:"Default"})})]}),e.jsx("div",{className:"section-header","data-tooltip":"Names this player has gone by historically",children:"Name History"}),e.jsxs("table",{className:"br-table name-history",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{textAlign:"left",width:"100%"},children:e.jsx("span",{children:"Name"})}),e.jsx("th",{children:"First Seen"})]})}),e.jsx("tbody",{children:g.nameHistory.map(D=>e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("div",{"data-tooltip":D.displayName?"Display Name":"Username",children:D.displayName??D.name}),D.displayName&&e.jsx("div",{"data-tooltip":"Username",className:"username",children:D.name})]}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(D.date),children:ue(D.ago)})]},D.date+D.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(D=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:D.reason}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":"Expires "+new Date(D.expires),children:0>=(D.duration??-1)?"Permanent":ue(D.duration)}),e.jsx("td",{children:e.jsx(nt,{to:"/players/"+D.bannerId,children:D.bannerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(D.created),children:Gt(D.created)})]},D.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(D=>e.jsxs("tr",{children:[e.jsx("td",{className:"reason",children:D.reason}),e.jsx("td",{children:e.jsx(nt,{to:"/players/"+D.kickerId,children:D.kickerName||"missing name"})}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(D.created),children:Gt(D.created)})]},D.created))]})]})]})})]})}),e.jsxs(Mr,{visible:!!b,children:[e.jsx(he,{active:n,size:"huge",children:"Running Action..."}),e.jsxs(Tr,{visible:!n,children:[e.jsx(qt,{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:M,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(Tt,{options:$s,value:x,onChange:D=>p(D)})]})]}),b==="ban"&&e.jsxs(kt,{children:["This ban will expire"," ",e.jsx("span",{style:{color:"white"},children:N}),"."]}),b==="clear"&&e.jsx(kt,{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($t,{}),"Clear Bricks"]}),b==="kick"&&e.jsxs(A,{error:!0,onClick:u,children:[e.jsx(Vt,{}),"Kick"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(A,{normal:!0,onClick:()=>m(null),children:[e.jsx(st,{}),"Cancel"]})]})]})]})]})},Xs=()=>{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([]),[M,S]=Lt(),[C,E]=Oe("/players/:id?"),x=z.useRef({page:0,search:"",sort:"lastSeen",direction:-1,filterBanned:!1}),{page:p,search:r,sort:a,direction:n,filterBanned:o}=x.current,[h,c]=z.useState(0),u=k=>{x.current.search=k,O(),c(H=>H+1)},i=k=>{typeof k=="function"&&(k=k(x.current.page)),x.current.page=k,D()},v=k=>{typeof k=="function"&&(k=k(x.current.direction)),x.current.direction=k},N=k=>{x.current.filterBanned=k,O()},D=z.useCallback(async()=>{m(!0);const{page:k,search:H,sort:F,direction:B,filterBanned:K}=x.current,{players:J,total:Q,pages:Y}=await V("players.list",{page:k,search:H,sort:F,direction:B,filter:K?"banned":""});l(Y),f(Q),j(J),m(!1)},[]);z.useEffect(()=>{D()},[]);const O=z.useMemo(()=>Wt(()=>{x.current.page=0,D()},500),[]),_=k=>{k==a?v(H=>H*-1):(x.current.sort=k,v(k==="name"?1:-1)),D()};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(k=>!k),children:[e.jsx(kn,{}),"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:r,onChange:u}),e.jsx("span",{style:{flex:1}}),e.jsx(A,{icon:!0,normal:!0,"data-tooltip":"Refresh player list",onClick:D,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:n})]})}),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:n})]})}),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:n})]})}),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:n})]})}),e.jsx("th",{onClick:()=>_("sessions"),"data-tooltip":"Number of Visits",children:e.jsxs("span",{className:"icon-cell",children:[e.jsx(Mn,{className:"label",size:"30"}),e.jsx(Re,{name:"sessions",sort:a,direction:n})]})})]})}),e.jsx("tbody",{children:R.map(k=>e.jsxs("tr",{onClick:()=>S(`/players/${k.id}`),className:k.id===E?.id?"active":"",children:[e.jsx("td",{className:`player-name ${k.ban?"ban":""}`,children:e.jsxs("div",{className:"player-name-container",children:[e.jsxs("div",{children:[e.jsx("div",{"data-tooltip":k.displayName?"Display Name":"Username",children:k.displayName??k.name}),k.displayName&&e.jsx("div",{className:"username","data-tooltip":"Username",children:k.name})]}),k.ban&&e.jsx(ht,{size:"18"})]})}),e.jsx("td",{style:{textAlign:"right"},children:kr(k.heartbeats)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(k.lastSeen),children:ue(k.seenAgo)}),e.jsx("td",{style:{textAlign:"right"},"data-tooltip":new Date(k.created),children:ue(k.createdAgo)}),e.jsx("td",{style:{textAlign:"right"},children:k.sessions})]},k.id))})]})}),e.jsxs(We,{className:"pagination-footer",children:[e.jsx(A,{icon:!0,normal:!0,disabled:p===0,onClick:()=>{i(0)},children:e.jsx(Wr,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:p===0,onClick:()=>i(k=>Math.max(0,k-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(k=>Math.min(R.length-1,k+1)),children:e.jsx(pt,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:p>=t-1,onClick:()=>i(R.length-1),children:e.jsx(qr,{})})]}),e.jsx(he,{active:b,size:"huge",children:"Loading Players"})]})]}),e.jsxs(zr,{children:[e.jsx(me,{path:"/players/:id",component:Ys}),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"})]})})]})]})]})]})},Vs=(t,l)=>{try{return JSON.stringify(t)===JSON.stringify(l)}catch{return!1}},Ks=()=>{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),[M,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)},r=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 n=z.useRef(s);n.current=s,z.useEffect(()=>{if(!l?.id)return;n.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(()=>Wt(async()=>{if(!l?.id||!n.current)return;const c={},u=a.current,i=n.current.path;for(const v in n.current?.config??{})n.current?.config[v]!=u[v]&&(c[v]=!0),await V("plugin.config",l?.id,u)&&(S(c),setTimeout(()=>{S({}),f(D=>D?.path===i?{...D,config:u}:D)}))},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 ${M[c]?"show":""}`,children:["SAVED ",e.jsx(Zn,{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(fn,{options:"options"in u?u.options:void 0,type:u.itemType,value:b[c],onChange:i=>h(c,i)}),u.type==="players"&&e.jsx(pn,{value:b[c],onChange:i=>h(c,i)}),u.type==="role"&&e.jsx(mn,{value:b[c],onChange:i=>h(c,i)}),u.type==="enum"&&e.jsx(Tt,{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)}),!Vs(u.default,b[c])&&e.jsx(Tn,{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(Hr,{}),"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(Ar,{}),"Unload"]}),s&&!s?.isEnabled&&e.jsxs(A,{main:!0,"data-tooltip":"Allow the plugin to be started",disabled:R,onClick:()=>r(!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:()=>r(!1),children:[e.jsx(Fr,{}),"Disable"]})]})]})},Nr=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=[Wn,qn,Hn,An][l];return{...t,state:l,status:s,tooltip:f,icon:b}},Js=()=>{const[t,l]=z.useState(""),[s,f]=z.useState(!0),[b,m]=z.useState(!1),[g,w]=z.useState([]),[R,j]=Oe("/plugins/:id?"),M=z.useMemo(()=>g.find(x=>x.path===j?.id)?.name??"SELECT A PLUGIN",[g,j?.id]),S=async()=>{f(!0);const x=await V("plugins.list");w(x.map(Nr)),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,r])=>{const a=Nr(r);w(n=>n.map(o=>o.path===p?{...o,...a}:o))};return De.on("plugin",x),Be("subscribe","plugins"),S(),()=>{De.off("plugin",x),Be("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(Ln,{}),"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(nt,{href:"/plugins/"+x.path,"data-tooltip":x.documentation?.description,className:`plugin-item ${j?.id===x.path?"selected":""}`,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:M}),e.jsx("div",{className:"plugin-inspector",children:e.jsx(Ks,{})})]})]})]})]})},Zs=()=>{const{started:t,stopping:l,starting:s,loading:f}=Or(),b=ut(),[m,g]=z.useState(null),w=Ce(_r),[R,j]=z.useState(w?.update?.lastCheck??null);z.useEffect(()=>{j(w?.update?.lastCheck??null)},[w?.update?.lastCheck]);const[M,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]),r=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)))};Er("server.autorestart.set",h)},[m]),a=async()=>{E(!0),await V("world.save"),E(!1)},n=Qn(r),o=h=>c=>{m&&(g(u=>({...u,[h]:c})),n.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:M,onClick:p,children:R===!0?e.jsxs(e.Fragment,{children:[e.jsx(In,{}),"Update Available"]}):e.jsxs(e.Fragment,{children:[e.jsx(Un,{}),"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&&gn()),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&&yn()),children:[e.jsx(Ar,{}),"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&&vn()),children:[e.jsx(Hr,{}),"Restart"]}),e.jsxs(A,{info:!0,"data-tooltip":"Save the current world.",disabled:s||l||f||C,onClick:a,children:[e.jsx(Ir,{}),"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&&xn()),children:[e.jsx(Bn,{}),"Update"]})]}),e.jsxs(ge,{attached:!0,style:{marginTop:8},children:["Auto Restart",e.jsx(es,{show:n.status===ts.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]})]})]})},Qs=()=>{const t=Ce(_r)?.userless,l=Ce(bn),[s,f]=z.useState(0),[b,m]=z.useState(0),[g,w]=z.useState(!0),[R,j]=z.useState([]),[M,S]=z.useState(""),[C,E]=z.useState(""),[x,p]=z.useState(""),[r,a]=z.useState(""),[n,o]=z.useState(!1),[h,c]=z.useState(!1),[u,i]=z.useState(!1),[v,N]=Lt(),[D,O]=Oe("/users/:id?"),_=z.useRef({page:0,search:"",sort:"lastSeen",direction:-1}),{page:k,search:H,sort:F,direction:B}=_.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,re()},te=d=>{typeof d=="function"&&(d=d(_.current.direction)),_.current.direction=d},re=async()=>{w(!0);const{page:d,search:y,sort:P,direction:L}=_.current,{users:I,total:q,pages:G}=await V("users.list",{page:d,search:y,sort:P,direction:L});f(G),m(q),j(I),w(!1)},ae=z.useRef(re);ae.current=re,z.useEffect(()=>{re()},[]);const le=z.useMemo(()=>Wt(()=>{_.current.page=0,ae.current?.()},500),[]),oe=d=>{d==F?te(y=>y*-1):(_.current.sort=d,te(d==="name"?1:-1)),re()},ze=()=>{c(!h),o(!1),E(""),S("")},ke=()=>{o(!n),c(!1),t||E(l?.username??""),S("")},T=()=>{c(!1),o(!1),E(""),S(""),p(""),a("")},W=async()=>{if(S(""),x!==r)return;i(!0);let d="";try{if(n&&!t?d=await V("users.passwd",l?.username,x):d=await V("users.create",C,x),i(!1),!d){n&&t?Dn():T();return}}catch(y){console.error("error setting user credentials",y)}S(d)},$=z.useMemo(()=>{const d=C.length!==0||!(n&&!t);return C.match(/^\w{0,32}$/)&&d&&x.length!==0},[C,x,n,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(Fn,{}),"Enable Users"]}):e.jsxs(e.Fragment,{children:[e.jsx(Yt,{}),"Change Password"]})}),!t&&l?.isOwner&&e.jsxs(A,{normal:!0,onClick:ze,"data-tooltip":"Add a new user",children:[e.jsx(Xt,{}),"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:re,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:B})]})}),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:B})]})}),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:B})]})})]})}),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:k===0,onClick:()=>{Y(0)},children:e.jsx(Wr,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:k===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 ",k+1," of ",s]}),e.jsxs("div",{children:["Showing ",R.length," of ",b]})]}),e.jsx(A,{icon:!0,normal:!0,disabled:k>=s-1,onClick:()=>Y(d=>Math.min(R.length-1,d+1)),children:e.jsx(pt,{})}),e.jsx(A,{icon:!0,normal:!0,disabled:k>=s-1,onClick:()=>Y(R.length-1),children:e.jsx(qr,{})})]}),e.jsx(he,{active:g,size:"huge",children:"Loading Users"})]})]}),e.jsxs(Mr,{visible:n||h,children:[e.jsx(he,{active:u,size:"huge",children:"Submitting"}),e.jsxs(Tr,{visible:!u,children:[e.jsx(qt,{children:h?"Create New User":"Update Credentials"}),e.jsxs(kt,{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&&n&&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."}),M&&e.jsxs("p",{style:{color:"red"},children:["Error: ",M]})]}),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:r,onChange:d=>a(d)})]}),e.jsxs(We,{children:[e.jsxs(A,{main:!0,disabled:!$||r!==x,onClick:()=>W(),children:[h&&e.jsx(Xt,{}),!h&&e.jsx(Yt,{}),h?"Add":"Update"]}),e.jsx("div",{style:{flex:1}}),e.jsxs(A,{normal:!0,onClick:T,children:[e.jsx(st,{}),"Cancel"]})]})]})]})]})]})]})},Ie=$r(null),Ue=$r(null),ea=()=>{const[t,l]=Oe("/worlds/*"),s=l?.["*"],[f,b]=z.useState(!1),m=Ce(Ie),g=Ce(Ue),w=Ce(jn),[R,j]=z.useState(!1),[M,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)&&(Ue.set(s),Ie.set(s)),b(!1)},p=async()=>{if(!s)return;if(b(!0),await V("world.use")){const n=await V("world.next"),o=await V("world.active");Ue.set(o),Ie.set(n)}b(!1)},r=async a=>{if(!s)return;b(!0);const n=await V("world.load",s,a??null);console.info("world loaded",n),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"}),M?.length===0&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:"Something went wrong listing the revisions"})}),M===null&&!R&&w.started&&e.jsx("div",{className:"revision-item",children:e.jsx("i",{className:"revision-note",children:"World might not exist"})}),M?.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(n=>{n&&r(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(Ur,{}),"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(Br,{}),"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&&r()}),children:[e.jsx(ft,{}),"Load"]})]}),E.children]})},ta=["Plate","Space","Studio","Peaks"],ra=()=>{const[t,l]=z.useState(""),[s,f]=z.useState(!0),[b,m]=z.useState([]),[g,w]=z.useState(!1),R=Ce(Ie),j=Ce(Ue),[M,S]=z.useState(!1),C=Or(),[E,x]=Oe("/worlds/*?"),p=x?.["*"],r=async()=>{f(!0);const[_,k,H]=await Promise.all([V("world.list"),V("world.active"),V("world.next")]);m(_),Ue.set(k),Ie.set(H),f(!1)};z.useEffect(()=>{r()},[]);const a=async()=>{if(w(!0),await V("world.use",null)){Ue.set(null);const k=await V("world.next");Ie.set(k)}w(!1)},n=async()=>{w(!0),await V("world.save"),w(!1)},o=async _=>{w(!0),await V("world.save",_),w(!1),r()},h=async(_,k)=>{w(!0),await V("world.create",_,k),w(!1),r()},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,D]=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(Tt,{value:N,options:ta,onChange:_=>D(_)})})]}),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(!M),children:[M?e.jsx(Lr,{}):e.jsx(Gr,{}),"Actions"]}),e.jsxs("div",{className:"widgets-list",style:{display:M?"block":"none"},children:[e.jsxs(A,{info:!0,disabled:g||!C.started,"data-tooltip":"Save the currently loaded world",onClick:()=>{S(!1),n()},children:[e.jsx(Ir,{}),"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(Gn,{}),"Save As"]}),e.jsxs(A,{main:!0,disabled:g||!C.started,"data-tooltip":"Create a new world",onClick:()=>{S(!1),i(null),D("Plate"),O.prompt().then(_=>{_&&h(_.name,_.map)})},children:[e.jsx($n,{}),"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(Br,{}),"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:r,children:e.jsx(bt,{})})]}),e.jsxs("div",{className:"worlds-list",children:[e.jsx(be,{children:b.map(_=>c(_)&&e.jsxs(nt,{href:"/worlds/"+_,className:`world-item ${_===p?"selected":""} ${_===j?"next":""}`,"data-tooltip":_===j?"This world will load when the server starts":"",children:[_===j?e.jsx(Ur,{className:"world-item-active"}):!j&&_===R?e.jsx(Yn,{className:"world-item-next"}):e.jsx(Jn,{}),_]},_))}),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(ea,{})})]})]})]}),v.children,O.children]})},na=()=>e.jsx(wn,{children:e.jsx(Sn,{hook:Rn,children:e.jsxs(zr,{children:[e.jsx(me,{path:"/",component:Gs}),e.jsx(me,{path:"/history/:time?",component:ss}),e.jsx(me,{path:"/players/:id?",component:Xs}),e.jsx(me,{path:"/plugins/:id?",component:Js}),e.jsx(me,{path:"/server",component:Zs}),e.jsx(me,{path:"/users/:id?",component:Qs}),e.jsx(me,{path:"/worlds/*?",component:ra}),e.jsx(me,{component:ns})]})})});cn.createRoot(document.getElementById("root")).render(e.jsx(na,{}));
6
- //# sourceMappingURL=app-YnhULa-P.js.map