"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[304],{99862:(e,a,t)=>{t.d(a,{A:()=>n});var l=t(74848);t(96540);var s=t(86625);function n(){return(0,l.jsx)("button",{className:"outlined gray p-2 w-9 h-9 flex items-center justify-center rounded-full",onClick:e=>{window.history.back()},children:(0,l.jsx)(s.A,{color:"inherit",className:"opacity-50 text-black",fontSize:"small"})})}},77121:(e,a,t)=>{t.d(a,{A:()=>i});var l=t(74848);t(96540);var s=t(87220),n=t(50856);function i(e){let{slugText:a,justIcon:t,noIcon:i,title:d,outlined:o,extraClasses:c}=e;return(0,l.jsxs)("div",{className:(0,n.QP)("button small-text",o?" outlined gray bg-white":" ghost light-gray",c),onClick:e=>{navigator.clipboard.writeText(a).then(()=>{alert('Copied: "'.concat(a,'"'))})},style:o?void 0:{padding:0},children:[!i&&(0,l.jsx)(s.A,{size:o?15:20}),!t&&(0,l.jsx)("span",{className:"text-slate-500 dark:text-slate-300",children:d||"Copy Slug"})]})}},85897:(e,a,t)=>{t.d(a,{A:()=>x});var l=t(74848),s=t(96540),n=t(77121),i=t(41238),d=t(78152),o=t(16512),c=t(48144),r=t(73182),m=t(23698),u=t(620),h=t(62027),b=t(46051);function x(e){var a,t;let{database:d,query:o,confirmedDelegetedUser:c,user:r}=e,{active_clone:m,active_clone_parent_db:u}=d,x=null==c?void 0:c.delegated;null==c||null===(a=c.priviledges)||void 0===a||a.match(/Edit Tables/i),null==c||null===(t=c.priviledges)||void 0===t||t.match(/Delete Tables/i);let[p,f]=s.useState(null);return(0,l.jsxs)("div",{className:"flex-wrap justify-center gap-4",children:[(0,l.jsxs)("div",{className:"dropdown-wrapper gap-4",children:[(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsxs)("div",{className:"w-8 h-8 relative",children:[(0,l.jsx)("img",{src:d.db_image,alt:"Database Image",width:20,className:"w-full h-full rounded-full object-cover"}),(null==c?void 0:c.delegated)&&(0,l.jsxs)("div",{className:" absolute -bottom-2 left-5 gap-1",children:[(0,l.jsx)("img",{src:c.rootUserImage,alt:"Root User Image",className:"w-5 h-5 rounded-full object-cover border-2 border-white dark:border-slate-800 border-solid"}),(0,l.jsx)("span",{className:"text-xs",children:c.rootUserEmail})]})]}),(0,l.jsx)("span",{className:"font-semibold text-base"+((null==c?void 0:c.delegated)?" -mt-3":""),children:d.db_name})]}),(0,l.jsx)(h.A,{size:20}),(0,l.jsxs)("div",{className:"dropdown p-0",children:[(0,l.jsx)("hr",{className:"m-0"}),(0,l.jsx)("a",{href:"/admin/".concat(null==r?void 0:r.id,"/databases/").concat(d.db_slug,"/edit-database"),className:"button plain-text more-padding normal-weight",children:"Edit Database"}),(0,l.jsx)("hr",{className:"m-0"}),!m&&(0,l.jsxs)(s.Fragment,{children:[(0,l.jsx)("a",{href:"/admin/".concat(null==r?void 0:r.id,"/databases/add-database?duplicate=").concat(d.db_full_name),className:"button plain-text more-padding normal-weight",children:"Duplicate Database"}),(0,l.jsx)("hr",{className:"m-0"})]}),(0,l.jsx)("a",{href:"/admin/".concat(null==r?void 0:r.id,"/databases/").concat(d.db_slug,"/schema"),className:"button plain-text more-padding normal-weight",children:"Schema"}),(0,l.jsx)("hr",{className:"m-0"}),(0,l.jsx)("a",{href:"/admin/".concat(null==r?void 0:r.id,"/databases/").concat(d.db_slug,"/users"),className:"button plain-text more-padding normal-weight",children:"Database Users"}),!x&&(0,l.jsx)(g,{database:d,user:r})]})]}),(0,l.jsx)("hr",{className:"vertical"}),(0,l.jsx)(n.A,{slugText:d.db_slug,title:"Db Slug"}),(0,l.jsx)("div",{className:"-mt-1 gap-1",children:(0,l.jsx)(n.A,{slugText:d.db_full_name,title:"Full DB Name"})}),!x&&(0,l.jsxs)(s.Fragment,{children:[(0,l.jsx)("hr",{className:"vertical"}),(0,l.jsxs)("a",{href:"/admin/".concat(null==r?void 0:r.id,"/databases/").concat(d.db_slug,"/shell"),className:"button ghost small-text",style:{height:"30px",padding:0},children:[(0,l.jsx)(b.A,{size:20}),(0,l.jsx)("span",{className:"text-sm font-semibold",children:"Shell"})]})]}),(0,l.jsx)("hr",{className:"vertical"}),(0,l.jsx)(i.A,{})]})}function g(e){let{database:a,user:t}=e,[n,i]=s.useState(!1),h=s.useRef();return(0,l.jsxs)(s.Fragment,{children:[n&&(0,l.jsx)(u.A,{width:"20px"}),(0,l.jsx)("hr",{className:"m-0"}),(0,l.jsx)("a",{href:"/admin/".concat(null==t?void 0:t.id,"/databases/").concat(a.db_slug,"/shell"),className:"button plain-text more-padding normal-weight",children:"Shell"}),(0,l.jsx)("hr",{className:"m-0"}),(null==a?void 0:a.remote_connected)==1?(0,l.jsx)(p,{database:a}):(0,l.jsx)("a",{href:"/admin/".concat(null==t?void 0:t.id,"/databases/").concat(a.db_slug,"/connect"),className:"button plain-text more-padding normal-weight",children:"Connect"}),(0,l.jsx)("hr",{className:"m-0"}),(0,l.jsxs)("button",{className:"button plain-text more-padding normal-weight w-full",onClick:e=>{(0,d.A)({url:"/api/exportDatabase?dbName=".concat(a.db_full_name),fileName:"".concat(a.db_full_name,".sql")})},children:[(0,l.jsx)(o.A,{fontSize:"small",color:"action",className:"opacity-50"}),(0,l.jsx)("span",{children:"Export Database"})]}),(0,l.jsx)("input",{type:"file",name:"upload-update-schema",id:"",ref:h,className:"hidden"}),(0,l.jsxs)("button",{className:"button green outlined more-padding normal-weight w-full rounded-none -mb-[1px]",onClick:e=>{var t;h.current&&(h.current.addEventListener("change",e=>{let t=null===(l=e.target.files)||void 0===l?void 0:l[0];if(!t){alert("No File Selected");return}var l,s=new FileReader;s.onload=function(e){var t,l=null===(t=e.target)||void 0===t?void 0:t.result;l||alert("Invalid File!");try{let e=null==l?void 0:l.toString();if(!e)throw Error("Invalid File!");let t=JSON.parse(e);window.confirm("Are you sure you want to use this schema file for the current database?")&&window.confirm("Remember if any existing table doesn't exist in the new schema file that table and all its content will be erased forever. Continue?")&&(i(!0),(0,m.A)("/api/user-schema/replace-database-schema",{method:"POST",body:{schema:t,dbId:a.id}},!0).then(e=>{e.success&&window.location.reload()}).finally(()=>{i(!1)}))}catch(e){alert("Invalid File. Please enter a valid JSON file")}},s.readAsText(t)}),null===(t=h.current)||void 0===t||t.click())},children:[(0,l.jsx)(r.A,{fontSize:"small",color:"action",className:"opacity-50 text-inherit"}),(0,l.jsx)("span",{children:"Update From Schema"})]}),(0,l.jsxs)("button",{className:"button secondary outlined more-padding normal-weight w-full rounded-none",onClick:e=>{(0,d.A)({url:"/api/downloadDatabaseSchema?dbName=".concat(a.db_full_name),fileName:"".concat(a.db_full_name,".json")})},children:[(0,l.jsx)(c.A,{fontSize:"small",color:"action",className:"opacity-50 text-inherit"}),(0,l.jsx)("span",{children:"Download Schema"})]})]})}function p(e){let{database:a}=e;return(0,l.jsx)("button",{className:"button plain-text more-padding normal-weight w-full",onClick:e=>{window.confirm("Disconnect this Database from the remote host?")&&(0,m.A)("/api/connect/disconnect",{method:"POST",body:{dbId:a.id}},!0).then(e=>{e.success?window.location.reload():(console.log(e),alert(e.msg||"Remote disconnection failed. Please try again."))})},children:"Disconnect"})}},78152:(e,a,t)=>{t.d(a,{A:()=>l});function l(e){let{url:a,fileName:t,setLoading:l}=e;l&&l(!0),fetch(a,{method:"GET",headers:{"x-csrf-auth":localStorage.getItem("csrf")}}).then(e=>e.body).then(e=>{let a=null==e?void 0:e.getReader();if(a)return new ReadableStream({start:e=>(function t(){return null==a?void 0:a.read().then(a=>{let{done:l,value:s}=a;if(l){e.close();return}return e.enqueue(s),t()})})()})}).then(e=>new Response(e)).then(e=>e.blob()).then(e=>URL.createObjectURL(e)).then(e=>{let a=document.createElement("a");a.href=e,a.download=t,a.style.display="none",document.body.appendChild(a),a.click(),URL.revokeObjectURL(e),document.body.removeChild(a),setTimeout(()=>{l&&l(!1)},1e3)}).catch(e=>{console.log(e),setTimeout(()=>{l&&l(!1)},1e3)})}}}]);