1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8684],{26447:function(e,n,r){"use strict";var i=r(1819),t=r(90948),o=r(71657);let a=(0,i.Z)({createStyledComponent:(0,t.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,n)=>n.root}),useThemeProps:e=>(0,o.Z)({props:e,name:"MuiStack"})});n.Z=a},1819:function(e,n,r){"use strict";r.d(n,{Z:function(){return y}});var i=r(63366),t=r(87462),o=r(67294),a=r(86010),s=r(59766),l=r(94780),c=r(34867),d=r(13264),u=r(29628),m=r(39707),p=r(66500),g=r(95408),h=r(98700),f=r(85893);let x=["component","direction","spacing","divider","children","className","useFlexGap"],v=(0,p.Z)(),j=(0,d.Z)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,n)=>n.root});function Z(e){return(0,u.Z)({props:e,name:"MuiStack",defaultTheme:v})}let z=e=>({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],P=({ownerState:e,theme:n})=>{let r=(0,t.Z)({display:"flex",flexDirection:"column"},(0,g.k9)({theme:n},(0,g.P$)({values:e.direction,breakpoints:n.breakpoints.values}),e=>({flexDirection:e})));if(e.spacing){let i=(0,h.hB)(n),t=Object.keys(n.breakpoints.values).reduce((n,r)=>(("object"==typeof e.spacing&&null!=e.spacing[r]||"object"==typeof e.direction&&null!=e.direction[r])&&(n[r]=!0),n),{}),o=(0,g.P$)({values:e.direction,base:t}),a=(0,g.P$)({values:e.spacing,base:t});"object"==typeof o&&Object.keys(o).forEach((e,n,r)=>{let i=o[e];if(!i){let i=n>0?o[r[n-1]]:"column";o[e]=i}});let l=(n,r)=>e.useFlexGap?{gap:(0,h.NA)(i,n)}:{"& > :not(style) + :not(style)":{margin:0,[`margin${z(r?o[r]:e.direction)}`]:(0,h.NA)(i,n)}};r=(0,s.Z)(r,(0,g.k9)({theme:n},a,l))}return(0,g.dt)(n.breakpoints,r)};function y(e={}){let{createStyledComponent:n=j,useThemeProps:r=Z,componentName:s="MuiStack"}=e,d=()=>(0,l.Z)({root:["root"]},e=>(0,c.Z)(s,e),{}),u=n(P),p=o.forwardRef(function(e,n){let s=r(e),l=(0,m.Z)(s),{component:c="div",direction:p="column",spacing:g=0,divider:h,children:v,className:j,useFlexGap:Z=!1}=l,z=(0,i.Z)(l,x),P=d();return(0,f.jsx)(u,(0,t.Z)({as:c,ownerState:{direction:p,spacing:g,useFlexGap:Z},ref:n,className:(0,a.Z)(P.root,j)},z,{children:h?function(e,n){let r=o.Children.toArray(e).filter(Boolean);return r.reduce((e,i,t)=>(e.push(i),t<r.length-1&&e.push(o.cloneElement(n,{key:`separator-${t}`})),e),[])}(v,h):v}))});return p}},77654:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/organizations",function(){return r(28252)}])},81010:function(e,n,r){"use strict";var i=r(85893),t=r(67294),o=r(41664),a=r.n(o),s=r(99226),l=r(38333),c=r(67720),d=r(18972),u=r(93946),m=r(63730),p=r(23918);let g=e=>{let{children:n,option:r}=e;return r.href?(0,i.jsx)(s.Z,{component:a(),href:r.href,...r.linkProps,sx:{px:4,py:1.5,width:"100%",display:"flex",color:"inherit",alignItems:"center",textDecoration:"none"},children:n}):(0,i.jsx)(i.Fragment,{children:n})},h=e=>{let{icon:n,options:r,menuProps:o,iconProps:a,leftAlignMenu:s,iconButtonProps:h}=e,[f,x]=(0,t.useState)(null),{settings:v}=(0,p.r)(),{direction:j}=v,Z=e=>{x(e.currentTarget)},z=()=>{x(null)};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(u.Z,{"aria-haspopup":"true",onClick:Z,...h,children:n||(0,i.jsx)(m.Z,{icon:"mdi:dots-vertical",...a})}),(0,i.jsx)(l.Z,{keepMounted:!0,anchorEl:f,onClose:z,open:!!f,...!s&&{anchorOrigin:{vertical:"bottom",horizontal:"ltr"===j?"right":"left"},transformOrigin:{vertical:"top",horizontal:"ltr"===j?"right":"left"}},...o,children:r.map((e,n)=>"string"==typeof e?(0,i.jsx)(d.Z,{onClick:z,children:e},n):"divider"in e?e.divider&&(0,i.jsx)(c.Z,{...e.dividerProps},n):(0,i.jsx)(d.Z,{...e.menuItemProps,...e.href&&{sx:{p:0}},onClick:n=>{z(),e.menuItemProps&&e.menuItemProps.onClick&&e.menuItemProps.onClick(n)},children:(0,i.jsxs)(g,{option:e,children:[e.icon?e.icon:null,e.text]})},n))})]})};n.Z=h},9354:function(e,n,r){"use strict";r.d(n,{o:function(){return m}});var i=r(85893);r(67294);var t=r(37645),o=r(50657),a=r(99226),s=r(93946),l=r(6514),c=r(98456),d=r(50594);let u={spinner:{position:"absolute",top:"50%",left:"50%",marginTop:"-12px",marginLeft:"-12px"}},m=e=>{let{children:n,open:r,title:m,showSpinner:p=!1,containerStyles:g,onClose:h}=e,f=()=>{h()};return(0,i.jsx)(o.Z,{onClose:f,open:r,children:(0,i.jsxs)(a.Z,{sx:g,children:[(0,i.jsxs)(t.Z,{sx:{textAlign:"center",marginTop:"16px"},children:[m,(0,i.jsx)(s.Z,{onClick:h,sx:{position:"absolute",right:"8px",top:"8px",color:e=>e.palette.grey[500]},children:(0,i.jsx)(d.Z,{})})]}),(0,i.jsx)(l.Z,{children:p?(0,i.jsx)(c.Z,{sx:u.spinner}):n})]})})}},28252:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return F}});var i=r(85893),t=r(67294),o=r(99226),a=r(87952),s=r(15861),l=r(26447),c=r(86886),d=r(7631),u=r(63730),m=r(6882),p=r(81010),g=r(45013),h=r(23918),f=r(51049),x=r(74598),v=r(86501),j=r(81134),Z=r(22120),z=r(11163),P=r(25675),y=r.n(P),k=r(94054),C=r(50135),b=r(31425),w=r(83321),S=r(87536),I=r(16310),M=r(47533),E=r(9354);let N={name:"",description:""},O=e=>{let{t:n}=(0,Z.$G)(),r=(0,d.m)(),a=(0,t.useMemo)(()=>I.Ry().shape({name:I.Z_().required(n("adminPage.organizations.errorMessages.invalidName")),description:I.Z_()}),[n]),{control:s,setError:l,reset:u,handleSubmit:m,watch:p,formState:{errors:g}}=(0,S.cI)({defaultValues:N,mode:"onBlur",resolver:(0,M.X)(a)}),h=(0,t.useCallback)(()=>{u(N),e.onClose()},[]),x=async i=>{try{let e=await r.organization.save(i);if(!e.ok)throw Error(e.error.message);v.ZP.success(n("adminPage.organizations.organizationAdded"),{duration:5e3})}catch(e){v.ZP.error(n("adminPage.organizations.errorMessages.createOrganizationFailed"),{duration:5e3}),console.error("Failed to create organization. Error: ",e)}finally{var t;h(),u(N),null===(t=e.onComplete)||void 0===t||t.call(e)}};return(0,i.jsx)(E.o,{open:e.open,onClose:h,title:n("adminPage.organizations.createOrganization"),children:(0,i.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:m(x),children:(0,i.jsxs)(o.Z,{sx:{marginTop:2},children:[(0,i.jsxs)(c.ZP,{container:!0,columnSpacing:2,rowGap:5,direction:"row",children:[(0,i.jsx)(c.ZP,{item:!0,xs:12,children:(0,i.jsx)(k.Z,{fullWidth:!0,children:(0,i.jsx)(S.Qr,{name:"name",control:s,rules:{required:!0},render:e=>{var r;let{field:{value:t,onChange:o}}=e;return(0,i.jsx)(C.Z,{label:n("adminPage.organizations.nameInput"),value:t,error:!!g.name,helperText:!!g.name&&(null===(r=g.name)||void 0===r?void 0:r.message),onChange:e=>{o(e.target.value)}})}})})}),(0,i.jsx)(c.ZP,{item:!0,xs:12,md:12,children:(0,i.jsx)(k.Z,{fullWidth:!0,children:(0,i.jsx)(S.Qr,{name:"description",control:s,render:e=>{var r;let{field:{value:t,onChange:o}}=e;return(0,i.jsx)(C.Z,{label:n("adminPage.organizations.descriptionInput"),value:t,multiline:!0,error:!!g.description,helperText:!!g.description&&(null===(r=g.description)||void 0===r?void 0:r.message),onChange:e=>{o(e.target.value)}})}})})})]}),(0,i.jsxs)(b.Z,{className:"dialog-actions-dense",sx:{marginTop:4},children:[(0,i.jsx)(w.Z,{onClick:h,children:n("common.cancel")}),(0,i.jsx)(f.KM,{type:"submit",children:n("common.confirm")})]})]})})})},_={name:"",description:"",userIds:[]},T=e=>{let{t:n}=(0,Z.$G)(),r=(0,d.m)(),a=(0,t.useMemo)(()=>I.Ry().shape({id:I.Rx().required(),name:I.Z_().required(n("adminPage.organizations.errorMessages.invalidName")),description:I.Z_(),userIds:I.IX()}),[n]),{control:s,setError:l,reset:u,handleSubmit:m,watch:p,formState:{errors:g}}=(0,S.cI)({defaultValues:_,mode:"onBlur",resolver:(0,M.X)(a)}),h=(0,t.useCallback)(()=>{u(_),e.onClose()},[]),x=async i=>{try{let t=await r.organization.update({...i,id:e.organization.id});if(!t.ok)throw Error(t.error.message);v.ZP.success(n("adminPage.organizations.organizationUpdated"),{duration:5e3})}catch(e){v.ZP.error(n("adminPage.organizations.errorMessages.editOrganizationFailed"),{duration:5e3}),console.error("Failed to edit organization. Error: ",e)}finally{var t;h(),u(_),null===(t=e.onComplete)||void 0===t||t.call(e)}};return(0,t.useEffect)(()=>
1{if(e.open){let n=async()=>{var n;let i=await r.organization.get(e.organization.id);if(!i.ok)throw Error(i.error.message);let t=i.data;u({...t,userIds:null===(n=t.userOrganizationMemberships)||void 0===n?void 0:n.map(e=>{var n;return null===(n=e.user)||void 0===n?void 0:n.id})})};n()}},[e.open,u,e.organization]),(0,i.jsx)(E.o,{open:e.open,onClose:h,title:n("adminPage.organizations.editOrganization"),children:(0,i.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:m(x),children:(0,i.jsxs)(o.Z,{sx:{marginTop:2},children:[(0,i.jsxs)(c.ZP,{container:!0,columnSpacing:2,rowGap:5,direction:"row",children:[(0,i.jsx)(c.ZP,{item:!0,xs:12,md:6,children:(0,i.jsx)(k.Z,{fullWidth:!0,children:(0,i.jsx)(S.Qr,{name:"name",control:s,rules:{required:!0},render:e=>{var r;let{field:{value:t,onChange:o}}=e;return(0,i.jsx)(C.Z,{label:n("adminPage.organizations.nameInput"),value:t,error:!!g.name,helperText:!!g.name&&(null===(r=g.name)||void 0===r?void 0:r.message),onChange:e=>{o(e.target.value)}})}})})}),(0,i.jsx)(c.ZP,{item:!0,xs:12,md:12,children:(0,i.jsx)(k.Z,{fullWidth:!0,children:(0,i.jsx)(S.Qr,{name:"description",control:s,render:e=>{var r;let{field:{value:t,onChange:o}}=e;return(0,i.jsx)(C.Z,{label:n("adminPage.organizations.descriptionInput"),value:t,multiline:!0,error:!!g.description,helperText:!!g.description&&(null===(r=g.description)||void 0===r?void 0:r.message),onChange:e=>{o(e.target.value)}})}})})})]}),(0,i.jsxs)(b.Z,{className:"dialog-actions-dense",sx:{marginTop:4},children:[(0,i.jsx)(w.Z,{onClick:h,children:n("common.cancel")}),(0,i.jsx)(f.KM,{type:"submit",children:n("common.save")})]})]})})})},R=()=>{let e=(0,d.m)(),n=(0,z.useRouter)(),{settings:r}=(0,h.r)(),[g,P]=(0,t.useState)(!0),[k,C]=(0,t.useState)([]),[b,w]=(0,t.useState)(),[S,I]=(0,t.useState)([]),[M,E]=(0,t.useState)({open:!1}),[N,_]=(0,t.useState)({open:!1,organization:{}}),{showConfirmation:R}=(0,j.p)(),{t:F}=(0,Z.$G)(),G=()=>(0,i.jsx)(y(),{src:x.Z,alt:"BookPass",width:24,height:24}),V=(0,t.useMemo)(()=>[{flex:.3,minWidth:100,field:"organization",headerName:F("common.organizations"),renderCell:e=>{let{row:r}=e;return(0,i.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",cursor:"pointer",width:"100%"},onClick:()=>{n.push("organizations/".concat(r.id))}
1,children:[(0,i.jsx)(a.Z,{sx:{width:"1.875rem",height:"1.875rem",borderRadius:5,fontSize:18},children:function(e){let n=e.split(" "),r=[];for(let e of n)e.length>0&&r.push(e[0].toUpperCase());let i=r.slice(0,2).join("");return i}(r.name||"")}),(0,i.jsx)(o.Z,{sx:{display:"flex",alignItems:"flex-start",flexDirection:"column",ml:4},children:(0,i.jsx)(s.Z,{variant:"subtitle1",children:r.name})})]})}},{flex:.1,minWidth:90,sortable:!1,field:"actions",headerName:F("adminPage.organizations.actionsColumnLabel"),renderCell:e=>{let{row:n}=e;return(0,i.jsx)(o.Z,{sx:{display:"flex",alignItems:"center"},children:(0,i.jsx)(p.Z,{iconProps:{fontSize:20},iconButtonProps:{size:"small"},menuProps:{sx:{"& .MuiMenuItem-root svg":{mr:2}}},options:[{text:F("adminPage.organizations.editButtonLabel"),icon:(0,i.jsx)(u.Z,{icon:"mdi:edit",fontSize:20}),menuItemProps:{onClick:()=>{D(n)}}},{text:F("adminPage.organizations.deleteButtonLabel"),icon:(0,i.jsx)(u.Z,{icon:"mdi:delete",fontSize:20,color:"red"}),menuItemProps:{onClick:()=>{B(n.id)}}}]})})}}],[F]),B=async n=>{if(n)try{let r=await R({title:F("adminPage.organizations.deleteOrganizationDialogTitle"),message:F("adminPage.organizations.deleteOrganizationDialogDescription")});if(!r)return;let i=await e.organization.delete(n);if(!i.ok)throw Error(i.error.message);v.ZP.success(F("adminPage.organizations.organizationDeleted"),{duration:5e3}),L()}catch(e){console.error("Failed to delete organization. Error: ",e),v.ZP.error(F("adminPage.organizations.errorMessages.deleteOrganizationFailed"),{duration:5e3})}},D=(0,t.useCallback)(e=>{_({open:!0,organization:e})},[]),$=(0,t.useCallback)(()=>{_({open:!1,organization:{}})},[]),U=(0,t.useCallback)(()=>{E({open:!1})},[]),A=(0,t.useCallback)(()=>{E({open:!0})},[]),L=async()=>{try{let{data:n}=await e.organization.search();C(n)}catch(e){console.error(e)}finally{P(!1)}};return((0,t.useEffect)(()=>{L()},[]),g)?(0,i.jsx)("div",{children:"Loading..."}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(f.Kk,{variant:"outlined",color:"secondary",startIcon:(0,i.jsx)(G,{}),onClick:A,children:F("adminPage.organizations.createOrganization")}),(0,i.jsx)(l.Z,{spacing:3,flexGrow:1,children:(0,i.jsx)(c.ZP,{container:!0,flexGrow:1,children:(0,i.jsx)(c.ZP,{item:!0,xs:12,md:12,children:(0,i.jsx)(o.Z,{sx:{flexGrow:1,width:"100%",height:"100%",backgroundColor:"background.paper"},children:(0,i.jsx)(m._,{style:{minHeight:"70vh"},columns:V,rows:k,disableRowSelectionOnClick:!0,pageSizeOptions:[7,10,25,50]})})})})}),(0,i.jsx)(O,{...M,onClose:U,onComplete:L}),(0,i.jsx)(T,{...N,onClose:$,onComplete:L})]})};R.acl={action:g.H.Read,subject:g.D.AdminPage};var F=R},47533:function(e,n,r){"use strict";r.d(n,{X:function(){return s}});var i=r(87536),t=function(e,n,r){if(e&&"reportValidity"in e){var t=(0,i.U2)(r,n);e.setCustomValidity(t&&t.message||""),e.reportValidity()}},o=function(e,n){var r=function(r){var i=n.fields[r];i&&i.ref&&"reportValidity"in i.ref?t(i.ref,r,e):i.refs&&i.refs.forEach(function(n){return t(n,r,e)})};for(var i in n.fields)r(i)}
1,a=function(e,n){n.shouldUseNativeValidation&&o(e,n);var r={};for(var t in e){var a=(0,i.U2)(n.fields,t);(0,i.t8)(r,t,Object.assign(e[t]||{},{ref:a&&a.ref}))}return r},s=function(e,n,r){return void 0===n&&(n={}),void 0===r&&(r={}),function(t,s,l){try{return Promise.resolve(function(i,a){try{var c=(n.context,Promise.resolve(e["sync"===r.mode?"validateSync":"validate"](t,Object.assign({abortEarly:!1},n,{context:s}))).then(function(e){return l.shouldUseNativeValidation&&o({},l),{values:r.raw?t:e,errors:{}}}))}catch(e){return a(e)}return c&&c.then?c.then(void 0,a):c}(0,function(e){var n;if(!e.inner)throw e;return{values:{},errors:a((n=!l.shouldUseNativeValidation&&"all"===l.criteriaMode,(e.inner||[]).reduce(function(e,r){if(e[r.path]||(e[r.path]={message:r.message,type:r.type}),n){var t=e[r.path].types,o=t&&t[r.type];e[r.path]=(0,i.KN)(r.path,n,e,r.type,o?[].concat(o,r.message):r.message)}return e},{})),l)}}))}catch(e){return Promise.reject(e)}}}}},function(e){e.O(0,[6886,2395,135,3420,6310,4386,4277,9774,2888,179],function(){return e(e.s=77654)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.