1"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[7778],{77778:(e,s,a)=>{a.r(s),a.d(s,{default:()=>F});var t=a(65043),l=a(34218),r=a(8729),i=a(83256),c=a(13390),n=a(91140),d=a(5949),o=a(92264),x=a(55830),m=a(68931),h=a(27033),j=a(82054),u=a(76245),p=a(22024),g=a(37719),v=a(65469),N=a(92382),b=a(15711),y=a(75088),f=a(35087),w=a(41680),A=a(64830),E=a(50516),C=a(94805),I=a(39292),k=a(42489),S=a(44919),P=a(14459),L=a(7118),R=a(20073),D=a(65598),M=a(70579);const Z={summarize:{icon:w.A,color:"blue",label:"Summarize"},rewrite:{icon:E.A,color:"purple",label:"Rewrite"},classify:{icon:h.A,color:"green",label:"Classify"},extract:{icon:f.A,color:"amber",label:"Extract"},compare:{icon:S.A,color:"indigo",label:"Compare"},search_retrieve:{icon:I.A,color:"cyan",label:"Search & Retrieve"},draft:{icon:w.A,color:"pink",label:"Draft"}},B={Accept:{icon:j.A,color:"green",label:"Accepted"},Reject:{icon:u.A,color:"red",label:"Rejected"},Edit:{icon:w.A,color:"blue",label:"Edited"},Escalate:{icon:g.A,color:"purple",label:"Escalated"}},F=()=>{var e,s,a,u,f;const{orgId:w,labId:E}=(0,l.g)(),S=(0,l.Zp)(),{toast:F}=(0,x.dj)(),{user:$}=(0,r.A)(),T=w||(null===$||void 0===$?void 0:$.orgId),U=["TenantAdmin","Instructor","SuperAdmin"].includes(null===$||void 0===$?void 0:$.role),[W,z]=(0,t.useState)(null),[Y,q]=(0,t.useState)(null),[O,G]=(0,t.useState)(null),[H,_]=(0,t.useState)(null),[J,K]=(0,t.useState)(null),[Q,V]=(0,t.useState)(!0),[X,ee]=(0,t.useState)(!1),[se,ae]=(0,t.useState)(""),[te,le]=(0,t.useState)(null),[re,ie]=(0,t.useState)(!1),[ce,ne]=(0,t.useState)(null),[de,oe]=(0,t.useState)(!1);(0,t.useEffect)(()=>{T&&E&&xe()},[T,E]);const xe=async()=>{try{V(!0);const e=await m.A.get("/orgs/".concat(T,"/epm/labs/").concat(E,"/results"));if(q(e.data),z({title:e.data.labTitle,id:E}),U){const e=await m.A.get("/orgs/".concat(T,"/epm/labs/").concat(E,"/learners"));G(e.data)}}catch(a){var e,s;console.error("Error fetching EPM results:",a),F({title:"Error",description:(null===(e=a.response)||void 0===e||null===(s=e.data)||void 0===s?void 0:s.detail)||"Failed to load EPM results",variant:"destructive"})}finally{V(!1)}},me=e=>{const s=Z[e]||{icon:R.A,color:"gray",label:e},a=s.icon;return(0,M.jsxs)(d.E,{variant:"outline",className:"bg-".concat(s.color,"-50 text-").concat(s.color,"-700 border-").concat(s.color,"-200"),children:[(0,M.jsx)(a,{className:"w-3 h-3 mr-1"}),s.label]})},he=e=>{const s=B[e]||{icon:y.A,color:"gray",label:e},a=s.icon;return(0,M.jsxs)(d.E,{variant:"outline",className:"bg-".concat(s.color,"-50 text-").concat(s.color,"-700 border-").concat(s.color,"-200"),children:[(0,M.jsx)(a,{className:"w-3 h-3 mr-1"}),s.label]})},je=(null===O||void 0===O||null===(e=O.learners)||void 0===e?void 0:e.filter(e=>{var s,a;const t=se.toLowerCase();return(null===(s=e.learnerName)||void 0===s?void 0:s.toLowerCase().includes(t))||(null===(a=e.learnerEmail)||void 0===a?void 0:a.toLowerCase().includes(t))}))||[];return Q?(0,M.jsx)(i.A,{children:(0,M.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,M.jsx)(p.A,{className:"w-8 h-8 animate-spin"})})}):(0,M.jsx)(i.A,{children:(0,M.jsxs)("div",{className:"p-6 max-w-7xl mx-auto space-y-6",children:[(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)("div",{className:"flex items-center gap-4",children:[(0,M.jsxs)(c.$,{variant:"ghost",onClick:()=>S(-1),"data-testid":"btn-back",children:[(0,M.jsx)(v.A,{className:"w-4 h-4 mr-2"}),"Back"]}),(0,M.jsxs)("div",{children:[(0,M.jsxs)("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[(0,M.jsx)(k.A,{className:"w-6 h-6 text-purple-600"}),(null===W||void 0===W?void 0:W.title)||"EPM Lab"]}),(0,M.jsx)("p",{className:"text-sm text-gray-600",children:"Enterprise Productivity Mode Results"})]})]}),(0,M.jsx)(d.E,{variant:"outline",className:"bg-purple-50 text-purple-700 border-purple-200",children:"EPM Lab"})]}),Y&&(0,M.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[(0,M.jsx)(n.Zp,{children:(0,M.jsx)(n.Wu,{className:"pt-6",children:(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)("div",{children:[(0,M.jsx)("p",{className:"text-sm text-gray-500",children:"Total Executions"}),(0,M.jsx)("p",{className:"text-2xl font-bold",children:Y.overview.totalExecutions}),(0,M.jsxs)("p",{className:"text-xs text-gray-400",children:["Max: ",Y.config.maxExecutionsPerLab]}
1)]}),(0,M.jsx)(A.A,{className:"w-8 h-8 text-blue-500"})]})})}),U&&(0,M.jsx)(n.Zp,{children:(0,M.jsx)(n.Wu,{className:"pt-6",children:(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)("div",{children:[(0,M.jsx)("p",{className:"text-sm text-gray-500",children:"Unique Learners"}),(0,M.jsx)("p",{className:"text-2xl font-bold",children:Y.overview.uniqueLearners})]}),(0,M.jsx)(L.A,{className:"w-8 h-8 text-green-500"})]})})}),(0,M.jsx)(n.Zp,{children:(0,M.jsx)(n.Wu,{className:"pt-6",children:(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)("div",{children:[(0,M.jsx)("p",{className:"text-sm text-gray-500",children:"Capabilities Used"}),(0,M.jsx)("p",{className:"text-2xl font-bold",children:(null===(s=Y.overview.capabilityBreakdown)||void 0===s?void 0:s.length)||0})]}),(0,M.jsx)(R.A,{className:"w-8 h-8 text-purple-500"})]})})}),(0,M.jsx)(n.Zp,{children:(0,M.jsx)(n.Wu,{className:"pt-6",children:(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)("div",{children:[(0,M.jsx)("p",{className:"text-sm text-gray-500",children:"Decisions Made"}),(0,M.jsx)("p",{className:"text-2xl font-bold",children:Object.values(Y.overview.decisionBreakdown||{}).reduce((e,s)=>e+s,0)})]}),(0,M.jsx)(j.A,{className:"w-8 h-8 text-green-500"})]})})})]}),(null===Y||void 0===Y||null===(a=Y.overview)||void 0===a||null===(u=a.capabilityBreakdown)||void 0===u?void 0:u.length)>0&&(0,M.jsxs)(n.Zp,{children:[(0,M.jsx)(n.aR,{children:(0,M.jsxs)(n.ZB,{className:"flex items-center gap-2",children:[(0,M.jsx)(h.A,{className:"w-5 h-5"}),"Capability Usage"]})}),(0,M.jsx)(n.Wu,{children:(0,M.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Y.overview.capabilityBreakdown.map(e=>(0,M.jsxs)("div",{className:"bg-gray-50 rounded-lg p-4",children:[(0,M.jsx)("div",{className:"flex items-center gap-2 mb-2",children:me(e.capability)}),(0,M.jsx)("div",{className:"text-2xl font-bold",children:e.count}),(0,M.jsxs)("div",{className:"text-xs text-gray-500",children:["Cost: $",e.cost.toFixed(4)]})]},e.capability))})})]}),U&&O&&(0,M.jsxs)(n.Zp,{children:[(0,M.jsx)(n.aR,{children:(0,M.jsxs)("div",{className:"flex items-center justify-between",children:[(0,M.jsxs)(n.ZB,{className:"flex items-center gap-2",children:[(0,M.jsx)(L.A,{className:"w-5 h-5"}),"Learner Progress (",O.totalLearners,")"]}),(0,M.jsxs)("div",{className:"relative w-64",children:[(0,M.jsx)(I.A,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400"}),(0,M.jsx)(o.p,{placeholder:"Search learners...",value:se,onChange:e=>ae(e.target.value),className:"pl-10"})]})]})}),(0,M.jsx)(n.Wu,{children:0===je.length?(0,M.jsxs)("div",{className:"text-center py-8 text-gray-500",children:[(0,M.jsx)(L.A,{className:"w-12 h-12 mx-auto mb-4 text-gray-300"}),(0,M.jsx)("p",{children:"No learners have used this EPM lab yet."})]}):(0,M.jsx)("div",{className:"space-y-3",children:je.map(e=>(0,M.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,M.jsxs)("div",{className:"p-4 flex items-center justify-between cursor-pointer hover:bg-gray-50",onClick:()=>{le(te===e.learnerId?null:e.learnerId),te!==e.learnerId&&(async e=>{var s;if((null===J||void 0===J||null===(s=J.learner)||void 0===s?void 0:s.id)!==e)try{ee(!0);const s=await m.A.get("/orgs/".concat(T,"/epm/labs/").concat(E,"/learners/").concat(e,"/history"));K(s.data),_(e)}catch(a){console.error("Error fetching learner history:",a),F({title:"Error",description:"Failed to load learner history",variant:"destructive"})}finally{ee(!1)}})(e.learnerId)},children:[(0,M.jsxs)("div",{className:"flex items-center gap-4",children:[(0,M.jsx)("div",{className:"w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center",children:(0,M.jsx)(P.A,{className:"w-5 h-5 text-purple-600"})}),(0,M.jsxs)("div",{children:[(0,M.jsx)("div",{className:"font-medium",children:e.learnerName||"Unknown"}),(0,M.jsx)("div",{className:"text-sm text-gray-500",children:e.learnerEmail})]})]}),(0,M.jsxs)("div",{className:"flex items-center gap-6",children:[(0,M.jsxs)("div",{className:"text-center",children:[(0,M.jsxs)("div",{className:"text-lg font-semibold",children:[e.totalExecutions,"/",e.maxExecutions]}),(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"Executions"})]}),(0,M.jsxs)("div",{className:"text-center",children:[(0,M.jsxs)("div",{className:"text-lg font-semibold text-green-600",children:["$",e.totalCost.toFixed(2)]}),(0,M.jsxs)("div",{className:"text-xs text-gray-500",children:["of $",e.costCeiling]})]}),(0,M.jsxs)("div",{className:"text-center",children:[(0,M.jsx)("div",{className:"text-lg font-semibold text-purple-600",children:e.decisions}),(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"Decisions"})]}),0===e.remainingExecutions?(0,M.jsx)(d.E,{variant:"outline",className:"bg-red-50 text-red-700 border-red-200",children:"Limit Reached"}):e.remainingBudget<1?(0,M.jsx)(d.E,{variant:"outline",className:"bg-amber-50 text-amber-700 border-amber-200",children:"Low Budget"}):(0,M.jsx)(d.E,{variant:"outline",className:"bg-green-50 text-green-700 border-green-200",children:"Active"}),te===e.learnerId?(0,M.jsx)(b.A,{className:"w-5 h-5 text-gray-400"}):(0,M.jsx)(N.A,{className:"w-5 h-5 text-gray-400"})]})]}),te===e.learnerId&&(0,M.jsx)("div",{className:"border-t bg-gray-50 p-4",children:X&&H===e.learnerId?(0,M.jsx)("div",{className:"flex justify-center py-8",children:(0,M.jsx)(p.A,{className:"w-6 h-6 animate-spin"})}):J&&H===e.learnerId?(0,M.jsxs)("div",{className:"space-y-4",children:[(0,M.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,M.jsxs)("div",{className:"bg-white rounded-lg p-3 border",children:[(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"Capabilities Used"}),(0,M.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:J.summary.capabilitiesUsed.map(e=>(0,M.jsx)(d.E,{variant:"outline",className:"text-xs",children:e},e))})]}),(0,M.jsxs)("div",{className:"bg-white rounded-lg p-3 border",children:[(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"Decisions Made"}),(0,M.jsx)("div",{className:"text-xl font-semibold",children:J.summary.decisionsMade})]}),(0,M.jsxs)("div",{className:"bg-white rounded-lg p-3 border",children:[(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"PII Detections"}),(0,M.jsx)("div",{className:"text-xl font-semibold text-amber-600",children:J.summary.piiDetections})]}),(0,M.jsxs)("div",{className:"bg-white rounded-lg p-3 border",children:[(0,M.jsx)("div",{className:"text-xs text-gray-500",children:"Total Cost"}),(0,M.jsxs)("div",{className:"text-xl font-semibold text-green-600",children:["$",J.summary.totalCost.toFixed(4)]})]})]}),(0,M.jsxs)("div",{className:"bg-white rounded-lg border overflow-hidden",children:[(0,M.jsx)("div",{className:"px-4 py-2 bg-gray-100 border-b font-medium text-sm",children:"Recent Executions"}),(0,M.jsx)("div",{className:"max-h-64 overflow-y-auto",children:(0,M.jsxs)("table",{className:"w-full text-sm",children:[(0,M.jsx)("thead",{className:"bg-gray-50 border-b sticky top-0",children:(0,M.jsxs)("tr",{children:[(0,M.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-500",children:"Time"}),(0,M.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-500",children:"Capability"}),(0,M.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-500",children:"Decision"}),(0,M.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-500",children:"PII"}),(0,M.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-500",children:"Cost"})]})}),(0,M.jsx)("tbody",{className:"divide-y",children:J.executions.slice(0,20).map((e,s)=>(0,M.jsxs)("tr",{className:"hover:bg-gray-50",children:[(0,M.jsx)("td",{className:"px-3 py-2 text-gray-500",children:e.createdAt?new Date(e.createdAt).toLocaleStr
1ing([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"-"}),(0,M.jsx)("td",{className:"px-3 py-2",children:e.capability&&me(e.capability)}),(0,M.jsx)("td",{className:"px-3 py-2",children:e.finalDecision&&he(e.finalDecision)}),(0,M.jsx)("td",{className:"px-3 py-2",children:e.piiDetected?(0,M.jsxs)(d.E,{variant:"outline",className:"bg-red-50 text-red-600 border-red-200",children:[(0,M.jsx)(g.A,{className:"w-3 h-3 mr-1"}),"Yes"]}):(0,M.jsx)("span",{className:"text-gray-400",children:"-"})}),(0,M.jsxs)("td",{className:"px-3 py-2 text-gray-600",children:["$",(e.costEstimate||0).toFixed(4)]})]},s))})]})})]}),(0,M.jsx)("div",{className:"flex justify-end",children:(0,M.jsxs)(c.$,{variant:"outline",size:"sm",className:"text-red-600 hover:text-red-700 hover:bg-red-50 border-red-200",onClick:s=>{s.stopPropagation(),ne({learnerId:e.learnerId,learnerName:e.learnerName,learnerEmail:e.learnerEmail}),ie(!0)},"data-testid":"btn-reset-".concat(e.learnerId),children:[(0,M.jsx)(C.A,{className:"w-4 h-4 mr-1"}),"Reset Progress"]})})]}):(0,M.jsx)("div",{className:"text-center py-8 text-gray-500",children:"Click to load execution history"})})]},e.learnerId))})})]}),!U&&(null===Y||void 0===Y||null===(f=Y.recentExecutions)||void 0===f?void 0:f.length)>0&&(0,M.jsxs)(n.Zp,{children:[(0,M.jsx)(n.aR,{children:(0,M.jsxs)(n.ZB,{className:"flex items-center gap-2",children:[(0,M.jsx)(y.A,{className:"w-5 h-5"}),"Your Recent Executions"]})}),(0,M.jsx)(n.Wu,{children:(0,M.jsx)("div",{className:"space-y-3",children:Y.recentExecutions.map((e,s)=>(0,M.jsxs)("div",{className:"flex items-center justify-between p-4 bg-gray-50 rounded-lg",children:[(0,M.jsxs)("div",{className:"flex items-center gap-4",children:[(0,M.jsx)("div",{className:"text-sm text-gray-500",children:e.createdAt?new Date(e.createdAt).toLocaleString():"-"}),e.capability&&me(e.capability)]}),(0,M.jsxs)("div",{className:"flex items-center gap-4",children:[e.finalDecision&&he(e.finalDecision),e.piiDetected&&(0,M.jsxs)(d.E,{variant:"outline",className:"bg-amber-50 text-amber-700 border-amber-200",children:[(0,M.jsx)(g.A,{className:"w-3 h-3 mr-1"}),"PII Detected"]}),(0,M.jsxs)("span",{className:"text-sm text-gray-600",children:["$",(e.costEstimate||0).toFixed(4)]})]})]},s))})})]}),(0,M.jsx)(D.lG,{open:re,onOpenChange:ie,children:(0,M.jsxs)(D.Cf,{className:"max-w-md",children:[(0,M.jsxs)(D.c7,{children:[(0,M.jsxs)(D.L3,{className:"flex items-center gap-2 text-red-600",children:[(0,M.jsx)(g.A,{className:"w-5 h-5"}),"Reset Learner Progress"]}),(0,M.jsx)(D.rr,{children:"This action cannot be undone."})]}),(0,M.jsxs)("div",{className:"space-y-4",children:[(0,M.jsxs)("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4",children:[(0,M.jsx)("p",{className:"text-sm text-red-800",children:"You are about to reset all EPM progress for:"}),(0,M.jsx)("p",{className:"font-medium text-red-900 mt-1",children:(null===ce||void 0===ce?void 0:ce.learnerName)||(null===ce||void 0===ce?void 0:ce.learnerEmail)||"Unknown Learner"})]}),(0,M.jsxs)("div",{className:"text-sm text-gray-600 space-y-2",children:[(0,M.jsx)("p",{children:"This will permanently delete:"}),(0,M.jsxs)("ul",{className:"list-disc list-inside space-y-1 text-gray-500",children:[(0,M.jsx)("li",{children:"All EPM execution logs"}),(0,M.jsx)("li",{children:"Cost tracking data"}),(0,M.jsx)("li",{children:"Human decisions history"}),(0,M.jsx)("li",{children:"Standard lab results (if any)"})]}),(0,M.jsx)("p",{className:"mt-3 text-gray-700",children:"The learner will be able to start fresh with full execution allowance."})]})]}),(0,M.jsxs)("div",{className:"flex justify-end gap-2 mt-4",children:[(0,M.jsx)(c.$,{variant:"outline",onClick:()=>{ie(!1),ne(null)},disabled:de,children:"Cancel"}),(0,M.jsx)(c.$,{variant:"destructive",onClick:async()=>{if(ce)try{oe(!0),await m.A.delete("/orgs/".concat(T,"/labs/").concat(E,"/learners/").concat(ce.learnerId,"/progress")),F({title:"Progress Reset",description:"Successfully reset progress for ".concat(ce.learnerName||ce.learnerEmail)}),xe(),K(null),_(null),ie(!1),ne(null)}catch(a){var e,s;console.error("Error resetting progress:",a),F({title:"Reset failed",description:(null===(e=a.response)||void 0===e||null===(s=e.data)||void 0===s?void 0:s.detail)||"Failed to reset learner progress",variant:"destructive"})}finally{oe(!1)}},disabled:de,"data-testid":"btn-confirm-reset",children:de?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(p.A,{className:"w-4 h-4 mr-1 animate-spin"}),"Resetting..."]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(C.A,{className:"w-4 h-4 mr-1"}),"Reset Progress"]})})]})]})})]})})}}}]);
2//# sourceMappingURL=7778.4ee1bb06.chunk.js.map
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.