From 4c8556200fe85884cd54cf8d320b5ec26c7fb0ac Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Tue, 24 Aug 2021 10:53:21 +0000 Subject: [PATCH] deploy: 81dd37a4b357885199c35d836d6de68da815f44c --- asset-manifest.json | 6 +++--- index.html | 2 +- static/js/main.a731f134.chunk.js | 2 ++ static/js/main.a731f134.chunk.js.map | 1 + static/js/main.ec7dbe44.chunk.js | 2 -- static/js/main.ec7dbe44.chunk.js.map | 1 - 6 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 static/js/main.a731f134.chunk.js create mode 100644 static/js/main.a731f134.chunk.js.map delete mode 100644 static/js/main.ec7dbe44.chunk.js delete mode 100644 static/js/main.ec7dbe44.chunk.js.map diff --git a/asset-manifest.json b/asset-manifest.json index 739a4ec..9da816b 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.44f398a2.chunk.css", - "main.js": "/static/js/main.ec7dbe44.chunk.js", - "main.js.map": "/static/js/main.ec7dbe44.chunk.js.map", + "main.js": "/static/js/main.a731f134.chunk.js", + "main.js.map": "/static/js/main.a731f134.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.10c77e39.js", "runtime-main.js.map": "/static/js/runtime-main.10c77e39.js.map", "static/js/2.aaed53f7.chunk.js": "/static/js/2.aaed53f7.chunk.js", @@ -18,6 +18,6 @@ "static/js/runtime-main.10c77e39.js", "static/js/2.aaed53f7.chunk.js", "static/css/main.44f398a2.chunk.css", - "static/js/main.ec7dbe44.chunk.js" + "static/js/main.a731f134.chunk.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index e94800b..0c12081 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -NGS Planner
\ No newline at end of file +NGS Planner
\ No newline at end of file diff --git a/static/js/main.a731f134.chunk.js b/static/js/main.a731f134.chunk.js new file mode 100644 index 0000000..3b883ab --- /dev/null +++ b/static/js/main.a731f134.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonpngsplanner=this.webpackJsonpngsplanner||[]).push([[0],{138:function(e,t){},140:function(e,t){},150:function(e,t,a){"use strict";a.r(t);var i=a(1),c=a.n(i),s=a(35),n=a.n(s),l=(a(77),a(12)),r=a(6),j=a(19),d=a(2),b=(a(78),a(79),a(37)),o=a.n(b),h=a(16),u=a(154),O=a(155),g=a(156),x=a(157),m=a(158),p=a(10),f=a(0);function S(e){var t=Object(i.useRef)(null),a=Object(i.useState)(0),c=Object(d.a)(a,2),s=c[0],n=c[1],r=Object(i.useState)(0),j=Object(d.a)(r,2),b=j[0],o=j[1];return Object(i.useEffect)((function(){n(e.gridSizeX*e.gridDimensionsX+e.gridPaddingX*(e.gridDimensionsX-1)),o(e.gridSizeY*Math.ceil(e.gridDimensionsY/2)+e.halflineheight*Math.ceil((e.gridDimensionsY-1)/2)+e.gridPaddingY*(e.gridDimensionsY-1))}),[e.halflineheight,e.skillLines,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.gridDimensionsX,e.gridDimensionsY]),Object(i.useEffect)((function(){var a=t.current.getContext("2d");a.clearRect(0,0,s,b),a.fillStyle="rgba(100,100,100,0.5)",a.strokeStyle=e.strokeStyle,a.lineWidth=e.lineWidth,a.setLineDash(e.lineDash);var i,c=0,n=Object(l.a)(e.skillLines);try{for(n.s();!(i=n.n()).done;){var r,j=i.value,d=0,o=Object(l.a)(j.split(""));try{for(o.s();!(r=o.n()).done;){var h=r.value,u=0!==d?e.gridPaddingX*d:0,O=0!==c?e.gridPaddingY*c:0;switch(h){case"\u2500":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2502":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2514":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u250c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2518":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2510":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u251c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2524":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u252c":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2534":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u253c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u25a1":a.clearRect(d*e.gridSizeX+u,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O,e.gridSizeX,c%2===1?e.halflineheight:e.gridSizeY),a.fillRect(d*e.gridSizeX+u,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O,e.gridSizeX,c%2===1?e.halflineheight:e.gridSizeY)}d++}}catch(g){o.e(g)}finally{o.f()}c++}}catch(g){n.e(g)}finally{n.f()}}),[s,b,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.lineDash,e.lineWidth,e.skillLines,e.strokeStyle,e.halflineheight]),Object(f.jsx)("canvas",{width:s,height:b,ref:t,style:e.style,className:e.className,children:e.children})}function v(e){var t=e.GetData,a=Object(i.useState)([]),c=Object(d.a)(a,2),s=c[0],n=c[1];return Object(i.useEffect)((function(){n(t("class_skill"))}),[e.cl,t]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("select",{onChange:function(t){e.callback(t.currentTarget.value,Number(e.x),Number(e.y))},style:{position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)},value:e.defaultValue,children:[" ","\u2500","\u2502","\u25a1","\u250c","\u2514","\u2510","\u2518","\u252c","\u2534","\u251c","\u2524","\u253c"].map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))}),"\u25a1"===e.defaultValue&&Object(f.jsx)("select",{style:{width:"64px",position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)+28},onChange:function(t){e.skillCallback(e.x,e.y,t.currentTarget.value)},value:e.skill.split(",")[2],children:[""].concat(Object(p.a)(Object.keys(s).filter((function(t){return s[t].class_id===e.cl})))).map((function(e){return Object(f.jsx)("option",{value:s[e]?s[e].id:"",children:s[e]?s[e].name:""},e)}))})]})}var N=a(36),k=a.n(N);function y(e){var t,a,s=e.GetData,n=Object(i.useMemo)((function(){return[-32,32]}),[]),l=Object(i.useState)(!0),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)({}),h=Object(d.a)(o,2),u=h[0],O=h[1],g=Object(i.useState)({}),x=Object(d.a)(g,2),m=x[0],N=x[1],y=Object(i.useState)(-1),D=Object(d.a)(y,2),C=D[0],P=D[1],z=Object(i.useState)("#000000"),E=Object(d.a)(z,2),T=E[0],M=E[1],A=Object(i.useState)(3),Y=Object(d.a)(A,2),X=Y[0],_=Y[1],F=Object(i.useState)(6),w=Object(d.a)(F,2),R=w[0],G=w[1],L=Object(i.useState)(6),B=Object(d.a)(L,2),I=B[0],U=B[1],W=Object(i.useState)(80),H=Object(d.a)(W,2),K=H[0],q=H[1],V=Object(i.useState)(60),J=Object(d.a)(V,2),Q=J[0],Z=J[1],$=Object(i.useState)(10),ee=Object(d.a)($,2),te=ee[0],ae=ee[1],ie=Object(i.useState)(10),ce=Object(d.a)(ie,2),se=ce[0],ne=ce[1],le=Object(i.useState)([]),re=Object(d.a)(le,2),je=re[0],de=re[1],be=Object(i.useState)([]),oe=Object(d.a)(be,2),he=oe[0],ue=oe[1],Oe=Object(i.useState)([]),ge=Object(d.a)(Oe,2),xe=ge[0],me=ge[1],pe=Object(i.useState)([]),fe=Object(d.a)(pe,2),Se=fe[0],ve=fe[1],Ne=Object(i.useState)(""),ke=Object(d.a)(Ne,2),ye=ke[0],De=ke[1],Ce=Object(i.useState)(!1),Pe=Object(d.a)(Ce,2),ze=Pe[0],Ee=Pe[1],Te=Object(i.useState)(60),Me=Object(d.a)(Te,2),Ae=Me[0],Ye=Me[1],Xe=Object(i.useCallback)((function(e,t){var a=Se.filter((function(a){return Number(a.split(",")[0])===Number(e)&&Number(a.split(",")[1])===Number(t)}));return a.length>0?a[0]:""}),[Se]);return Object(i.useEffect)((function(){O(s("class",void 0,void 0,!0)),N(s("skill_tree_data",void 0,void 0,!0))}),[s]),Object(i.useEffect)((function(){for(var e=!1,t=0,a=Object.keys(m);t0?""+e:"/icons/nicodotpng.png.png"}var A=a(71);function Y(e){var t;return Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("span",{"data-tip":!0,"data-tip-disable":0===(null===(t=e.tooltip)||void 0===t?void 0:t.length),"data-for":e.id,children:e.children}),Object(f.jsx)(A.a,{id:e.id,className:"xTooltip",overridePosition:function(e,t,a,i){var c=e.left,s=e.top,n=document.documentElement;return c=Math.min(n.clientWidth-i.clientWidth,c),s=Math.min(n.clientHeight-i.clientHeight,s),c=Math.max(0,c),{top:s=Math.max(0,s),left:c}},children:e.tooltip})]})}function X(e){return Object(i.useEffect)((function(){var e=setTimeout((function(){document.getElementById("editBoxInput").focus(),document.getElementById("editBoxInput").select()}),100);return function(){clearTimeout(e)}}),[e.edit]),Object(f.jsx)("input",{id:"editBoxInput",type:e.type,max:"number"===e.type?20:void 0,min:"number"===e.type?1:void 0,onKeyDown:function(t){("Enter"===t.key||"Escape"===t.key)&&e.setEdit(!1)},maxLength:e.maxlength?e.maxlength:20,onBlur:function(){e.setEdit(!1)},value:e.value,onChange:function(t){t.currentTarget.value.length>0?e.setName(t.currentTarget.value):e.setName(e.originalName)}})}function _(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){e.callback&&e.callback()}),[c,e]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:c?"editBoxActive":"editBox",onClick:function(e){s(!0)},children:c?Object(f.jsx)(X,{edit:c,maxlength:e.maxlength,type:e.type,setEdit:s,originalName:e.data,setName:e.setData,value:e.data}):Object(f.jsxs)(f.Fragment,{children:[e.prefix,e.data]})})})}function F(e){return Object(f.jsx)("li",{onClick:function(){e.onPageChange&&e.onPageChange(e.pageName),e.setCurrentPage(e.page)},className:e.currentPage===e.page?"selected":"unselected",children:e.pageDisplay?e.pageDisplay[e.page-1]:e.pageName?e.pageName:e.page})}function w(e){for(var t=[],a=0;a0&&Object(f.jsx)("ul",{className:"boxmenu",children:t.map((function(e,t){return Object(f.jsx)(c.a.Fragment,{children:e},t)}))})}function R(e){var t=e.GetData("class"),a=t[e.name];return"no data"!==t?a?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",src:""+a.icon}),a.name]}):Object(f.jsx)(f.Fragment,{}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",width:"24",src:M("")}),"Nico"]})}function G(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:"editClass",onClick:function(){e.setClassNameSetter(e.editClass),e.setClassSelectWindowOpen(!0)},children:Object(f.jsx)(R,{GetData:e.GetData,name:e.name})})})}function L(e){return Object(f.jsx)(T.a,{ariaHideApp:!1,isOpen:e.modalOpen,onRequestClose:function(){e.setModalOpen(!1)},shouldFocusAfterRender:!0,shouldCloseOnOverlayClick:!0,shouldCloseOnEsc:!0,className:"modal",overlayClassName:"modalOverlay",children:Object(f.jsxs)("div",{className:"box boxModal",children:[Object(f.jsxs)("div",{className:"boxTitleBar",children:[Object(f.jsx)("h1",{children:e.title}),e.showCloseButton&&Object(f.jsx)("div",{className:"boxExit",onClick:function(){e.setModalOpen(!1)}})]}),Object(f.jsx)(w,{onPageChange:e.onPageChange,pages:e.pageNames?e.pageNames.length:0,pageNames:e.pageNames,currentPage:e.page,setCurrentPage:e.setPage}),e.children]})})}function B(e){var t=e.onModalOpen,a=Object(i.useState)([]),s=Object(d.a)(a,2),n=s[0],l=s[1],r=Object(i.useState)(1),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(e.sortItems?e.sortItems[0]:""),u=Object(d.a)(h,2),O=u[0],g=u[1],x=Object(i.useState)(""),m=Object(d.a)(x,2),p=m[0],S=m[1];return Object(i.useEffect)((function(){e.dataFunction&&l(e.dataFunction())}),[e]),Object(i.useEffect)((function(){t&&t(o)}),[t]),Object(f.jsxs)(L,{page:b,setPage:o,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,showCloseButton:!0,title:e.title,pageNames:e.pageNames,filter:!0,onPageChange:e.onPageChange,children:[(e.sortItems||e.filter)&&Object(f.jsxs)("div",{className:"itemBar",children:[Object(f.jsx)("div",{className:"itemBarSort",children:e.sortItems&&Object(f.jsx)("select",{className:"itemBarForm",value:O,onChange:function(e){g(e.currentTarget.value)},children:e.sortItems.map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))})}),Object(f.jsx)("div",{className:"itemBarFilter",children:e.filter?Object(f.jsx)("input",{className:"itemBarForm",type:"text",placeholder:"Filter",value:p,onChange:function(e){S(e.currentTarget.value)}}):Object(f.jsx)(f.Fragment,{})})]}),Object(f.jsx)("div",{className:"modalItemListContainer customScrollbar",children:Object(f.jsxs)("ul",{className:"itemlist",children:[e.filter?n.filter((function(t){return e.filterFunction(b,t)})).filter((function(t){return e.searchFieldFunction(p,t)})).sort((function(t,a){return e.sortOrderFunction(O,t,a)})).map((function(t,a){return Object(f.jsx)(c.a.Fragment,{children:e.displayFunction(t)},a)})):n.map((function(t,a){return Object(f.jsx)(c.a.Fragment,{children:e.displayFunction(t)},a)})),e.children]})})]})}function I(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillLeftButton"}))}function U(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillRightButton"}))}function W(e){var t=Object(i.useState)("Select Main Class"),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){s(e.editClass?"Select Sub Class":"Select Main Class")}),[e.editClass]),Object(f.jsx)(B,{title:c,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,GetData:e.GetData,pageNames:["Main Class","Sub-Class"],onPageChange:function(t){"Main Class"===t?e.setEditClass(0):e.setEditClass(1)},onModalOpen:function(t){t(e.editClass?2:1)},dataFunction:function(){var t=e.GetData("class");return Object.keys(t)},displayFunction:function(t){return Object(f.jsxs)("li",{className:e.class===t?"treeListMain":e.subClass===t?"treeListSub":"",onClick:function(){0===e.editClass?(e.setClassName(t),e.setSubClassName(e.subClass===t?e.class:e.subClass)):(e.setSubClassName(t),e.setClassName(e.class===t?e.subClass:e.class)),e.setModalOpen(!1)},children:[Object(f.jsx)("img",{alt:"",src:M(e.GetData("class",t,"icon"))})," ",e.GetData("class",t,"name")]})}})}function H(e){var t;return void 0!==e[4]?(null===(t=e[4].special_name)||void 0===t?void 0:t.length)>0?e[4].special_name:e[1].name+" "+e[0].name:""}function K(e){return Object(f.jsxs)("div",{className:e.className,style:{gridArea:(t=Number(e.skill[0]),a=Number(e.skill[1]),String.fromCharCode(Number(t)+"a".charCodeAt(0))+(a/2+1))},children:[Object(f.jsx)("img",{className:"skillIcon",alt:"",src:M(e.GetData("class_skill",e.skill[2],"icon",!0))}),Object(f.jsx)("span",{className:"skillAllocated",children:(e.skillPointData[e.page-1][e.boxId]?e.skillPointData[e.page-1][e.boxId]:0)+"/"+e.maxPoints}),Object(f.jsx)("em",{className:"skillName",children:"string"===typeof e.GetData("class_skill",e.skill[2],"name",!0)&&e.GetData("class_skill",e.skill[2],"name",!0)}),Object(f.jsxs)("div",{className:"skillButtons",children:[Object(f.jsx)(I,{onClick:function(){var t=Object(p.a)(e.points),a=Object(p.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]>0&&(t[e.page-1]-=1,a[e.page-1][e.boxId]-=1,e.setPoints(t),e.setSkillPointData(a))}}),Object(f.jsx)(U,{onClick:function(){var t=Object(p.a)(e.points),a=Object(p.a)(e.skillPointData);a[e.page-1][e.boxId]||(a[e.page-1][e.boxId]=0),a[e.page-1][e.boxId]i&&(i=s.level)}return i}return Object(f.jsx)(f.Fragment,{children:e.skillTreeSkillData&&e.skillTreeSkillData.map((function(a,i){var c=a.split(",");return""!==c[0]&&""!==c[1]&&""!==c[2]&&Object(f.jsx)(K,{className:(c[2],e.skillPointData[e.page-1][i]===t(c[2])?"skillMaxed":e.skillPointData[e.page-1][i]>0?"skillActive":""),boxId:c[0]+"_"+c[1],skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,cl:e.cl,maxPoints:t(c[2]),points:e.points,setPoints:e.setPoints,GetData:e.GetData,skill:c.map((function(e){return Number(e)}))},i)}))})}function V(e){var t=e.GetData,a=Object(i.useState)([]),c=Object(d.a)(a,2),s=c[0],n=c[1],r=Object(i.useState)([]),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(""),u=Object(d.a)(h,2),O=u[0],g=u[1],x=Object(i.useState)(3),m=Object(d.a)(x,2),p=m[0],v=m[1],N=Object(i.useState)(6),k=Object(d.a)(N,2),y=k[0],D=k[1],C=Object(i.useState)(6),P=Object(d.a)(C,2),z=P[0],E=P[1],T=Object(i.useState)(171),M=Object(d.a)(T,2),A=M[0],Y=M[1],X=Object(i.useState)(148),_=Object(d.a)(X,2),F=_[0],w=_[1],R=Object(i.useState)(10),G=Object(d.a)(R,2),L=G[0],B=G[1],I=Object(i.useState)(48),U=Object(d.a)(I,2),W=U[0],H=U[1],K=Object(i.useState)(60),V=Object(d.a)(K,2),J=V[0],Q=V[1];return Object(i.useEffect)((function(){if(Object.keys(t("skill_tree_data")).length>1){var a,i=Object(l.a)(t("skill_tree_data"));try{for(i.s();!(a=i.n()).done;){var c=a.value;if(c.class_id===t("class",e.cl,"id")){var s=c.data.split(","),r=c.skill_data.split(";");n(s),o(r),g(c.line_color),v(c.line_width),D(s[0].length),E(s.length),Y(c.gridsizex),w(c.gridsizey),B(c.gridpaddingx),H(c.gridpaddingy),Q(c.halflineheight);break}}}catch(j){i.e(j)}finally{i.f()}}}),[e.cl,t]),Object(f.jsx)("div",{className:"skillTreeContainer customScrollbar",children:Object(f.jsxs)("div",{style:{position:"relative"},children:[Object(f.jsx)(S,{style:{position:"absolute"},strokeStyle:O,lineWidth:p,lineDash:[],gridDimensionsX:y,gridDimensionsY:z,gridSizeX:A,gridSizeY:F,gridPaddingX:L,gridPaddingY:W,skillLines:s,halflineheight:J}),Object(f.jsx)("div",{className:"skillTreeGrid",children:Object(f.jsx)(q,{skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,points:e.points,cl:e.cl,setPoints:e.setPoints,GetData:e.GetData,skillTreeSkillData:b})})]})})}var J=function(e){var t,a,s=e.GetData,n=Object(i.useState)(1e3),l=Object(d.a)(n,2),r=l[0],j=l[1],b=Object(i.useState)(1e3),o=Object(d.a)(b,2),h=o[0],u=o[1],O=Object(i.useState)(1e3),g=Object(d.a)(O,2),x=g[0],m=g[1],p=Object(i.useState)(1e3),S=Object(d.a)(p,2),v=S[0],N=S[1],k=Object(i.useState)(1e3),y=Object(d.a)(k,2),D=y[0],C=y[1],P=Object(i.useState)("Player"),z=Object(d.a)(P,2),E=z[0],A=z[1],X=Object(i.useState)("Character"),F=Object(d.a)(X,2),R=F[0],L=F[1],I=Object(i.useState)("Ranger"),U=Object(d.a)(I,2),K=U[0],q=U[1],J=Object(i.useState)("Force"),Q=Object(d.a)(J,2),Z=Q[0],$=Q[1],ee=Object(i.useState)(20),te=Object(d.a)(ee,2),ae=te[0],ie=te[1],ce=Object(i.useState)(20),se=Object(d.a)(ce,2),ne=se[0],le=se[1],re=Object(i.useState)(1),je=Object(d.a)(re,2),de=je[0],be=je[1],oe=Object(i.useState)(1),he=Object(d.a)(oe,2),ue=he[0],Oe=he[1],ge=Object(i.useState)(1),xe=Object(d.a)(ge,2),me=xe[0],pe=xe[1],fe=Object(i.useState)(!1),Se=Object(d.a)(fe,2),ve=Se[0],Ne=Se[1],ke=Object(i.useState)(!1),ye=Object(d.a)(ke,2),De=ye[0],Ce=ye[1],Pe=Object(i.useState)(1),ze=Object(d.a)(Pe,2),Ee=ze[0],Te=ze[1],Me=Object(i.useState)(!1),Ae=Object(d.a)(Me,2),Ye=Ae[0],Xe=Ae[1],_e=Object(i.useState)(!1),Fe=Object(d.a)(_e,2),we=Fe[0],Re=Fe[1],Ge=Object(i.useState)([]),Le=Object(d.a)(Ge,2),Be=Le[0],Ie=Le[1],Ue=Object(i.useState)([]),We=Object(d.a)(Ue,2),He=We[0],Ke=We[1],qe=Object(i.useState)([]),Ve=Object(d.a)(qe,2),Je=Ve[0],Qe=Ve[1],Ze=Object(i.useState)([]),$e=Object(d.a)(Ze,2),et=$e[0],tt=$e[1],at=Object(i.useState)(1),it=Object(d.a)(at,2),ct=it[0],st=it[1],nt=Object(i.useState)(0),lt=Object(d.a)(nt,2),rt=lt[0],jt=lt[1],dt=Object(i.useState)([]),bt=Object(d.a)(dt,2),ot=bt[0],ht=bt[1],ut=Object(i.useState)([]),Ot=Object(d.a)(ut,2),gt=Ot[0],xt=Ot[1];function mt(e){return void 0!==e&&void 0!==e.rarity?" r"+e.rarity:""}return Object(i.useEffect)((function(){e.bp>1e3?(j(3e3),u(3e3),m(3e3),N(3e3),C(3e3)):(j(1e3),u(1e3),m(1e3),N(1e3),C(1e3))}),[e.bp]),Object(i.useEffect)((function(){for(var e=Object.keys(s("class")),t=[],a=[],i=0;i0)||(t[1].name.toLowerCase()+" "+t[0].name.toLowerCase()).includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a[1].rarity-t[1].rarity;case"Attack":return a[1].atk-t[1].atk;default:return 0}},displayFunction:function(e){var t;return Object(f.jsxs)("li",{className:"itemwep r"+e[1].rarity,onClick:function(){Ie(e),Xe(!1)},children:[Object(f.jsxs)("div",{className:"itemWeaponWrapper",children:[Object(f.jsx)("img",{className:"itemimg",alt:"",src:M(null===(t=e[4])||void 0===t?void 0:t.icon)}),Object(f.jsx)("em",{className:"rifle",children:H(e)})]}),Object(f.jsx)("br",{}),Object(f.jsx)("span",{className:"atk",children:e[1].atk})," ",Object(f.jsx)(Y,{id:"mouseover-tooltip"+e[0].id+"_"+e[1].id+"_"+e[2].id+"_"+e[3].id,tooltip:Object(f.jsx)(f.Fragment,{children:e[3].map((function(e,t){return Object(f.jsxs)(c.a.Fragment,{children:[0!==t&&Object(f.jsx)("br",{}),e.name,": ",e.description?e.description.split("\\n").map((function(e,t){return Object(f.jsxs)(c.a.Fragment,{children:[e,Object(f.jsx)("br",{})," "]},t)})):Object(f.jsx)(c.a.Fragment,{},t)]},t)}))}),children:Object(f.jsx)("span",{className:"pot",children:e[2].name})})]})}}),Object(f.jsx)(B,{title:"Armor Selection - Slot "+ct,modalOpen:we,setModalOpen:Re,GetData:e.GetData,pageNames:[],sortItems:["Standard Sort","Rarity","HP","PP","Melee Potency","Range Potency","Tech Potency"],filter:!0,dataFunction:function(){var t=e.GetData("armor");return"object"===typeof t&&null!==t?Object.keys(t).map((function(e){return t[e]})):[]},filterFunction:function(e,t){return t.slot===ct},searchFieldFunction:function(e,t){return!(e.length>0)||t.name.toLowerCase().includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a.rarity-t.rarity;case"HP":return a.hp-t.hp;case"PP":return a.pp-t.pp;case"Melee Potency":return a.mel_dmg-t.mel_dmg;case"Range Potency":return a.rng_dmg-t.rng_dmg;case"Tech Potency":return a.tec_dmg-t.tec_dmg;default:return 0}},displayFunction:function(e){return Object(f.jsxs)("li",{className:"itemwep r"+e.rarity,onClick:function(){switch(ct){case 1:Ke(e);break;case 2:Qe(e);break;case 3:tt(e);break;default:Ke(e)}Re(!1)},children:[Object(f.jsxs)("div",{className:"itemWeaponWrapper",children:[Object(f.jsx)("img",{className:"itemimg",alt:"",src:M(null===e||void 0===e?void 0:e.icon)}),Object(f.jsx)("em",{className:"rifle",children:e.name})]}),Object(f.jsx)("br",{}),Object(f.jsx)("span",{className:"atk",children:e.def})]})}})]})},Q=a(26),Z=a.n(Q),$=a(36),ee=a(115),te=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_GITPOD_WORKSPACE_URL||Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_BACKENDURL||"https://projectdivar.com:4504",ae="NGS Planner";function ie(e){return te+(e.TESTMODE?"/test":"")}function ce(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsxs)("div",{className:"box",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:e.title})}),e.children]})})}function se(e){return Object(f.jsx)("span",{className:e.classes,children:e.children})}function ne(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),c=a[0],s=a[1],n=Object(i.useState)(!1),l=Object(d.a)(n,2),r=l[0],j=l[1],b=Object(i.useState)(!1),o=Object(d.a)(b,2),h=o[0],u=o[1];function O(t){s(t.currentTarget.value),e.callback4&&e.callback4(t.currentTarget.value)}function g(t){e.callback?(u(!0),j(!1),e.callback(t.currentTarget.value).then((function(){j(!1)})).catch((function(){j(!0)})).then((function(){u(!1)}))):e.callback3&&e.callback3(t.currentTarget.value)}function x(t){e.callback2&&e.callback2(t,c)}return e.data?Object(f.jsxs)("select",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:c,onKeyDown:function(e){x(e)},onChange:function(e){O(e)},onBlur:function(e){g(e)},children:[e.includeBlankValue&&Object(f.jsx)("option",{}),e.data.map((function(e){return Object(f.jsxs)("option",{value:e.id,children:[e.id," - ",e.name||e.username]},e.id)}))]}):Object(f.jsx)("input",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:c,onKeyDown:function(e){x(e)},onChange:function(e){O(e)},onBlur:function(e){g(e)}})}function le(e){var t={},a=e.TESTMODE;var s=Object(i.useState)([]),n=Object(d.a)(s,2),b=n[0],o=n[1],h=Object(i.useState)([]),g=Object(d.a)(h,2),x=g[0],m=g[1],p=Object(i.useState)(!1),S=Object(d.a)(p,2),v=S[0],N=S[1],k=Object(i.useReducer)((function(e,a){return"Clear"===a?t:(e[a.field]=a.value,e)}),t),y=Object(d.a)(k,2),D=y[0],C=y[1],P=Object(i.useState)(!1),z=Object(d.a)(P,2),E=z[0],T=z[1],M=Object(i.useState)([]),A=Object(d.a)(M,2),Y=A[0],X=A[1],_=Object(i.useState)(!1),F=Object(d.a)(_,2),w=F[0],R=F[1],G=Object(i.useState)(!1),L=Object(d.a)(G,2),B=L[0],I=L[1];return Object(i.useEffect)((function(){N(!0)}),[e.path,a]),Object(i.useEffect)((function(){var e,t=Object(l.a)(b);try{for(t.s();!(e=t.n()).done;){if("name"===e.value.name){R(!0);break}}}catch(a){t.e(a)}finally{t.f()}}),[b]),Object(i.useEffect)((function(){if(v){T(!0);var t={};$.get(e.BACKENDURL+e.path+"?pass="+e.password).then((function(a){var i=a.data.fields,c=a.data.rows;o(i.filter((function(e,t){return"id"!==e.name&&!(0===t&&"name"===e.name)})));var s=[];return i.filter((function(e){return"id"!==e.name&&e.name.includes("_id")})).forEach((function(a){s.push($.get(e.BACKENDURL+"/"+a.name.replace("_id","")+"?pass="+e.password).then((function(e){t[a.name]=e.data.rows.sort((function(e,t){return t.id-e.id}))})))})),m(c),Promise.allSettled(s)})).then((function(){X(t),T(!1)})),N(!1)}}),[v,e.path,e.BACKENDURL,e.password]),Object(f.jsx)(f.Fragment,{children:E?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""})]}):Object(f.jsx)("div",{children:Object(f.jsxs)("table",{children:[w&&Object(f.jsxs)("caption",{children:[Object(f.jsx)("label",{className:"buttonLabel",htmlFor:"uploads",children:"Import CSV"}),Object(f.jsx)("input",{onChange:function(t){var a=new FileReader;a.onload=function(t){var a=[];ee(t.target.result,{columns:!0,skip_empty_lines:!0}).forEach((function(t){var i,c=Object(l.a)(b);try{for(c.s();!(i=c.n()).done;){var s=i.value;23!==s.dataTypeID&&701!==s.dataTypeID&&16!==s.dataTypeID||""!==t[s.name]||(t[s.name]=0)}}catch(n){c.e(n)}finally{c.f()}a.push($.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},t),{},{pass:e.password})))})),Promise.allSettled(a).then((function(){N(!0)}))},a.readAsText(t.target.files[0])},style:{opacity:0},id:"uploads",type:"file",accept:".txt,.csv"})]}),Object(f.jsx)("thead",{children:Object(f.jsxs)("tr",{children:[Object(f.jsx)("th",{className:"table-padding",children:Object(f.jsx)(u.a,{onClick:function(){!function(){if(!B){I(!0);var t,a=[],i=Object(l.a)(x);try{for(i.s();!(t=i.n()).done;){var c=t.value;document.getElementById("delete_"+c.id).checked&&a.push($.delete(e.BACKENDURL+e.path,{data:{pass:e.password,id:c.id}}))}}catch(s){i.e(s)}finally{i.f()}Promise.allSettled(a).catch((function(e){alert(e.message)})).then((function(e){I(!1),N(!0)}))}}()},className:"trashButton"})}),b.map((function(e,t){return Object(f.jsx)(c.a.Fragment,{children:Object(f.jsx)("th",{scope:"col",className:"table-padding",children:e.name})},t)}))]})}),Object(f.jsxs)("tbody",{children:[Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{}),b.map((function(e,t){return Object(f.jsx)("td",{children:Object(f.jsx)(ne,{includeBlankValue:!0,data:Y[e.name],callback4:function(t){C({field:e.name,value:t})}})},t)})),Object(f.jsxs)("td",{children:[Object(f.jsx)("input",{style:{display:"none"}}),Object(f.jsx)(O.a,{onClick:function(){B||(I(!0),$.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},D),{},{pass:e.password})).then((function(){C("Clear"),N(!0)})).catch((function(e){alert(JSON.stringify(e.response.data))})).then((function(){I(!1)})))},className:"submitbutton"})]})]}),x.map((function(t){return Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{children:Object(f.jsx)("input",{id:"delete_"+t.id,type:"checkbox"})}),b.map((function(a,i){return Object(f.jsx)("td",{className:"table-padding table",children:Object(f.jsx)(ne,{lockSubmission:B,data:Y[a.name],callback:function(i){return function(e,t,a,i){var c;return $.patch(t.BACKENDURL+t.path,(c={},Object(j.a)(c,a.name,"null"===e?null:e),Object(j.a)(c,"id",i.id),Object(j.a)(c,"pass",t.password),c))}(i,e,a,t)},callback2:function(e,t){if("Enter"!==e.key)return"Chill";e.currentTarget.blur()},value:String(t[a.name])})},t.id+"_"+i)}))]},t.id)}))]})]})})})}function re(e){var t=Object(i.useState)(!0),a=Object(d.a)(t,2),s=a[0],n=a[1],l=Object(i.useState)(Object(f.jsx)("span",{style:{color:"black"}})),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)([]),h=Object(d.a)(o,2),u=h[0],O=h[1],p=Object(i.useState)(!0),S=Object(d.a)(p,2),v=S[0],N=S[1];return Object(i.useEffect)((function(){v&&($.get(e.BACKENDURL+"/databases?pass="+e.password).then((function(e){O(e.data)})).catch((function(e){console.log(e.message)})).then((function(){n(!1)})),N(!1))}),[v,e.BACKENDURL,e.password]),Object(f.jsxs)(f.Fragment,{children:[s?Object(f.jsx)("img",{src:"/spinner.gif",alt:""}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"navy"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Uploading Test Database to Production..."})),$.post(e.BACKENDURL+"/databases/testtolive",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Test Database is now live!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Apply TEST Database to LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"maroon"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Restoring Test Database using Live Database..."})),$.post(e.BACKENDURL+"/databases/livetotest",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been applied to the Test Database!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Reset TEST database using current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"darkgreen"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Backing up the Live database..."})),$.post(e.BACKENDURL+"/databases/backup",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been saved!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){N(!0)}))},children:"Backup current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{})]}),j,Object(f.jsx)("hr",{}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("h2",{children:Object(f.jsx)("u",{children:"Current Databases"})}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"green"}}),"Live Database"]}),"\xa0\xa0\xa0",Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"red"}}),"Test Database"]}),Object(f.jsx)("br",{}),u.map((function(t,a){var i="";if("ngsplanner"!==t.datname&&"ngsplanner2"!==t.datname){var s=t.datname.replace("ngsplanner",""),l=new Date(s.slice(0,4),s.slice(4,6),s.slice(6,8),s.slice(8,10),s.slice(10,12),s.slice(12,14));return i=Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)(x.a,{className:"databaseIcon",style:{color:"blue"}}),"Backup from "+l]}),Object(f.jsxs)(c.a.Fragment,{children:[Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[i,Object(f.jsxs)("button",{style:{background:"blue"},onClick:function(){n(!0),$.post(e.BACKENDURL+"/databases/restorefrombackup",{database:t.datname,pass:e.password}).then((function(e){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Database has been set to the state from "+l}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:[Object(f.jsx)(m.a,{})," Restore"]})]}),Object(f.jsx)("br",{})]},a)}return Object(f.jsx)(c.a.Fragment,{},a)}))]})}function je(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),s=a[0],n=a[1],l=Object(i.useState)(""),r=Object(d.a)(l,2),j=r[0],b=r[1],u=[{page:"Class",url:"/admin/class",table:"/class"},{page:"Class Data",url:"/admin/classdata",table:"/class_level_data"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data"},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill"},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data"},{hr:!0},{page:"Weapons",url:"/admin/weapons",table:"/weapon"},{page:"Weapon Existence Data",url:"/admin/weaponexistencedata",table:"/weapon_existence_data"},{page:"Weapon Types",url:"/admin/weapontypes",table:"/weapon_type"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data",duplicate:!0},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art"},{hr:!0},{page:"Armor",url:"/admin/armor",table:"/armor"},{page:"Potentials",url:"/admin/potentials",table:"/potential"},{page:"Potential Data",url:"/admin/potentialdata",table:"/potential_data"},{hr:!0},{page:"Builds",url:"/admin/builds",table:"/builds"},{hr:!0},{page:"Skills",url:"/admin/skills",table:"/skill"},{page:"Skill Types",url:"/admin/skilltypes",table:"/skill_type"},{page:"Skill Data",url:"/admin/skilldata",table:"/skill_data"},{page:Object(f.jsx)("span",{style:{color:"gold"},children:"Skill Tree Editor"}),url:"/admin/skilltreeeditor",render:Object(f.jsx)(y,{setUpdate:e.setUpdate,password:j,BACKENDURL:ie(e),GetData:e.DATA})},{page:"Skill Tree Data",url:"/admin/skilltreedata",table:"/skill_tree_data"},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art",duplicate:!0},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill",duplicate:!0},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data",duplicate:!0},{hr:!0},{page:"Augments",url:"/admin/augments",table:"/augment"},{page:"Augment Types",url:"/admin/augmenttypes",table:"/augment_type"},{hr:!0},{page:"Enemy Data",url:"/admin/enemydata",table:"/enemy_data"},{hr:!0},{page:"Food",url:"/admin/food",table:"/food"},{page:"Food Multipliers",url:"/admin/foodmultipliers",table:"/food_mult"},{hr:!0},{page:"Roles",url:"/admin/roles",table:"/roles"},{page:"Users",url:"/admin/users",table:"/users"},{hr:!0},{page:"Misc. Site Data",url:"/admin/sitedata",table:"/site_data"},{page:"Database Audit",url:"/admin/database_audit",table:"/database_audit"}];return Object(f.jsx)("div",{className:"adminMain",children:s?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsxs)("div",{className:"box boxAdminNav",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Navigation"})}),Object(f.jsxs)("p",{children:["Testing Mode ",Object(f.jsxs)("span",{children:[Object(f.jsx)(o.a,{checked:e.TESTMODE,onChange:function(t){e.setTESTMODE(t.target.checked)}})," ",e.TESTMODE?Object(f.jsx)("b",{children:"ON"}):Object(f.jsx)("b",{children:"OFF"})]})]}),Object(f.jsx)("div",{className:"adminNavContainer customScrollbar",children:Object(f.jsxs)(se,{classes:"adminNav",children:[u.map((function(e,t){return e.hr?Object(f.jsx)("hr",{},t):Object(f.jsxs)(c.a.Fragment,{children:[Object(f.jsx)(P.a,{to:""+e.url,children:e.page}),Object(f.jsx)("br",{})]},t)})),Object(f.jsx)(P.a,{to:"/admin/database_manager",children:"Database Manager"}),Object(f.jsx)("br",{})]})})]}),u.map((function(t,a){var i;return void 0===t.duplicate&&void 0===t.hr&&Object(f.jsx)(D.a,{path:""+t.url,children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:t.page})}),Object(f.jsxs)("div",{className:"adminContainer customScrollbar",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Admin Panel: "+t.page})}),null!==(i=t.render)&&void 0!==i?i:Object(f.jsx)(le,{TESTMODE:e.TESTMODE,password:j,BACKENDURL:ie(e),path:t.table})]})]})},a)})),Object(f.jsx)(D.a,{path:"/admin/database_manager",children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Database Editor"})}),Object(f.jsx)("div",{className:"adminContainer",children:Object(f.jsx)(re,{password:j,BACKENDURL:ie(e)})})]})})]}):Object(f.jsx)("div",{className:"modalOverlay",children:Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxAdmin",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Admin"})}),Object(f.jsx)("p",{}),Object(f.jsx)("input",{type:"password",value:j,onChange:function(e){b(e.currentTarget.value)},onKeyDown:function(t){"Enter"===t.key&&$.post(ie(e)+"/passwordcheck",{pass:j}).then((function(e){e.data.verified&&n(e.data.verified)})).catch((function(e){n(!1),b("")}))}})]})})})})}function de(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){s(e.value)}),[e.value]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("input",{value:c,onChange:function(t){s(t.currentTarget.value),e.callback(t.currentTarget.value)}})," (",c,")",Object(f.jsx)("br",{})]})}function be(e){var t=Object(i.useState)({}),a=Object(d.a)(t,2),c=a[0],s=a[1];Object(i.useEffect)((function(){$.get(e.BACKENDURL+"/augment").then((function(e){var t={};e.data.rows.forEach((function(e){t[e.name]=e})),s(t)}))}),[e.BACKENDURL]);var n={weapon:{augments:["1","2"]},armor1:{augments:["2"]},armor2:{augments:[]},armor3:{augments:[]}};Object(i.useEffect)((function(){if(Object.keys(c).length>0){for(var e=[{field:"variance",variable:0},{field:"mel_dmg",variable:0}],t=0,a=[n.weapon,n.armor1,n.armor2,n.armor3];t20)throw new Error("Username must be less than 21 characters in length.");if(j.length<6)throw new Error("Password must contain at least 6 characters.");if(j!==u)throw new Error("Password fields must match.");if(!m.includes("@"))throw new Error("Invalid E-mail.")}catch(a){var t;return z(null!==(t=null===a||void 0===a?void 0:a.message)&&void 0!==t?t:a),void A(!1)}$.post(ie(e)+"/register",{username:c,password:Z()(j),email:m}).then((function(t){t.data.verified?(e.setLOGGEDINUSER(c),e.setLOGGEDINHASH(Z()(j)),s(""),b(""),k(!1)):z("Could not authenticate!")})).catch((function(e){var t;z(null!==(t=null===e||void 0===e?void 0:e.message)&&void 0!==t?t:e)})).then((function(){A(!1)}))},children:"Login"})]})})})}var ge=function(){var e=Object(i.useState)("Dudley"),t=Object(d.a)(e,1)[0],a=Object(i.useState)("Fatimah"),c=Object(d.a)(a,1)[0],s=Object(i.useState)("Ranger"),n=Object(d.a)(s,1)[0],l=Object(i.useState)("Force"),r=Object(d.a)(l,1)[0],j=Object(i.useState)(20),b=Object(d.a)(j,1)[0],o=Object(i.useState)(15),u=Object(d.a)(o,1)[0],O=Object(i.useState)(1330),g=Object(d.a)(O,1)[0],x=Object(i.useState)(388),m=Object(d.a)(x,1)[0],p=Object(i.useState)(154),S=Object(d.a)(p,1)[0],v=Object(i.useState)(282),N=Object(d.a)(v,1)[0],k=Object(i.useState)(650),y=Object(d.a)(k,1)[0],P=Object(i.useState)(282),E=Object(d.a)(P,2),T=E[0],M=E[1];Object(i.useEffect)((function(){M(Number(N)+Number(y))}),[N,y]);var A=Object(i.useState)(932),Y=Object(d.a)(A,1)[0],X=Object(i.useState)(.317),_=Object(d.a)(X,1)[0],F=Object(i.useState)(.241),w=Object(d.a)(F,1)[0],R=Object(i.useState)(.241),G=Object(d.a)(R,1)[0],L=Object(i.useState)(.18),B=Object(d.a)(L,1)[0],I=Object(i.useState)(0),U=Object(d.a)(I,1)[0],W=Object(i.useState)(0),H=Object(d.a)(W,1)[0],K=Object(i.useState)(0),q=Object(d.a)(K,1)[0],V=Object(i.useState)(0),Q=Object(d.a)(V,1)[0],Z=Object(i.useState)(0),ee=Object(d.a)(Z,1)[0],ce=Object(i.useState)(0),se=Object(d.a)(ce,1)[0],ne=Object(i.useState)(0),le=Object(d.a)(ne,1)[0],re=Object(i.useState)(!1),de=Object(d.a)(re,2),oe=de[0],he=de[1],ge=Object(i.useState)(void 0),xe=Object(d.a)(ge,2),me=xe[0],pe=xe[1],fe=Object(i.useState)({GetData:function(){}}),Se=Object(d.a)(fe,2),ve=Se[0],Ne=Se[1],ke=Object(i.useState)(!1),ye=Object(d.a)(ke,2),De=ye[0],Ce=ye[1],Pe=Object(i.useState)(""),ze=Object(d.a)(Pe,2),Ee=ze[0],Te=ze[1],Me=Object(i.useState)(""),Ae=Object(d.a)(Me,2),Ye=Ae[0],Xe=Ae[1];function _e(e,t,a,i){void 0===t&&(t=""),void 0===a&&(a="");var c=i?ve:me;return c&&void 0!==c?void 0!==c[e]?void 0!==c[e][t]?void 0!==c[e][t][a]?c[e][t][a]:c[e][t]:c[e]:c:"no data"}return Object(i.useEffect)((function(){De&&(Ce(!1),$.get(ie({TESTMODE:oe})+"/data").then((function(e){pe(e.data)})),$.get(ie({TESTMODE:oe})+"/dataid").then((function(e){Ne(e.data)})))}),[De,oe]),Object(i.useEffect)((function(){$.get(ie({TESTMODE:oe})+"/data").then((function(e){pe(e.data)})),$.get(ie({TESTMODE:oe})+"/dataid").then((function(e){Ne(e.data)}))}),[oe]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)(C.a,{children:Object(f.jsxs)(D.c,{children:[Object(f.jsxs)(D.a,{path:"/admin",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Admin Panel"})}),Object(f.jsx)(je,{setUpdate:Ce,setTESTMODE:he,BACKENDURL:te,TESTMODE:oe,DATA:_e})]}),Object(f.jsxs)(D.a,{path:"/test",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"Test - "+ae})}),Object(f.jsx)(z,{}),Object(f.jsx)(J,{author:t,buildName:c,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:u,bp:g,hp:m,pp:S,def:Y,weaponUp1:_,weaponUp2:w,weaponUp3:G,damageResist:B,burnResist:U,shockResist:H,panicResist:q,stunResist:Q,freezeResist:ee,blindResist:se,poisonResist:le,statDisplayAtk:T,GetData:_e})]}),Object(f.jsxs)(D.a,{path:"/login",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Login"})}),Object(f.jsx)(z,{}),Object(f.jsx)(ue,{BACKENDURL:te,TESTMODE:oe,LOGGEDINUSER:Ee,LOGGEDINHASH:Ye,setLOGGEDINHASH:Xe,setLOGGEDINUSER:Te})]}),Object(f.jsxs)(D.a,{path:"/register",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Register"})}),Object(f.jsx)(z,{}),Object(f.jsx)(Oe,{BACKENDURL:te,TESTMODE:oe,LOGGEDINUSER:Ee,LOGGEDINHASH:Ye,setLOGGEDINHASH:Xe,setLOGGEDINUSER:Te})]}),Object(f.jsx)(D.a,{path:"/formula",children:Object(f.jsx)(be,{})}),Object(f.jsxs)(D.a,{path:"/",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae})}),Object(f.jsxs)("div",{className:"modalOverlaySplash",children:[Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxMisc",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:_e("site_data","h1","data")})}),Object(f.jsx)("h2",{children:_e("site_data","h2","data")}),Object(f.jsxs)("p",{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),_e("site_data","UNDER_CONSTRUCTION_TEXT","data")]}),Object(f.jsx)("br",{style:{clear:"both"}})]})}),Object(f.jsxs)("footer",{children:[Object(f.jsx)("a",{href:"https://github.com/sigonasr2/ngsplanner/",children:Object(f.jsx)("span",{className:"github",children:"\xa0"})}),Object(f.jsx)("a",{href:"https://twitter.com/ngsplanner",children:Object(f.jsx)("span",{className:"twitter",children:"@NGSPlanner"})})]})]})]})]})})})},xe=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,159)).then((function(t){var a=t.getCLS,i=t.getFID,c=t.getFCP,s=t.getLCP,n=t.getTTFB;a(e),i(e),c(e),s(e),n(e)}))};n.a.render(Object(f.jsx)(c.a.StrictMode,{children:Object(f.jsx)(ge,{})}),document.getElementById("root")),xe()},77:function(e,t,a){},78:function(e,t,a){},79:function(e,t,a){}},[[150,1,2]]]); +//# sourceMappingURL=main.a731f134.chunk.js.map \ No newline at end of file diff --git a/static/js/main.a731f134.chunk.js.map b/static/js/main.a731f134.chunk.js.map new file mode 100644 index 0000000..47db60e --- /dev/null +++ b/static/js/main.a731f134.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["skilltree/skillTree.js","skilltree/skillTreeSelector.js","skilltree/skillTreeEditor.js","TestHeader.js","DEFAULTS.js","components/ExpandTooltip.js","TestPanel.js","App.js","reportWebVitals.js","index.js"],"names":["SkillTree","p","canvasRef","useRef","useState","width","setWidth","height","setHeight","useEffect","gridSizeX","gridDimensionsX","gridPaddingX","gridSizeY","Math","ceil","gridDimensionsY","halflineheight","gridPaddingY","skillLines","context","current","getContext","clearRect","fillStyle","strokeStyle","lineWidth","setLineDash","lineDash","y","line","x","split","char","padX","padY","beginPath","moveTo","lineTo","stroke","fillRect","ref","style","className","children","SkillTreeSelector","GetData","skillList","setSkillList","cl","onChange","f","callback","currentTarget","value","Number","position","left","ADJUSTMENT","top","defaultValue","map","ch","skillCallback","skill","Object","keys","filter","class_id","id","name","SkillTreeEditor","useMemo","firstLoad","setFirstLoad","classList","setClassList","skillTreeData","setSkillTreeData","setCl","lineColor","setLineColor","setLineWidth","dimensionX","setDimensionX","dimensionY","setDimensionY","setGridSizeX","setGridSizeY","setGridPaddingX","setGridPaddingY","renderedInputs","setRenderedInputs","skillLinesTemp","setSkillLinesTemp","setSkillLines","skillData","setSkillData","message","setMessage","loading","setLoading","setHalfLineHeight","GetSkills","useCallback","filtered","length","undefined","found","data","skill_data","line_color","line_width","gridsizex","gridsizey","gridpaddingx","gridpaddingy","skillTreeString","push","repeat","controls","string","stringLine","newSkillData","s","join","newSkill","src","alt","htmlFor","isNaN","c","onClick","axios","post","BACKENDURL","pass","password","slice","str","then","color","setUpdate","catch","err","control","i","Fragment","type","TestHeader","href","DisplayIcon","icon","process","ExpandTooltip","data-tip","data-tip-disable","tooltip","data-for","overridePosition","currentEvent","node","d","document","documentElement","min","clientWidth","clientHeight","max","EditBox","timer1","setTimeout","getElementById","focus","select","clearTimeout","edit","onKeyDown","e","key","setEdit","maxLength","maxlength","onBlur","setName","originalName","EditBoxInput","setData","prefix","PageControlButton","onPageChange","pageName","setCurrentPage","page","currentPage","pageDisplay","PageControl","pages","pageNames","Class","CLASSES","class_obj","EditableClass","setClassNameSetter","editClass","setClassSelectWindowOpen","PopupWindow","ariaHideApp","isOpen","modalOpen","onRequestClose","setModalOpen","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldCloseOnEsc","overlayClassName","title","showCloseButton","setPage","SelectorWindow","onModalOpen","itemList","setItemList","tabPage","setTabPage","sortItems","sortSelector","setSortSelector","setFilter","dataFunction","item","placeholder","filterFunction","searchFieldFunction","sort","a","b","sortOrderFunction","displayFunction","LeftButton","RightButton","ClassSelectorWindow","setTitle","setEditClass","pageSetter","dat1","class","subClass","setClassName","setSubClassName","GetSpecialWeaponName","special_name","SkillBox","gridArea","String","fromCharCode","charCodeAt","skillPointData","boxId","maxPoints","temp","points","tempData","setPoints","setSkillPointData","SkillTreeBoxes","GetHighestLevel","skillInfo","highestLevel","class_skill_id","level","skillTreeSkillData","splitter","numb","SkillTreeContainer","setSkillTreeSkillData","skillTreeLineColor","setSkillTreeLineColor","skillTreeLineWidth","setSkillTreeLineWidth","skillTreeDimensionX","setSkillTreeDimensionX","skillTreeDimensionY","setSkillTreeDimensionY","skillTreeGridSizeX","setSkillTreeGridSizeX","skillTreeGridSizeY","setSkillTreeGridSizeY","skillTreeGridPaddingX","setSkillTreeGridPaddingX","skillTreeGridPaddingY","setSkillTreeGridPaddingY","skillTree","TestPanel","bpGraphMax","setbpGraphMax","hpGraphMax","sethpGraphMax","ppGraphMax","setppGraphMax","atkGraphMax","setatkGraphMax","defGraphMax","setdefGraphMax","author","setauthor","buildName","setbuildName","subclassName","setLevel","secondaryLevel","setsecondaryLevel","effectPage","setEffectPage","weaponPage","setWeaponPage","statPage","setStatPage","classSelectWindowOpen","classSkillTreeWindowOpen","setClassSkillTreeWindowOpen","treePage","setTreePage","weaponSelectWindowOpen","setWeaponSelectWindowOpen","armorSelectWindowOpen","setArmorSelectWindowOpen","selectedWeapon","setSelectedWeapon","selectedArmor1","setSelectedArmor1","selectedArmor2","setSelectedArmor2","selectedArmor3","setSelectedArmor3","armorSlotSelection","setArmorSlotSelection","classNameSetter","rarityCheck","v","rarity","bp","pointsArr","pointsDataArr","textAlign","background","hp","pp","statDisplayAtk","def","weaponUp1","toFixed","weaponUp3","weaponUp2","burnResist","shockResist","panicResist","stunResist","freezeResist","blindResist","poisonResist","damageResist","saveObj","weaponId","armor1Id","armor2Id","armor3Id","console","log","SaveData","Array","isArray","weapon_existence_data","weapon_type","weapon_type_id","weapon","weapon_id","potential","potential_id","potential_all","potential_tooltip","pot","includes","searchText","toLowerCase","itemA","itemB","atk","description","it","ii","armor","slot","mel_dmg","rng_dmg","tec_dmg","require","parse","REACT_APP_GITPOD_WORKSPACE_URL","REACT_APP_BACKENDURL","APP_TITLE","GetBackendURL","TESTMODE","Box","Table","classes","InputBox","setValue","failed","setFailed","sending","setSending","changeFunc","callback4","blurFunc","callback3","keydownFunc","callback2","disabled","lockSubmission","includeBlankValue","username","TableEditor","initialVals","fields","setFields","update","useReducer","state","field","submitVals","setSubmitVal","dependencies","setDependencies","importAllowed","setImportAllowed","setLockSubmission","path","dependency_map","get","cols","rows","col","promise_list","forEach","replace","Promise","allSettled","reader","FileReader","onload","ev","promises","target","result","columns","skip_empty_lines","entry","dataTypeID","readAsText","files","opacity","accept","dat","checked","delete","alert","SubmitDeletion","scope","display","JSON","stringify","response","patch","patchValue","blur","DatabaseEditor","databases","setDatabases","backgroundColor","fontSize","lineHeight","db","label","datname","dateStr","date","Date","database","AdminPanel","verified","setVerified","setPassword","navigationData","url","table","hr","duplicate","render","DATA","setTESTMODE","nav","to","Helmet","EditStatBox","DamageCalculator","augmentData","setAugmentData","character","augments","armor1","armor2","armor3","searchFields","variable","equip","variance","setAugDmgVariance","rawDmg","setRawDmg","weaponTotalAtk","setWeaponTotalAtk","weaponBaseAtk","setWeaponBaseAtk","weaponEnhanceLv","setweaponEnhanceLv","dmgVariance","setDmgVariance","weaponDmgVariance","setWeaponDmgVariance","augDmgVariance","baseAtk","setBaseAtk","enemyDef","setEnemyDef","multipliers","setMultipliers","atkmult","setAtkMult","partmult","setPartMult","elementalWeaknessMult","setElementalWeaknessMult","mainClassWeaponBoost","setMainClassWeaponBoost","classSkillMult","setClassSkillMult","equipMult","setEquipMult","augmentEquipMult","setAugmentEquipMult","potencyFloorEquipMult","setPotencyFloorEquipMult","elementalWeaponEquipMult","setElementalWeaponEquipMult","critMult","setCritMult","appropriateDistance","setAppropriateDistance","foodBoost","setFoodBoost","fieldEffects","setFieldEffects","statusAilments","setStatusAilments","enemyCorrectionMult","setEnemyCorrectionMult","highLevelEnemy","setHighLevelEnemy","val","FormField","for","VerifyLogin","LOGGEDINUSER","LOGGEDINHASH","history","LoginForm","setUsername","rememberMe","setRememberMe","error","setError","useHistory","SubmitLogin","md5","setLOGGEDINUSER","setLOGGEDINHASH","marginTop","RegisterForm","password2","setPassword2","email","setEmail","Error","App","secondaryClassName","classLv","secondaryClassLv","setstatDisplayAtk","setDATA","DATAID","setDATAID","row","clear","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.a731f134.chunk.js","sourcesContent":["import { useRef,useEffect,useState } from 'react';\n\nfunction SkillTree(p) {\n const canvasRef = useRef(null)\n const [width,setWidth] = useState(0)\n const [height,setHeight] = useState(0)\n \n useEffect(() => {\n setWidth(p.gridSizeX*p.gridDimensionsX+p.gridPaddingX*(p.gridDimensionsX-1))\n setHeight(p.gridSizeY*Math.ceil(p.gridDimensionsY/2)+p.halflineheight*Math.ceil((p.gridDimensionsY-1)/2)+p.gridPaddingY*(p.gridDimensionsY-1))\n }, [p.halflineheight,p.skillLines,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.gridDimensionsX,p.gridDimensionsY])\n\n useEffect(()=>{\n const canvas = canvasRef.current\n const context = canvas.getContext('2d')\n context.clearRect(0,0,width,height)\n context.fillStyle = 'rgba(100,100,100,0.5)'\n context.strokeStyle=p.strokeStyle\n context.lineWidth=p.lineWidth //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth\n context.setLineDash(p.lineDash) //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash\n var y=0\n for (var line of p.skillLines) {\n var x=0\n for (var char of line.split('')) {\n var padX = x!==0?p.gridPaddingX*x:0\n var padY = y!==0?p.gridPaddingY*y:0\n switch (char) {\n case \"─\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"│\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"└\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┌\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┘\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┐\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"├\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┤\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┬\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┴\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┼\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"□\":context.clearRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);context.fillRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);break;\n default:\n }\n x++\n }\n y++\n }\n },[width,height,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.lineDash,p.lineWidth,p.skillLines,p.strokeStyle,p.halflineheight])\n \n return {p.children}\n}\n\nexport {SkillTree}","import { useEffect, useState } from 'react'\n\nfunction SkillTreeSelector(p) {\n\n const { GetData } = p\n\n const [skillList,setSkillList] = useState([])\n\n useEffect(()=>{\n setSkillList(GetData(\"class_skill\"))\n },[p.cl,GetData])\n\n return <>\n \n {p.defaultValue==='□'&&}\n \n\n} \n\nexport {SkillTreeSelector}","import { SkillTree } from \"./skillTree\";\nimport React, { useEffect,useState,useMemo,useCallback } from \"react\";\nimport { SkillTreeSelector } from \"./skillTreeSelector\";\nimport axios from \"axios\";\n\nfunction SkillTreeEditor(p) {\n const { GetData } = p\n\n const ADJUSTMENT = useMemo(()=>[-32,32],[])\n\n const [firstLoad,setFirstLoad] = useState(true)\n\n const [classList,setClassList] = useState({})\n const [skillTreeData,setSkillTreeData] = useState({})\n const [cl,setCl] = useState(-1)\n const [lineColor,setLineColor] = useState(\"#000000\")\n const [lineWidth,setLineWidth] = useState(3)\n const [dimensionX,setDimensionX] = useState(6)\n const [dimensionY,setDimensionY] = useState(6)\n const [gridSizeX,setGridSizeX] = useState(80)\n const [gridSizeY,setGridSizeY] = useState(60)\n const [gridPaddingX,setGridPaddingX] = useState(10)\n const [gridPaddingY,setGridPaddingY] = useState(10)\n const [renderedInputs,setRenderedInputs] = useState([])\n const [skillLinesTemp,setSkillLinesTemp] = useState([])\n const [skillLines,setSkillLines] = useState([])\n const [skillData,setSkillData] = useState([])\n const [message,setMessage] = useState(\"\")\n const [loading,setLoading] = useState(false)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n const GetSkills = useCallback((x,y)=>{\n var filtered = skillData.filter((skill)=>Number(skill.split(\",\")[0])===Number(x)&&Number(skill.split(\",\")[1])===Number(y))\n if (filtered.length>0) {\n return filtered[0]\n } else {\n return \"\"\n }\n },[skillData])\n\n function SaveSkillTrees() {\n axios.post(p.BACKENDURL+\"/saveskilltree\",{\n pass:p.password,\n data:skillLines.slice(0,dimensionY).map((str)=>str.slice(0,dimensionX)).join(','),\n skill_data:skillData.join(';'),\n line_color:lineColor,\n line_width:lineWidth,\n gridsizex:gridSizeX,\n gridsizey:gridSizeY,\n gridpaddingx:gridPaddingX,\n gridpaddingy:gridPaddingY,\n halflineheight:halflineheight,\n class_id:cl\n })\n .then((data)=>{\n if (data.data===\"OK!\") {\n setMessage({\"Successfully saved skill tree for \"+p.GetData(\"class\",undefined,undefined,true)[cl].name+\"!\"})\n p.setUpdate(true)\n }\n })\n .catch((err)=>{\n setMessage({err.message})\n })\n .then(()=>{\n setLoading(false)\n })\n }\n\n useEffect(()=>{\n setClassList(GetData(\"class\",undefined,undefined,true))\n setSkillTreeData(GetData(\"skill_tree_data\",undefined,undefined,true))\n },[GetData])\n\n useEffect(()=>{\n var keys = Object.keys(skillTreeData)\n var found = false\n for (var id of keys) {\n //console.log(cl+\"/\"+skillTreeData[id].class_id)\n if (Number(skillTreeData[id].class_id)===Number(cl)) {\n var data = skillTreeData[id].data?.split(',')\n var skill = skillTreeData[id].skill_data?.split(';')\n setSkillLinesTemp(data)\n setSkillData(skill)\n setDimensionX(data[0].length)\n setDimensionY(data.length)\n setLineColor(skillTreeData[id].line_color)\n setLineWidth(skillTreeData[id].line_width)\n setGridSizeX(skillTreeData[id].gridsizex)\n setGridSizeY(skillTreeData[id].gridsizey)\n setGridPaddingX(skillTreeData[id].gridpaddingx)\n setGridPaddingY(skillTreeData[id].gridpaddingy)\n setHalfLineHeight(skillTreeData[id].halflineheight)\n found=true\n }\n }\n if (!found) {\n setSkillLinesTemp([])\n setSkillData([])\n setDimensionX(6)\n setDimensionY(6)\n }\n },[skillTreeData,cl])\n\n useEffect(()=>{\n if (firstLoad) {\n setCl(Number(Object.keys(classList)[0]))\n setFirstLoad(false)\n }\n },[classList,firstLoad])\n\n useEffect(()=>{\n var skillTreeString = [...skillLinesTemp]\n\n while (skillTreeString.length{\n var controls = []\n for (var y=0;y{\n var string = [...skillLines]\n var stringLine = string[y].split('')\n var newSkillData = [...skillData]\n stringLine[x] = char\n if (char!==\"□\") {\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=\"\"\n setSkillData(newSkillData)\n break;\n }\n }\n }\n string[y] = stringLine.join('')\n setSkillLinesTemp(string)\n }\n } skill={GetSkills(x,y)} skillCallback={(x,y,skill)=>{\n var newSkillData = [...skillData]\n var found=false\n var newSkill = x+\",\"+y+\",\"+skill\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=newSkill\n found=true\n break;\n }\n }\n if (!found) {\n newSkillData.push(newSkill)\n }\n setSkillData(newSkillData)\n }} ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY} halflineheight={halflineheight}/>)\n }\n }\n }\n setRenderedInputs(controls)\n },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX,skillData,halflineheight,GetData,ADJUSTMENT,GetSkills])\n\n return <>\n {loading?\"\"/:<>\n

