UNPKG

harperdb

Version:

HarperDB is a distributed database, caching service, streaming broker, and application development platform focused on performance and ease of use.

1 lines 10.5 kB
"use strict";(self.webpackChunkharperdb_studio=self.webpackChunkharperdb_studio||[]).push([[642],{7695:(e,a,s)=>{s.r(a),s.d(a,{default:()=>v});var t=s(9379),n=s(9950),r=s(7176),l=s(6114),i=s(3452),o=s(4084),c=s(8156),d=s(6713),g=s(5077),u=s(9435),m=s(5269),p=s(8222),h=s(3150),x=s(3628),j=s(4343),f=s(4414);const A={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 b;const v=function(e){var a,s;let{lastUpdate:v,setLastUpdate:N}=e;const{customer_id:C}=(0,g.g)(),P=(0,g.Zp)(),S=(0,d.O$)(m.A,(e=>e.compute_stack_id)),w=(0,d.O$)(m.A,(e=>e.auth)),k=(0,d.O$)(m.A,(e=>e.url)),[F,z]=(0,n.useState)(A),[y,D]=(0,n.useState)(!0),O=null===(a=F.sorted[0])||void 0===a?void 0:a.id,R=null===(s=F.sorted[0])||void 0===s?void 0:s.desc,E=(0,n.useCallback)((e=>{P("/o/".concat(C,"/i/").concat(S,"/users/").concat(e))}),[S,C]);return(0,n.useEffect)((()=>{let e=!0;return w&&(async()=>{D(!0),b=new AbortController;const a=await(0,p.A)({auth:w,url:k,signal:b.signal});e&&(D(!1),z((0,t.A)((0,t.A)({},F),{},{tableData:a,dataTableColumns:[{Header:"username",accessor:"username"},{Header:"role",accessor:"role"}],totalPages:Math.ceil((a.length||F.pageSize)/F.pageSize),loading:!1})))})(),()=>{var a;e=!1,null===(a=b)||void 0===a||a.abort()}}),[w,v,F.pageSize]),(0,n.useEffect)((()=>{let e=!0;if(F.tableData.length&&O){const a=[...[...F.tableData]].sort(((e,a)=>e[O]>a[O]&&R?1:e[O]>a[O]||R?-1:1));e&&z((0,t.A)((0,t.A)({},F),{},{tableData:a}))}return()=>{var a;e=!1,null===(a=b)||void 0===a||a.abort()}}),[O,R]),(0,f.jsxs)(u.tH,{onError:(e,a)=>(0,x.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:h.A,children:[(0,f.jsxs)(r.A,{className:"floating-card-header",children:[(0,f.jsx)(l.A,{children:"existing users"}),(0,f.jsxs)(l.A,{className:"text-end",children:[(0,f.jsx)(i.A,{color:"link",onClick:()=>N(Date.now()),className:"me-2",children:(0,f.jsx)("i",{title:"Refresh Structure",className:"fa ".concat(y?"fa-spinner fa-spin":"fa-sync-alt")})}),(0,f.jsx)("span",{className:"mx-3 text",children:"|"}),(0,f.jsx)(i.A,{color:"link",title:"Filter Users",className:"me-2",onClick:()=>z((0,t.A)((0,t.A)({},F),{},{filtered:F.showFilter?[]:F.filtered,showFilter:!F.showFilter})),children:(0,f.jsx)("i",{className:"fa fa-search"})})]})]}),(0,f.jsx)(o.A,{className:"mt-3",children:(0,f.jsx)(c.A,{className:"react-table-holder",children:(0,f.jsx)(j.A,{columns:F.dataTableColumns,data:F.tableData,currentPage:F.page,pageSize:F.pageSize,totalPages:F.totalPages,showFilter:F.showFilter,sorted:F.sorted,loading:y,onFilteredChange:e=>z((0,t.A)((0,t.A)({},F),{},{filtered:e})),onSortedChange:e=>z((0,t.A)((0,t.A)({},F),{},{sorted:e})),onPageChange:e=>z((0,t.A)((0,t.A)({},F),{},{pageSize:e})),onPageSizeChange:e=>z((0,t.A)((0,t.A)({},F),{},{page:0,pageSize:e})),onRowClick:e=>E(e.username)})})})]})}},4343:(e,a,s)=>{s.d(a,{A:()=>C});var t=s(9950),n=s(2043),r=s(5488),l=s(9435),i=s(9379),o=s(45),c=s(7176),d=s(6114),g=s(4414);const u=["key"],m=e=>{let{headerGroups:a,onSortedChange:s,sorted:t,showFilter:n,dynamicAttributesFromDataTable:r,tableDescriptionAttributes:l}=e;const m=e=>{let a=!1;return l.forEach((s=>{s.attribute===e&&(s.is_primary_key||s.indexed)&&(a=!0)})),a};return a.map((e=>{const a=e.getHeaderGroupProps(),{key:l}=a,p=(0,o.A)(a,u);return(0,g.jsxs)("div",(0,i.A)((0,i.A)({},p),{},{children:[(0,g.jsx)(c.A,{className:"header g-0",children:e.headers.map((e=>{var a,n;return(0,g.jsx)(d.A,{onClick:()=>{var a,n;r&&!r.includes(e.id)&&m(e.id)&&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:"".concat((null===(a=t[0])||void 0===a?void 0:a.id)===e.id?"sorted":""," ").concat(null!==(n=t[0])&&void 0!==n&&n.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,g.jsx)("div",{className:"text-renderer",children:e.render("Header")})},e.id)}))}),n&&(0,g.jsx)(c.A,{className:"filter g-0",children:e.headers.map((e=>(0,g.jsx)(d.A,{className:-1!==e.id.indexOf("hdb-narrow")?"action":"",children:e.render("Filter")},e.id)))})]}),l)}))};var p=s(3452);const h=function(e){let{page:a,pageSize:s,totalPages:t,onPageChange:n,onPageSizeChange:l,loading:i}=e;return(0,g.jsxs)(c.A,{className:"pagination",children:[(0,g.jsx)(d.A,{xs:"12",sm:"2",className:"previous",children:(0,g.jsx)(p.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:()=>n(a-1),disabled:!t||0===a,children:(0,g.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,g.jsxs)(d.A,{xs:"12",sm:"4",className:"paginator",children:[(0,g.jsx)("i",{className:"fa fa-book me-2"}),(0,g.jsx)(r.A,{className:"mb-2",type:"number",value:a+1,min:1,max:t,onChange:e=>n(e.target.value-1)}),(0,g.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",i?(0,g.jsx)("i",{className:"fa fa-spinner fa-spin"}):t]})]}),(0,g.jsx)(d.A,{xs:"12",sm:"4",className:"page-size",children:(0,g.jsx)(r.A,{className:"mb-2",type:"select",value:s,onChange:e=>l(e.target.value),children:[20,50,100,250].map((e=>(0,g.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,g.jsx)(d.A,{xs:"12",sm:"2",className:"next",children:(0,g.jsx)(p.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:()=>n(a+1),disabled:!t||a+1===t,children:(0,g.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const x=function(e){let{previousPage:a,canPreviousPage:s,pageIndex:t,gotoPage:n,setPageSize:l,pageCount:i,nextPage:o,canNextPage:u,loading:m}=e;return(0,g.jsxs)(c.A,{className:"pagination",children:[(0,g.jsx)(d.A,{xs:"12",sm:"2",className:"previous",children:(0,g.jsx)(p.A,{className:"mb-2 btn-pagination",color:"purple",block:!0,onClick:a,disabled:!i||!s,children:(0,g.jsx)("i",{className:"fa fa-chevron-left"})})}),(0,g.jsxs)(d.A,{xs:"12",sm:"4",className:"paginator",children:[(0,g.jsx)("i",{className:"fa fa-book me-2"}),(0,g.jsx)(r.A,{className:"mb-2",type:"number",value:t+1||1,min:1,max:i,onChange:e=>n(e.target.value?Number(e.target.value)-1:0)}),(0,g.jsxs)("div",{className:"page-count",children:["\xa0/\xa0",m?(0,g.jsx)("i",{className:"fa fa-spinner fa-spin"}):i]})]}),(0,g.jsx)(d.A,{xs:"12",sm:"4",className:"page-size",children:(0,g.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,g.jsxs)("option",{value:e,children:[e," rows"]},e)))})}),(0,g.jsx)(d.A,{xs:"12",sm:"2",className:"next",children:(0,g.jsx)(p.A,{className:"mb-2 pull-right btn-pagination",block:!0,color:"purple",onClick:o,disabled:!i||!u,children:(0,g.jsx)("i",{className:"fa fa-chevron-right"})})})]})};const j=function(e){let{prepareRow:a,row:s,onRowClick:t=!1}=e;return a(s),(0,g.jsx)(c.A,{onClick:()=>t&&t(s.original),className:"g-0",children:s.cells.map((e=>(0,g.jsx)(d.A,{className:-1!==e.column.id.indexOf("hdb-narrow")?"action":"",children:e.render("Cell")},"".concat(e.row.id,"-").concat(e.column.id))))})};var f=s(3628),A=s(3150);function b(e){let{value:a}=e;return(0,g.jsx)("div",{className:"text-renderer",children:a})}function v(e){let{src:a}=e;const[s,n]=(0,t.useState)(!1),[r,l]=(0,t.useState)(!1);return(0,g.jsxs)("div",{className:"image-renderer",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[(0,g.jsx)("i",{className:"fa fa-image"}),s&&r?(0,g.jsxs)("div",{className:"preview-image no-image",children:[(0,g.jsx)("i",{className:"fa fa-ban text-danger"}),(0,g.jsx)("div",{className:"mt-2",children:"image failed to load"})]}):s?(0,g.jsx)("img",{onError:l,alt:a,src:a,className:"preview-image"}):null]})}const N={Filter:e=>{let{column:{filterValue:a,setFilter:s}}=e;return(0,g.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,g.jsx)(b,{value:JSON.stringify(e)});case"[object Boolean]":return(0,g.jsx)(b,{value:e?"true":"false"});case"[object String]":return(a=e)&&(a.match(/^https?.*\.(jpeg|jpg|gif|png)$/)||-1!==a.indexOf("data:image"))?(0,g.jsx)(v,{src:e}):(0,g.jsx)(b,{value:e});default:return(0,g.jsx)(b,{value:e})}var a})(a)}};const C=function(e){let{columns:a,data:s,error:r,currentPage:i,pageSize:o,totalPages:c,onFilteredChange:d,onSortedChange:u,onPageChange:p,onPageSizeChange:b,showFilter:v,onRowClick:C,sorted:P,loading:S,dynamicAttributesFromDataTable:w,tableDescriptionAttributes:k,manual:F=!1}=e;const{headerGroups:z,page:y,rows:D,prepareRow:O,state:R,setAllFilters:E,canPreviousPage:T,canNextPage:_,pageOptions:H,pageCount:G,gotoPage:I,nextPage:L,previousPage:U,setPageSize:$}=(0,n.useTable)({columns:a,data:s,defaultColumn:N,onFilteredChange:d,onSortedChange:u,onPageChange:p,onPageSizeChange:b,onRowClick:C,manualPagination:F,manualFilters:F,initialState:{pageIndex:i,pageSize:o}},n.useFilters,n.usePagination),[M,B]=(0,t.useState)(!0),J=F||!y.length?D:y;return(0,t.useEffect)((()=>{!v&&R.filters.length?E([]):d(R.filters)}),[R.filters,v]),(0,t.useEffect)((()=>{setTimeout((()=>B(!1)),100)}),[null===J||void 0===J?void 0:J.length]),(0,g.jsxs)(l.tH,{onError:(e,a)=>(0,f.A)({error:{message:e.message,componentStack:a}}),FallbackComponent:A.A,children:[(0,g.jsxs)("div",{className:"react-table-scroller",children:[(0,g.jsx)(m,{headerGroups:z,tableDescriptionAttributes:k,dynamicAttributesFromDataTable:w,onSortedChange:u,sorted:P,showFilter:v}),S||M?(0,g.jsx)("div",{className:"centered text-center",children:(0,g.jsx)("i",{className:"fa fa-spinner fa-spin"})}):J.length?J.map((e=>(0,g.jsx)(j,{row:e,prepareRow:O,onRowClick:C},e.id))):(0,g.jsxs)("div",{className:"centered text-center",children:[(0,g.jsx)("i",{className:"fa fa-exclamation-triangle text-danger"}),(0,g.jsx)("div",{className:"mt-2 text-darkgrey",children:r?"Error loading data: ".concat(r):"no records"})]})]}),F?(0,g.jsx)(h,{page:i,pageSize:o,totalPages:c,onPageChange:p,onPageSizeChange:b,loading:S}):(0,g.jsx)(x,{previousPage:U,pageSize:o,canPreviousPage:T,pageIndex:R.pageIndex,pageOptions:H,gotoPage:I,setPageSize:$,pageCount:G,nextPage:L,canNextPage:_,loading:S})]})}},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}}}]);