harperdb 4.3.28 → 4.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/bin/harperdb.js +22 -22
  3. package/bin/lite.js +14 -14
  4. package/launchServiceScripts/launchInstallNATSServer.js +1 -1
  5. package/launchServiceScripts/launchNatsIngestService.js +14 -14
  6. package/launchServiceScripts/launchNatsReplyService.js +14 -14
  7. package/launchServiceScripts/launchUpdateNodes4-0-0.js +14 -14
  8. package/npm-shrinkwrap.json +34 -34
  9. package/package.json +1 -1
  10. package/server/jobs/jobProcess.js +14 -14
  11. package/server/threads/threadServer.js +13 -13
  12. package/studio/build-local/asset-manifest.json +28 -28
  13. package/studio/build-local/index.html +1 -1
  14. package/studio/build-local/static/css/{main.e1f8b48c.css → main.fee3019a.css} +1 -1
  15. package/studio/build-local/static/js/{311.3d832d8b.chunk.js → 311.9e648b13.chunk.js} +2 -2
  16. package/studio/build-local/static/js/452.d771b05a.chunk.js +2 -0
  17. package/studio/build-local/static/js/{452.03944f0d.chunk.js.LICENSE.txt → 452.d771b05a.chunk.js.LICENSE.txt} +1 -1
  18. package/studio/build-local/static/js/545.be2e36f9.chunk.js +1 -0
  19. package/studio/build-local/static/js/759.7c5150cd.chunk.js +2 -0
  20. package/studio/build-local/static/js/{806.adb20036.chunk.js → 806.afb99f70.chunk.js} +1 -1
  21. package/studio/build-local/static/js/851.4c6536d6.chunk.js +1 -0
  22. package/studio/build-local/static/js/browse-datatable.0e20a171.chunk.js +1 -0
  23. package/studio/build-local/static/js/browse-jsonviewer.b690b1bb.chunk.js +1 -0
  24. package/studio/build-local/static/js/{custom-functions.01f632d1.chunk.js → custom-functions.04b93135.chunk.js} +1 -1
  25. package/studio/build-local/static/js/{instance-cluster.7f6df625.chunk.js → instance-cluster.0ba07710.chunk.js} +1 -1
  26. package/studio/build-local/static/js/{instance-config.59b29ef6.chunk.js → instance-config.2274de0a.chunk.js} +1 -1
  27. package/studio/build-local/static/js/instance-query.fdc5f922.chunk.js +1 -0
  28. package/studio/build-local/static/js/instance-status.d09551b0.chunk.js +1 -0
  29. package/studio/build-local/static/js/{instance-users-datatable.d61ab3ef.chunk.js → instance-users-datatable.9b5617bc.chunk.js} +1 -1
  30. package/studio/build-local/static/js/{instance-users-edit.ff5bfa06.chunk.js → instance-users-edit.6ea9cc6f.chunk.js} +1 -1
  31. package/studio/build-local/static/js/{instance-users.c71b71f2.chunk.js → instance-users.876f6070.chunk.js} +1 -1
  32. package/studio/build-local/static/js/instance.ad30f892.chunk.js +1 -0
  33. package/studio/build-local/static/js/instances.f4fec0cb.chunk.js +1 -0
  34. package/studio/build-local/static/js/{main.688e0bbd.js → main.502be660.js} +2 -2
  35. package/studio/build-local/static/js/{offline-app.31c18661.chunk.js → offline-app.31ad36fc.chunk.js} +1 -1
  36. package/studio/build-local/static/js/{online-app.0d8194e1.chunk.js → online-app.91033fd0.chunk.js} +1 -1
  37. package/studio/build-local/static/js/{organization-users.532711dd.chunk.js → organization-users.6f50ca02.chunk.js} +1 -1
  38. package/studio/build-local/static/js/{organization.99a1e759.chunk.js → organization.89b902c4.chunk.js} +1 -1
  39. package/studio/build-local/static/js/{profile.e4e06bdf.chunk.js → profile.c05c7042.chunk.js} +1 -1
  40. package/studio/build-local/static/js/signIn.996cf7ee.chunk.js +1 -0
  41. package/utility/scripts/restartHdb.js +14 -14
  42. package/studio/build-local/static/js/452.03944f0d.chunk.js +0 -2
  43. package/studio/build-local/static/js/545.e12f8571.chunk.js +0 -1
  44. package/studio/build-local/static/js/591.7498da00.chunk.js +0 -2
  45. package/studio/build-local/static/js/851.e7004b75.chunk.js +0 -1
  46. package/studio/build-local/static/js/browse-datatable.c2eb203f.chunk.js +0 -1
  47. package/studio/build-local/static/js/browse-jsonviewer.90814e97.chunk.js +0 -1
  48. package/studio/build-local/static/js/instance-query.44ba3d7b.chunk.js +0 -1
  49. package/studio/build-local/static/js/instance-status.694a7846.chunk.js +0 -1
  50. package/studio/build-local/static/js/instance.47c8b74b.chunk.js +0 -1
  51. package/studio/build-local/static/js/instances.1ec58722.chunk.js +0 -1
  52. package/studio/build-local/static/js/signIn.0134746e.chunk.js +0 -1
  53. /package/studio/build-local/static/js/{311.3d832d8b.chunk.js.LICENSE.txt → 311.9e648b13.chunk.js.LICENSE.txt} +0 -0
  54. /package/studio/build-local/static/js/{591.7498da00.chunk.js.LICENSE.txt → 759.7c5150cd.chunk.js.LICENSE.txt} +0 -0
  55. /package/studio/build-local/static/js/{main.688e0bbd.js.LICENSE.txt → main.502be660.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[575],{1679:(e,t,s)=>{s.r(t),s.d(t,{default:()=>oe});var n=s(9950),a=s(6713),r=s(135),l=s(8429),i=s(5269),o=s(7176),c=s(6114),u=s(4084),d=s(8156),h=s(9435),m=s(6165),g=s(3150),p=s(3628),f=s(3452),v=s(2010),b=s(4834),_=s(127);var x=s(8198),j=s(8738),N=s.n(j),k=s(4414);function A(e){let{error:t,style:s={}}=e;return(0,k.jsx)("div",{style:s,className:N()("form-validation-error",{error:t}),children:t||"input is valid"})}var y=s(5488);const w=function(e){let{label:t,value:s,type:a="text",max:r=null,min:l=null,editable:i=!1,handleChange:o,validator:c=()=>!0,errorMessage:u="is required",addSpace:d=!0,valid:h=!1}=e;const[m,g]=(0,n.useState)(null);return i?(0,k.jsxs)(k.Fragment,{children:[d&&(0,k.jsx)("br",{}),(0,k.jsxs)("div",{className:N()("text-nowrap mt-2 mb-1",{"text-danger":m}),children:[t," ",m]}),(0,k.jsx)(y.A,{id:`cluster-field-${t}`,type:a,className:N()("cluster-field form-control",{error:m}),max:r,min:l,defaultValue:s,valid:h,onChange:e=>o(e.target.value),onBlur:e=>{const t=c(e.target.value);g(t?null:u)}})]}):(0,k.jsxs)(k.Fragment,{children:[d&&(0,k.jsx)("br",{}),(0,k.jsx)("div",{className:"text-nowrap mt-2 mb-1",children:t}),(0,k.jsx)(y.A,{readOnly:!0,valid:!0,type:a,value:s})]})};var C=s(2765);const S=function(e){var t,s,r,l,o,c,u,d,h;let{setConfiguring:m,clusterStatus:g,refreshStatus:p,compute_stack_id:j}=e;const N=(0,a.O$)(i.A,(e=>e.auth)),y=(0,a.O$)(i.A,(e=>e.url)),S=g.engine,P=1024,O=65535,[E,T]=(0,n.useState)({clusterRole:null===g||void 0===g||null===(t=g.cluster_role)||void 0===t?void 0:t.role,clusterUsername:(null===g||void 0===g||null===(s=g.cluster_user)||void 0===s?void 0:s.username)||"cluster_user",clusterPassword:(null===g||void 0===g||null===(r=g.cluster_user)||void 0===r?void 0:r.password)||"",clusterPort:(null===g||void 0===g?void 0:g.config_cluster_port)||"",clusterNodeName:(null===g||void 0===g?void 0:g.node_name)||j}),[R,M]=(0,n.useState)(null);function F(e){T({...E,...e})}return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(w,{label:"Cluster Role",handleChange:e=>F({clusterRole:e}),value:E.clusterRole,valid:(null===(l=E.clusterRole)||void 0===l?void 0:l.trim().length)>0,validator:e=>(null===e||void 0===e?void 0:e.trim().length)>0,editable:!(null!==g&&void 0!==g&&null!==(o=g.cluster_role)&&void 0!==o&&o.role),addSpace:!1}),(0,k.jsx)(w,{label:"Cluster User",handleChange:e=>F({clusterUsername:e}),value:E.clusterUsername,valid:E.clusterUsername.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==g&&void 0!==g&&null!==(c=g.cluster_user)&&void 0!==c&&c.username)}),(0,k.jsx)(w,{label:"Cluster Password",type:"password",handleChange:e=>F({clusterPassword:e}),value:null!==g&&void 0!==g&&null!==(u=g.cluster_user)&&void 0!==u&&u.username?"********":E.clusterPassword,valid:(null===g||void 0===g||null===(d=g.cluster_user)||void 0===d?void 0:d.username)||E.clusterPassword.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==g&&void 0!==g&&null!==(h=g.cluster_user)&&void 0!==h&&h.username),showDivider:!1}),(0,k.jsx)(w,{label:"Cluster Port",type:"number",max:O,min:P,handleChange:e=>F({clusterPort:e}),value:E.clusterPort,valid:E.clusterPort>=P&&E.clusterPort<=O,validator:e=>e>=P&&e<=O,errorMessage:"must be between 1024 and 65535",editable:!(null!==g&&void 0!==g&&g.config_cluster_port)}),(0,k.jsx)(w,{label:"Cluster Node Name",handleChange:e=>F({clusterNodeName:e}),value:E.clusterNodeName,valid:E.clusterNodeName.length>0,validator:e=>e.length>0,editable:!(null!==g&&void 0!==g&&g.node_name)}),(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsx)(f.A,{block:!0,color:"success",disabled:!function(e){var t;let{clusterRole:s,clusterUsername:n,clusterPassword:a,clusterPort:r,clusterNodeName:l}=e;return(null===s||void 0===s?void 0:s.length)>0&&n.length>0&&((null===g||void 0===g||null===(t=g.cluster_user)||void 0===t?void 0:t.username)||a.length>0)&&l.length>0&&r>=P&&r<=O}(E),onClick:async function(){var e;if(M(null),null===(e=g.cluster_role)||void 0===e||!e.role){const e=await(0,C.A)({auth:N,url:y,role:E.clusterRole,permission:{cluster_user:!0}});if(e.error)return M(e.message)}if(!g.cluster_user){const e=await(0,x.A)({auth:N,url:y,role:E.clusterRole,username:E.clusterUsername,password:E.clusterPassword});if(e.error)return M(e.message)}const t="nats"===S?await(0,b.A)({auth:N,url:y,clustering_enabled:!0,clustering_nodeName:E.clusterNodeName,clustering_port:E.clusterPort,clustering_user:E.clusterUsername}):await(async e=>{let{CLUSTERING:t=!1,CLUSTERING_PORT:s,CLUSTERING_USER:n,NODE_NAME:a,auth:r,url:l}=e;return(0,_.A)({operation:{operation:"configure_cluster",CLUSTERING:t,CLUSTERING_PORT:s,CLUSTERING_USER:n,NODE_NAME:a},auth:r,url:l})})({auth:N,url:y,CLUSTERING:!0,CLUSTERING_PORT:E.clusterPort,CLUSTERING_USER:E.clusterUsername,NODE_NAME:E.clusterNodeName});return t.error?M(t.message):(window._kmq&&window._kmq.push(["record","enabled clustering"]),await(0,v.A)({auth:N,url:y}),setTimeout((()=>m(!0)),0),p())},children:"Enable Clustering"}),(0,k.jsx)("br",{}),R&&(0,k.jsx)(A,{error:R})]})};const P=function(e){let{setConfiguring:t,clusterStatus:s,refreshStatus:n}=e;const{compute_stack_id:r}=(0,l.g)(),f=null===s||void 0===s?void 0:s.cluster_role,v=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user),b=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user),_=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user)&&(null===s||void 0===s?void 0:s.node_name),x=(0,a.O$)(i.A,(e=>e.rule_arn)),j=Boolean(x);return(0,k.jsxs)(o.A,{id:"clustering",children:[(0,k.jsxs)(c.A,{xl:"3",lg:"4",md:"5",xs:"12",children:[(0,k.jsx)("span",{className:"floating-card-header",children:"enable clustering"}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{children:(0,k.jsx)(h.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:(0,k.jsx)(S,{setConfiguring:t,refreshStatus:n,clusterStatus:s,compute_stack_id:r})})})})]}),(0,k.jsx)(c.A,{xl:"9",lg:"8",md:"7",xs:"12",children:_?(0,k.jsx)(m.A,{headline:"You're all set!",description:"Click the button at left to enable clustering. NOTE: We'll restart the instance when you click this button.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):b?(0,k.jsx)(m.A,{headline:"Set Instance Cluster Name",description:`We need to set a unique node name to identify your instance in the cluster. By default, we set it to "${r}", but you can choose your own unique node name.`,icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})}):v?(0,k.jsx)(m.A,{headline:"Cluster Port Set To: 12345",description:"If your instance is behind a firewall, you'll need to ensure this port is accessible by other instances if you want to publish/subscribe to/from this instance.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):f?(0,k.jsx)(m.A,{headline:"Create a Cluster User",description:"If you have other instances you want to cluster together with this one, make sure the cluster user has the same name and password as those other instances.",warning:j?"HarperDB clustering functionality will not work between AWS cloud instances. We are working on upgrading our cloud infrastructure to support clustering functionality.":null,icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})}):(0,k.jsx)(m.A,{headline:"Create a Cluster Role",description:"This role subscribes to instance transaction logs and handles operations that result from its pub/sub configuration.",icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})})})]})};var O=s(7348);const E=function(e){let{handleAddNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Connect To This Instance",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-plus"} text-white`})})};const T=function(e){let{handleRemoveNode:t,showModal:s,loading:n}=e;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(f.A,{color:"danger",className:"round me-1",title:"Why isn't this instance clustering?",disabled:n,onClick:s,children:(0,k.jsx)("i",{className:"fa fa-exclamation"})}),(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:n,onClick:t,children:(0,k.jsx)("i",{className:`fa ${n?"fa-spin fa-spinner":"fa-minus"} text-white`})})]})};const R=function(e){let{handleRemoveNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-minus"} text-white`})})};const M=function(){return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Connecting to this instance",disabled:!0,children:(0,k.jsx)("i",{className:"fa fa-spin fa-spinner text-white"})})};const F=function(e){let{handleConfigureNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"success",className:"round me-1",title:"Enable Clustering",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-share"} text-white`})})};const $=function(e){var t,s,n;let{setShowModal:a,item:r,itemType:l,loading:i,handleAddNode:u,handleRemoveNode:d,handleConfigureNode:h,refreshNetwork:m}=e;const g=r.compute_stack_id===i;return(0,k.jsxs)(o.A,{className:"item-row",children:[(0,k.jsx)(c.A,{className:"item-label "+("closed"===(null===(t=r.connection)||void 0===t?void 0:t.state)?"text-danger":""),children:r.instance_name}),(0,k.jsx)(c.A,{className:"item-action",children:"incompatible/unreachable"===l?null:"unconfigured"===l?(0,k.jsx)(F,{loading:g,handleConfigureNode:()=>h({compute_stack_id:r.compute_stack_id})}):"CREATE_IN_PROGRESS"===r.instance_status?(0,k.jsx)(f.A,{color:"grey",className:"round",title:"Creating Instance",disabled:!0,children:(0,k.jsx)("i",{className:"fa fa-spin fa-spinner"})}):r.connection?"closed"===(null===(s=r.connection)||void 0===s?void 0:s.state)?(0,k.jsx)(T,{loading:g,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id}),showModal:()=>a(r.instance_name)}):"connecting"===(null===(n=r.connection)||void 0===n?void 0:n.state)?(0,k.jsx)(M,{refreshNetwork:m}):(0,k.jsx)(R,{loading:g,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id,instance_host:r.instance_host,clusterPort:r.clusterPort})}):(0,k.jsx)(E,{loading:g,handleAddNode:()=>u({compute_stack_id:r.compute_stack_id,instance_url:r.instance_url,instance_host:r.instance_host,clusterPort:r.clusterPort})})})]})};var I=s(1534);const L=function(e){let{items:t,itemType:s,setShowModal:r,loading:h,setLoading:m,refreshNetwork:g}=e;const{customer_id:p}=(0,l.g)(),f=(0,l.Zp)(),v=(0,O.MW)(),b=(0,a.O$)(i.A,(e=>e.compute_stack_id)),x=(0,a.O$)(i.A,(e=>e.auth),[b]),j=(0,a.O$)(i.A,(e=>e.url),[b]),N=(0,a.O$)(i.A,(e=>e.is_local),[b]),A=(0,a.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.auth)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[b]),y=(0,n.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===A?await(async e=>{let{auth:t,url:s,server:n="hub",routes:a}=e;return(0,_.A)({operation:{operation:"cluster_set_routes",server:n,routes:a},auth:t,url:s})})({auth:x,url:j,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,instance_host:s,clusterPort:n,auth:a,url:r}=e;return(0,_.A)({operation:{operation:"add_node",name:t,node_name:t,host:s,port:n,subscriptions:[]},auth:a,url:r})})({...e,auth:x,url:j,is_local:N,customer_id:p});t.error?(v.error("localhost"===e.instance_host?"External instances cannot reach that instance's URL":t.message),m(!1)):("nats"===A&&await(0,I.A)({auth:x,url:j,service:"clustering config"}),await g()),m(!1)}),[m,x,j,N,p,g,v,A]),w=(0,n.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===A?await(async e=>{let{auth:t,url:s,routes:n}=e;return(0,_.A)({operation:{operation:"cluster_delete_routes",routes:n},auth:t,url:s})})({auth:x,url:j,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,auth:s,url:n}=e;return(0,_.A)({operation:{operation:"remove_node",name:t,node_name:t},auth:s,url:n})})({...e,auth:x,url:j,is_local:N,customer_id:p});t.error?(v.error(t.message),m(!1)):("nats"===A&&await(0,I.A)({auth:x,url:j,service:"clustering config"}),await g()),m(!1)}),[m,x,j,N,p,g,v,A]),C=(0,n.useCallback)((e=>f(`/o/${p}/i/${e.compute_stack_id}/cluster`)),[f,p]);return(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsxs)("div",{className:"floating-card-header",children:[s," instances"]}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{children:null!==t&&void 0!==t&&t.length?t.map((e=>(0,k.jsx)($,{item:e,itemType:s,setShowModal:r,handleAddNode:y,handleRemoveNode:w,handleConfigureNode:C,loading:h,refreshNetwork:g},e.instance_name))):t?(0,k.jsx)(o.A,{className:"item-row",children:(0,k.jsxs)(c.A,{className:"item-label",children:["There are no ",s," instances"]})}):(0,k.jsx)(o.A,{className:"item-row",children:(0,k.jsx)(c.A,{className:"item-label",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})})})})})]})};var U=s(4343);const z={filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};const D=function(e){let{refreshNetwork:t,loading:s,setLoading:r}=e;const l=(0,a.O$)(i.A,(e=>e.clusterDataTable||[])),h=(0,a.O$)(i.A,(e=>e.clusterDataTableColumns||[])),[m,g]=(0,n.useState)(z);(0,n.useEffect)((()=>{g({...m,totalPages:Math.ceil((l.length||m.pageSize)/m.pageSize)})}),[g,m.pageSize]);const p=(0,n.useCallback)((async()=>{r(!0),t()}),[r,t]);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsx)(c.A,{children:"manage clustering"}),(0,k.jsx)(c.A,{className:"text-end",children:(0,k.jsxs)(f.A,{color:"link",onClick:p,className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"refresh network"}),(0,k.jsx)("i",{title:"Refresh Roles",className:"fa "+(s?"fa-spinner fa-spin":"fa-sync-alt")})]})})]}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{className:"react-table-holder "+(s?"loading":""),children:null!==l&&void 0!==l&&l.length?(0,k.jsx)(U.A,{columns:h,data:l,page:m.page,pageSize:m.pageSize,totalPages:m.totalPages,showFilter:m.showFilter,sorted:m.sorted,onFilteredChange:e=>g({...m,filtered:e}),onSortedChange:e=>g({...m,sorted:e}),onPageChange:e=>g({...m,pageSize:e}),onPageSizeChange:e=>g({...m,page:0,pageSize:e})}):(0,k.jsx)("div",{className:"empty-prompt",children:"Please connect at least one instance to configure clustering"})})})]})};var G=s(6685),B=s(1340),X=s(877);const H=function(e){let{showModal:t,setShowModal:s}=e;const{compute_stack_id:n}=(0,l.g)(),r=(0,a.O$)(i.A,(e=>e.instance_name),[n]);return(0,k.jsxs)(G.A,{id:"cluster-state-modal",isOpen:!!t,toggle:()=>s(!1),centered:!0,fade:!1,children:[(0,k.jsx)(B.A,{toggle:()=>s(!1),children:"Instance Cluster Error"}),(0,k.jsx)(X.A,{children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(d.A,{children:[(0,k.jsx)("b",{children:r})," is unable to open a connection to ",(0,k.jsx)("b",{children:t}),".",(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Clustered instances must be able to reach each other. This may require allowing access through a firewall."}),(0,k.jsx)("li",{children:"Both instances must be running. In the event of a restart, instances will automatically attempt to reconnect."}),(0,k.jsxs)("li",{children:["Clustered instances must have the same cluster user ",(0,k.jsx)("b",{children:"name"})," and ",(0,k.jsx)("b",{children:"password"}),". You can edit an instance's cluster user credentials in the ",(0,k.jsx)("b",{children:"config"})," ","section."]})]}),(0,k.jsx)("hr",{className:"my-3"}),"If none of these help fix the issue, you can disconnect ",(0,k.jsx)("b",{children:t})," from ",(0,k.jsx)("b",{children:r})," by clicking the purple disconnect button with the minus sign."]})})})]})};var q=s(2414),W=s.n(q);var Y=s(1110);const J=async e=>{let{channel:t,subscriptions:s,buttonState:n,instance_host:a,clusterPort:r,clusterName:l,auth:o,url:c}=e;const u=JSON.parse(JSON.stringify(s)),d=u.findIndex((e=>e.channel===t)),[h,m]=t.split(":");-1===d?u.push({channel:t,schema:h,table:m,publish:"togglePublish"===n,subscribe:"toggleSubscribe"===n}):"togglePublish"===n?u[d].publish=!u[d].publish:"toggleSubscribe"===n&&(u[d].subscribe=!u[d].subscribe),u[d]&&!u[d].publish&&u[d].subscribe;const g={operation:"update_node",name:l,node_name:l,host:a,port:r,subscriptions:u},p=await(0,_.A)({operation:g,auth:o,url:c});return p.error&&-1!==p.message.indexOf("add_node")&&(g.operation="add_node",await(0,_.A)({operation:g,auth:o,url:c})),i.A.update((e=>{e.lastUpdate=Date.now()}))};var V=s(5346),K=s(396),Z=s(6177);const Q=async e=>{let{instance:t,auth:s}=e;const n=s&&await(0,Z.A)({auth:s,url:t.url}),a=s&&await(0,V.A)({auth:s,url:t.url}),{structure:r}=a?(0,K.A)(a):{structure:{}},l=new URL(t.url),i={...t,auth:s,structure:r,host:l.hostname,clustering:n};return Object.entries(i).reduce(((e,t)=>{let[s,n]=t;return null==n||(e[s]=n),e}),{})},ee=async e=>{let{auth:t,url:s,instances:n,connections:a}=e;const r=await(async e=>{let{auth:t,url:s}=e;return(0,_.A)({operation:{operation:"cluster_get_routes"},auth:t,url:s})})({auth:t,url:s});return r.hub.map((e=>{var t;const s=n.find((t=>t.host===e.host||t.private_ip===e.host));if(!s)return!1;const r=s.host===s.private_ip?s.private_ip:s.host,l=a.find((e=>{var t;return e.node_name===(null===s||void 0===s||null===(t=s.clustering)||void 0===t?void 0:t.node_name)})),i=(null===l||void 0===l||null===(t=l.subscriptions)||void 0===t?void 0:t.map((e=>({channel:`${e.schema}:${e.table}`,...e}))))||[];return{host:r,port:e.port,state:"open",name:null===s||void 0===s?void 0:s.compute_stack_id,subscriptions:i}})).filter((e=>!1!==e))},te=e=>{let{connections:t}=e;return t?t.filter((e=>-1===e.host_address.indexOf("::ffff"))).map((e=>({name:e.node_name,host:e.host_address,port:e.host_port,state:e.state,subscriptions:e.subscriptions}))):[]},se=async e=>{let{auth:t,url:s,instances:n,compute_stack_id:a,instanceAuths:r,setLoading:l}=e;const o=await Promise.all(n.filter((e=>!!r[e.compute_stack_id])).map((e=>Q({instance:e,auth:r[e.compute_stack_id]})))),c=o.find((e=>e.compute_stack_id===a)),u=c.clustering.message||!c.clustering.is_enabled?[]:"nats"===c.clustering.engine?await ee({auth:t,url:s,instances:o,connections:c.clustering.connections}):te({connections:c.clustering.status.outbound_connections}),d={is_enabled:c.clustering.is_enabled,connections:u},h=(e=>{let{instances:t,network:s,instance_region:n,instance_wavelength_zone_id:a,instance_cluster_engine:r}=e;const l=t.filter((e=>e.url&&"DELETE_IN_PROGRESS"!==e.status)).filter((e=>e.clustering.engine===r)).map((e=>{var t,l;const i="socketcluster"===r?null===s||void 0===s?void 0:s.connections.find((t=>t.name===e.compute_stack_id)):null===s||void 0===s?void 0:s.connections.find((t=>t.host===e.host)),o=(null===i||void 0===i?void 0:i.subscriptions)||[],c=null===e||void 0===e||null===(t=e.clustering)||void 0===t?void 0:t.config_cluster_port,u=e.is_local?"OK":e.status,d=!n||n!==e.instance_region||e.wavelength_zone_id||a?e.url.match(/^https?:\/\/([^/:?#]+)(?:[/:?#]|$)/i)[1]:e.private_ip,h=e.clustering.node_name;return{instance_name:e.instance_name,instance_url:e.url,compute_stack_id:e.compute_stack_id,instance_status:u,instance_host:d,clusterPort:c,clusterName:h,connection:i,subscriptions:o,structure:e.structure,configured:null===(l=e.clustering)||void 0===l?void 0:l.is_ready}})),i=t.filter((e=>e.clustering.engine!==r)).map((e=>({instance_name:e.instance_name,compute_stack_id:e.name})));return{connected:l.filter((e=>e.connection&&e.configured)),unconnected:l.filter((e=>!e.connection&&e.configured)),unconfigured:l.filter((e=>!e.configured)),unreachable:i}})({instances:o.filter((e=>r[e.compute_stack_id]&&e.compute_stack_id!==a)),network:d,instance_region:c.instance_region,instance_wavelength_zone_id:c.wavelength_zone_id,instance_cluster_engine:c.clustering.engine}),m=(e=>{let{instances:t,structure:s}=e;if(!s||!t.length)return[];const n=[];return t.map((e=>{const t=W()(e.structure,s);return Object.keys(t).sort().map(((s,a)=>(Object.keys(t[s]).sort().map(((t,r)=>{const l=`${s}:${t}`,i=l&&e.subscriptions.find((e=>e.channel===l)),o=i&&i.publish,c=i&&i.subscribe;return n.push({is_first_instance:0===a&&0===r,is_first_schema:0===r,instance_name:e.instance_name,schema:s,table:t,compute_stack_id:e.compute_stack_id,instance_host:e.instance_host,clusterPort:e.clusterPort,clusterName:e.clusterName,subscriptions:e.subscriptions,channel:l,publish:o,subscribe:c}),!0})),!0))),!0})),n})({instances:h.connected.filter((e=>"closed"!==e.connection.state)),structure:c.structure}),g=(e=>{let{auth:t,url:s,buildNetwork:n,setLoading:a}=e;return[{Header:"instance",Cell:e=>{let{row:{original:{is_first_instance:t,instance_name:s}}}=e;return(0,k.jsx)("div",{className:t?"text-bold":"text-grey",children:s})}},{Header:"schema",Cell:e=>{let{row:{original:{is_first_schema:t,schema:s}}}=e;return(0,k.jsx)("div",{className:t?"text-bold":"text-grey",children:s})}},{Header:"table",accessor:"table"},{Header:"publish",id:"hdb-narrow-publish",Cell:e=>{let{row:{original:{compute_stack_id:r,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,subscriptions:u,publish:d,channel:h}}}=e;return(0,k.jsx)(Y.A,{checked:d||!1,onChange:async()=>{a(r),await J({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:s,buttonState:"togglePublish"}),n()}})}},{Header:"subscribe",id:"hdb-narrow-subscribe",Cell:e=>{let{row:{original:{compute_stack_id:r,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,subscriptions:u,subscribe:d,channel:h}}}=e;return(0,k.jsx)(Y.A,{checked:d||!1,onChange:async()=>{a(r),await J({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:s,buttonState:"toggleSubscribe"}),n()}})}}]})({auth:t,url:c.url,compute_stack_id:a,buildNetwork:()=>se({auth:t,url:s,instances:n,compute_stack_id:a,instanceAuths:r,setLoading:l}),setLoading:l});return i.A.update((e=>{e.network=d,e.clusterPartners=h,e.clusterDataTable=m,e.clusterDataTableColumns=g,e.instances=o})),l(!1),{network:d,clusterPartners:h,clusterDataTable:m,clusterDataTableColumns:g}},ne=se;var ae=s(5553),re=s(4319);const le=function(e){let{configuring:t}=e;const{compute_stack_id:s}=(0,l.g)(),u=(0,a.O$)(ae.A,(e=>e.instances)),[d]=(0,re.A)({}),m=(0,a.O$)(i.A,(e=>e.auth),[s]),f=(0,a.O$)(i.A,(e=>e.url),[s]),v=(0,a.O$)(i.A,(e=>e.clusterPartners),[s]),b=(0,a.O$)(i.A,(e=>e.restarting),[s]),_="socketcluster"===(0,a.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[s])&&(null===v||void 0===v?void 0:v.connected.some((e=>"connecting"===e.connection.state))),[x,j]=(0,n.useState)(!1),[N,A]=(0,n.useState)(!1),y=(0,n.useCallback)((async()=>{m&&f&&u&&s&&!b&&!t&&await ne({auth:m,url:f,instances:u,compute_stack_id:s,instanceAuths:d,setLoading:A})}),[m,f,u,s,b,d,t]);return(0,n.useEffect)((()=>{y()}),[y]),(0,r.A)((()=>_&&y()),1500),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{id:"clustering",children:[(0,k.jsx)(c.A,{xl:"3",lg:"4",md:"6",xs:"12",children:(0,k.jsxs)(h.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:[(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.connected,itemType:"connected",loading:N,refreshNetwork:y,setLoading:A,setShowModal:j}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unconnected,itemType:"unconnected",loading:N,refreshNetwork:y,setLoading:A}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unconfigured,itemType:"unconfigured",loading:N}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unreachable,itemType:"incompatible/unreachable",loading:N})]})}),(0,k.jsx)(c.A,{xl:"9",lg:"8",md:"6",xs:"12",children:(0,k.jsx)(D,{refreshNetwork:y,loading:N,setLoading:A})})]}),(0,k.jsx)(H,{showModal:x,setShowModal:j})]})};var ie=s(4979);const oe=function(){const{compute_stack_id:e}=(0,l.g)(),t=(0,a.O$)(i.A,(e=>e.auth),[e]),s=(0,a.O$)(i.A,(e=>e.url),[e]),[o,c]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),h=(0,n.useCallback)((async()=>{if(t&&s){const e=await(0,Z.A)({auth:t,url:s});c(e),e.is_ready&&d(!1)}}),[t,s]);return(0,r.A)((async()=>{u&&h()}),3e3),(0,n.useEffect)((()=>{h()}),[h]),(0,n.useEffect)((()=>{c(!1)}),[e]),o?u?(0,k.jsx)(m.A,{description:"Configuring Clustering",icon:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):o.is_ready?(0,k.jsx)(le,{configuring:u}):(0,k.jsx)(P,{setConfiguring:d,clusterStatus:o,refreshStatus:h}):(0,k.jsx)(ie.A,{header:"loading network",spinner:!0})}},4343:(e,t,s)=>{s.d(t,{A:()=>x});var n=s(9950),a=s(2043),r=s(5488),l=s(9435),i=s(7176),o=s(6114),c=s(4414);const u=e=>{let{headerGroups:t,onSortedChange:s,sorted:n,showFilter:a}=e;return t.map((e=>{const{key:t,...r}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...r,children:[(0,c.jsx)(i.A,{className:"header g-0",children:e.headers.map((e=>{var t,a;return(0,c.jsx)(o.A,{onClick:()=>{var t,a;return s([{id:e.id,desc:(null===(t=n[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(a=n[0])&&void 0!==a&&a.desc)}])},className:`${(null===(t=n[0])||void 0===t?void 0:t.id)===e.id?"sorted":""} ${null!==(a=n[0])&&void 0!==a&&a.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),a&&(0,c.jsx)(i.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(o.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},t)}))};var d=s(3452);const h=function(e){let{page:t,pageSize:s,totalPages:n,onPageChange:a,onPageSizeChange:l,loading:u}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>a(t-1),disabled:!n||0===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:t+1,min:1,max:n,onChange:e=>a(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",u?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):n]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",value:s,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>a(t+1),disabled:!n||t+1===n,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:t,canPreviousPage:s,pageIndex:n,gotoPage:a,setPageSize:l,pageCount:u,nextPage:h,canNextPage:m,loading:g}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!u||!s,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:n+1||1,min:1,max:u,onChange:e=>a(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",g?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):u]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{a(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:h,disabled:!u||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const g=function(e){let{prepareRow:t,row:s,onRowClick:n=!1}=e;return t(s),(0,c.jsx)(i.A,{onClick:()=>n&&n(s.original),className:"g-0",children:s.cells.map((e=>(0,c.jsx)(o.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var p=s(3628),f=s(3150);function v(e){let{value:t}=e;return(0,c.jsx)("div",{className:"text-renderer",children:t})}function b(e){let{src:t}=e;const[s,a]=(0,n.useState)(!1),[r,l]=(0,n.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),s&&r?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):s?(0,c.jsx)("img",{onError:l,alt:t,src:t,className:"preview-image"}):null]})}const _={Filter:e=>{let{column:{filterValue:t,setFilter:s}}=e;return(0,c.jsx)(r.A,{type:"text",value:t||"",onChange:e=>s(e.target.value||void 0)})},Cell:e=>{let{value:t}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(v,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(v,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,c.jsx)(b,{src:e}):(0,c.jsx)(v,{value:e});default:return(0,c.jsx)(v,{value:e})}var t})(t)}};const x=function(e){let{columns:t,data:s,currentPage:r,pageSize:i,totalPages:o,onFilteredChange:d,onSortedChange:v,onPageChange:b,onPageSizeChange:x,showFilter:j,onRowClick:N,sorted:k,loading:A,manual:y=!1}=e;const{headerGroups:w,page:C,rows:S,prepareRow:P,state:O,setAllFilters:E,canPreviousPage:T,canNextPage:R,pageOptions:M,pageCount:F,gotoPage:$,nextPage:I,previousPage:L,setPageSize:U}=(0,a.useTable)({columns:t,data:s,defaultColumn:_,onFilteredChange:d,onSortedChange:v,onPageChange:b,onPageSizeChange:x,onRowClick:N,manualPagination:y,manualFilters:y,initialState:{pageIndex:r,pageSize:i}},a.useFilters,a.usePagination),[z,D]=(0,n.useState)(!0),G=y||!C.length?S:C;return(0,n.useEffect)((()=>{!j&&O.filters.length?E([]):d(O.filters)}),[O.filters,j]),(0,n.useEffect)((()=>{setTimeout((()=>D(!1)),100)}),[null===G||void 0===G?void 0:G.length]),(0,c.jsxs)(l.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:f.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(u,{headerGroups:w,onSortedChange:v,sorted:k,showFilter:j}),A||z?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):G.length?G.map((e=>(0,c.jsx)(g,{row:e,prepareRow:P,onRowClick:N},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:"no records"})]})]}),y?(0,c.jsx)(h,{page:r,pageSize:i,totalPages:o,onPageChange:b,onPageSizeChange:x,loading:A}):(0,c.jsx)(m,{previousPage:L,pageSize:i,canPreviousPage:T,pageIndex:O.pageIndex,pageOptions:M,gotoPage:$,setPageSize:U,pageCount:F,nextPage:I,canNextPage:R,loading:A})]})}},2765:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s,role:a,permission:r}=e;return(0,n.A)({operation:{operation:"add_role",role:a,permission:r},auth:t,url:s})}},8198:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,role:s,username:a,password:r,url:l}=e;return(0,n.A)({operation:{operation:"add_user",role:s,username:a,password:r,active:!0},auth:t,url:l})}},8750:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s}=e;return(0,n.A)({operation:{operation:"get_configuration"},auth:t,url:s})}},2415:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s}=e;const r=await(0,n.A)({operation:{operation:"list_roles"},auth:t,url:s}),l=[...Array.isArray(r)?r:[]].sort(((e,t)=>e.role.toLowerCase()>t.role.toLowerCase()?1:-1));return a.A.update((e=>{e.roles=l})),l}},8222:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s,signal:r}=e;const l=await(0,n.A)({operation:{operation:"list_users"},auth:t,url:s,signal:r}),i=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,t)=>e.username.toLowerCase()>t.username.toLowerCase()?1:-1)):[];return a.A.update((e=>{e.users=i})),i}},2010:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s}=e;return a.A.update((e=>{e.restarting=!0})),(0,n.A)({operation:{operation:"restart"},auth:t,url:s})}},1534:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s,service:r=null}=e;return r?(a.A.update((e=>{e.restarting_service=r})),(0,n.A)({operation:{operation:"restart_service",service:r},auth:t,url:s})):{error:!0,message:"You must specify a service"}}},4834:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s,...a}=e;return(0,n.A)({operation:{operation:"set_configuration",...a},auth:t,url:s})}},6177:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(8750),a=s(2415),r=s(8222),l=s(717),i=s(127);const o=async e=>{let{auth:t,url:s}=e;const o=await(0,n.A)({auth:t,url:s}),c=await(0,l.A)({auth:t,url:s}),u=await(async e=>{let{auth:t,url:s}=e;return(0,i.A)({operation:{operation:"cluster_status"},auth:t,url:s})})({auth:t,url:s}),d=parseFloat(null===c||void 0===c?void 0:c.version)>=4?"nats":"socketcluster",h=await(0,a.A)({auth:t,url:s});let m=!1;h.error||(m=h.find((e=>e.permission.cluster_user)));const g=await(0,r.A)({auth:t,url:s});let p=!1;g.error||(p=m&&g.find((e=>e.role===m.role)));const f="nats"===d?o.clustering.enabled:o.CLUSTERING,v="nats"===d?o.clustering.user:o.CLUSTERING_USER,b="nats"===d?o.clustering.hubServer.cluster.network.port:o.CLUSTERING_PORT,_="nats"===d?o.clustering.nodeName:o.NODE_NAME;return{is_ready:!!f&&!!p&&!!v&&!!m&&!!b&&!!_,cluster_role:m,cluster_user:p,is_enabled:f,config_cluster_user:v,config_cluster_port:b,node_name:_,engine:d,status:null===u||void 0===u?void 0:u.status,message:null===u||void 0===u?void 0:u.message,connections:null===u||void 0===u?void 0:u.connections}}},2414:e=>{var t=function(e){return function(e){return!!e&&"object"===typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===s}(e)}(e)};var s="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o((s=e,Array.isArray(s)?[]:{}),e,t):e;var s}function a(e,t,s){return e.concat(t).map((function(e){return n(e,s)}))}function r(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function l(e,t){try{return t in e}catch(s){return!1}}function i(e,t,s){var a={};return s.isMergeableObject(e)&&r(e).forEach((function(t){a[t]=n(e[t],s)})),r(t).forEach((function(r){(function(e,t){return l(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,r)||(l(e,r)&&s.isMergeableObject(t[r])?a[r]=function(e,t){if(!t.customMerge)return o;var s=t.customMerge(e);return"function"===typeof s?s:o}(r,s)(e[r],t[r],s):a[r]=n(t[r],s))})),a}function o(e,s,r){(r=r||{}).arrayMerge=r.arrayMerge||a,r.isMergeableObject=r.isMergeableObject||t,r.cloneUnlessOtherwiseSpecified=n;var l=Array.isArray(s);return l===Array.isArray(e)?l?r.arrayMerge(e,s,r):i(e,s,r):n(s,r)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,s){return o(e,s,t)}),{})};var c=o;e.exports=c},4010:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0});var n,a=s(9950),r=(n=a)&&n.__esModule?n:{default:n};t.default=function(){return r.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},r.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},1110:(e,t,s)=>{var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},a=function(){function e(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,s,n){return s&&e(t.prototype,s),n&&e(t,n),t}}(),r=s(9950),l=h(r),i=h(s(8738)),o=h(s(1942)),c=h(s(4010)),u=h(s(4990)),d=s(6104);function h(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var s=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return s.handleClick=s.handleClick.bind(s),s.handleTouchStart=s.handleTouchStart.bind(s),s.handleTouchMove=s.handleTouchMove.bind(s),s.handleTouchEnd=s.handleTouchEnd.bind(s),s.handleFocus=s.handleFocus.bind(s),s.handleBlur=s.handleBlur.bind(s),s.previouslyChecked=!(!e.checked&&!e.defaultChecked),s.state={checked:!(!e.checked&&!e.defaultChecked),hasFocus:!1},s}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),a(t,[{key:"componentDidUpdate",value:function(e){e.checked!==this.props.checked&&this.setState({checked:!!this.props.checked})}},{key:"handleClick",value:function(e){if(!this.props.disabled){var t=this.input;if(e.target!==t&&!this.moved)return this.previouslyChecked=t.checked,e.preventDefault(),t.focus(),void t.click();var s=this.props.hasOwnProperty("checked")?this.props.checked:t.checked;this.setState({checked:s})}}},{key:"handleTouchStart",value:function(e){this.props.disabled||(this.startX=(0,d.pointerCoord)(e).x,this.activated=!0)}},{key:"handleTouchMove",value:function(e){if(this.activated&&(this.moved=!0,this.startX)){var t=(0,d.pointerCoord)(e).x;this.state.checked&&t+15<this.startX?(this.setState({checked:!1}),this.startX=t,this.activated=!0):t-15>this.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=t<this.startX+5)}}},{key:"handleTouchEnd",value:function(e){if(this.moved){var t=this.input;if(e.preventDefault(),this.startX){var s=(0,d.pointerCoord)(e).x;!0===this.previouslyChecked&&this.startX+4>s?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4<s&&this.previouslyChecked!==this.state.checked&&(this.setState({checked:!0}),this.previouslyChecked=this.state.checked,t.click()),this.activated=!1,this.startX=null,this.moved=!1}}}},{key:"handleFocus",value:function(e){var t=this.props.onFocus;t&&t(e),this.setState({hasFocus:!0})}},{key:"handleBlur",value:function(e){var t=this.props.onBlur;t&&t(e),this.setState({hasFocus:!1})}},{key:"getIcon",value:function(e){var s=this.props.icons;return s?void 0===s[e]?t.defaultProps.icons[e]:s[e]:null}},{key:"render",value:function(){var e=this,t=this.props,s=t.className,a=(t.icons,function(e,t){var s={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n]);return s}(t,["className","icons"])),r=(0,i.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},s);return l.default.createElement("div",{className:r,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},l.default.createElement("div",{className:"react-toggle-track"},l.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),l.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),l.default.createElement("div",{className:"react-toggle-thumb"}),l.default.createElement("input",n({},a,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(r.PureComponent);t.A=m,m.displayName="Toggle",m.defaultProps={icons:{checked:l.default.createElement(c.default,null),unchecked:l.default.createElement(u.default,null)}},m.propTypes={checked:o.default.bool,disabled:o.default.bool,defaultChecked:o.default.bool,onChange:o.default.func,onFocus:o.default.func,onBlur:o.default.func,className:o.default.string,name:o.default.string,value:o.default.string,id:o.default.string,"aria-labelledby":o.default.string,"aria-label":o.default.string,icons:o.default.oneOfType([o.default.bool,o.default.shape({checked:o.default.node,unchecked:o.default.node})])}},6104:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var s=t[0];return{x:s.clientX,y:s.clientY}}var n=e.pageX;if(void 0!==n)return{x:n,y:e.pageY}}return{x:0,y:0}}},4990:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0});var n,a=s(9950),r=(n=a)&&n.__esModule?n:{default:n};t.default=function(){return r.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},r.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}}}]);
1
+ "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[575],{1679:(e,t,s)=>{s.r(t),s.d(t,{default:()=>oe});var n=s(9950),a=s(6713),r=s(135),l=s(8429),i=s(5269),o=s(7176),c=s(6114),u=s(4084),d=s(8156),h=s(9435),m=s(6165),g=s(3150),p=s(3628),f=s(3452),v=s(2010),b=s(4834),_=s(127);var x=s(8198),j=s(8738),N=s.n(j),k=s(4414);function A(e){let{error:t,style:s={}}=e;return(0,k.jsx)("div",{style:s,className:N()("form-validation-error",{error:t}),children:t||"input is valid"})}var y=s(5488);const w=function(e){let{label:t,value:s,type:a="text",max:r=null,min:l=null,editable:i=!1,handleChange:o,validator:c=()=>!0,errorMessage:u="is required",addSpace:d=!0,valid:h=!1}=e;const[m,g]=(0,n.useState)(null);return i?(0,k.jsxs)(k.Fragment,{children:[d&&(0,k.jsx)("br",{}),(0,k.jsxs)("div",{className:N()("text-nowrap mt-2 mb-1",{"text-danger":m}),children:[t," ",m]}),(0,k.jsx)(y.A,{id:`cluster-field-${t}`,type:a,className:N()("cluster-field form-control",{error:m}),max:r,min:l,defaultValue:s,valid:h,onChange:e=>o(e.target.value),onBlur:e=>{const t=c(e.target.value);g(t?null:u)}})]}):(0,k.jsxs)(k.Fragment,{children:[d&&(0,k.jsx)("br",{}),(0,k.jsx)("div",{className:"text-nowrap mt-2 mb-1",children:t}),(0,k.jsx)(y.A,{readOnly:!0,valid:!0,type:a,value:s})]})};var C=s(2765);const S=function(e){var t,s,r,l,o,c,u,d,h;let{setConfiguring:m,clusterStatus:g,refreshStatus:p,compute_stack_id:j}=e;const N=(0,a.O$)(i.A,(e=>e.auth)),y=(0,a.O$)(i.A,(e=>e.url)),S=g.engine,P=1024,O=65535,[E,T]=(0,n.useState)({clusterRole:null===g||void 0===g||null===(t=g.cluster_role)||void 0===t?void 0:t.role,clusterUsername:(null===g||void 0===g||null===(s=g.cluster_user)||void 0===s?void 0:s.username)||"cluster_user",clusterPassword:(null===g||void 0===g||null===(r=g.cluster_user)||void 0===r?void 0:r.password)||"",clusterPort:(null===g||void 0===g?void 0:g.config_cluster_port)||"",clusterNodeName:(null===g||void 0===g?void 0:g.node_name)||j}),[R,M]=(0,n.useState)(null);function $(e){T({...E,...e})}return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(w,{label:"Cluster Role",handleChange:e=>$({clusterRole:e}),value:E.clusterRole,valid:(null===(l=E.clusterRole)||void 0===l?void 0:l.trim().length)>0,validator:e=>(null===e||void 0===e?void 0:e.trim().length)>0,editable:!(null!==g&&void 0!==g&&null!==(o=g.cluster_role)&&void 0!==o&&o.role),addSpace:!1}),(0,k.jsx)(w,{label:"Cluster User",handleChange:e=>$({clusterUsername:e}),value:E.clusterUsername,valid:E.clusterUsername.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==g&&void 0!==g&&null!==(c=g.cluster_user)&&void 0!==c&&c.username)}),(0,k.jsx)(w,{label:"Cluster Password",type:"password",handleChange:e=>$({clusterPassword:e}),value:null!==g&&void 0!==g&&null!==(u=g.cluster_user)&&void 0!==u&&u.username?"********":E.clusterPassword,valid:(null===g||void 0===g||null===(d=g.cluster_user)||void 0===d?void 0:d.username)||E.clusterPassword.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==g&&void 0!==g&&null!==(h=g.cluster_user)&&void 0!==h&&h.username),showDivider:!1}),(0,k.jsx)(w,{label:"Cluster Port",type:"number",max:O,min:P,handleChange:e=>$({clusterPort:e}),value:E.clusterPort,valid:E.clusterPort>=P&&E.clusterPort<=O,validator:e=>e>=P&&e<=O,errorMessage:"must be between 1024 and 65535",editable:!(null!==g&&void 0!==g&&g.config_cluster_port)}),(0,k.jsx)(w,{label:"Cluster Node Name",handleChange:e=>$({clusterNodeName:e}),value:E.clusterNodeName,valid:E.clusterNodeName.length>0,validator:e=>e.length>0,editable:!(null!==g&&void 0!==g&&g.node_name)}),(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsx)(f.A,{block:!0,color:"success",disabled:!function(e){var t;let{clusterRole:s,clusterUsername:n,clusterPassword:a,clusterPort:r,clusterNodeName:l}=e;return(null===s||void 0===s?void 0:s.length)>0&&n.length>0&&((null===g||void 0===g||null===(t=g.cluster_user)||void 0===t?void 0:t.username)||a.length>0)&&l.length>0&&r>=P&&r<=O}(E),onClick:async function(){var e;if(M(null),null===(e=g.cluster_role)||void 0===e||!e.role){const e=await(0,C.A)({auth:N,url:y,role:E.clusterRole,permission:{cluster_user:!0}});if(e.error)return M(e.message)}if(!g.cluster_user){const e=await(0,x.A)({auth:N,url:y,role:E.clusterRole,username:E.clusterUsername,password:E.clusterPassword});if(e.error)return M(e.message)}const t="nats"===S?await(0,b.A)({auth:N,url:y,clustering_enabled:!0,clustering_nodeName:E.clusterNodeName,clustering_port:E.clusterPort,clustering_user:E.clusterUsername}):await(async e=>{let{CLUSTERING:t=!1,CLUSTERING_PORT:s,CLUSTERING_USER:n,NODE_NAME:a,auth:r,url:l}=e;return(0,_.A)({operation:{operation:"configure_cluster",CLUSTERING:t,CLUSTERING_PORT:s,CLUSTERING_USER:n,NODE_NAME:a},auth:r,url:l})})({auth:N,url:y,CLUSTERING:!0,CLUSTERING_PORT:E.clusterPort,CLUSTERING_USER:E.clusterUsername,NODE_NAME:E.clusterNodeName});return t.error?M(t.message):(window._kmq&&window._kmq.push(["record","enabled clustering"]),await(0,v.A)({auth:N,url:y}),setTimeout((()=>m(!0)),0),p())},children:"Enable Clustering"}),(0,k.jsx)("br",{}),R&&(0,k.jsx)(A,{error:R})]})};const P=function(e){let{setConfiguring:t,clusterStatus:s,refreshStatus:n}=e;const{compute_stack_id:r}=(0,l.g)(),f=null===s||void 0===s?void 0:s.cluster_role,v=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user),b=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user),_=(null===s||void 0===s?void 0:s.cluster_role)&&(null===s||void 0===s?void 0:s.cluster_user)&&(null===s||void 0===s?void 0:s.node_name),x=(0,a.O$)(i.A,(e=>e.rule_arn)),j=Boolean(x);return(0,k.jsxs)(o.A,{id:"clustering",children:[(0,k.jsxs)(c.A,{xl:"3",lg:"4",md:"5",xs:"12",children:[(0,k.jsx)("span",{className:"floating-card-header",children:"enable clustering"}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{children:(0,k.jsx)(h.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:(0,k.jsx)(S,{setConfiguring:t,refreshStatus:n,clusterStatus:s,compute_stack_id:r})})})})]}),(0,k.jsx)(c.A,{xl:"9",lg:"8",md:"7",xs:"12",children:_?(0,k.jsx)(m.A,{headline:"You're all set!",description:"Click the button at left to enable clustering. NOTE: We'll restart the instance when you click this button.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):b?(0,k.jsx)(m.A,{headline:"Set Instance Cluster Name",description:`We need to set a unique node name to identify your instance in the cluster. By default, we set it to "${r}", but you can choose your own unique node name.`,icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})}):v?(0,k.jsx)(m.A,{headline:"Cluster Port Set To: 12345",description:"If your instance is behind a firewall, you'll need to ensure this port is accessible by other instances if you want to publish/subscribe to/from this instance.",icon:(0,k.jsx)("i",{className:"fa fa-thumbs-up text-success"})}):f?(0,k.jsx)(m.A,{headline:"Create a Cluster User",description:"If you have other instances you want to cluster together with this one, make sure the cluster user has the same name and password as those other instances.",warning:j?"HarperDB clustering functionality will not work between AWS cloud instances. We are working on upgrading our cloud infrastructure to support clustering functionality.":null,icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})}):(0,k.jsx)(m.A,{headline:"Create a Cluster Role",description:"This role subscribes to instance transaction logs and handles operations that result from its pub/sub configuration.",icon:(0,k.jsx)("i",{className:"fa fa-exclamation-triangle text-warning"})})})]})};var O=s(7348);const E=function(e){let{handleAddNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Connect To This Instance",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-plus"} text-white`})})};const T=function(e){let{handleRemoveNode:t,showModal:s,loading:n}=e;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(f.A,{color:"danger",className:"round me-1",title:"Why isn't this instance clustering?",disabled:n,onClick:s,children:(0,k.jsx)("i",{className:"fa fa-exclamation"})}),(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:n,onClick:t,children:(0,k.jsx)("i",{className:`fa ${n?"fa-spin fa-spinner":"fa-minus"} text-white`})})]})};const R=function(e){let{handleRemoveNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-minus"} text-white`})})};const M=function(){return(0,k.jsx)(f.A,{color:"purple",className:"round",title:"Connecting to this instance",disabled:!0,children:(0,k.jsx)("i",{className:"fa fa-spin fa-spinner text-white"})})};const $=function(e){let{handleConfigureNode:t,loading:s}=e;return(0,k.jsx)(f.A,{color:"success",className:"round me-1",title:"Enable Clustering",disabled:s,onClick:t,children:(0,k.jsx)("i",{className:`fa ${s?"fa-spin fa-spinner":"fa-share"} text-white`})})};const F=function(e){var t,s,n;let{setShowModal:a,item:r,itemType:l,loading:i,handleAddNode:u,handleRemoveNode:d,handleConfigureNode:h,refreshNetwork:m}=e;const g=r.compute_stack_id===i;return(0,k.jsxs)(o.A,{className:"item-row",children:[(0,k.jsx)(c.A,{className:"item-label "+("closed"===(null===(t=r.connection)||void 0===t?void 0:t.state)?"text-danger":""),children:r.instance_name}),(0,k.jsx)(c.A,{className:"item-action",children:"incompatible/unreachable"===l?null:"unconfigured"===l?(0,k.jsx)($,{loading:g,handleConfigureNode:()=>h({compute_stack_id:r.compute_stack_id})}):"CREATE_IN_PROGRESS"===r.instance_status?(0,k.jsx)(f.A,{color:"grey",className:"round",title:"Creating Instance",disabled:!0,children:(0,k.jsx)("i",{className:"fa fa-spin fa-spinner"})}):r.connection?"closed"===(null===(s=r.connection)||void 0===s?void 0:s.state)?(0,k.jsx)(T,{loading:g,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id}),showModal:()=>a(r.instance_name)}):"connecting"===(null===(n=r.connection)||void 0===n?void 0:n.state)?(0,k.jsx)(M,{refreshNetwork:m}):(0,k.jsx)(R,{loading:g,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id,instance_host:r.instance_host,clusterPort:r.clusterPort})}):(0,k.jsx)(E,{loading:g,handleAddNode:()=>u({compute_stack_id:r.compute_stack_id,instance_url:r.instance_url,instance_host:r.instance_host,clusterPort:r.clusterPort})})})]})};var I=s(1534);const L=function(e){let{items:t,itemType:s,setShowModal:r,loading:h,setLoading:m,refreshNetwork:g}=e;const{customer_id:p}=(0,l.g)(),f=(0,l.Zp)(),v=(0,O.MW)(),b=(0,a.O$)(i.A,(e=>e.compute_stack_id)),x=(0,a.O$)(i.A,(e=>e.auth),[b]),j=(0,a.O$)(i.A,(e=>e.url),[b]),N=(0,a.O$)(i.A,(e=>e.is_local),[b]),A=(0,a.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.auth)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[b]),y=(0,n.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===A?await(async e=>{let{auth:t,url:s,server:n="hub",routes:a}=e;return(0,_.A)({operation:{operation:"cluster_set_routes",server:n,routes:a},auth:t,url:s})})({auth:x,url:j,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,instance_host:s,clusterPort:n,auth:a,url:r}=e;return(0,_.A)({operation:{operation:"add_node",name:t,node_name:t,host:s,port:n,subscriptions:[]},auth:a,url:r})})({...e,auth:x,url:j,is_local:N,customer_id:p});t.error?(v.error("localhost"===e.instance_host?"External instances cannot reach that instance's URL":t.message),m(!1)):("nats"===A&&await(0,I.A)({auth:x,url:j,service:"clustering config"}),await g()),m(!1)}),[m,x,j,N,p,g,v,A]),w=(0,n.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===A?await(async e=>{let{auth:t,url:s,routes:n}=e;return(0,_.A)({operation:{operation:"cluster_delete_routes",routes:n},auth:t,url:s})})({auth:x,url:j,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,auth:s,url:n}=e;return(0,_.A)({operation:{operation:"remove_node",name:t,node_name:t},auth:s,url:n})})({...e,auth:x,url:j,is_local:N,customer_id:p});t.error?(v.error(t.message),m(!1)):("nats"===A&&await(0,I.A)({auth:x,url:j,service:"clustering config"}),await g()),m(!1)}),[m,x,j,N,p,g,v,A]),C=(0,n.useCallback)((e=>f(`/o/${p}/i/${e.compute_stack_id}/cluster`)),[f,p]);return(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsxs)("div",{className:"floating-card-header",children:[s," instances"]}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{children:null!==t&&void 0!==t&&t.length?t.map((e=>(0,k.jsx)(F,{item:e,itemType:s,setShowModal:r,handleAddNode:y,handleRemoveNode:w,handleConfigureNode:C,loading:h,refreshNetwork:g},e.instance_name))):t?(0,k.jsx)(o.A,{className:"item-row",children:(0,k.jsxs)(c.A,{className:"item-label",children:["There are no ",s," instances"]})}):(0,k.jsx)(o.A,{className:"item-row",children:(0,k.jsx)(c.A,{className:"item-label",children:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})})})})})]})};var U=s(4343);const z={filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};const D=function(e){let{refreshNetwork:t,loading:s,setLoading:r}=e;const l=(0,a.O$)(i.A,(e=>e.clusterDataTable||[])),h=(0,a.O$)(i.A,(e=>e.clusterDataTableColumns||[])),[m,g]=(0,n.useState)(z);(0,n.useEffect)((()=>{g({...m,totalPages:Math.ceil((l.length||m.pageSize)/m.pageSize)})}),[g,m.pageSize]);const p=(0,n.useCallback)((async()=>{r(!0),t()}),[r,t]);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{className:"floating-card-header",children:[(0,k.jsx)(c.A,{children:"manage clustering"}),(0,k.jsx)(c.A,{className:"text-end",children:(0,k.jsxs)(f.A,{color:"link",onClick:p,className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"refresh network"}),(0,k.jsx)("i",{title:"Refresh Roles",className:"fa "+(s?"fa-spinner fa-spin":"fa-sync-alt")})]})})]}),(0,k.jsx)(u.A,{className:"my-3",children:(0,k.jsx)(d.A,{className:"react-table-holder "+(s?"loading":""),children:null!==l&&void 0!==l&&l.length?(0,k.jsx)(U.A,{columns:h,data:l,page:m.page,pageSize:m.pageSize,totalPages:m.totalPages,showFilter:m.showFilter,sorted:m.sorted,onFilteredChange:e=>g({...m,filtered:e}),onSortedChange:e=>g({...m,sorted:e}),onPageChange:e=>g({...m,pageSize:e}),onPageSizeChange:e=>g({...m,page:0,pageSize:e})}):(0,k.jsx)("div",{className:"empty-prompt",children:"Please connect at least one instance to configure clustering"})})})]})};var G=s(6685),B=s(1340),X=s(877);const H=function(e){let{showModal:t,setShowModal:s}=e;const{compute_stack_id:n}=(0,l.g)(),r=(0,a.O$)(i.A,(e=>e.instance_name),[n]);return(0,k.jsxs)(G.A,{id:"cluster-state-modal",isOpen:!!t,toggle:()=>s(!1),centered:!0,fade:!1,children:[(0,k.jsx)(B.A,{toggle:()=>s(!1),children:"Instance Cluster Error"}),(0,k.jsx)(X.A,{children:(0,k.jsx)(u.A,{children:(0,k.jsxs)(d.A,{children:[(0,k.jsx)("b",{children:r})," is unable to open a connection to ",(0,k.jsx)("b",{children:t}),".",(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Clustered instances must be able to reach each other. This may require allowing access through a firewall."}),(0,k.jsx)("li",{children:"Both instances must be running. In the event of a restart, instances will automatically attempt to reconnect."}),(0,k.jsxs)("li",{children:["Clustered instances must have the same cluster user ",(0,k.jsx)("b",{children:"name"})," and ",(0,k.jsx)("b",{children:"password"}),". You can edit an instance's cluster user credentials in the ",(0,k.jsx)("b",{children:"config"})," ","section."]})]}),(0,k.jsx)("hr",{className:"my-3"}),"If none of these help fix the issue, you can disconnect ",(0,k.jsx)("b",{children:t})," from ",(0,k.jsx)("b",{children:r})," by clicking the purple disconnect button with the minus sign."]})})})]})};var q=s(2414),W=s.n(q);var Y=s(1110);const J=async e=>{let{channel:t,subscriptions:s,buttonState:n,instance_host:a,clusterPort:r,clusterName:l,auth:o,url:c}=e;const u=JSON.parse(JSON.stringify(s)),d=u.findIndex((e=>e.channel===t)),[h,m]=t.split(":");-1===d?u.push({channel:t,schema:h,table:m,publish:"togglePublish"===n,subscribe:"toggleSubscribe"===n}):"togglePublish"===n?u[d].publish=!u[d].publish:"toggleSubscribe"===n&&(u[d].subscribe=!u[d].subscribe),u[d]&&!u[d].publish&&u[d].subscribe;const g={operation:"update_node",name:l,node_name:l,host:a,port:r,subscriptions:u},p=await(0,_.A)({operation:g,auth:o,url:c});return p.error&&-1!==p.message.indexOf("add_node")&&(g.operation="add_node",await(0,_.A)({operation:g,auth:o,url:c})),i.A.update((e=>{e.lastUpdate=Date.now()}))};var V=s(5346),K=s(396),Z=s(6177);const Q=async e=>{let{instance:t,auth:s}=e;const n=s&&await(0,Z.A)({auth:s,url:t.url}),a=s&&await(0,V.A)({auth:s,url:t.url}),{structure:r}=a?(0,K.A)(a):{structure:{}},l=new URL(t.url),i={...t,auth:s,structure:r,host:l.hostname,clustering:n};return Object.entries(i).reduce(((e,t)=>{let[s,n]=t;return null==n||(e[s]=n),e}),{})},ee=async e=>{let{auth:t,url:s,instances:n,connections:a}=e;const r=await(async e=>{let{auth:t,url:s}=e;return(0,_.A)({operation:{operation:"cluster_get_routes"},auth:t,url:s})})({auth:t,url:s});return r.hub.map((e=>{var t;const s=n.find((t=>t.host===e.host||t.private_ip===e.host));if(!s)return!1;const r=s.host===s.private_ip?s.private_ip:s.host,l=a.find((e=>{var t;return e.node_name===(null===s||void 0===s||null===(t=s.clustering)||void 0===t?void 0:t.node_name)})),i=(null===l||void 0===l||null===(t=l.subscriptions)||void 0===t?void 0:t.map((e=>({channel:`${e.schema}:${e.table}`,...e}))))||[];return{host:r,port:e.port,state:"open",name:null===s||void 0===s?void 0:s.compute_stack_id,subscriptions:i}})).filter((e=>!1!==e))},te=e=>{let{connections:t}=e;return t?t.filter((e=>-1===e.host_address.indexOf("::ffff"))).map((e=>({name:e.node_name,host:e.host_address,port:e.host_port,state:e.state,subscriptions:e.subscriptions}))):[]},se=async e=>{let{auth:t,url:s,instances:n,compute_stack_id:a,instanceAuths:r,setLoading:l}=e;const o=await Promise.all(n.filter((e=>!!r[e.compute_stack_id])).map((e=>Q({instance:e,auth:r[e.compute_stack_id]})))),c=o.find((e=>e.compute_stack_id===a)),u=c.clustering.message||!c.clustering.is_enabled?[]:"nats"===c.clustering.engine?await ee({auth:t,url:s,instances:o,connections:c.clustering.connections}):te({connections:c.clustering.status.outbound_connections}),d={is_enabled:c.clustering.is_enabled,connections:u},h=(e=>{let{instances:t,network:s,instance_region:n,instance_wavelength_zone_id:a,instance_cluster_engine:r}=e;const l=t.filter((e=>e.url&&"DELETE_IN_PROGRESS"!==e.status)).filter((e=>e.clustering.engine===r)).map((e=>{var t,l;const i="socketcluster"===r?null===s||void 0===s?void 0:s.connections.find((t=>t.name===e.compute_stack_id)):null===s||void 0===s?void 0:s.connections.find((t=>t.host===e.host)),o=(null===i||void 0===i?void 0:i.subscriptions)||[],c=null===e||void 0===e||null===(t=e.clustering)||void 0===t?void 0:t.config_cluster_port,u=e.is_local?"OK":e.status,d=!n||n!==e.instance_region||e.wavelength_zone_id||a?e.url.match(/^https?:\/\/([^/:?#]+)(?:[/:?#]|$)/i)[1]:e.private_ip,h=e.clustering.node_name;return{instance_name:e.instance_name,instance_url:e.url,compute_stack_id:e.compute_stack_id,instance_status:u,instance_host:d,clusterPort:c,clusterName:h,connection:i,subscriptions:o,structure:e.structure,configured:null===(l=e.clustering)||void 0===l?void 0:l.is_ready}})),i=t.filter((e=>e.clustering.engine!==r)).map((e=>({instance_name:e.instance_name,compute_stack_id:e.name})));return{connected:l.filter((e=>e.connection&&e.configured)),unconnected:l.filter((e=>!e.connection&&e.configured)),unconfigured:l.filter((e=>!e.configured)),unreachable:i}})({instances:o.filter((e=>r[e.compute_stack_id]&&e.compute_stack_id!==a)),network:d,instance_region:c.instance_region,instance_wavelength_zone_id:c.wavelength_zone_id,instance_cluster_engine:c.clustering.engine}),m=(e=>{let{instances:t,structure:s}=e;if(!s||!t.length)return[];const n=[];return t.map((e=>{const t=W()(e.structure,s);return Object.keys(t).sort().map(((s,a)=>(Object.keys(t[s]).sort().map(((t,r)=>{const l=`${s}:${t}`,i=l&&e.subscriptions.find((e=>e.channel===l)),o=i&&i.publish,c=i&&i.subscribe;return n.push({is_first_instance:0===a&&0===r,is_first_schema:0===r,instance_name:e.instance_name,schema:s,table:t,compute_stack_id:e.compute_stack_id,instance_host:e.instance_host,clusterPort:e.clusterPort,clusterName:e.clusterName,subscriptions:e.subscriptions,channel:l,publish:o,subscribe:c}),!0})),!0))),!0})),n})({instances:h.connected.filter((e=>"closed"!==e.connection.state)),structure:c.structure}),g=(e=>{let{auth:t,url:s,buildNetwork:n,setLoading:a}=e;return[{Header:"instance",Cell:e=>{let{row:{original:{is_first_instance:t,instance_name:s}}}=e;return(0,k.jsx)("div",{className:t?"text-bold":"text-grey",children:s})}},{Header:"schema",Cell:e=>{let{row:{original:{is_first_schema:t,schema:s}}}=e;return(0,k.jsx)("div",{className:t?"text-bold":"text-grey",children:s})}},{Header:"table",accessor:"table"},{Header:"publish",id:"hdb-narrow-publish",Cell:e=>{let{row:{original:{compute_stack_id:r,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,subscriptions:u,publish:d,channel:h}}}=e;return(0,k.jsx)(Y.A,{checked:d||!1,onChange:async()=>{a(r),await J({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:s,buttonState:"togglePublish"}),n()}})}},{Header:"subscribe",id:"hdb-narrow-subscribe",Cell:e=>{let{row:{original:{compute_stack_id:r,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,subscriptions:u,subscribe:d,channel:h}}}=e;return(0,k.jsx)(Y.A,{checked:d||!1,onChange:async()=>{a(r),await J({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:s,buttonState:"toggleSubscribe"}),n()}})}}]})({auth:t,url:c.url,compute_stack_id:a,buildNetwork:()=>se({auth:t,url:s,instances:n,compute_stack_id:a,instanceAuths:r,setLoading:l}),setLoading:l});return i.A.update((e=>{e.network=d,e.clusterPartners=h,e.clusterDataTable=m,e.clusterDataTableColumns=g,e.instances=o})),l(!1),{network:d,clusterPartners:h,clusterDataTable:m,clusterDataTableColumns:g}},ne=se;var ae=s(5553),re=s(4319);const le=function(e){let{configuring:t}=e;const{compute_stack_id:s}=(0,l.g)(),u=(0,a.O$)(ae.A,(e=>e.instances)),[d]=(0,re.A)({}),m=(0,a.O$)(i.A,(e=>e.auth),[s]),f=(0,a.O$)(i.A,(e=>e.url),[s]),v=(0,a.O$)(i.A,(e=>e.clusterPartners),[s]),b=(0,a.O$)(i.A,(e=>e.restarting),[s]),_="socketcluster"===(0,a.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[s])&&(null===v||void 0===v?void 0:v.connected.some((e=>"connecting"===e.connection.state))),[x,j]=(0,n.useState)(!1),[N,A]=(0,n.useState)(!1),y=(0,n.useCallback)((async()=>{m&&f&&u&&s&&!b&&!t&&await ne({auth:m,url:f,instances:u,compute_stack_id:s,instanceAuths:d,setLoading:A})}),[m,f,u,s,b,d,t]);return(0,n.useEffect)((()=>{y()}),[y]),(0,r.A)((()=>_&&y()),1500),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(o.A,{id:"clustering",children:[(0,k.jsx)(c.A,{xl:"3",lg:"4",md:"6",xs:"12",children:(0,k.jsxs)(h.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:g.A,children:[(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.connected,itemType:"connected",loading:N,refreshNetwork:y,setLoading:A,setShowModal:j}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unconnected,itemType:"unconnected",loading:N,refreshNetwork:y,setLoading:A}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unconfigured,itemType:"unconfigured",loading:N}),(0,k.jsx)(L,{items:null===v||void 0===v?void 0:v.unreachable,itemType:"incompatible/unreachable",loading:N})]})}),(0,k.jsx)(c.A,{xl:"9",lg:"8",md:"6",xs:"12",children:(0,k.jsx)(D,{refreshNetwork:y,loading:N,setLoading:A})})]}),(0,k.jsx)(H,{showModal:x,setShowModal:j})]})};var ie=s(4979);const oe=function(){const{compute_stack_id:e}=(0,l.g)(),t=(0,a.O$)(i.A,(e=>e.auth),[e]),s=(0,a.O$)(i.A,(e=>e.url),[e]),[o,c]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),h=(0,n.useCallback)((async()=>{if(t&&s){const e=await(0,Z.A)({auth:t,url:s});c(e),e.is_ready&&d(!1)}}),[t,s]);return(0,r.A)((async()=>{u&&h()}),3e3),(0,n.useEffect)((()=>{h()}),[h]),(0,n.useEffect)((()=>{c(!1)}),[e]),o?u?(0,k.jsx)(m.A,{description:"Configuring Clustering",icon:(0,k.jsx)("i",{className:"fa fa-spinner fa-spin"})}):o.is_ready?(0,k.jsx)(le,{configuring:u}):(0,k.jsx)(P,{setConfiguring:d,clusterStatus:o,refreshStatus:h}):(0,k.jsx)(ie.A,{header:"loading network",spinner:!0})}},4343:(e,t,s)=>{s.d(t,{A:()=>x});var n=s(9950),a=s(2043),r=s(5488),l=s(9435),i=s(7176),o=s(6114),c=s(4414);const u=e=>{let{headerGroups:t,onSortedChange:s,sorted:n,showFilter:a}=e;return t.map((e=>{const{key:t,...r}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...r,children:[(0,c.jsx)(i.A,{className:"header g-0",children:e.headers.map((e=>{var t,a;return(0,c.jsx)(o.A,{onClick:()=>{var t,a;return s([{id:e.id,desc:(null===(t=n[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(a=n[0])&&void 0!==a&&a.desc)}])},className:`${(null===(t=n[0])||void 0===t?void 0:t.id)===e.id?"sorted":""} ${null!==(a=n[0])&&void 0!==a&&a.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),a&&(0,c.jsx)(i.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(o.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},t)}))};var d=s(3452);const h=function(e){let{page:t,pageSize:s,totalPages:n,onPageChange:a,onPageSizeChange:l,loading:u}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>a(t-1),disabled:!n||0===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:t+1,min:1,max:n,onChange:e=>a(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",u?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):n]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",value:s,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>a(t+1),disabled:!n||t+1===n,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:t,canPreviousPage:s,pageIndex:n,gotoPage:a,setPageSize:l,pageCount:u,nextPage:h,canNextPage:m,loading:g}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(d.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!u||!s,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:n+1||1,min:1,max:u,onChange:e=>a(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",g?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):u]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{a(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(d.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:h,disabled:!u||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const g=function(e){let{prepareRow:t,row:s,onRowClick:n=!1}=e;return t(s),(0,c.jsx)(i.A,{onClick:()=>n&&n(s.original),className:"g-0",children:s.cells.map((e=>(0,c.jsx)(o.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var p=s(3628),f=s(3150);function v(e){let{value:t}=e;return(0,c.jsx)("div",{className:"text-renderer",children:t})}function b(e){let{src:t}=e;const[s,a]=(0,n.useState)(!1),[r,l]=(0,n.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),s&&r?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):s?(0,c.jsx)("img",{onError:l,alt:t,src:t,className:"preview-image"}):null]})}const _={Filter:e=>{let{column:{filterValue:t,setFilter:s}}=e;return(0,c.jsx)(r.A,{type:"text",value:t||"",onChange:e=>s(e.target.value||void 0)})},Cell:e=>{let{value:t}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(v,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(v,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,c.jsx)(b,{src:e}):(0,c.jsx)(v,{value:e});default:return(0,c.jsx)(v,{value:e})}var t})(t)}};const x=function(e){let{columns:t,data:s,error:r,currentPage:i,pageSize:o,totalPages:d,onFilteredChange:v,onSortedChange:b,onPageChange:x,onPageSizeChange:j,showFilter:N,onRowClick:k,sorted:A,loading:y,manual:w=!1}=e;const{headerGroups:C,page:S,rows:P,prepareRow:O,state:E,setAllFilters:T,canPreviousPage:R,canNextPage:M,pageOptions:$,pageCount:F,gotoPage:I,nextPage:L,previousPage:U,setPageSize:z}=(0,a.useTable)({columns:t,data:s,defaultColumn:_,onFilteredChange:v,onSortedChange:b,onPageChange:x,onPageSizeChange:j,onRowClick:k,manualPagination:w,manualFilters:w,initialState:{pageIndex:i,pageSize:o}},a.useFilters,a.usePagination),[D,G]=(0,n.useState)(!0),B=w||!S.length?P:S;return(0,n.useEffect)((()=>{!N&&E.filters.length?T([]):v(E.filters)}),[E.filters,N]),(0,n.useEffect)((()=>{setTimeout((()=>G(!1)),100)}),[null===B||void 0===B?void 0:B.length]),(0,c.jsxs)(l.tH,{onError:(e,t)=>(0,p.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:f.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(u,{headerGroups:C,onSortedChange:b,sorted:A,showFilter:N}),y||D?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):B.length?B.map((e=>(0,c.jsx)(g,{row:e,prepareRow:O,onRowClick:k},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:r?`Error loading data: ${r}`:"no records"})]})]}),w?(0,c.jsx)(h,{page:i,pageSize:o,totalPages:d,onPageChange:x,onPageSizeChange:j,loading:y}):(0,c.jsx)(m,{previousPage:U,pageSize:o,canPreviousPage:R,pageIndex:E.pageIndex,pageOptions:$,gotoPage:I,setPageSize:z,pageCount:F,nextPage:L,canNextPage:M,loading:y})]})}},2765:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s,role:a,permission:r}=e;return(0,n.A)({operation:{operation:"add_role",role:a,permission:r},auth:t,url:s})}},8198:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,role:s,username:a,password:r,url:l}=e;return(0,n.A)({operation:{operation:"add_user",role:s,username:a,password:r,active:!0},auth:t,url:l})}},8750:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s}=e;return(0,n.A)({operation:{operation:"get_configuration"},auth:t,url:s})}},2415:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s}=e;const r=await(0,n.A)({operation:{operation:"list_roles"},auth:t,url:s}),l=[...Array.isArray(r)?r:[]].sort(((e,t)=>e.role.toLowerCase()>t.role.toLowerCase()?1:-1));return a.A.update((e=>{e.roles=l})),l}},8222:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s,signal:r}=e;const l=await(0,n.A)({operation:{operation:"list_users"},auth:t,url:s,signal:r}),i=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,t)=>e.username.toLowerCase()>t.username.toLowerCase()?1:-1)):[];return a.A.update((e=>{e.users=i})),i}},2010:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s}=e;return a.A.update((e=>{e.restarting=!0})),(0,n.A)({operation:{operation:"restart"},auth:t,url:s})}},1534:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),a=s(5269);const r=async e=>{let{auth:t,url:s,service:r=null}=e;return r?(a.A.update((e=>{e.restarting_service=r})),(0,n.A)({operation:{operation:"restart_service",service:r},auth:t,url:s})):{error:!0,message:"You must specify a service"}}},4834:(e,t,s)=>{s.d(t,{A:()=>a});var n=s(127);const a=async e=>{let{auth:t,url:s,...a}=e;return(0,n.A)({operation:{operation:"set_configuration",...a},auth:t,url:s})}},6177:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(8750),a=s(2415),r=s(8222),l=s(717),i=s(127);const o=async e=>{let{auth:t,url:s}=e;const o=await(0,n.A)({auth:t,url:s}),c=await(0,l.A)({auth:t,url:s}),u=await(async e=>{let{auth:t,url:s}=e;return(0,i.A)({operation:{operation:"cluster_status"},auth:t,url:s})})({auth:t,url:s}),d=parseFloat(null===c||void 0===c?void 0:c.version)>=4?"nats":"socketcluster",h=await(0,a.A)({auth:t,url:s});let m=!1;h.error||(m=h.find((e=>e.permission.cluster_user)));const g=await(0,r.A)({auth:t,url:s});let p=!1;g.error||(p=m&&g.find((e=>e.role===m.role)));const f="nats"===d?o.clustering.enabled:o.CLUSTERING,v="nats"===d?o.clustering.user:o.CLUSTERING_USER,b="nats"===d?o.clustering.hubServer.cluster.network.port:o.CLUSTERING_PORT,_="nats"===d?o.clustering.nodeName:o.NODE_NAME;return{is_ready:!!f&&!!p&&!!v&&!!m&&!!b&&!!_,cluster_role:m,cluster_user:p,is_enabled:f,config_cluster_user:v,config_cluster_port:b,node_name:_,engine:d,status:null===u||void 0===u?void 0:u.status,message:null===u||void 0===u?void 0:u.message,connections:null===u||void 0===u?void 0:u.connections}}},2414:e=>{var t=function(e){return function(e){return!!e&&"object"===typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===s}(e)}(e)};var s="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o((s=e,Array.isArray(s)?[]:{}),e,t):e;var s}function a(e,t,s){return e.concat(t).map((function(e){return n(e,s)}))}function r(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function l(e,t){try{return t in e}catch(s){return!1}}function i(e,t,s){var a={};return s.isMergeableObject(e)&&r(e).forEach((function(t){a[t]=n(e[t],s)})),r(t).forEach((function(r){(function(e,t){return l(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,r)||(l(e,r)&&s.isMergeableObject(t[r])?a[r]=function(e,t){if(!t.customMerge)return o;var s=t.customMerge(e);return"function"===typeof s?s:o}(r,s)(e[r],t[r],s):a[r]=n(t[r],s))})),a}function o(e,s,r){(r=r||{}).arrayMerge=r.arrayMerge||a,r.isMergeableObject=r.isMergeableObject||t,r.cloneUnlessOtherwiseSpecified=n;var l=Array.isArray(s);return l===Array.isArray(e)?l?r.arrayMerge(e,s,r):i(e,s,r):n(s,r)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,s){return o(e,s,t)}),{})};var c=o;e.exports=c},4010:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0});var n,a=s(9950),r=(n=a)&&n.__esModule?n:{default:n};t.default=function(){return r.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},r.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},1110:(e,t,s)=>{var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},a=function(){function e(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,s,n){return s&&e(t.prototype,s),n&&e(t,n),t}}(),r=s(9950),l=h(r),i=h(s(8738)),o=h(s(1942)),c=h(s(4010)),u=h(s(4990)),d=s(6104);function h(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var s=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return s.handleClick=s.handleClick.bind(s),s.handleTouchStart=s.handleTouchStart.bind(s),s.handleTouchMove=s.handleTouchMove.bind(s),s.handleTouchEnd=s.handleTouchEnd.bind(s),s.handleFocus=s.handleFocus.bind(s),s.handleBlur=s.handleBlur.bind(s),s.previouslyChecked=!(!e.checked&&!e.defaultChecked),s.state={checked:!(!e.checked&&!e.defaultChecked),hasFocus:!1},s}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),a(t,[{key:"componentDidUpdate",value:function(e){e.checked!==this.props.checked&&this.setState({checked:!!this.props.checked})}},{key:"handleClick",value:function(e){if(!this.props.disabled){var t=this.input;if(e.target!==t&&!this.moved)return this.previouslyChecked=t.checked,e.preventDefault(),t.focus(),void t.click();var s=this.props.hasOwnProperty("checked")?this.props.checked:t.checked;this.setState({checked:s})}}},{key:"handleTouchStart",value:function(e){this.props.disabled||(this.startX=(0,d.pointerCoord)(e).x,this.activated=!0)}},{key:"handleTouchMove",value:function(e){if(this.activated&&(this.moved=!0,this.startX)){var t=(0,d.pointerCoord)(e).x;this.state.checked&&t+15<this.startX?(this.setState({checked:!1}),this.startX=t,this.activated=!0):t-15>this.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=t<this.startX+5)}}},{key:"handleTouchEnd",value:function(e){if(this.moved){var t=this.input;if(e.preventDefault(),this.startX){var s=(0,d.pointerCoord)(e).x;!0===this.previouslyChecked&&this.startX+4>s?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4<s&&this.previouslyChecked!==this.state.checked&&(this.setState({checked:!0}),this.previouslyChecked=this.state.checked,t.click()),this.activated=!1,this.startX=null,this.moved=!1}}}},{key:"handleFocus",value:function(e){var t=this.props.onFocus;t&&t(e),this.setState({hasFocus:!0})}},{key:"handleBlur",value:function(e){var t=this.props.onBlur;t&&t(e),this.setState({hasFocus:!1})}},{key:"getIcon",value:function(e){var s=this.props.icons;return s?void 0===s[e]?t.defaultProps.icons[e]:s[e]:null}},{key:"render",value:function(){var e=this,t=this.props,s=t.className,a=(t.icons,function(e,t){var s={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n]);return s}(t,["className","icons"])),r=(0,i.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},s);return l.default.createElement("div",{className:r,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},l.default.createElement("div",{className:"react-toggle-track"},l.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),l.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),l.default.createElement("div",{className:"react-toggle-thumb"}),l.default.createElement("input",n({},a,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(r.PureComponent);t.A=m,m.displayName="Toggle",m.defaultProps={icons:{checked:l.default.createElement(c.default,null),unchecked:l.default.createElement(u.default,null)}},m.propTypes={checked:o.default.bool,disabled:o.default.bool,defaultChecked:o.default.bool,onChange:o.default.func,onFocus:o.default.func,onBlur:o.default.func,className:o.default.string,name:o.default.string,value:o.default.string,id:o.default.string,"aria-labelledby":o.default.string,"aria-label":o.default.string,icons:o.default.oneOfType([o.default.bool,o.default.shape({checked:o.default.node,unchecked:o.default.node})])}},6104:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var s=t[0];return{x:s.clientX,y:s.clientY}}var n=e.pageX;if(void 0!==n)return{x:n,y:e.pageY}}return{x:0,y:0}}},4990:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0});var n,a=s(9950),r=(n=a)&&n.__esModule?n:{default:n};t.default=function(){return r.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},r.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[741],{7368:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Y});var n=s(9950),i=s(7176),r=s(6114),a=s(3452),l=s(4084),o=s(8156),c=s(6713),d=s(8429),u=s(9435),m=s(9163),p=s.n(m),h=s(5269),_=s(5553),x=s(9690),A=s(7348),v=s(5996),j=s(4414);const g=function(e){let{which:t,compute:s,storage:n,total:a}=e;return(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsxs)(o.A,{className:"p-2 text-small",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsxs)(r.A,{xs:"6",className:"text-nowrap",children:["Compute","compute"===t&&" (new)"]}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:s}),(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)("hr",{className:"my-1"})})]}),(0,j.jsxs)(i.A,{children:[(0,j.jsxs)(r.A,{xs:"6",className:"text-nowrap",children:["Storage","storage"===t&&" (new)"]}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:n}),(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)("hr",{className:"my-1"})})]}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap",children:(0,j.jsx)("b",{children:"New Total"})}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:(0,j.jsx)("b",{children:a})})]})]})})};var f=s(5887),b=s(1943),y=s(2714);const w=async e=>(0,y.A)({endpoint:"updateInstance",method:"POST",payload:Object.entries({stripe_plan_id:e.stripe_plan_id,compute_stack_id:e.compute_stack_id,customer_id:e.customer_id,data_volume_size:e.data_volume_size,stripe_storage_plan_id:e.stripe_storage_plan_id,compute_subscription_id:e.compute_subscription_id,storage_subscription_id:e.storage_subscription_id}).reduce(((e,t)=>{let[s,n]=t;return null==n||(e[s]=n),e}),{}),auth:e.auth});var O=s(4549);const N=function(e){let{setInstanceAction:t,showPrepaidStorage:s}=e;const{customer_id:u,compute_stack_id:m}=(0,d.g)(),y=(0,d.Zp)(),N=(0,A.MW)(),$=(0,c.O$)(_.A,(e=>e.auth)),k=(0,c.O$)(_.A,(e=>e.hasCard)),C=(0,c.O$)(_.A,(e=>{var t,s;return"invoice.payment_failed"===(null===(t=e.customer)||void 0===t||null===(s=t.current_payment_status)||void 0===s?void 0:s.status)})),S=(0,c.O$)(h.A,(e=>e.compute)),E=(0,c.O$)(h.A,(e=>e.storage)),P=(0,c.O$)(h.A,(e=>e.is_local)),T=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),R=(0,c.O$)(h.A,(e=>e.last_volume_resize)),I=(0,c.O$)(h.A,(e=>e.data_volume_size)),z=(0,c.O$)(_.A,(e=>e.products.cloud_storage.filter((e=>e.value.data_volume_size>=(null===E||void 0===E?void 0:E.data_volume_size))))),D=(0,c.O$)(_.A,(e=>e.subscriptions.cloud_storage.filter((e=>(e.value.data_volume_size===I||e.value.storage_quantity_available>=e.value.data_volume_size)&&e.value.data_volume_size>=(null===E||void 0===E?void 0:E.data_volume_size))))),[L,F]=(0,n.useState)({}),[M,U]=(0,n.useState)({compute_stack_id:m,customer_id:u,...E}),[H,B]=(0,n.useState)(!1),W=s?D:z,q=W.find((e=>e.value.data_volume_size===M.data_volume_size&&e.value.stripe_storage_plan_id===M.stripe_storage_plan_id&&e.value.storage_subscription_id===M.storage_subscription_id)),V=$.orgs.filter((e=>$.user_id===e.owner_user_id)).reduce(((e,t)=>e+t.free_cloud_instance_count),0)<v.A.free_cloud_instance_limit,Y=((null===M||void 0===M?void 0:M.storage_price)||0)+((null===S||void 0===S?void 0:S.compute_price)||0),Z=Y?`${(0,O.A)(Y.toFixed(2))}/${S.compute_interval}`:"FREE",G=!R||(Date.now()-new Date(R).getTime())/1e3/3600>6,K=()=>U({compute_stack_id:m,customer_id:u,...E});return p()(K,[s]),p()((()=>{B((null===E||void 0===E?void 0:E.data_volume_size)!==M.data_volume_size||(null===E||void 0===E?void 0:E.stripe_storage_plan_id)!==M.stripe_storage_plan_id||(null===E||void 0===E?void 0:E.storage_subscription_id)!==M.storage_subscription_id)}),[M]),p()((()=>{B(!1)}),[m]),p()((async()=>{const{submitted:e}=L;if(e){t("Updating");(await w({auth:$,...M})).error?(N.error("There was an error updating your instance. Please try again later."),t(!1)):(window._kmq&&window._kmq.push(["record","upgrade instance - disk size",{totalPrice:null===M||void 0===M?void 0:M.compute_price,currency:"USD",products:[{name:"storage",id:q.data_volume_size_string,price:(null===M||void 0===M?void 0:M.storage_price)||0}]}]),N.success("Instance update initialized successfully"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>y(`/o/${u}/instances`)),100))}}),[L]),T?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x.Ay,{className:"react-select-container",classNamePrefix:"react-select",onChange:e=>{let{value:t}=e;return U({...M,...t})},options:W.filter((e=>e.value.active)),value:q,defaultValue:E,isSearchable:!1,isClearable:!1,isLoading:!W,placeholder:"Select Data Volume Size",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}}),!H||M.storage_subscription_id||Y||P||V?H&&!G?(0,j.jsx)(l.A,{className:"error mt-3 text-start",children:(0,j.jsxs)(o.A,{children:["You may update disk size every 6 hours",(0,j.jsx)("br",{}),(0,j.jsx)("br",{}),"Last resize: ",new Date(R).toLocaleTimeString(),(0,j.jsx)("br",{}),(0,j.jsx)("br",{}),"Try again at: ",new Date(new Date(R).getTime()+216e5).toLocaleTimeString()]})}):H&&(null!==M&&void 0!==M&&M.storage_price||null!==S&&void 0!==S&&S.compute_price)&&C?(0,j.jsxs)("div",{className:"mt-3",children:[(0,j.jsx)(f.A,{}),(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Update Credit Card",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)})]}):H&&(null!==M&&void 0!==M&&M.storage_price||null!==S&&void 0!==S&&S.compute_price)&&!k?(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Add Credit Card To Account",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)}):H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{which:"storage",compute:null===S||void 0===S?void 0:S.compute_price_string_with_interval,storage:(null===M||void 0===M?void 0:M.storage_price_string_with_interval)||"FREE",total:Z}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelChange",onClick:K,title:"Cancel",block:!0,disabled:L.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"confirmChange",onClick:()=>F({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:!H||L.submitted,color:"success",children:"Update"})})]})]}):null:(0,j.jsx)(l.A,{className:"error mt-3",children:(0,j.jsxs)(o.A,{children:["You are limited to ",v.A.free_cloud_instance_limit," free cloud instance",1!==v.A.free_cloud_instance_limit?"s":""]})})]})};const $=function(e){let{setInstanceAction:t,showPrepaidCompute:s}=e;const{customer_id:u,compute_stack_id:m}=(0,d.g)(),y=(0,d.Zp)(),N=(0,A.MW)(),$=(0,c.O$)(_.A,(e=>e.auth)),k=(0,c.O$)(_.A,(e=>e.hasCard)),C=(0,c.O$)(_.A,(e=>{var t,s;return"invoice.payment_failed"===(null===(t=e.customer)||void 0===t||null===(s=t.current_payment_status)||void 0===s?void 0:s.status)})),S=(0,c.O$)(h.A,(e=>e.compute)),E=(0,c.O$)(h.A,(e=>e.storage)),P=(0,c.O$)(h.A,(e=>e.is_local)),T=(0,c.O$)(h.A,(e=>e.wavelength_zone_id)),R=(0,c.O$)(h.A,(e=>e.compute_subscription_id)),I=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),z=(0,c.O$)(_.A,(e=>e.products[P?"local_compute":T?"wavelength_compute":"cloud_compute"])),D=(0,c.O$)(_.A,(e=>e.subscriptions[P?"local_compute":T?"wavelength_compute":"cloud_compute"].filter((e=>e.value.compute_subscription_id===R||e.value.compute_quantity_available)))),[L,F]=(0,n.useState)({}),[M,U]=(0,n.useState)({compute_stack_id:m,customer_id:u,...S}),[H,B]=(0,n.useState)(!1),W=s?D:z,q=W.find((e=>e.value.stripe_plan_id===M.stripe_plan_id&&e.value.compute_subscription_id===M.compute_subscription_id)),V=$.orgs.filter((e=>$.user_id===e.owner_user_id)).reduce(((e,t)=>e+t.free_cloud_instance_count),0)<v.A.free_cloud_instance_limit,Y=((null===E||void 0===E?void 0:E.storage_price)||0)+((null===M||void 0===M?void 0:M.compute_price)||0),Z=Y?`${(0,O.A)(Y.toFixed(2))}/${S.compute_interval}`:"FREE",G=()=>U({compute_stack_id:m,customer_id:u,...S});return p()(G,[s]),p()((()=>{B((null===S||void 0===S?void 0:S.stripe_plan_id)!==M.stripe_plan_id||M.compute_subscription_id!==(null===S||void 0===S?void 0:S.compute_subscription_id))}),[M]),p()((()=>{B(!1)}),[m]),p()((async()=>{const{submitted:e}=L;if(e)if(Y||M.compute_subscription_id||P||V){t("Updating");(await w({auth:$,...M})).error?(N.error("There was an error updating your instance. Please try again later."),t(!1)):(window._kmq&&window._kmq.push(["record","upgrade instance - RAM",{totalPrice:null===M||void 0===M?void 0:M.compute_price,currency:"USD",products:[{name:"compute",id:q.compute_ram_string,price:(null===M||void 0===M?void 0:M.compute_price)||0}]}]),N.success("Instance update initialized successfully"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>y(`/o/${u}/instances`)),100))}else N.error(`You are limited to ${v.A.free_cloud_instance_limit} free cloud instance${1!==v.A.free_cloud_instance_limit?"s":""}`),G(),F({})}),[L]),I?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x.Ay,{className:"react-select-container",classNamePrefix:"react-select",onChange:e=>{let{value:t}=e;return U({...M,...t})},options:W.filter((e=>e.value.active)),value:q,defaultValue:S,isSearchable:!1,isClearable:!1,isLoading:!W,placeholder:"select a RAM allotment",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}}),!H||Y||M.compute_subscription_id||P||V?H&&(null!==E&&void 0!==E&&E.storage_price||null!==M&&void 0!==M&&M.compute_price)&&C?(0,j.jsxs)("div",{className:"mt-3",children:[(0,j.jsx)(f.A,{}),(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Update Credit Card",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)})]}):H&&(null!==E&&void 0!==E&&E.storage_price||null!==M&&void 0!==M&&M.compute_price)&&!k?(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Add Credit Card To Account",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)}):H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{which:"compute",compute:M.compute_price_string_with_interval,storage:(null===E||void 0===E?void 0:E.storage_price_string_with_interval)||"FREE",total:Z}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelChange",onClick:G,title:"Cancel",block:!0,disabled:L.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"confirmChange",onClick:()=>F({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:!H||L.submitted,color:"success",children:"Update"})})]})]}):null:(0,j.jsx)(l.A,{className:"error mt-2",children:(0,j.jsxs)(o.A,{children:["You are limited to ",v.A.free_cloud_instance_limit," free cloud instance",1!==v.A.free_cloud_instance_limit?"s":""]})})]})};var k=s(5488),C=s(6404);const S=function(e){let{setInstanceAction:t}=e;const{customer_id:s,compute_stack_id:u}=(0,d.g)(),m=(0,d.Zp)(),x=(0,A.MW)(),v=(0,c.O$)(_.A,(e=>e.auth)),g=(0,c.O$)(h.A,(e=>e.instance_name)),f=(0,c.O$)(h.A,(e=>e.is_local)),b=(0,c.O$)(h.A,(e=>e.wavelength_zone_id)),y=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),[w,O]=(0,n.useState)({}),[N,$]=(0,n.useState)({});return p()((async()=>{const{submitted:e}=w;if(e){const{delete_instance_name:e}=N;if(g!==e)O({error:"instance name is not correct"});else{t("Removing");(await(0,C.A)({auth:v,customer_id:s,compute_stack_id:u,wavelength_zone_id:b})).error?(x.error("There was an error removing your instance. Please try again later."),t(!1)):(x.success("Instance deletion initiated"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>m(`/o/${s}/instances`)),3e3))}}}),[w]),y?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(k.A,{id:"instance_name_remove",onChange:e=>$({delete_instance_name:e.target.value}),type:"text",title:"instance_name",placeholder:`Enter "${g}" here to confirm.`,value:N.delete_instance_name||""}),N.delete_instance_name===g&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(l.A,{className:"my-2",children:(0,j.jsx)(o.A,{className:"px-2 pb-2 pt-3 text-small",children:f?(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"DOES NOT"})," uninstall HarperDB."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"DOES"})," leave all your data intact."]}),(0,j.jsx)("li",{children:"REMOVES your instance license."}),(0,j.jsx)("li",{children:"STOPS recurring license charges."}),(0,j.jsx)("li",{children:"LIMITS instance to 1GB RAM."}),(0,j.jsx)("li",{children:"REMOVES instance from the Studio."}),(0,j.jsx)("li",{children:"RESTARTS the instance."})]}):(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"THIS IS"})," an irreversible process."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"IT CANNOT"})," be undone."]}),(0,j.jsx)("li",{children:"DELETES your instance completely."}),(0,j.jsx)("li",{children:"STOPS recurring license charges."}),(0,j.jsx)("li",{children:"REMOVES instance from the Studio."})]})})}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelDeleteInstance",onClick:()=>$({delete_instance_name:""}),title:"Cancel",block:!0,disabled:w.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"removeInstance",onClick:()=>O({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:w.submitted,color:"danger",children:"Remove"})})]})]})]})};var E=s(135),P=s(5911),T=s(2010);const R=function(e){let{instanceAction:t,setInstanceAction:s}=e;const d=(0,A.MW)(),u=(0,c.O$)(h.A,(e=>e.auth)),m=(0,c.O$)(h.A,(e=>e.url)),_=(0,c.O$)(h.A,(e=>e.instance_name)),x=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),[g,f]=(0,n.useState)({}),[b,y]=(0,n.useState)({});return p()((async()=>{const{submitted:e}=g;if(e){s("Restarting");const e=await(0,T.A)({auth:u,url:m});null!==e&&void 0!==e&&e.error&&(s(!1),d.error("There was an error restarting your instance. Please try again later."))}}),[g]),(0,E.A)((()=>{"Restarting"===t&&(async()=>{(await(0,P.A)({auth:u,url:m})).error||(y({}),f({}),s(!1),d.success("Instance restarted successfully"))})()}),v.A.refresh_content_interval),"Restarting"===t?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsxs)(o.A,{children:[(0,j.jsx)("i",{className:"fa fa-spin fa-spinner me-2"}),"instance restarting. please wait."]})}):!v.A.is_local_studio&&x?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(k.A,{id:"instance_name_restart",onChange:e=>y({restart_instance_name:e.target.value}),type:"text",title:"instance_name",placeholder:`Enter "${_}" here to confirm.`,value:b.restart_instance_name||""}),b.restart_instance_name===_&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(l.A,{className:"my-2",children:(0,j.jsx)(o.A,{className:"px-2 pb-2 pt-3 text-small",children:(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"WILL"})," interrupt connectivity."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"WILL"})," leave all your data intact."]})]})})}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{onClick:()=>y({restart_instance_name:""}),title:"Cancel",block:!0,disabled:g.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{onClick:()=>f({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:g.submitted,color:"danger",children:"Restart"})})]})]})]})};var I=s(1652),z=s(7666);const D=function(e){var t,s,n,a,d,u,m,p,_,x,A,g,f,b,y,w,O,N;let{clusterNodeName:$,instanceConfig:k}=e;const C=(0,c.O$)(h.A,(e=>e.url)),S=(0,c.O$)(h.A,(e=>e.auth)),E=(0,c.O$)(h.A,(e=>e.totalPriceStringWithInterval)),P=(0,c.O$)(h.A,(e=>e.compute)),T=(0,c.O$)(h.A,(e=>!!e.compute_subscription_id)),R=(0,c.O$)(h.A,(e=>!!e.storage_subscription_id)),D=(0,c.O$)(h.A,(e=>e.creation_date)),L=(0,c.O$)(h.A,(e=>e.instance_region)),F=(0,c.O$)(h.A,(e=>e.storage)),M=(0,c.O$)(h.A,(e=>e.is_local)),U=null!==S&&void 0!==S&&S.user?`${btoa(`${S.user}:${S.pass}`)}`:"...",H=M?"HARDWARE LIMIT":`${null===F||void 0===F?void 0:F.iops}`,B=D?new Date(D).toLocaleDateString():"N/A",{hostname:W,origin:q}=window.location,V=new URL(v.A.is_local_studio?q:C),Y=v.A.is_local_studio?`${null!==(m=k.operationsApi)&&void 0!==m&&null!==(p=m.network)&&void 0!==p&&p.securePort?"https://":"http://"}${W}:${(null===(_=k.operationsApi)||void 0===_||null===(x=_.network)||void 0===x?void 0:x.securePort)||(null===(A=k.operationsApi)||void 0===A||null===(g=A.network)||void 0===g?void 0:g.port)}`:`${null!==(t=k.operationsApi)&&void 0!==t&&null!==(s=t.network)&&void 0!==s&&s.securePort?"https://":"http://"}${V.hostname}:${(null===(n=k.operationsApi)||void 0===n||null===(a=n.network)||void 0===a?void 0:a.securePort)||(null===(d=k.operationsApi)||void 0===d||null===(u=d.network)||void 0===u?void 0:u.port)}`,Z=v.A.is_local_studio?`${null!==(w=k.http)&&void 0!==w&&w.securePort?"https://":"http://"}${W}:${(null===(O=k.http)||void 0===O?void 0:O.securePort)||(null===(N=k.http)||void 0===N?void 0:N.port)}`:`${null!==(f=k.http)&&void 0!==f&&f.securePort?"https://":"http://"}${V.hostname}:${(null===(b=k.http)||void 0===b?void 0:b.securePort)||(null===(y=k.http)||void 0===y?void 0:y.port)}`,G=(0,c.O$)(h.A,(e=>{var t;return null===(t=e.registration)||void 0===t?void 0:t.version})),[K,J]=(null===G||void 0===G?void 0:G.split("."))||[],Q=parseFloat(`${K}.${J}`);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{className:"floating-card-header",children:"instance overview"}),(0,j.jsx)(l.A,{className:"mt-3 mb-4 instance-details",children:(0,j.jsx)(o.A,{children:(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance URL",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:Y})})})}),(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:(Q>=4.2?"Applications":"Custom Functions")+" URL",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:Z})})})}),(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance Node Name (for clustering)",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:$?(0,j.jsx)(z.A,{text:$}):"clustering not enabled"})})}),!v.A.is_local_studio&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance API Auth Header (this user)",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:U,beforeText:"Basic ",obscure:!0})})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Created",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:B})})}),L&&(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Region",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:L})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Total Price",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:E})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"RAM",className:"mb-3",children:(0,j.jsxs)("div",{className:"nowrap-scroll",children:[null===P||void 0===P?void 0:P.compute_ram_string," ",T&&"(PREPAID)"]})})}),!M&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Storage",className:"mb-3 text-nowrap",children:(0,j.jsxs)("div",{className:"nowrap-scroll",children:[null===F||void 0===F?void 0:F.data_volume_size_string," ",R&&"(PREPAID)"]})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Disk IOPS",className:"mb-3 text-nowrap",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:H})})})]})]})]})})})]})};var L=s(4979),F=s(3150),M=s(3628),U=s(7596),H=s(5012),B=s(2594);const W=function(e){let{instanceConfig:t}=e;const s=(0,c.O$)(_.A,(e=>e.theme));return(0,j.jsx)(B.A,{placeholder:t,height:"calc(100vh - 566px)",theme:"light_mitsuketa_tribute",viewOnly:!0,colors:{background:"transparent",default:"dark"===s?"#aaa":"#000",colon:"dark"===s?"#aaa":"#000",keys:"dark"===s?"#aaa":"#000",string:"#13c664",number:"#ea4c89",primitive:"#ffa500"},style:{warningBox:{display:"none"},body:{padding:"8px 0 0 0"}},locale:H.A,width:"100%",confirmGood:!1,waitAfterKeyPress:3e4})};var q=s(8750);const V=function(){return(0,j.jsx)("div",{className:"configLoader",children:(0,j.jsx)("i",{className:"fa fa-spinner fa-spin"})})};const Y=function(){const{customer_id:e,compute_stack_id:t}=(0,d.g)(),s=(0,c.O$)(_.A,(e=>e.auth)),m=(0,c.O$)(_.A,(e=>e.theme)),x=(0,c.O$)(h.A,(e=>e.auth),[t]),A=(0,c.O$)(h.A,(e=>e.url),[t]),v=(0,c.O$)(_.A,(e=>{var t;return null===(t=e.customer)||void 0===t?void 0:t.stripe_id})),g=(0,c.O$)(h.A,(e=>e.is_local),[t]),f=(0,c.O$)(h.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[t]),b=(0,c.O$)(h.A,(e=>e.compute_subscription_id),[t]),y=(0,c.O$)(h.A,(e=>e.storage_subscription_id),[t]),w=(0,c.O$)(_.A,(t=>{var s,n;return null===(s=t.auth)||void 0===s||null===(n=s.orgs)||void 0===n?void 0:n.find((t=>{var s;return(null===(s=t.customer_id)||void 0===s?void 0:s.toString())===e}))}),[e]),O="owner"===(null===w||void 0===w?void 0:w.status),[k,C]=(0,n.useState)(!1),[E,P]=(0,n.useState)(!1),[T,I]=(0,n.useState)(""),z=(0,c.O$)(_.A,(e=>{var t;return(null===(t=e.subscriptions[g?"local_compute":"cloud_compute"])||void 0===t?void 0:t.filter((e=>!e.value.compute_subscription_name||e.value.compute_quantity_available)))||[]})),H=(0,c.O$)(_.A,(e=>{var t,s;return(null===(t=e.subscriptions)||void 0===t||null===(s=t.cloud_storage)||void 0===s?void 0:s.filter((e=>!e.value.storage_subscription_name||e.value.storage_quantity_available)))||[]})),[B,Y]=(0,n.useState)(!!b),[Z,G]=(0,n.useState)(!!y);return p()((async()=>{s&&e&&v&&(0,U.A)({auth:s,customer_id:e,stripe_id:v})}),[s,e,v]),p()((async()=>{if(x&&A){I("..."),P(!1);const e=await(0,q.A)({auth:x,url:A});if(!e.error){const t="nats"===f?e.clustering.nodeName:e.NODE_NAME;I(t),P(e)}}}),[x]),k&&"Restarting"!==k?(0,j.jsx)(L.A,{header:`${k} Instance`,spinner:!0}):(0,j.jsxs)(i.A,{id:"config",children:[(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(D,{clusterNodeName:T,instanceConfig:E})})}),O&&"akamai"!==m&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)("span",{className:"floating-card-header",children:"update ram"})}),(0,j.jsx)(r.A,{className:"text-end",children:(!!b||!!z.length)&&(0,j.jsxs)("span",{className:"floating-card-header",children:["prepaid:"," ",(0,j.jsx)(a.A,{id:"showPrepaidCompute",color:"link",onClick:()=>Y(!B),children:(0,j.jsx)("i",{className:"fa fa-lg fa-toggle-"+(B?"on":"off")})})]})})]}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)($,{setInstanceAction:C,showPrepaidCompute:B}):(0,j.jsx)(V,{})})})})]}),O&&!g&&"akamai"!==m&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)("span",{className:"floating-card-header",children:"update storage"})}),(0,j.jsx)(r.A,{className:"text-end",children:(!!y||!!H.length)&&(0,j.jsxs)("span",{className:"floating-card-header",children:["prepaid:"," ",(0,j.jsx)(a.A,{id:"showPrepaidStorage",color:"link",onClick:()=>G(!Z),children:(0,j.jsx)("i",{className:"fa fa-lg fa-toggle-"+(Z?"on":"off")})})]})})]}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)(N,{setInstanceAction:C,showPrepaidStorage:Z}):(0,j.jsx)(V,{})})})})]}),O&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"remove instance"}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(S,{setInstanceAction:C,instanceAction:k})})})})]}),(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"restart instance"}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(R,{setInstanceAction:C,instanceAction:k})})})})]}),(0,j.jsxs)(r.A,{xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"instance config (read only)"}),(0,j.jsx)(l.A,{className:"mt-3 mb-4",children:(0,j.jsx)(o.A,{className:"p-0",children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)(W,{instanceConfig:E}):(0,j.jsx)(V,{})})})})]})]})}},5887:(e,t,s)=>{s.d(t,{A:()=>i});s(9950);var n=s(4414);const i=function(){return(0,n.jsxs)("div",{className:"text-danger",children:[(0,n.jsx)("i",{children:"Your most recent card payment failed. Please update your card below."}),(0,n.jsx)("hr",{className:"mt-3 mb-2"})]})}},1652:(e,t,s)=>{s.d(t,{A:()=>i});s(9950);var n=s(4414);const i=function(e){let{children:t,header:s,subheader:i,maxHeight:r="auto",minHeight:a="auto",className:l}=e;return(0,n.jsxs)("div",{className:`content-container ${l}`,children:[(0,n.jsxs)("div",{className:"header-container",children:[(0,n.jsx)("span",{className:"header",children:s}),(0,n.jsx)("span",{className:"subheader",children:i})]}),(0,n.jsx)("div",{className:"auto"!==r?"scrollable":"",style:{maxHeight:r,minHeight:a},children:t})]})}},7666:(e,t,s)=>{s.d(t,{A:()=>c});var n=s(9950),i=s(7176),r=s(6114),a=s(3452),l=s(7348),o=s(4414);const c=function(e){let{text:t,beforeText:s,afterText:c,obscure:d=!1}=e;const u=(0,l.MW)(),m=navigator.clipboard,p=(0,n.useCallback)((async e=>{e.stopPropagation(),await navigator.clipboard.writeText(t),u.success("Text copied to clipboard")}),[u,t]);return(0,o.jsxs)(i.A,{className:"copyable-text-holder g-0",children:[m&&t&&(0,o.jsx)(r.A,{className:"copy-icon",children:(0,o.jsx)(a.A,{title:"Copy this value",onClick:p,color:"link",children:(0,o.jsx)("i",{className:"fa fa-copy text-small"})})}),(0,o.jsx)(r.A,{className:"text-container",children:t?(0,o.jsxs)(o.Fragment,{children:[s,d?t.replace(/./g,"*"):t,c]}):(0,o.jsx)("span",{children:"\xa0"})})]})}},1943:(e,t,s)=>{s.d(t,{A:()=>r});s(9950);var n=s(3452),i=s(4414);const r=function(e){let{disabled:t,label:s,onClick:r}=e;return(0,i.jsx)(n.A,{onClick:r,title:s,block:!0,disabled:t,color:"danger",className:"mt-2",id:"visitCreditCard",children:s})}},8750:(e,t,s)=>{s.d(t,{A:()=>i});var n=s(127);const i=async e=>{let{auth:t,url:s}=e;return(0,n.A)({operation:{operation:"get_configuration"},auth:t,url:s})}},2010:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),i=s(5269);const r=async e=>{let{auth:t,url:s}=e;return i.A.update((e=>{e.restarting=!0})),(0,n.A)({operation:{operation:"restart"},auth:t,url:s})}},6404:(e,t,s)=>{s.d(t,{A:()=>i});var n=s(2714);const i=async e=>{let{auth:t,customer_id:s,compute_stack_id:i,is_verizon:r,is_akamai:a}=e;return(0,n.A)({endpoint:r?"wl/removeWavelengthInstance":a?"removeAkamaiInstance":"removeInstance",method:"POST",payload:{customer_id:s,compute_stack_id:i,compute_stack_wl_id:i},auth:t})}},5488:(e,t,s)=>{s.d(t,{A:()=>g});var n=s(9950),i=s(1942),r=s.n(i),a=s(8738),l=s.n(a),o=s(1497);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var d=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},u.apply(this,arguments)}function m(e,t){if(null==e)return{};var s,n,i=function(e,t){if(null==e)return{};var s,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)s=r[n],t.indexOf(s)>=0||(i[s]=e[s]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)s=r[n],t.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}function p(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function _(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var s,n=A(e);if(t){var i=A(this).constructor;s=Reflect.construct(n,arguments,i)}else s=n.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}(this,s)}}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function A(e){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},A(e)}var v={children:r().node,type:r().string,size:r().oneOfType([r().number,r().string]),bsSize:r().string,valid:r().bool,invalid:r().bool,tag:o.Wx,innerRef:r().oneOfType([r().object,r().func,r().string]),plaintext:r().bool,addon:r().bool,className:r().string,cssModule:r().object},j=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(a,e);var t,s,i,r=_(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=r.call(this,e)).getRef=t.getRef.bind(x(t)),t.focus=t.focus.bind(x(t)),t}return t=a,(s=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,s=e.cssModule,i=e.type,r=void 0===i?"text":i,a=e.bsSize,c=e.valid,p=e.invalid,h=e.tag,_=e.addon,x=e.plaintext,A=e.innerRef,v=m(e,d),j=["switch","radio","checkbox"].indexOf(r)>-1,g="select"===r,f="range"===r,b=h||(g||"textarea"===r?r:"input"),y="form-control";x?(y="".concat(y,"-plaintext"),b=h||"input"):f?y="form-range":g?y="form-select":j&&(y=_?null:"form-check-input"),v.size&&/\D/g.test(v.size)&&((0,o.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),a=v.size,delete v.size);var w=(0,o.qO)(l()(t,p&&"is-invalid",c&&"is-valid",!!a&&(g?"form-select-".concat(a):"form-control-".concat(a)),y),s);return("input"===b||h&&"function"===typeof h)&&(v.type="switch"===r?"checkbox":r),v.children&&!x&&"select"!==r&&"string"===typeof b&&"select"!==b&&((0,o.mc)('Input with a type of "'.concat(r,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete v.children),n.createElement(b,u({},v,{ref:A,className:w,"aria-invalid":p}))}}])&&p(t.prototype,s),i&&p(t,i),Object.defineProperty(t,"prototype",{writable:!1}),a}(n.Component);j.propTypes=v;const g=j}}]);
1
+ "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[741],{7368:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Y});var n=s(9950),i=s(7176),r=s(6114),a=s(3452),l=s(4084),o=s(8156),c=s(6713),d=s(8429),u=s(9435),m=s(9163),p=s.n(m),h=s(5269),_=s(5553),x=s(6359),A=s(7348),v=s(5996),j=s(4414);const g=function(e){let{which:t,compute:s,storage:n,total:a}=e;return(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsxs)(o.A,{className:"p-2 text-small",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsxs)(r.A,{xs:"6",className:"text-nowrap",children:["Compute","compute"===t&&" (new)"]}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:s}),(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)("hr",{className:"my-1"})})]}),(0,j.jsxs)(i.A,{children:[(0,j.jsxs)(r.A,{xs:"6",className:"text-nowrap",children:["Storage","storage"===t&&" (new)"]}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:n}),(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)("hr",{className:"my-1"})})]}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap",children:(0,j.jsx)("b",{children:"New Total"})}),(0,j.jsx)(r.A,{xs:"6",className:"text-nowrap text-end text-truncate",children:(0,j.jsx)("b",{children:a})})]})]})})};var f=s(5887),b=s(1943),y=s(2714);const w=async e=>(0,y.A)({endpoint:"updateInstance",method:"POST",payload:Object.entries({stripe_plan_id:e.stripe_plan_id,compute_stack_id:e.compute_stack_id,customer_id:e.customer_id,data_volume_size:e.data_volume_size,stripe_storage_plan_id:e.stripe_storage_plan_id,compute_subscription_id:e.compute_subscription_id,storage_subscription_id:e.storage_subscription_id}).reduce(((e,t)=>{let[s,n]=t;return null==n||(e[s]=n),e}),{}),auth:e.auth});var O=s(4549);const N=function(e){let{setInstanceAction:t,showPrepaidStorage:s}=e;const{customer_id:u,compute_stack_id:m}=(0,d.g)(),y=(0,d.Zp)(),N=(0,A.MW)(),$=(0,c.O$)(_.A,(e=>e.auth)),k=(0,c.O$)(_.A,(e=>e.hasCard)),C=(0,c.O$)(_.A,(e=>{var t,s;return"invoice.payment_failed"===(null===(t=e.customer)||void 0===t||null===(s=t.current_payment_status)||void 0===s?void 0:s.status)})),S=(0,c.O$)(h.A,(e=>e.compute)),E=(0,c.O$)(h.A,(e=>e.storage)),P=(0,c.O$)(h.A,(e=>e.is_local)),T=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),R=(0,c.O$)(h.A,(e=>e.last_volume_resize)),I=(0,c.O$)(h.A,(e=>e.data_volume_size)),z=(0,c.O$)(_.A,(e=>e.products.cloud_storage.filter((e=>e.value.data_volume_size>=(null===E||void 0===E?void 0:E.data_volume_size))))),D=(0,c.O$)(_.A,(e=>e.subscriptions.cloud_storage.filter((e=>(e.value.data_volume_size===I||e.value.storage_quantity_available>=e.value.data_volume_size)&&e.value.data_volume_size>=(null===E||void 0===E?void 0:E.data_volume_size))))),[L,F]=(0,n.useState)({}),[M,U]=(0,n.useState)({compute_stack_id:m,customer_id:u,...E}),[H,B]=(0,n.useState)(!1),W=s?D:z,q=W.find((e=>e.value.data_volume_size===M.data_volume_size&&e.value.stripe_storage_plan_id===M.stripe_storage_plan_id&&e.value.storage_subscription_id===M.storage_subscription_id)),V=$.orgs.filter((e=>$.user_id===e.owner_user_id)).reduce(((e,t)=>e+t.free_cloud_instance_count),0)<v.A.free_cloud_instance_limit,Y=((null===M||void 0===M?void 0:M.storage_price)||0)+((null===S||void 0===S?void 0:S.compute_price)||0),Z=Y?`${(0,O.A)(Y.toFixed(2))}/${S.compute_interval}`:"FREE",G=!R||(Date.now()-new Date(R).getTime())/1e3/3600>6,K=()=>U({compute_stack_id:m,customer_id:u,...E});return p()(K,[s]),p()((()=>{B((null===E||void 0===E?void 0:E.data_volume_size)!==M.data_volume_size||(null===E||void 0===E?void 0:E.stripe_storage_plan_id)!==M.stripe_storage_plan_id||(null===E||void 0===E?void 0:E.storage_subscription_id)!==M.storage_subscription_id)}),[M]),p()((()=>{B(!1)}),[m]),p()((async()=>{const{submitted:e}=L;if(e){t("Updating");(await w({auth:$,...M})).error?(N.error("There was an error updating your instance. Please try again later."),t(!1)):(window._kmq&&window._kmq.push(["record","upgrade instance - disk size",{totalPrice:null===M||void 0===M?void 0:M.compute_price,currency:"USD",products:[{name:"storage",id:q.data_volume_size_string,price:(null===M||void 0===M?void 0:M.storage_price)||0}]}]),N.success("Instance update initialized successfully"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>y(`/o/${u}/instances`)),100))}}),[L]),T?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x.Ay,{className:"react-select-container",classNamePrefix:"react-select",onChange:e=>{let{value:t}=e;return U({...M,...t})},options:W.filter((e=>e.value.active)),value:q,defaultValue:E,isSearchable:!1,isClearable:!1,isLoading:!W,placeholder:"Select Data Volume Size",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}}),!H||M.storage_subscription_id||Y||P||V?H&&!G?(0,j.jsx)(l.A,{className:"error mt-3 text-start",children:(0,j.jsxs)(o.A,{children:["You may update disk size every 6 hours",(0,j.jsx)("br",{}),(0,j.jsx)("br",{}),"Last resize: ",new Date(R).toLocaleTimeString(),(0,j.jsx)("br",{}),(0,j.jsx)("br",{}),"Try again at: ",new Date(new Date(R).getTime()+216e5).toLocaleTimeString()]})}):H&&(null!==M&&void 0!==M&&M.storage_price||null!==S&&void 0!==S&&S.compute_price)&&C?(0,j.jsxs)("div",{className:"mt-3",children:[(0,j.jsx)(f.A,{}),(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Update Credit Card",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)})]}):H&&(null!==M&&void 0!==M&&M.storage_price||null!==S&&void 0!==S&&S.compute_price)&&!k?(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Add Credit Card To Account",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)}):H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{which:"storage",compute:null===S||void 0===S?void 0:S.compute_price_string_with_interval,storage:(null===M||void 0===M?void 0:M.storage_price_string_with_interval)||"FREE",total:Z}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelChange",onClick:K,title:"Cancel",block:!0,disabled:L.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"confirmChange",onClick:()=>F({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:!H||L.submitted,color:"success",children:"Update"})})]})]}):null:(0,j.jsx)(l.A,{className:"error mt-3",children:(0,j.jsxs)(o.A,{children:["You are limited to ",v.A.free_cloud_instance_limit," free cloud instance",1!==v.A.free_cloud_instance_limit?"s":""]})})]})};const $=function(e){let{setInstanceAction:t,showPrepaidCompute:s}=e;const{customer_id:u,compute_stack_id:m}=(0,d.g)(),y=(0,d.Zp)(),N=(0,A.MW)(),$=(0,c.O$)(_.A,(e=>e.auth)),k=(0,c.O$)(_.A,(e=>e.hasCard)),C=(0,c.O$)(_.A,(e=>{var t,s;return"invoice.payment_failed"===(null===(t=e.customer)||void 0===t||null===(s=t.current_payment_status)||void 0===s?void 0:s.status)})),S=(0,c.O$)(h.A,(e=>e.compute)),E=(0,c.O$)(h.A,(e=>e.storage)),P=(0,c.O$)(h.A,(e=>e.is_local)),T=(0,c.O$)(h.A,(e=>e.wavelength_zone_id)),R=(0,c.O$)(h.A,(e=>e.compute_subscription_id)),I=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),z=(0,c.O$)(_.A,(e=>e.products[P?"local_compute":T?"wavelength_compute":"cloud_compute"])),D=(0,c.O$)(_.A,(e=>e.subscriptions[P?"local_compute":T?"wavelength_compute":"cloud_compute"].filter((e=>e.value.compute_subscription_id===R||e.value.compute_quantity_available)))),[L,F]=(0,n.useState)({}),[M,U]=(0,n.useState)({compute_stack_id:m,customer_id:u,...S}),[H,B]=(0,n.useState)(!1),W=s?D:z,q=W.find((e=>e.value.stripe_plan_id===M.stripe_plan_id&&e.value.compute_subscription_id===M.compute_subscription_id)),V=$.orgs.filter((e=>$.user_id===e.owner_user_id)).reduce(((e,t)=>e+t.free_cloud_instance_count),0)<v.A.free_cloud_instance_limit,Y=((null===E||void 0===E?void 0:E.storage_price)||0)+((null===M||void 0===M?void 0:M.compute_price)||0),Z=Y?`${(0,O.A)(Y.toFixed(2))}/${S.compute_interval}`:"FREE",G=()=>U({compute_stack_id:m,customer_id:u,...S});return p()(G,[s]),p()((()=>{B((null===S||void 0===S?void 0:S.stripe_plan_id)!==M.stripe_plan_id||M.compute_subscription_id!==(null===S||void 0===S?void 0:S.compute_subscription_id))}),[M]),p()((()=>{B(!1)}),[m]),p()((async()=>{const{submitted:e}=L;if(e)if(Y||M.compute_subscription_id||P||V){t("Updating");(await w({auth:$,...M})).error?(N.error("There was an error updating your instance. Please try again later."),t(!1)):(window._kmq&&window._kmq.push(["record","upgrade instance - RAM",{totalPrice:null===M||void 0===M?void 0:M.compute_price,currency:"USD",products:[{name:"compute",id:q.compute_ram_string,price:(null===M||void 0===M?void 0:M.compute_price)||0}]}]),N.success("Instance update initialized successfully"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>y(`/o/${u}/instances`)),100))}else N.error(`You are limited to ${v.A.free_cloud_instance_limit} free cloud instance${1!==v.A.free_cloud_instance_limit?"s":""}`),G(),F({})}),[L]),I?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x.Ay,{className:"react-select-container",classNamePrefix:"react-select",onChange:e=>{let{value:t}=e;return U({...M,...t})},options:W.filter((e=>e.value.active)),value:q,defaultValue:S,isSearchable:!1,isClearable:!1,isLoading:!W,placeholder:"select a RAM allotment",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}}),!H||Y||M.compute_subscription_id||P||V?H&&(null!==E&&void 0!==E&&E.storage_price||null!==M&&void 0!==M&&M.compute_price)&&C?(0,j.jsxs)("div",{className:"mt-3",children:[(0,j.jsx)(f.A,{}),(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Update Credit Card",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)})]}):H&&(null!==E&&void 0!==E&&E.storage_price||null!==M&&void 0!==M&&M.compute_price)&&!k?(0,j.jsx)(b.A,{disabled:!H||L.submitted,label:"Add Credit Card To Account",onClick:()=>y(`/o/${u}/billing?returnURL=/${u}/i/${m}/config`)}):H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{which:"compute",compute:M.compute_price_string_with_interval,storage:(null===E||void 0===E?void 0:E.storage_price_string_with_interval)||"FREE",total:Z}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelChange",onClick:G,title:"Cancel",block:!0,disabled:L.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"confirmChange",onClick:()=>F({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:!H||L.submitted,color:"success",children:"Update"})})]})]}):null:(0,j.jsx)(l.A,{className:"error mt-2",children:(0,j.jsxs)(o.A,{children:["You are limited to ",v.A.free_cloud_instance_limit," free cloud instance",1!==v.A.free_cloud_instance_limit?"s":""]})})]})};var k=s(5488),C=s(6404);const S=function(e){let{setInstanceAction:t}=e;const{customer_id:s,compute_stack_id:u}=(0,d.g)(),m=(0,d.Zp)(),x=(0,A.MW)(),v=(0,c.O$)(_.A,(e=>e.auth)),g=(0,c.O$)(h.A,(e=>e.instance_name)),f=(0,c.O$)(h.A,(e=>e.is_local)),b=(0,c.O$)(h.A,(e=>e.wavelength_zone_id)),y=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),[w,O]=(0,n.useState)({}),[N,$]=(0,n.useState)({});return p()((async()=>{const{submitted:e}=w;if(e){const{delete_instance_name:e}=N;if(g!==e)O({error:"instance name is not correct"});else{t("Removing");(await(0,C.A)({auth:v,customer_id:s,compute_stack_id:u,wavelength_zone_id:b})).error?(x.error("There was an error removing your instance. Please try again later."),t(!1)):(x.success("Instance deletion initiated"),_.A.update((e=>{e.lastUpdate=Date.now()})),setTimeout((()=>m(`/o/${s}/instances`)),3e3))}}}),[w]),y?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(k.A,{id:"instance_name_remove",onChange:e=>$({delete_instance_name:e.target.value}),type:"text",title:"instance_name",placeholder:`Enter "${g}" here to confirm.`,value:N.delete_instance_name||""}),N.delete_instance_name===g&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(l.A,{className:"my-2",children:(0,j.jsx)(o.A,{className:"px-2 pb-2 pt-3 text-small",children:f?(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"DOES NOT"})," uninstall HarperDB."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"DOES"})," leave all your data intact."]}),(0,j.jsx)("li",{children:"REMOVES your instance license."}),(0,j.jsx)("li",{children:"STOPS recurring license charges."}),(0,j.jsx)("li",{children:"LIMITS instance to 1GB RAM."}),(0,j.jsx)("li",{children:"REMOVES instance from the Studio."}),(0,j.jsx)("li",{children:"RESTARTS the instance."})]}):(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"THIS IS"})," an irreversible process."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"IT CANNOT"})," be undone."]}),(0,j.jsx)("li",{children:"DELETES your instance completely."}),(0,j.jsx)("li",{children:"STOPS recurring license charges."}),(0,j.jsx)("li",{children:"REMOVES instance from the Studio."})]})})}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"cancelDeleteInstance",onClick:()=>$({delete_instance_name:""}),title:"Cancel",block:!0,disabled:w.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{id:"removeInstance",onClick:()=>O({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:w.submitted,color:"danger",children:"Remove"})})]})]})]})};var E=s(135),P=s(5911),T=s(2010);const R=function(e){let{instanceAction:t,setInstanceAction:s}=e;const d=(0,A.MW)(),u=(0,c.O$)(h.A,(e=>e.auth)),m=(0,c.O$)(h.A,(e=>e.url)),_=(0,c.O$)(h.A,(e=>e.instance_name)),x=(0,c.O$)(h.A,(e=>!["CREATE_COMPLETE","UPDATE_COMPLETE"].includes(e.status))),[g,f]=(0,n.useState)({}),[b,y]=(0,n.useState)({});return p()((async()=>{const{submitted:e}=g;if(e){s("Restarting");const e=await(0,T.A)({auth:u,url:m});null!==e&&void 0!==e&&e.error&&(s(!1),d.error("There was an error restarting your instance. Please try again later."))}}),[g]),(0,E.A)((()=>{"Restarting"===t&&(async()=>{(await(0,P.A)({auth:u,url:m})).error||(y({}),f({}),s(!1),d.success("Instance restarted successfully"))})()}),v.A.refresh_content_interval),"Restarting"===t?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsxs)(o.A,{children:[(0,j.jsx)("i",{className:"fa fa-spin fa-spinner me-2"}),"instance restarting. please wait."]})}):!v.A.is_local_studio&&x?(0,j.jsx)(l.A,{className:"error",children:(0,j.jsx)(o.A,{children:"instance updating. please wait."})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(k.A,{id:"instance_name_restart",onChange:e=>y({restart_instance_name:e.target.value}),type:"text",title:"instance_name",placeholder:`Enter "${_}" here to confirm.`,value:b.restart_instance_name||""}),b.restart_instance_name===_&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(l.A,{className:"my-2",children:(0,j.jsx)(o.A,{className:"px-2 pb-2 pt-3 text-small",children:(0,j.jsxs)("ul",{className:"text-small mb-0",children:[(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"WILL"})," interrupt connectivity."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("b",{children:"WILL"})," leave all your data intact."]})]})})}),(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{onClick:()=>y({restart_instance_name:""}),title:"Cancel",block:!0,disabled:g.submitted,color:"grey",children:"Cancel"})}),(0,j.jsx)(r.A,{children:(0,j.jsx)(a.A,{onClick:()=>f({submitted:!0}),title:"Confirm Instance Details",block:!0,disabled:g.submitted,color:"danger",children:"Restart"})})]})]})]})};var I=s(1652),z=s(7666);const D=function(e){var t,s,n,a,d,u,m,p,_,x,A,g,f,b,y,w,O,N;let{clusterNodeName:$,instanceConfig:k}=e;const C=(0,c.O$)(h.A,(e=>e.url)),S=(0,c.O$)(h.A,(e=>e.auth)),E=(0,c.O$)(h.A,(e=>e.totalPriceStringWithInterval)),P=(0,c.O$)(h.A,(e=>e.compute)),T=(0,c.O$)(h.A,(e=>!!e.compute_subscription_id)),R=(0,c.O$)(h.A,(e=>!!e.storage_subscription_id)),D=(0,c.O$)(h.A,(e=>e.creation_date)),L=(0,c.O$)(h.A,(e=>e.instance_region)),F=(0,c.O$)(h.A,(e=>e.storage)),M=(0,c.O$)(h.A,(e=>e.is_local)),U=null!==S&&void 0!==S&&S.user?`${btoa(`${S.user}:${S.pass}`)}`:"...",H=M?"HARDWARE LIMIT":`${null===F||void 0===F?void 0:F.iops}`,B=D?new Date(D).toLocaleDateString():"N/A",{hostname:W,origin:q}=window.location,V=new URL(v.A.is_local_studio?q:C),Y=v.A.is_local_studio?`${null!==(m=k.operationsApi)&&void 0!==m&&null!==(p=m.network)&&void 0!==p&&p.securePort?"https://":"http://"}${W}:${(null===(_=k.operationsApi)||void 0===_||null===(x=_.network)||void 0===x?void 0:x.securePort)||(null===(A=k.operationsApi)||void 0===A||null===(g=A.network)||void 0===g?void 0:g.port)}`:`${null!==(t=k.operationsApi)&&void 0!==t&&null!==(s=t.network)&&void 0!==s&&s.securePort?"https://":"http://"}${V.hostname}:${(null===(n=k.operationsApi)||void 0===n||null===(a=n.network)||void 0===a?void 0:a.securePort)||(null===(d=k.operationsApi)||void 0===d||null===(u=d.network)||void 0===u?void 0:u.port)}`,Z=v.A.is_local_studio?`${null!==(w=k.http)&&void 0!==w&&w.securePort?"https://":"http://"}${W}:${(null===(O=k.http)||void 0===O?void 0:O.securePort)||(null===(N=k.http)||void 0===N?void 0:N.port)}`:`${null!==(f=k.http)&&void 0!==f&&f.securePort?"https://":"http://"}${V.hostname}:${(null===(b=k.http)||void 0===b?void 0:b.securePort)||(null===(y=k.http)||void 0===y?void 0:y.port)}`,G=(0,c.O$)(h.A,(e=>{var t;return null===(t=e.registration)||void 0===t?void 0:t.version})),[K,J]=(null===G||void 0===G?void 0:G.split("."))||[],Q=parseFloat(`${K}.${J}`);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{className:"floating-card-header",children:"instance overview"}),(0,j.jsx)(l.A,{className:"mt-3 mb-4 instance-details",children:(0,j.jsx)(o.A,{children:(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance URL",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:Y})})})}),(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:(Q>=4.2?"Applications":"Custom Functions")+" URL",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:Z})})})}),(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance Node Name (for clustering)",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:$?(0,j.jsx)(z.A,{text:$}):"clustering not enabled"})})}),!v.A.is_local_studio&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(r.A,{md:"4",xs:"12",children:(0,j.jsx)(I.A,{header:"Instance API Auth Header (this user)",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:(0,j.jsx)(z.A,{text:U,beforeText:"Basic ",obscure:!0})})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Created",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:B})})}),L&&(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Region",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:L})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Total Price",className:"mb-3",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:E})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"RAM",className:"mb-3",children:(0,j.jsxs)("div",{className:"nowrap-scroll",children:[null===P||void 0===P?void 0:P.compute_ram_string," ",T&&"(PREPAID)"]})})}),!M&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Storage",className:"mb-3 text-nowrap",children:(0,j.jsxs)("div",{className:"nowrap-scroll",children:[null===F||void 0===F?void 0:F.data_volume_size_string," ",R&&"(PREPAID)"]})})}),(0,j.jsx)(r.A,{md:"2",sm:"4",xs:"6",children:(0,j.jsx)(I.A,{header:"Disk IOPS",className:"mb-3 text-nowrap",children:(0,j.jsx)("div",{className:"nowrap-scroll",children:H})})})]})]})]})})})]})};var L=s(4979),F=s(3150),M=s(3628),U=s(7596),H=s(5012),B=s(2594);const W=function(e){let{instanceConfig:t}=e;const s=(0,c.O$)(_.A,(e=>e.theme));return(0,j.jsx)(B.A,{placeholder:t,height:"calc(100vh - 566px)",theme:"light_mitsuketa_tribute",viewOnly:!0,colors:{background:"transparent",default:"dark"===s?"#aaa":"#000",colon:"dark"===s?"#aaa":"#000",keys:"dark"===s?"#aaa":"#000",string:"#13c664",number:"#ea4c89",primitive:"#ffa500"},style:{warningBox:{display:"none"},body:{padding:"8px 0 0 0"}},locale:H.A,width:"100%",confirmGood:!1,waitAfterKeyPress:3e4})};var q=s(8750);const V=function(){return(0,j.jsx)("div",{className:"configLoader",children:(0,j.jsx)("i",{className:"fa fa-spinner fa-spin"})})};const Y=function(){const{customer_id:e,compute_stack_id:t}=(0,d.g)(),s=(0,c.O$)(_.A,(e=>e.auth)),m=(0,c.O$)(_.A,(e=>e.theme)),x=(0,c.O$)(h.A,(e=>e.auth),[t]),A=(0,c.O$)(h.A,(e=>e.url),[t]),v=(0,c.O$)(_.A,(e=>{var t;return null===(t=e.customer)||void 0===t?void 0:t.stripe_id})),g=(0,c.O$)(h.A,(e=>e.is_local),[t]),f=(0,c.O$)(h.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[t]),b=(0,c.O$)(h.A,(e=>e.compute_subscription_id),[t]),y=(0,c.O$)(h.A,(e=>e.storage_subscription_id),[t]),w=(0,c.O$)(_.A,(t=>{var s,n;return null===(s=t.auth)||void 0===s||null===(n=s.orgs)||void 0===n?void 0:n.find((t=>{var s;return(null===(s=t.customer_id)||void 0===s?void 0:s.toString())===e}))}),[e]),O="owner"===(null===w||void 0===w?void 0:w.status),[k,C]=(0,n.useState)(!1),[E,P]=(0,n.useState)(!1),[T,I]=(0,n.useState)(""),z=(0,c.O$)(_.A,(e=>{var t;return(null===(t=e.subscriptions[g?"local_compute":"cloud_compute"])||void 0===t?void 0:t.filter((e=>!e.value.compute_subscription_name||e.value.compute_quantity_available)))||[]})),H=(0,c.O$)(_.A,(e=>{var t,s;return(null===(t=e.subscriptions)||void 0===t||null===(s=t.cloud_storage)||void 0===s?void 0:s.filter((e=>!e.value.storage_subscription_name||e.value.storage_quantity_available)))||[]})),[B,Y]=(0,n.useState)(!!b),[Z,G]=(0,n.useState)(!!y);return p()((async()=>{s&&e&&v&&(0,U.A)({auth:s,customer_id:e,stripe_id:v})}),[s,e,v]),p()((async()=>{if(x&&A){I("..."),P(!1);const e=await(0,q.A)({auth:x,url:A});if(!e.error){const t="nats"===f?e.clustering.nodeName:e.NODE_NAME;I(t),P(e)}}}),[x]),k&&"Restarting"!==k?(0,j.jsx)(L.A,{header:`${k} Instance`,spinner:!0}):(0,j.jsxs)(i.A,{id:"config",children:[(0,j.jsx)(r.A,{xs:"12",children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(D,{clusterNodeName:T,instanceConfig:E})})}),O&&"akamai"!==m&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)("span",{className:"floating-card-header",children:"update ram"})}),(0,j.jsx)(r.A,{className:"text-end",children:(!!b||!!z.length)&&(0,j.jsxs)("span",{className:"floating-card-header",children:["prepaid:"," ",(0,j.jsx)(a.A,{id:"showPrepaidCompute",color:"link",onClick:()=>Y(!B),children:(0,j.jsx)("i",{className:"fa fa-lg fa-toggle-"+(B?"on":"off")})})]})})]}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)($,{setInstanceAction:C,showPrepaidCompute:B}):(0,j.jsx)(V,{})})})})]}),O&&!g&&"akamai"!==m&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsxs)(i.A,{children:[(0,j.jsx)(r.A,{children:(0,j.jsx)("span",{className:"floating-card-header",children:"update storage"})}),(0,j.jsx)(r.A,{className:"text-end",children:(!!y||!!H.length)&&(0,j.jsxs)("span",{className:"floating-card-header",children:["prepaid:"," ",(0,j.jsx)(a.A,{id:"showPrepaidStorage",color:"link",onClick:()=>G(!Z),children:(0,j.jsx)("i",{className:"fa fa-lg fa-toggle-"+(Z?"on":"off")})})]})})]}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)(N,{setInstanceAction:C,showPrepaidStorage:Z}):(0,j.jsx)(V,{})})})})]}),O&&(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"remove instance"}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(S,{setInstanceAction:C,instanceAction:k})})})})]}),(0,j.jsxs)(r.A,{lg:"3",sm:"6",xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"restart instance"}),(0,j.jsx)(l.A,{className:"my-3",children:(0,j.jsx)(o.A,{children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:(0,j.jsx)(R,{setInstanceAction:C,instanceAction:k})})})})]}),(0,j.jsxs)(r.A,{xs:"12",children:[(0,j.jsx)("span",{className:"floating-card-header",children:"instance config (read only)"}),(0,j.jsx)(l.A,{className:"mt-3 mb-4",children:(0,j.jsx)(o.A,{className:"p-0",children:(0,j.jsx)(u.tH,{onError:(e,t)=>(0,M.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:F.A,children:E?(0,j.jsx)(W,{instanceConfig:E}):(0,j.jsx)(V,{})})})})]})]})}},5887:(e,t,s)=>{s.d(t,{A:()=>i});s(9950);var n=s(4414);const i=function(){return(0,n.jsxs)("div",{className:"text-danger",children:[(0,n.jsx)("i",{children:"Your most recent card payment failed. Please update your card below."}),(0,n.jsx)("hr",{className:"mt-3 mb-2"})]})}},1652:(e,t,s)=>{s.d(t,{A:()=>i});s(9950);var n=s(4414);const i=function(e){let{children:t,header:s,subheader:i,maxHeight:r="auto",minHeight:a="auto",className:l}=e;return(0,n.jsxs)("div",{className:`content-container ${l}`,children:[(0,n.jsxs)("div",{className:"header-container",children:[(0,n.jsx)("span",{className:"header",children:s}),(0,n.jsx)("span",{className:"subheader",children:i})]}),(0,n.jsx)("div",{className:"auto"!==r?"scrollable":"",style:{maxHeight:r,minHeight:a},children:t})]})}},7666:(e,t,s)=>{s.d(t,{A:()=>c});var n=s(9950),i=s(7176),r=s(6114),a=s(3452),l=s(7348),o=s(4414);const c=function(e){let{text:t,beforeText:s,afterText:c,obscure:d=!1}=e;const u=(0,l.MW)(),m=navigator.clipboard,p=(0,n.useCallback)((async e=>{e.stopPropagation(),await navigator.clipboard.writeText(t),u.success("Text copied to clipboard")}),[u,t]);return(0,o.jsxs)(i.A,{className:"copyable-text-holder g-0",children:[m&&t&&(0,o.jsx)(r.A,{className:"copy-icon",children:(0,o.jsx)(a.A,{title:"Copy this value",onClick:p,color:"link",children:(0,o.jsx)("i",{className:"fa fa-copy text-small"})})}),(0,o.jsx)(r.A,{className:"text-container",children:t?(0,o.jsxs)(o.Fragment,{children:[s,d?t.replace(/./g,"*"):t,c]}):(0,o.jsx)("span",{children:"\xa0"})})]})}},1943:(e,t,s)=>{s.d(t,{A:()=>r});s(9950);var n=s(3452),i=s(4414);const r=function(e){let{disabled:t,label:s,onClick:r}=e;return(0,i.jsx)(n.A,{onClick:r,title:s,block:!0,disabled:t,color:"danger",className:"mt-2",id:"visitCreditCard",children:s})}},8750:(e,t,s)=>{s.d(t,{A:()=>i});var n=s(127);const i=async e=>{let{auth:t,url:s}=e;return(0,n.A)({operation:{operation:"get_configuration"},auth:t,url:s})}},2010:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(127),i=s(5269);const r=async e=>{let{auth:t,url:s}=e;return i.A.update((e=>{e.restarting=!0})),(0,n.A)({operation:{operation:"restart"},auth:t,url:s})}},6404:(e,t,s)=>{s.d(t,{A:()=>i});var n=s(2714);const i=async e=>{let{auth:t,customer_id:s,compute_stack_id:i,is_verizon:r,is_akamai:a}=e;return(0,n.A)({endpoint:r?"wl/removeWavelengthInstance":a?"removeAkamaiInstance":"removeInstance",method:"POST",payload:{customer_id:s,compute_stack_id:i,compute_stack_wl_id:i},auth:t})}},5488:(e,t,s)=>{s.d(t,{A:()=>g});var n=s(9950),i=s(1942),r=s.n(i),a=s(8738),l=s.n(a),o=s(1497);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}var d=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"];function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},u.apply(this,arguments)}function m(e,t){if(null==e)return{};var s,n,i=function(e,t){if(null==e)return{};var s,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)s=r[n],t.indexOf(s)>=0||(i[s]=e[s]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)s=r[n],t.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}function p(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function _(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var s,n=A(e);if(t){var i=A(this).constructor;s=Reflect.construct(n,arguments,i)}else s=n.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}(this,s)}}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function A(e){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},A(e)}var v={children:r().node,type:r().string,size:r().oneOfType([r().number,r().string]),bsSize:r().string,valid:r().bool,invalid:r().bool,tag:o.Wx,innerRef:r().oneOfType([r().object,r().func,r().string]),plaintext:r().bool,addon:r().bool,className:r().string,cssModule:r().object},j=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(a,e);var t,s,i,r=_(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=r.call(this,e)).getRef=t.getRef.bind(x(t)),t.focus=t.focus.bind(x(t)),t}return t=a,(s=[{key:"getRef",value:function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}},{key:"focus",value:function(){this.ref&&this.ref.focus()}},{key:"render",value:function(){var e=this.props,t=e.className,s=e.cssModule,i=e.type,r=void 0===i?"text":i,a=e.bsSize,c=e.valid,p=e.invalid,h=e.tag,_=e.addon,x=e.plaintext,A=e.innerRef,v=m(e,d),j=["switch","radio","checkbox"].indexOf(r)>-1,g="select"===r,f="range"===r,b=h||(g||"textarea"===r?r:"input"),y="form-control";x?(y="".concat(y,"-plaintext"),b=h||"input"):f?y="form-range":g?y="form-select":j&&(y=_?null:"form-check-input"),v.size&&/\D/g.test(v.size)&&((0,o.mc)('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),a=v.size,delete v.size);var w=(0,o.qO)(l()(t,p&&"is-invalid",c&&"is-valid",!!a&&(g?"form-select-".concat(a):"form-control-".concat(a)),y),s);return("input"===b||h&&"function"===typeof h)&&(v.type="switch"===r?"checkbox":r),v.children&&!x&&"select"!==r&&"string"===typeof b&&"select"!==b&&((0,o.mc)('Input with a type of "'.concat(r,'" cannot have children. Please use "value"/"defaultValue" instead.')),delete v.children),n.createElement(b,u({},v,{ref:A,className:w,"aria-invalid":p}))}}])&&p(t.prototype,s),i&&p(t,i),Object.defineProperty(t,"prototype",{writable:!1}),a}(n.Component);j.propTypes=v;const g=j}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[449],{7105:(e,s,a)=>{a.r(s),a.d(s,{default:()=>L});var t=a(9950),r=a(7176),l=a(6114),n=a(135),i=a(4084),c=a(8156),o=a(6713),d=a(9435),u=a(5996),m=a(5269),h=a(3452),g=a(4549),x=a(4414);const p=function(e){let{totalRecords:s,loading:a,autoRefresh:t,setAutoRefresh:n,showFilter:i,filtered:c,setLastUpdate:o,toggleFilter:d,setShowChartModal:m}=e;return(0,x.jsxs)(r.A,{className:"floating-card-header",children:[(0,x.jsxs)(l.A,{xs:"12",md:"3",children:[(0,g.A)(s)," record",1!==s?"s":""]}),(0,x.jsxs)(l.A,{xs:"12",md:"9",className:"text-md-end",children:[(0,x.jsx)("br",{className:"d-block d-md-none"}),!u.A.is_local_studio&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(h.A,{id:"createChart",color:"link",title:"Create Chart",onClick:()=>m(!0),children:[(0,x.jsx)("i",{className:"fa fa-lg fa-chart-line"}),(0,x.jsx)("span",{className:"ms-2",children:"create chart"})]}),(0,x.jsx)("span",{className:"mx-3 text",children:"|"})]}),(0,x.jsx)(h.A,{color:"link",title:"Refresh Results",className:"me-2",onClick:()=>o(Date.now()),children:(0,x.jsx)("i",{className:"fa "+(a?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,x.jsxs)(h.A,{color:"link",title:"Turn on autofresh",onClick:()=>n(!t),children:[(0,x.jsx)("span",{className:"me-2",children:"auto"}),(0,x.jsx)("i",{className:"fa fa-lg fa-toggle-"+(t?"on":"off")})]}),(0,x.jsx)("span",{className:"mx-3 text",children:"|"}),(0,x.jsx)(h.A,{color:"link",title:"Filter Results",className:"me-2",onClick:()=>d({filtered:i?[]:c,page:0,showFilter:!i}),children:(0,x.jsx)("i",{className:"fa fa-search"})})]})]})};var j=a(6685),b=a(1340),f=a(877),y=a(5488),A=a(6359),N=a(9452),v=a(8429),C=a(7348),k=a(5553),_=a(2714);var S=a(455);const q=[{type:"line"},{type:"bar"},{type:"area"},{type:"radar"},{type:"pie",singleSeriesAttribute:!0},{type:"donut",singleSeriesAttribute:!0},{type:"single value",singleSeriesAttribute:!0}];var w=a(5379);const P=function(e){var s,a;let{setShowChartModal:n,tableData:d,query:u}=e;const{compute_stack_id:m,customer_id:g}=(0,v.g)(),p=(0,C.MW)(),[P,F]=(0,t.useState)({customer_id:g,compute_stack_id:m,name:!1,type:"line",query:u,labelAttribute:!1,seriesAttributes:[],shared:!1}),[R,z]=(0,t.useState)(!1),$=(0,o.O$)(k.A,(e=>e.auth)),O=(0,o.O$)(k.A,(e=>e.theme)),E=Object.keys(d[0]),D=[...P.seriesAttributes,P.labelAttribute,"__createdtime__","__updatedtime__"],T="single value"===P.type?null===(s=P.seriesAttributes)||void 0===s?void 0:s.length:P.type&&(null===(a=P.seriesAttributes)||void 0===a?void 0:a.length)&&P.labelAttribute,B="single value"===P.type?P.seriesAttributes.length&&P.name:P.type&&P.labelAttribute&&P.seriesAttributes.length&&P.name,H=q.map((e=>e.singleSeriesAttribute&&e.type)).includes(P.type),Q=(0,S.A)({title:P.name||"chart name",type:P.type,labels:d.map((e=>e[P.labelAttribute])),theme:O}),L=H?d.map((e=>e[P.seriesAttributes[0]])):P.seriesAttributes.map((e=>({name:e,data:d.map((s=>s[e]))})));return(0,x.jsxs)(j.A,{id:"chart-modal",size:"lg",isOpen:!0,toggle:()=>n(!1),className:O,centered:!0,fade:!1,children:[(0,x.jsx)(b.A,{toggle:()=>n(!1),children:"Create Chart From This Query Data"}),(0,x.jsxs)(f.A,{children:[(0,x.jsxs)(r.A,{children:[(0,x.jsx)(l.A,{xs:"12",className:"py-2 query-text",children:(0,x.jsx)("i",{children:u})}),(0,x.jsx)(l.A,{xs:"12",children:(0,x.jsx)("hr",{className:"my-2"})}),(0,x.jsx)(l.A,{lg:"4",children:(0,x.jsx)(A.Ay,{className:"react-select-container limited-height",classNamePrefix:"react-select",onChange:e=>{let{value:s}=e;return(e=>{const s=q.find((s=>s.type===e)).singleSeriesAttribute!==q.find((e=>e.type===P.type)).singleSeriesAttribute;F(s?{...P,labelAttribute:!1,seriesAttributes:[],type:e}:{...P,type:e})})(s)},options:q.map((e=>({label:`${e.type}`,value:e.type}))),value:{label:`chart type: ${P.type}`,value:P.type},isSearchable:!1,isClearable:!1,placeholder:"Chart Type",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}})}),(0,x.jsx)(l.A,{xs:"12",className:"d-block d-lg-none",children:(0,x.jsx)("hr",{className:"my-2"})}),(0,x.jsx)(l.A,{lg:"4",children:(0,x.jsx)(A.Ay,{className:"react-select-container limited-height",classNamePrefix:"react-select",onChange:e=>{let{value:s}=e;return a=s,F({...P,seriesAttributes:H?[a]:[...P.seriesAttributes,a]});var a},options:E.filter((e=>!D.includes(e))).sort().map((e=>({label:e,value:e}))),value:H&&P.seriesAttributes.length?{label:`data column: ${P.seriesAttributes[0]}`,value:P.seriesAttributes[0]}:null,isSearchable:!1,isClearable:!1,isDisabled:!P.type,placeholder:(H?"select":"add")+" data column",styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}})}),(0,x.jsx)(l.A,{lg:"4",children:"single value"!==P.type&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("hr",{className:"d-block d-lg-none my-2"}),(0,x.jsx)(A.Ay,{className:"react-select-container limited-height",classNamePrefix:"react-select",onChange:e=>{let{value:s}=e;return a=s,F({...P,labelAttribute:a});var a},options:E.filter((e=>!["__createdtime__","__updatedtime__"].includes(e))).sort().map((e=>({label:e,value:e}))),value:P.labelAttribute?{label:`${H?"label":"x-axis"}: ${P.labelAttribute}`,value:P.labelAttribute}:null,isSearchable:!1,isClearable:!1,isDisabled:!P.type,placeholder:`select ${H?"label":"x-axis"} column`,styles:{placeholder:e=>({...e,textAlign:"center",width:"100%",color:"#BCBCBC"})}})]})}),(0,x.jsx)(l.A,{xs:"12",children:(0,x.jsx)("hr",{className:"my-2"})}),(0,x.jsx)(l.A,{lg:"4",children:(0,x.jsx)(y.A,{id:"chart_name",type:"text",placeholder:"chart name",onChange:e=>F({...P,name:e.target.value})})}),(0,x.jsx)(l.A,{xs:"12",className:"d-block d-lg-none",children:(0,x.jsx)("hr",{className:"my-2"})}),(0,x.jsxs)(l.A,{lg:"4",className:"py-2 text-nowrap d-flex justify-content-center align-items-center",children:[(0,x.jsx)(h.A,{className:"me-2",color:"link",onClick:()=>F({...P,shared:!P.shared}),children:(0,x.jsx)("i",{className:"fa fa-lg text-purple fa-toggle-"+(P.shared?"on":"off")})}),"visible to all org users"]}),(0,x.jsx)(l.A,{xs:"12",className:"d-block d-lg-none",children:(0,x.jsx)("hr",{className:"my-2"})}),(0,x.jsx)(l.A,{lg:"4",children:(0,x.jsx)(h.A,{onClick:async()=>{z(!0);const e=await(async e=>{let{auth:s,customer_id:a,compute_stack_id:t,name:r,type:l,query:n,labelAttribute:i,seriesAttributes:c,shared:o}=e;return(0,_.A)({endpoint:"addChart",method:"POST",auth:s,payload:{user_id:s.user_id,customer_id:a,compute_stack_id:t,name:r,type:l,query:n,labelAttribute:i,seriesAttributes:c,shared:o}})})({auth:$,...P});e.error?(p.error(e.message),z(!1)):(p.success(e.message),n(!1))},block:!0,disabled:!B||R,color:"success",children:R?(0,x.jsx)("i",{className:"fa fa-spin fa-spinner"}):(0,x.jsx)("span",{children:"Add Chart"})})})]}),!H&&P.seriesAttributes.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("hr",{className:"my-2"}),(0,x.jsx)("div",{className:"",children:P.seriesAttributes.map((e=>(0,x.jsxs)(h.A,{color:"danger",size:"sm",className:"me-2",onClick:()=>(e=>{const s=P.seriesAttributes.indexOf(e);P.seriesAttributes.splice(s,1),F({...P,seriesAttributes:P.seriesAttributes})})(e),children:["[x] ",e]},e)))})]}):null,(0,x.jsx)("hr",{className:"my-2"}),(0,x.jsx)("div",{className:"chart-holder",children:T&&"single value"===P.type?(0,x.jsx)(i.A,{children:(0,x.jsxs)(c.A,{className:"single-value-chart",children:[(0,x.jsx)("div",{className:"title",children:P.name||"chart name"}),(0,x.jsx)("h1",{children:(0,w.A)(L[0])?L[0].toFixed(2):L[0]})]})}):T?(0,x.jsx)(N.A,{options:Q,series:L,type:P.type,height:220}):(0,x.jsxs)("div",{className:"text-center py-5 text-grey",children:["please choose chart ",!P.type&&"type, ","label and data"]})})]})]})};var F=a(306);const R=function(e){let{message:s,loading:a=!1,error:t=!1,accessErrors:r=!1,cancel:l=!1}=e;const n=r&&r.filter((e=>"table"===e.type)),o=r&&r.filter((e=>"attribute"===e.type));return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"floating-card-header",children:"\xa0"}),(0,x.jsx)(i.A,{className:"my-3",children:(0,x.jsx)(c.A,{children:(0,x.jsxs)("div",{className:"empty-prompt",children:[(0,x.jsxs)("div",{className:"mb-2",children:["\xa0",a&&(0,x.jsx)("i",{className:"fa fa-spinner fa-spin"}),"\xa0"]}),s&&(0,x.jsxs)("div",{className:"mb-2 "+(t?"text-danger":""),children:["\xa0",s,"\xa0"]}),a&&l&&(0,x.jsx)(h.A,{color:"danger",size:"sm",className:"px-3",onClick:l,children:"cancel query"}),t&&n&&n.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("hr",{className:"my-4"}),(0,x.jsx)("ul",{children:n.map((e=>(0,x.jsxs)("li",{className:"mb-2",children:[e.schema," > ","attribute"===e.type&&(0,x.jsxs)("span",{children:[e.table," >"]})," ",(0,x.jsx)("b",{children:e.entity}),": ",e.type," requires ",(0,x.jsx)("b",{children:e.permission})," permissions"]},`${e.schema}${e.table}${e.entity}${e.permission}`)))}),(0,x.jsx)("hr",{})]}):null,t&&o&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("hr",{className:"my-4"}),(0,x.jsx)("ul",{children:o.map((e=>(0,x.jsxs)("li",{className:"mb-2",children:[e.schema," > ","attribute"===e.type&&(0,x.jsxs)("span",{children:[e.table," >"]})," ",(0,x.jsx)("b",{children:e.entity}),": ",e.type," requires ",(0,x.jsx)("b",{children:e.permission})," permissions"]},`${e.schema}${e.table}${e.entity}${e.permission}`)))})]})]})})})]})};var z=a(3150),$=a(3628),O=a(4343);const E={tableData:!1,totalRecords:0,dataTableColumns:[],filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,onlyCached:!1,showFilter:!1,lastUpdate:!1};let D;const T=function(e){var s;let{query:a}=e;const[r,l]=(0,t.useState)(),h=(0,o.O$)(m.A,(e=>e.auth)),g=(0,o.O$)(m.A,(e=>e.url)),[j,b]=(0,t.useState)(E),[f,y]=(0,t.useState)(!1),[A,N]=(0,t.useState)(!1);return(0,t.useEffect)((()=>{let e=!0;return(async()=>{if(a.query&&a.lastUpdate){D&&D.abort(),D=new AbortController,N(!0);const t=await(async e=>{let{query:s,auth:a,url:t,signal:r}=e;try{const e=await(0,F.A)({sql:s,auth:a,url:t,signal:r});if(e.error)return{message:e.message,error:!0,access_errors:e.access_errors};if(e.message)return{message:e.message};const l=e.length,n=l?Object.keys(e[0]):[],i=n.filter((e=>!["__createdtime__","__updatedtime__"].includes(e))).sort();return n.includes("__createdtime__")&&i.push("__createdtime__"),n.includes("__updatedtime__")&&i.push("__updatedtime__"),{tableData:e,totalRecords:l,dataTableColumns:i.map((e=>({Header:e.toString(),accessor:s=>s[e.toString()]})))}}catch(l){return{message:l,error:!0}}})({query:a.query.replace(/\n/g," ").trim(),auth:h,url:g,signal:D.signal});if(N(!1),t.error&&"Aborted"===t.message)b({...j,message:"query canceled, please execute a new query to proceed",error:!1});else if(t.error)b({...j,message:`error fetching data: ${t.message}`,access_errors:t.access_errors,error:!0});else if(t.message)b({...j,message:t.message,error:!1});else if(e){var s;b({...j,...t,totalPages:Math.ceil(((null===(s=t.tableData)||void 0===s?void 0:s.length)||20)/20),error:!1,message:!t.totalRecords&&"no records matched your query",sorted:[]})}}})(),()=>{var s;null===(s=D)||void 0===s||s.abort(),e=!1}}),[a,r]),(0,t.useEffect)((()=>{b(E)}),[a.query]),(0,n.A)((()=>{j.autoRefresh&&!A&&l(Date.now())}),u.A.refresh_content_interval),A||j.message||j.access_errors?(0,x.jsx)(R,{error:j.error,accessErrors:j.access_errors,loading:A,message:!A&&j.message,cancel:()=>{D&&D.abort(),b(E),N(!1)}}):null!==(s=j.tableData)&&void 0!==s&&s.length?(0,x.jsxs)(d.tH,{onError:(e,s)=>(0,$.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:z.A,children:[(0,x.jsx)(p,{totalRecords:j.totalRecords,loading:A,showFilter:j.showFilter,filtered:j.filtered,toggleFilter:e=>b({...j,...e}),autoRefresh:j.autoRefresh,onlyCached:j.onlyCached,setAutoRefresh:()=>b({...j,autoRefresh:!j.autoRefresh}),setOnlyCached:()=>b({...j,onlyCached:!j.onlyCached}),setLastUpdate:l,setShowChartModal:y}),(0,x.jsx)(i.A,{className:"my-3",children:(0,x.jsx)(c.A,{className:"react-table-holder",children:(0,x.jsx)(O.A,{columns:j.dataTableColumns||[],data:j.tableData||[],currentPage:j.page,pageSize:j.pageSize,totalPages:j.totalPages,showFilter:j.showFilter,sorted:j.sorted,loading:A&&!j.autoRefresh,onFilteredChange:e=>b({...j,filtered:e}),onSortedChange:e=>b({...j,sorted:e}),onPageChange:e=>b({...j,pageSize:e}),onPageSizeChange:e=>b({...j,page:0,pageSize:e})})})}),f&&(0,x.jsx)(P,{setShowChartModal:y,tableData:j.tableData,query:a.query.replace(/\n/g," ").trim()})]}):(0,x.jsx)(R,{message:"please execute a SQL query to proceed"})};const B=function(e){let{setQuery:s,query:a}=e;const[n,o]=(0,t.useState)(""),[u,m]=(0,t.useState)(!1),g=(0,t.createRef)();return(0,t.useEffect)((()=>{a&&(m({submitted:!1}),o(a.query||a),g.current.focus())}),[a]),(0,t.useEffect)((()=>{const e=n,a=e.length?e.replace(/[\t\n\r]/gm,""):"";u.submitted&&a.length?(s({lastUpdate:Date.now(),query:n.trim()}),o(n.trim()),m({submitted:!1})):u.submitted&&(o(""),m({submitted:!1}))}),[u]),(0,x.jsx)(d.tH,{onError:(e,s)=>(0,$.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:z.A,children:(0,x.jsxs)("div",{id:"query-window",children:[(0,x.jsx)("span",{className:"floating-card-header",children:"sql query"}),(0,x.jsx)(i.A,{className:"mt-3 mb-4",children:(0,x.jsxs)(c.A,{children:[(0,x.jsxs)("div",{className:"pb-3 border-white",children:["SQL queries are intended for data examination using primary keys. For performant queries in your application, please use our"," ",(0,x.jsx)("a",{href:"https://docs.harperdb.io/docs/developers/rest",target:"_blank",rel:"noopener noreferrer",children:"REST Interface"})]}),(0,x.jsx)(y.A,{id:"sql_query",type:"textarea",className:"sql-query-textarea",value:n,onKeyDown:e=>{"Enter"===e.code&&e.metaKey?m({submitted:!0}):"Tab"===e.code&&(e.preventDefault(),document.execCommand("insertHTML",!1,"&#009"))},onChange:e=>o(e.target.value)}),(0,x.jsxs)(r.A,{children:[(0,x.jsx)(l.A,{children:(0,x.jsx)(h.A,{color:"grey",title:"clear query",block:!0,className:"mt-2",onClick:()=>{s(!1),o("")},children:"Clear"})}),(0,x.jsx)(l.A,{children:(0,x.jsx)(h.A,{id:"executeQuery",innerRef:g,title:"execute query",color:"success",block:!0,className:"mt-2",onClick:()=>m({submitted:!0}),children:"Execute"})})]})]})})]})})};const H=(0,a(6997).A)("instanceQueries");const Q=function(e){var s;let{setQuery:a,query:n}=e;const{compute_stack_id:o}=(0,v.g)(),[u,m]=H({});return(0,t.useEffect)((()=>{if(n.lastUpdate){var e;const s=u&&(null===(e=u[o])||void 0===e?void 0:e.filter((e=>e.query.toLowerCase()!==n.query.toLowerCase())))||[];s.unshift(n),m({...u,[o]:s})}}),[n]),(0,x.jsx)(d.tH,{onError:(e,s)=>(0,$.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:z.A,children:(0,x.jsxs)("div",{id:"query-history",children:[(0,x.jsxs)(r.A,{className:"floating-card-header",children:[(0,x.jsx)(l.A,{xs:"9",children:"query history (click to load)"}),(0,x.jsx)(l.A,{xs:"3",className:"text-end",children:(0,x.jsx)(h.A,{color:"link",title:"Refresh Results",className:"me-2",onClick:()=>m({...u,[o]:[]}),children:(0,x.jsx)("i",{className:"fa fa-trash"})})})]}),(0,x.jsx)(i.A,{className:"my-3",children:u&&null!==(s=u[o])&&void 0!==s&&s.length?(0,x.jsx)(c.A,{className:"query-scroller",children:u[o].map(((e,s)=>(0,x.jsxs)(t.Fragment,{children:[(0,x.jsx)("button",{id:`loadQuery${s}`,type:"button",tabIndex:"0",title:`Load query: ${e.query}`,className:"past-query",onClick:()=>a(e.query),children:(0,x.jsx)("span",{children:e.query})}),(0,x.jsx)("hr",{className:"my-0"})]},e.query)))}):(0,x.jsx)(c.A,{className:"text-center text-grey",children:"no queries yet"})})]})})};const L=function(){const[e,s]=(0,t.useState)(!1);return(0,x.jsxs)(r.A,{id:"query",children:[(0,x.jsxs)(l.A,{xl:"3",lg:"4",md:"5",xs:"12",children:[(0,x.jsx)(B,{setQuery:s,query:e}),(0,x.jsx)(Q,{setQuery:s,query:e})]}),(0,x.jsx)(l.A,{xl:"9",lg:"8",md:"7",xs:"12",children:(0,x.jsx)(T,{query:e})})]})}},4343:(e,s,a)=>{a.d(s,{A:()=>y});var t=a(9950),r=a(2043),l=a(5488),n=a(9435),i=a(7176),c=a(6114),o=a(4414);const d=e=>{let{headerGroups:s,onSortedChange:a,sorted:t,showFilter:r}=e;return s.map((e=>{const{key:s,...l}=e.getHeaderGroupProps();return(0,o.jsxs)("div",{...l,children:[(0,o.jsx)(i.A,{className:"header g-0",children:e.headers.map((e=>{var s,r;return(0,o.jsx)(c.A,{onClick:()=>{var s,r;return a([{id:e.id,desc:(null===(s=t[0])||void 0===s?void 0:s.id)===e.id&&!(null!==(r=t[0])&&void 0!==r&&r.desc)}])},className:`${(null===(s=t[0])||void 0===s?void 0:s.id)===e.id?"sorted":""} ${null!==(r=t[0])&&void 0!==r&&r.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,o.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),r&&(0,o.jsx)(i.A,{className:"filter g-0",children:e.headers.map((e=>(0,o.jsx)(c.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},s)}))};var u=a(3452);const m=function(e){let{page:s,pageSize:a,totalPages:t,onPageChange:r,onPageSizeChange:n,loading:d}=e;return(0,o.jsxs)(i.A,{className:"pagination",children:[(0,o.jsx)(c.A,{xs:"12",sm:"2",className:"previous",children:(0,o.jsx)(u.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>r(s-1),disabled:!t||0===s,children:(0,o.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,o.jsxs)(c.A,{xs:"12",sm:"4",className:"paginator",children:[(0,o.jsx)("i",{className:"fa fa-book me-2"}),(0,o.jsx)(l.A,{className:"mb-2",type:"number",value:s+1,min:1,max:t,onChange:e=>r(e.target.value-1)}),(0,o.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",d?(0,o.jsx)("i",{className:"fa fa-spinner fa-spin"}):t]})]}),(0,o.jsx)(c.A,{xs:"12",sm:"4",className:"page-size",children:(0,o.jsx)(l.A,{className:"mb-2",type:"select",value:a,onChange:e=>n(e.target.value),children:[20,50,100,250].map((e=>(0,o.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,o.jsx)(c.A,{xs:"12",sm:"2",className:"next",children:(0,o.jsx)(u.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>r(s+1),disabled:!t||s+1===t,children:(0,o.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const h=function(e){let{previousPage:s,canPreviousPage:a,pageIndex:t,gotoPage:r,setPageSize:n,pageCount:d,nextPage:m,canNextPage:h,loading:g}=e;return(0,o.jsxs)(i.A,{className:"pagination",children:[(0,o.jsx)(c.A,{xs:"12",sm:"2",className:"previous",children:(0,o.jsx)(u.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:s,disabled:!d||!a,children:(0,o.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,o.jsxs)(c.A,{xs:"12",sm:"4",className:"paginator",children:[(0,o.jsx)("i",{className:"fa fa-book me-2"}),(0,o.jsx)(l.A,{className:"mb-2",type:"number",value:t+1||1,min:1,max:d,onChange:e=>r(e.target.value?Number(e.target.value)-1:0)}),(0,o.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",g?(0,o.jsx)("i",{className:"fa fa-spinner fa-spin"}):d]})]}),(0,o.jsx)(c.A,{xs:"12",sm:"4",className:"page-size",children:(0,o.jsx)(l.A,{className:"mb-2",type:"select",onChange:e=>{r(0),setTimeout((()=>n(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,o.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,o.jsx)(c.A,{xs:"12",sm:"2",className:"next",children:(0,o.jsx)(u.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:m,disabled:!d||!h,children:(0,o.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const g=function(e){let{prepareRow:s,row:a,onRowClick:t=!1}=e;return s(a),(0,o.jsx)(i.A,{onClick:()=>t&&t(a.original),className:"g-0",children:a.cells.map((e=>(0,o.jsx)(c.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var x=a(3628),p=a(3150);function j(e){let{value:s}=e;return(0,o.jsx)("div",{className:"text-renderer",children:s})}function b(e){let{src:s}=e;const[a,r]=(0,t.useState)(!1),[l,n]=(0,t.useState)(!1);return(0,o.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[(0,o.jsx)("i",{className:"fa fa-image"}),a&&l?(0,o.jsxs)("div",{className:"preview-image no-image",children:[(0,o.jsx)("i",{className:"fa fa-ban text-danger"}),(0,o.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):a?(0,o.jsx)("img",{onError:n,alt:s,src:s,className:"preview-image"}):null]})}const f={Filter:e=>{let{column:{filterValue:s,setFilter:a}}=e;return(0,o.jsx)(l.A,{type:"text",value:s||"",onChange:e=>a(e.target.value||void 0)})},Cell:e=>{let{value:s}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,o.jsx)(j,{value:JSON.stringify(e)});case"[object Boolean]":return(0,o.jsx)(j,{value:e?"true":"false"});case"[object String]":return(s=e)&&(s.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==s.indexOf("data:image"))?(0,o.jsx)(b,{src:e}):(0,o.jsx)(j,{value:e});default:return(0,o.jsx)(j,{value:e})}var s})(s)}};const y=function(e){let{columns:s,data:a,error:l,currentPage:i,pageSize:c,totalPages:u,onFilteredChange:j,onSortedChange:b,onPageChange:y,onPageSizeChange:A,showFilter:N,onRowClick:v,sorted:C,loading:k,manual:_=!1}=e;const{headerGroups:S,page:q,rows:w,prepareRow:P,state:F,setAllFilters:R,canPreviousPage:z,canNextPage:$,pageOptions:O,pageCount:E,gotoPage:D,nextPage:T,previousPage:B,setPageSize:H}=(0,r.useTable)({columns:s,data:a,defaultColumn:f,onFilteredChange:j,onSortedChange:b,onPageChange:y,onPageSizeChange:A,onRowClick:v,manualPagination:_,manualFilters:_,initialState:{pageIndex:i,pageSize:c}},r.useFilters,r.usePagination),[Q,L]=(0,t.useState)(!0),M=_||!q.length?w:q;return(0,t.useEffect)((()=>{!N&&F.filters.length?R([]):j(F.filters)}),[F.filters,N]),(0,t.useEffect)((()=>{setTimeout((()=>L(!1)),100)}),[null===M||void 0===M?void 0:M.length]),(0,o.jsxs)(n.tH,{onError:(e,s)=>(0,x.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:p.A,children:[(0,o.jsxs)("div",{className:"react-table-scroller",children:[(0,o.jsx)(d,{headerGroups:S,onSortedChange:b,sorted:C,showFilter:N}),k||Q?(0,o.jsx)("div",{className:"centered text-center",children:(0,o.jsx)("i",{className:"fa fa-spinner fa-spin"})}):M.length?M.map((e=>(0,o.jsx)(g,{row:e,prepareRow:P,onRowClick:v},e.id))):(0,o.jsxs)("div",{className:"centered text-center",children:[(0,o.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,o.jsx)("div",{className:"mt-2 text-darkgrey",children:l?`Error loading data: ${l}`:"no records"})]})]}),_?(0,o.jsx)(m,{page:i,pageSize:c,totalPages:u,onPageChange:y,onPageSizeChange:A,loading:k}):(0,o.jsx)(h,{previousPage:B,pageSize:c,canPreviousPage:z,pageIndex:F.pageIndex,pageOptions:O,gotoPage:D,setPageSize:H,pageCount:E,nextPage:T,canNextPage:$,loading:k})]})}},306:(e,s,a)=>{a.d(s,{A:()=>r});var t=a(127);const r=async e=>{let{auth:s,url:a,sql:r,signal:l}=e;return(0,t.A)({operation:{operation:"sql",sql:r},auth:s,url:a,signal:l})}},455:(e,s,a)=>{a.d(s,{A:()=>t});const t=e=>{let{title:s,type:a,labels:t,theme:r}=e;const l="light"===r?"#696969":"dark"===r?"#fff":"#212121";return{title:{text:s,style:{color:l}},chart:{type:a,animations:{enabled:!1},fontFamily:"Arial, Helvetica, Verdana, Sans-Serif",toolbar:{offsetX:-25,tools:{selection:!1,pan:!1,zoom:!1,zoomin:!1,zoomout:!1,reset:!1}}},labels:t,theme:{palette:"palette10"},plotOptions:{pie:{offsetY:10}},legend:{offsetY:5,labels:{colors:l}},markers:{size:[4],strokeColors:"dark"===r?"#212121":"#fff",strokeWidth:1,strokeOpacity:"dark"===r?.5:1,hover:{sizeOffset:0}},xaxis:{labels:{rotate:-60,maxHeight:80,style:{fontSize:"10px",colors:l}},tooltip:{enabled:!1}},yaxis:{labels:{style:{fontSize:"10px",colors:l}}}}}},5379:(e,s,a)=>{a.d(s,{A:()=>t});const t=e=>!Number.isNaN(parseFloat(e))&&Number.isFinite(parseFloat(e))}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[541],{5633:(e,s,t)=>{t.r(s),t.d(s,{default:()=>T});var a=t(9950),r=t(7176),l=t(6114),n=t(6713),o=t(3452),i=t(4084),c=t(8156),d=t(9435),u=t(5269),m=t(127);const x=1e9,h=1073741824;var j=t(1652),p=t(3150),A=t(3628),v=t(4414);let f;const g=function(){const e=(0,n.O$)(u.A,(e=>e.auth)),s=(0,n.O$)(u.A,(e=>e.url)),t=(0,n.O$)(u.A,(e=>e.systemInfo)),g=(0,n.O$)(u.A,(e=>e.is_local)),[N,w]=(0,a.useState)(!(null!==t&&void 0!==t&&t.totalMemory)),y=async()=>{w(!0),f=new AbortController,await(async e=>{var s,t,a,r,l,n,o,i,c,d,j,p;let{auth:A,url:v,signal:f,refresh:g,is_local:N,cachedSystemInfo:w,skip:y=[]}=e;const b=["network","disk","cpu","memory","system"],k=await(0,m.A)({operation:{operation:"system_information",attributes:null!==y&&void 0!==y&&y.length?b.filter((e=>!y.includes(e))):b},auth:A,url:v,signal:f});if(k.error&&g)return u.A.update((e=>{e.systemInfoError=!0}));if(k.error)return u.A.update((e=>{e.systemInfo={totalMemory:"...",usedMemory:"...",freeMemory:"...",memoryStatus:"grey",totalDisk:"...",usedDisk:"...",freeDisk:"...",diskStatus:"grey",cpuInfo:"...",cpuCores:"...",cpuLoad:"...",cpuStatus:"grey",networkTransferred:"...",networkReceived:"...",networkLatency:"...",networkLatencyStatus:"grey"},e.systemInfoError=!0}));const S=y.includes("memory")?parseFloat(w.totalMemory):k.memory.total/h,_=y.includes("memory")?parseFloat(w.usedMemory):k.memory.active/h,C=y.includes("memory")?parseFloat(w.freeMemory):k.memory.available/h,D=y.includes("memory")?w.memoryStatus:C/S<.1?"danger":C/S<.25?"warning":"success",L=y.includes("disk")?parseFloat(w.totalDisk):"darwin"===k.system.platform?(null===(s=k.disk)||void 0===s||null===(t=s.size)||void 0===t?void 0:t[0].size)/x:N?(null===(l=k.disk)||void 0===l||null===(n=l.size)||void 0===n?void 0:n[0].size)/h:(null===(a=k.disk)||void 0===a||null===(r=a.size)||void 0===r?void 0:r.find((e=>"/home/ubuntu/hdb"===e.mount)).size)/h,F=y.includes("disk")?parseFloat(w.usedDisk):"darwin"===k.system.platform?(null===(o=k.disk)||void 0===o||null===(i=o.size)||void 0===i?void 0:i.reduce(((e,s)=>e+s.used),0))/x:N?(null===(j=k.disk)||void 0===j||null===(p=j.size)||void 0===p?void 0:p.reduce(((e,s)=>e+s.used),0))/h:(null===(c=k.disk)||void 0===c||null===(d=c.size)||void 0===d?void 0:d.find((e=>"/home/ubuntu/hdb"===e.mount)).used)/h,$=y.includes("disk")?parseFloat(w.freeDisk):L-F,O=y.includes("disk")?w.diskStatus:$/L<.1?"danger":$/L<.25?"warning":"success",M=y.includes("cpu")?w.cpuInfo:`${k.cpu.manufacturer} ${k.cpu.brand}`,E=y.includes("cpu")?w.cpuCores:`${k.cpu.physicalCores} physical / ${k.cpu.cores} virtual`,T=y.includes("cpu")?parseFloat(w.cpuLoad):k.cpu.current_load.currentLoad||k.cpu.current_load.currentload||0,I=y.includes("cpu")?w.cpuStatus:T>90?"danger":T>75?"warning":"success",z=y.includes("network")?parseFloat(w.networkTransferred):k.network.stats.reduce(((e,s)=>e+s.tx_bytes),0)/x,H=y.includes("network")?parseFloat(w.networkReceived):k.network.stats.reduce(((e,s)=>e+s.rx_bytes),0)/x,U=y.includes("network")?parseFloat(w.networkLatency):k.network.latency.ms,J=y.includes("network")?parseFloat(w.networkLatencyStatus):U>1e3?"danger":U>500?"warning":"success",B={totalMemory:null===S||void 0===S?void 0:S.toFixed(2),usedMemory:null===_||void 0===_?void 0:_.toFixed(2),freeMemory:null===C||void 0===C?void 0:C.toFixed(2),memoryStatus:D,totalDisk:null===L||void 0===L?void 0:L.toFixed(2),usedDisk:null===F||void 0===F?void 0:F.toFixed(2),freeDisk:null===$||void 0===$?void 0:$.toFixed(2),diskStatus:O,cpuInfo:M,cpuCores:E,cpuLoad:null===T||void 0===T?void 0:T.toFixed(2),cpuStatus:I,networkTransferred:null===z||void 0===z?void 0:z.toFixed(2),networkReceived:null===H||void 0===H?void 0:H.toFixed(2),networkLatency:U,networkLatencyStatus:J};return u.A.update((e=>{e.systemInfo=B}))})({auth:e,url:s,is_local:g,signal:f.signal,refresh:!!t,previousSystemInfo:t}),w(!1)};return(0,a.useEffect)((()=>(!e||null!==t&&void 0!==t&&t.totalMemory||y(),()=>{var e;null===(e=f)||void 0===e||e.abort()})),[e]),(0,v.jsxs)(d.tH,{onError:(e,s)=>(0,A.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:p.A,children:[(0,v.jsxs)(r.A,{className:"floating-card-header",children:[(0,v.jsx)(l.A,{children:"host system"}),(0,v.jsx)(l.A,{className:"text-end",children:(0,v.jsx)(o.A,{color:"link",title:"Update Metrics",className:"me-2",onClick:y,children:(0,v.jsx)("i",{className:"fa "+(N?"fa-spinner fa-spin":"fa-sync-alt")})})})]}),(0,v.jsx)(i.A,{className:"my-3 instance-details",children:(0,v.jsx)(c.A,{children:t?(0,v.jsxs)(r.A,{children:[(0,v.jsx)(l.A,{children:(0,v.jsx)(j.A,{header:"Total Memory",className:"mb-3",children:(0,v.jsxs)("div",{className:"nowrap-scroll",children:[(null===t||void 0===t?void 0:t.totalMemory)||"...","GB"]})})}),(0,v.jsx)(l.A,{children:(0,v.jsx)(j.A,{header:"Active Memory",className:"mb-3",children:(0,v.jsxs)("div",{className:"nowrap-scroll",children:[(null===t||void 0===t?void 0:t.usedMemory)||"...","GB"]})})}),(0,v.jsx)(l.A,{children:(0,v.jsx)(j.A,{header:"Available Memory",className:"mb-3",children:(0,v.jsxs)("div",{className:`nowrap-scroll text-${(null===t||void 0===t?void 0:t.memoryStatus)||"grey"}`,children:[(null===t||void 0===t?void 0:t.freeMemory)||"...","GB"]})})}),(0,v.jsx)(l.A,{children:(0,v.jsx)(j.A,{header:"CPU Cores",className:"mb-3",children:(0,v.jsx)("div",{className:"nowrap-scroll",children:(null===t||void 0===t?void 0:t.cpuCores)||"..."})})}),(0,v.jsx)(l.A,{children:(0,v.jsx)(j.A,{header:"CPU Load",className:"mb-3",children:(0,v.jsxs)("div",{className:`nowrap-scroll text-${(null===t||void 0===t?void 0:t.cpuStatus)||"grey"}`,children:[(null===t||void 0===t?void 0:t.cpuLoad)||"...","%"]})})})]}):(0,v.jsx)("div",{className:"pt-5 text-center",children:(0,v.jsx)("i",{className:"fa fa-spinner fa-spin text-purple"})})})}),(0,v.jsx)("br",{})]})};var N=t(135),w=t(8429),y=t(5996);const b=e=>"object"===typeof e&&!Array.isArray(e)&&null!==e;const k=function(e){let{level:s,timestamp:t,message:a,tags:n,thread:o}=e;return(0,v.jsx)("div",{className:"item-row",children:(0,v.jsxs)(r.A,{children:[(0,v.jsx)(l.A,{className:`text-nowrap ${null===s||void 0===s?void 0:s.toLowerCase()}`,children:(null===s||void 0===s?void 0:s.toUpperCase())||"UNKNOWN"}),(0,v.jsx)(l.A,{className:"text-nowrap",children:new Date(t||null).toLocaleDateString()}),(0,v.jsx)(l.A,{className:"text-nowrap",children:new Date(t||null).toLocaleTimeString()}),(0,v.jsx)(l.A,{className:"text-nowrap",children:o}),(0,v.jsx)(l.A,{className:"text-nowrap",children:null===n||void 0===n?void 0:n.join(", ")}),(0,v.jsx)(l.A,{xs:"12",className:"mt-1",children:b(a)&&a.error?a.error:JSON.stringify(a).slice(1,-1)})]})})};let S;const _=function(){const{compute_stack_id:e}=(0,w.g)(),s=(0,n.O$)(u.A,(e=>e.auth)),t=(0,n.O$)(u.A,(e=>e.url)),x=(0,n.O$)(u.A,(e=>e.logs),[e]),h=(0,n.O$)(u.A,(e=>e.logsError)),[j,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(!0),[_,C]=(0,a.useState)(!0);return(0,a.useEffect)((()=>{let e=!0;return s&&(async()=>{b(!0),S=new AbortController,await(async e=>{let{auth:s,url:t,signal:a}=e;const r=await(0,m.A)({operation:{operation:"read_log",limit:1e3,order:"desc"},auth:s,url:t,signal:a});return u.A.update((e=>{e.logs=r.error?[]:(null===r||void 0===r?void 0:r.filter((e=>e.message)))||[],e.logsError=!1}))})({auth:s,url:t,signal:S.signal,currentLogCount:(null===x||void 0===x?void 0:x.length)||0}),e&&b(!1)})(),()=>{var s;null===(s=S)||void 0===s||s.abort(),e=!1}}),[s,_]),(0,N.A)((()=>s&&j&&C(Date.now())),y.A.refresh_content_interval),(0,v.jsxs)(d.tH,{onError:(e,s)=>(0,A.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:p.A,children:[(0,v.jsxs)(r.A,{className:"floating-card-header",children:[(0,v.jsx)(l.A,{children:"logs"}),(0,v.jsxs)(l.A,{className:"text-end",children:[(0,v.jsx)(o.A,{color:"link",title:"Update Logs",className:"me-2",onClick:()=>C(Date.now()),children:(0,v.jsx)("i",{className:"fa "+(g?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,v.jsxs)(o.A,{color:"link",title:"Turn on autofresh",onClick:()=>f(!j),children:[(0,v.jsx)("span",{className:"me-2",children:"auto"}),(0,v.jsx)("i",{className:"fa fa-lg fa-toggle-"+(j?"on":"off")})]})]})]}),(0,v.jsx)(i.A,{className:"my-3",children:(0,v.jsxs)(c.A,{className:"item-list",children:[(0,v.jsxs)(r.A,{xs:"5",className:"header",children:[(0,v.jsx)(l.A,{className:"text-bold text-nowrap",children:"status"}),(0,v.jsx)(l.A,{className:"text-bold text-nowrap",children:"date"}),(0,v.jsx)(l.A,{className:"text-left text-bold text-nowrap",children:!g&&h?(0,v.jsxs)("span",{className:"text-danger",children:["log fetch error: ",(new Date).toLocaleTimeString().toLowerCase()]}):(0,v.jsx)("span",{children:"time"})}),(0,v.jsx)(l.A,{className:"text-bold text-nowrap",children:"thread"}),(0,v.jsx)(l.A,{className:"text-bold text-nowrap",children:"tags"})]}),(0,v.jsx)("hr",{className:"mt-1 mb-0"}),(0,v.jsx)("div",{className:"item-scroller",children:!g||x||j?x&&x.length?x.map(((e,s)=>(0,v.jsx)(k,{...e},s))):x&&!x.length?(0,v.jsx)("div",{className:"pt-5 text-center",children:"no logs found"}):(0,v.jsx)("div",{className:"pt-5 text-center",children:"no logs found in this view"}):(0,v.jsx)("div",{className:"pt-5 text-center",children:(0,v.jsx)("i",{className:"fa fa-spinner fa-spin text-lightgrey"})})})]})}),(0,v.jsx)("br",{})]})};const C=function(e){let{end_datetime:s,start_datetime:t,status:a,message:n}=e;return(0,v.jsx)("div",{className:"item-row",children:(0,v.jsxs)(r.A,{children:[(0,v.jsx)(l.A,{xs:"3",className:`text-nowrap ${a.toLowerCase()}`,children:a}),(0,v.jsx)(l.A,{xs:"3",className:"text-nowrap",children:new Date(t).toLocaleDateString()}),(0,v.jsx)(l.A,{xs:"3",className:"text-nowrap",children:new Date(t).toLocaleTimeString()}),(0,v.jsx)(l.A,{xs:"3",className:"text-nowrap",children:new Date(s).toLocaleTimeString()}),(0,v.jsx)(l.A,{xs:"12",className:"mt-1",children:b(n)?JSON.stringify(n):n})]})})};let D;const L=function(){const e=(0,n.O$)(u.A,(e=>e.auth)),s=(0,n.O$)(u.A,(e=>e.url)),t=(0,n.O$)(u.A,(e=>e.jobs)),x=(0,n.O$)(u.A,(e=>e.jobsError)),[h,j]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!0),[w,b]=(0,a.useState)(!0);return(0,a.useEffect)((()=>{let a=!0;return e&&(async()=>{g(!0),D=new AbortController;const r=new Date;r.setDate(r.getDate()+1);const l=r.toISOString().split("T")[0];r.setFullYear(r.getFullYear()-1);const n=r.toISOString().split("T")[0];await(async e=>{let{auth:s,url:t,signal:a,from_date:r,to_date:l,currentJobCount:n}=e;const o=await(0,m.A)({operation:{operation:"search_jobs_by_start_date",from_date:r,to_date:l},auth:s,url:t,signal:a});return o.error&&n?u.A.update((e=>{e.jobsError=!0})):!Array.isArray(o)||o.error?u.A.update((e=>{e.jobs=[],e.jobsError=!0})):u.A.update((e=>{e.jobs=[...o].sort(((e,s)=>s.start_datetime-e.end_datetime)),e.jobsError=!1}))})({auth:e,url:s,signal:D.signal,currentJobCount:(null===t||void 0===t?void 0:t.length)||0,from_date:n,to_date:l}),a&&g(!1)})(),()=>{var e;null===(e=D)||void 0===e||e.abort(),a=!1}}),[e,w]),(0,N.A)((()=>e&&h&&b(Date.now())),y.A.refresh_content_interval),(0,v.jsxs)(d.tH,{onError:(e,s)=>(0,A.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:p.A,children:[(0,v.jsxs)(r.A,{className:"floating-card-header",children:[(0,v.jsx)(l.A,{children:"jobs"}),(0,v.jsxs)(l.A,{className:"text-end",children:[(0,v.jsx)(o.A,{color:"link",title:"Update Jobs",className:"me-2",onClick:()=>b(Date.now()),children:(0,v.jsx)("i",{className:"fa "+(f?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,v.jsxs)(o.A,{color:"link",title:"Turn on autofresh",onClick:()=>j(!h),children:[(0,v.jsx)("span",{className:"me-2",children:"auto"}),(0,v.jsx)("i",{className:"fa fa-lg fa-toggle-"+(h?"on":"off")})]})]})]}),(0,v.jsx)(i.A,{className:"my-3",children:(0,v.jsxs)(c.A,{className:"item-list",children:[(0,v.jsxs)(r.A,{className:"header",children:[(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"status"}),(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"date"}),!f&&x?(0,v.jsx)(l.A,{xs:"6",className:"text-end text-danger text-bold text-nowrap",children:(0,v.jsxs)("b",{children:["job fetch error: ",(new Date).toLocaleTimeString().toLowerCase()]})}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"start"}),(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"end"})]})]}),(0,v.jsx)("hr",{className:"mt-1 mb-0"}),(0,v.jsx)("div",{className:"item-scroller",children:!f||t||h?null!==t&&void 0!==t&&t.length?t.map((e=>(0,v.jsx)(C,{...e},e.id))):(0,v.jsx)("div",{className:"pt-5 text-center",children:"no jobs found"}):(0,v.jsx)("div",{className:"pt-5 text-center",children:(0,v.jsx)("i",{className:"fa fa-spinner fa-spin text-lightgrey"})})})]})}),(0,v.jsx)("br",{})]})};var F=t(5553);const $=function(e){let{date:s,type:t,message:a}=e;return(0,v.jsx)("div",{className:"item-row",children:(0,v.jsxs)(r.A,{children:[(0,v.jsx)(l.A,{xs:"3",className:"text-danger text-nowrap",children:t}),(0,v.jsx)(l.A,{xs:"9",className:"text-nowrap",children:new Date(s).toLocaleString()}),(0,v.jsx)(l.A,{xs:"12",className:"mt-1",children:b(a)?JSON.stringify(a):a})]})})};var O=t(4817);let M;const E=function(){const{customer_id:e}=(0,w.g)(),s=(0,n.O$)(u.A,(e=>e.compute_stack_id)),t=(0,n.O$)(F.A,(e=>e.auth)),m=(0,n.O$)(F.A,(e=>{var t;return e.alarms&&(null===(t=e.alarms[s])||void 0===t?void 0:t.alarms)}),[s]),x=(0,n.O$)(F.A,(e=>e.alarmsError)),[h,j]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1),[b,k]=(0,a.useState)(!0);return(0,a.useEffect)((()=>{let s=!0;return t&&(async()=>{g(!0),M=new AbortController,await(0,O.A)({auth:t,signal:M.signal,customer_id:e,currentAlarmsLength:null===m||void 0===m?void 0:m.length}),s&&g(!1)})(),()=>{var e;null===(e=M)||void 0===e||e.abort(),s=!1}}),[t,b]),(0,N.A)((()=>t&&h&&k(Date.now())),y.A.refresh_content_interval),(0,v.jsxs)(d.tH,{onError:(e,s)=>(0,A.A)({error:{message:e.message,componentStack:s}}),FallbackComponent:p.A,children:[(0,v.jsxs)(r.A,{className:"floating-card-header",children:[(0,v.jsx)(l.A,{children:"alarms"}),(0,v.jsxs)(l.A,{className:"text-end",children:[(0,v.jsx)(o.A,{color:"link",title:"Update Jobs",className:"me-2",onClick:()=>k(Date.now()),children:(0,v.jsx)("i",{className:"fa "+(f?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,v.jsxs)(o.A,{color:"link",title:"Turn on autofresh",onClick:()=>j(!h),children:[(0,v.jsx)("span",{className:"me-2",children:"auto"}),(0,v.jsx)("i",{className:"fa fa-lg fa-toggle-"+(h?"on":"off")})]})]})]}),(0,v.jsx)(i.A,{className:"my-3",children:(0,v.jsxs)(c.A,{className:"item-list",children:[(0,v.jsxs)(r.A,{className:"header",children:[(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"status"}),(0,v.jsx)(l.A,{xs:"3",className:"text-bold text-nowrap",children:"date"}),(0,v.jsx)(l.A,{xs:"6",className:"text-end text-danger text-bold",children:!f&&x&&(0,v.jsxs)("span",{children:["alarms fetch error: ",(new Date).toLocaleTimeString().toLowerCase()]})})]}),(0,v.jsx)("hr",{className:"mt-1 mb-0"}),(0,v.jsx)("div",{className:"item-scroller",children:!f||m||h?null!==m&&void 0!==m&&m.length?m.map((e=>(0,v.jsx)($,{...e},e.id))):(0,v.jsx)("div",{className:"pt-5 text-center",children:"no alarms found"}):(0,v.jsx)("div",{className:"pt-5 text-center",children:(0,v.jsx)("i",{className:"fa fa-spinner fa-spin text-lightgrey"})})})]})}),(0,v.jsx)("br",{})]})};const T=function(){return(0,v.jsxs)(r.A,{id:"config",children:[(0,v.jsx)(l.A,{xs:"12",children:(0,v.jsx)(g,{})}),(0,v.jsx)(l.A,{lg:"6",xs:"12",children:(0,v.jsx)(_,{})}),(0,v.jsx)(l.A,{lg:y.A.is_local_studio?6:3,xs:"12",children:(0,v.jsx)(L,{})}),!y.A.is_local_studio&&(0,v.jsx)(l.A,{lg:"3",xs:"12",children:(0,v.jsx)(E,{})})]})}},1652:(e,s,t)=>{t.d(s,{A:()=>r});t(9950);var a=t(4414);const r=function(e){let{children:s,header:t,subheader:r,maxHeight:l="auto",minHeight:n="auto",className:o}=e;return(0,a.jsxs)("div",{className:`content-container ${o}`,children:[(0,a.jsxs)("div",{className:"header-container",children:[(0,a.jsx)("span",{className:"header",children:t}),(0,a.jsx)("span",{className:"subheader",children:r})]}),(0,a.jsx)("div",{className:"auto"!==l?"scrollable":"",style:{maxHeight:l,minHeight:n},children:s})]})}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[642],{7695:(e,a,s)=>{s.r(a),s.d(a,{default:()=>N});var t=s(9950),n=s(7176),r=s(6114),l=s(3452),i=s(4084),o=s(8156),c=s(6713),d=s(8429),g=s(9435),u=s(5269),m=s(8222),h=s(3150),p=s(3628),x=s(4343),j=s(4414);const f={tableData:[],dataTableColumns:[],totalRecords:0,filtered:[],sorted:[{id:"username",desc:!1}],page:0,loading:!1,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};let v;const N=function(e){var a,s;let{lastUpdate:N,setLastUpdate:b}=e;const{customer_id:C}=(0,d.g)(),A=(0,d.Zp)(),P=(0,c.O$)(u.A,(e=>e.compute_stack_id)),S=(0,c.O$)(u.A,(e=>e.auth)),w=(0,c.O$)(u.A,(e=>e.url)),[k,z]=(0,t.useState)(f),[F,y]=(0,t.useState)(!0),O=null===(a=k.sorted[0])||void 0===a?void 0:a.id,$=null===(s=k.sorted[0])||void 0===s?void 0:s.desc,R=(0,t.useCallback)((e=>{A(`/o/${C}/i/${P}/users/${e}`)}),[P,C]);return(0,t.useEffect)((()=>{let e=!0;return S&&(async()=>{y(!0),v=new AbortController;const a=await(0,m.A)({auth:S,url:w,signal:v.signal});e&&(y(!1),z({...k,tableData:a,dataTableColumns:[{Header:"username",accessor:"username"},{Header:"role",accessor:"role"}],totalPages:Math.ceil((a.length||k.pageSize)/k.pageSize),loading:!1}))})(),()=>{var a;e=!1,null===(a=v)||void 0===a||a.abort()}}),[S,N,k.pageSize]),(0,t.useEffect)((()=>{let e=!0;if(k.tableData.length&&O){const a=[...[...k.tableData]].sort(((e,a)=>e[O]>a[O]&&$?1:e[O]>a[O]||$?-1:1));e&&z({...k,tableData:a})}return()=>{var a;e=!1,null===(a=v)||void 0===a||a.abort()}}),[O,$]),(0,j.jsxs)(g.tH,{onError:(e,a)=>(0,p.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:h.A,children:[(0,j.jsxs)(n.A,{className:"floating-card-header",children:[(0,j.jsx)(r.A,{children:"existing users"}),(0,j.jsxs)(r.A,{className:"text-end",children:[(0,j.jsx)(l.A,{color:"link",onClick:()=>b(Date.now()),className:"me-2",children:(0,j.jsx)("i",{title:"Refresh Structure",className:"fa "+(F?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,j.jsx)("span",{className:"mx-3 text",children:"|"}),(0,j.jsx)(l.A,{color:"link",title:"Filter Users",className:"me-2",onClick:()=>z({...k,filtered:k.showFilter?[]:k.filtered,showFilter:!k.showFilter}),children:(0,j.jsx)("i",{className:"fa fa-search"})})]})]}),(0,j.jsx)(i.A,{className:"mt-3",children:(0,j.jsx)(o.A,{className:"react-table-holder",children:(0,j.jsx)(x.A,{columns:k.dataTableColumns,data:k.tableData,currentPage:k.page,pageSize:k.pageSize,totalPages:k.totalPages,showFilter:k.showFilter,sorted:k.sorted,loading:F,onFilteredChange:e=>z({...k,filtered:e}),onSortedChange:e=>z({...k,sorted:e}),onPageChange:e=>z({...k,pageSize:e}),onPageSizeChange:e=>z({...k,page:0,pageSize:e}),onRowClick:e=>R(e.username)})})})]})}},4343:(e,a,s)=>{s.d(a,{A:()=>N});var t=s(9950),n=s(2043),r=s(5488),l=s(9435),i=s(7176),o=s(6114),c=s(4414);const d=e=>{let{headerGroups:a,onSortedChange:s,sorted:t,showFilter:n}=e;return a.map((e=>{const{key:a,...r}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...r,children:[(0,c.jsx)(i.A,{className:"header g-0",children:e.headers.map((e=>{var a,n;return(0,c.jsx)(o.A,{onClick:()=>{var a,n;return s([{id:e.id,desc:(null===(a=t[0])||void 0===a?void 0:a.id)===e.id&&!(null!==(n=t[0])&&void 0!==n&&n.desc)}])},className:`${(null===(a=t[0])||void 0===a?void 0:a.id)===e.id?"sorted":""} ${null!==(n=t[0])&&void 0!==n&&n.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),n&&(0,c.jsx)(i.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(o.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},a)}))};var g=s(3452);const u=function(e){let{page:a,pageSize:s,totalPages:t,onPageChange:n,onPageSizeChange:l,loading:d}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(g.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>n(a-1),disabled:!t||0===a,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:a+1,min:1,max:t,onChange:e=>n(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",d?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):t]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",value:s,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(g.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>n(a+1),disabled:!t||a+1===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:a,canPreviousPage:s,pageIndex:t,gotoPage:n,setPageSize:l,pageCount:d,nextPage:u,canNextPage:m,loading:h}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(g.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:a,disabled:!d||!s,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(r.A,{className:"mb-2",type:"number",value:t+1||1,min:1,max:d,onChange:e=>n(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",h?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):d]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{n(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(g.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:u,disabled:!d||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const h=function(e){let{prepareRow:a,row:s,onRowClick:t=!1}=e;return a(s),(0,c.jsx)(i.A,{onClick:()=>t&&t(s.original),className:"g-0",children:s.cells.map((e=>(0,c.jsx)(o.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var p=s(3628),x=s(3150);function j(e){let{value:a}=e;return(0,c.jsx)("div",{className:"text-renderer",children:a})}function f(e){let{src:a}=e;const[s,n]=(0,t.useState)(!1),[r,l]=(0,t.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),s&&r?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):s?(0,c.jsx)("img",{onError:l,alt:a,src:a,className:"preview-image"}):null]})}const v={Filter:e=>{let{column:{filterValue:a,setFilter:s}}=e;return(0,c.jsx)(r.A,{type:"text",value:a||"",onChange:e=>s(e.target.value||void 0)})},Cell:e=>{let{value:a}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(j,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(j,{value:e?"true":"false"});case"[object String]":return(a=e)&&(a.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==a.indexOf("data:image"))?(0,c.jsx)(f,{src:e}):(0,c.jsx)(j,{value:e});default:return(0,c.jsx)(j,{value:e})}var a})(a)}};const N=function(e){let{columns:a,data:s,currentPage:r,pageSize:i,totalPages:o,onFilteredChange:g,onSortedChange:j,onPageChange:f,onPageSizeChange:N,showFilter:b,onRowClick:C,sorted:A,loading:P,manual:S=!1}=e;const{headerGroups:w,page:k,rows:z,prepareRow:F,state:y,setAllFilters:O,canPreviousPage:$,canNextPage:R,pageOptions:E,pageCount:D,gotoPage:H,nextPage:T,previousPage:_,setPageSize:G}=(0,n.useTable)({columns:a,data:s,defaultColumn:v,onFilteredChange:g,onSortedChange:j,onPageChange:f,onPageSizeChange:N,onRowClick:C,manualPagination:S,manualFilters:S,initialState:{pageIndex:r,pageSize:i}},n.useFilters,n.usePagination),[I,L]=(0,t.useState)(!0),U=S||!k.length?z:k;return(0,t.useEffect)((()=>{!b&&y.filters.length?O([]):g(y.filters)}),[y.filters,b]),(0,t.useEffect)((()=>{setTimeout((()=>L(!1)),100)}),[null===U||void 0===U?void 0:U.length]),(0,c.jsxs)(l.tH,{onError:(e,a)=>(0,p.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:x.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(d,{headerGroups:w,onSortedChange:j,sorted:A,showFilter:b}),P||I?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):U.length?U.map((e=>(0,c.jsx)(h,{row:e,prepareRow:F,onRowClick:C},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:"no records"})]})]}),S?(0,c.jsx)(u,{page:r,pageSize:i,totalPages:o,onPageChange:f,onPageSizeChange:N,loading:P}):(0,c.jsx)(m,{previousPage:_,pageSize:i,canPreviousPage:$,pageIndex:y.pageIndex,pageOptions:E,gotoPage:H,setPageSize:G,pageCount:D,nextPage:T,canNextPage:R,loading:P})]})}},8222:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(127),n=s(5269);const r=async e=>{let{auth:a,url:s,signal:r}=e;const l=await(0,t.A)({operation:{operation:"list_users"},auth:a,url:s,signal:r}),i=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,a)=>e.username.toLowerCase()>a.username.toLowerCase()?1:-1)):[];return n.A.update((e=>{e.users=i})),i}}}]);
1
+ "use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[642],{7695:(e,a,s)=>{s.r(a),s.d(a,{default:()=>N});var t=s(9950),r=s(7176),n=s(6114),l=s(3452),i=s(4084),o=s(8156),c=s(6713),d=s(8429),g=s(9435),u=s(5269),m=s(8222),h=s(3150),p=s(3628),x=s(4343),j=s(4414);const f={tableData:[],dataTableColumns:[],totalRecords:0,filtered:[],sorted:[{id:"username",desc:!1}],page:0,loading:!1,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};let v;const N=function(e){var a,s;let{lastUpdate:N,setLastUpdate:b}=e;const{customer_id:C}=(0,d.g)(),A=(0,d.Zp)(),P=(0,c.O$)(u.A,(e=>e.compute_stack_id)),S=(0,c.O$)(u.A,(e=>e.auth)),w=(0,c.O$)(u.A,(e=>e.url)),[k,z]=(0,t.useState)(f),[F,y]=(0,t.useState)(!0),$=null===(a=k.sorted[0])||void 0===a?void 0:a.id,O=null===(s=k.sorted[0])||void 0===s?void 0:s.desc,R=(0,t.useCallback)((e=>{A(`/o/${C}/i/${P}/users/${e}`)}),[P,C]);return(0,t.useEffect)((()=>{let e=!0;return S&&(async()=>{y(!0),v=new AbortController;const a=await(0,m.A)({auth:S,url:w,signal:v.signal});e&&(y(!1),z({...k,tableData:a,dataTableColumns:[{Header:"username",accessor:"username"},{Header:"role",accessor:"role"}],totalPages:Math.ceil((a.length||k.pageSize)/k.pageSize),loading:!1}))})(),()=>{var a;e=!1,null===(a=v)||void 0===a||a.abort()}}),[S,N,k.pageSize]),(0,t.useEffect)((()=>{let e=!0;if(k.tableData.length&&$){const a=[...[...k.tableData]].sort(((e,a)=>e[$]>a[$]&&O?1:e[$]>a[$]||O?-1:1));e&&z({...k,tableData:a})}return()=>{var a;e=!1,null===(a=v)||void 0===a||a.abort()}}),[$,O]),(0,j.jsxs)(g.tH,{onError:(e,a)=>(0,p.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:h.A,children:[(0,j.jsxs)(r.A,{className:"floating-card-header",children:[(0,j.jsx)(n.A,{children:"existing users"}),(0,j.jsxs)(n.A,{className:"text-end",children:[(0,j.jsx)(l.A,{color:"link",onClick:()=>b(Date.now()),className:"me-2",children:(0,j.jsx)("i",{title:"Refresh Structure",className:"fa "+(F?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,j.jsx)("span",{className:"mx-3 text",children:"|"}),(0,j.jsx)(l.A,{color:"link",title:"Filter Users",className:"me-2",onClick:()=>z({...k,filtered:k.showFilter?[]:k.filtered,showFilter:!k.showFilter}),children:(0,j.jsx)("i",{className:"fa fa-search"})})]})]}),(0,j.jsx)(i.A,{className:"mt-3",children:(0,j.jsx)(o.A,{className:"react-table-holder",children:(0,j.jsx)(x.A,{columns:k.dataTableColumns,data:k.tableData,currentPage:k.page,pageSize:k.pageSize,totalPages:k.totalPages,showFilter:k.showFilter,sorted:k.sorted,loading:F,onFilteredChange:e=>z({...k,filtered:e}),onSortedChange:e=>z({...k,sorted:e}),onPageChange:e=>z({...k,pageSize:e}),onPageSizeChange:e=>z({...k,page:0,pageSize:e}),onRowClick:e=>R(e.username)})})})]})}},4343:(e,a,s)=>{s.d(a,{A:()=>N});var t=s(9950),r=s(2043),n=s(5488),l=s(9435),i=s(7176),o=s(6114),c=s(4414);const d=e=>{let{headerGroups:a,onSortedChange:s,sorted:t,showFilter:r}=e;return a.map((e=>{const{key:a,...n}=e.getHeaderGroupProps();return(0,c.jsxs)("div",{...n,children:[(0,c.jsx)(i.A,{className:"header g-0",children:e.headers.map((e=>{var a,r;return(0,c.jsx)(o.A,{onClick:()=>{var a,r;return s([{id:e.id,desc:(null===(a=t[0])||void 0===a?void 0:a.id)===e.id&&!(null!==(r=t[0])&&void 0!==r&&r.desc)}])},className:`${(null===(a=t[0])||void 0===a?void 0:a.id)===e.id?"sorted":""} ${null!==(r=t[0])&&void 0!==r&&r.desc?"desc":"asc"} ${-1!==e.id.indexOf("hdb-narrow")?"action":""} px-1`,children:(0,c.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),r&&(0,c.jsx)(i.A,{className:"filter g-0",children:e.headers.map((e=>(0,c.jsx)(o.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]},a)}))};var g=s(3452);const u=function(e){let{page:a,pageSize:s,totalPages:t,onPageChange:r,onPageSizeChange:l,loading:d}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(g.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>r(a-1),disabled:!t||0===a,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(n.A,{className:"mb-2",type:"number",value:a+1,min:1,max:t,onChange:e=>r(e.target.value-1)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",d?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):t]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(n.A,{className:"mb-2",type:"select",value:s,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(g.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>r(a+1),disabled:!t||a+1===t,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const m=function(e){let{previousPage:a,canPreviousPage:s,pageIndex:t,gotoPage:r,setPageSize:l,pageCount:d,nextPage:u,canNextPage:m,loading:h}=e;return(0,c.jsxs)(i.A,{className:"pagination",children:[(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"previous",children:(0,c.jsx)(g.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:a,disabled:!d||!s,children:(0,c.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,c.jsxs)(o.A,{xs:"12",sm:"4",className:"paginator",children:[(0,c.jsx)("i",{className:"fa fa-book me-2"}),(0,c.jsx)(n.A,{className:"mb-2",type:"number",value:t+1||1,min:1,max:d,onChange:e=>r(e.target.value?Number(e.target.value)-1:0)}),(0,c.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",h?(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"}):d]})]}),(0,c.jsx)(o.A,{xs:"12",sm:"4",className:"page-size",children:(0,c.jsx)(n.A,{className:"mb-2",type:"select",onChange:e=>{r(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,c.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,c.jsx)(o.A,{xs:"12",sm:"2",className:"next",children:(0,c.jsx)(g.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:u,disabled:!d||!m,children:(0,c.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const h=function(e){let{prepareRow:a,row:s,onRowClick:t=!1}=e;return a(s),(0,c.jsx)(i.A,{onClick:()=>t&&t(s.original),className:"g-0",children:s.cells.map((e=>(0,c.jsx)(o.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},`${e.row.id}-${e.column.id}`)))})};var p=s(3628),x=s(3150);function j(e){let{value:a}=e;return(0,c.jsx)("div",{className:"text-renderer",children:a})}function f(e){let{src:a}=e;const[s,r]=(0,t.useState)(!1),[n,l]=(0,t.useState)(!1);return(0,c.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[(0,c.jsx)("i",{className:"fa fa-image"}),s&&n?(0,c.jsxs)("div",{className:"preview-image no-image",children:[(0,c.jsx)("i",{className:"fa fa-ban text-danger"}),(0,c.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):s?(0,c.jsx)("img",{onError:l,alt:a,src:a,className:"preview-image"}):null]})}const v={Filter:e=>{let{column:{filterValue:a,setFilter:s}}=e;return(0,c.jsx)(n.A,{type:"text",value:a||"",onChange:e=>s(e.target.value||void 0)})},Cell:e=>{let{value:a}=e;return(e=>{switch(Object.prototype.toString.call(e)){case"[object Array]":case"[object Object]":return(0,c.jsx)(j,{value:JSON.stringify(e)});case"[object Boolean]":return(0,c.jsx)(j,{value:e?"true":"false"});case"[object String]":return(a=e)&&(a.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==a.indexOf("data:image"))?(0,c.jsx)(f,{src:e}):(0,c.jsx)(j,{value:e});default:return(0,c.jsx)(j,{value:e})}var a})(a)}};const N=function(e){let{columns:a,data:s,error:n,currentPage:i,pageSize:o,totalPages:g,onFilteredChange:j,onSortedChange:f,onPageChange:N,onPageSizeChange:b,showFilter:C,onRowClick:A,sorted:P,loading:S,manual:w=!1}=e;const{headerGroups:k,page:z,rows:F,prepareRow:y,state:$,setAllFilters:O,canPreviousPage:R,canNextPage:E,pageOptions:D,pageCount:H,gotoPage:T,nextPage:_,previousPage:G,setPageSize:I}=(0,r.useTable)({columns:a,data:s,defaultColumn:v,onFilteredChange:j,onSortedChange:f,onPageChange:N,onPageSizeChange:b,onRowClick:A,manualPagination:w,manualFilters:w,initialState:{pageIndex:i,pageSize:o}},r.useFilters,r.usePagination),[L,U]=(0,t.useState)(!0),M=w||!z.length?F:z;return(0,t.useEffect)((()=>{!C&&$.filters.length?O([]):j($.filters)}),[$.filters,C]),(0,t.useEffect)((()=>{setTimeout((()=>U(!1)),100)}),[null===M||void 0===M?void 0:M.length]),(0,c.jsxs)(l.tH,{onError:(e,a)=>(0,p.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:x.A,children:[(0,c.jsxs)("div",{className:"react-table-scroller",children:[(0,c.jsx)(d,{headerGroups:k,onSortedChange:f,sorted:P,showFilter:C}),S||L?(0,c.jsx)("div",{className:"centered text-center",children:(0,c.jsx)("i",{className:"fa fa-spinner fa-spin"})}):M.length?M.map((e=>(0,c.jsx)(h,{row:e,prepareRow:y,onRowClick:A},e.id))):(0,c.jsxs)("div",{className:"centered text-center",children:[(0,c.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,c.jsx)("div",{className:"mt-2 text-darkgrey",children:n?`Error loading data: ${n}`:"no records"})]})]}),w?(0,c.jsx)(u,{page:i,pageSize:o,totalPages:g,onPageChange:N,onPageSizeChange:b,loading:S}):(0,c.jsx)(m,{previousPage:G,pageSize:o,canPreviousPage:R,pageIndex:$.pageIndex,pageOptions:D,gotoPage:T,setPageSize:I,pageCount:H,nextPage:_,canNextPage:E,loading:S})]})}},8222:(e,a,s)=>{s.d(a,{A:()=>n});var t=s(127),r=s(5269);const n=async e=>{let{auth:a,url:s,signal:n}=e;const l=await(0,t.A)({operation:{operation:"list_users"},auth:a,url:s,signal:n}),i=Array.isArray(l)?[...l].map((e=>({username:e.username,role:e.role.role}))).sort(((e,a)=>e.username.toLowerCase()>a.username.toLowerCase()?1:-1)):[];return r.A.update((e=>{e.users=i})),i}}}]);