{message}

\n \n
\n
\n {p.GetData(\"class\",undefined,undefined,true)[cl]?.name&&}\n
\n \n {renderedInputs.map((control,i)=>{control})}\n
\n
\n
\n {setLineColor(f.currentTarget.value)}}/>
\n {setLineWidth(f.currentTarget.value)}}/>
\n {setDimensionX(f.currentTarget.value)}}/>
\n {setDimensionY(f.currentTarget.value)}}/>
\n {setHalfLineHeight(f.currentTarget.value)}}/>
\n {setGridSizeX(f.currentTarget.value)}}/>
\n {setGridSizeY(f.currentTarget.value)}}/>
\n {setGridPaddingX(f.currentTarget.value)}}/>
\n {setGridPaddingY(f.currentTarget.value)}}/>
\n\n
}\n \n}\n\nexport {SkillTreeEditor}","import React from 'react';\n\nfunction TestHeader() {\n return ( \n
\n \n
\n )\n }\n\nexport default TestHeader;","const NICONICONII = process.env.PUBLIC_URL+\"/icons/nicodotpng.png.png\"\n\nfunction DisplayIcon(icon) {\n //console.log(icon)\n return icon&&icon.length>0?process.env.PUBLIC_URL+icon:NICONICONII\n}\n\nexport {NICONICONII,DisplayIcon};","import ReactTooltip from 'react-tooltip' //https://wwayne.github.io/react-tooltip/\n\nfunction ExpandTooltip(p) {\n\n\treturn <>{p.children} {\n const d = document.documentElement;\n left = Math.min(d.clientWidth - node.clientWidth, left);\n top = Math.min(d.clientHeight - node.clientHeight, top);\n left = Math.max(0, left);\n top = Math.max(0, top);\n return { top, left }\n} }>{p.tooltip}\n}\n\nexport {ExpandTooltip}","import React, { useEffect,useState } from 'react';\nimport Modal from 'react-modal'\nimport { DisplayIcon } from './DEFAULTS';\nimport { ExpandTooltip } from './components/ExpandTooltip';\nimport { SkillTree } from './skilltree/skillTree';\n\n//Helper variables for Weapon selector with structure: [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\nconst WEAPON_WEAPONTYPE=0;const WEAPON_WEAPON=1;const WEAPON_POTENTIAL=2;const WEAPON_POTENTIAL_TOOLTIP=3;const WEAPON_EXISTENCE_DATA=4;\n\nfunction EditBox(p) {\n\tuseEffect(()=>{\n\t\tvar timer1 = setTimeout(()=>{\n document.getElementById(\"editBoxInput\").focus()\n document.getElementById(\"editBoxInput\").select()\n },100)\n\t\treturn () => {\n\t\t\tclearTimeout(timer1);\n\t\t};\n\t},[p.edit])\n\treturn {\n\t\tif (e.key===\"Enter\") {p.setEdit(false)}\n\t\telse if (e.key===\"Escape\") {p.setEdit(false)}\n\t}}\tmaxLength={p.maxlength?p.maxlength:20} onBlur={()=>{p.setEdit(false)}} value={p.value} onChange={(f)=>{f.currentTarget.value.length>0?p.setName(f.currentTarget.value):p.setName(p.originalName)}}>\n\t\n}\n\nfunction EditBoxInput(p) {\n\tconst [edit,setEdit] = useState(false)\n\t\n\tuseEffect(()=>{\n\t\tif (p.callback) {\n\t\t\tp.callback()\n\t\t}\n\t},[edit,p])\n\t\n\treturn <>\n\t\t
{setEdit(true)}}>\n\t\t\t{edit?\n\t\t\t\n\t\t\t:<>{p.prefix}{p.data}}\n\t\t
\n\t\n}\n\nfunction PageControlButton(p) {\n\treturn
  • {if (p.onPageChange) {p.onPageChange(p.pageName)} p.setCurrentPage(p.page)}} className={(p.currentPage===p.page)?\"selected\":\"unselected\"}>{p.pageDisplay?p.pageDisplay[p.page-1]:p.pageName?p.pageName:p.page}
  • \n}\n\nfunction PageControl(p) {\n\tvar pages = []\n\tfor (var i=0;i)\n\t}\n if (p.children!==undefined) {\n pages.push(
  • {p.children}
  • )\n }\n //console.log(JSON.stringify(p.children))\n\treturn pages.length>0&&
      \n\t\t\t{pages.map((page,i)=>{return {page}})}\n\t\t
    \n}\n\nfunction Class(p) {\n const CLASSES = p.GetData(\"class\")\n\tconst class_obj = CLASSES[p.name]\n\treturn CLASSES!==\"no data\"?class_obj?<>\"\"{class_obj.name}:<>:<>\"\"Nico\n}\n\nfunction EditableClass(p){\n\treturn <>
    {p.setClassNameSetter(p.editClass);p.setClassSelectWindowOpen(true)}}>\n\t
    \n\t\n}\n\nfunction PopupWindow(p) {\n\n\treturn {p.setModalOpen(false)}} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n
    \n
    \n

    {p.title}

    \n {p.showCloseButton&&
    {p.setModalOpen(false)}}>
    }\n
    \n \n \n {p.children}\n
    \n\t
    \n}\n\nfunction SelectorWindow(p) {\n\n const { onModalOpen } = p\n\n const [itemList,setItemList] = useState([])\n\n const [tabPage,setTabPage] = useState(1)\n const [sortSelector,setSortSelector] = useState(p.sortItems?p.sortItems[0]:\"\")\n const [filter,setFilter] = useState(\"\")\n \n useEffect(()=>{\n if (p.dataFunction) {\n setItemList(p.dataFunction())\n }\n },[p])\n\n useEffect(()=>{\n if (onModalOpen) {\n onModalOpen(setTabPage)\n }\n },[onModalOpen])\n \n return \n {(p.sortItems||p.filter)&&
    \n
    \n {p.sortItems&&}\n
    \n
    \n {p.filter?{setFilter(f.currentTarget.value)}} />:<>}\n
    \n
    \n }\n
    \n
      \n {p.filter?itemList.filter((item)=>p.filterFunction(tabPage,item)).filter((item)=>p.searchFieldFunction(filter,item)).sort((a,b)=>p.sortOrderFunction(sortSelector,a,b)).map((item,i)=>{p.displayFunction(item)}):itemList.map((item,i)=>{p.displayFunction(item)})}\n {p.children}\n
    \n
    \n
    \n}\n\nfunction LeftButton(p){\n\treturn \n \n}\n\nfunction RightButton(p){\n\treturn \n \n}\nfunction ClassSelectorWindow(p) {\n const [title,setTitle] = useState(\"Select Main Class\")\n useEffect(()=>{\n setTitle((p.editClass)?\"Select Sub Class\":\"Select Main Class\")\n },[p.editClass])\n return {\n if (page===\"Main Class\") {\n p.setEditClass(0)\n } else {\n p.setEditClass(1)\n }\n }}\n onModalOpen={(pageSetter)=>{\n pageSetter((p.editClass)?2:1)\n }}\n dataFunction={() => {\n var dat1 = p.GetData(\"class\")\n return Object.keys(dat1)\n }\n }\n displayFunction={(key) => {\n return
  • {if (p.editClass===0){p.setClassName(key);p.setSubClassName(p.subClass===key?p.class:p.subClass)}else{p.setSubClassName(key);p.setClassName(p.class===key?p.subClass:p.class)}; p.setModalOpen(false) }}>\"\" {p.GetData(\"class\", key, \"name\")}
  • \n }}\n/>\n}\n\nfunction GetSpecialWeaponName(item) {\n return item[WEAPON_EXISTENCE_DATA]!==undefined?(item[WEAPON_EXISTENCE_DATA].special_name?.length>0)?item[WEAPON_EXISTENCE_DATA].special_name:(item[WEAPON_WEAPON].name+\" \"+item[WEAPON_WEAPONTYPE].name):\"\"\n}\n\nfunction ConvertCoordinate(x,y) {\n return (String.fromCharCode(Number(x)+'a'.charCodeAt(0)))+(y/2+1);\n}\n\nfunction SkillBox(p) {\n return
    \"\"{(p.skillPointData[p.page-1][p.boxId]?p.skillPointData[p.page-1][p.boxId]:0)+\"/\"+p.maxPoints}{typeof p.GetData(\"class_skill\",p.skill[2],\"name\",true)===\"string\"&&p.GetData(\"class_skill\",p.skill[2],\"name\",true)}
    \n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId]>0) {\n temp[p.page-1]-=1\n tempData[p.page-1][p.boxId]-=1\n p.setPoints(temp)\n p.setSkillPointData(tempData)\n }}}/>\n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n if (!tempData[p.page-1][p.boxId]) {\n tempData[p.page-1][p.boxId]=0\n }\n if (tempData[p.page-1][p.boxId]
    \n}\n\nfunction SkillTreeBoxes(p) {\n\n function GetHighestLevel(skill) {\n var skillInfo = Object.keys(p.GetData(\"class_skill_data\"))\n var highestLevel = 0\n for (var i=0;ihighestLevel) {\n highestLevel=skillData.level\n }\n }\n return highestLevel\n }\n\n function isLocked(skill) {\n return false\n }\n\n return <>\n {p.skillTreeSkillData&&p.skillTreeSkillData.map((skill,i)=>{\n var splitter = skill.split(\",\")\n return splitter[0]!==\"\"&&splitter[1]!==\"\"&&splitter[2]!==\"\"&&0?\"skillActive\":\"\"} boxId={splitter[0]+\"_\"+splitter[1]} skillPointData={p.skillPointData} setSkillPointData={p.setSkillPointData} page={p.page} cl={p.cl} maxPoints={GetHighestLevel(splitter[2])} points={p.points} setPoints={p.setPoints} GetData={p.GetData} skill={splitter.map((numb)=>Number(numb))}/>\n })}\n \n}\n\nfunction SkillTreeContainer(p){\n\n const { GetData } = p\n\n const [skillTreeData,setSkillTreeData] = useState([])\n const [skillTreeSkillData,setSkillTreeSkillData] = useState([])\n const [skillTreeLineColor,setSkillTreeLineColor] = useState(\"\")\n const [skillTreeLineWidth,setSkillTreeLineWidth] = useState(3)\n const [skillTreeDimensionX,setSkillTreeDimensionX] = useState(6)\n const [skillTreeDimensionY,setSkillTreeDimensionY] = useState(6)\n const [skillTreeGridSizeX,setSkillTreeGridSizeX] = useState(171)\n const [skillTreeGridSizeY,setSkillTreeGridSizeY] = useState(148)\n const [skillTreeGridPaddingX,setSkillTreeGridPaddingX] = useState(10)\n const [skillTreeGridPaddingY,setSkillTreeGridPaddingY] = useState(48)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n useEffect(()=>{\n if (Object.keys(GetData(\"skill_tree_data\")).length>1) {\n for (var skillTree of GetData(\"skill_tree_data\")) {\n if (skillTree.class_id===GetData(\"class\",p.cl,'id')) {\n var data = skillTree.data.split(\",\")\n var skillData = skillTree.skill_data.split(\";\")\n setSkillTreeData(data)\n setSkillTreeSkillData(skillData)\n setSkillTreeLineColor(skillTree.line_color)\n setSkillTreeLineWidth(skillTree.line_width)\n setSkillTreeDimensionX(data[0].length)\n setSkillTreeDimensionY(data.length)\n setSkillTreeGridSizeX(skillTree.gridsizex)\n setSkillTreeGridSizeY(skillTree.gridsizey)\n setSkillTreeGridPaddingX(skillTree.gridpaddingx)\n setSkillTreeGridPaddingY(skillTree.gridpaddingy)\n setHalfLineHeight(skillTree.halflineheight)\n break;\n }\n }\n }\n },[p.cl,GetData])\n\n return
    \n
    \n {}\n
    \n \n
    \n
    \n
    \n}\n\nfunction TestPanel(p) {\n\nconst { GetData } = p\n\nconst [bpGraphMax,setbpGraphMax] = useState(1000)\nconst [hpGraphMax,sethpGraphMax] = useState(1000)\nconst [ppGraphMax,setppGraphMax] = useState(1000)\nconst [atkGraphMax,setatkGraphMax] = useState(1000)\nconst [defGraphMax,setdefGraphMax] = useState(1000)\n\nconst [author,setauthor] = useState(\"Player\")\nconst [buildName,setbuildName] = useState(\"Character\")\nconst [className,setClassName] = useState(\"Ranger\")\nconst [subclassName,setSubClassName] = useState(\"Force\")\nconst [level,setLevel] = useState(20)\nconst [secondaryLevel,setsecondaryLevel] = useState(20)\n\nconst [effectPage,setEffectPage] = useState(1)\nconst [weaponPage,setWeaponPage] = useState(1)\nconst [statPage,setStatPage] = useState(1)\n\nconst [classSelectWindowOpen,setClassSelectWindowOpen] = useState(false)\nconst [classSkillTreeWindowOpen,setClassSkillTreeWindowOpen] = useState(false)\nconst [treePage,setTreePage] = useState(1)\nconst [weaponSelectWindowOpen,setWeaponSelectWindowOpen] = useState(false)\nconst [armorSelectWindowOpen,setArmorSelectWindowOpen] = useState(false)\n\nconst [selectedWeapon,setSelectedWeapon] = useState([])\nconst [selectedArmor1,setSelectedArmor1] = useState([])\nconst [selectedArmor2,setSelectedArmor2] = useState([])\nconst [selectedArmor3,setSelectedArmor3] = useState([])\nconst [armorSlotSelection,setArmorSlotSelection] = useState(1)\n\nconst [classNameSetter,setClassNameSetter] = useState(0)\n\nconst [points,setPoints] = useState([])\nconst [skillPointData,setSkillPointData] = useState([])\n\nfunction SaveData() {\n var saveObj = {\n author:author,\n buildName:buildName,\n className:className,\n subclassName:subclassName,\n level:level,\n secondaryLevel:secondaryLevel,\n weaponId:selectedWeapon[WEAPON_WEAPON].id,\n armor1Id:selectedArmor1.id,\n armor2Id:selectedArmor2.id,\n armor3Id:selectedArmor3.id,\n points:points,\n skillPointData:skillPointData\n }\n console.log(saveObj)\n}\n\nfunction rarityCheck(v) {\n return v!==undefined?v.rarity!==undefined?\" r\"+v.rarity:\"\":\"\"\n}\n\nuseEffect(()=>{\n if (p.bp>1000) {\n setbpGraphMax(3000)\n sethpGraphMax(3000)\n setppGraphMax(3000)\n setatkGraphMax(3000)\n setdefGraphMax(3000)\n } else {\n setbpGraphMax(1000)\n sethpGraphMax(1000)\n setppGraphMax(1000)\n setatkGraphMax(1000)\n setdefGraphMax(1000)\n }\n},[p.bp]) \n\nuseEffect(()=>{\n var keys = Object.keys(GetData(\"class\"))\n var pointsArr = []\n var pointsDataArr = []\n for (var i=0;i\n
    \n
    \n
    \n
    \n

    Basic Information

    \n
    \n
    Author
    \n
    Build Name
    \n
    {setClassSelectWindowOpen(true)}}>Class
    \n
    {setClassSkillTreeWindowOpen(true)}}>Sub-Class
    \n
    \n
    \n
    Battle Power
    {p.bp}
     
    \n
    HP
    {p.hp}
     
    \n
    PP
    {p.pp}
     
    \n
    Attack
    {p.statDisplayAtk}
     
    \n
    Defense
    {p.def}
     
    \n\n
    Weapon Up
    \n
    \"\" +{(p.weaponUp1*100).toFixed(1)}%
    \n\"\" +{(p.weaponUp3*100).toFixed(1)}%
    \n
    \"\" +{(p.weaponUp2*100).toFixed(1)}%
    \n\n
    Ailment Resist.
    \n
    \n \"\" {(p.burnResist*100).toFixed(1)}%
    \n \"\" {(p.shockResist*100).toFixed(1)}%
    \n \"\" {(p.panicResist*100).toFixed(1)}%
    \n \"\" {(p.stunResist*100).toFixed(1)}%
    \n
    \n
    \n \"\" {(p.freezeResist*100).toFixed(1)}%
    \n \"\" {(p.blindResist*100).toFixed(1)}%
    \n \"\" {(p.poisonResist*100).toFixed(1)}%
    \n
    \n\n
    Damage Resist.
    {(p.damageResist*100).toFixed(1)}%
    \n\n
    \n
    \n
    \n
    \n

    Current Effects

    \n \n {effectPage===1?<>

    Effect Name

    • Food Boost Effect\n \n \n \n
        \n
      • \"\" [Meat] Potency +10.0%
      • \n
      • \"\" [Crisp] Potency to Weak Point +5.0%
      • \n
      \n
    • \n
    • Shifta / Deband\n
        \n
      • \"\" Potency +5.0%
      • \n
      • \"\" Damage Resistance +10.0%
      • \n
      \n
    • \n
    • Region Mag Boost\n
        \n
      • \"\" Potency +5.0%
      • \n
      \n
    :<>\n }\n
    \n
    \n
    \n
    \n
    \n

    Equip

    \n
    \n
    {setWeaponSelectWindowOpen(true)}} className=\"equipPaletteSlot\">

    Weapons

    1\"\"
    \n
    {setArmorSlotSelection(1);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor1)}>

    Armor 1

    \"\"
    \n
    {setArmorSlotSelection(2);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor2)}>

    Armor 2

    \"\"
    \n
    {setArmorSlotSelection(3);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor3)}>

    Armor 3

    \"\"
    \n
    \n
    \n\n
    \n
    \n

    Equipped Weapon

    \n

    {GetSpecialWeaponName(selectedWeapon)}+40

    \n Edit Details\n {weaponPage === 1 ?\n\n<>\n
    \n
    \"\"
    \n
    \nRARITY
    \nATTACK
    \nELEMENT
    \nEQUIP CONDITIONS
    \nNOT TRADABLE\n
    \n
    \n\nPOTENTIAL PRESET SKILL\nAUGMENT \n\n\n\n
    \n
    \n\n\n\n\n\n :weaponPage === 3 ?\n
    \n
    \n

    Ability Details

    \n
      \n
    • \"\"Potency +20%/
      Critical Hit Rage +15% for 30 seconds after a successful sidestep
      Dynamo Unit Lv.3
    • \n
    • \"\"Potency +4%
      Fixa Attack Lv.3
    • \n
    • \"\"PP +5
      Ranged Weapon Potency +2.0%
      Pettas Soul II
    • \n
    • \"\"HP -10, Potency +1.5%,
      Potency Floor Increase +1.5%
      Damage Resistance -1.5%
      Alts Secreta II
    • \n
    • \"\"HP +10
      Ranged Weapon Potency +2.0%
      Gigas Precision II
    • \n
    • \"\"Ranged Weapon Potency +2.0%
      Precision III
    • \n
    • \"\"
    • \n
    \n
    \n
    \n

    Stat Adjustment

    \n
      \n
    • Enhancement Lv. +35
    • \n
    • Multi-Weapon -
    • \n
    • Element -
    • \n
    \n
    \n
    \n :\n <>hi2\n }\n\n\n
    \n\n\n\n\n
    \n
    \n

    To Do List

    \n
    \n
    UI
    \n
    Grids. Grids everywhere.
    \n
    Finish \"Item Details\" for Weapons/Armor
    \n
    Class Skill Window - Make it Scale
    \n
    PA Selector
    \n
    Food/Buffs Menu
    \n
    Get all the fckn icons
    \n
    Functionality
    \n
    Food/Buffs Menu
    \n
    PA Selector
    \n
    fOrMuLaS
    \n
    Data
    \n
    PA Selector
    \n
    Skill Trees
    \n
    \n
    \n\n\n\n\n\n\n\n\n
    \n
    \n
    \n
    \n

    Damage Stats

    \n \n \n \n {statPage===1?<>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n :<>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n
    Critical Hit Rate5%
    Critical Multiplier120%
    Midrange126
    Critical152
    Effective127
    Critical Hit Rate-
    Critical Multiplier-
    Midrange-
    Critical-
    Effective-
    \n
    \n
    \n
    \n\n\n { setClassSkillTreeWindowOpen(false) }} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n
    \n
    \n

    Class Skill Tree

    \n
    { setClassSkillTreeWindowOpen(false) }}>
    \n
    \n cl)} pageDisplay={Object.keys(p.GetData(\"class\")).map((cl)=><>\"\" {cl})} currentPage={treePage} setCurrentPage={setTreePage} />\n \n
    \n
    Your Skill Points{20-points[treePage-1]}
    \n
    SP{points[treePage-1]}
    \n
    \n
    ConfirmCancel
    \n
    \n
    \n\n{\n var dat1=p.GetData(\"weapon_existence_data\")\n return Array.isArray(dat1)?dat1.map((weapon_existence_data)=>{\n var weapon_type=p.GetData(\"weapon_type\",weapon_existence_data.weapon_type_id,undefined,true)\n var weapon=p.GetData(\"weapon\",weapon_existence_data.weapon_id,undefined,true)\n var potential=p.GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=p.GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n return [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\n }):[]\n }}\n filterFunction={(page,item)=>{\n switch (page) {\n case 2:return item[WEAPON_WEAPONTYPE].name===\"Assault Rifle\"\n case 3:return item[WEAPON_WEAPONTYPE].name===\"Launcher\"\n case 4:return item[WEAPON_WEAPONTYPE].name===\"Rod\"\n case 5:return item[WEAPON_WEAPONTYPE].name===\"Talis\"\n default:return true\n }\n }}\n searchFieldFunction={(searchText,item)=>searchText.length>0?(item[WEAPON_WEAPON].name.toLowerCase()+\" \"+item[WEAPON_WEAPONTYPE].name.toLowerCase()).includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB[1].rarity-itemA[1].rarity\n case \"Attack\":return itemB[1].atk-itemA[1].atk\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return
  • {setSelectedWeapon(item);setWeaponSelectWindowOpen(false)}}>
    \"\"{GetSpecialWeaponName(item)}

    {item[WEAPON_WEAPON].atk} {item[WEAPON_POTENTIAL_TOOLTIP].map((pot,i)=>{(i!==0)&&
    }{pot.name}: {pot.description?pot.description.split(\"\\\\n\").map((it,ii)=>{it}
    ):})}}>\n {item[WEAPON_POTENTIAL].name}\n
  • }}\n />\n \n{\n var dat1=p.GetData(\"armor\")\n return typeof dat1===\"object\"&&dat1!==null?Object.keys(dat1).map((armor)=>{\n return dat1[armor]\n }):[]\n }}\n filterFunction={(page,item)=>item.slot===armorSlotSelection}\n searchFieldFunction={(searchText,item)=>searchText.length>0?item.name.toLowerCase().includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB.rarity-itemA.rarity\n case \"HP\":return itemB.hp-itemA.hp\n case \"PP\":return itemB.pp-itemA.pp\n case \"Melee Potency\":return itemB.mel_dmg-itemA.mel_dmg\n case \"Range Potency\":return itemB.rng_dmg-itemA.rng_dmg\n case \"Tech Potency\":return itemB.tec_dmg-itemA.tec_dmg\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return
  • {\n switch(armorSlotSelection) {\n case 1:setSelectedArmor1(item);break;\n case 2:setSelectedArmor2(item);break;\n case 3:setSelectedArmor3(item);break;\n default:setSelectedArmor1(item)\n }\n setArmorSelectWindowOpen(false)}}>
    \"\"{item.name}

    {item.def}
  • }}\n />\n\n\n)\n}\n\nexport default TestPanel;","import './reset.css'; // Generic reset\nimport './style.css'; // The new new\nimport React, {useState,useEffect,useReducer} from 'react';\nimport Toggle from 'react-toggle' //Tooltip props: http://aaronshaf.github.io/react-toggle/\nimport Helmet from 'react-helmet'\n\nimport {TrashFill, PlusCircle, LifePreserver, Server, CloudUploadFill} from 'react-bootstrap-icons'\n\nimport { SkillTreeEditor } from './skilltree/skillTreeEditor'\n\nimport {\n HashRouter,\n Switch,\n Route,\n useHistory\n} from \"react-router-dom\";\n\nimport { HashLink as Link } from 'react-router-hash-link';\n\nimport TestHeader from './TestHeader'; // Test Header!\nimport TestPanel from './TestPanel'; // Dudley's Test Panel\nimport md5 from 'md5';\n\nconst axios = require('axios');\nconst parse = require('csv-parse/lib/sync')\n\n/*\nDamage types\nconst MELEE_DMG = 0\nconst RANGE_DMG = 1\nconst TECH_DMG = 2\n\nArt properties\nconst NORMAL = 0\nconst PHOTON_ART = 1\nconst WEAPON_ACTION = 2\nconst STEP_COUNTER = 3\nconst PARRY_COUNTER = 4\n//NOT USED YET*/\n\nconst BACKENDURL=process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKENDURL||'https://projectdivar.com:4504'\nconst APP_TITLE = \"NGS Planner\"\n\nfunction GetBackendURL(p) {\n\treturn (BACKENDURL)+(p.TESTMODE?\"/test\":\"\")\n}\n\nfunction Box(p) {\n\treturn <>\n\t\t
    \n\t\t
    \n\t\t

    {p.title}

    \n\t\t
    \n\t\t\t{p.children} \n\t\t
    \n\t\n}\n\nfunction Table(p) {\n\treturn \n\n\t\t\t{p.children}\n\n\t\n}\n\nfunction InputBox(p) {\n\tconst [value,setValue] = useState(p.value)\n\tconst [failed,setFailed] = useState(false)\n\tconst [sending,setSending] = useState(false)\n\n\tfunction changeFunc(f){setValue(f.currentTarget.value)\n\t\tif (p.callback4) {\n\t\t\tp.callback4(f.currentTarget.value)\n\t\t}}\n\tfunction blurFunc(f){\n\t\tif (p.callback) {\n\t\t\tsetSending(true)\n\t\t\tsetFailed(false)\n\t\t\tp.callback(f.currentTarget.value)\n\t\t\t.then(()=>{setFailed(false)})\n\t\t\t.catch(()=>{setFailed(true)})\n\t\t\t.then(()=>{setSending(false)})}\n\t\telse \n\t\tif (p.callback3) {\n\t\t\tp.callback3(f.currentTarget.value)\n\t\t}}\n\tfunction keydownFunc(f){\n\t\tif (p.callback2) {\n\t\t\tp.callback2(f,value)\n\t\t}\n\t}\n\n\treturn p.data?:{keydownFunc(f)}} onChange={(f)=>{changeFunc(f)}} onBlur={(f)=>{blurFunc(f)}}/>\n}\n\nfunction TableEditor(p) {\n\t\n\tconst initialVals={}\n\n\tconst { TESTMODE } = p\n\t\n\tfunction updateVals(state,update) {\n\t\tif (update==='Clear') {\n\t\t\treturn initialVals\n\t\t}\n\t\tstate[update.field]=update.value\n\t\treturn state \n\t}\n\t\n\tconst [fields,setFields] = useState([])\n\tconst [data,setData] = useState([])\n\tconst [update,setUpdate] = useState(false)\n\tconst [submitVals,setSubmitVal] = useReducer(updateVals,initialVals)\n\tconst [loading,setLoading] = useState(false)\n\tconst [dependencies,setDependencies] = useState([])\n\tconst [importAllowed,setImportAllowed] = useState(false)\n\tconst [lockSubmission,setLockSubmission] = useState(false)\n\n\tfunction patchValue(value,p,col,dat) {\n\t\treturn axios.patch(p.BACKENDURL+p.path,{\n\t\t\t[col.name]:value===\"null\"?null:value,\n\t\t\tid:dat.id,\n\t\t\tpass:p.password\n\t\t})\n\t}\n\t\n\tfunction SubmitBoxes() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\taxios.post(p.BACKENDURL+p.path,{...submitVals,pass:p.password})\n\t\t\t.then(()=>{\n\t\t\t\tsetSubmitVal(\"Clear\")\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\talert(JSON.stringify(err.response.data))\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction SubmitDeletion() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\tvar promises = []\n\t\t\tfor (var dat of data) {\n\t\t\t\tif (document.getElementById(\"delete_\"+dat.id).checked) {\n\t\t\t\t\tpromises.push(axios.delete(p.BACKENDURL+p.path,{data:{pass:p.password,id:dat.id}}))\n\t\t\t\t}\n\t\t\t}\n\t\t\tPromise.allSettled(promises)\n\t\t\t.catch((err)=>{\n\t\t\t\talert(err.message)\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tsetUpdate(true)\n\t},[p.path,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tfor (var col of fields) {\n\t\t\tif (col.name===\"name\") {\n\t\t\t\tsetImportAllowed(true)\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},[fields])\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetLoading(true)\n\t\t\tvar dependency_map = {}\n\t\t\taxios.get(p.BACKENDURL+p.path+\"?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tvar cols = data.data.fields\n\t\t\t\tvar rows = data.data.rows\n\t\t\t\t\n\t\t\t\tsetFields(cols.filter((col,i)=>col.name!==\"id\"&&!(i===0&&col.name===\"name\")))\n\n\t\t\t\tvar promise_list = []\n\n\t\t\t\tcols.filter((col)=>col.name!==\"id\"&&col.name.includes(\"_id\")).forEach((col)=>{\n\t\t\t\t\tpromise_list.push(axios.get(p.BACKENDURL+\"/\"+col.name.replace(\"_id\",\"\")+\"?pass=\"+p.password)\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tdependency_map[col.name]=data.data.rows.sort((a,b)=>b.id-a.id)\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t\tsetData(rows)\n\t\t\t\treturn Promise.allSettled(promise_list)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetDependencies(dependency_map)\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.path,p.BACKENDURL,p.password])\n\t\n\treturn <>\n\t{!loading?\n\t\t
    \n\t\t\t\n\t\t\t {importAllowed&&}\n\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{fields.map((field,i)=>)}\n\t\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t\t\t\t{{fields.map((col,i)=>)}}\n\t\t\t\t\t{data.map((dat)=>\n\t\t\t\t\t{fields.map((col,i)=>)})}\n\t\t\t \n\t\t\t
    {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload=(ev)=>{\n\t\t\t\t\tvar promises=[]\n\t\t\t\t\tparse(ev.target.result,{columns:true,skip_empty_lines:true}).forEach((entry)=>{\n\t\t\t\t\t\tfor (var col of fields) {\n\t\t\t\t\t\t\tif ((col.dataTypeID===23||col.dataTypeID===701||col.dataTypeID===16)&&entry[col.name]===\"\") {\n\t\t\t\t\t\t\t\tentry[col.name]=0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push(axios.post(p.BACKENDURL+p.path,{...entry,pass:p.password}))\n\t\t\t\t\t})\n\t\t\t\t\tPromise.allSettled(promises)\n\t\t\t\t\t.then(()=>{\n\t\t\t\t\t\tsetUpdate(true)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treader.readAsText(f.target.files[0])\n\t\t\t }} style={{opacity:0}} id=\"uploads\" type=\"file\" accept=\".txt,.csv\"/>
    {SubmitDeletion()}} className=\"trashButton\"/>{field.name}
    {{setSubmitVal({field:col.name,value:f});}}/>}{SubmitBoxes()}} className=\"submitbutton\"/>
    \n\t\t\t\t\t\tpatchValue(value,p,col,dat)} callback2={(f,value)=>{if (f.key==='Enter') {f.currentTarget.blur()} else {return 'Chill'}}} value={String(dat[col.name])}/>
    \n\t\t
    :<>\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/}\n\t\n}\n\nfunction DatabaseEditor(p) {\n\tconst [loading,setLoading] = useState(true)\n\tconst [message,setMessage] = useState()\n\tconst [databases,setDatabases] = useState([])\n\tconst [update,setUpdate] = useState(true)\n\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\taxios.get(p.BACKENDURL+\"/databases?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tsetDatabases(data.data)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\tconsole.log(err.message)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.BACKENDURL,p.password])\n\n\treturn <>\n\t\t{!loading?<>\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t:\"\"/\n\t\t}\n\t\t{message}\n\t\t
    \n\t\t

    \n\t\t

    Current Databases

    \n\t\t

    \n\t\tLive Database\n\t\t   Test Database
    \n\t\t{databases.map((db,i)=>{\n\t\t\tvar label = \"\"\n\t\t\tif (db.datname!==\"ngsplanner\"&&db.datname!==\"ngsplanner2\") {\n\t\t\t\tvar dateStr = db.datname.replace(\"ngsplanner\",\"\")\n\t\t\t\tvar date = new Date(dateStr.slice(0,4),dateStr.slice(4,6),dateStr.slice(6,8),dateStr.slice(8,10),dateStr.slice(10,12),dateStr.slice(12,14))\n\t\t\t\tlabel=<>{\"Backup from \"+date}\n\t\t\t\treturn {label}
    \n\t\t\t} else {\n\t\t\t\treturn \n\t\t\t}\n\t\t})}\n\t\n}\n\nfunction AdminPanel(p) {\n\tconst [verified,setVerified] = useState(false)\n\tconst [password,setPassword] = useState(\"\")\n\n\tconst navigationData=[\n\t\t{page:\"Class\",url:\"/admin/class\",table:\"/class\"},\n\t\t{page:\"Class Data\",url:\"/admin/classdata\",table:\"/class_level_data\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\"},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\"},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\"},\n\t\t{hr:true},\n\t\t{page:\"Weapons\",url:\"/admin/weapons\",table:\"/weapon\"},\n\t\t{page:\"Weapon Existence Data\",url:\"/admin/weaponexistencedata\",table:\"/weapon_existence_data\"},\n\t\t{page:\"Weapon Types\",url:\"/admin/weapontypes\",table:\"/weapon_type\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\",duplicate:true},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\"},\n\t\t{hr:true},\n\t\t{page:\"Armor\",url:\"/admin/armor\",table:\"/armor\"},\n\t\t{page:\"Potentials\",url:\"/admin/potentials\",table:\"/potential\"},\n\t\t{page:\"Potential Data\",url:\"/admin/potentialdata\",table:\"/potential_data\"},\n\t\t{hr:true},\n\t\t{page:\"Builds\",url:\"/admin/builds\",table:\"/builds\"},\n\t\t{hr:true},\n\t\t{page:\"Skills\",url:\"/admin/skills\",table:\"/skill\"},\n\t\t{page:\"Skill Types\",url:\"/admin/skilltypes\",table:\"/skill_type\"},\n\t\t{page:\"Skill Data\",url:\"/admin/skilldata\",table:\"/skill_data\"},\n\t\t{page:Skill Tree Editor,url:\"/admin/skilltreeeditor\",render:},\n\t\t{page:\"Skill Tree Data\",url:\"/admin/skilltreedata\",table:\"/skill_tree_data\"},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\",duplicate:true},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\",duplicate:true},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\",duplicate:true},\n\t\t{hr:true},\n\t\t{page:\"Augments\",url:\"/admin/augments\",table:\"/augment\"},\n\t\t{page:\"Augment Types\",url:\"/admin/augmenttypes\",table:\"/augment_type\"},\n\t\t{hr:true},\n\t\t{page:\"Enemy Data\",url:\"/admin/enemydata\",table:\"/enemy_data\"},\n\t\t{hr:true},\n\t\t{page:\"Food\",url:\"/admin/food\",table:\"/food\"},\n\t\t{page:\"Food Multipliers\",url:\"/admin/foodmultipliers\",table:\"/food_mult\"},\n\t\t{hr:true},\n\t\t{page:\"Roles\",url:\"/admin/roles\",table:\"/roles\"},\n\t\t{page:\"Users\",url:\"/admin/users\",table:\"/users\"},\n\t\t{hr:true},\n\t\t{page:\"Misc. Site Data\",url:\"/admin/sitedata\",table:\"/site_data\"},\n\t\t{page:\"Database Audit\",url:\"/admin/database_audit\",table:\"/database_audit\"},\n\t]\n\n\treturn
    \n\t\t{!verified?\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    Admin

    \n\t\t\t\t\t\t

    \n\t\t\t{setPassword(f.currentTarget.value)}} onKeyDown={(e)=>{\n\t\t\t\tif (e.key===\"Enter\") {\n\t\t\t\t\taxios.post(GetBackendURL(p)+\"/passwordcheck\",{\n\t\t\t\t\t\tpass:password\n\t\t\t\t\t})\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tif (data.data.verified) {\n\t\t\t\t\t\t\tsetVerified(data.data.verified)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err)=>{\n\t\t\t\t\t\tsetVerified(false)\n\t\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\t})}}}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n:<>\n\t\t\n\t\t
    \n\t\t
    \n\t\t

    Navigation

    \n\t\t
    \n\t\t

    Testing Mode {p.setTESTMODE(f.target.checked)}}/> {p.TESTMODE?ON:OFF}

    \n\t\t
    \n\t\t \n\t\t {navigationData.map((nav,i)=>(nav.hr)?
    :{nav.page}
    )}\n\t\t Database Manager
    \n\t\t
    \n\t\t
    \n\t\t
    \t\t\n\t\t\n\n\n\n\t\t\t{navigationData.map((nav,i)=>(nav.duplicate===undefined&&nav.hr===undefined)&&\n\t\t\t
    \n\t\t
    \n\t\t

    {nav.page}

    \n\t\t
    \n\t\t\n\t\t\t\t\t{APP_TITLE+\" - Admin Panel: \"+nav.page}\n\t\t\t\t\n\t\t\t\t{nav.render??}\n\t\t\t\t
    )}\n\n\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t

    Database Editor

    \n\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \t\t\t\t\t\n\t\t\t\t
    \t\n\t\t\t
    \n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t}\n\t
    \n}\n\nfunction EditStatBox(p) {\n\n\tconst [value,setValue] = useState(p.value)\n\n\tuseEffect(()=>{\n\t\tsetValue(p.value)\n\t},[p.value])\n\n\treturn <>{setValue(f.currentTarget.value);p.callback(f.currentTarget.value)}}/> ({value})
    \n}\n\nfunction DamageCalculator(p) {\n\n\tconst [augmentData,setAugmentData] = useState({})\n\t//const [update,setUpdate] = useState(false)\n\n\tuseEffect(()=>{\n\t\taxios.get(p.BACKENDURL+\"/augment\")\n\t\t.then((data)=>{\n\t\t\tvar augmentData = {}\n\t\t\tdata.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})\n\t\t\tsetAugmentData(augmentData)\n\t\t})\n\t},[p.BACKENDURL])\n\n\tconst character = {\n\t\tweapon:{\n\t\t\taugments:[\"1\",\"2\"]\n\t\t},\n\t\tarmor1:{\n\t\t\taugments:[\"2\"]\n\t\t},\n\t\tarmor2:{\n\t\t\taugments:[]\n\t\t},\n\t\tarmor3:{\n\t\t\taugments:[]\n\t\t}\n\t}\n\n\tuseEffect(()=>{\n\t\tif (Object.keys(augmentData).length>0) {\n\t\t\tvar searchFields = [{field:\"variance\",variable:0},{field:\"mel_dmg\",variable:0}]\n\t\t\tfor (var equip of [character.weapon,character.armor1,character.armor2,character.armor3]) {\n\t\t\t\tfor (var field of searchFields) {\n\t\t\t\t\tfor (var i=0;i{\n\t\tsetWeaponTotalAtk(Number(weaponBaseAtk)+Number(weaponEnhanceLv))\n\t},[weaponBaseAtk,weaponEnhanceLv])\n\n\tconst [dmgVariance,setDmgVariance] = useState(1)\n\n\t\tconst [weaponDmgVariance,setWeaponDmgVariance] = useState(1)\n\t\tconst [augDmgVariance,setAugDmgVariance] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetDmgVariance(Number(weaponDmgVariance)+Number(augDmgVariance))\n\t},[weaponDmgVariance,augDmgVariance])\n\n\tconst [baseAtk,setBaseAtk] = useState(100)\n\tconst [enemyDef,setEnemyDef] = useState(5)\n\tconst [multipliers,setMultipliers] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetRawDmg(((Number(weaponTotalAtk)*Number(dmgVariance))+Number(baseAtk)-Number(enemyDef))*Number(multipliers)/5)\n\t},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])\n\t\n\tconst [atkmult,setAtkMult] = useState(1);\n\tconst [partmult,setPartMult] = useState(1);\n\tconst [elementalWeaknessMult,setElementalWeaknessMult] = useState(1.2)\n\tconst [mainClassWeaponBoost,setMainClassWeaponBoost] = useState(1.1)\n\tconst [classSkillMult,setClassSkillMult] = useState(1)\n\tconst [equipMult,setEquipMult] = useState(1)\n\n\tconst [augmentEquipMult,setAugmentEquipMult] = useState(1)\n\tconst [potencyFloorEquipMult,setPotencyFloorEquipMult] = useState(1)\n\tconst [elementalWeaponEquipMult,setElementalWeaponEquipMult] = useState(1.1)\n\t\n\tconst [critMult,setCritMult] = useState(1.2)\n\tconst [appropriateDistance,setAppropriateDistance] = useState(1)\n\t\n\tconst [foodBoost,setFoodBoost] = useState(1)\n\tconst [fieldEffects,setFieldEffects] = useState(1.05)\n\tconst [statusAilments,setStatusAilments] = useState(1)\n\n\tconst [enemyCorrectionMult,setEnemyCorrectionMult] = useState(1)\n\n\tconst [highLevelEnemy,setHighLevelEnemy] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetMultipliers(Number(atkmult)*Number(partmult)*Number(elementalWeaknessMult)*Number(mainClassWeaponBoost)*Number(classSkillMult)*Number(equipMult)*Number(augmentEquipMult)*Number(potencyFloorEquipMult)*Number(elementalWeaponEquipMult)*Number(critMult)*Number(appropriateDistance)*Number(foodBoost)*Number(fieldEffects)*Number(statusAilments)*Number(enemyCorrectionMult)*Number(highLevelEnemy))\n\t},[atkmult,partmult,elementalWeaknessMult,mainClassWeaponBoost,classSkillMult,equipMult,augmentEquipMult,potencyFloorEquipMult,elementalWeaponEquipMult,critMult,appropriateDistance,foodBoost,fieldEffects,statusAilments,enemyCorrectionMult,highLevelEnemy])\n\n\treturn <>\n\t\t
    \n\t\t\tWeapon Total Atk:{setWeaponTotalAtk(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Weapon Base Atk:{setWeaponBaseAtk(val)}}/>
    • \n\t\t\t\t
    • ●Weapon Enhance Lv:{setweaponEnhanceLv(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tDamage Variance:{setDmgVariance(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Weapon Damage Variance:{setWeaponDmgVariance(val)}}/>
    • \n\t\t\t\t
    • ●Augment Damage Variance:{setAugDmgVariance(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tBase Attack:{setBaseAtk(val)}}/>\n\t\t\tEnemy Defense:{setEnemyDef(val)}}/>\n\t\t\tMultipliers:{setMultipliers(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Atk Mult:{setAtkMult(val)}}/>
    • \n\t\t\t\t
    • ●Part Mult:{setPartMult(val)}}/>
    • \n\t\t\t\t
    • ●Elemental Weakness Mult:{setElementalWeaknessMult(val)}}/>
    • \n\t\t\t\t
    • ●Main Class Weapon Boost:{setMainClassWeaponBoost(val)}}/>
    • \n\t\t\t\t
    • ●Class Skill Mult:{setClassSkillMult(val)}}/>
    • \n\t\t\t\t
    • ●Equip Mult:{setEquipMult(val)}}/>
    • \n\t\t\t\t
    • \n\t\t\t\t\t
        \n\t\t\t\t\t\t
      • ●Augment Equip Mult:{setAugmentEquipMult(val)}}/>
      • \n\t\t\t\t\t\t
      • ●Potency Floor Equip Mult:{setPotencyFloorEquipMult(val)}}/>
      • \n\t\t\t\t\t\t
      • ●Elemental Weapon Equip Mult:{setElementalWeaponEquipMult(val)}}/>
      • \n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t
    • ●Crit Mult:{setCritMult(val)}}/>
    • \n\t\t\t\t
    • ●Appropriate Distance:{setAppropriateDistance(val)}}/>
    • \n\t\t\t\t
    • ●Food Boost:{setFoodBoost(val)}}/>
    • \n\t\t\t\t
    • ●Field Effects:{setFieldEffects(val)}}/>
    • \n\t\t\t\t
    • ●Status Ailments:{setStatusAilments(val)}}/>
    • \n\t\t\t\t
    • ●Enemy Correction Multiplier:{setEnemyCorrectionMult(val)}}/>
    • \n\t\t\t\t
    • ●High Level Enemy:{setHighLevelEnemy(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tRaw Dmg:{rawDmg}\n\t\t
    \n\t\n}\n\nfunction FormField(p) {\n\treturn <>{\n\t\tp.type===\"toggle\"?<> :} \n}\n\nfunction VerifyLogin(p) {\n\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\tusername:p.LOGGEDINUSER,\n\t\tpassword:p.LOGGEDINHASH\n\t})\n\t.then((data)=>{\n\t\tif (data.data.verified) {\n\t\t\tp.history.push(\"/\")\n\t\t}\n\t})\n\t.catch((err)=>{\n\t\tconsole.log(err.message)\n\t})\n}\n\nfunction LoginForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitLogin() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password)\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t\thistory.push(\"/\")\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t\"\"\n\t\t:<>
    {if (f.key===\"Enter\") {SubmitLogin()}}}>

    {error}

    \n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\"/>
    \n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\"/>
    \n\t\t{setRememberMe(p.currentTarget.checked)}}/>
    \n\t\t
    \n\t}\n\t
    \n}\n\nfunction RegisterForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [password2,setPassword2] = useState(\"\")\n\tconst [email,setEmail] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitRegister() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\ttry{\n\t\t\tif (username.length<4) {throw new Error(\"Username must be at least 4 characters in length.\")}\n\t\t\tif (username.length>20) {throw new Error(\"Username must be less than 21 characters in length.\")}\n\t\t\tif (password.length<6) {throw new Error(\"Password must contain at least 6 characters.\")}\n\t\t\tif (password!==password2) {throw new Error(\"Password fields must match.\")}\n\t\t\tif (!email.includes(\"@\")) {throw new Error(\"Invalid E-mail.\")}\n\t\t}catch(err){\n\t\t\tsetError(err?.message??err);\n\t\t\tsetLoading(false)\n\t\t\treturn\n\t\t}\n\t\taxios.post(GetBackendURL(p)+\"/register\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password),\n\t\t\temail:email\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t\"\"\n\t\t:<>

    {error}

    \n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\" tooltip=\"Enter a username (4-20 characters, a-z and _ only)\"/>
    \n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\" tooltip=\"Enter a password (6 or more characters)\"/>
    \n\t\t{setPassword2(p.currentTarget.value)}} placeholder=\"Verify Password\" tooltip=\"Enter password again.\"/>
    \n\t\t{setEmail(p.currentTarget.value)}} placeholder=\"email@example.com\" tooltip=\"This is used to send you password reset emails.\"/>
    \n\t\t{setRememberMe(p.currentTarget.checked)}}/>
    \n\t\t\n\t}\n\t
    \n}\n\n\nfunction App() {\n\t\n\tconst [author] = useState(\"Dudley\")\n\tconst [buildName] = useState(\"Fatimah\")\n\tconst [className] = useState(\"Ranger\")\n\tconst [secondaryClassName] = useState(\"Force\")\n\tconst [classLv] = useState(20)\n\tconst [secondaryClassLv] = useState(15)\n\t\t\n\t\n\tconst [bp] = useState(1330)\n\tconst [hp] = useState(388)\n\tconst [pp] = useState(154)\n\tconst [weaponTotalAtk] = useState(282)\n\tconst [baseAtk] = useState(650)\n\tconst [statDisplayAtk,setstatDisplayAtk] = useState(282)\n\n\tuseEffect(()=>{\n\t\tsetstatDisplayAtk(Number(weaponTotalAtk)+Number(baseAtk))\n\t},[weaponTotalAtk,baseAtk])\n\n\tconst [def] = useState(932)\n\tconst [weaponUp1] = useState(0.317)\n\tconst [weaponUp2] = useState(0.241)\n\tconst [weaponUp3] = useState(0.241)\n\tconst [damageResist] = useState(0.18)\n\tconst [burnResist] = useState(0)\n\tconst [shockResist] = useState(0)\n\tconst [panicResist] = useState(0)\n\tconst [stunResist] = useState(0)\n\tconst [freezeResist] = useState(0)\n\tconst [blindResist] = useState(0)\n\tconst [poisonResist] = useState(0)\n\t\n\tconst [TESTMODE,setTESTMODE] = useState(false)\n\tconst [DATA,setDATA] = useState(undefined)\n\tconst [DATAID,setDATAID] = useState({GetData:()=>{}})\n\tconst [update,setUpdate] = useState(false)\n\n\tconst [LOGGEDINUSER,setLOGGEDINUSER] = useState(\"\")\n\tconst [LOGGEDINHASH,setLOGGEDINHASH] = useState(\"\")\n\n\tfunction GetData(table,row,col,id){\n\t\tif (row===undefined) {row=''}\n\t\tif (col===undefined) {col=''}\n\t\tvar data = id?DATAID:DATA\n\t\tif (!data) {\n\t\t\treturn \"no data\"\n\t\t} else {\n\t\t\treturn data!==undefined?data[table]!==undefined?data[table][row]!==undefined?data[table][row][col]!==undefined?data[table][row][col]:data[table][row]:data[table]:data:\"no data\"\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetUpdate(false)\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATA(data.data)\n\t\t\t})\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATAID(data.data)\n\t\t\t})\n\t\t}\n\t},[update,TESTMODE])\n\n\tuseEffect(()=>{\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t.then((data)=>{\n\t\t\tsetDATA(data.data)\n\t\t})\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t.then((data)=>{\n\t\t\tsetDATAID(data.data)\n\t\t})\n\t},[TESTMODE])\n\n return (\n \t<>\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Admin Panel\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\"Test - \"+APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Login\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Register\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    {GetData(\"site_data\",\"h1\",\"data\")}

    {GetData(\"site_data\",\"h2\",\"data\")}

    \"\"/\n\t\t\t\t{GetData(\"site_data\",\"UNDER_CONSTRUCTION_TEXT\",\"data\")}


    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.ec7dbe44.chunk.js b/static/js/main.ec7dbe44.chunk.js deleted file mode 100644 index b44f548..0000000 --- a/static/js/main.ec7dbe44.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(this.webpackJsonpngsplanner=this.webpackJsonpngsplanner||[]).push([[0],{138:function(e,t){},140:function(e,t){},150:function(e,t,a){"use strict";a.r(t);var i=a(1),c=a.n(i),s=a(35),n=a.n(s),l=(a(77),a(12)),r=a(6),j=a(19),d=a(2),b=(a(78),a(79),a(37)),o=a.n(b),h=a(16),u=a(154),O=a(155),g=a(156),x=a(157),m=a(158),p=a(10),f=a(0);function S(e){var t=Object(i.useRef)(null),a=Object(i.useState)(0),c=Object(d.a)(a,2),s=c[0],n=c[1],r=Object(i.useState)(0),j=Object(d.a)(r,2),b=j[0],o=j[1];return Object(i.useEffect)((function(){n(e.gridSizeX*e.gridDimensionsX+e.gridPaddingX*(e.gridDimensionsX-1)),o(e.gridSizeY*Math.ceil(e.gridDimensionsY/2)+e.halflineheight*Math.ceil((e.gridDimensionsY-1)/2)+e.gridPaddingY*(e.gridDimensionsY-1))}),[e.halflineheight,e.skillLines,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.gridDimensionsX,e.gridDimensionsY]),Object(i.useEffect)((function(){var a=t.current.getContext("2d");a.clearRect(0,0,s,b),a.fillStyle="rgba(100,100,100,0.5)",a.strokeStyle=e.strokeStyle,a.lineWidth=e.lineWidth,a.setLineDash(e.lineDash);var i,c=0,n=Object(l.a)(e.skillLines);try{for(n.s();!(i=n.n()).done;){var r,j=i.value,d=0,o=Object(l.a)(j.split(""));try{for(o.s();!(r=o.n()).done;){var h=r.value,u=0!==d?e.gridPaddingX*d:0,O=0!==c?e.gridPaddingY*c:0;switch(h){case"\u2500":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2502":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2514":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u250c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2518":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u2510":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u251c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2524":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u252c":a.beginPath(),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.stroke();break;case"\u2534":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke(),a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u253c":a.beginPath(),a.moveTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O-e.gridPaddingY),a.lineTo(d*e.gridSizeX+u+e.gridSizeX/2,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+e.gridSizeY+e.gridPaddingY),a.moveTo(d*e.gridSizeX+u-e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.lineTo(d*e.gridSizeX+u+e.gridSizeX+e.gridPaddingX,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O+(c%2===1?e.halflineheight:e.gridSizeY)/2),a.stroke();break;case"\u25a1":a.clearRect(d*e.gridSizeX+u,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O,e.gridSizeX,c%2===1?e.halflineheight:e.gridSizeY),a.fillRect(d*e.gridSizeX+u,Math.ceil(c/2)*e.gridSizeY+Math.ceil((c-1)/2)*e.halflineheight+O,e.gridSizeX,c%2===1?e.halflineheight:e.gridSizeY)}d++}}catch(g){o.e(g)}finally{o.f()}c++}}catch(g){n.e(g)}finally{n.f()}}),[s,b,e.gridSizeX,e.gridSizeY,e.gridPaddingX,e.gridPaddingY,e.lineDash,e.lineWidth,e.skillLines,e.strokeStyle,e.halflineheight]),Object(f.jsx)("canvas",{width:s,height:b,ref:t,style:e.style,className:e.className,children:e.children})}function v(e){var t=e.GetData,a=Object(i.useState)([]),c=Object(d.a)(a,2),s=c[0],n=c[1];return Object(i.useEffect)((function(){n(t("class_skill"))}),[e.cl,t]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("select",{onChange:function(t){e.callback(t.currentTarget.value,Number(e.x),Number(e.y))},style:{position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)},value:e.defaultValue,children:[" ","\u2500","\u2502","\u25a1","\u250c","\u2514","\u2510","\u2518","\u252c","\u2534","\u251c","\u2524","\u253c"].map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))}),"\u25a1"===e.defaultValue&&Object(f.jsx)("select",{style:{width:"64px",position:"absolute",left:e.ADJUSTMENT[0]+(e.x*e.gridSizeX+e.padX+e.gridSizeX/2),top:e.ADJUSTMENT[1]+(e.y/2*e.gridSizeY+(e.y/2-1)*e.halflineheight+e.padY+(0===e.y?e.halflineheight:e.gridSizeY)/2)+28},onChange:function(t){e.skillCallback(e.x,e.y,t.currentTarget.value)},value:e.skill.split(",")[2],children:[""].concat(Object(p.a)(Object.keys(s).filter((function(t){return s[t].class_id===e.cl})))).map((function(e){return Object(f.jsx)("option",{value:s[e]?s[e].id:"",children:s[e]?s[e].name:""},e)}))})]})}var N=a(36),k=a.n(N);function y(e){var t,a,s=e.GetData,n=Object(i.useMemo)((function(){return[-32,32]}),[]),l=Object(i.useState)(!0),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)({}),h=Object(d.a)(o,2),u=h[0],O=h[1],g=Object(i.useState)({}),x=Object(d.a)(g,2),m=x[0],N=x[1],y=Object(i.useState)(-1),D=Object(d.a)(y,2),C=D[0],P=D[1],z=Object(i.useState)("#000000"),E=Object(d.a)(z,2),T=E[0],M=E[1],A=Object(i.useState)(3),Y=Object(d.a)(A,2),X=Y[0],F=Y[1],_=Object(i.useState)(6),w=Object(d.a)(_,2),R=w[0],G=w[1],L=Object(i.useState)(6),B=Object(d.a)(L,2),I=B[0],U=B[1],W=Object(i.useState)(80),H=Object(d.a)(W,2),K=H[0],q=H[1],V=Object(i.useState)(60),J=Object(d.a)(V,2),Q=J[0],Z=J[1],$=Object(i.useState)(10),ee=Object(d.a)($,2),te=ee[0],ae=ee[1],ie=Object(i.useState)(10),ce=Object(d.a)(ie,2),se=ce[0],ne=ce[1],le=Object(i.useState)([]),re=Object(d.a)(le,2),je=re[0],de=re[1],be=Object(i.useState)([]),oe=Object(d.a)(be,2),he=oe[0],ue=oe[1],Oe=Object(i.useState)([]),ge=Object(d.a)(Oe,2),xe=ge[0],me=ge[1],pe=Object(i.useState)([]),fe=Object(d.a)(pe,2),Se=fe[0],ve=fe[1],Ne=Object(i.useState)(""),ke=Object(d.a)(Ne,2),ye=ke[0],De=ke[1],Ce=Object(i.useState)(!1),Pe=Object(d.a)(Ce,2),ze=Pe[0],Ee=Pe[1],Te=Object(i.useState)(60),Me=Object(d.a)(Te,2),Ae=Me[0],Ye=Me[1],Xe=Object(i.useCallback)((function(e,t){var a=Se.filter((function(a){return Number(a.split(",")[0])===Number(e)&&Number(a.split(",")[1])===Number(t)}));return a.length>0?a[0]:""}),[Se]);return Object(i.useEffect)((function(){O(s("class",void 0,void 0,!0)),N(s("skill_tree_data",void 0,void 0,!0))}),[s]),Object(i.useEffect)((function(){for(var e=!1,t=0,a=Object.keys(m);t0?""+e:"/icons/nicodotpng.png.png"}var A=a(71);function Y(e){var t;return Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("span",{"data-tip":!0,"data-tip-disable":0===(null===(t=e.tooltip)||void 0===t?void 0:t.length),"data-for":e.id,children:e.children}),Object(f.jsx)(A.a,{id:e.id,className:"xTooltip",overridePosition:function(e,t,a,i){var c=e.left,s=e.top,n=document.documentElement;return c=Math.min(n.clientWidth-i.clientWidth,c),s=Math.min(n.clientHeight-i.clientHeight,s),c=Math.max(0,c),{top:s=Math.max(0,s),left:c}},children:e.tooltip})]})}function X(e){return Object(i.useEffect)((function(){var e=setTimeout((function(){document.getElementById("editBoxInput").focus(),document.getElementById("editBoxInput").select()}),100);return function(){clearTimeout(e)}}),[e.edit]),Object(f.jsx)("input",{id:"editBoxInput",type:e.type,max:"number"===e.type?20:void 0,min:"number"===e.type?1:void 0,onKeyDown:function(t){("Enter"===t.key||"Escape"===t.key)&&e.setEdit(!1)},maxLength:e.maxlength?e.maxlength:20,onBlur:function(){e.setEdit(!1)},value:e.value,onChange:function(t){t.currentTarget.value.length>0?e.setName(t.currentTarget.value):e.setName(e.originalName)}})}function F(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){e.callback&&e.callback()}),[c,e]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:c?"editBoxActive":"editBox",onClick:function(e){s(!0)},children:c?Object(f.jsx)(X,{edit:c,maxlength:e.maxlength,type:e.type,setEdit:s,originalName:e.data,setName:e.setData,value:e.data}):Object(f.jsxs)(f.Fragment,{children:[e.prefix,e.data]})})})}function _(e){return Object(f.jsx)("li",{onClick:function(){e.onPageChange&&e.onPageChange(e.pageName),e.setCurrentPage(e.page)},className:e.currentPage===e.page?"selected":"unselected",children:e.pageDisplay?e.pageDisplay[e.page-1]:e.pageName?e.pageName:e.page})}function w(e){for(var t=[],a=0;a0&&Object(f.jsx)("ul",{className:"boxmenu",children:t.map((function(e,t){return Object(f.jsx)(c.a.Fragment,{children:e},t)}))})}function R(e){var t=e.GetData("class"),a=t[e.name];return"no data"!==t?a?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",src:""+a.icon}),a.name]}):Object(f.jsx)(f.Fragment,{}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{alt:"",width:"24",src:M("")}),"Nico"]})}function G(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsx)("div",{className:"editClass",onClick:function(){e.setClassNameSetter(e.editClass),e.setClassSelectWindowOpen(!0)},children:Object(f.jsx)(R,{GetData:e.GetData,name:e.name})})})}function L(e){return Object(f.jsx)(T.a,{ariaHideApp:!1,isOpen:e.modalOpen,onRequestClose:function(){e.setModalOpen(!1)},shouldFocusAfterRender:!0,shouldCloseOnOverlayClick:!0,shouldCloseOnEsc:!0,className:"modal",overlayClassName:"modalOverlay",children:Object(f.jsxs)("div",{className:"box boxModal",children:[Object(f.jsxs)("div",{className:"boxTitleBar",children:[Object(f.jsx)("h1",{children:e.title}),e.showCloseButton&&Object(f.jsx)("div",{className:"boxExit",onClick:function(){e.setModalOpen(!1)}})]}),Object(f.jsx)(w,{onPageChange:e.onPageChange,pages:e.pageNames?e.pageNames.length:0,pageNames:e.pageNames,currentPage:e.page,setCurrentPage:e.setPage}),e.children]})})}function B(e){var t=e.onModalOpen,a=Object(i.useState)([]),s=Object(d.a)(a,2),n=s[0],l=s[1],r=Object(i.useState)(1),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(e.sortItems?e.sortItems[0]:""),u=Object(d.a)(h,2),O=u[0],g=u[1],x=Object(i.useState)(""),m=Object(d.a)(x,2),p=m[0],S=m[1];return Object(i.useEffect)((function(){e.dataFunction&&l(e.dataFunction())}),[e]),Object(i.useEffect)((function(){t&&t(o)}),[t]),Object(f.jsxs)(L,{page:b,setPage:o,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,showCloseButton:!0,title:e.title,pageNames:e.pageNames,filter:!0,onPageChange:e.onPageChange,children:[(e.sortItems||e.filter)&&Object(f.jsxs)("div",{className:"itemBar",children:[Object(f.jsx)("div",{className:"itemBarSort",children:e.sortItems&&Object(f.jsx)("select",{className:"itemBarForm",value:O,onChange:function(e){g(e.currentTarget.value)},children:e.sortItems.map((function(e){return Object(f.jsx)("option",{value:e,children:e},e)}))})}),Object(f.jsx)("div",{className:"itemBarFilter",children:e.filter?Object(f.jsx)("input",{className:"itemBarForm",type:"text",placeholder:"Filter",value:p,onChange:function(e){S(e.currentTarget.value)}}):Object(f.jsx)(f.Fragment,{})})]}),Object(f.jsx)("div",{className:"modalItemListContainer customScrollbar",children:Object(f.jsxs)("ul",{className:"itemlist",children:[e.filter?n.filter((function(t){return e.filterFunction(b,t)})).filter((function(t){return e.searchFieldFunction(p,t)})).sort((function(t,a){return e.sortOrderFunction(O,t,a)})).map((function(t,a){return Object(f.jsx)(c.a.Fragment,{children:e.displayFunction(t)},a)})):n.map((function(t,a){return Object(f.jsx)(c.a.Fragment,{children:e.displayFunction(t)},a)})),e.children]})})]})}function I(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillLeftButton"}))}function U(e){return Object(f.jsx)("span",Object(r.a)(Object(r.a)({},e),{},{className:"skillRightButton"}))}function W(e){var t=Object(i.useState)("Select Main Class"),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){s(e.editClass?"Select Sub Class":"Select Main Class")}),[e.editClass]),Object(f.jsx)(B,{title:c,modalOpen:e.modalOpen,setModalOpen:e.setModalOpen,GetData:e.GetData,pageNames:["Main Class","Sub-Class"],onPageChange:function(t){"Main Class"===t?e.setEditClass(0):e.setEditClass(1)},onModalOpen:function(t){t(e.editClass?2:1)},dataFunction:function(){var t=e.GetData("class");return Object.keys(t)},displayFunction:function(t){return Object(f.jsxs)("li",{className:e.class===t?"treeListMain":e.subClass===t?"treeListSub":"",onClick:function(){0===e.editClass?(e.setClassName(t),e.setSubClassName(e.subClass===t?e.class:e.subClass)):(e.setSubClassName(t),e.setClassName(e.class===t?e.subClass:e.class)),e.setModalOpen(!1)},children:[Object(f.jsx)("img",{alt:"",src:M(e.GetData("class",t,"icon"))})," ",e.GetData("class",t,"name")]})}})}function H(e){var t;return void 0!==e[4]?(null===(t=e[4].special_name)||void 0===t?void 0:t.length)>0?e[4].special_name:e[1].name+" "+e[0].name:""}function K(e){return Object(f.jsxs)("div",{className:e.className,style:{gridArea:(t=Number(e.skill[0]),a=Number(e.skill[1]),String.fromCharCode(Number(t)+"a".charCodeAt(0))+(a/2+1))},children:[Object(f.jsx)("img",{className:"skillIcon",alt:"",src:M(e.GetData("class_skill",e.skill[2],"icon",!0))}),Object(f.jsx)("span",{className:"skillAllocated",children:(e.skillPointData[e.page-1][e.boxId]?e.skillPointData[e.page-1][e.boxId]:0)+"/"+e.maxPoints}),Object(f.jsx)("em",{className:"skillName",children:"string"===typeof e.GetData("class_skill",e.skill[2],"name",!0)&&e.GetData("class_skill",e.skill[2],"name",!0)}),Object(f.jsxs)("div",{className:"skillButtons",children:[Object(f.jsx)(I,{onClick:function(){for(var t=Object(p.a)(e.points),a=Object(p.a)(e.skillPointData);a[e.page-1].length0&&(t[e.page-1]-=1,a[e.page-1][e.boxId]-=1,e.setPoints(t),e.setSkillPointData(a))}}),Object(f.jsx)(U,{onClick:function(){for(var t=Object(p.a)(e.points),a=Object(p.a)(e.skillPointData);a[e.page-1].lengthi&&(i=s.level)}return i}return Object(f.jsx)(f.Fragment,{children:e.skillTreeSkillData&&e.skillTreeSkillData.map((function(a,i){var c=a.split(",");return""!==c[0]&&""!==c[1]&&""!==c[2]&&Object(f.jsx)(K,{className:(c[2],e.skillPointData[e.page-1][i]===t(c[2])?"skillMaxed":e.skillPointData[e.page-1][i]>0?"skillActive":""),boxId:i,skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,cl:e.cl,maxPoints:t(c[2]),points:e.points,setPoints:e.setPoints,GetData:e.GetData,skill:c.map((function(e){return Number(e)}))},i)}))})}function V(e){var t=e.GetData,a=Object(i.useState)([]),c=Object(d.a)(a,2),s=c[0],n=c[1],r=Object(i.useState)([]),j=Object(d.a)(r,2),b=j[0],o=j[1],h=Object(i.useState)(""),u=Object(d.a)(h,2),O=u[0],g=u[1],x=Object(i.useState)(3),m=Object(d.a)(x,2),p=m[0],v=m[1],N=Object(i.useState)(6),k=Object(d.a)(N,2),y=k[0],D=k[1],C=Object(i.useState)(6),P=Object(d.a)(C,2),z=P[0],E=P[1],T=Object(i.useState)(171),M=Object(d.a)(T,2),A=M[0],Y=M[1],X=Object(i.useState)(148),F=Object(d.a)(X,2),_=F[0],w=F[1],R=Object(i.useState)(10),G=Object(d.a)(R,2),L=G[0],B=G[1],I=Object(i.useState)(48),U=Object(d.a)(I,2),W=U[0],H=U[1],K=Object(i.useState)(60),V=Object(d.a)(K,2),J=V[0],Q=V[1];return Object(i.useEffect)((function(){if(Object.keys(t("skill_tree_data")).length>1){var a,i=Object(l.a)(t("skill_tree_data"));try{for(i.s();!(a=i.n()).done;){var c=a.value;if(c.class_id===t("class",e.cl,"id")){var s=c.data.split(","),r=c.skill_data.split(";");n(s),o(r),g(c.line_color),v(c.line_width),D(s[0].length),E(s.length),Y(c.gridsizex),w(c.gridsizey),B(c.gridpaddingx),H(c.gridpaddingy),Q(c.halflineheight);break}}}catch(j){i.e(j)}finally{i.f()}}}),[e.cl,t]),Object(f.jsx)("div",{className:"skillTreeContainer customScrollbar",children:Object(f.jsxs)("div",{style:{position:"relative"},children:[Object(f.jsx)(S,{style:{position:"absolute"},strokeStyle:O,lineWidth:p,lineDash:[],gridDimensionsX:y,gridDimensionsY:z,gridSizeX:A,gridSizeY:_,gridPaddingX:L,gridPaddingY:W,skillLines:s,halflineheight:J}),Object(f.jsx)("div",{className:"skillTreeGrid",children:Object(f.jsx)(q,{skillPointData:e.skillPointData,setSkillPointData:e.setSkillPointData,page:e.page,points:e.points,cl:e.cl,setPoints:e.setPoints,GetData:e.GetData,skillTreeSkillData:b})})]})})}var J=function(e){var t,a,s=e.GetData,n=Object(i.useState)(1e3),l=Object(d.a)(n,2),r=l[0],j=l[1],b=Object(i.useState)(1e3),o=Object(d.a)(b,2),h=o[0],u=o[1],O=Object(i.useState)(1e3),g=Object(d.a)(O,2),x=g[0],m=g[1],p=Object(i.useState)(1e3),S=Object(d.a)(p,2),v=S[0],N=S[1],k=Object(i.useState)(1e3),y=Object(d.a)(k,2),D=y[0],C=y[1],P=Object(i.useState)("Player"),z=Object(d.a)(P,2),E=z[0],A=z[1],X=Object(i.useState)("Character"),_=Object(d.a)(X,2),R=_[0],L=_[1],I=Object(i.useState)("Ranger"),U=Object(d.a)(I,2),K=U[0],q=U[1],J=Object(i.useState)("Force"),Q=Object(d.a)(J,2),Z=Q[0],$=Q[1],ee=Object(i.useState)(20),te=Object(d.a)(ee,2),ae=te[0],ie=te[1],ce=Object(i.useState)(20),se=Object(d.a)(ce,2),ne=se[0],le=se[1],re=Object(i.useState)(1),je=Object(d.a)(re,2),de=je[0],be=je[1],oe=Object(i.useState)(1),he=Object(d.a)(oe,2),ue=he[0],Oe=he[1],ge=Object(i.useState)(1),xe=Object(d.a)(ge,2),me=xe[0],pe=xe[1],fe=Object(i.useState)(!1),Se=Object(d.a)(fe,2),ve=Se[0],Ne=Se[1],ke=Object(i.useState)(!1),ye=Object(d.a)(ke,2),De=ye[0],Ce=ye[1],Pe=Object(i.useState)(1),ze=Object(d.a)(Pe,2),Ee=ze[0],Te=ze[1],Me=Object(i.useState)(!1),Ae=Object(d.a)(Me,2),Ye=Ae[0],Xe=Ae[1],Fe=Object(i.useState)(!1),_e=Object(d.a)(Fe,2),we=_e[0],Re=_e[1],Ge=Object(i.useState)([]),Le=Object(d.a)(Ge,2),Be=Le[0],Ie=Le[1],Ue=Object(i.useState)([]),We=Object(d.a)(Ue,2),He=We[0],Ke=We[1],qe=Object(i.useState)([]),Ve=Object(d.a)(qe,2),Je=Ve[0],Qe=Ve[1],Ze=Object(i.useState)([]),$e=Object(d.a)(Ze,2),et=$e[0],tt=$e[1],at=Object(i.useState)(1),it=Object(d.a)(at,2),ct=it[0],st=it[1],nt=Object(i.useState)(0),lt=Object(d.a)(nt,2),rt=lt[0],jt=lt[1],dt=Object(i.useState)([]),bt=Object(d.a)(dt,2),ot=bt[0],ht=bt[1],ut=Object(i.useState)([]),Ot=Object(d.a)(ut,2),gt=Ot[0],xt=Ot[1];function mt(e){return void 0!==e&&void 0!==e.rarity?" r"+e.rarity:""}return Object(i.useEffect)((function(){e.bp>1e3?(j(3e3),u(3e3),m(3e3),N(3e3),C(3e3)):(j(1e3),u(1e3),m(1e3),N(1e3),C(1e3))}),[e.bp]),Object(i.useEffect)((function(){for(var e=Object.keys(s("class")),t=[],a=[],i=0;i0)||(t[1].name.toLowerCase()+" "+t[0].name.toLowerCase()).includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a[1].rarity-t[1].rarity;case"Attack":return a[1].atk-t[1].atk;default:return 0}},displayFunction:function(e){var t;return Object(f.jsxs)("li",{className:"itemwep r"+e[1].rarity,onClick:function(){Ie(e),Xe(!1)},children:[Object(f.jsxs)("div",{className:"itemWeaponWrapper",children:[Object(f.jsx)("img",{className:"itemimg",alt:"",src:M(null===(t=e[4])||void 0===t?void 0:t.icon)}),Object(f.jsx)("em",{className:"rifle",children:H(e)})]}),Object(f.jsx)("br",{}),Object(f.jsx)("span",{className:"atk",children:e[1].atk})," ",Object(f.jsx)(Y,{id:"mouseover-tooltip"+e[0].id+"_"+e[1].id+"_"+e[2].id+"_"+e[3].id,tooltip:Object(f.jsx)(f.Fragment,{children:e[3].map((function(e,t){return Object(f.jsxs)(c.a.Fragment,{children:[0!==t&&Object(f.jsx)("br",{}),e.name,": ",e.description?e.description.split("\\n").map((function(e,t){return Object(f.jsxs)(c.a.Fragment,{children:[e,Object(f.jsx)("br",{})," "]},t)})):Object(f.jsx)(c.a.Fragment,{},t)]},t)}))}),children:Object(f.jsx)("span",{className:"pot",children:e[2].name})})]})}}),Object(f.jsx)(B,{title:"Armor Selection - Slot "+ct,modalOpen:we,setModalOpen:Re,GetData:e.GetData,pageNames:[],sortItems:["Standard Sort","Rarity","HP","PP","Melee Potency","Range Potency","Tech Potency"],filter:!0,dataFunction:function(){var t=e.GetData("armor");return"object"===typeof t&&null!==t?Object.keys(t).map((function(e){return t[e]})):[]},filterFunction:function(e,t){return t.slot===ct},searchFieldFunction:function(e,t){return!(e.length>0)||t.name.toLowerCase().includes(e.toLowerCase())},sortOrderFunction:function(e,t,a){switch(e){case"Rarity":return a.rarity-t.rarity;case"HP":return a.hp-t.hp;case"PP":return a.pp-t.pp;case"Melee Potency":return a.mel_dmg-t.mel_dmg;case"Range Potency":return a.rng_dmg-t.rng_dmg;case"Tech Potency":return a.tec_dmg-t.tec_dmg;default:return 0}},displayFunction:function(e){return Object(f.jsxs)("li",{className:"itemwep r"+e.rarity,onClick:function(){switch(ct){case 1:Ke(e);break;case 2:Qe(e);break;case 3:tt(e);break;default:Ke(e)}Re(!1)},children:[Object(f.jsxs)("div",{className:"itemWeaponWrapper",children:[Object(f.jsx)("img",{className:"itemimg",alt:"",src:M(null===e||void 0===e?void 0:e.icon)}),Object(f.jsx)("em",{className:"rifle",children:e.name})]}),Object(f.jsx)("br",{}),Object(f.jsx)("span",{className:"atk",children:e.def})]})}})]})},Q=a(26),Z=a.n(Q),$=a(36),ee=a(115),te=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_GITPOD_WORKSPACE_URL||Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}).REACT_APP_BACKENDURL||"https://projectdivar.com:4504",ae="NGS Planner";function ie(e){return te+(e.TESTMODE?"/test":"")}function ce(e){return Object(f.jsx)(f.Fragment,{children:Object(f.jsxs)("div",{className:"box",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:e.title})}),e.children]})})}function se(e){return Object(f.jsx)("span",{className:e.classes,children:e.children})}function ne(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),c=a[0],s=a[1],n=Object(i.useState)(!1),l=Object(d.a)(n,2),r=l[0],j=l[1],b=Object(i.useState)(!1),o=Object(d.a)(b,2),h=o[0],u=o[1];function O(t){s(t.currentTarget.value),e.callback4&&e.callback4(t.currentTarget.value)}function g(t){e.callback?(u(!0),j(!1),e.callback(t.currentTarget.value).then((function(){j(!1)})).catch((function(){j(!0)})).then((function(){u(!1)}))):e.callback3&&e.callback3(t.currentTarget.value)}function x(t){e.callback2&&e.callback2(t,c)}return e.data?Object(f.jsxs)("select",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:c,onKeyDown:function(e){x(e)},onChange:function(e){O(e)},onBlur:function(e){g(e)},children:[e.includeBlankValue&&Object(f.jsx)("option",{}),e.data.map((function(e){return Object(f.jsxs)("option",{value:e.id,children:[e.id," - ",e.name||e.username]},e.id)}))]}):Object(f.jsx)("input",{disabled:e.lockSubmission,className:r?"failedInput":h?"submitting":"",value:c,onKeyDown:function(e){x(e)},onChange:function(e){O(e)},onBlur:function(e){g(e)}})}function le(e){var t={},a=e.TESTMODE;var s=Object(i.useState)([]),n=Object(d.a)(s,2),b=n[0],o=n[1],h=Object(i.useState)([]),g=Object(d.a)(h,2),x=g[0],m=g[1],p=Object(i.useState)(!1),S=Object(d.a)(p,2),v=S[0],N=S[1],k=Object(i.useReducer)((function(e,a){return"Clear"===a?t:(e[a.field]=a.value,e)}),t),y=Object(d.a)(k,2),D=y[0],C=y[1],P=Object(i.useState)(!1),z=Object(d.a)(P,2),E=z[0],T=z[1],M=Object(i.useState)([]),A=Object(d.a)(M,2),Y=A[0],X=A[1],F=Object(i.useState)(!1),_=Object(d.a)(F,2),w=_[0],R=_[1],G=Object(i.useState)(!1),L=Object(d.a)(G,2),B=L[0],I=L[1];return Object(i.useEffect)((function(){N(!0)}),[e.path,a]),Object(i.useEffect)((function(){var e,t=Object(l.a)(b);try{for(t.s();!(e=t.n()).done;){if("name"===e.value.name){R(!0);break}}}catch(a){t.e(a)}finally{t.f()}}),[b]),Object(i.useEffect)((function(){if(v){T(!0);var t={};$.get(e.BACKENDURL+e.path+"?pass="+e.password).then((function(a){var i=a.data.fields,c=a.data.rows;o(i.filter((function(e,t){return"id"!==e.name&&!(0===t&&"name"===e.name)})));var s=[];return i.filter((function(e){return"id"!==e.name&&e.name.includes("_id")})).forEach((function(a){s.push($.get(e.BACKENDURL+"/"+a.name.replace("_id","")+"?pass="+e.password).then((function(e){t[a.name]=e.data.rows.sort((function(e,t){return t.id-e.id}))})))})),m(c),Promise.allSettled(s)})).then((function(){X(t),T(!1)})),N(!1)}}),[v,e.path,e.BACKENDURL,e.password]),Object(f.jsx)(f.Fragment,{children:E?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Object(f.jsx)("img",{src:"/spinner.gif",alt:""})]}):Object(f.jsx)("div",{children:Object(f.jsxs)("table",{children:[w&&Object(f.jsxs)("caption",{children:[Object(f.jsx)("label",{className:"buttonLabel",htmlFor:"uploads",children:"Import CSV"}),Object(f.jsx)("input",{onChange:function(t){var a=new FileReader;a.onload=function(t){var a=[];ee(t.target.result,{columns:!0,skip_empty_lines:!0}).forEach((function(t){var i,c=Object(l.a)(b);try{for(c.s();!(i=c.n()).done;){var s=i.value;23!==s.dataTypeID&&701!==s.dataTypeID&&16!==s.dataTypeID||""!==t[s.name]||(t[s.name]=0)}}catch(n){c.e(n)}finally{c.f()}a.push($.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},t),{},{pass:e.password})))})),Promise.allSettled(a).then((function(){N(!0)}))},a.readAsText(t.target.files[0])},style:{opacity:0},id:"uploads",type:"file",accept:".txt,.csv"})]}),Object(f.jsx)("thead",{children:Object(f.jsxs)("tr",{children:[Object(f.jsx)("th",{className:"table-padding",children:Object(f.jsx)(u.a,{onClick:function(){!function(){if(!B){I(!0);var t,a=[],i=Object(l.a)(x);try{for(i.s();!(t=i.n()).done;){var c=t.value;document.getElementById("delete_"+c.id).checked&&a.push($.delete(e.BACKENDURL+e.path,{data:{pass:e.password,id:c.id}}))}}catch(s){i.e(s)}finally{i.f()}Promise.allSettled(a).catch((function(e){alert(e.message)})).then((function(e){I(!1),N(!0)}))}}()},className:"trashButton"})}),b.map((function(e,t){return Object(f.jsx)(c.a.Fragment,{children:Object(f.jsx)("th",{scope:"col",className:"table-padding",children:e.name})},t)}))]})}),Object(f.jsxs)("tbody",{children:[Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{}),b.map((function(e,t){return Object(f.jsx)("td",{children:Object(f.jsx)(ne,{includeBlankValue:!0,data:Y[e.name],callback4:function(t){C({field:e.name,value:t})}})},t)})),Object(f.jsxs)("td",{children:[Object(f.jsx)("input",{style:{display:"none"}}),Object(f.jsx)(O.a,{onClick:function(){B||(I(!0),$.post(e.BACKENDURL+e.path,Object(r.a)(Object(r.a)({},D),{},{pass:e.password})).then((function(){C("Clear"),N(!0)})).catch((function(e){alert(JSON.stringify(e.response.data))})).then((function(){I(!1)})))},className:"submitbutton"})]})]}),x.map((function(t){return Object(f.jsxs)("tr",{children:[Object(f.jsx)("td",{children:Object(f.jsx)("input",{id:"delete_"+t.id,type:"checkbox"})}),b.map((function(a,i){return Object(f.jsx)("td",{className:"table-padding table",children:Object(f.jsx)(ne,{lockSubmission:B,data:Y[a.name],callback:function(i){return function(e,t,a,i){var c;return $.patch(t.BACKENDURL+t.path,(c={},Object(j.a)(c,a.name,"null"===e?null:e),Object(j.a)(c,"id",i.id),Object(j.a)(c,"pass",t.password),c))}(i,e,a,t)},callback2:function(e,t){if("Enter"!==e.key)return"Chill";e.currentTarget.blur()},value:String(t[a.name])})},t.id+"_"+i)}))]},t.id)}))]})]})})})}function re(e){var t=Object(i.useState)(!0),a=Object(d.a)(t,2),s=a[0],n=a[1],l=Object(i.useState)(Object(f.jsx)("span",{style:{color:"black"}})),r=Object(d.a)(l,2),j=r[0],b=r[1],o=Object(i.useState)([]),h=Object(d.a)(o,2),u=h[0],O=h[1],p=Object(i.useState)(!0),S=Object(d.a)(p,2),v=S[0],N=S[1];return Object(i.useEffect)((function(){v&&($.get(e.BACKENDURL+"/databases?pass="+e.password).then((function(e){O(e.data)})).catch((function(e){console.log(e.message)})).then((function(){n(!1)})),N(!1))}),[v,e.BACKENDURL,e.password]),Object(f.jsxs)(f.Fragment,{children:[s?Object(f.jsx)("img",{src:"/spinner.gif",alt:""}):Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"navy"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Uploading Test Database to Production..."})),$.post(e.BACKENDURL+"/databases/testtolive",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Test Database is now live!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Apply TEST Database to LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"maroon"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Restoring Test Database using Live Database..."})),$.post(e.BACKENDURL+"/databases/livetotest",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been applied to the Test Database!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:"Reset TEST database using current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("button",{className:"basichover",style:{backgroundColor:"darkgreen"},onClick:function(){n(!0),b(Object(f.jsx)("span",{style:{color:"black"},children:"Backing up the Live database..."})),$.post(e.BACKENDURL+"/databases/backup",{pass:e.password}).then((function(){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Live Database has been saved!"}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){N(!0)}))},children:"Backup current LIVE Database"}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{})]}),j,Object(f.jsx)("hr",{}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsx)("h2",{children:Object(f.jsx)("u",{children:"Current Databases"})}),Object(f.jsx)("br",{}),Object(f.jsx)("br",{}),Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"green"}}),"Live Database"]}),"\xa0\xa0\xa0",Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[Object(f.jsx)(g.a,{className:"databaseIcon",style:{color:"red"}}),"Test Database"]}),Object(f.jsx)("br",{}),u.map((function(t,a){var i="";if("ngsplanner"!==t.datname&&"ngsplanner2"!==t.datname){var s=t.datname.replace("ngsplanner",""),l=new Date(s.slice(0,4),s.slice(4,6),s.slice(6,8),s.slice(8,10),s.slice(10,12),s.slice(12,14));return i=Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)(x.a,{className:"databaseIcon",style:{color:"blue"}}),"Backup from "+l]}),Object(f.jsxs)(c.a.Fragment,{children:[Object(f.jsxs)("span",{style:{fontSize:"24px",top:"-16px",position:"relative",height:"64px",lineHeight:"64px",textAlign:"center"},children:[i,Object(f.jsxs)("button",{style:{background:"blue"},onClick:function(){n(!0),$.post(e.BACKENDURL+"/databases/restorefrombackup",{database:t.datname,pass:e.password}).then((function(e){b(Object(f.jsx)("span",{style:{color:"green"},children:"Success! Database has been set to the state from "+l}))})).catch((function(e){b(Object(f.jsx)("span",{style:{color:"red"},children:e.message}))})).then((function(){n(!1)}))},children:[Object(f.jsx)(m.a,{})," Restore"]})]}),Object(f.jsx)("br",{})]},a)}return Object(f.jsx)(c.a.Fragment,{},a)}))]})}function je(e){var t=Object(i.useState)(!1),a=Object(d.a)(t,2),s=a[0],n=a[1],l=Object(i.useState)(""),r=Object(d.a)(l,2),j=r[0],b=r[1],u=[{page:"Class",url:"/admin/class",table:"/class"},{page:"Class Data",url:"/admin/classdata",table:"/class_level_data"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data"},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill"},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data"},{hr:!0},{page:"Weapons",url:"/admin/weapons",table:"/weapon"},{page:"Weapon Existence Data",url:"/admin/weaponexistencedata",table:"/weapon_existence_data"},{page:"Weapon Types",url:"/admin/weapontypes",table:"/weapon_type"},{page:"Class-Weapon Compatibility",url:"/admin/classweaponcompatibility",table:"/class_weapon_type_data",duplicate:!0},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art"},{hr:!0},{page:"Armor",url:"/admin/armor",table:"/armor"},{page:"Potentials",url:"/admin/potentials",table:"/potential"},{page:"Potential Data",url:"/admin/potentialdata",table:"/potential_data"},{hr:!0},{page:"Builds",url:"/admin/builds",table:"/builds"},{hr:!0},{page:"Skills",url:"/admin/skills",table:"/skill"},{page:"Skill Types",url:"/admin/skilltypes",table:"/skill_type"},{page:"Skill Data",url:"/admin/skilldata",table:"/skill_data"},{page:Object(f.jsx)("span",{style:{color:"gold"},children:"Skill Tree Editor"}),url:"/admin/skilltreeeditor",render:Object(f.jsx)(y,{setUpdate:e.setUpdate,password:j,BACKENDURL:ie(e),GetData:e.DATA})},{page:"Skill Tree Data",url:"/admin/skilltreedata",table:"/skill_tree_data"},{page:"Photon Arts",url:"/admin/photonarts",table:"/photon_art",duplicate:!0},{page:"Class Skills",url:"/admin/classskills",table:"/class_skill",duplicate:!0},{page:"Class Skill Data",url:"/admin/classskilldata",table:"/class_skill_data",duplicate:!0},{hr:!0},{page:"Augments",url:"/admin/augments",table:"/augment"},{page:"Augment Types",url:"/admin/augmenttypes",table:"/augment_type"},{hr:!0},{page:"Enemy Data",url:"/admin/enemydata",table:"/enemy_data"},{hr:!0},{page:"Food",url:"/admin/food",table:"/food"},{page:"Food Multipliers",url:"/admin/foodmultipliers",table:"/food_mult"},{hr:!0},{page:"Roles",url:"/admin/roles",table:"/roles"},{page:"Users",url:"/admin/users",table:"/users"},{hr:!0},{page:"Misc. Site Data",url:"/admin/sitedata",table:"/site_data"},{page:"Database Audit",url:"/admin/database_audit",table:"/database_audit"}];return Object(f.jsx)("div",{className:"adminMain",children:s?Object(f.jsxs)(f.Fragment,{children:[Object(f.jsxs)("div",{className:"box boxAdminNav",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Navigation"})}),Object(f.jsxs)("p",{children:["Testing Mode ",Object(f.jsxs)("span",{children:[Object(f.jsx)(o.a,{checked:e.TESTMODE,onChange:function(t){e.setTESTMODE(t.target.checked)}})," ",e.TESTMODE?Object(f.jsx)("b",{children:"ON"}):Object(f.jsx)("b",{children:"OFF"})]})]}),Object(f.jsx)("div",{className:"adminNavContainer customScrollbar",children:Object(f.jsxs)(se,{classes:"adminNav",children:[u.map((function(e,t){return e.hr?Object(f.jsx)("hr",{},t):Object(f.jsxs)(c.a.Fragment,{children:[Object(f.jsx)(P.a,{to:""+e.url,children:e.page}),Object(f.jsx)("br",{})]},t)})),Object(f.jsx)(P.a,{to:"/admin/database_manager",children:"Database Manager"}),Object(f.jsx)("br",{})]})})]}),u.map((function(t,a){var i;return void 0===t.duplicate&&void 0===t.hr&&Object(f.jsx)(D.a,{path:""+t.url,children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:t.page})}),Object(f.jsxs)("div",{className:"adminContainer customScrollbar",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Admin Panel: "+t.page})}),null!==(i=t.render)&&void 0!==i?i:Object(f.jsx)(le,{TESTMODE:e.TESTMODE,password:j,BACKENDURL:ie(e),path:t.table})]})]})},a)})),Object(f.jsx)(D.a,{path:"/admin/database_manager",children:Object(f.jsxs)("div",{className:"box boxAdminContent",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Database Editor"})}),Object(f.jsx)("div",{className:"adminContainer",children:Object(f.jsx)(re,{password:j,BACKENDURL:ie(e)})})]})})]}):Object(f.jsx)("div",{className:"modalOverlay",children:Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxAdmin",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:"Admin"})}),Object(f.jsx)("p",{}),Object(f.jsx)("input",{type:"password",value:j,onChange:function(e){b(e.currentTarget.value)},onKeyDown:function(t){"Enter"===t.key&&$.post(ie(e)+"/passwordcheck",{pass:j}).then((function(e){e.data.verified&&n(e.data.verified)})).catch((function(e){n(!1),b("")}))}})]})})})})}function de(e){var t=Object(i.useState)(e.value),a=Object(d.a)(t,2),c=a[0],s=a[1];return Object(i.useEffect)((function(){s(e.value)}),[e.value]),Object(f.jsxs)(f.Fragment,{children:[Object(f.jsx)("input",{value:c,onChange:function(t){s(t.currentTarget.value),e.callback(t.currentTarget.value)}})," (",c,")",Object(f.jsx)("br",{})]})}function be(e){var t=Object(i.useState)({}),a=Object(d.a)(t,2),c=a[0],s=a[1];Object(i.useEffect)((function(){$.get(e.BACKENDURL+"/augment").then((function(e){var t={};e.data.rows.forEach((function(e){t[e.name]=e})),s(t)}))}),[e.BACKENDURL]);var n={weapon:{augments:["1","2"]},armor1:{augments:["2"]},armor2:{augments:[]},armor3:{augments:[]}};Object(i.useEffect)((function(){if(Object.keys(c).length>0){for(var e=[{field:"variance",variable:0},{field:"mel_dmg",variable:0}],t=0,a=[n.weapon,n.armor1,n.armor2,n.armor3];t20)throw new Error("Username must be less than 21 characters in length.");if(j.length<6)throw new Error("Password must contain at least 6 characters.");if(j!==u)throw new Error("Password fields must match.");if(!m.includes("@"))throw new Error("Invalid E-mail.")}catch(a){var t;return z(null!==(t=null===a||void 0===a?void 0:a.message)&&void 0!==t?t:a),void A(!1)}$.post(ie(e)+"/register",{username:c,password:Z()(j),email:m}).then((function(t){t.data.verified?(e.setLOGGEDINUSER(c),e.setLOGGEDINHASH(Z()(j)),s(""),b(""),k(!1)):z("Could not authenticate!")})).catch((function(e){var t;z(null!==(t=null===e||void 0===e?void 0:e.message)&&void 0!==t?t:e)})).then((function(){A(!1)}))},children:"Login"})]})})})}var ge=function(){var e=Object(i.useState)("Dudley"),t=Object(d.a)(e,1)[0],a=Object(i.useState)("Fatimah"),c=Object(d.a)(a,1)[0],s=Object(i.useState)("Ranger"),n=Object(d.a)(s,1)[0],l=Object(i.useState)("Force"),r=Object(d.a)(l,1)[0],j=Object(i.useState)(20),b=Object(d.a)(j,1)[0],o=Object(i.useState)(15),u=Object(d.a)(o,1)[0],O=Object(i.useState)(1330),g=Object(d.a)(O,1)[0],x=Object(i.useState)(388),m=Object(d.a)(x,1)[0],p=Object(i.useState)(154),S=Object(d.a)(p,1)[0],v=Object(i.useState)(282),N=Object(d.a)(v,1)[0],k=Object(i.useState)(650),y=Object(d.a)(k,1)[0],P=Object(i.useState)(282),E=Object(d.a)(P,2),T=E[0],M=E[1];Object(i.useEffect)((function(){M(Number(N)+Number(y))}),[N,y]);var A=Object(i.useState)(932),Y=Object(d.a)(A,1)[0],X=Object(i.useState)(.317),F=Object(d.a)(X,1)[0],_=Object(i.useState)(.241),w=Object(d.a)(_,1)[0],R=Object(i.useState)(.241),G=Object(d.a)(R,1)[0],L=Object(i.useState)(.18),B=Object(d.a)(L,1)[0],I=Object(i.useState)(0),U=Object(d.a)(I,1)[0],W=Object(i.useState)(0),H=Object(d.a)(W,1)[0],K=Object(i.useState)(0),q=Object(d.a)(K,1)[0],V=Object(i.useState)(0),Q=Object(d.a)(V,1)[0],Z=Object(i.useState)(0),ee=Object(d.a)(Z,1)[0],ce=Object(i.useState)(0),se=Object(d.a)(ce,1)[0],ne=Object(i.useState)(0),le=Object(d.a)(ne,1)[0],re=Object(i.useState)(!1),de=Object(d.a)(re,2),oe=de[0],he=de[1],ge=Object(i.useState)(void 0),xe=Object(d.a)(ge,2),me=xe[0],pe=xe[1],fe=Object(i.useState)({GetData:function(){}}),Se=Object(d.a)(fe,2),ve=Se[0],Ne=Se[1],ke=Object(i.useState)(!1),ye=Object(d.a)(ke,2),De=ye[0],Ce=ye[1],Pe=Object(i.useState)(""),ze=Object(d.a)(Pe,2),Ee=ze[0],Te=ze[1],Me=Object(i.useState)(""),Ae=Object(d.a)(Me,2),Ye=Ae[0],Xe=Ae[1];function Fe(e,t,a,i){void 0===t&&(t=""),void 0===a&&(a="");var c=i?ve:me;return c&&void 0!==c?void 0!==c[e]?void 0!==c[e][t]?void 0!==c[e][t][a]?c[e][t][a]:c[e][t]:c[e]:c:"no data"}return Object(i.useEffect)((function(){De&&(Ce(!1),$.get(ie({TESTMODE:oe})+"/data").then((function(e){pe(e.data)})),$.get(ie({TESTMODE:oe})+"/dataid").then((function(e){Ne(e.data)})))}),[De,oe]),Object(i.useEffect)((function(){$.get(ie({TESTMODE:oe})+"/data").then((function(e){pe(e.data)})),$.get(ie({TESTMODE:oe})+"/dataid").then((function(e){Ne(e.data)}))}),[oe]),Object(f.jsx)(f.Fragment,{children:Object(f.jsx)(C.a,{children:Object(f.jsxs)(D.c,{children:[Object(f.jsxs)(D.a,{path:"/admin",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Admin Panel"})}),Object(f.jsx)(je,{setUpdate:Ce,setTESTMODE:he,BACKENDURL:te,TESTMODE:oe,DATA:Fe})]}),Object(f.jsxs)(D.a,{path:"/test",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:"Test - "+ae})}),Object(f.jsx)(z,{}),Object(f.jsx)(J,{author:t,buildName:c,className:n,secondaryClassName:r,classLv:b,secondaryClassLv:u,bp:g,hp:m,pp:S,def:Y,weaponUp1:F,weaponUp2:w,weaponUp3:G,damageResist:B,burnResist:U,shockResist:H,panicResist:q,stunResist:Q,freezeResist:ee,blindResist:se,poisonResist:le,statDisplayAtk:T,GetData:Fe})]}),Object(f.jsxs)(D.a,{path:"/login",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Login"})}),Object(f.jsx)(z,{}),Object(f.jsx)(ue,{BACKENDURL:te,TESTMODE:oe,LOGGEDINUSER:Ee,LOGGEDINHASH:Ye,setLOGGEDINHASH:Xe,setLOGGEDINUSER:Te})]}),Object(f.jsxs)(D.a,{path:"/register",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae+" - Register"})}),Object(f.jsx)(z,{}),Object(f.jsx)(Oe,{BACKENDURL:te,TESTMODE:oe,LOGGEDINUSER:Ee,LOGGEDINHASH:Ye,setLOGGEDINHASH:Xe,setLOGGEDINUSER:Te})]}),Object(f.jsx)(D.a,{path:"/formula",children:Object(f.jsx)(be,{})}),Object(f.jsxs)(D.a,{path:"/",children:[Object(f.jsx)(h.a,{children:Object(f.jsx)("title",{children:ae})}),Object(f.jsxs)("div",{className:"modalOverlaySplash",children:[Object(f.jsx)("div",{className:"modal",children:Object(f.jsxs)("div",{className:"box boxMisc",children:[Object(f.jsx)("div",{className:"boxTitleBar",children:Object(f.jsx)("h1",{children:Fe("site_data","h1","data")})}),Object(f.jsx)("h2",{children:Fe("site_data","h2","data")}),Object(f.jsxs)("p",{children:[Object(f.jsx)("img",{src:"/spinner.gif",alt:""}),Fe("site_data","UNDER_CONSTRUCTION_TEXT","data")]}),Object(f.jsx)("br",{style:{clear:"both"}})]})}),Object(f.jsxs)("footer",{children:[Object(f.jsx)("a",{href:"https://github.com/sigonasr2/ngsplanner/",children:Object(f.jsx)("span",{className:"github",children:"\xa0"})}),Object(f.jsx)("a",{href:"https://twitter.com/ngsplanner",children:Object(f.jsx)("span",{className:"twitter",children:"@NGSPlanner"})})]})]})]})]})})})},xe=function(e){e&&e instanceof Function&&a.e(3).then(a.bind(null,159)).then((function(t){var a=t.getCLS,i=t.getFID,c=t.getFCP,s=t.getLCP,n=t.getTTFB;a(e),i(e),c(e),s(e),n(e)}))};n.a.render(Object(f.jsx)(c.a.StrictMode,{children:Object(f.jsx)(ge,{})}),document.getElementById("root")),xe()},77:function(e,t,a){},78:function(e,t,a){},79:function(e,t,a){}},[[150,1,2]]]); -//# sourceMappingURL=main.ec7dbe44.chunk.js.map \ No newline at end of file diff --git a/static/js/main.ec7dbe44.chunk.js.map b/static/js/main.ec7dbe44.chunk.js.map deleted file mode 100644 index d47d014..0000000 --- a/static/js/main.ec7dbe44.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["skilltree/skillTree.js","skilltree/skillTreeSelector.js","skilltree/skillTreeEditor.js","TestHeader.js","DEFAULTS.js","components/ExpandTooltip.js","TestPanel.js","App.js","reportWebVitals.js","index.js"],"names":["SkillTree","p","canvasRef","useRef","useState","width","setWidth","height","setHeight","useEffect","gridSizeX","gridDimensionsX","gridPaddingX","gridSizeY","Math","ceil","gridDimensionsY","halflineheight","gridPaddingY","skillLines","context","current","getContext","clearRect","fillStyle","strokeStyle","lineWidth","setLineDash","lineDash","y","line","x","split","char","padX","padY","beginPath","moveTo","lineTo","stroke","fillRect","ref","style","className","children","SkillTreeSelector","GetData","skillList","setSkillList","cl","onChange","f","callback","currentTarget","value","Number","position","left","ADJUSTMENT","top","defaultValue","map","ch","skillCallback","skill","Object","keys","filter","class_id","id","name","SkillTreeEditor","useMemo","firstLoad","setFirstLoad","classList","setClassList","skillTreeData","setSkillTreeData","setCl","lineColor","setLineColor","setLineWidth","dimensionX","setDimensionX","dimensionY","setDimensionY","setGridSizeX","setGridSizeY","setGridPaddingX","setGridPaddingY","renderedInputs","setRenderedInputs","skillLinesTemp","setSkillLinesTemp","setSkillLines","skillData","setSkillData","message","setMessage","loading","setLoading","setHalfLineHeight","GetSkills","useCallback","filtered","length","undefined","found","data","skill_data","line_color","line_width","gridsizex","gridsizey","gridpaddingx","gridpaddingy","skillTreeString","push","repeat","controls","string","stringLine","newSkillData","s","join","newSkill","src","alt","htmlFor","isNaN","c","onClick","axios","post","BACKENDURL","pass","password","slice","str","then","color","setUpdate","catch","err","control","i","Fragment","type","TestHeader","href","DisplayIcon","icon","process","ExpandTooltip","data-tip","data-tip-disable","tooltip","data-for","overridePosition","currentEvent","node","d","document","documentElement","min","clientWidth","clientHeight","max","EditBox","timer1","setTimeout","getElementById","focus","select","clearTimeout","edit","onKeyDown","e","key","setEdit","maxLength","maxlength","onBlur","setName","originalName","EditBoxInput","setData","prefix","PageControlButton","onPageChange","pageName","setCurrentPage","page","currentPage","pageDisplay","PageControl","pages","pageNames","Class","CLASSES","class_obj","EditableClass","setClassNameSetter","editClass","setClassSelectWindowOpen","PopupWindow","ariaHideApp","isOpen","modalOpen","onRequestClose","setModalOpen","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldCloseOnEsc","overlayClassName","title","showCloseButton","setPage","SelectorWindow","onModalOpen","itemList","setItemList","tabPage","setTabPage","sortItems","sortSelector","setSortSelector","setFilter","dataFunction","item","placeholder","filterFunction","searchFieldFunction","sort","a","b","sortOrderFunction","displayFunction","LeftButton","RightButton","ClassSelectorWindow","setTitle","setEditClass","pageSetter","dat1","class","subClass","setClassName","setSubClassName","GetSpecialWeaponName","special_name","SkillBox","gridArea","String","fromCharCode","charCodeAt","skillPointData","boxId","maxPoints","temp","points","tempData","setPoints","setSkillPointData","SkillTreeBoxes","GetHighestLevel","skillInfo","highestLevel","class_skill_id","level","skillTreeSkillData","splitter","numb","SkillTreeContainer","setSkillTreeSkillData","skillTreeLineColor","setSkillTreeLineColor","skillTreeLineWidth","setSkillTreeLineWidth","skillTreeDimensionX","setSkillTreeDimensionX","skillTreeDimensionY","setSkillTreeDimensionY","skillTreeGridSizeX","setSkillTreeGridSizeX","skillTreeGridSizeY","setSkillTreeGridSizeY","skillTreeGridPaddingX","setSkillTreeGridPaddingX","skillTreeGridPaddingY","setSkillTreeGridPaddingY","skillTree","TestPanel","bpGraphMax","setbpGraphMax","hpGraphMax","sethpGraphMax","ppGraphMax","setppGraphMax","atkGraphMax","setatkGraphMax","defGraphMax","setdefGraphMax","author","setauthor","buildName","setbuildName","subclassName","setLevel","secondaryLevel","setsecondaryLevel","effectPage","setEffectPage","weaponPage","setWeaponPage","statPage","setStatPage","classSelectWindowOpen","classSkillTreeWindowOpen","setClassSkillTreeWindowOpen","treePage","setTreePage","weaponSelectWindowOpen","setWeaponSelectWindowOpen","armorSelectWindowOpen","setArmorSelectWindowOpen","selectedWeapon","setSelectedWeapon","selectedArmor1","setSelectedArmor1","selectedArmor2","setSelectedArmor2","selectedArmor3","setSelectedArmor3","armorSlotSelection","setArmorSlotSelection","classNameSetter","rarityCheck","v","rarity","bp","pointsArr","pointsDataArr","textAlign","background","hp","pp","statDisplayAtk","def","weaponUp1","toFixed","weaponUp3","weaponUp2","burnResist","shockResist","panicResist","stunResist","freezeResist","blindResist","poisonResist","damageResist","Array","isArray","weapon_existence_data","weapon_type","weapon_type_id","weapon","weapon_id","potential","potential_id","potential_all","potential_tooltip","pot","includes","searchText","toLowerCase","itemA","itemB","atk","description","it","ii","armor","slot","mel_dmg","rng_dmg","tec_dmg","require","parse","REACT_APP_GITPOD_WORKSPACE_URL","REACT_APP_BACKENDURL","APP_TITLE","GetBackendURL","TESTMODE","Box","Table","classes","InputBox","setValue","failed","setFailed","sending","setSending","changeFunc","callback4","blurFunc","callback3","keydownFunc","callback2","disabled","lockSubmission","includeBlankValue","username","TableEditor","initialVals","fields","setFields","update","useReducer","state","field","submitVals","setSubmitVal","dependencies","setDependencies","importAllowed","setImportAllowed","setLockSubmission","path","dependency_map","get","cols","rows","col","promise_list","forEach","replace","Promise","allSettled","reader","FileReader","onload","ev","promises","target","result","columns","skip_empty_lines","entry","dataTypeID","readAsText","files","opacity","accept","dat","checked","delete","alert","SubmitDeletion","scope","display","JSON","stringify","response","patch","patchValue","blur","DatabaseEditor","databases","setDatabases","console","log","backgroundColor","fontSize","lineHeight","db","label","datname","dateStr","date","Date","database","AdminPanel","verified","setVerified","setPassword","navigationData","url","table","hr","duplicate","render","DATA","setTESTMODE","nav","to","Helmet","EditStatBox","DamageCalculator","augmentData","setAugmentData","character","augments","armor1","armor2","armor3","searchFields","variable","equip","variance","setAugDmgVariance","rawDmg","setRawDmg","weaponTotalAtk","setWeaponTotalAtk","weaponBaseAtk","setWeaponBaseAtk","weaponEnhanceLv","setweaponEnhanceLv","dmgVariance","setDmgVariance","weaponDmgVariance","setWeaponDmgVariance","augDmgVariance","baseAtk","setBaseAtk","enemyDef","setEnemyDef","multipliers","setMultipliers","atkmult","setAtkMult","partmult","setPartMult","elementalWeaknessMult","setElementalWeaknessMult","mainClassWeaponBoost","setMainClassWeaponBoost","classSkillMult","setClassSkillMult","equipMult","setEquipMult","augmentEquipMult","setAugmentEquipMult","potencyFloorEquipMult","setPotencyFloorEquipMult","elementalWeaponEquipMult","setElementalWeaponEquipMult","critMult","setCritMult","appropriateDistance","setAppropriateDistance","foodBoost","setFoodBoost","fieldEffects","setFieldEffects","statusAilments","setStatusAilments","enemyCorrectionMult","setEnemyCorrectionMult","highLevelEnemy","setHighLevelEnemy","val","FormField","for","VerifyLogin","LOGGEDINUSER","LOGGEDINHASH","history","LoginForm","setUsername","rememberMe","setRememberMe","error","setError","useHistory","SubmitLogin","md5","setLOGGEDINUSER","setLOGGEDINHASH","marginTop","RegisterForm","password2","setPassword2","email","setEmail","Error","App","secondaryClassName","classLv","secondaryClassLv","setstatDisplayAtk","setDATA","DATAID","setDATAID","row","clear","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.ec7dbe44.chunk.js","sourcesContent":["import { useRef,useEffect,useState } from 'react';\n\nfunction SkillTree(p) {\n const canvasRef = useRef(null)\n const [width,setWidth] = useState(0)\n const [height,setHeight] = useState(0)\n \n useEffect(() => {\n setWidth(p.gridSizeX*p.gridDimensionsX+p.gridPaddingX*(p.gridDimensionsX-1))\n setHeight(p.gridSizeY*Math.ceil(p.gridDimensionsY/2)+p.halflineheight*Math.ceil((p.gridDimensionsY-1)/2)+p.gridPaddingY*(p.gridDimensionsY-1))\n }, [p.halflineheight,p.skillLines,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.gridDimensionsX,p.gridDimensionsY])\n\n useEffect(()=>{\n const canvas = canvasRef.current\n const context = canvas.getContext('2d')\n context.clearRect(0,0,width,height)\n context.fillStyle = 'rgba(100,100,100,0.5)'\n context.strokeStyle=p.strokeStyle\n context.lineWidth=p.lineWidth //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineWidth\n context.setLineDash(p.lineDash) //https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash\n var y=0\n for (var line of p.skillLines) {\n var x=0\n for (var char of line.split('')) {\n var padX = x!==0?p.gridPaddingX*x:0\n var padY = y!==0?p.gridPaddingY*y:0\n switch (char) {\n case \"─\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"│\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"└\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┌\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┘\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┐\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"├\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┤\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┬\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.stroke();break;\n case \"┴\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"┼\":context.beginPath();context.moveTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)-p.gridPaddingY);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX/2,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+p.gridSizeY+p.gridPaddingY);context.moveTo(x*p.gridSizeX+(padX)-p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.lineTo(x*p.gridSizeX+(padX)+p.gridSizeX+p.gridPaddingX,Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY)+(y%2===1?p.halflineheight:p.gridSizeY)/2);context.stroke();break;\n case \"□\":context.clearRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);context.fillRect(x*p.gridSizeX+(padX), Math.ceil(y/2)*p.gridSizeY+Math.ceil((y-1)/2)*p.halflineheight+(padY), p.gridSizeX, y%2===1?p.halflineheight:p.gridSizeY);break;\n default:\n }\n x++\n }\n y++\n }\n },[width,height,p.gridSizeX,p.gridSizeY,p.gridPaddingX,p.gridPaddingY,p.lineDash,p.lineWidth,p.skillLines,p.strokeStyle,p.halflineheight])\n \n return {p.children}\n}\n\nexport {SkillTree}","import { useEffect, useState } from 'react'\n\nfunction SkillTreeSelector(p) {\n\n const { GetData } = p\n\n const [skillList,setSkillList] = useState([])\n\n useEffect(()=>{\n setSkillList(GetData(\"class_skill\"))\n },[p.cl,GetData])\n\n return <>\n \n {p.defaultValue==='□'&&}\n \n\n} \n\nexport {SkillTreeSelector}","import { SkillTree } from \"./skillTree\";\nimport React, { useEffect,useState,useMemo,useCallback } from \"react\";\nimport { SkillTreeSelector } from \"./skillTreeSelector\";\nimport axios from \"axios\";\n\nfunction SkillTreeEditor(p) {\n const { GetData } = p\n\n const ADJUSTMENT = useMemo(()=>[-32,32],[])\n\n const [firstLoad,setFirstLoad] = useState(true)\n\n const [classList,setClassList] = useState({})\n const [skillTreeData,setSkillTreeData] = useState({})\n const [cl,setCl] = useState(-1)\n const [lineColor,setLineColor] = useState(\"#000000\")\n const [lineWidth,setLineWidth] = useState(3)\n const [dimensionX,setDimensionX] = useState(6)\n const [dimensionY,setDimensionY] = useState(6)\n const [gridSizeX,setGridSizeX] = useState(80)\n const [gridSizeY,setGridSizeY] = useState(60)\n const [gridPaddingX,setGridPaddingX] = useState(10)\n const [gridPaddingY,setGridPaddingY] = useState(10)\n const [renderedInputs,setRenderedInputs] = useState([])\n const [skillLinesTemp,setSkillLinesTemp] = useState([])\n const [skillLines,setSkillLines] = useState([])\n const [skillData,setSkillData] = useState([])\n const [message,setMessage] = useState(\"\")\n const [loading,setLoading] = useState(false)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n const GetSkills = useCallback((x,y)=>{\n var filtered = skillData.filter((skill)=>Number(skill.split(\",\")[0])===Number(x)&&Number(skill.split(\",\")[1])===Number(y))\n if (filtered.length>0) {\n return filtered[0]\n } else {\n return \"\"\n }\n },[skillData])\n\n function SaveSkillTrees() {\n axios.post(p.BACKENDURL+\"/saveskilltree\",{\n pass:p.password,\n data:skillLines.slice(0,dimensionY).map((str)=>str.slice(0,dimensionX)).join(','),\n skill_data:skillData.join(';'),\n line_color:lineColor,\n line_width:lineWidth,\n gridsizex:gridSizeX,\n gridsizey:gridSizeY,\n gridpaddingx:gridPaddingX,\n gridpaddingy:gridPaddingY,\n halflineheight:halflineheight,\n class_id:cl\n })\n .then((data)=>{\n if (data.data===\"OK!\") {\n setMessage({\"Successfully saved skill tree for \"+p.GetData(\"class\",undefined,undefined,true)[cl].name+\"!\"})\n p.setUpdate(true)\n }\n })\n .catch((err)=>{\n setMessage({err.message})\n })\n .then(()=>{\n setLoading(false)\n })\n }\n\n useEffect(()=>{\n setClassList(GetData(\"class\",undefined,undefined,true))\n setSkillTreeData(GetData(\"skill_tree_data\",undefined,undefined,true))\n },[GetData])\n\n useEffect(()=>{\n var keys = Object.keys(skillTreeData)\n var found = false\n for (var id of keys) {\n //console.log(cl+\"/\"+skillTreeData[id].class_id)\n if (Number(skillTreeData[id].class_id)===Number(cl)) {\n var data = skillTreeData[id].data?.split(',')\n var skill = skillTreeData[id].skill_data?.split(';')\n setSkillLinesTemp(data)\n setSkillData(skill)\n setDimensionX(data[0].length)\n setDimensionY(data.length)\n setLineColor(skillTreeData[id].line_color)\n setLineWidth(skillTreeData[id].line_width)\n setGridSizeX(skillTreeData[id].gridsizex)\n setGridSizeY(skillTreeData[id].gridsizey)\n setGridPaddingX(skillTreeData[id].gridpaddingx)\n setGridPaddingY(skillTreeData[id].gridpaddingy)\n setHalfLineHeight(skillTreeData[id].halflineheight)\n found=true\n }\n }\n if (!found) {\n setSkillLinesTemp([])\n setSkillData([])\n setDimensionX(6)\n setDimensionY(6)\n }\n },[skillTreeData,cl])\n\n useEffect(()=>{\n if (firstLoad) {\n setCl(Number(Object.keys(classList)[0]))\n setFirstLoad(false)\n }\n },[classList,firstLoad])\n\n useEffect(()=>{\n var skillTreeString = [...skillLinesTemp]\n\n while (skillTreeString.length{\n var controls = []\n for (var y=0;y{\n var string = [...skillLines]\n var stringLine = string[y].split('')\n var newSkillData = [...skillData]\n stringLine[x] = char\n if (char!==\"□\") {\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=\"\"\n setSkillData(newSkillData)\n break;\n }\n }\n }\n string[y] = stringLine.join('')\n setSkillLinesTemp(string)\n }\n } skill={GetSkills(x,y)} skillCallback={(x,y,skill)=>{\n var newSkillData = [...skillData]\n var found=false\n var newSkill = x+\",\"+y+\",\"+skill\n for (var s in newSkillData) {\n var split = newSkillData[s].split(',')\n if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {\n newSkillData[s]=newSkill\n found=true\n break;\n }\n }\n if (!found) {\n newSkillData.push(newSkill)\n }\n setSkillData(newSkillData)\n }} ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY} halflineheight={halflineheight}/>)\n }\n }\n }\n setRenderedInputs(controls)\n },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX,skillData,halflineheight,GetData,ADJUSTMENT,GetSkills])\n\n return <>\n {loading?\"\"/:<>\n

    {message}

    \n \n
    \n
    \n {p.GetData(\"class\",undefined,undefined,true)[cl]?.name&&}\n
    \n \n {renderedInputs.map((control,i)=>{control})}\n
    \n
    \n
    \n {setLineColor(f.currentTarget.value)}}/>
    \n {setLineWidth(f.currentTarget.value)}}/>
    \n {setDimensionX(f.currentTarget.value)}}/>
    \n {setDimensionY(f.currentTarget.value)}}/>
    \n {setHalfLineHeight(f.currentTarget.value)}}/>
    \n {setGridSizeX(f.currentTarget.value)}}/>
    \n {setGridSizeY(f.currentTarget.value)}}/>
    \n {setGridPaddingX(f.currentTarget.value)}}/>
    \n {setGridPaddingY(f.currentTarget.value)}}/>
    \n\n
    }\n \n}\n\nexport {SkillTreeEditor}","import React from 'react';\n\nfunction TestHeader() {\n return ( \n
    \n \n
    \n )\n }\n\nexport default TestHeader;","const NICONICONII = process.env.PUBLIC_URL+\"/icons/nicodotpng.png.png\"\n\nfunction DisplayIcon(icon) {\n //console.log(icon)\n return icon&&icon.length>0?process.env.PUBLIC_URL+icon:NICONICONII\n}\n\nexport {NICONICONII,DisplayIcon};","import ReactTooltip from 'react-tooltip' //https://wwayne.github.io/react-tooltip/\n\nfunction ExpandTooltip(p) {\n\n\treturn <>{p.children} {\n const d = document.documentElement;\n left = Math.min(d.clientWidth - node.clientWidth, left);\n top = Math.min(d.clientHeight - node.clientHeight, top);\n left = Math.max(0, left);\n top = Math.max(0, top);\n return { top, left }\n} }>{p.tooltip}\n}\n\nexport {ExpandTooltip}","import React, { useEffect,useState } from 'react';\nimport Modal from 'react-modal'\nimport { DisplayIcon } from './DEFAULTS';\nimport { ExpandTooltip } from './components/ExpandTooltip';\nimport { SkillTree } from './skilltree/skillTree';\n\n//Helper variables for Weapon selector with structure: [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\nconst WEAPON_WEAPONTYPE=0;const WEAPON_WEAPON=1;const WEAPON_POTENTIAL=2;const WEAPON_POTENTIAL_TOOLTIP=3;const WEAPON_EXISTENCE_DATA=4;\n\nfunction EditBox(p) {\n\tuseEffect(()=>{\n\t\tvar timer1 = setTimeout(()=>{\n document.getElementById(\"editBoxInput\").focus()\n document.getElementById(\"editBoxInput\").select()\n },100)\n\t\treturn () => {\n\t\t\tclearTimeout(timer1);\n\t\t};\n\t},[p.edit])\n\treturn {\n\t\tif (e.key===\"Enter\") {p.setEdit(false)}\n\t\telse if (e.key===\"Escape\") {p.setEdit(false)}\n\t}}\tmaxLength={p.maxlength?p.maxlength:20} onBlur={()=>{p.setEdit(false)}} value={p.value} onChange={(f)=>{f.currentTarget.value.length>0?p.setName(f.currentTarget.value):p.setName(p.originalName)}}>\n\t\n}\n\nfunction EditBoxInput(p) {\n\tconst [edit,setEdit] = useState(false)\n\t\n\tuseEffect(()=>{\n\t\tif (p.callback) {\n\t\t\tp.callback()\n\t\t}\n\t},[edit,p])\n\t\n\treturn <>\n\t\t
    {setEdit(true)}}>\n\t\t\t{edit?\n\t\t\t\n\t\t\t:<>{p.prefix}{p.data}}\n\t\t
    \n\t\n}\n\nfunction PageControlButton(p) {\n\treturn
  • {if (p.onPageChange) {p.onPageChange(p.pageName)} p.setCurrentPage(p.page)}} className={(p.currentPage===p.page)?\"selected\":\"unselected\"}>{p.pageDisplay?p.pageDisplay[p.page-1]:p.pageName?p.pageName:p.page}
  • \n}\n\nfunction PageControl(p) {\n\tvar pages = []\n\tfor (var i=0;i)\n\t}\n if (p.children!==undefined) {\n pages.push(
  • {p.children}
  • )\n }\n //console.log(JSON.stringify(p.children))\n\treturn pages.length>0&&
      \n\t\t\t{pages.map((page,i)=>{return {page}})}\n\t\t
    \n}\n\nfunction Class(p) {\n const CLASSES = p.GetData(\"class\")\n\tconst class_obj = CLASSES[p.name]\n\treturn CLASSES!==\"no data\"?class_obj?<>\"\"{class_obj.name}:<>:<>\"\"Nico\n}\n\nfunction EditableClass(p){\n\treturn <>
    {p.setClassNameSetter(p.editClass);p.setClassSelectWindowOpen(true)}}>\n\t
    \n\t\n}\n\nfunction PopupWindow(p) {\n\n\treturn {p.setModalOpen(false)}} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n
    \n
    \n

    {p.title}

    \n {p.showCloseButton&&
    {p.setModalOpen(false)}}>
    }\n
    \n \n \n {p.children}\n
    \n\t
    \n}\n\nfunction SelectorWindow(p) {\n\n const { onModalOpen } = p\n\n const [itemList,setItemList] = useState([])\n\n const [tabPage,setTabPage] = useState(1)\n const [sortSelector,setSortSelector] = useState(p.sortItems?p.sortItems[0]:\"\")\n const [filter,setFilter] = useState(\"\")\n \n useEffect(()=>{\n if (p.dataFunction) {\n setItemList(p.dataFunction())\n }\n },[p])\n\n useEffect(()=>{\n if (onModalOpen) {\n onModalOpen(setTabPage)\n }\n },[onModalOpen])\n \n return \n {(p.sortItems||p.filter)&&
    \n
    \n {p.sortItems&&}\n
    \n
    \n {p.filter?{setFilter(f.currentTarget.value)}} />:<>}\n
    \n
    \n }\n
    \n
      \n {p.filter?itemList.filter((item)=>p.filterFunction(tabPage,item)).filter((item)=>p.searchFieldFunction(filter,item)).sort((a,b)=>p.sortOrderFunction(sortSelector,a,b)).map((item,i)=>{p.displayFunction(item)}):itemList.map((item,i)=>{p.displayFunction(item)})}\n {p.children}\n
    \n
    \n
    \n}\n\nfunction LeftButton(p){\n\treturn \n \n}\n\nfunction RightButton(p){\n\treturn \n \n}\nfunction ClassSelectorWindow(p) {\n const [title,setTitle] = useState(\"Select Main Class\")\n useEffect(()=>{\n setTitle((p.editClass)?\"Select Sub Class\":\"Select Main Class\")\n },[p.editClass])\n return {\n if (page===\"Main Class\") {\n p.setEditClass(0)\n } else {\n p.setEditClass(1)\n }\n }}\n onModalOpen={(pageSetter)=>{\n pageSetter((p.editClass)?2:1)\n }}\n dataFunction={() => {\n var dat1 = p.GetData(\"class\")\n return Object.keys(dat1)\n }\n }\n displayFunction={(key) => {\n return
  • {if (p.editClass===0){p.setClassName(key);p.setSubClassName(p.subClass===key?p.class:p.subClass)}else{p.setSubClassName(key);p.setClassName(p.class===key?p.subClass:p.class)}; p.setModalOpen(false) }}>\"\" {p.GetData(\"class\", key, \"name\")}
  • \n }}\n/>\n}\n\nfunction GetSpecialWeaponName(item) {\n return item[WEAPON_EXISTENCE_DATA]!==undefined?(item[WEAPON_EXISTENCE_DATA].special_name?.length>0)?item[WEAPON_EXISTENCE_DATA].special_name:(item[WEAPON_WEAPON].name+\" \"+item[WEAPON_WEAPONTYPE].name):\"\"\n}\n\nfunction ConvertCoordinate(x,y) {\n return (String.fromCharCode(Number(x)+'a'.charCodeAt(0)))+(y/2+1);\n}\n\nfunction SkillBox(p) {\n return
    \"\"{(p.skillPointData[p.page-1][p.boxId]?p.skillPointData[p.page-1][p.boxId]:0)+\"/\"+p.maxPoints}{typeof p.GetData(\"class_skill\",p.skill[2],\"name\",true)===\"string\"&&p.GetData(\"class_skill\",p.skill[2],\"name\",true)}
    \n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n while (tempData[p.page-1].length0) {\n temp[p.page-1]-=1\n tempData[p.page-1][p.boxId]-=1\n p.setPoints(temp)\n p.setSkillPointData(tempData)\n }}}/>\n {\n var temp=[...p.points]\n var tempData=[...p.skillPointData]\n while (tempData[p.page-1].length
    \n}\n\nfunction SkillTreeBoxes(p) {\n\n function GetHighestLevel(skill) {\n var skillInfo = Object.keys(p.GetData(\"class_skill_data\"))\n var highestLevel = 0\n for (var i=0;ihighestLevel) {\n highestLevel=skillData.level\n }\n }\n return highestLevel\n }\n\n function isLocked(skill) {\n return false\n }\n\n return <>\n {p.skillTreeSkillData&&p.skillTreeSkillData.map((skill,i)=>{\n var splitter = skill.split(\",\")\n return splitter[0]!==\"\"&&splitter[1]!==\"\"&&splitter[2]!==\"\"&&0?\"skillActive\":\"\"} boxId={i} skillPointData={p.skillPointData} setSkillPointData={p.setSkillPointData} page={p.page} cl={p.cl} maxPoints={GetHighestLevel(splitter[2])} points={p.points} setPoints={p.setPoints} GetData={p.GetData} skill={splitter.map((numb)=>Number(numb))}/>\n })}\n \n}\n\nfunction SkillTreeContainer(p){\n\n const { GetData } = p\n\n const [skillTreeData,setSkillTreeData] = useState([])\n const [skillTreeSkillData,setSkillTreeSkillData] = useState([])\n const [skillTreeLineColor,setSkillTreeLineColor] = useState(\"\")\n const [skillTreeLineWidth,setSkillTreeLineWidth] = useState(3)\n const [skillTreeDimensionX,setSkillTreeDimensionX] = useState(6)\n const [skillTreeDimensionY,setSkillTreeDimensionY] = useState(6)\n const [skillTreeGridSizeX,setSkillTreeGridSizeX] = useState(171)\n const [skillTreeGridSizeY,setSkillTreeGridSizeY] = useState(148)\n const [skillTreeGridPaddingX,setSkillTreeGridPaddingX] = useState(10)\n const [skillTreeGridPaddingY,setSkillTreeGridPaddingY] = useState(48)\n const [halflineheight,setHalfLineHeight] = useState(60)\n\n useEffect(()=>{\n if (Object.keys(GetData(\"skill_tree_data\")).length>1) {\n for (var skillTree of GetData(\"skill_tree_data\")) {\n if (skillTree.class_id===GetData(\"class\",p.cl,'id')) {\n var data = skillTree.data.split(\",\")\n var skillData = skillTree.skill_data.split(\";\")\n setSkillTreeData(data)\n setSkillTreeSkillData(skillData)\n setSkillTreeLineColor(skillTree.line_color)\n setSkillTreeLineWidth(skillTree.line_width)\n setSkillTreeDimensionX(data[0].length)\n setSkillTreeDimensionY(data.length)\n setSkillTreeGridSizeX(skillTree.gridsizex)\n setSkillTreeGridSizeY(skillTree.gridsizey)\n setSkillTreeGridPaddingX(skillTree.gridpaddingx)\n setSkillTreeGridPaddingY(skillTree.gridpaddingy)\n setHalfLineHeight(skillTree.halflineheight)\n break;\n }\n }\n }\n },[p.cl,GetData])\n\n return
    \n
    \n {}\n
    \n \n
    \n
    \n
    \n}\n\nfunction TestPanel(p) {\n\nconst { GetData } = p\n\nconst [bpGraphMax,setbpGraphMax] = useState(1000)\nconst [hpGraphMax,sethpGraphMax] = useState(1000)\nconst [ppGraphMax,setppGraphMax] = useState(1000)\nconst [atkGraphMax,setatkGraphMax] = useState(1000)\nconst [defGraphMax,setdefGraphMax] = useState(1000)\n\nconst [author,setauthor] = useState(\"Player\")\nconst [buildName,setbuildName] = useState(\"Character\")\nconst [className,setClassName] = useState(\"Ranger\")\nconst [subclassName,setSubClassName] = useState(\"Force\")\nconst [level,setLevel] = useState(20)\nconst [secondaryLevel,setsecondaryLevel] = useState(20)\n\nconst [effectPage,setEffectPage] = useState(1)\nconst [weaponPage,setWeaponPage] = useState(1)\nconst [statPage,setStatPage] = useState(1)\n\nconst [classSelectWindowOpen,setClassSelectWindowOpen] = useState(false)\nconst [classSkillTreeWindowOpen,setClassSkillTreeWindowOpen] = useState(false)\nconst [treePage,setTreePage] = useState(1)\nconst [weaponSelectWindowOpen,setWeaponSelectWindowOpen] = useState(false)\nconst [armorSelectWindowOpen,setArmorSelectWindowOpen] = useState(false)\n\nconst [selectedWeapon,setSelectedWeapon] = useState([])\nconst [selectedArmor1,setSelectedArmor1] = useState([])\nconst [selectedArmor2,setSelectedArmor2] = useState([])\nconst [selectedArmor3,setSelectedArmor3] = useState([])\nconst [armorSlotSelection,setArmorSlotSelection] = useState(1)\n\nconst [classNameSetter,setClassNameSetter] = useState(0)\n\nconst [points,setPoints] = useState([])\nconst [skillPointData,setSkillPointData] = useState([])\n\nfunction rarityCheck(v) {\n return v!==undefined?v.rarity!==undefined?\" r\"+v.rarity:\"\":\"\"\n}\n\nuseEffect(()=>{\n if (p.bp>1000) {\n setbpGraphMax(3000)\n sethpGraphMax(3000)\n setppGraphMax(3000)\n setatkGraphMax(3000)\n setdefGraphMax(3000)\n } else {\n setbpGraphMax(1000)\n sethpGraphMax(1000)\n setppGraphMax(1000)\n setatkGraphMax(1000)\n setdefGraphMax(1000)\n }\n},[p.bp]) \n\nuseEffect(()=>{\n var keys = Object.keys(GetData(\"class\"))\n var pointsArr = []\n var pointsDataArr = []\n for (var i=0;i\n
    \n
    \n
    \n
    \n

    Basic Information

    \n
    \n
    Author
    \n
    Build Name
    \n
    {setClassSelectWindowOpen(true)}}>Class
    \n
    {setClassSkillTreeWindowOpen(true)}}>Sub-Class
    \n
    \n
    \n
    Battle Power
    {p.bp}
     
    \n
    HP
    {p.hp}
     
    \n
    PP
    {p.pp}
     
    \n
    Attack
    {p.statDisplayAtk}
     
    \n
    Defense
    {p.def}
     
    \n\n
    Weapon Up
    \n
    \"\" +{(p.weaponUp1*100).toFixed(1)}%
    \n\"\" +{(p.weaponUp3*100).toFixed(1)}%
    \n
    \"\" +{(p.weaponUp2*100).toFixed(1)}%
    \n\n
    Ailment Resist.
    \n
    \n \"\" {(p.burnResist*100).toFixed(1)}%
    \n \"\" {(p.shockResist*100).toFixed(1)}%
    \n \"\" {(p.panicResist*100).toFixed(1)}%
    \n \"\" {(p.stunResist*100).toFixed(1)}%
    \n
    \n
    \n \"\" {(p.freezeResist*100).toFixed(1)}%
    \n \"\" {(p.blindResist*100).toFixed(1)}%
    \n \"\" {(p.poisonResist*100).toFixed(1)}%
    \n
    \n\n
    Damage Resist.
    {(p.damageResist*100).toFixed(1)}%
    \n\n
    \n
    \n
    \n
    \n

    Current Effects

    \n \n {effectPage===1?<>

    Effect Name

    • Food Boost Effect\n \n \n \n
        \n
      • \"\" [Meat] Potency +10.0%
      • \n
      • \"\" [Crisp] Potency to Weak Point +5.0%
      • \n
      \n
    • \n
    • Shifta / Deband\n
        \n
      • \"\" Potency +5.0%
      • \n
      • \"\" Damage Resistance +10.0%
      • \n
      \n
    • \n
    • Region Mag Boost\n
        \n
      • \"\" Potency +5.0%
      • \n
      \n
    :<>\n }\n
    \n
    \n
    \n
    \n
    \n

    Equip

    \n
    \n
    {setWeaponSelectWindowOpen(true)}} className=\"equipPaletteSlot\">

    Weapons

    1\"\"
    \n
    {setArmorSlotSelection(1);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor1)}>

    Armor 1

    \"\"
    \n
    {setArmorSlotSelection(2);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor2)}>

    Armor 2

    \"\"
    \n
    {setArmorSlotSelection(3);setArmorSelectWindowOpen(true)}} className={\"equipPaletteSlot\"+rarityCheck(selectedArmor3)}>

    Armor 3

    \"\"
    \n
    \n
    \n\n
    \n
    \n

    Equipped Weapon

    \n

    {GetSpecialWeaponName(selectedWeapon)}+40

    \n Edit Details\n {weaponPage === 1 ?\n\n<>\n
    \n
    \"\"
    \n
    \nRARITY
    \nATTACK
    \nELEMENT
    \nEQUIP CONDITIONS
    \nNOT TRADABLE\n
    \n
    \n\nPOTENTIAL PRESET SKILL\nAUGMENT \n\n\n\n
    \n
    \n\n\n\n\n\n :weaponPage === 3 ?\n
    \n
    \n

    Ability Details

    \n
      \n
    • \"\"Potency +20%/
      Critical Hit Rage +15% for 30 seconds after a successful sidestep
      Dynamo Unit Lv.3
    • \n
    • \"\"Potency +4%
      Fixa Attack Lv.3
    • \n
    • \"\"PP +5
      Ranged Weapon Potency +2.0%
      Pettas Soul II
    • \n
    • \"\"HP -10, Potency +1.5%,
      Potency Floor Increase +1.5%
      Damage Resistance -1.5%
      Alts Secreta II
    • \n
    • \"\"HP +10
      Ranged Weapon Potency +2.0%
      Gigas Precision II
    • \n
    • \"\"Ranged Weapon Potency +2.0%
      Precision III
    • \n
    • \"\"
    • \n
    \n
    \n
    \n

    Stat Adjustment

    \n
      \n
    • Enhancement Lv. +35
    • \n
    • Multi-Weapon -
    • \n
    • Element -
    • \n
    \n
    \n
    \n :\n <>hi2\n }\n\n\n
    \n\n\n\n\n
    \n
    \n

    To Do List

    \n
    \n
    UI
    \n
    Grids. Grids everywhere.
    \n
    Finish \"Item Details\" for Weapons/Armor
    \n
    Class Skill Window - Make it Scale
    \n
    PA Selector
    \n
    Food/Buffs Menu
    \n
    Get all the fckn icons
    \n
    Functionality
    \n
    Food/Buffs Menu
    \n
    PA Selector
    \n
    fOrMuLaS
    \n
    Data
    \n
    PA Selector
    \n
    Skill Trees
    \n
    \n
    \n\n\n\n\n\n\n\n\n
    \n
    \n
    \n
    \n

    Damage Stats

    \n \n \n \n {statPage===1?<>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n :<>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n
    Critical Hit Rate5%
    Critical Multiplier120%
    Midrange126
    Critical152
    Effective127
    Critical Hit Rate-
    Critical Multiplier-
    Midrange-
    Critical-
    Effective-
    \n
    \n
    \n
    \n\n\n { setClassSkillTreeWindowOpen(false) }} shouldFocusAfterRender={true} shouldCloseOnOverlayClick={true} shouldCloseOnEsc={true} className=\"modal\" overlayClassName=\"modalOverlay\">\n
    \n
    \n

    Class Skill Tree

    \n
    { setClassSkillTreeWindowOpen(false) }}>
    \n
    \n cl)} pageDisplay={Object.keys(p.GetData(\"class\")).map((cl)=><>\"\" {cl})} currentPage={treePage} setCurrentPage={setTreePage} />\n \n
    \n
    Your Skill Points{20-points[treePage-1]}
    \n
    SP{points[treePage-1]}
    \n
    \n
    ConfirmCancel
    \n
    \n
    \n\n{\n var dat1=p.GetData(\"weapon_existence_data\")\n return Array.isArray(dat1)?dat1.map((weapon_existence_data)=>{\n var weapon_type=p.GetData(\"weapon_type\",weapon_existence_data.weapon_type_id,undefined,true)\n var weapon=p.GetData(\"weapon\",weapon_existence_data.weapon_id,undefined,true)\n var potential=p.GetData(\"potential\",weapon.potential_id,undefined,true)\n var potential_all=p.GetData(\"potential_data\")\n var potential_tooltip=[]\n for (var pot in potential_all) {\n if (pot.includes(potential.name)) {\n potential_tooltip.push(p.GetData(\"potential_data\",pot))\n }\n }\n return [weapon_type,weapon,potential,potential_tooltip,weapon_existence_data]\n }):[]\n }}\n filterFunction={(page,item)=>{\n switch (page) {\n case 2:return item[WEAPON_WEAPONTYPE].name===\"Assault Rifle\"\n case 3:return item[WEAPON_WEAPONTYPE].name===\"Launcher\"\n case 4:return item[WEAPON_WEAPONTYPE].name===\"Rod\"\n case 5:return item[WEAPON_WEAPONTYPE].name===\"Talis\"\n default:return true\n }\n }}\n searchFieldFunction={(searchText,item)=>searchText.length>0?(item[WEAPON_WEAPON].name.toLowerCase()+\" \"+item[WEAPON_WEAPONTYPE].name.toLowerCase()).includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB[1].rarity-itemA[1].rarity\n case \"Attack\":return itemB[1].atk-itemA[1].atk\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return
  • {setSelectedWeapon(item);setWeaponSelectWindowOpen(false)}}>
    \"\"{GetSpecialWeaponName(item)}

    {item[WEAPON_WEAPON].atk} {item[WEAPON_POTENTIAL_TOOLTIP].map((pot,i)=>{(i!==0)&&
    }{pot.name}: {pot.description?pot.description.split(\"\\\\n\").map((it,ii)=>{it}
    ):})}}>\n {item[WEAPON_POTENTIAL].name}\n
  • }}\n />\n \n{\n var dat1=p.GetData(\"armor\")\n return typeof dat1===\"object\"&&dat1!==null?Object.keys(dat1).map((armor)=>{\n return dat1[armor]\n }):[]\n }}\n filterFunction={(page,item)=>item.slot===armorSlotSelection}\n searchFieldFunction={(searchText,item)=>searchText.length>0?item.name.toLowerCase().includes(searchText.toLowerCase()):true}\n sortOrderFunction={(sort,itemA,itemB)=>{\n switch (sort) {\n case \"Rarity\":return itemB.rarity-itemA.rarity\n case \"HP\":return itemB.hp-itemA.hp\n case \"PP\":return itemB.pp-itemA.pp\n case \"Melee Potency\":return itemB.mel_dmg-itemA.mel_dmg\n case \"Range Potency\":return itemB.rng_dmg-itemA.rng_dmg\n case \"Tech Potency\":return itemB.tec_dmg-itemA.tec_dmg\n default:return 0\n } \n }}\n displayFunction={(item)=>{\n return
  • {\n switch(armorSlotSelection) {\n case 1:setSelectedArmor1(item);break;\n case 2:setSelectedArmor2(item);break;\n case 3:setSelectedArmor3(item);break;\n default:setSelectedArmor1(item)\n }\n setArmorSelectWindowOpen(false)}}>
    \"\"{item.name}

    {item.def}
  • }}\n />\n\n\n)\n}\n\nexport default TestPanel;","import './reset.css'; // Generic reset\nimport './style.css'; // The new new\nimport React, {useState,useEffect,useReducer} from 'react';\nimport Toggle from 'react-toggle' //Tooltip props: http://aaronshaf.github.io/react-toggle/\nimport Helmet from 'react-helmet'\n\nimport {TrashFill, PlusCircle, LifePreserver, Server, CloudUploadFill} from 'react-bootstrap-icons'\n\nimport { SkillTreeEditor } from './skilltree/skillTreeEditor'\n\nimport {\n HashRouter,\n Switch,\n Route,\n useHistory\n} from \"react-router-dom\";\n\nimport { HashLink as Link } from 'react-router-hash-link';\n\nimport TestHeader from './TestHeader'; // Test Header!\nimport TestPanel from './TestPanel'; // Dudley's Test Panel\nimport md5 from 'md5';\n\nconst axios = require('axios');\nconst parse = require('csv-parse/lib/sync')\n\n/*\nDamage types\nconst MELEE_DMG = 0\nconst RANGE_DMG = 1\nconst TECH_DMG = 2\n\nArt properties\nconst NORMAL = 0\nconst PHOTON_ART = 1\nconst WEAPON_ACTION = 2\nconst STEP_COUNTER = 3\nconst PARRY_COUNTER = 4\n//NOT USED YET*/\n\nconst BACKENDURL=process.env.REACT_APP_GITPOD_WORKSPACE_URL||process.env.REACT_APP_BACKENDURL||'https://projectdivar.com:4504'\nconst APP_TITLE = \"NGS Planner\"\n\nfunction GetBackendURL(p) {\n\treturn (BACKENDURL)+(p.TESTMODE?\"/test\":\"\")\n}\n\nfunction Box(p) {\n\treturn <>\n\t\t
    \n\t\t
    \n\t\t

    {p.title}

    \n\t\t
    \n\t\t\t{p.children} \n\t\t
    \n\t\n}\n\nfunction Table(p) {\n\treturn \n\n\t\t\t{p.children}\n\n\t\n}\n\nfunction InputBox(p) {\n\tconst [value,setValue] = useState(p.value)\n\tconst [failed,setFailed] = useState(false)\n\tconst [sending,setSending] = useState(false)\n\n\tfunction changeFunc(f){setValue(f.currentTarget.value)\n\t\tif (p.callback4) {\n\t\t\tp.callback4(f.currentTarget.value)\n\t\t}}\n\tfunction blurFunc(f){\n\t\tif (p.callback) {\n\t\t\tsetSending(true)\n\t\t\tsetFailed(false)\n\t\t\tp.callback(f.currentTarget.value)\n\t\t\t.then(()=>{setFailed(false)})\n\t\t\t.catch(()=>{setFailed(true)})\n\t\t\t.then(()=>{setSending(false)})}\n\t\telse \n\t\tif (p.callback3) {\n\t\t\tp.callback3(f.currentTarget.value)\n\t\t}}\n\tfunction keydownFunc(f){\n\t\tif (p.callback2) {\n\t\t\tp.callback2(f,value)\n\t\t}\n\t}\n\n\treturn p.data?:{keydownFunc(f)}} onChange={(f)=>{changeFunc(f)}} onBlur={(f)=>{blurFunc(f)}}/>\n}\n\nfunction TableEditor(p) {\n\t\n\tconst initialVals={}\n\n\tconst { TESTMODE } = p\n\t\n\tfunction updateVals(state,update) {\n\t\tif (update==='Clear') {\n\t\t\treturn initialVals\n\t\t}\n\t\tstate[update.field]=update.value\n\t\treturn state \n\t}\n\t\n\tconst [fields,setFields] = useState([])\n\tconst [data,setData] = useState([])\n\tconst [update,setUpdate] = useState(false)\n\tconst [submitVals,setSubmitVal] = useReducer(updateVals,initialVals)\n\tconst [loading,setLoading] = useState(false)\n\tconst [dependencies,setDependencies] = useState([])\n\tconst [importAllowed,setImportAllowed] = useState(false)\n\tconst [lockSubmission,setLockSubmission] = useState(false)\n\n\tfunction patchValue(value,p,col,dat) {\n\t\treturn axios.patch(p.BACKENDURL+p.path,{\n\t\t\t[col.name]:value===\"null\"?null:value,\n\t\t\tid:dat.id,\n\t\t\tpass:p.password\n\t\t})\n\t}\n\t\n\tfunction SubmitBoxes() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\taxios.post(p.BACKENDURL+p.path,{...submitVals,pass:p.password})\n\t\t\t.then(()=>{\n\t\t\t\tsetSubmitVal(\"Clear\")\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\talert(JSON.stringify(err.response.data))\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction SubmitDeletion() {\n\t\tif (!lockSubmission) {\n\t\t\tsetLockSubmission(true)\n\t\t\tvar promises = []\n\t\t\tfor (var dat of data) {\n\t\t\t\tif (document.getElementById(\"delete_\"+dat.id).checked) {\n\t\t\t\t\tpromises.push(axios.delete(p.BACKENDURL+p.path,{data:{pass:p.password,id:dat.id}}))\n\t\t\t\t}\n\t\t\t}\n\t\t\tPromise.allSettled(promises)\n\t\t\t.catch((err)=>{\n\t\t\t\talert(err.message)\n\t\t\t})\n\t\t\t.then((data)=>{\n\t\t\t\tsetLockSubmission(false)\n\t\t\t\tsetUpdate(true)\n\t\t\t})\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tsetUpdate(true)\n\t},[p.path,TESTMODE])\n\n\tuseEffect(()=>{\n\t\tfor (var col of fields) {\n\t\t\tif (col.name===\"name\") {\n\t\t\t\tsetImportAllowed(true)\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},[fields])\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetLoading(true)\n\t\t\tvar dependency_map = {}\n\t\t\taxios.get(p.BACKENDURL+p.path+\"?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tvar cols = data.data.fields\n\t\t\t\tvar rows = data.data.rows\n\t\t\t\t\n\t\t\t\tsetFields(cols.filter((col,i)=>col.name!==\"id\"&&!(i===0&&col.name===\"name\")))\n\n\t\t\t\tvar promise_list = []\n\n\t\t\t\tcols.filter((col)=>col.name!==\"id\"&&col.name.includes(\"_id\")).forEach((col)=>{\n\t\t\t\t\tpromise_list.push(axios.get(p.BACKENDURL+\"/\"+col.name.replace(\"_id\",\"\")+\"?pass=\"+p.password)\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tdependency_map[col.name]=data.data.rows.sort((a,b)=>b.id-a.id)\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t\tsetData(rows)\n\t\t\t\treturn Promise.allSettled(promise_list)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetDependencies(dependency_map)\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.path,p.BACKENDURL,p.password])\n\t\n\treturn <>\n\t{!loading?\n\t\t
    \n\t\t\t\n\t\t\t {importAllowed&&}\n\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{fields.map((field,i)=>)}\n\t\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t\t\t\t{{fields.map((col,i)=>)}}\n\t\t\t\t\t{data.map((dat)=>\n\t\t\t\t\t{fields.map((col,i)=>)})}\n\t\t\t \n\t\t\t
    {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload=(ev)=>{\n\t\t\t\t\tvar promises=[]\n\t\t\t\t\tparse(ev.target.result,{columns:true,skip_empty_lines:true}).forEach((entry)=>{\n\t\t\t\t\t\tfor (var col of fields) {\n\t\t\t\t\t\t\tif ((col.dataTypeID===23||col.dataTypeID===701||col.dataTypeID===16)&&entry[col.name]===\"\") {\n\t\t\t\t\t\t\t\tentry[col.name]=0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push(axios.post(p.BACKENDURL+p.path,{...entry,pass:p.password}))\n\t\t\t\t\t})\n\t\t\t\t\tPromise.allSettled(promises)\n\t\t\t\t\t.then(()=>{\n\t\t\t\t\t\tsetUpdate(true)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treader.readAsText(f.target.files[0])\n\t\t\t }} style={{opacity:0}} id=\"uploads\" type=\"file\" accept=\".txt,.csv\"/>
    {SubmitDeletion()}} className=\"trashButton\"/>{field.name}
    {{setSubmitVal({field:col.name,value:f});}}/>}{SubmitBoxes()}} className=\"submitbutton\"/>
    \n\t\t\t\t\t\tpatchValue(value,p,col,dat)} callback2={(f,value)=>{if (f.key==='Enter') {f.currentTarget.blur()} else {return 'Chill'}}} value={String(dat[col.name])}/>
    \n\t\t
    :<>\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/\"\"/}\n\t\n}\n\nfunction DatabaseEditor(p) {\n\tconst [loading,setLoading] = useState(true)\n\tconst [message,setMessage] = useState()\n\tconst [databases,setDatabases] = useState([])\n\tconst [update,setUpdate] = useState(true)\n\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\taxios.get(p.BACKENDURL+\"/databases?pass=\"+p.password)\n\t\t\t.then((data)=>{\n\t\t\t\tsetDatabases(data.data)\n\t\t\t})\n\t\t\t.catch((err)=>{\n\t\t\t\tconsole.log(err.message)\n\t\t\t})\n\t\t\t.then(()=>{\n\t\t\t\tsetLoading(false)\n\t\t\t})\n\t\t\tsetUpdate(false)\n\t\t}\n\t},[update,p.BACKENDURL,p.password])\n\n\treturn <>\n\t\t{!loading?<>\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t:\"\"/\n\t\t}\n\t\t{message}\n\t\t
    \n\t\t

    \n\t\t

    Current Databases

    \n\t\t

    \n\t\tLive Database\n\t\t   Test Database
    \n\t\t{databases.map((db,i)=>{\n\t\t\tvar label = \"\"\n\t\t\tif (db.datname!==\"ngsplanner\"&&db.datname!==\"ngsplanner2\") {\n\t\t\t\tvar dateStr = db.datname.replace(\"ngsplanner\",\"\")\n\t\t\t\tvar date = new Date(dateStr.slice(0,4),dateStr.slice(4,6),dateStr.slice(6,8),dateStr.slice(8,10),dateStr.slice(10,12),dateStr.slice(12,14))\n\t\t\t\tlabel=<>{\"Backup from \"+date}\n\t\t\t\treturn {label}
    \n\t\t\t} else {\n\t\t\t\treturn \n\t\t\t}\n\t\t})}\n\t\n}\n\nfunction AdminPanel(p) {\n\tconst [verified,setVerified] = useState(false)\n\tconst [password,setPassword] = useState(\"\")\n\n\tconst navigationData=[\n\t\t{page:\"Class\",url:\"/admin/class\",table:\"/class\"},\n\t\t{page:\"Class Data\",url:\"/admin/classdata\",table:\"/class_level_data\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\"},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\"},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\"},\n\t\t{hr:true},\n\t\t{page:\"Weapons\",url:\"/admin/weapons\",table:\"/weapon\"},\n\t\t{page:\"Weapon Existence Data\",url:\"/admin/weaponexistencedata\",table:\"/weapon_existence_data\"},\n\t\t{page:\"Weapon Types\",url:\"/admin/weapontypes\",table:\"/weapon_type\"},\n\t\t{page:\"Class-Weapon Compatibility\",url:\"/admin/classweaponcompatibility\",table:\"/class_weapon_type_data\",duplicate:true},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\"},\n\t\t{hr:true},\n\t\t{page:\"Armor\",url:\"/admin/armor\",table:\"/armor\"},\n\t\t{page:\"Potentials\",url:\"/admin/potentials\",table:\"/potential\"},\n\t\t{page:\"Potential Data\",url:\"/admin/potentialdata\",table:\"/potential_data\"},\n\t\t{hr:true},\n\t\t{page:\"Builds\",url:\"/admin/builds\",table:\"/builds\"},\n\t\t{hr:true},\n\t\t{page:\"Skills\",url:\"/admin/skills\",table:\"/skill\"},\n\t\t{page:\"Skill Types\",url:\"/admin/skilltypes\",table:\"/skill_type\"},\n\t\t{page:\"Skill Data\",url:\"/admin/skilldata\",table:\"/skill_data\"},\n\t\t{page:Skill Tree Editor,url:\"/admin/skilltreeeditor\",render:},\n\t\t{page:\"Skill Tree Data\",url:\"/admin/skilltreedata\",table:\"/skill_tree_data\"},\n\t\t{page:\"Photon Arts\",url:\"/admin/photonarts\",table:\"/photon_art\",duplicate:true},\n\t\t{page:\"Class Skills\",url:\"/admin/classskills\",table:\"/class_skill\",duplicate:true},\n\t\t{page:\"Class Skill Data\",url:\"/admin/classskilldata\",table:\"/class_skill_data\",duplicate:true},\n\t\t{hr:true},\n\t\t{page:\"Augments\",url:\"/admin/augments\",table:\"/augment\"},\n\t\t{page:\"Augment Types\",url:\"/admin/augmenttypes\",table:\"/augment_type\"},\n\t\t{hr:true},\n\t\t{page:\"Enemy Data\",url:\"/admin/enemydata\",table:\"/enemy_data\"},\n\t\t{hr:true},\n\t\t{page:\"Food\",url:\"/admin/food\",table:\"/food\"},\n\t\t{page:\"Food Multipliers\",url:\"/admin/foodmultipliers\",table:\"/food_mult\"},\n\t\t{hr:true},\n\t\t{page:\"Roles\",url:\"/admin/roles\",table:\"/roles\"},\n\t\t{page:\"Users\",url:\"/admin/users\",table:\"/users\"},\n\t\t{hr:true},\n\t\t{page:\"Misc. Site Data\",url:\"/admin/sitedata\",table:\"/site_data\"},\n\t\t{page:\"Database Audit\",url:\"/admin/database_audit\",table:\"/database_audit\"},\n\t]\n\n\treturn
    \n\t\t{!verified?\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    Admin

    \n\t\t\t\t\t\t

    \n\t\t\t{setPassword(f.currentTarget.value)}} onKeyDown={(e)=>{\n\t\t\t\tif (e.key===\"Enter\") {\n\t\t\t\t\taxios.post(GetBackendURL(p)+\"/passwordcheck\",{\n\t\t\t\t\t\tpass:password\n\t\t\t\t\t})\n\t\t\t\t\t.then((data)=>{\n\t\t\t\t\t\tif (data.data.verified) {\n\t\t\t\t\t\t\tsetVerified(data.data.verified)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err)=>{\n\t\t\t\t\t\tsetVerified(false)\n\t\t\t\t\t\tsetPassword(\"\")\n\t\t\t\t\t})}}}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n:<>\n\t\t\n\t\t
    \n\t\t
    \n\t\t

    Navigation

    \n\t\t
    \n\t\t

    Testing Mode {p.setTESTMODE(f.target.checked)}}/> {p.TESTMODE?ON:OFF}

    \n\t\t
    \n\t\t \n\t\t {navigationData.map((nav,i)=>(nav.hr)?
    :{nav.page}
    )}\n\t\t Database Manager
    \n\t\t
    \n\t\t
    \n\t\t
    \t\t\n\t\t\n\n\n\n\t\t\t{navigationData.map((nav,i)=>(nav.duplicate===undefined&&nav.hr===undefined)&&\n\t\t\t
    \n\t\t
    \n\t\t

    {nav.page}

    \n\t\t
    \n\t\t\n\t\t\t\t\t{APP_TITLE+\" - Admin Panel: \"+nav.page}\n\t\t\t\t\n\t\t\t\t{nav.render??}\n\t\t\t\t
    )}\n\n\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t

    Database Editor

    \n\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \t\t\t\t\t\n\t\t\t\t
    \t\n\t\t\t
    \n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t}\n\t
    \n}\n\nfunction EditStatBox(p) {\n\n\tconst [value,setValue] = useState(p.value)\n\n\tuseEffect(()=>{\n\t\tsetValue(p.value)\n\t},[p.value])\n\n\treturn <>{setValue(f.currentTarget.value);p.callback(f.currentTarget.value)}}/> ({value})
    \n}\n\nfunction DamageCalculator(p) {\n\n\tconst [augmentData,setAugmentData] = useState({})\n\t//const [update,setUpdate] = useState(false)\n\n\tuseEffect(()=>{\n\t\taxios.get(p.BACKENDURL+\"/augment\")\n\t\t.then((data)=>{\n\t\t\tvar augmentData = {}\n\t\t\tdata.data.rows.forEach((entry)=>{augmentData[entry.name]=entry})\n\t\t\tsetAugmentData(augmentData)\n\t\t})\n\t},[p.BACKENDURL])\n\n\tconst character = {\n\t\tweapon:{\n\t\t\taugments:[\"1\",\"2\"]\n\t\t},\n\t\tarmor1:{\n\t\t\taugments:[\"2\"]\n\t\t},\n\t\tarmor2:{\n\t\t\taugments:[]\n\t\t},\n\t\tarmor3:{\n\t\t\taugments:[]\n\t\t}\n\t}\n\n\tuseEffect(()=>{\n\t\tif (Object.keys(augmentData).length>0) {\n\t\t\tvar searchFields = [{field:\"variance\",variable:0},{field:\"mel_dmg\",variable:0}]\n\t\t\tfor (var equip of [character.weapon,character.armor1,character.armor2,character.armor3]) {\n\t\t\t\tfor (var field of searchFields) {\n\t\t\t\t\tfor (var i=0;i{\n\t\tsetWeaponTotalAtk(Number(weaponBaseAtk)+Number(weaponEnhanceLv))\n\t},[weaponBaseAtk,weaponEnhanceLv])\n\n\tconst [dmgVariance,setDmgVariance] = useState(1)\n\n\t\tconst [weaponDmgVariance,setWeaponDmgVariance] = useState(1)\n\t\tconst [augDmgVariance,setAugDmgVariance] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetDmgVariance(Number(weaponDmgVariance)+Number(augDmgVariance))\n\t},[weaponDmgVariance,augDmgVariance])\n\n\tconst [baseAtk,setBaseAtk] = useState(100)\n\tconst [enemyDef,setEnemyDef] = useState(5)\n\tconst [multipliers,setMultipliers] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetRawDmg(((Number(weaponTotalAtk)*Number(dmgVariance))+Number(baseAtk)-Number(enemyDef))*Number(multipliers)/5)\n\t},[weaponTotalAtk,dmgVariance,baseAtk,enemyDef,multipliers])\n\t\n\tconst [atkmult,setAtkMult] = useState(1);\n\tconst [partmult,setPartMult] = useState(1);\n\tconst [elementalWeaknessMult,setElementalWeaknessMult] = useState(1.2)\n\tconst [mainClassWeaponBoost,setMainClassWeaponBoost] = useState(1.1)\n\tconst [classSkillMult,setClassSkillMult] = useState(1)\n\tconst [equipMult,setEquipMult] = useState(1)\n\n\tconst [augmentEquipMult,setAugmentEquipMult] = useState(1)\n\tconst [potencyFloorEquipMult,setPotencyFloorEquipMult] = useState(1)\n\tconst [elementalWeaponEquipMult,setElementalWeaponEquipMult] = useState(1.1)\n\t\n\tconst [critMult,setCritMult] = useState(1.2)\n\tconst [appropriateDistance,setAppropriateDistance] = useState(1)\n\t\n\tconst [foodBoost,setFoodBoost] = useState(1)\n\tconst [fieldEffects,setFieldEffects] = useState(1.05)\n\tconst [statusAilments,setStatusAilments] = useState(1)\n\n\tconst [enemyCorrectionMult,setEnemyCorrectionMult] = useState(1)\n\n\tconst [highLevelEnemy,setHighLevelEnemy] = useState(1)\n\n\tuseEffect(()=>{\n\t\tsetMultipliers(Number(atkmult)*Number(partmult)*Number(elementalWeaknessMult)*Number(mainClassWeaponBoost)*Number(classSkillMult)*Number(equipMult)*Number(augmentEquipMult)*Number(potencyFloorEquipMult)*Number(elementalWeaponEquipMult)*Number(critMult)*Number(appropriateDistance)*Number(foodBoost)*Number(fieldEffects)*Number(statusAilments)*Number(enemyCorrectionMult)*Number(highLevelEnemy))\n\t},[atkmult,partmult,elementalWeaknessMult,mainClassWeaponBoost,classSkillMult,equipMult,augmentEquipMult,potencyFloorEquipMult,elementalWeaponEquipMult,critMult,appropriateDistance,foodBoost,fieldEffects,statusAilments,enemyCorrectionMult,highLevelEnemy])\n\n\treturn <>\n\t\t
    \n\t\t\tWeapon Total Atk:{setWeaponTotalAtk(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Weapon Base Atk:{setWeaponBaseAtk(val)}}/>
    • \n\t\t\t\t
    • ●Weapon Enhance Lv:{setweaponEnhanceLv(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tDamage Variance:{setDmgVariance(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Weapon Damage Variance:{setWeaponDmgVariance(val)}}/>
    • \n\t\t\t\t
    • ●Augment Damage Variance:{setAugDmgVariance(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tBase Attack:{setBaseAtk(val)}}/>\n\t\t\tEnemy Defense:{setEnemyDef(val)}}/>\n\t\t\tMultipliers:{setMultipliers(val)}}/>\n\t\t\t
      \n\t\t\t\t
    • ●Atk Mult:{setAtkMult(val)}}/>
    • \n\t\t\t\t
    • ●Part Mult:{setPartMult(val)}}/>
    • \n\t\t\t\t
    • ●Elemental Weakness Mult:{setElementalWeaknessMult(val)}}/>
    • \n\t\t\t\t
    • ●Main Class Weapon Boost:{setMainClassWeaponBoost(val)}}/>
    • \n\t\t\t\t
    • ●Class Skill Mult:{setClassSkillMult(val)}}/>
    • \n\t\t\t\t
    • ●Equip Mult:{setEquipMult(val)}}/>
    • \n\t\t\t\t
    • \n\t\t\t\t\t
        \n\t\t\t\t\t\t
      • ●Augment Equip Mult:{setAugmentEquipMult(val)}}/>
      • \n\t\t\t\t\t\t
      • ●Potency Floor Equip Mult:{setPotencyFloorEquipMult(val)}}/>
      • \n\t\t\t\t\t\t
      • ●Elemental Weapon Equip Mult:{setElementalWeaponEquipMult(val)}}/>
      • \n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t
    • ●Crit Mult:{setCritMult(val)}}/>
    • \n\t\t\t\t
    • ●Appropriate Distance:{setAppropriateDistance(val)}}/>
    • \n\t\t\t\t
    • ●Food Boost:{setFoodBoost(val)}}/>
    • \n\t\t\t\t
    • ●Field Effects:{setFieldEffects(val)}}/>
    • \n\t\t\t\t
    • ●Status Ailments:{setStatusAilments(val)}}/>
    • \n\t\t\t\t
    • ●Enemy Correction Multiplier:{setEnemyCorrectionMult(val)}}/>
    • \n\t\t\t\t
    • ●High Level Enemy:{setHighLevelEnemy(val)}}/>
    • \n\t\t\t
    \n\t\t\t


    \n\t\t\tRaw Dmg:{rawDmg}\n\t\t
    \n\t\n}\n\nfunction FormField(p) {\n\treturn <>{\n\t\tp.type===\"toggle\"?<> :} \n}\n\nfunction VerifyLogin(p) {\n\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\tusername:p.LOGGEDINUSER,\n\t\tpassword:p.LOGGEDINHASH\n\t})\n\t.then((data)=>{\n\t\tif (data.data.verified) {\n\t\t\tp.history.push(\"/\")\n\t\t}\n\t})\n\t.catch((err)=>{\n\t\tconsole.log(err.message)\n\t})\n}\n\nfunction LoginForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitLogin() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\taxios.post(GetBackendURL(p)+\"/validUser\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password)\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t\thistory.push(\"/\")\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t\"\"\n\t\t:<>
    {if (f.key===\"Enter\") {SubmitLogin()}}}>

    {error}

    \n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\"/>
    \n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\"/>
    \n\t\t{setRememberMe(p.currentTarget.checked)}}/>
    \n\t\t
    \n\t}\n\t
    \n}\n\nfunction RegisterForm(p) {\n\tconst [username,setUsername] = useState(\"\")\n\tconst [password,setPassword] = useState(\"\")\n\tconst [password2,setPassword2] = useState(\"\")\n\tconst [email,setEmail] = useState(\"\")\n\tconst [rememberMe,setRememberMe] = useState(false)\n\tconst [error,setError] = useState(\"\")\n\tconst [loading,setLoading] = useState(false)\n\n\tconst history = useHistory()\n\n\tuseEffect(()=>{\n\t\tVerifyLogin({...p,history:history})\n\t},[history,p])\n\n\tfunction SubmitRegister() {\n\t\tsetError(\"\")\n\t\tsetLoading(true)\n\t\ttry{\n\t\t\tif (username.length<4) {throw new Error(\"Username must be at least 4 characters in length.\")}\n\t\t\tif (username.length>20) {throw new Error(\"Username must be less than 21 characters in length.\")}\n\t\t\tif (password.length<6) {throw new Error(\"Password must contain at least 6 characters.\")}\n\t\t\tif (password!==password2) {throw new Error(\"Password fields must match.\")}\n\t\t\tif (!email.includes(\"@\")) {throw new Error(\"Invalid E-mail.\")}\n\t\t}catch(err){\n\t\t\tsetError(err?.message??err);\n\t\t\tsetLoading(false)\n\t\t\treturn\n\t\t}\n\t\taxios.post(GetBackendURL(p)+\"/register\",{\n\t\t\tusername:username,\n\t\t\tpassword:md5(password),\n\t\t\temail:email\n\t\t})\n\t\t.then((data)=>{\n\t\t\tif (data.data.verified) {\n\t\t\t\tp.setLOGGEDINUSER(username)\n\t\t\t\tp.setLOGGEDINHASH(md5(password))\n\t\t\t\tsetUsername(\"\")\n\t\t\t\tsetPassword(\"\")\n\t\t\t\tsetRememberMe(false)\n\t\t\t} else {\n\t\t\t\tsetError(\"Could not authenticate!\")\n\t\t\t}\n\t\t})\n\t\t.catch((err)=>{\n\t\t\tsetError(err?.message??err);\n\t\t})\n\t\t.then(()=>{\n\t\t\tsetLoading(false)\n\t\t})\n\t}\n\n\treturn <>\n\t\n\t{loading?\n\t\t\"\"\n\t\t:<>

    {error}

    \n\t\t{setUsername(p.currentTarget.value)}} placeholder=\"Username\" tooltip=\"Enter a username (4-20 characters, a-z and _ only)\"/>
    \n\t\t{setPassword(p.currentTarget.value)}} placeholder=\"Password\" tooltip=\"Enter a password (6 or more characters)\"/>
    \n\t\t{setPassword2(p.currentTarget.value)}} placeholder=\"Verify Password\" tooltip=\"Enter password again.\"/>
    \n\t\t{setEmail(p.currentTarget.value)}} placeholder=\"email@example.com\" tooltip=\"This is used to send you password reset emails.\"/>
    \n\t\t{setRememberMe(p.currentTarget.checked)}}/>
    \n\t\t\n\t}\n\t
    \n}\n\n\nfunction App() {\n\t\n\tconst [author] = useState(\"Dudley\")\n\tconst [buildName] = useState(\"Fatimah\")\n\tconst [className] = useState(\"Ranger\")\n\tconst [secondaryClassName] = useState(\"Force\")\n\tconst [classLv] = useState(20)\n\tconst [secondaryClassLv] = useState(15)\n\t\t\n\t\n\tconst [bp] = useState(1330)\n\tconst [hp] = useState(388)\n\tconst [pp] = useState(154)\n\tconst [weaponTotalAtk] = useState(282)\n\tconst [baseAtk] = useState(650)\n\tconst [statDisplayAtk,setstatDisplayAtk] = useState(282)\n\n\tuseEffect(()=>{\n\t\tsetstatDisplayAtk(Number(weaponTotalAtk)+Number(baseAtk))\n\t},[weaponTotalAtk,baseAtk])\n\n\tconst [def] = useState(932)\n\tconst [weaponUp1] = useState(0.317)\n\tconst [weaponUp2] = useState(0.241)\n\tconst [weaponUp3] = useState(0.241)\n\tconst [damageResist] = useState(0.18)\n\tconst [burnResist] = useState(0)\n\tconst [shockResist] = useState(0)\n\tconst [panicResist] = useState(0)\n\tconst [stunResist] = useState(0)\n\tconst [freezeResist] = useState(0)\n\tconst [blindResist] = useState(0)\n\tconst [poisonResist] = useState(0)\n\t\n\tconst [TESTMODE,setTESTMODE] = useState(false)\n\tconst [DATA,setDATA] = useState(undefined)\n\tconst [DATAID,setDATAID] = useState({GetData:()=>{}})\n\tconst [update,setUpdate] = useState(false)\n\n\tconst [LOGGEDINUSER,setLOGGEDINUSER] = useState(\"\")\n\tconst [LOGGEDINHASH,setLOGGEDINHASH] = useState(\"\")\n\n\tfunction GetData(table,row,col,id){\n\t\tif (row===undefined) {row=''}\n\t\tif (col===undefined) {col=''}\n\t\tvar data = id?DATAID:DATA\n\t\tif (!data) {\n\t\t\treturn \"no data\"\n\t\t} else {\n\t\t\treturn data!==undefined?data[table]!==undefined?data[table][row]!==undefined?data[table][row][col]!==undefined?data[table][row][col]:data[table][row]:data[table]:data:\"no data\"\n\t\t}\n\t}\n\t\n\tuseEffect(()=>{\n\t\tif (update) {\n\t\t\tsetUpdate(false)\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATA(data.data)\n\t\t\t})\n\t\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t\t.then((data)=>{\n\t\t\t\tsetDATAID(data.data)\n\t\t\t})\n\t\t}\n\t},[update,TESTMODE])\n\n\tuseEffect(()=>{\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/data\")\n\t\t.then((data)=>{\n\t\t\tsetDATA(data.data)\n\t\t})\n\t\taxios.get(GetBackendURL({TESTMODE:TESTMODE})+\"/dataid\")\n\t\t.then((data)=>{\n\t\t\tsetDATAID(data.data)\n\t\t})\n\t},[TESTMODE])\n\n return (\n \t<>\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Admin Panel\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\"Test - \"+APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Login\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE+\" - Register\"}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{APP_TITLE}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    {GetData(\"site_data\",\"h1\",\"data\")}

    {GetData(\"site_data\",\"h2\",\"data\")}

    \"\"/\n\t\t\t\t{GetData(\"site_data\",\"UNDER_CONSTRUCTION_TEXT\",\"data\")}


    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""} \ No newline at end of file