harperdb
Version:
HarperDB is a distributed database, caching service, streaming broker, and application development platform focused on performance and ease of use.
1 lines • 43 kB
JavaScript
;(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[575],{1679:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ce});var a=n(9950),s=n(6713),r=n(135),l=n(5077),i=n(5269),o=n(7176),c=n(6114),u=n(4084),d=n(8156),h=n(9435),m=n(6165),p=n(3150),g=n(3628),f=n(9379),v=n(3452),b=n(2010),_=n(4834),x=n(127);var j=n(8198),A=n(8738),N=n.n(A),k=n(4414);function y(e){let{error:t,style:n={}}=e;return(0,k.jsx)("div",{style:n,className:N()("form-validation-error",{error:t}),children:t||"input is valid"})}var w=n(5488);const C=function(e){let{label:t,value:n,type:s="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,p]=(0,a.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)(w.A,{id:"cluster-field-".concat(t),type:s,className:N()("cluster-field form-control",{error:m}),max:r,min:l,defaultValue:n,valid:h,onChange:e=>o(e.target.value),onBlur:e=>{const t=c(e.target.value);p(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)(w.A,{readOnly:!0,valid:!0,type:s,value:n})]})};var S=n(2765);const P=function(e){var t,n,r,l,o,c,u,d,h;let{setConfiguring:m,clusterStatus:p,refreshStatus:g,compute_stack_id:A}=e;const N=(0,s.O$)(i.A,(e=>e.auth)),w=(0,s.O$)(i.A,(e=>e.url)),P=p.engine,O=1024,E=65535,[T,R]=(0,a.useState)({clusterRole:null===p||void 0===p||null===(t=p.cluster_role)||void 0===t?void 0:t.role,clusterUsername:(null===p||void 0===p||null===(n=p.cluster_user)||void 0===n?void 0:n.username)||"cluster_user",clusterPassword:(null===p||void 0===p||null===(r=p.cluster_user)||void 0===r?void 0:r.password)||"",clusterPort:(null===p||void 0===p?void 0:p.config_cluster_port)||"",clusterNodeName:(null===p||void 0===p?void 0:p.node_name)||A}),[F,M]=(0,a.useState)(null);function I(e){R((0,f.A)((0,f.A)({},T),e))}return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(C,{label:"Cluster Role",handleChange:e=>I({clusterRole:e}),value:T.clusterRole,valid:(null===(l=T.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!==p&&void 0!==p&&null!==(o=p.cluster_role)&&void 0!==o&&o.role),addSpace:!1}),(0,k.jsx)(C,{label:"Cluster User",handleChange:e=>I({clusterUsername:e}),value:T.clusterUsername,valid:T.clusterUsername.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==p&&void 0!==p&&null!==(c=p.cluster_user)&&void 0!==c&&c.username)}),(0,k.jsx)(C,{label:"Cluster Password",type:"password",handleChange:e=>I({clusterPassword:e}),value:null!==p&&void 0!==p&&null!==(u=p.cluster_user)&&void 0!==u&&u.username?"********":T.clusterPassword,valid:(null===p||void 0===p||null===(d=p.cluster_user)||void 0===d?void 0:d.username)||T.clusterPassword.trim().length>0,validator:e=>e.trim().length>0,editable:!(null!==p&&void 0!==p&&null!==(h=p.cluster_user)&&void 0!==h&&h.username),showDivider:!1}),(0,k.jsx)(C,{label:"Cluster Port",type:"number",max:E,min:O,handleChange:e=>I({clusterPort:e}),value:T.clusterPort,valid:T.clusterPort>=O&&T.clusterPort<=E,validator:e=>e>=O&&e<=E,errorMessage:"must be between ".concat(O," and ").concat(E),editable:!(null!==p&&void 0!==p&&p.config_cluster_port)}),(0,k.jsx)(C,{label:"Cluster Node Name",handleChange:e=>I({clusterNodeName:e}),value:T.clusterNodeName,valid:T.clusterNodeName.length>0,validator:e=>e.length>0,editable:!(null!==p&&void 0!==p&&p.node_name)}),(0,k.jsx)("hr",{className:"my-3"}),(0,k.jsx)(v.A,{block:!0,color:"success",disabled:!function(e){var t;let{clusterRole:n,clusterUsername:a,clusterPassword:s,clusterPort:r,clusterNodeName:l}=e;return(null===n||void 0===n?void 0:n.length)>0&&a.length>0&&((null===p||void 0===p||null===(t=p.cluster_user)||void 0===t?void 0:t.username)||s.length>0)&&l.length>0&&r>=O&&r<=E}(T),onClick:async function(){var e;if(M(null),null===(e=p.cluster_role)||void 0===e||!e.role){const e=await(0,S.A)({auth:N,url:w,role:T.clusterRole,permission:{cluster_user:!0}});if(e.error)return M(e.message)}if(!p.cluster_user){const e=await(0,j.A)({auth:N,url:w,role:T.clusterRole,username:T.clusterUsername,password:T.clusterPassword});if(e.error)return M(e.message)}const t="nats"===P?await(0,_.A)({auth:N,url:w,clustering_enabled:!0,clustering_nodeName:T.clusterNodeName,clustering_port:T.clusterPort,clustering_user:T.clusterUsername}):await(async e=>{let{CLUSTERING:t=!1,CLUSTERING_PORT:n,CLUSTERING_USER:a,NODE_NAME:s,auth:r,url:l}=e;return(0,x.A)({operation:{operation:"configure_cluster",CLUSTERING:t,CLUSTERING_PORT:n,CLUSTERING_USER:a,NODE_NAME:s},auth:r,url:l})})({auth:N,url:w,CLUSTERING:!0,CLUSTERING_PORT:T.clusterPort,CLUSTERING_USER:T.clusterUsername,NODE_NAME:T.clusterNodeName});return t.error?M(t.message):(window._kmq&&window._kmq.push(["record","enabled clustering"]),await(0,b.A)({auth:N,url:w}),setTimeout((()=>m(!0)),0),g())},children:"Enable Clustering"}),(0,k.jsx)("br",{}),F&&(0,k.jsx)(y,{error:F})]})};const O=function(e){let{setConfiguring:t,clusterStatus:n,refreshStatus:a}=e;const{compute_stack_id:r}=(0,l.g)(),f=null===n||void 0===n?void 0:n.cluster_role,v=(null===n||void 0===n?void 0:n.cluster_role)&&(null===n||void 0===n?void 0:n.cluster_user),b=(null===n||void 0===n?void 0:n.cluster_role)&&(null===n||void 0===n?void 0:n.cluster_user),_=(null===n||void 0===n?void 0:n.cluster_role)&&(null===n||void 0===n?void 0:n.cluster_user)&&(null===n||void 0===n?void 0:n.node_name),x=(0,s.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,g.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:p.A,children:(0,k.jsx)(P,{setConfiguring:t,refreshStatus:a,clusterStatus:n,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 "'.concat(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?"Harper 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 E=n(7348);const T=function(e){let{handleAddNode:t,loading:n}=e;return(0,k.jsx)(v.A,{color:"purple",className:"round",title:"Connect To This Instance",disabled:n,onClick:t,children:(0,k.jsx)("i",{className:"fa ".concat(n?"fa-spin fa-spinner":"fa-plus"," text-white")})})};const R=function(e){let{handleRemoveNode:t,showModal:n,loading:a}=e;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(v.A,{color:"danger",className:"round me-1",title:"Why isn't this instance clustering?",disabled:a,onClick:n,children:(0,k.jsx)("i",{className:"fa fa-exclamation"})}),(0,k.jsx)(v.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:a,onClick:t,children:(0,k.jsx)("i",{className:"fa ".concat(a?"fa-spin fa-spinner":"fa-minus"," text-white")})})]})};const F=function(e){let{handleRemoveNode:t,loading:n}=e;return(0,k.jsx)(v.A,{color:"purple",className:"round",title:"Disconnect From This Instance",disabled:n,onClick:t,children:(0,k.jsx)("i",{className:"fa ".concat(n?"fa-spin fa-spinner":"fa-minus"," text-white")})})};const M=function(){return(0,k.jsx)(v.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 I=function(e){let{handleConfigureNode:t,loading:n}=e;return(0,k.jsx)(v.A,{color:"success",className:"round me-1",title:"Enable Clustering",disabled:n,onClick:t,children:(0,k.jsx)("i",{className:"fa ".concat(n?"fa-spin fa-spinner":"fa-share"," text-white")})})};const L=function(e){var t,n,a;let{setShowModal:s,item:r,itemType:l,loading:i,handleAddNode:u,handleRemoveNode:d,handleConfigureNode:h,refreshNetwork:m}=e;const p=r.compute_stack_id===i;return(0,k.jsxs)(o.A,{className:"item-row",children:[(0,k.jsx)(c.A,{className:"item-label ".concat("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)(I,{loading:p,handleConfigureNode:()=>h({compute_stack_id:r.compute_stack_id})}):"CREATE_IN_PROGRESS"===r.instance_status?(0,k.jsx)(v.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===(n=r.connection)||void 0===n?void 0:n.state)?(0,k.jsx)(R,{loading:p,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id}),showModal:()=>s(r.instance_name)}):"connecting"===(null===(a=r.connection)||void 0===a?void 0:a.state)?(0,k.jsx)(M,{refreshNetwork:m}):(0,k.jsx)(F,{loading:p,handleRemoveNode:()=>d({compute_stack_id:r.compute_stack_id,instance_host:r.instance_host,clusterPort:r.clusterPort})}):(0,k.jsx)(T,{loading:p,handleAddNode:()=>u({compute_stack_id:r.compute_stack_id,instance_url:r.instance_url,instance_host:r.instance_host,clusterPort:r.clusterPort})})})]})};var U=n(1534);const z=function(e){let{items:t,itemType:n,setShowModal:r,loading:h,setLoading:m,refreshNetwork:p}=e;const{customer_id:g}=(0,l.g)(),v=(0,l.Zp)(),b=(0,E.MW)(),_=(0,s.O$)(i.A,(e=>e.compute_stack_id)),j=(0,s.O$)(i.A,(e=>e.auth),[_]),A=(0,s.O$)(i.A,(e=>e.url),[_]),N=(0,s.O$)(i.A,(e=>e.is_local),[_]),y=(0,s.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.auth)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[_]),w=(0,a.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===y?await(async e=>{let{auth:t,url:n,server:a="hub",routes:s}=e;return(0,x.A)({operation:{operation:"cluster_set_routes",server:a,routes:s},auth:t,url:n})})({auth:j,url:A,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,instance_host:n,clusterPort:a,auth:s,url:r}=e;return(0,x.A)({operation:{operation:"add_node",name:t,node_name:t,host:n,port:a,subscriptions:[]},auth:s,url:r})})((0,f.A)((0,f.A)({},e),{},{auth:j,url:A,is_local:N,customer_id:g}));t.error?(b.error("localhost"===e.instance_host?"External instances cannot reach that instance's URL":t.message),m(!1)):("nats"===y&&await(0,U.A)({auth:j,url:A,service:"clustering config"}),await p()),m(!1)}),[m,j,A,N,g,p,b,y]),C=(0,a.useCallback)((async e=>{m(e.compute_stack_id);const t="nats"===y?await(async e=>{let{auth:t,url:n,routes:a}=e;return(0,x.A)({operation:{operation:"cluster_delete_routes",routes:a},auth:t,url:n})})({auth:j,url:A,routes:[{host:e.instance_host,port:e.clusterPort}]}):await(async e=>{let{compute_stack_id:t,auth:n,url:a}=e;return(0,x.A)({operation:{operation:"remove_node",name:t,node_name:t},auth:n,url:a})})((0,f.A)((0,f.A)({},e),{},{auth:j,url:A,is_local:N,customer_id:g}));t.error?(b.error(t.message),m(!1)):("nats"===y&&await(0,U.A)({auth:j,url:A,service:"clustering config"}),await p()),m(!1)}),[m,j,A,N,g,p,b,y]),S=(0,a.useCallback)((e=>v("/o/".concat(g,"/i/").concat(e.compute_stack_id,"/cluster"))),[v,g]);return(0,k.jsxs)("div",{className:"entity-manager",children:[(0,k.jsxs)("div",{className:"floating-card-header",children:[n," 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)(L,{item:e,itemType:n,setShowModal:r,handleAddNode:w,handleRemoveNode:C,handleConfigureNode:S,loading:h,refreshNetwork:p},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 ",n," 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 D=n(4343);const $={filtered:[],sorted:[],page:0,totalPages:1,pageSize:20,autoRefresh:!1,showFilter:!1,lastUpdate:!1};const G=function(e){let{refreshNetwork:t,loading:n,setLoading:r}=e;const l=(0,s.O$)(i.A,(e=>e.clusterDataTable||[])),h=(0,s.O$)(i.A,(e=>e.clusterDataTableColumns||[])),[m,p]=(0,a.useState)($);(0,a.useEffect)((()=>{p((0,f.A)((0,f.A)({},m),{},{totalPages:Math.ceil((l.length||m.pageSize)/m.pageSize)}))}),[p,m.pageSize]);const g=(0,a.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)(v.A,{color:"link",onClick:g,className:"me-2",children:[(0,k.jsx)("span",{className:"me-2",children:"refresh network"}),(0,k.jsx)("i",{title:"Refresh Roles",className:"fa ".concat(n?"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 ".concat(n?"loading":""),children:null!==l&&void 0!==l&&l.length?(0,k.jsx)(D.A,{columns:h,data:l,page:m.page,pageSize:m.pageSize,totalPages:m.totalPages,showFilter:m.showFilter,sorted:m.sorted,onFilteredChange:e=>p((0,f.A)((0,f.A)({},m),{},{filtered:e})),onSortedChange:e=>p((0,f.A)((0,f.A)({},m),{},{sorted:e})),onPageChange:e=>p((0,f.A)((0,f.A)({},m),{},{pageSize:e})),onPageSizeChange:e=>p((0,f.A)((0,f.A)({},m),{},{page:0,pageSize:e}))}):(0,k.jsx)("div",{className:"empty-prompt",children:"Please connect at least one instance to configure clustering"})})})]})};var B=n(6685),X=n(1340),H=n(877);const q=function(e){let{showModal:t,setShowModal:n}=e;const{compute_stack_id:a}=(0,l.g)(),r=(0,s.O$)(i.A,(e=>e.instance_name),[a]);return(0,k.jsxs)(B.A,{id:"cluster-state-modal",isOpen:!!t,toggle:()=>n(!1),centered:!0,fade:!1,children:[(0,k.jsx)(X.A,{toggle:()=>n(!1),children:"Instance Cluster Error"}),(0,k.jsx)(H.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 W=n(2414),Y=n.n(W);var J=n(1110);const V=async e=>{let{channel:t,subscriptions:n,buttonState:a,instance_host:s,clusterPort:r,clusterName:l,auth:o,url:c}=e;const u=JSON.parse(JSON.stringify(n)),d=u.findIndex((e=>e.channel===t)),[h,m]=t.split(":");-1===d?u.push({channel:t,schema:h,table:m,publish:"togglePublish"===a,subscribe:"toggleSubscribe"===a}):"togglePublish"===a?u[d].publish=!u[d].publish:"toggleSubscribe"===a&&(u[d].subscribe=!u[d].subscribe),u[d]&&!u[d].publish&&u[d].subscribe;const p={operation:"update_node",name:l,node_name:l,host:s,port:r,subscriptions:u},g=await(0,x.A)({operation:p,auth:o,url:c});return g.error&&-1!==g.message.indexOf("add_node")&&(p.operation="add_node",await(0,x.A)({operation:p,auth:o,url:c})),i.A.update((e=>{e.lastUpdate=Date.now()}))};var K=n(5346),Z=n(396),Q=n(6177);const ee=async e=>{let{instance:t,auth:n}=e;const a=n&&await(0,Q.A)({auth:n,url:t.url}),s=n&&await(0,K.A)({auth:n,url:t.url}),{structure:r}=s?(0,Z.A)(s):{structure:{}},l=new URL(t.url),i=(0,f.A)((0,f.A)({},t),{},{auth:n,structure:r,host:l.hostname,clustering:a});return Object.entries(i).reduce(((e,t)=>{let[n,a]=t;return null==a||(e[n]=a),e}),{})},te=async e=>{let{auth:t,url:n,instances:a,connections:s}=e;const r=await(async e=>{let{auth:t,url:n}=e;return(0,x.A)({operation:{operation:"cluster_get_routes"},auth:t,url:n})})({auth:t,url:n});return r.hub.map((e=>{var t;const n=a.find((t=>t.host===e.host||t.private_ip===e.host));if(!n)return!1;const r=n.host===n.private_ip?n.private_ip:n.host,l=s.find((e=>{var t;return e.node_name===(null===n||void 0===n||null===(t=n.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=>(0,f.A)({channel:"".concat(e.schema,":").concat(e.table)},e))))||[];return{host:r,port:e.port,state:"open",name:null===n||void 0===n?void 0:n.compute_stack_id,subscriptions:i}})).filter((e=>!1!==e))},ne=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}))):[]},ae=async e=>{let{auth:t,url:n,instances:a,compute_stack_id:s,instanceAuths:r,setLoading:l}=e;const o=await Promise.all(a.filter((e=>!!r[e.compute_stack_id])).map((e=>ee({instance:e,auth:r[e.compute_stack_id]})))),c=o.find((e=>e.compute_stack_id===s)),u=c.clustering.message||!c.clustering.is_enabled?[]:"nats"===c.clustering.engine?await te({auth:t,url:n,instances:o,connections:c.clustering.connections}):ne({connections:c.clustering.status.outbound_connections}),d={is_enabled:c.clustering.is_enabled,connections:u},h=(e=>{let{instances:t,network:n,instance_region:a,instance_wavelength_zone_id:s,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===n||void 0===n?void 0:n.connections.find((t=>t.name===e.compute_stack_id)):null===n||void 0===n?void 0:n.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=!a||a!==e.instance_region||e.wavelength_zone_id||s?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!==s)),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:n}=e;if(!n||!t.length)return[];const a=[];return t.map((e=>{const t=Y()(e.structure,n);return Object.keys(t).sort().map(((n,s)=>(Object.keys(t[n]).sort().map(((t,r)=>{const l="".concat(n,":").concat(t),i=l&&e.subscriptions.find((e=>e.channel===l)),o=i&&i.publish,c=i&&i.subscribe;return a.push({is_first_instance:0===s&&0===r,is_first_schema:0===r,instance_name:e.instance_name,schema:n,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})),a})({instances:h.connected.filter((e=>"closed"!==e.connection.state)),structure:c.structure}),p=(e=>{let{auth:t,url:n,buildNetwork:a,setLoading:s}=e;return[{Header:"instance",Cell:e=>{let{row:{original:{is_first_instance:t,instance_name:n}}}=e;return(0,k.jsx)("div",{className:"".concat(t?"text-bold":"text-grey"),children:n})}},{Header:"schema",Cell:e=>{let{row:{original:{is_first_schema:t,schema:n}}}=e;return(0,k.jsx)("div",{className:"".concat(t?"text-bold":"text-grey"),children:n})}},{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)(J.A,{checked:d||!1,onChange:async()=>{s(r),await V({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:n,buttonState:"togglePublish"}),a()}})}},{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)(J.A,{checked:d||!1,onChange:async()=>{s(r),await V({channel:h,subscriptions:u,instance_host:l,instance_name:i,clusterPort:o,clusterName:c,auth:t,url:n,buttonState:"toggleSubscribe"}),a()}})}}]})({auth:t,url:c.url,compute_stack_id:s,buildNetwork:()=>ae({auth:t,url:n,instances:a,compute_stack_id:s,instanceAuths:r,setLoading:l}),setLoading:l});return i.A.update((e=>{e.network=d,e.clusterPartners=h,e.clusterDataTable=m,e.clusterDataTableColumns=p,e.instances=o})),l(!1),{network:d,clusterPartners:h,clusterDataTable:m,clusterDataTableColumns:p}},se=ae;var re=n(5553),le=n(4319);const ie=function(e){let{configuring:t}=e;const{compute_stack_id:n}=(0,l.g)(),u=(0,s.O$)(re.A,(e=>e.instances)),[d]=(0,le.A)({}),m=(0,s.O$)(i.A,(e=>e.auth),[n]),f=(0,s.O$)(i.A,(e=>e.url),[n]),v=(0,s.O$)(i.A,(e=>e.clusterPartners),[n]),b=(0,s.O$)(i.A,(e=>e.restarting),[n]),_="socketcluster"===(0,s.O$)(i.A,(e=>{var t;return parseFloat(null===(t=e.registration)||void 0===t?void 0:t.version)>=4?"nats":"socketcluster"}),[n])&&(null===v||void 0===v?void 0:v.connected.some((e=>"connecting"===e.connection.state))),[x,j]=(0,a.useState)(!1),[A,N]=(0,a.useState)(!1),y=(0,a.useCallback)((async()=>{m&&f&&u&&n&&!b&&!t&&await se({auth:m,url:f,instances:u,compute_stack_id:n,instanceAuths:d,setLoading:N})}),[m,f,u,n,b,d,t]);return(0,a.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,g.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:p.A,children:[(0,k.jsx)(z,{items:null===v||void 0===v?void 0:v.connected,itemType:"connected",loading:A,refreshNetwork:y,setLoading:N,setShowModal:j}),(0,k.jsx)(z,{items:null===v||void 0===v?void 0:v.unconnected,itemType:"unconnected",loading:A,refreshNetwork:y,setLoading:N}),(0,k.jsx)(z,{items:null===v||void 0===v?void 0:v.unconfigured,itemType:"unconfigured",loading:A}),(0,k.jsx)(z,{items:null===v||void 0===v?void 0:v.unreachable,itemType:"incompatible/unreachable",loading:A})]})}),(0,k.jsx)(c.A,{xl:"9",lg:"8",md:"6",xs:"12",children:(0,k.jsx)(G,{refreshNetwork:y,loading:A,setLoading:N})})]}),(0,k.jsx)(q,{showModal:x,setShowModal:j})]})};var oe=n(4979);const ce=function(){const{compute_stack_id:e}=(0,l.g)(),t=(0,s.O$)(i.A,(e=>e.auth),[e]),n=(0,s.O$)(i.A,(e=>e.url),[e]),[o,c]=(0,a.useState)(!1),[u,d]=(0,a.useState)(!1),h=(0,a.useCallback)((async()=>{if(t&&n){const e=await(0,Q.A)({auth:t,url:n});c(e),e.is_ready&&d(!1)}}),[t,n]);return(0,r.A)((async()=>{u&&h()}),3e3),(0,a.useEffect)((()=>{h()}),[h]),(0,a.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)(ie,{configuring:u}):(0,k.jsx)(O,{setConfiguring:d,clusterStatus:o,refreshStatus:h}):(0,k.jsx)(oe.A,{header:"loading network",spinner:!0})}},4343:(e,t,n)=>{n.d(t,{A:()=>N});var a=n(9950),s=n(2043),r=n(5488),l=n(9435),i=n(9379),o=n(45),c=n(7176),u=n(6114),d=n(4414);const h=["key"],m=e=>{let{headerGroups:t,onSortedChange:n,sorted:a,showFilter:s,dynamicAttributesFromDataTable:r,tableDescriptionAttributes:l}=e;const m=e=>{let t=!1;return l.forEach((n=>{n.attribute===e&&(n.is_primary_key||n.indexed)&&(t=!0)})),t};return t.map((e=>{const t=e.getHeaderGroupProps(),{key:l}=t,p=(0,o.A)(t,h);return(0,d.jsxs)("div",(0,i.A)((0,i.A)({},p),{},{children:[(0,d.jsx)(c.A,{className:"header g-0",children:e.headers.map((e=>{var t,s;return(0,d.jsx)(u.A,{onClick:()=>{var t,s;r&&!r.includes(e.id)&&m(e.id)&&n([{id:e.id,desc:(null===(t=a[0])||void 0===t?void 0:t.id)===e.id&&!(null!==(s=a[0])&&void 0!==s&&s.desc)}])},className:"".concat((null===(t=a[0])||void 0===t?void 0:t.id)===e.id?"sorted":""," ").concat(null!==(s=a[0])&&void 0!==s&&s.desc?"desc":"asc"," ").concat(-1!==e.id.indexOf("hdb-narrow")?"action":""," px-1 ").concat(r&&!r.includes(e.id)&&m(e.id)?"":"disabled-column"),children:(0,d.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),s&&(0,d.jsx)(c.A,{className:"filter g-0",children:e.headers.map((e=>(0,d.jsx)(u.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]}),l)}))};var p=n(3452);const g=function(e){let{page:t,pageSize:n,totalPages:a,onPageChange:s,onPageSizeChange:l,loading:i}=e;return(0,d.jsxs)(c.A,{className:"pagination",children:[(0,d.jsx)(u.A,{xs:"12",sm:"2",className:"previous",children:(0,d.jsx)(p.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>s(t-1),disabled:!a||0===t,children:(0,d.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,d.jsxs)(u.A,{xs:"12",sm:"4",className:"paginator",children:[(0,d.jsx)("i",{className:"fa fa-book me-2"}),(0,d.jsx)(r.A,{className:"mb-2",type:"number",value:t+1,min:1,max:a,onChange:e=>s(e.target.value-1)}),(0,d.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",i?(0,d.jsx)("i",{className:"fa fa-spinner fa-spin"}):a]})]}),(0,d.jsx)(u.A,{xs:"12",sm:"4",className:"page-size",children:(0,d.jsx)(r.A,{className:"mb-2",type:"select",value:n,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,d.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,d.jsx)(u.A,{xs:"12",sm:"2",className:"next",children:(0,d.jsx)(p.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>s(t+1),disabled:!a||t+1===a,children:(0,d.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const f=function(e){let{previousPage:t,canPreviousPage:n,pageIndex:a,gotoPage:s,setPageSize:l,pageCount:i,nextPage:o,canNextPage:h,loading:m}=e;return(0,d.jsxs)(c.A,{className:"pagination",children:[(0,d.jsx)(u.A,{xs:"12",sm:"2",className:"previous",children:(0,d.jsx)(p.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:t,disabled:!i||!n,children:(0,d.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,d.jsxs)(u.A,{xs:"12",sm:"4",className:"paginator",children:[(0,d.jsx)("i",{className:"fa fa-book me-2"}),(0,d.jsx)(r.A,{className:"mb-2",type:"number",value:a+1||1,min:1,max:i,onChange:e=>s(e.target.value?Number(e.target.value)-1:0)}),(0,d.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",m?(0,d.jsx)("i",{className:"fa fa-spinner fa-spin"}):i]})]}),(0,d.jsx)(u.A,{xs:"12",sm:"4",className:"page-size",children:(0,d.jsx)(r.A,{className:"mb-2",type:"select",onChange:e=>{s(0),setTimeout((()=>l(e.target.value)),1e3)},children:[20,50,100,250].map((e=>(0,d.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,d.jsx)(u.A,{xs:"12",sm:"2",className:"next",children:(0,d.jsx)(p.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:o,disabled:!i||!h,children:(0,d.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const v=function(e){let{prepareRow:t,row:n,onRowClick:a=!1}=e;return t(n),(0,d.jsx)(c.A,{onClick:()=>a&&a(n.original),className:"g-0",children:n.cells.map((e=>(0,d.jsx)(u.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},"".concat(e.row.id,"-").concat(e.column.id))))})};var b=n(3628),_=n(3150);function x(e){let{value:t}=e;return(0,d.jsx)("div",{className:"text-renderer",children:t})}function j(e){let{src:t}=e;const[n,s]=(0,a.useState)(!1),[r,l]=(0,a.useState)(!1);return(0,d.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,d.jsx)("i",{className:"fa fa-image"}),n&&r?(0,d.jsxs)("div",{className:"preview-image no-image",children:[(0,d.jsx)("i",{className:"fa fa-ban text-danger"}),(0,d.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):n?(0,d.jsx)("img",{onError:l,alt:t,src:t,className:"preview-image"}):null]})}const A={Filter:e=>{let{column:{filterValue:t,setFilter:n}}=e;return(0,d.jsx)(r.A,{type:"text",value:t||"",onChange:e=>n(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,d.jsx)(x,{value:JSON.stringify(e)});case"[object Boolean]":return(0,d.jsx)(x,{value:e?"true":"false"});case"[object String]":return(t=e)&&(t.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==t.indexOf("data:image"))?(0,d.jsx)(j,{src:e}):(0,d.jsx)(x,{value:e});default:return(0,d.jsx)(x,{value:e})}var t})(t)}};const N=function(e){let{columns:t,data:n,error:r,currentPage:i,pageSize:o,totalPages:c,onFilteredChange:u,onSortedChange:h,onPageChange:p,onPageSizeChange:x,showFilter:j,onRowClick:N,sorted:k,loading:y,dynamicAttributesFromDataTable:w,tableDescriptionAttributes:C,manual:S=!1}=e;const{headerGroups:P,page:O,rows:E,prepareRow:T,state:R,setAllFilters:F,canPreviousPage:M,canNextPage:I,pageOptions:L,pageCount:U,gotoPage:z,nextPage:D,previousPage:$,setPageSize:G}=(0,s.useTable)({columns:t,data:n,defaultColumn:A,onFilteredChange:u,onSortedChange:h,onPageChange:p,onPageSizeChange:x,onRowClick:N,manualPagination:S,manualFilters:S,initialState:{pageIndex:i,pageSize:o}},s.useFilters,s.usePagination),[B,X]=(0,a.useState)(!0),H=S||!O.length?E:O;return(0,a.useEffect)((()=>{!j&&R.filters.length?F([]):u(R.filters)}),[R.filters,j]),(0,a.useEffect)((()=>{setTimeout((()=>X(!1)),100)}),[null===H||void 0===H?void 0:H.length]),(0,d.jsxs)(l.tH,{onError:(e,t)=>(0,b.A)({error:{message:e.message,componentStack:t}}),FallbackComponent:_.A,children:[(0,d.jsxs)("div",{className:"react-table-scroller",children:[(0,d.jsx)(m,{headerGroups:P,tableDescriptionAttributes:C,dynamicAttributesFromDataTable:w,onSortedChange:h,sorted:k,showFilter:j}),y||B?(0,d.jsx)("div",{className:"centered text-center",children:(0,d.jsx)("i",{className:"fa fa-spinner fa-spin"})}):H.length?H.map((e=>(0,d.jsx)(v,{row:e,prepareRow:T,onRowClick:N},e.id))):(0,d.jsxs)("div",{className:"centered text-center",children:[(0,d.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,d.jsx)("div",{className:"mt-2 text-darkgrey",children:r?"Error loading data: ".concat(r):"no records"})]})]}),S?(0,d.jsx)(g,{page:i,pageSize:o,totalPages:c,onPageChange:p,onPageSizeChange:x,loading:y}):(0,d.jsx)(f,{previousPage:$,pageSize:o,canPreviousPage:M,pageIndex:R.pageIndex,pageOptions:L,gotoPage:z,setPageSize:G,pageCount:U,nextPage:D,canNextPage:I,loading:y})]})}},2765:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n,role:s,permission:r}=e;return(0,a.A)({operation:{operation:"add_role",role:s,permission:r},auth:t,url:n})}},8198:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,role:n,username:s,password:r,url:l}=e;return(0,a.A)({operation:{operation:"add_user",role:n,username:s,password:r,active:!0},auth:t,url:l})}},8750:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(127);const s=async e=>{let{auth:t,url:n}=e;return(0,a.A)({operation:{operation:"get_configuration"},auth:t,url:n})}},2415:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;const r=await(0,a.A)({operation:{operation:"list_roles"},auth:t,url:n}),l=[...Array.isArray(r)?r:[]].sort(((e,t)=>e.role.toLowerCase()>t.role.toLowerCase()?1:-1));return s.A.update((e=>{e.roles=l})),l}},8222:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,signal:r}=e;const l=await(0,a.A)({operation:{operation:"list_users"},auth:t,url:n,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 s.A.update((e=>{e.users=i})),i}},2010:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n}=e;return s.A.update((e=>{e.restarting=!0})),(0,a.A)({operation:{operation:"restart"},auth:t,url:n})}},1534:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(127),s=n(5269);const r=async e=>{let{auth:t,url:n,service:r=null}=e;return r?(s.A.update((e=>{e.restarting_service=r})),(0,a.A)({operation:{operation:"restart_service",service:r},auth:t,url:n})):{error:!0,message:"You must specify a service"}}},4834:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(9379),s=n(45),r=n(127);const l=["auth","url"],i=async e=>{let{auth:t,url:n}=e,i=(0,s.A)(e,l);return(0,r.A)({operation:(0,a.A)({operation:"set_configuration"},i),auth:t,url:n})}},6177:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(8750),s=n(2415),r=n(8222),l=n(717),i=n(127);const o=async e=>{var t,n,o,c,u,d,h;let{auth:m,url:p}=e;const g=await(0,a.A)({auth:m,url:p}),f=await(0,l.A)({auth:m,url:p}),v=await(async e=>{let{auth:t,url:n}=e;return(0,i.A)({operation:{operation:"cluster_status"},auth:t,url:n})})({auth:m,url:p}),b=parseFloat(null===f||void 0===f?void 0:f.version)>=4?"nats":"socketcluster",_=await(0,s.A)({auth:m,url:p});let x=!1;_.error||(x=_.find((e=>e.permission.cluster_user)));const j=await(0,r.A)({auth:m,url:p});let A=!1;j.error||(A=x&&j.find((e=>e.role===x.role)));const N="nats"===b?null===(t=g.clustering)||void 0===t?void 0:t.enabled:g.CLUSTERING,k="nats"===b?null===(n=g.clustering)||void 0===n?void 0:n.user:g.CLUSTERING_USER,y="nats"===b?null===(o=g.clustering)||void 0===o||null===(c=o.hubServer)||void 0===c||null===(u=c.cluster)||void 0===u||null===(d=u.network)||void 0===d?void 0:d.port:g.CLUSTERING_PORT,w="nats"===b?null===(h=g.clustering)||void 0===h?void 0:h.nodeName:g.NODE_NAME;return{is_ready:!!N&&!!A&&!!k&&!!x&&!!y&&!!w,cluster_role:x,cluster_user:A,is_enabled:N,config_cluster_user:k,config_cluster_port:y,node_name:w,engine:b,status:null===v||void 0===v?void 0:v.status,message:null===v||void 0===v?void 0:v.message,connections:null===v||void 0===v?void 0:v.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===n}(e)}(e)};var n="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function s(e,t,n){return e.concat(t).map((function(e){return a(e,n)}))}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(n){return!1}}function i(e,t,n){var s={};return n.isMergeableObject(e)&&r(e).forEach((function(t){s[t]=a(e[t],n)})),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)&&n.isMergeableObject(t[r])?s[r]=function(e,t){if(!t.customMerge)return o;var n=t.customMerge(e);return"function"===typeof n?n:o}(r,n)(e[r],t[r],n):s[r]=a(t[r],n))})),s}function o(e,n,r){(r=r||{}).arrayMerge=r.arrayMerge||s,r.isMergeableObject=r.isMergeableObject||t,r.cloneUnlessOtherwiseSpecified=a;var l=Array.isArray(n);return l===Array.isArray(e)?l?r.arrayMerge(e,n,r):i(e,n,r):a(n,r)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return o(e,n,t)}),{})};var c=o;e.exports=c},4010:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a,s=n(9950),r=(a=s)&&a.__esModule?a:{default:a};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,n)=>{var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),r=n(9950),l=h(r),i=h(n(8738)),o=h(n(1942)),c=h(n(4010)),u=h(n(4990)),d=n(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 n=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 n.handleClick=n.handleClick.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.handleTouchEnd=n.handleTouchEnd.bind(n),n.handleFocus=n.handleFocus.bind(n),n.handleBlur=n.handleBlur.bind(n),n.previouslyChecked=!(!e.checked&&!e.defaultChecked),n.state={checked:!(!e.checked&&!e.defaultChecked),hasFocus:!1},n}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),s(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 n=this.props.hasOwnProperty("checked")?this.props.checked:t.checked;this.setState({checked:n})}}},{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 n=(0,d.pointerCoord)(e).x;!0===this.previouslyChecked&&this.startX+4>n?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4<n&&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 n=this.props.icons;return n?void 0===n[e]?t.defaultProps.icons[e]:n[e]:null}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,s=(t.icons,function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}(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},n);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",a({},s,{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 n=t[0];return{x:n.clientX,y:n.clientY}}var a=e.pageX;if(void 0!==a)return{x:a,y:e.pageY}}return{x:0,y:0}}},4990:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var a,s=n(9950),r=(a=s)&&a.__esModule?a:{default:a};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"}))}}}]);