1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4476],{81010:function(e,n,i){var r=i(85893),t=i(67294),o=i(41664),l=i.n(o),s=i(99226),a=i(38333),d=i(67720),c=i(18972),u=i(93946),x=i(63730),h=i(23918);let p=e=>{let{children:n,option:i}=e;return i.href?(0,r.jsx)(s.Z,{component:l(),href:i.href,...i.linkProps,sx:{px:4,py:1.5,width:"100%",display:"flex",color:"inherit",alignItems:"center",textDecoration:"none"},children:n}):(0,r.jsx)(r.Fragment,{children:n})},m=e=>{let{icon:n,options:i,menuProps:o,iconProps:l,leftAlignMenu:s,iconButtonProps:m}=e,[f,j]=(0,t.useState)(null),{settings:Z}=(0,h.r)(),{direction:v}=Z,g=e=>{j(e.currentTarget)},y=()=>{j(null)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.Z,{"aria-haspopup":"true",onClick:g,...m,children:n||(0,r.jsx)(x.Z,{icon:"mdi:dots-vertical",...l})}),(0,r.jsx)(a.Z,{keepMounted:!0,anchorEl:f,onClose:y,open:!!f,...!s&&{anchorOrigin:{vertical:"bottom",horizontal:"ltr"===v?"right":"left"},transformOrigin:{vertical:"top",horizontal:"ltr"===v?"right":"left"}},...o,children:i.map((e,n)=>"string"==typeof e?(0,r.jsx)(c.Z,{onClick:y,children:e},n):"divider"in e?e.divider&&(0,r.jsx)(d.Z,{...e.dividerProps},n):(0,r.jsx)(c.Z,{...e.menuItemProps,...e.href&&{sx:{p:0}},onClick:n=>{y(),e.menuItemProps&&e.menuItemProps.onClick&&e.menuItemProps.onClick(n)},children:(0,r.jsxs)(p,{option:e,children:[e.icon?e.icon:null,e.text]})},n))})]})};n.Z=m},18152:function(e,n,i){i.d(n,{Rs:function(){return c},XJ:function(){return u},tr:function(){return o},v3:function(){return a},xH:function(){return d}});var r=i(85893),t=i(85321);let o={container:{hidden:{opacity:1,scale:0},visible:{opacity:1,scale:1,transition:{delayChildren:.05,staggerChildren:.05}}},item:{hidden:{y:20,opacity:0},visible:{y:0,opacity:1}}},l={containerVariants:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.05}}},cardVariants:{hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.2}}}},s={scale:.85,borderRadius:"100%"},a=e=>(0,r.jsx)(t.E.div,{variants:l.containerVariants,initial:"hidden",animate:"visible",children:e.children}),d=e=>(0,r.jsx)(t.E.div,{variants:e.variants||l.cardVariants,children:e.children}),c=e=>(0,r.jsx)(t.E.div,{whileTap:s,children:e.children}),u=e=>(0,r.jsx)(t.E.div,{...e,initial:{scale:.9},animate:{scale:1},transition:{type:"spring",stiffness:260,damping:20},children:e.children})},54476:function(e,n,i){i.d(n,{Z:function(){return z}});var r=i(85893),t=i(2734),o=i(98396),l=i(77533),s=i(93946),a=i(99226),d=i(67294),c=i(7631),u=i(36599),x=i(7921),h=i(77451),p=i(9601),m=i(17494),f=i(72162),j=i(51221),Z=i(55008),v=i(26447),g=i(50135),y=i(50480),w=i(69368),b=i(15861),k=i(87952),C=i(66242),P=i(44267),I=i(67218),S=i(51049),J=i(86501),T=i(18152),F=i(63730),D=i(81010),E=i(22120);let N=e=>{let{user:n}=(0,I.a)(),i=(0,c.m)(),[o,l]=d.useState([]),[s,C]=d.useState(""),[P,N]=d.useState(!1),z=(0,t.Z)(),{t:W}=(0,E.$G)(),A=async()=>{if(!s)return;let n=await i.journal.save({comment:s,studentId:e.user.id,adminOnly:P});if(!n.ok){J.ZP.error(W("components.studentJournal.failedToSubmitJournal")),console.error("Failed to submit journal",n.error);return}J.ZP.success(W("components.studentJournal.journalSubmitted")),_(),C(""),N(!1)},R=async e=>{try{let n=await i.journal.delete(e);if(!n.ok){J.ZP.error(W("components.studentJournal.failedToDeleteJournal")),console.error("Failed to delete journal",n.error);return}J.ZP.success(W("components.studentJournal.journalDeleted")),_()}catch(e){J.ZP.error(W("components.studentJournal.failedToDeleteJournal")),console.error("Failed to delete journal",e)}},V=async(e,n)=>{try{let r=await i.journal.pinned(e,{pinned:!n});if(!r.ok){J.ZP.error(W("components.studentJournal.failedToPinJournal")),console.error("Failed to pin journal",r.error);return}J.ZP.success(W("components.studentJournal.journalPinned")),_()}catch(e){J.ZP.error(W("components.studentJournal.failedToPinJournal")),console.error("Failed to pin journal",e)}},_=async()=>{let n=await i.journal.getStudentEntries(e.user.id);if(!n.ok){console.error("Failed to fetch journal");return}let r=n.data.sort((e,n)=>e.adminOnly&&!n.adminOnly?-1:!e.adminOnly&&n.adminOnly?1:e.pinned&&!n.pinned?-1:!e.pinned&&n.pinned?1:new Date(n.created).getTime()-new Date(e.created).getTime());l(r)};return d.useEffect(()=>{if(e.user.id)return _(),()=>{l([])}},[e.user]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(O,{user:e.user}),(0,r.jsxs)(v.Z,{direction:"row",spacing:2,sx:{marginTop:"16px"},children:[(0,r.jsx)(g.Z,{multiline:!0,fullWidth:!0,value:s,onChange:e=>C(e.target.value)}),(0,r.jsx)(T.Rs,{children:(0,r.jsx)(S.KM,{style:{height:"100%"},onClick:A,disabled:!s,children:"Spara"})})]}),(null==n?void 0:n.role)===Z.i4.Admin&&(0,r.jsx)(y.Z,{label:"Adminkommentar",control:(0,r.jsx)(w.Z,{checked:P,onChange:e=>N(e.target.checked)})}),(0,r.jsxs)(u.Z,{sx:{["& .".concat(x.Z.root,":before")]:{flex:0,padding:0}},children:[0===o.length&&(0,r.jsxs)(h.Z,{children:[(0,r.jsx)(p.Z,{children:(0,r.jsx)(m.Z,{})}),(0,r.jsx)(f.Z,{children:(0,r.jsx)(b.Z,{variant:"body1",component:"span",children:"Inga inl\xe4gg \xe4n"})})]}),o.map(e=>{var i,t,o,l,s,d;return(0,r.jsxs)(h.Z,{children:[(0,r.jsxs)(p.Z,{children:[(0,r.jsx)(m.Z,{children:(0,r.jsx)(k.Z,{alt:"".concat(null===(i=e.author)||void 0===i?void 0:i.firstName," ").concat(null===(t=e.author)||void 0===t?void 0:t.lastName)||"",src:(null===(o=e.author)||void 0===o?void 0:null===(l=o.avatar)||void 0===l?void 0:l.src)||"",sx:{width:"1.875rem",he
1ight:"1.875rem",borderRadius:5}})}),(0,r.jsx)(j.Z,{})]}),(0,r.jsx)(f.Z,{children:(0,r.jsxs)(v.Z,{direction:"row",justifyContent:"space-between",children:[(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(v.Z,{direction:"column",justifyContent:"space-between",children:[(0,r.jsxs)(a.Z,{display:"flex",children:[(0,r.jsxs)(b.Z,{variant:"h6",component:"span",children:[null===(s=e.author)||void 0===s?void 0:s.firstName," ",null===(d=e.author)||void 0===d?void 0:d.lastName]}),e.pinned&&(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",marginLeft:2},children:(0,r.jsx)(F.Z,{icon:"mdi:pin",fontSize:20,color:z.palette.warning.main})}),e.adminOnly&&(0,r.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",marginLeft:2},children:(0,r.jsx)(F.Z,{icon:"mdi:shield-crown",fontSize:20,color:z.palette.info.dark})})]}),(0,r.jsx)(b.Z,{variant:"caption",children:new Date(e.created).toLocaleString()})]}),(0,r.jsx)(b.Z,{variant:"body1",component:"span",children:e.comment})]}),(0,r.jsx)(D.Z,{iconButtonProps:{sx:{width:"48px"}},options:[{text:e.pinned?"Avf\xe4st inl\xe4gg":"F\xe4st inl\xe4gg",icon:(0,r.jsx)(F.Z,{icon:"mdi:pin",fontSize:20}),menuItemProps:{onClick:async()=>{V(e.id,e.pinned)}}},((null==n?void 0:n.role)===Z.i4.Admin||e.authorId===(null==n?void 0:n.id))&&{text:"Ta bort",icon:(0,r.jsx)(F.Z,{icon:"mdi:delete",fontSize:20,color:"red"}),menuItemProps:{onClick:async()=>{R(e.id)}}}].filter(Boolean)})]})})]},e.id)})]})]})},O=e=>{var n,i;return(0,r.jsx)(C.Z,{children:(0,r.jsx)(P.Z,{sx:{display:"flex",flexDirection:"column",flexWrap:{xs:"wrap",md:"nowrap"}},children:(0,r.jsx)(a.Z,{sx:{width:"100%",display:"flex",mt:4,alignItems:"flex-end",flexWrap:["wrap","nowrap"],justifyContent:["center","space-between"]},children:(0,r.jsxs)(a.Z,{sx:{mb:[6,0],display:"flex",flexDirection:"column",alignItems:["center","flex-start"]},children:[(0,r.jsx)(b.Z,{variant:"h5",sx:{mb:4},children:(null===(n=e.user)||void 0===n?void 0:n.firstName)+" "+(null===(i=e.user)||void 0===i?void 0:i.lastName)}),(0,r.jsx)(a.Z,{sx:{display:"flex",flexWrap:"wrap",justifyContent:["center","flex-start"]},children:(0,r.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center","& svg":{mr:1,color:"text.secondary"}},children:[(0,r.jsx)(F.Z,{icon:"mdi:email-outline"}),(0,r.jsx)(b.Z,{sx:{ml:1,color:"text.secondary",fontWeight:600},children:e.user.email})]})})]})})})})},z=e=>{let n=(0,t.Z)(),i=(0,o.Z)(n.breakpoints.up("md"),{defaultMatches:!0});return(0,r.jsxs)(l.ZP,{anchor:"right",open:e.open,onClose:e.onClose,PaperProps:{sx:{width:i?"560px":"100%"}},children:[(0,r.jsx)(s.Z,{sx:{alignSelf:"flex-end"},onClick:e.onClose,children:(0,r.jsx)(F.Z,{icon:"mdi:close",fontSize:20})}),(0,r.jsx)(a.Z,{sx:{padding:"20px",backgroundColor:"#fff",height:"100%"},children:e.user&&(0,r.jsx)(N,{user:e.user})})]})}}}]);
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.