PageSourceSearch

https://app.century.tech/assets/TeacherDashboardClassMenu-CKjOfwNQ.js

js century.tech collected 2026-10-01 11:26:07 UTC 215,719 bytes, 5 lines download raw bytes

1import{j as e,c as je,h as J,o as Vs,I as zs,O as Bi,d2 as ir,D as Ua,r as l,gA as Ha,gB as Zs,gC as Xs,gD as Fi,gE as $i,gF as Gi,gG as Ui,gH as Hi,gI as Wi,gJ as Vi,R as es,e as d,L as _e,a1 as de,m as z,M as $,ae as g,H as xe,ex as or,a as St,i as He,a3 as Bs,gK as zi,gL as Qi,er as js,ad as Me,bw as ie,X as lr,bd as Ue,aF as hs,bk as Fs,bl as As,a5 as Yi,c3 as Yt,P as Wa,gM as Ki,F as Xi,eG as Ea,g6 as Ji,gN as Zi,bf as Ee,eK as Ft,v as cr,S as eo,gO as dr,gP as ur,ac as Os,gQ as gr,a_ as mr,a$ as hr,b0 as xr,bo as Kt,eH as so,gR as to,es as pr,gS as ao,aD as no,ck as ro,gT as io,b8 as $t,bs as os,W as jr,by as Va,bz as Be,ew as nt,bA as oo,bB as fr,gz as Gt,be as mt,gU as za,C as lo,eO as ua,a8 as co,ey as br,dC as Ct,gV as uo,gW as bn,dH as Qa,bc as go,bL as mo,eN as Ut,c0 as ho,et as xo,fW as po,gX as jo,bX as fo,bY as bo,bZ as So,gY as Sr,ar as yt,K as Co,dV as yo,gZ as vo,dW as Ao,bD as Io,s as Mo,av as To,ca as wo,aM as ko,bx as No,Y as Do,g_ as Eo,fL as Sn,g$ as Lo,gw as _o,f_ as Ro,dM as Po,aJ as ds,f7 as ps}from"./index-BWLcZZIp.js";import{T as Pe,R as Is,U as $e,V as ns,W as Cr,H as Ya,X as Oo,d as vt,Y as yr,Z as qo,f as Bo,S as Fo,a as $o,b as Go,u as Uo,i as Ka,_ as Ho,j as Wo,o as Xa,r as vr,v as Ar,$ as Vo,a0 as Ir,w as zo,D as Qo,a1 as Yo,a2 as Ko,k as Mr,m as Xo,a3 as Jo,a4 as Tr,a5 as Zo,a6 as el,a7 as sl,a8 as tl,a9 as al,aa as nl,ab as wr,G as La,I as rl,N as il,M as kr,O as Nr,ac as ol,ad as ll,ae as cl,s as dl,t as ul,n as gl,P as ml}from"./commonHelpers-Dqh_cdI1.js";import{W as k,K as Ms,u as Ja,T as ts,v as Xt,E as Ye,ae as At,ak as $s,a8 as hl,b$ as xl,ao as Fe,ap as Dr,aA as Jt,bL as Zt,bM as Za,G as Er,c0 as pl,br as Dt,bs as jl,Q as Je,R as ga,U as Cn,V as yn,
1X as vn,bH as fl,_ as Lr,c1 as bl,aw as Sl,y as en,z as _r,w as It,c2 as Cl,c3 as yl,F as Mt,b as U,a0 as Te,a1 as we,c4 as vl,b1 as rt,au as Es,c5 as Al,a6 as Il,M as ma,aP as An,N as ee,Y as Ml,O as In,aq as Tl,ar as wl,aa as _a,ac as kl,ab as Nl,bf as Dl,c6 as Mn,c7 as El,c8 as Ll,L as Tn,S as ha,ax as Rr,a4 as Pr,c9 as Or,ca as _l,av as Rl,Z as Pl,cb as Ol,cc as ql,at as Ze}from"./AppTemplate-DUlEOhgX.js";import{G as ft,q as qr,B as Bl,m as Br,p as Fr,l as Fl,t as wn,k as ut,A as $r,v as $l,w as Gr,O as Gl,n as Ul,o as Hl,T as Ur,x as sn,j as kn,y as Gs,z as Wl,Q as Hr,D as Wr,c as Vr,s as Us,E as Qs,F as Vl,H as zr,I as ea,J as De,M as Ys,W as Nn,K as zl,U as Ql,S as Yl,a as Kl,b as Xl}from"./Ordinal-C8Q_Z5Uu.js";import{P as sa}from"./ParentSize-B7oVNO17.js";import{a as P,w as tn,u as We,L as Ve,I as ws,C as vs,F as Qr,c as ta,d as Rs,g as rs}from"./ErrorBoundary-animBvaW.js";import{u as Ge,s as et,g as Dn,P as aa}from"./PaginationWithMixpanel-W5T3Oj0B.js";import{S as ge}from"./SwitchRow-Be9p1taf.js";import{a as Qe,T as fs,c as na,W as Se,P as Yr,b as En}from"./PaginationWidget-D71AuR26.js";import{U as ss,a as Jl,G as Ot}from"./UserSettings-po14m2CI.js";import{a as qs,T as Zl}from"./TableResponsive-BAjvZNvP.js";import{M as Js}from"./ModalBox-kzz1_R6Q.js";import{a as ec}from"./questionGroup-DAyTe1Zb.js";import{a as an}from"./c3po-DrLI-JQF.js";import{D as Kr}from"./DropdownSimpleWithComboMenu-CLUyAD4V.js";import{T as le}from"./useLogin-vwrO0p24.js";import{D as xa}from"./DropdownControls-BAtv6MPV.js";import{S as Xr,a as sc}from"./SearchBox-TYA7Hz43.js";import{P as Ps}from"./PageSubheader-DJHDgKTH.js";import{T as tc,a as ac,N as nc}from"./Tag-DNR5NBSg.js";import{T as nn}from"./TableCellLink-vGqH_O78.js";import{u as Tt}from"./useQuery-BMvceQDr.js";import{u as ra,T as rn,a as Jr,c as rc,r as ic,W as ht}from"./formik-zod-validator-CkgIN4Wh.js";import{W as on,t as Ln}from"./options-BbaknybE.js";import{P as ze,a as Ks,b as oc}from"./Panel-DD1vIJ1F.js";import{i as lc,u as cc,I as dc,S as uc,a as gc,b as mc,R as hc,V as xc,M as ia,r as pc,f as jc}from"./ViewWrittenAnswersOverlay-C0VSLF5e.js";import{F as _n}from"./FilterToggleGroup-D_z8oDLD.js";import{T as Et}from"./ToggleGroup-CdutlVfj.js";import{s as fc,e as Ra,d as Zr,q as ln,c as Ht,g as bc,t as Rn,f as Sc,n as ei,v as it,w as si,p as ti,a as Cc,k as yc,l as vc,x as Ac}from"./DoubleDash-CZz3OMrR.js";import{S as oa,C as Pn}from"./use-search-users-MjXinw0z.js";import{e as Ls,c as On,d as qn}from"./formik-fields-BRgbpsOP.js";import{D as cn,S as ai,a as Ic,b as Mc,A as Tc,M as wt,u as la}from"./useUsername-t_u_koKt.js";import{B as ni}from"./Tags-CsiVCm29.js";import{C as dn}from"./ConfirmationModal-DweRsZWc.js";import{M as wc}from"./MediaWrapper-D_GNR1wm.js";import{F as kc,a as ri,L as ot,c as ks,b as Nc}from"./LearningSlide-B4YVuSHg.js";import{T as Wt,a as Vt}from"./Tooltipped-CLq_y3pL.js";import{S as ys}from"./SelectableCard-CeScnASy.js";import{Q as ii}from"./QuantityStepper-CzJ-lKvi.js";import{u as Dc,I as Ec,b as Bn,R as Lc,L as _c,p as Rc,a as Pc,c as Oc,e as qc,d as Bc,t as Fc}from"./useAssessmentImport-DCyp4LOB.js";import{g as $c}from"./courses-D5-GS9dB.js";import{S as Fn}from"./SquaredButton-WY6aDBzu.js";import{u as Gc,b as Uc,c as Hc}from"./useTeacherGenieMixpanelTrack-DD1BfCI3.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};s.SENTRY_RELEASE={id:"[email protected]"};var t=new s.Error().stack;t&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[t]="2aab9122-d463-4d69-bd07-8a473865b028",s._sentryDebugIdIdentifier="sentry-dbid-2aab9122-d463-4d69-bd07-8a473865b028")}catch{}})();var bt;(function(s){s.DEFAULT="default",s.SMART="smart"})(bt||(bt={}));const ca=({children:s,classNameExt:t,mode:a=bt.DEFAULT,qa:n})=>e.jsx("div",{className:je("cds-add-nuggets-assignment",t&&t,a&&`cds-add-nuggets-assignment--${a}`),"data-testid":n,children:s});ca.displayName="AddNuggetsAssignment";const Wc=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-assignment-content",t&&t),"data-testid":a,children:s}),Vc=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-assignment-result",t&&t),"data-testid":a,children:s}),zc=({children:s,qa:t})=>e.jsx("div",{className:"cds-assignment-result__score","data-testid":t,children:s}),Qc=({children:s,qa:t})=>e.jsx("div",{className:"cds-assignment-result__attempt","data-testid":t,children:s}),is=Object.assign(Vc,{Attempts:Qc,Score:zc});is.Attempts.displayName="AssignmentResult.Attempts";is.Score.displayName="AssignmentResult.Score";const Yc=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-assignment-settings",t&&t),"data-testid":a,children:s}),Kc=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-button-menu-combo",t&&t),"data-testid":a,children:s}),Xc=({children:s,qa:t})=>e.jsx("div",{className:"cds-button-menu-combo__button","data-testid":t,children:s}),Jc=({children:s,isActive:t=!1,qa:a})=>e.jsx("div",{className:je("cds-button-menu-combo__menu",t&&"cds-button-menu-combo__menu--active"),"data-testid":a,children:s}),xt=Object.assign(Kc,{Button:Xc,Menu:Jc});xt.Button.displayName="ButtonMenuCombo.Button";xt.Menu.displayName="ButtonMenuCombo.Menu";var zt;(function(s){s.DEEP="deep",s.SHALLOW="shallow"})(zt||(zt={}));const Zc=({children:s,classNameExt:t,depth:a=zt.DEEP,qa:n})=>e.jsx("div",{className:je("cds-checkbox-tree",`cds-checkbox-tree--${a}`,t&&t),"data-testid":n,children:s}),ed=({children:s,qa:t,isOpen:a,onClick:n})=>e.jsx("button",{type:"button","aria-expanded":!!a,className:je("cds-checkbox-tree__control",a&&"cds-checkbox-tree__control--open"),"data-testid":t,onClick:n,children:s}),Qt=Object.assign(Zc,{Control:ed});Qt.displayName="CheckboxTree";Qt.Control.displayName="CheckboxTree.Control";const qt=({children:s,classNameExt:t,qa:a})=>e.jsx("span",{className:je("cds-completion-text",t&&t),"data-testid":a,children:s});let $n=!1;const un=s=>($n||($n=!0,console.warn('[CDS] DashedButton is deprecated and will be removed in a future major release. Use <Button variant="dashed"> instead.')),e.jsx(J,Object.assign({},s,{classNameExt:"cds-btn-dashed",children:s.children}))),sd=({children:s,classNameExt:t,qa:a})=>e.jsx("ul",{className:je("cds-nugget-preview-list",t&&t),"data-testid":a,children:s}),td=({children:s,qa:t})=>e.jsx("li",{className:"cds-nugget-preview-list__fragment","data-testid":t,children:s}),ad=({children:s,qa:t})=>e.jsx("li",{className:"cds-nugget-preview-list__item","data-testid":t,children:s}),nd=({children:s,qa:t})=>e.jsx("li",{className:"cds-nugget-preview-list__header","data-testid":t,children:s}),rd=({children:s,qa:t})=>e.jsx("li",{className:"cds-nugget-preview-list__title","data-testid":t,children:s}),ms=Object.assign(sd,{Fragment:td,Header:nd,Item:ad,Title:rd});ms.displayName="NuggetPreviewList";ms.Fragment.displayName="NuggetPreviewList.Fragment";ms.Header.displayName="NuggetPreviewList.Header";ms.Item.displayName="NuggetPreviewList.Item";ms.Title.displayName="NuggetPreviewList.Title";const id=({classNameExt:s})=>e.jsx("hr",{className:je("cds-page-divider",s&&s)}),od=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-scatter-graph-d3",t&&t),"data-testid":a,children:s});var Ie;(function(s){s.COMPLETE="complete",s.CORRECT="correct",s.SKIPPED="skipped",s.INCORRECT="incorrect"})(Ie||(Ie={}));const _s=({classNameExt:s,label:t,qa:a,type:n})=>{const r=()=>{switch(n){case Ie.COMPLETE:case Ie.CORRECT:return e.jsx(Vs,{icon:Ua,size:zs.MEDIUM});case Ie.SKIPPED:return e.jsx(Vs,{icon:ir,size:zs.MEDIUM});case Ie.INCORRECT:return e.jsx(Vs,{icon:Bi,size:zs.MEDIUM});default:return null}};return e.jsxs("div",{className:je(`cds-table-cell-result cds-table-cell-result--${n}`,s&&s),"data-testid":a,title:t,children:[e.jsx("span",{className:"cds-table-cell-result__label",children:t}),e.jsx("div",{className:"cds-table-cell-result__icon",children:e.jsx(r,{})})]})},oi=({children:s,classNameExt:t,qa:a,score:n})=>e.jsx("span",{className:je("cds-score-text",t&&t),"data-score":n,"data-testid":a,children:s}),ld=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-smart-data-gradient",t&&t),"data-testid":a,children:s});var Pa;(function(s){s.LARGE="large",s.SMALL="small"})(Pa||(Pa={}));const cd=({children:s,classNameExt:t,qa:a,size:n=Pa.SMALL})=>e.jsx("div",{className:je("cds-summary-card",`cds-summary-card--${n}`,t&&t),"data-testid":a,children:s}),dd=({children:s,qa:t})=>e.jsx("div",{className:"cds-summary-card__content","data-testid":t,children:s}),ud=({children:s,qa:t})=>e.jsx("div",{className:"cds-summary-card__details","data-testid":t,children:s}),gd=({children:s,qa:t})=>e.jsx("div",{className:"cds-summary-card__detail-item","data-testid":t,children:s}),md=({children:s,qa:t})=>e.jsx("div",{className:"cds-summary-card__thumbnail","data-testid":t,children:s}),hd=({children:s,qa:t})=>e.jsx("div",{className:"cds-summary-card__title","data-testid":t,children:s}),st=Object.assign(cd,{Details:ud,DetailsItem:gd,Content:dd,Thumbnail:md,Title:hd});st.displayName="SummaryCard";st.Details.displayName="SummaryCard.Details";st.DetailsItem.displayName="SummaryCard.DetailsItem";st.Content.displayName="SummaryCard.Content";
1st.Thumbnail.displayName="SummaryCard.Thumbnail";st.Title.displayName="SummaryCard.Title";const gn=({children:s,classNameExt:t,disabled:a,onClick:n,qa:r,selected:i})=>e.jsx("div",{className:je("cds-table-header-selectable",i&&"cds-table-header-selectable--selected",t&&t),"data-testid":r,children:e.jsx("button",{className:"cds-table-header-selectable__button",onClick:n,disabled:a,children:s})}),Oa=({children:s,classNameExt:t,qa:a})=>e.jsx("tr",{className:je("cds-table-row-sticky",t&&t),"data-testid":a,children:s}),li=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-table-widget",t&&t),"data-testid":a,children:s}),xd=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-teacher-dashboard-course",t&&t),"data-testid":a,children:s}),ci=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-teacher-dashboard-markbook",t&&t),"data-testid":a,children:s}),pd=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-teacher-dashboard-nugget-stats",t&&t),"data-testid":a,children:s}),jd=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-teacher-dashboard-overview",t&&t),"data-testid":a,children:s}),fd=({children:s,classNameExt:t,qa:a})=>e.jsx("dl",{className:je("cds-tooltip-stat-list",t&&t),"data-testid":a,children:s}),bd=({children:s,qa:t})=>e.jsx("div",{className:"cds-tooltip-stat-list__item","data-testid":t,children:s}),Sd=({children:s,qa:t})=>e.jsx("dt",{className:"cds-tooltip-stat-list__title","data-testid":t,children:s}),Cd=({children:s,qa:t})=>e.jsx("dd",{className:"cds-tooltip-stat-list__description","data-testid":t,children:s}),pe=Object.assign(fd,{Item:bd,Title:Sd,Description:Cd});pe.Item.displayName="TooltipStatList.Item";pe.Title.displayName="TooltipStatList.Title";pe.Description.displayName="TooltipStatList.Description";const yd=({children:s,classNameExt:t,qa:a})=>e.jsx("div",{className:je("cds-vanity-stat-list",t&&t),"data-testid":a,children:e.jsx(P,{noWrap:!0,children:s})}),vd=({children:s,qa:t})=>e.jsx(P.Col,{stretch:!0,qa:t,children:e.jsx(ze,{children:s})}),us=Object.assign(yd,{Item:vd});us.displayName="VanityStatList";us.Item.displayName="VanityStatList.Item";function Bt(s){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Bt=function(a){return typeof a}:Bt=function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},Bt(s)}function Ad(s,t){if(!(s instanceof t))throw new TypeError("Cannot call a class as a function")}function Id(s,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(s,n.key,n)}}function Md(s,t,a){return t&&Id(s.prototype,t),s}function pa(s,t,a){return t in s?Object.defineProperty(s,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):s[t]=a,s}var Td=(function(){function s(t,a,n){Ad(this,s),pa(this,"spec",void 0),pa(this,"monitor",void 0),pa(this,"connector",void 0),this.spec=t,this.monitor=a,this.connector=n}return Md(s,[{key:"beginDrag",value:function(){var a,n=this.spec,r=this.monitor,i=null;return Bt(n.item)==="object"?i=n.item:typeof n.item=="function"?i=n.item(r):i={},(a=i)!==null&&a!==void 0?a:null}},{key:"canDrag",value:function(){var a=this.spec,n=this.monitor;return typeof a.canDrag=="boolean"?a.canDrag:typeof a.canDrag=="function"?a.canDrag(n):!0}},{key:"isDragging",value:function(a,n){var r=this.spec,i=this.monitor,o=r.isDragging;return o?o(i):n===a.getSourceId()}},{key:"endDrag",value:function(){var a=this.spec,n=this.monitor,r=this.connector,i=a.end;i&&i(n.getItem(),n),r.reconnect()}}]),s})();function wd(s,t,a){var n=l.useMemo(function(){return new Td(s,t,a)},[t,a]);return l.useEffect(function(){n.spec=s},[s]),n}function kd(s){return l.useMemo(function(){var t=s.type;return Ha(t!=null,"spec.type must be defined"),t},[s])}function Nd(s,t){return _d(s)||Ld(s,t)||Ed(s,t)||Dd()}function Dd(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ed(s,t){if(s){if(typeof s=="string")return Gn(s,t);var a=Object.prototype.toString.call(s).slice(8,-1);
2if(a==="Object"&&s.constructor&&(a=s.constructor.name),a==="Map"||a==="Set")return Array.from(s);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Gn(s,t)}}function Gn(s,t){(t==null||t>s.length)&&(t=s.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=s[a];return n}function Ld(s,t){var a=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(a!=null){var n=[],r=!0,i=!1,o,c;try{for(a=a.call(s);!(r=(o=a.next()).done)&&(n.push(o.value),!(t&&n.length===t));r=!0);}catch(x){i=!0,c=x}finally{try{!r&&a.return!=null&&a.return()}finally{if(i)throw c}}return n}}function _d(s){if(Array.isArray(s))return s}function Rd(s,t,a){var n=Zs(),r=wd(s,t,a),i=kd(s);Xs(function(){if(i!=null){var c=Fi(i,r,n),x=Nd(c,2),u=x[0],f=x[1];return t.receiveHandlerId(u),a.receiveHandlerId(u),f}},[n,t,a,r,i])}function Pd(s){return Fd(s)||Bd(s)||qd(s)||Od()}function Od(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
3In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qd(s,t){if(s){if(typeof s=="string")return qa(s,t);var a=Object.prototype.toString.call(s).slice(8,-1);if(a==="Object"&&s.constructor&&(a=s.constructor.name),a==="Map"||a==="Set")return Array.from(s);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return qa(s,t)}}function Bd(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)}function Fd(s){if(Array.isArray(s))return qa(s)}function qa(s,t){(t==null||t>s.length)&&(t=s.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=s[a];return n}function di(s,t){var a=Pd([]);return typeof s!="function"&&a.push(s),l.useMemo(function(){return typeof s=="function"?s():s},a)}function $d(){var s=Zs();return l.useMemo(function(){return new $i(s)},[s])}function Gd(s,t){var a=Zs(),n=l.useMemo(function(){return new Gi(a.getBackend())},[a]);
3return Xs(function(){return n.dragSourceOptions=s||null,n.reconnect(),function(){return n.disconnectDragSource()}},[n,s]),Xs(function(){return n.dragPreviewOptions=t||null,n.reconnect(),function(){return n.disconnectDragPreview()}},[n,t]),n}function Ud(s,t){return zd(s)||Vd(s,t)||Wd(s,t)||Hd()}function Hd(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
4In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wd(s,t){if(s){if(typeof s=="string")return Un(s,t);var a=Object.prototype.toString.call(s).slice(8,-1);if(a==="Object"&&s.constructor&&(a=s.constructor.name),a==="Map"||a==="Set")return Array.from(s);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Un(s,t)}}function Un(s,t){(t==null||t>s.length)&&(t=s.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=s[a];return n}function Vd(s,t){var a=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(a!=null){var n=[],r=!0,i=!1,o,c;try{for(a=a.call(s);!(r=(o=a.next()).done)&&(n.push(o.value),!(t&&n.length===t));r=!0);}catch(x){i=!0,c=x}finally{try{!r&&a.return!=null&&a.return()}finally{if(i)throw c}}return n}}function zd(s){if(Array.isArray(s))return s}function Qd(s,t,a){var n=Ui(s,t,a),r=Ud(n,2),i=r[0],o=r[1];return Xs(function(){var x=s.getHandlerId();if(x!=null)return s.subscribeToStateChange(o,{handlerIds:[x]})},[s,o]),i}function ui(s,t,a){return Qd(t,s||function(){return{}},function(){return a.reconnect()})}function Yd(s){return l.useMemo(function(){return s.hooks.dragSource()},[s])}function Kd(s){return l.useMemo(function(){return s.hooks.dragPreview()},[s])}function Xd(s,t){var a=di(s);Ha(!a.begin,"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)");var n=$d(),r=Gd(a.options,a.previewOptions);return Rd(a,n,r),[ui(a.collect,n,r),Yd(r),Kd(r)]}function Jd(s){var t=s.accept;return l.useMemo(function(){return Ha(s.accept!=null,"accept must be defined"),Array.isArray(t)?t:[t]},[t])}function Zd(s,t){if(!(s instanceof t))throw new TypeError("Cannot call a class as a function")}function eu(s,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(s,n.key,n)}}function su(s,t,a){return t&&eu(s.prototype,t),s}function Hn(s,t,a){return t in s?Object.defineProperty(s,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):s[t]=a,s}var tu=(function(){function s(t,a){Zd(this,s),Hn(this,"spec",void 0),Hn(this,"monitor",void 0),this.spec=t,this.monitor=a}return su(s,[{key:"canDrop",value:function(){var a=this.spec,n=this.monitor;return a.canDrop?a.canDrop(n.getItem(),n):!0}},{key:"hover",value:function(){var a=this.spec,n=this.monitor;a.hover&&a.hover(n.getItem(),n)}},{key:"drop",value:function(){var a=this.spec,n=this.monitor;if(a.drop)return a.drop(n.getItem(),n)}}]),s})();function au(s,t){var a=l.useMemo(function(){return new tu(s,t)},[t]);return l.useEffect(function(){a.spec=s},[s]),a}function nu(s,t){return lu(s)||ou(s,t)||iu(s,t)||ru()}function ru(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
5In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iu(s,t){if(s){if(typeof s=="string")return Wn(s,t);var a=Object.prototype.toString.call(s).slice(8,-1);if(a==="Object"&&s.constructor&&(a=s.constructor.name),a==="Map"||a==="Set")return Array.from(s);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Wn(s,t)}}function Wn(s,t){(t==null||t>s.length)&&(t=s.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=s[a];return n}function ou(s,t){var a=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(a!=null){var n=[],r=!0,i=!1,o,c;try{for(a=a.call(s);!(r=(o=a.next()).done)&&(n.push(o.value),!(t&&n.length===t));r=!0);}catch(x){i=!0,c=x}finally{try{!r&&a.return!=null&&a.return()}finally{if(i)throw c}}return n}}function lu(s){if(Array.isArray(s))return s}function cu(s,t,a){var n=Zs(),r=au(s,t),i=Jd(s);Xs(function(){var c=Hi(i,r,n),x=nu(c,2),u=x[0],f=x[1];return t.receiveHandlerId(u),a.receiveHandlerId(u),f},[n,t,r,a,i.map(function(o){return o.toString()}).join("|")])}function du(){var s=Zs();return l.useMemo(function(){return new Wi(s)},[s])}function uu(s){var t=Zs(),a=l.useMemo(function(){return new Vi(t.getBackend())},[t]);return Xs(function(){return a.dropTargetOptions=s||null,a.reconnect(),function(){return a.disconnectDropTarget()}},[s]),a}function gu(s){return l.useMemo(function(){return s.hooks.dropTarget()},[s])}function mu(s,t){var a=di(s),n=du(),r=uu(a.options);return cu(a,n,r),[ui(a.collect,n,r),gu(r)]}function hu(s){if("bandwidth"in s)return s.bandwidth();var t=s.range(),a=s.domain();return Math.abs(t[t.length-1]-t[0])/a.length}var xu=["data","className","top","left","x0","x0Scale","x1Scale","yScale","color","keys","height","children"];function Ba(){return Ba=Object.assign?Object.assign.bind():function(s){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s[n]=a[n])}return s},Ba.apply(this,arguments)}function pu(s,t){if(s==null)return{};var a={},n=Object.keys(s),r,i;for(i=0;i<n.length;i++)r=n[i],!(t.indexOf(r)>=0)&&(a[r]=s[r]);return a}function ju(s){var t=s.data,a=s.className,n=s.top,r=s.left,i=s.x0,o=s.x0Scale,c=s.x1Scale,x=s.yScale,u=s.color,f=s.keys,m=s.height,C=s.children,j=pu(s,xu),v=hu(c),h=t.map(function(S,y){return{index:y,x0:o(i(S)),bars:f.map(function(I,w){var b=S[I];return{index:w,key:I,value:b,width:v,x:c(I)||0,y:x(b)||0,color:u(I,w),height:m-(x(b)||0)}})}});return C?es.createElement(es.Fragment,null,C(h)):es.createElement(ft,{className:qr("visx-bar-group",a),top:n,left:r},h.map(function(S){return es.createElement(ft,{key:"bar-group-"+S.index+"-"+S.x0,left:S.x0},S.bars.map(function(y){return es.createElement(Bl,Ba({key:"bar-group-bar-"+S.index+"-"+y.index+"-"+y.value+"-"+y.key,x:y.x,y:y.y,width:y.width,height:y.height,fill:y.color},j))}))}))}var fu=["className","innerRef"];function Fa(){return Fa=Object.assign?Object.assign.bind():function(s){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s[n]=a[n])}return s},Fa.apply(this,arguments)}function bu(s,t){if(s==null)return{};var a={},n=Object.keys(s),r,i;for(i=0;i<n.length;i++)r=n[i],!(t.indexOf(r)>=0)&&(a[r]=s[r]);return a}function Su(s){var t=s.className,a=s.innerRef,n=bu(s,fu);return es.createElement("circle",Fa({ref:a,className:qr("visx-circle",t)},n))}const gi=({classId:s,onCourseSelect:t})=>{const{courseId:a,baseData:n}=l.useContext(Pe),r=l.useCallback(o=>
5{if(o.target.value!==a){const c=n?.courses?.find(x=>x.courseId===o.target.value);if(!c)return;t(c)}},[n?.courses,a,t]),i=l.useRef(!0);return l.useEffect(()=>{if(i.current&&n?.courses){const o=a||new URLSearchParams(window.location.search).get("courseId");let c=o?n?.courses?.find(x=>x.courseId===o):null;!c&&n?.courses?.[0]&&(c=n?.courses?.[0]),c&&t(c,!0),i.current=!1}},[n?.courses,a,t]),n?.courses?.length?e.jsxs(Is,{qa:"class-course-select",children:[e.jsx(Is.Label,{children:e.jsx(d,{id:"class-course-select--title",defaultMessage:"Course:"})}),e.jsx("select",{value:a||void 0,onChange:r,children:n?.courses?.map(o=>e.jsx("option",{value:o.courseId,children:o.name},o.courseId))})]}):null},Lt=10,Cu=({idx:s})=>`${s+1}`;function mi({toggleKeyAction:s,keys:t,dataSet:a,width:n,height:r,isRTLLocale:i,xAxisLabel:o,yAxisLabel:c,formatTooltip:x}){const[u,f]=l.useState([]),[m,C]=l.useState(null),{tooltipOpen:j,tooltipLeft:v,tooltipTop:h,tooltipData:S,hideTooltip:y,showTooltip:I}=Br(),w=l.useCallback(D=>{if(D===null||!t?.[D]){C(null);return}const L=t?.[D]?.id;C(L)},[t]),b=l.useCallback(D=>{f(L=>{let q;return L.includes(D)?q=L.filter(W=>W!==D):q=[...L,D],s?.(D,!q.includes(D)),q})},[s]),M=l.useCallback((D,L)=>{const q=Fr(D)||{x:0,y:0};I({tooltipLeft:q.x,tooltipTop:q.y,tooltipData:L})},[I]),p=l.useMemo(()=>a.map(D=>({...D,...u.reduce((L,q)=>({...L,[q]:0}),{})})),[a,u]),A={top:10,left:20,right:10,bottom:0},T=r-15,_=20,O=l.useMemo(()=>t.map(D=>D.id),[t]),E=l.useMemo(()=>Fl({domain:t.map(D=>D.id),range:t.map(D=>D.color)}),[t]),F=l.useMemo(()=>wn({domain:t.map(D=>D.id)}),[t]),H=l.useMemo(()=>wn({domain:a.map((D,L)=>`${L+1}`),padding:.7}),[a]),K=l.useMemo(()=>ut({domain:[0,Math.max(.5,...a.map(D=>Math.max(...t.map(L=>D[L.id]))))]}),[a,t]),be=n-A.left-A.right,re=T-A.top-A.bottom-40;if(H.rangeRound([0,be]),F.rangeRound([0,H.bandwidth()]),K.range([re,0]),a.length<1||K.ticks().length===0)return null;const ne=K.ticks(T<=200?5:void 0).filter(Number.isInteger)||[];return e.jsxs(e.Fragment,{children:[e.jsxs("svg",{width:n,height:T,children:[e.jsx($r,{axisClassName:"chart-d3__axis-group",axisLineClassName:"chart-d3__axis-line",tickClassName:"chart-d3__tick",tickFormat:D=>D,tickValues:ne,scale:K,label:c,labelOffset:_,left:A.left+_,top:A.top,labelProps:{fontSize:10,textAnchor:"middle",fill:"#818B96"},tickLength:5}),e.jsx($l,{scale:K,numTicks:ne.length,width:n-A.left-A.right-_,offset:10,left:A.left+_}),e.jsx(ft,{top:A.top,left:A.left+10,children:e.jsx(ju,{data:p,keys:O,height:re,x0:Cu,x0Scale:H,x1Scale:F,yScale:K,color:E,children:D=>D.map((L,q)=>e.jsx(ft,{left:L.x0,onMouseOver:W=>M(W,q),onMouseLeave:y,children:L.bars.map(W=>e.jsx("rect",{x:W.x,y:W.y,width:W.width,height:W.height,fill:W.color,style:m&&m!==W.key?{filter:"opacity(0.5)"}:void 0,rx:0},`bar-group-bar-${L.index}-${W.index}-${W.value}-${W.key}`))},`bar-group-${L.index}-${L.x0}`))})}),e.jsx(Gr,{axisClassName:"chart-d3__axis-group",axisLineClassName:"chart-d3__axis-line",tickClassName:"chart-d3__tick",top:re+A.top,scale:H,label:o,left:A.left+10,hideAxisLine:!0,labelProps:{fontSize:10,textAnchor:i?"start":"end",fill:"#818B96",dx:n/2-_-10},tickLength:5})]}),e.jsx(Gl,{scale:E,labelFormat:D=>D,labelAlign:"middle",shapeMargin:"auto",children:D=>e.jsx("div",{"data-testid":"grouped-bar-chart-legend",style:{display:"flex",justifyContent:"center"},children:D.map((L,q)=>e.jsxs(Ul,{margin:"0 8px",onClick:()=>b(L.datum),onMouseOver:()=>!u.includes(L.datum)&&w(q),onMouseLeave:()=>C(null),role:"button",style:{display:"flex",marginRight:"8px",cursor:"pointer",...u.includes(L.datum)?{filter:"opacity(0.5)"}:{}},children:[e.jsx("svg",{width:Lt,height:Lt,children:e.jsx("rect",{fill:L.value,width:Lt,height:Lt})}),e.jsx(Hl,{align:"left",style:{fontSize:"12px",[i?"marginRight":"marginLeft"]:"5px"},children:t[q].label})]},`legend-quantile-${q}`))})}),j&&x&&e.jsx(Ur,{className:"chart-d3__tooltip",top:h,left:v,unstyled:!0,applyPositionStyle:!0,children:x(S)},Math.random())]})}const yu=[{id:"correct",phraseId:"results-correct",defaultMessage:"Correct",color:"#5bd75b"},{id:"incorrect",phraseId:"results-incorrect",defaultMessage:"Incorrect",color:"#ff8a35"}],vu=({classId:s,questionGroupData:t,aggregationData:a,width:n,height:r,isRTLLocale:i})=>{const o=de(),c=l.useCallback((m,C)=>{z.track($.TeacherDashboardNuggetsLastAttemptOptionChanged,{[g.ClassId]:s,[g.OptionChanged]:m,[g.Value]:C})},[s]),x=l.useMemo(()=>{const m=[];return t.forEach(({_id:C="",name:j},v)=>{const h=a?.latestCompleted?.questionGroupStatistics?.find(S=>S.questionGroupId===C);m.push({name:j,_id:C,idx:v,correct:h?.usersCorrect||0,incorrect:(h?.usersIncorrect||0)+(h?.usersSkipped||0)})}),m},[a,t]),u=l.useMemo(()=>yu.map(m=>({id:m.id,color:m.color,label:m.phraseId?o.formatMessage({id:m.phraseId,defaultMessage:m.defaultMessage}):m.defaultMessage||""})),[o]),f=l.useCallback(m=>{const C=x?.[m];return e.jsxs("div",{"data-testid":"tooltip",children:[e.jsx(xe.ItemTitle,{children:e.jsx("span",{"data-testid":"question-title",children:m+1})}),e.jsx(pe,{children:u.map(({id:j,label:v,color:h})=>e.jsxs(pe.Item,{children:[e.jsxs(pe.Title,{children:[e.jsx("div",{style:{display:"inline-block",marginRight:"8px"},children:e.jsx("svg",{width:8,height:8,children:e.jsx("rect",{fill:h,width:8,height:8})})}),v]}),e.jsx(pe.Description,{qa:j,children:C?.[j]||0})]},j))})]})},[x,u]);return e.jsx(mi,{width:n,height:r,keys:u,dataSet:x,isRTLLocale:i,yAxisLabel:o.formatMessage({id:"nugget-qla-graph-y-axis-label",defaultMessage:"number of answers"}),xAxisLabel:o.formatMessage({id:"nugget-qla-graph-x-axis-label",defaultMessage:"Question"}),formatTooltip:f,toggleKeyAction:c})},Au=({aggregationData:s,questionGroupData:t,isLoading:a,isRTLLocale:n,classId:r})=>e.jsxs(k,{qa:"nugget-analytics-last-attempt",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"nugget-analytics-last-attempt",defaultMessage:"Last Attempt"})})}
5),e.jsx(k.Body,{children:e.jsx(sn,{chartHeight:160,children:a?e.jsx(_e,{type:"widget"}):e.jsx(sa,{children:({width:i,height:o})=>e.jsx(vu,{width:i,height:o,aggregationData:s,questionGroupData:t,isRTLLocale:n,classId:r})})})})]}),ja=s=>s.x,fa=s=>s.y,Vn=["#0BACFE","#0CBDBE","#0ED07F","#86D33F","#FFD700","#FFAF00","#FF8800","#F05607","#E2260E","#FB114B","#C31D8E","#8C2AD2","#4B6AE7","#4C7CA8","#066798","#077172","#087C4C","#507E25","#998100","#996900","#995100","#903304","#871608","#960A2D","#751155","#54197E","#2D3F8A","#2D4A64","#85D5FE","#85DEDE","#86E7BF","#C2E99F","#FFEB80","#FFD780","#FFC380","#F7AA83","#F09286","#FD88A5","#E18EC6","#C594E8","#A5B4F3","#A5BDD3"];function hi(s){const{data:t,width:a,height:n,isWidget:r,isRTLLocale:i}=s;let o=20,c=50,x=50,u=20;r&&(o=10,c=10,x=10,u=10);const f=a-x-u,m=n-c-o,{tooltipOpen:C,tooltipLeft:j,tooltipTop:v,tooltipData:h,hideTooltip:S,showTooltip:y}=Br(),I=(T,_,O)=>{const E=Fr(T)||{y:0};y({tooltipLeft:O,tooltipTop:E.y,tooltipData:_})},w=l.useMemo(()=>ut({range:[0,f],domain:[0,Math.max(Math.ceil(Math.max(...t.map(ja))),100)]}),[f,t]),b=l.useMemo(()=>ut({range:[m,0],domain:[0,Math.max(Math.ceil(Math.max(...t.map(fa))),100)]}),[m,t]),M=ut({domain:[0,Math.max(Math.ceil(Math.max(...t.map(ja))),100)]}),p=ut({domain:[0,Math.max(Math.ceil(Math.max(...t.map(fa))),100)]});M.rangeRound([0,f]),p.range([m,0]);const A=de();return e.jsxs(od,{children:[e.jsxs("svg",{width:a,height:n,children:[e.jsx("rect",{x:0,y:0,width:a,height:n,className:"chart-d3__background",rx:14}),e.jsx(kn,{className:"cds-scatter-graph-d3__average-line",stroke:"#0bacfe",strokeWidth:"1",strokeDasharray:"5,5",from:{x:o+(r?0:30),y:n/2-(r?0:15)},to:{x:a+(r?0:30),y:n/2-(r?0:15)}}),!s.isWidget&&e.jsx(Gs,{className:"cds-scatter-graph-d3__average-text",fill:"#0bacfe",verticalAnchor:"end",textAnchor:i?"start":"end",x:a-20,y:n/2-25,children:A.formatMessage({id:"intervention-grid-x",defaultMessage:"average"})}),e.jsx(kn,{className:"cds-scatter-graph-d3__average-line",stroke:"#0bacfe",strokeWidth:"1",strokeDasharray:"5,5",from:{x:a/2+(r?0:15),y:x-(r?0:30)},to:{x:a/2+(r?0:15),y:n-o-(r?0:30)}}),!s.isWidget&&e.jsx(Gs,{className:"cds-scatter-graph-d3__average-text",angle:-90,fill:"#0bacfe",verticalAnchor:"end",textAnchor:i?"start":"end",x:a/2+5,y:20,children:A.formatMessage({id:"intervention-grid-y",defaultMessage:"average"})}),e.jsxs(ft,{top:o,left:x,children:[e.jsx(Gr,{axisClassName:"cds-chart-d3__axis-group",axisLineClassName:"cds-chart-d3__axis-line",scale:M,top:m,label:s.xAxisLabel,labelProps:{fontSize:14,x:a-70,textAnchor:"end",fill:"#818B96",fontFamily:"proxima-soft, proxima-nova, Proxima Nova, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto"},tickClassName:"cds-chart-d3__tick",tickFormat:T=>s.formatXVals?s.formatXVals(T):`${T}`,tickLength:6}),e.jsx($r,{axisClassName:"cds-chart-d3__axis-group",axisLineClassName:"cds-chart-d3__axis-line",tickClassName:"cds-chart-d3__tick",tickFormat:T=>s.formatYVals?s.formatYVals(T):`${T}`,tickLength:6,tickValues:b.ticks(n<=200?5:void 0).filter(Number.isInteger),scale:p,label:s.yAxisLabel,labelOffset:25,labelProps:{fontSize:14,fill:"#818B96",x:-80,textAnchor:"start",fontFamily:"proxima-soft, proxima-nova, Proxima Nova, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto"}}),e.jsx(Gs,{className:`cds-scatter-graph-d3__intervention cds-scatter-graph-d3__intervention--top-left${s.isWidget?" cds-scatter-graph-d3__intervention--is-widget":""}`,fill:"#0bacfe",verticalAnchor:"start",x:s.isWidget?10:40,y:s.isWidget?10:40,textAnchor:i?"end":"start",children:A.formatMessage({id:"intervention-stretch",defaultMessage:"Needs stretch"})}),e.jsx(Gs,{className:`cds-scatter-graph-d3__intervention cds-scatter-graph-d3__intervention--bottom-left${s.isWidget?" cds-scatter-graph-d3__intervention--is-widget":""}`,fill:"#EDB000",verticalAnchor:"end",x:s.isWidget?10:40,y:s.isWidget?n-30:n-110,textAnchor:i?"end":"start",children:A.formatMessage({id:"intervention-effort",defaultMessage:"Needs more effort"})}),e.jsx(Gs,{className:`cds-scatter-graph-d3__intervention cds-scatter-graph-d3__intervention--bottom-right${s.isWidget?" cds-scatter-graph-d3__intervention--is-widget":""}`,fill:"#FF6C02",textAnchor:i?"start":"end",verticalAnchor:"end",x:s.isWidget?a-30:a-110,y:s.isWidget?n-30:n-110,children:A.formatMessage({id:"intervention-support",defaultMessage:"Needs supp
5ort"})}),e.jsx(Gs,{className:`cds-scatter-graph-d3__intervention cds-scatter-graph-d3__intervention--top-right${s.isWidget?" cds-scatter-graph-d3__intervention--is-widget":""}`,fill:"#32cd32",textAnchor:i?"start":"end",verticalAnchor:"start",x:s.isWidget?a-30:a-110,y:s.isWidget?10:40,children:A.formatMessage({id:"intervention-praise",defaultMessage:"Praise for commitment"})}),t.map((T,_)=>{const O=w(ja(T)),E=b(fa(T)),F=Vn[_%Vn.length];return e.jsx(Su,{className:"cds-scatter-graph-d3__point",cx:O,cy:E,r:6,fill:F,stroke:F,onClick:H=>I(H,T,O),onMouseOver:H=>I(H,T,O),onMouseLeave:S},`point-${_}`)})]})]}),C&&e.jsx(Ur,{className:"chart-d3__tooltip",top:v,left:j,unstyled:!0,applyPositionStyle:!0,children:s.formatTooltip?s.formatTooltip(h):`${h?.x}: ${h?.y}`},Math.random())]})}function xi(s){if(!s||!s.length)return null;const t=s.map(a=>({title:a.name||"",value:a._id||""}));return or(t,"title")}const Iu=(s,t=!1)=>e.jsx(Ms,{time:s,shortenUnits:!0,excludeZeros:!0}),pi=(s,t=!1)=>{const a=s<0||!s?0:s,n=Math.round(a/100);return t?`%${n}`:`${n}%`},Mu=()=>{const{baseData:s,courseId:t,isRTLLocale:a,updateTeacherDashboardFilters:n}=l.useContext(Pe),r=St(),i=He(),o=de(),c=Bs(),x=l.useMemo(()=>s?.courses?.map(b=>({_id:b.courseId,name:b.name}))||[],[s]),u=xi(x||[]),f=s?.courses?.findIndex(b=>b.courseId===t)||-1,m=x?.[f<0?0:f],[C,j]=l.useState(),[v,h]=l.useState([]),S=l.useMemo(()=>u?.map((b,M)=>e.jsx("option",{value:b.value,children:b.title},"select-course-"+M)),[u,t]);We("class-interventions");const y=l.useCallback(b=>{if(b.target.value!==t){const M=s?.courses?.find(p=>p.courseId===b.target.value);if(!M)return;n({courseId:M.courseId})}},[t,s?.courses,n]),I=l.useRef(!0);l.useEffect(()=>{if(I.current&&!t){const b=new URLSearchParams(window.location.search).get("courseId");let M=b?s?.courses?.find(p=>p.courseId===b):null;if(!M&&s?.courses?.[0]&&(M=s?.courses?.[0]),M){n({courseId:M.courseId});return}I.current=!1}},[t]),l.useEffect(()=>{c.accessToken&&t&&s?.users&&s?.studyGroups&&(async()=>{if(t){const M=await Qi(c.accessToken||"",t,s.users,s.studyGroups);j(M);const p=M.dataPoints.map(({x:A,y:T,userId:_})=>({x:A,y:T,key:_}));h(p)}r({pathname:i.pathname,search:`?courseId=${t}`}),z.track($.TeachCourseInterventions,{[g.ClassId]:s?.classInfo?._id,[g.ClassName]:s?.classInfo?.name,[g.CourseId]:m?._id,[g.CourseName]:m?.name})})()},[t,s,c.accessToken]);const w=b=>{const M=b.key,p=C?.dataPoints?.find(({userId:E})=>E===M),A=s?.users?.find(({_id:E}
5)=>E===M);let T=null;A&&(T=js(A));let _=null;p&&p.duration&&(_=Iu(p.duration));let O=null;return p&&p.score&&(O=pi(p.score,a)),e.jsxs("div",{"data-testid":"tooltip",children:[e.jsx(xe.ItemTitle,{children:e.jsx("span",{"data-testid":"student-name",children:T})}),e.jsxs(pe,{children:[e.jsxs(pe.Item,{children:[e.jsx(pe.Title,{children:e.jsx(d,{id:"class-interventions-tooltip-study-time",defaultMessage:"Study Time"})}),e.jsx(pe.Description,{qa:"duration",children:_})]}),e.jsxs(pe.Item,{children:[e.jsx(pe.Title,{children:e.jsx(d,{id:"class-interventions-tooltip-average-score",defaultMessage:"Average Last Score"})}),e.jsx(pe.Description,{qa:"score",children:O})]})]})]})};return e.jsxs(e.Fragment,{children:[e.jsx($e,{children:e.jsx($e.Block,{children:e.jsxs(Is,{children:[e.jsx(Is.Label,{children:e.jsx(d,{id:"course-select-title",defaultMessage:"Course:"})}),e.jsxs("select",{"data-testid":"course-select",value:t||void 0,onChange:y,children:[e.jsx("option",{disabled:!0,children:o.formatMessage({id:"course-select-title",defaultMessage:"Select course"})}),!!S&&S.map(b=>b)]})]})})}),e.jsx(zi,{children:e.jsx(k,{children:e.jsx(k.Body,{qa:"class-interventions",children:e.jsx(sa,{children:({width:b,height:M})=>e.jsx("div",{"data-testid":"scatter-graph",children:e.jsx(hi,{data:v,height:M,width:b,formatTooltip:w,isRTLLocale:a,xAxisLabel:o.formatMessage({id:"time-spent",defaultMessage:"Time Spent"}),yAxisLabel:o.formatMessage({id:"average-score",defaultMessage:"Average Score"})})})})})})})]})},Hh=tn(Mu),Tu=({nuggetId:s,users:t,accessToken:a})=>{const{baseData:n,isRTLLocale:r}=l.useContext(Pe),[i,o]=l.useState(null),[c,x]=l.useState(!0);l.useEffect(()=>{t.length>0&&s&&i?.nuggetId!==s?(x(!0),Wl(s,t.map(m=>m?._id||"").filter(m=>!!m),a).then(m=>{o(m)}).finally(()=>{x(!1)})):x(!1)},[s,t,i,a]);const u=l.useCallback(m=>{const C=m.key,j=i?.dataPoints.find(({userId:y})=>y===C),v=n?.users?.find(({_id:y})=>y===C);let h=null;v&&(h=js(v));let S=null;return j&&typeof j.score=="number"&&(S=pi(j.score,r)),e.jsxs("div",{"data-testid":"tooltip",children:[e.jsx(xe.ItemTitle,{children:e.jsx("span",{"data-testid":"student-name",children:h})}),e.jsxs(pe,{children:[e.jsxs(pe.Item,{children:[e.jsx(pe.Title,{children:e.jsx(d,{id:"class-interventions-tooltip-study-time",defaultMessage:"Study Time"})}),j?.duration&&e.jsx(pe.Description,{qa:"duration",children:e.jsx(Ms,{time:j.duration,shortenUnits:!0,excludeZeros:!0})})]}),e.jsxs(pe.Item,{children:[e.jsx(pe.Title,{children:e.jsx(d,{id:"class-interventions-tooltip-average-score",defaultMessage:"Average Last Score"})}),e.jsx(pe.Description,{qa:"score",children:S})]})]})]})},[n,i,r]),f=l.useMemo(()=>i?.dataPoints?.map(m=>({...m,key:m.userId})),[i]);return e.jsxs(k,{qa:"widget--interventions",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"nugget-analytics-interventions",defaultMessage:"Interventions"})})}),e.jsx(k.Body,{children:f&&e.jsx(sn,{chartHeight:160,children:e.jsx(sa,{children:({width:m,height:C})=>e.jsx("div",{"data-testid":"interventions-scatter-graph",children:e.jsx(hi,{data:f,height:C,width:m,formatTooltip:u,isWidget:!0,isRTLLocale:r})})})})}),c&&e.jsx(_e,{type:"widget",overlay:!0})]})},mn=s=>e.jsx("button",{type:"button","data-testid":"download-excel",onClick:()=>s.download(),children:e.jsx(d,{id:"table-options-option-download-excel",defaultMessage:"Download as Excel"})});var Ne=(s=>(s.SHOW_BARS="show-bars",s.SHOW_NUMBERS="show-numbers",s.SHOW_SYMBOLS="show-symbols",s.COLOURED_CELLS="coloured-cells",s.SHOW_SELECTED="show-selected",s.HIDE_USERS_COLUMN="hide-users",s))(Ne||{});const wu={"show-numbers":!0,"show-symbols":!0,"show-bars":!0},zn=[["show-bars","show-numbers","show-symbols","coloured-cells","hide-users"],["show-selected"]],ku=({onSelect:s,disabledOptions:t,selected:a,downloadExcel:n})=>e.jsxs(ie,{children:[zn.map((r,i)=>e.jsxs(l.Fragment,{children:[r.map(o=>e.jsx(ie.Item,{children:e.jsxs(ge,{children:[e.jsx("input",{"data-testid":`nugget-display-option--${o}`,type:"checkbox",onChange:s,value:o,checked:a[o],disabled:t[o]}),e.jsx(ge.Label,{children:e.jsx(d,{id:`completion-table-menu-${o}`,defaultMessage:o})})]})},o)),i<zn.length-1&&e.jsx(ie.Divider,{})]},i)),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{children:e.jsx(mn,{download:n})})]}),Nu=s=>e.jsxs(Me,{onToggle:()=>null,alignEnd:!0,children:[e.jsx(Me.Toggle,{children:e.jsx(ns,{qa:"button-menu-options-open",children:e.jsx(d,{id:"completion-table-menu-options",defaultMessage:"Options"})})}),e.jsx(Me.Content,{qa:"menu-options",children:e.jsx(ku,{...s})})]}),Cs={student:{propName:"name",customGetter:s=>s?.name,type:"string"},"total-attempts":{customGetter:s=>s.attempts,type:"number"},"total-study-time":{customGetter:s=>s.totalStudyTime,type:"number"},"last-score":{customGetter:s=>s.lastScore,type:"number"}},ba=(s,t)=>t?.[s]?._id||`question${s}`,Du=({classId:s,courseInfo:t,isLoading:a,questionGroupData:n,options:r,toggleUser:i,selectedUserList:o,selectedNugget:c,tableData:x,sortState:u,setSortState:f,columns:m})=>{const C=de(),[j,v]=l.useState(null),{deviceType:h}=Ja();l.useEffect(()=>{f(Ge("student","string",{},Cs.student.customGetter,Cs.student.propName))},[]);const S=l.useCallback(p=>{const A=Ge(p,Cs[p].type,u,Cs[p].customGetter,Cs[p].propName);f(A);const T=A?.[p]?.order;z.track($.TeacherDashboardNuggetsTableSorted,{[g.Column]:p.replace("-"," "),[g.IsAscending]:T===Qe.ASC?!0:T===Qe.DESC?!1:void 0,[g.ClassId]:s}
5)},[u,f,s]),y=l.useCallback(p=>{if(u){const A=ba(p,n);f(Ge(A,"number",u,T=>T.results?.[p]?.correct?0:T.results?.[p]?.activity==="attempt-skip"?1:T.results?.[p]?.correct===!1?2:u[A]?.order!==Qe.ASC?3:-1))}},[n,f,u]),I=l.useMemo(()=>x.map(p=>({id:p.id,name:p.name,studySessionId:p.lastStudySessionId})).filter(p=>p.studySessionId),[x]),w=l.useMemo(()=>c?[c]:[],[c]);l.useEffect(()=>{if(u){const p=Object.keys(u);if(p.some(T=>Object.keys(Cs).includes(T)))return;const A=n.map((T,_)=>ba(_,n));if(p.some(T=>A.includes(T)))return;f(Ge("student","string",Cs.student,Cs.student.customGetter))}},[c,u,n,f]);const b=l.useCallback((p,A)=>A==="courseName"?t?.name:A==="subjectName"?t?.subject?.name:A==="iconCode"?t?.iconCode:A==="id"?p?.id||p?._id:p?.[A],[t]),M=p=>p.activity==="attempt-skip"?Ie.SKIPPED:p.correct?Ie.CORRECT:Ie.INCORRECT;return r[Ne.SHOW_SELECTED]&&o.length===0?null:u&&e.jsx(Hr,{students:I,nuggets:w,shouldDisplayNugget:()=>!!j,getNuggetProp:()=>c.nuggetId||"",getStudentProp:(p,A)=>p[A],getDefaultOpenAttempt:p=>p.studySessionId?{studySessionId:p.studySessionId,questionIdx:j?.questionIdx}:null,children:e.jsxs(Wr,{nuggets:w,getProp:b,children:[e.jsxs(li,{qa:"teacher-dashboard-nuggets-table",children:[e.jsxs(ts,{striped:!0,fixed:!0,hover:!0,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[m.filter(p=>!(r[Ne.HIDE_USERS_COLUMN]&&p.id==="student")).map(p=>e.jsx("th",{scope:"col",children:e.jsx(fs,{onClick:()=>S(p.id),sortDirection:u[p.id]?.order,children:e.jsx(d,{id:p.phrase,defaultMessage:p.text})})},p.id)),n.map((p,A)=>e.jsx("th",{scope:"col",children:e.jsxs(fs,{onClick:()=>y(A),size:na.SMALL,sortDirection:u[ba(A,n)]?.order,children:[A+1,". ",p.name]})},p._id))]})}),e.jsx("tbody",{children:x.map(p=>r[Ne.SHOW_SELECTED]&&!o.includes(p.id)?null:e.jsxs("tr",{children:[r[Ne.HIDE_USERS_COLUMN]?null:e.jsx("th",{children:e.jsx(gn,{onClick:()=>i(p.id),selected:o.includes(p.id),children:e.jsxs(ss,{children:[e.jsx(ss.Avatar,{children:e.jsx(Xt,{profilePic:p.avatar})}),e.jsx(ss.Name,{children:e.jsx("span",{children:p.name})})]})})}),e.jsx("td",{children:p.attempts}),e.jsx("td",{children:p.attempts&&p.totalStudyTime>-1?e.jsx(Ms,{time:p.totalStudyTime,shortenUnits:!0}):null}),e.jsx("td",{children:p.attempts&&p.lastScore>-1?e.jsx(Ye,{percentage:p.lastScore,hasBar:r[Ne.SHOW_BARS],hasSymbol:r[Ne.SHOW_SYMBOLS],hasNumber:r[Ne.SHOW_NUMBERS],hasColouredCell:r[Ne.COLOURED_CELLS]}):null}),p.results.map((A,T)=>e.jsx("td",{children:A&&e.jsx(qs,{onClick:()=>v({id:p.id,questionIdx:T}),children:r[Ne.COLOURED_CELLS]?e.jsx(Ye,{percentage:A.correct?100:0,hasNumber:!1,hasBar:!1,hasSymbol:!1,hasColouredCell:r[Ne.COLOURED_CELLS],resultType:M(A)}):e.jsxs(e.Fragment,{children:[A.activity==="attempt-answer"&&(A.correct?e.jsx(_s,{type:Ie.CORRECT,label:"Correct"}):A.answers.length?e.jsx(_s,{type:Ie.INCORRECT,label:"Incorrect"}):e.jsx(_s,{type:Ie.SKIPPED,label:"Skipped"})),A.activity==="attempt-skip"&&e.jsx(_s,{type:Ie.SKIPPED,label:"Skipped"})]})})},A?.questionGroupId||n[T]._id))]}
5,p.id))})]}),a&&e.jsx(_e,{type:"widget"})]}),e.jsx(Js,{dismissLabel:C.formatMessage({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),floatingDismiss:h!=="phone",modalActive:!!j,onExit:()=>v(null),size:"xxlarge",qa:"qla-modal",children:e.jsx(Js.Body,{children:e.jsx(Vr,{nuggetId:c?.nuggetId,userId:j?.id||""})})})]})})},Eu=(s,t,a,n,r,i)=>{const o=Bs();return l.useMemo(()=>{const c=lr(o,"formatting","isCommaSeparated",!0),x=s.map(u=>({id:u._id||"",name:js(u,i,c),avatar:u.profile?.avatar,attempts:t?.studentStatistics?.find(f=>f.userId===u?._id)?.completed?.attempts||0,totalStudyTime:a?.[u._id]?.overallResult?.durationActual||-1,lastScore:typeof a?.[u._id]?.overallResult?.percentScore=="number"?Ue(a?.[u._id]?.overallResult?.percentScore):-1,results:a?.[u._id]?n.map(f=>a?.[u._id].questions.find(m=>m.questionGroupId===f._id)):new Array(n.length).fill(null),lastStudySessionId:a?.[u._id]?.studySession.studySessionId}));return r?et(x,r):x},[o,s,a,n,t,r,i])},Lu=(s,t)=>!!t&&s?.topics?.some(a=>a.subtopics.some(n=>n.nuggets.some(r=>r.nuggetId===t))),Wh=()=>{const{classId:s,courseId:t,nuggetId:a,updateTeacherDashboardFilters:n,baseData:r,isRTLLocale:i}=l.useContext(Pe),o=hs(),[c,x]=l.useState(wu),u=l.useCallback(({target:{value:G}})=>{x(Q=>{z.track($.TeacherDashboardNuggetsOptionChanged,{[g.ClassId]:s,[g.OptionChanged]:G,[g.Value]:!Q?.[G]});const te={...Q,[G]:!Q?.[G]};return Q["coloured-cells"]&&G===Ne.SHOW_SYMBOLS&&!Q?.[G]&&(te[Ne.COLOURED_CELLS]=!1),Q["show-symbols"]&&G===Ne.COLOURED_CELLS&&!Q?.[G]&&(te[Ne.SHOW_SYMBOLS]=!1),!te["coloured-cells"]&&!te["show-symbols"]&&!te["show-numbers"]&&!te["show-bars"]?{...te,[G]:Q?.[G]}:te})},[s]),[f,m]=l.useState([]),C=l.useCallback(G=>{m(Q=>Q.includes(G)?Q.filter(te=>te!==G):[...Q,G])},[m]),j=l.useRef(""),[v,h]=l.useState({}),[S,y]=l.useState(null),[I,w]=l.useState(!1),[b,M]=l.useState(!0),[p,A]=l.useState([]),[T,_]=l.useState(null),O=l.useCallback(async(G,Q)=>{let te={courseId:G.courseId,subjectId:G.subject?.labelId};Q||z.track($.TeacherDashboardNuggetsCourseSelected,{[g.CourseId]:G.courseId,[g.CourseName]:G.name,[g.ClassId]:s});const ye=a||new URLSearchParams(window.location.search).get("nuggetId")||void 0;let ae=v[G.courseId];ae||(w(!0),ae=await Cr(G.courseId,o.current),h(me=>({...me,[ae._id]:ae})));const ke=Lu(ae,ye),ce=ae?.topics?.[0]?.subtopics?.[0]?.nuggets?.[0];!ke&&ce&&ce.nuggetId!==ye&&(te={...te,nuggetId:ce?.nuggetId}),n(te),w(!1)},[o,n,v,h,s,a]),E=l.useCallback((G,Q)=>{n({nuggetId:G}),z.track($.TeacherDashboardNuggetsNuggetSelected,{[g.ClassId]:s,[g.NuggetId]:G,[g.NuggetName]:Q})},[n,s]);We("Nugget QLA"),l.useEffect(()=>{Object.values(c).every(G=>G===!1)&&x(G=>({...G,[Ne.SHOW_NUMBERS]:!0}))},[c,x]),l.useEffect(()=>{(async()=>{if(a&&j.current!==a){if(!r?.users?.length){M(!1);return}M(!0),j.current=a;const Q=await hl(a,o.current,!0),te=[];let ye;try{ye=await Vl(a,(r?.users||[]).map(ce=>ce._id),o.current),y(ye)}catch{y(null)}Q.content?.forEach(ce=>(ce.items||[]).forEach(me=>me.questionGroups?.forEach(ve=>{ve?._id&&te.push(ve._id)}))),te.length>0?await ec(te,o.current).then(ce=>{const me=[];te.forEach(ve=>{const as=ce.find(ls=>ls._id===ve);as&&me.push(as)}),A(me)}):A([]);const ae=[];ye?.studentStatistics.forEach(ce=>{ce.completed.lastStudySessionId&&ae.push(ce.completed.lastStudySessionId)});const ke={};ae.length&&(await Promise.all(ae.map(async me=>xl(me,o.current)))).forEach(me=>{ke[me?.studySession?.userId]=me}),_(ke)}M(!1)})()},[a,r,o,n]);const F=l.useMemo(()=>t&&v[t]?.topics?.map(Q=>Q.subtopics).flat()?.map(Q=>Q.nuggets).flat().find((Q,te)=>!a&&te===0||Q.nuggetId===a),[v,a,t]),H=!!S?.latestCompleted,K=H&&!!r?.users?.length,be=l.useMemo(()=>({[Ne.SHOW_SELECTED]:!f.length}),[f]);l.useEffect(()=>{f.length===0&&x(G=>({...G,[Ne.SHOW_SELECTED]:!1}))},[f]);const[re,ne]=l.useState(null),D=[{id:"student",phrase:"nugget-qla-column-student",text:"Student"},{id:"total-attempts",phrase:"nugget-qla-column-total-attempts",text:"Attempts"},{id:"total-study-time",phrase:"nugget-qla-column-total-study-time",text:"Total Time Spent"},{id:"last-score",phrase:"nugget-qla-column-last-score",text:"Last Score"}],L=Eu(r?.users||[],S,T,p,re,i),q=G=>{let Q="";return v[t].topics?.forEach(te=>{te.subtopics.forEach(ye=>{const ae=ye.nuggets.find(ke=>ke?._id===G);ae&&(Q=ae.name)}
5)}),Q},W=async()=>{const G=D.map(ae=>({key:ae.id,label:ae.text,format:"string"}));p.forEach((ae,ke)=>{G.push({key:ae._id||"",label:`${ke+1}. ${ae.name}`,format:"string"})});const Q=[];L.forEach(ae=>{const ke=[{key:"student",value:ae.name},{key:"total-attempts",value:ae.attempts.toString()},{key:"total-study-time",value:ae.attempts&&ae.totalStudyTime>-1?ae.totalStudyTime.toString():""},{key:"last-score",value:ae.attempts&&ae.lastScore>-1?ae.lastScore.toString():""}];ae.results.forEach(ce=>{if(ce){const me=ce.activity==="attempt-answer"?ce.correct?"Correct":ce.answers.length?"Incorrect":"Skipped":ce.activity==="attempt-skip"?"Skipped":"";ke.push({key:ce.questionGroupId,value:me})}}),Q.push(ke)});const te={filename:`${r?.classInfo?.name} - ${q(a||"")} - ${Yi.local().toFormat("yyyy MM dd")}`,data:{name:"Nuggets",cols:G,rows:Q}},ye=await an(o.current,JSON.stringify(te));Yt(ye),z.track($.TeacherDashboardNuggetsTableDownloaded,{[g.ClassId]:r?.classInfo?._id,[g.ClassName]:r?.classInfo?.name,[g.NuggetId]:a,[g.NuggetName]:q(a||"")})},Ce=l.useMemo(()=>v[t||""]?.topics?.map(G=>({id:G.topicId,name:G.name,groups:G.subtopics?.map(Q=>({id:Q.subtopicId,name:Q.name,items:Q.nuggets?.map(te=>({id:te.nuggetId,name:te.name}))}))}))??[],[v,t]),se=b||I;return e.jsxs(e.Fragment,{children:[e.jsxs($e,{children:[e.jsx($e.Block,{stretch:!0,children:r&&e.jsx(gi,{classId:s,onCourseSelect:O})}),e.jsx($e.Block,{children:e.jsx(Nu,{onSelect:u,selected:c,disabledOptions:be,downloadExcel:W})})]}),v[t||""]?.topics&&e.jsx(Kr,{qa:"nugget-select",selectedNuggetName:F?.name||"",options:Ce,onSelectItem:E,offsetX:20,offsetY:-8}),!H&&!I&&!b&&e.jsx(_u,{}),H&&e.jsxs(Fs,{contentWidth:!0,children:[e.jsx(pd,{children:e.jsx(Us,{cols:1,qa:"teacher-dashboard-nuggets--content",children:e.jsx(Us.Item,{children:e.jsxs(Us,{cols:3,children:[e.jsx(Us.Item,{stretch:!0,children:e.jsxs(k,{qa:"nugget-analytics-overview",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"nugget-analytics-overview",defaultMessage:"Overview"})})}),e.jsx(k.Body,{isVerticallyCentred:!0,children:e.jsxs(Qs,{children:[e.jsx(Qs.Rings,{children:e.jsx(At,{size:96,completionPercentage:S?Math.round(S?.usersFinished/S?.usersTotal*100):0,scorePercentage:Ue(S?.latestCompleted?.percentScore?.mean),children:v[t]&&e.jsx($s,{item:{iconCode:v[t]?.iconCode,subject:v[t]?.subject}})})}),e.jsxs(Qs.Legend,{children:[e.jsxs(le.Lead,{children:[e.jsx(d,{id:"nugget-analytics-total-student-completed",defaultMessage:"Attempted by"})," ",e.jsx(qt,{children:S?.usersFinished})," ",e.jsx(d,{id:"nugget-analytics-total-student-completed-of-students",defaultMessage:"of {totalStudents} students",values:{totalStudents:S?.usersTotal}})]}),e.jsxs(le.Lead,{children:[e.jsx(d,{id:"nugget-analytics-average-score",defaultMessage:"Average score"})," ",e.jsxs(oi,{score:Ue(S?.latestCompleted?.percentScore?.mean),children:[Ue(S?.latestCompleted?.percentScore?.mean),"%"]})]})]})]})})]})}),e.jsx(Us.Item,{stretch:!0,qa:"nugget-analytics-last-attempt",children:e.jsx(Au,{questionGroupData:p,aggregationData:S,isLoading:se,isRTLLocale:i,classId:s})}),e.jsx(Us.Item,{stretch:!0,qa:"nugget-analytics-interventions",children:e.jsx(Tu,{nuggetId:a,users:r?.users||[],accessToken:o.current})})]})})})}),K&&F&&e.jsx(Du,{isLoading:se,questionGroupData:p,options:c,toggleUser:C,selectedUserList:f,selectedNugget:F,courseInfo:v?.[t],classId:s,tableData:L,sortState:re,setSortState:ne,columns:D})]}),se&&e.jsx(As,{children:e.jsx(_e,{type:"widget",overlay:!0})})]})},_u=()=>e.jsx(As,{children:e.jsx(k,{children:e.jsxs(Se,{qa:"no-nugget-analytics",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"nugget-analytics-no-data-header",defaultMessage:"No data available"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"nugget-analytics-no-data-message",defaultMessage:""})})]})})});function Ru(s){const{qa:t,items:a,selectedItems:n,updateSelectedItems:r,itemToggled:i,subitemToggled:o}=s,[c,x]=l.useState([]),[u,f]=l.useState([]);l.useEffect(()=>{f(n);const v=a.filter(h=>h.subitems.some(S=>n.includes(S.id))).map(h=>h.id);x(v)},[a,n]);const m=l.useMemo(()=>a.flatMap(v=>v.subitems.map(h=>h.id)),[a]),C=()=>{f(n)},j=()=>{r(u)};return e.jsxs(Me,{onToggle:()=>null,qa:t,children:[e.jsx(Me.Toggle,{children:e.jsxs(ns,{children:[e.jsx(ns.Label,{children:e.jsx(d,{id:"course-nuggets-subtopics",defaultMessage:"Subtopics:"})}),e.jsx(ns.Value,{children:e.jsx(d,{id:"course-nuggets-subtopics-showing",defaultMessage:"Showing {number} of {total}",values:{number:n.length,total:m.length}})})]})}),e.jsx(Pu,{items:a,itemsOpened:c,setItemsOpened:x,subitemsChecked:u,setSubitemsChecked:f,closeDropdown:C,saveDropdown:j,itemToggled:i,subitemToggled:o})]})}function Pu(s){const{items:t,itemsOpened:a,setItemsOpened:n,subitemsChecked:r,setSubitemsChecked:i,closeDropdown:o,saveDropdown:c,itemToggled:x,subitemToggled:u}=s,f=l.useRef({}),m=b=>M=>{f.current[b]=M},C=l.useMemo(()=>t.flatMap(b=>b.subitems.map(M=>M.id)),[t]),j=(b,M)=>b.includes(M),v=b=>!!b.every(M=>j(r,M.id)),h=C.every(b=>r.includes(b)),S=b=>{j(a,b.id)?n(M=>M.filter(p=>p!==b.id)):n(M=>[...M,b.id])},y=()=>{i(h?[]:C)};l.useEffect(()=>{const b=f.current.all;if(b){const M=r.length>0;b.indeterminate=M&&!h}t.forEach((M,p)=>{const A=f.current[p];if(A){const T=M.subitems.map(F=>F.id),_=T.filter(F=>r.includes(F)),O=_.length>0,E=_.length===T.length;A.indeterminate=O&&!E}})},[r,h,t]);const I=b=>{const M=b.subitems.map(p=>p.id);M.some(p=>!r.includes(p))?(x?.(b.id,!0),n(p=>[...p,b.id]),i(p=>Array.from(new Set([...p,...M])))):(x?.(b.id,!1),i(p=>p.filter(A=>!M.includes(A))))},w=b=>{j(r,b.id)?(u?.(b.id,!1),i(M=>M.filter(p=>p!==b.id))):(u?.(b.id,!0),i(M=>[...M,b.id]))};return e.jsxs(Me.Content,{offsetY:-30,children:[e.jsx(Qt,{depth:zt.SHALLOW,children:e.jsxs("ul",{role:"tree",className:"cds-checkbox-tree__root","aria-label":"Checkbox tree","aria-multiselectable":"true",children:[e.jsx("li",{role:"treeitem",className:"tree-branch-wrapper","aria-expanded":!1,children:e.jsx("div",{className:"tree-node",children:e.jsx(Ve,{children:e.jsx(ws,{type:"checkbox",checked:h,onChange:()=>y(),ref:m("all"),children:e.jsx(ws.Text,{children:e.jsx(d,{id:"cc-multi-select-select-all",defaultMessage:"Select All"})})})})})}),t.map((b,M)=>{const p=j(a,b.id);return e.jsxs("li",{role:"treeitem",className:"tree-branch-wrapper","aria-expanded":p,children:[e.jsxs("div",{className:`tree-node ${p?"tree-node--expanded":""} tree-node__branch`,children:[e.jsx(Qt.Control,{isOpen:p,onClick:()=>S(b),children:e.jsx(Vs,{icon:Wa,size:zs.SMALL})}),e.jsx(Ve,{children:e.jsx(ws,{type:"checkbox",checked:v(b.subitems),onChange:()=>I(b),ref:m(M),children:e.jsx(ws.Text,{children:b.name})})})]}),e.jsx("ul",{role:"group",className:`tree-node-group ${p?"tree-node-group--expanded":""} tree-node-group--focussed`,children:b.subitems.map((A,T)=>e.jsx("li",{className:"tree-leaf-list-item",children:e.jsx("div",{role:"treeitem",className:"tree-node tree-node__leaf",children:e.jsx(Ve,{children:e.jsx(ws,{type:"checkbox",checked:j(r,A.id),onChange:()=>w(A),children:e.jsx(ws.Text,{children:A.name})})})})},T))})]},M)})]})}),e.jsxs(xa,{children:[e.jsx(xa.Btn,{qa:"cancel-button",type:"button",variant:"default",size:"small",onClick:o,children:e.jsx(d,{id:"cancel-button-label",defaultMessage:"Cancel"})}),e.jsx(xa.Btn,{qa:"save-button",type:"button",variant:"primary",size:"small",disabled:!r.length,onClick:c,children:e.jsx(d,{id:"apply-button-label",defaultMessage:"Apply"})})]})]})}const Ou=s=>{const{courseId:t,courseTopics:a,dateSelectionName:n,selectOpts:r,selectedStudentsCount:i,selectedSubtopics:o,setSelectedSubopics:c,showSelected:x,setSelectRowsConfig:u,viewConfig:f,setCourseId:m,changeDataRange:C,changeViewConfig:j,download:v,topicToggled:h,subtopicToggled:S}=s,y=de(),I=b=>{b===!1&&z.track($.MarkbookCustomised,{[g.PageArea]:"teacher-dashboard-class-course-markbook",...f})},w=l.useMemo(()=>a?.map(b=>
5({id:b.topicId,name:b.name,subitems:b.subtopics.map(M=>({id:M.subtopicId,name:M.name}))}))||[],[a]);return e.jsxs($e,{children:[e.jsx($e.Block,{children:e.jsxs(Is,{qa:"select-menu-course",children:[e.jsx(Is.Label,{children:e.jsx(d,{id:"course-select-title",defaultMessage:"Course:"})}),e.jsxs("select",{"data-testid":"course-select",value:t||void 0,onChange:b=>!!m&&m(b?.target.value),children:[e.jsx("option",{disabled:!0,children:y.formatMessage({id:"course-select-title",defaultMessage:"Select course"})}),r?.map((b,M)=>e.jsx(l.Fragment,{children:b},`course-option-${M}`))]})]})}),e.jsx($e.Block,{stretch:!0,children:e.jsx(Ru,{selectedItems:o,items:w,updateSelectedItems:b=>c(b),itemToggled:h,subitemToggled:S})}),e.jsx($e.Block,{children:e.jsxs(Me,{onToggle:()=>null,alignEnd:!0,children:[e.jsx(Me.Toggle,{qa:"timestamp-filter",children:e.jsxs(ns,{children:[e.jsx(ns.Label,{children:e.jsx(d,{id:"timestamp-filter-title",defaultMessage:"Time:"})}),e.jsx(ns.Value,{children:Ki?.[n]?.getPhrase?.(y)})]})}),e.jsx(qu,{dateOption:n,changeDataRange:C})]})}),e.jsx($e.Block,{children:e.jsxs(Me,{qa:"button-menu-options-open",onToggle:I,alignEnd:!0,children:[e.jsx(Me.Toggle,{qa:"button-menu-options-button",children:e.jsx(ns,{children:e.jsx(ns.Label,{children:e.jsx(d,{id:"completion-table-menu-options",defaultMessage:"Options"})})})}),e.jsx(Me.Content,{offsetY:0,children:e.jsxs(ie,{qa:"menu-options",children:[e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-bars",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-show-bars",defaultMessage:"Show Bars"})}),e.jsx("input",{type:"checkbox",checked:f.hasBar,onChange:()=>j("hasBar")})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-numbers",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-show-numbers",defaultMessage:"Show Numbers"})}),e.jsx("input",{type:"checkbox",checked:f.hasNumber,onChange:()=>j("hasNumber")})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-symbols",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-show-symbols",defaultMessage:"Show Symbols"})}),e.jsx("input",{type:"checkbox",checked:f.hasSymbol,onChange:()=>j("hasSymbol")})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-colors",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-coloured-cells",defaultMessage:"Coloured cells"})}),e.jsx("input",{type:"checkbox",checked:f.hasColouredCell,onChange:()=>j("hasColouredCell")})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-users",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-hide-users",defaultMessage:"Hide students' names"})}),e.jsx("input",{type:"checkbox",checked:f.hideUsersColumn,onChange:()=>j("hideUsersColumn")})]})}),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-attempted",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-attempted-nuggets-only",defaultMessage:"Attempted nuggets only"})}),e.jsx("input",{type:"checkbox",checked:f.showAttemptedNuggets,onChange:()=>j("showAttemptedNuggets")})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-selected",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"completion-table-menu-show-selected",defaultMessage:"Show selected rows only"})}),e.jsx("input",{type:"checkbox",disabled:i===0,checked:x,onChange:b=>u(b)})]})}),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{children:e.jsx(mn,{download:v})})]})})]})})]})},qu=s=>{const{dateOption:t,changeDataRange:a}=s,n=Xi();return e.jsx(Me.Content,{offsetY:0,children:e.jsxs(ie,{children:[e.jsx(ie.Item,{isCurrent:t==="CurrentAcademicYear",children:e.jsx("button",{type:"button","data-testid":"CurrentAcademicYear",onClick:n(()=>a("CurrentAcademicYear")),children:e.jsx(d,{id:"timestamp-filter-current-year",defaultMessage:"Current academic year"})})}),e.jsx(ie.Item,{isCurrent:t==="AllTime",children:e.jsx("button",{type:"button","data-testid":"AllTime",onClick:n(()=>a("AllTime")),children:e.jsx(d,{id:"timestamp-filter-option-all",defaultMessage:"All time"})})}),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{isCurrent:t==="OneDay",children:e.jsx("button",{type:"button","data-testid":"OneDay",onClick:n(()=>a("OneDay")),children:e.jsx(d,{id:"timestamp-filter-option-today",defaultMessage:"Today"})})}),e.jsx(ie.Item,{isCurrent:t==="SevenDays",children:e.jsx("button",{type:"button","data-testid":"SevenDays",onClick:n(()=>a("SevenDays")),children:e.jsx(d,{id:"timestamp-filter-option-past-week",defaultMessage:"Previous 7 days"})})}),e.jsx(ie.Item,{isCurrent:t==="TwentyEightDays",children:e.jsx("button",{type:"button","data-testid":"TwentyEightDays",onClick:n(()=>a("TwentyEightDays")),children:e.jsx(d,{id:"timestamp-filter-option-past-month",defaultMessage:"Previous 28 days"})})}),e.jsx(ie.Item,{isCurrent:t==="CustomRange",children:e.jsx("button",{type:"button","data-testid":"Custom",onClick:n(()=>a("CustomRange")),children:e.jsx(d,{id:"timestamp-filter-option-custom-range",defaultMessage:"Custom range…"})})})]})})},Bu=s=>{const{sortingOrder:t,sortColumnStudent:a,tableThs:n,tableTds:r,hideUsersColumn:i}=s;return e.jsx(k,{qa:"completion-table",children:e.jsx(k.Body,{qa:"completion-table-body",children:e.jsx(Zl,{qa:"completion-table-responsive",children:e.jsxs(ts,{qa:"completion-table-simple",hasHeaderColumn:!i,bordered:!1,fixed:!0,hover:!0,striped:!0,isSearchable:!0,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[i?null:e.jsx("th",{scope:"col","data-testid":"markbook-table-student-header",children:e.jsx(fs,{sortDirection:t,onClick:()=>a("student","string"),children:e.jsx(d,{id:"markbook-student-column",defaultMessage:"Student"})})}),n]})}),e.jsx("tbody",{children:r})]})})})})},Fu=s=>{const[t,a]=Ea("completionTable.showSelected",{}),n=s?._id?!!t[s?._id]:!1,r=u=>
5{if(s?._id)return a({...t,[s._id]:u})},[i,o]=Ea("completionTable.selectedStudents",{}),c=s?._id?i[s._id]||[]:[];return{showSelected:n,setShowSelected:r,selectedStudents:c,setSelectedStudents:u=>{if(s?._id)return u.length===0&&r(!1),o({...i,[s._id]:u})}}},Hs="class-average",$u=(s,t)=>t==="name"?s.name:t==="id"?s.id:s[t],Gu=(s,t)=>t==="name"?s.student:s[t],Uu=()=>{const s=de(),{baseData:t,courseId:a,updateTeacherDashboardFilters:n,contextLoading:r,timeSpan:i,startDate:o,endDate:c,setShowCustomDatePicker:x,isRTLLocale:u,aggregatedCourseData:f}=l.useContext(Pe),[m,C]=l.useState({student:{order:"ASCENDING",type:"string"}}),j=l.useMemo(()=>t?.courses?.map(N=>{const R=f?.[N.courseId]||null;return R||{_id:N.courseId,name:N.name,topics:N.topics}})||[],[t?.courses,f]),v=xi(j||[]),h=l.useMemo(()=>{const N=j?.findIndex(R=>R._id===a)||-1;return j?.[N<0?0:N]},[a,j]),S=l.useCallback(N=>{n({courseId:N})},[n]),[y,I]=Ea("completionTable.selectedSubtopics",{}),[w,b]=Ya(),{showSelected:M,setShowSelected:p,selectedStudents:A,setSelectedStudents:T}=Fu(h),[_,O]=l.useState([]),[E,F]=l.useState([]),[H,K]=l.useState([]),[be,re]=l.useState([]),[ne,D]=l.useState(""),[L,q]=l.useState([]),[W,Ce]=l.useState(-1),se=l.useMemo(()=>w.showAttemptedNuggets?E.filter(N=>!!N.isActive):E,[w.showAttemptedNuggets,E]),[G,Q]=l.useState(!1),[te,ye]=l.useState(!1),[ae,ke]=l.useState(""),[ce,me]=l.useState(""),[ve,as]=l.useState([]),ls=Bs(),Ke=hs(),Xe=Ji(),Le=lr(ls,"formatting","isCommaSeparated",!0),X=300;We("class-Markbook"),l.useEffect(()=>{h?._id&&h._id!==a&&n({courseId:h._id})},[h,a,n]);const Y=l.useCallback(async N=>{let R=[];const V=t?.users;if(!V||!h)return R;const oe=y[`${t?.classInfo?._id}:${h?._id}`]||[];return O(oe),oe&&oe.length>0&&(R=await Zi(N,V,h?.topics||[],oe,{startDate:o||void 0,endDate:c||void 0},i)),K(V),re(V),F(R),pn("student","string"),n({courseId:a}),jn(V),z.track($.TeachCourseMarkbook,{[g.ClassId]:t?.classInfo?._id,[g.ClassName]:t?.classInfo?.name,[g.CourseId]:h?._id,[g.CourseName]:h?.name}),R},[a,t,y,h,o,c,i]),{load:Ae,loading:Re}=Ee(Y);l.useEffect(()=>{if(a&&h&&t?.users){if(t.users.length>X){ye(!0);return}Ae()}},[Ae,a,h,t]);const Oe=l.useCallback(N=>{I(R=>({...R,[`${t?.classInfo?._id}:${h?._id}`]:N})),O(N)},[t?.classInfo?._id,h?._id,I]);l.useEffect(()=>{if(!h)return;const N=y[`${t?.classInfo?._id}:${h?._id}`]||[];if(_.length===0&&!N.length&&h?.topics&&h?.topics.length>0&&t?.classInfo?._id){const R={...y,[`${t?.classInfo?._id}:${h?._id}`]:[h?.topics[0].subtopics[0].subtopicId]};I(R)}},[_,h,t?.classInfo?._id]),l.useEffect(()=>{jn()},[M]),l.useEffect(()=>{let N=[];if(H?.length&&se?.length&&(N=H.map(V=>{const fe={id:V._id,student:js(V,u,Le)};return se.forEach(he=>{const qe=he?.students[V._id];let xs=null;if(!qe)return;const cs=qe.lastResult,Nt=qe.bestResult,Oi=qe.averageResult;cs.score!==null&&(xs=cs.score);const qi=Oo(cs,Nt,Oi,he,s);fe[he._id]={score:xs,label:qi}}),fe})),A.some(V=>V._id===Hs)||!M&&H?.length){const V={id:Hs,student:s.formatMessage({id:"class-average",defaultMessage:"Class Average"}).toUpperCase()};se.forEach(oe=>{let fe=0;const he=Object.values(oe.students).filter(qe=>!!qe?.lastResult?.score||qe?.lastResult?.score===0);he.forEach(qe=>{fe+=qe?.lastResult?.score||0}),V[oe._id]={score:fe>0?Math.round(fe/he.length):0,label:oe.name}}),N=[V,...N]}as(N)},[H,se,M]),l.useEffect(()=>{as(N=>{const R=N.filter(oe=>oe.id===Hs),V=et(N.filter(oe=>oe.id!==Hs),m);return[...R,...V]})},[m]);const ue=l.useMemo(()=>v?.map((N,R)=>e.jsx("option",{"data-testid":N.value,value:N.value,children:N.title},"select-course-"+R)),[v,a]),B=l.useMemo(()=>ve.map(N=>{const R=N.id,V=N.student,oe=Object.entries(N).map(([he,qe])=>{if(he==="id"||he==="student")return null;let xs=null;const cs=qe;let Nt=null;return typeof cs.score=="number"&&(Nt=cs.label,xs=R===Hs&&cs.score<=0?e.jsx(d,{id:"not-applicable",defaultMessage:"N/A"}):R===Hs?e.jsx(Ye,{qa:`${R}-${he}-score`,...w,percentage:cs.score}):cs.score>=0?e.jsx(qs,{qa:`${R}-${he}`,label:Nt,onClick:()=>wi(R,he),children:e.jsx(Ye,{qa:`${R}-${he}-score`,...w,percentage:cs.score})}):e.jsx(d,{id:"not-applicable",defaultMessage:"N/A"})),e.jsx("td",{className:L.includes(he)?he===L[W]?"current-highlight-match":"all-highlighted-matches":"",children:xs},`${R}-${he}`)}),fe=A.some(he=>R===he._id);return e.jsxs("tr",{"data-testid":R,children:[w.hideUsersColumn?null:e.jsx("th",{children:e.jsx(gn,{selected:fe,onClick:()=>ki(R),children:V})}),oe]},`${R}`)}),[ve,w,A,L,W]),Z=l.useMemo(()=>se.reduce((N,R)=>(N[R._id]=l.createRef(),N),{}),[se]),bs=l.useMemo(()=>se.map(N=>{const R=Dn(N._id,m);return e.jsx("th",{scope:"col",ref:Z[N._id],className:L.includes(N._id)?N._id===L[W]?"current-highlight-match":"all-highlighted-matches":"",children:e.jsx(fs,{title:N.name,ariaLabel:N.name,sortDirection:R,size:na.SMALL,onClick:()=>Ti(N._id,"number"),isWidthLimited:!0,children:N.name})},N._id)}),[se,m,W,Z,L]);l.useEffect(()=>{if(ne.trim()===""){Ce(-1),q([]);return}const N=se.filter(R=>R.name.toLowerCase().includes(ne.toLowerCase())).map(R=>R._id);q(N),Ce(N.length>0?0:-1),N.length>0&&Z[N[0]]?.current&&Ss(0,N)},[se,Z,ne]);const Ss=l.useCallback((N,R=L)=>{R[N]&&Z[R[N]]?.current&&(Ce(N),Z[R[N]].current.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}))},[L,Z,Ce]),tt=()=>Ss((W+1)%L.length),at=()=>Ss((W-1+L.length)%L.length),Mi=async()=>{const N=[{key:"student",label:"Student",format:"string"}];se.forEach(fe=>{N.push({key:fe._id,label:fe.name,format:"string"})});const R=[];ve.forEach(fe=>{const he=[];he.push({key:"student",value:fe.student}),Object.entries(fe).forEach(([qe,xs])=>{(xs.score||xs.score===0)&&he.push({key:qe,value:xs.score.toString()})}),R.push(he)});const V={filename:"Completion Report",data:{name:"Markbook",cols:N,rows:R}},oe=await an(Ke.current,JSON.stringify(V));Yt(oe),z.track($.TeachCourseMarkbookDownload,{[g.ClassId]:t?.classInfo?._id,[g.ClassName]:t?.classInfo?.name,[g.CourseId]:h?._id,[g.CourseName]:h?.name})},Ti=(N,R)=>{function V(fe,he,qe){return fe[he][qe]}const oe=Ge(N,R,m,V,"score");C(oe)},pn=(N,R)=>{const V=Ge(N,R,m);C(V)},wi=(N,R)=>{Q(!0),ke(N),me(R)},ki=N=>{const R=A.some(V=>V._id===N);T(R?A.filter(V=>V._id!==N):[...A,{_id:N}])},Ni=N=>{const R=N.currentTarget.checked;p(R)},jn=N=>{const R=N||be;if(M&&A.length>0){const V=R.filter(oe=>A.some(fe=>fe._id===oe._id));K(V)}else R&&R.length>0&&K(R)},Di=(N,R)=>{const V=h?.topics?.find(oe=>oe.topicId===N);V&&z.track($.TeachCourseMarkbookTopicSelected,{[g.ClassId]:t?.classInfo?._id,[g.ClassName]:t?.classInfo?.name,[g.CourseId]:h?._id,[g.CourseName]:h?.name,[g.TopicId]:V.topicId,[g.TopicName]:V.name,[g.UserId]:Xe,[g.NewState]:R===!0?"on":"off"})},Ei=(N,R)=>{const V=h?.topics?.find(fe=>fe.subtopics.find(he=>he.subtopicId===N));if(!V)return;
5const oe=V.subtopics.find(fe=>fe.subtopicId===N);oe&&z.track($.TeachCourseMarkbookSubtopicSelected,{[g.ClassId]:t?.classInfo?._id,[g.ClassName]:t?.classInfo?.name,[g.CourseId]:h?._id,[g.CourseName]:h?.name,[g.TopicId]:V.topicId,[g.TopicName]:V.name,[g.SubtopicId]:oe.subtopicId,[g.SubtopicName]:oe.name,[g.UserId]:Xe,[g.NewState]:R===!0?"on":"off"})},Li=N=>{const R=b(N);z.track($.TeachCourseMarkbookMenuOptions,{[g.ClassId]:t?.classInfo?._id,[g.ClassName]:t?.classInfo?.name,[g.CourseId]:h?._id,[g.CourseName]:h?.name,[g.UserId]:Xe,[g.Property]:N,[g.NewState]:R[N]===!0?"on":"off"})},_i=l.useCallback(N=>{if(N===Ft.CustomRange){x(!0);return}else i!==N&&n({timeSpan:N})},[i,x,n]),Ri=Dn("student",m);let kt=null;const fn=l.useMemo(()=>{const N={},R=[];return se?.length||ve?.length?(se.forEach(V=>{Object.entries(V?.students).forEach(([oe,fe])=>{fe?.lastResult?.date&&(R.includes(oe)||R.push(oe),N[V._id]?N[V._id].students.push(oe):N[V._id]={id:V._id,name:V.name,students:[oe]})})}),{users:ve.filter(V=>R.includes(V.id)),nuggets:Object.values(N)}):{users:[],nuggets:[]}},[se,ve]);ve.length===0&&!Re&&!r&&te?kt=e.jsx(As,{children:e.jsx(k,{children:e.jsxs(Se,{qa:"max-students-markbook-tab",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"markbook-max-students-error-title",defaultMessage:"Sorry! This class is too big to load the Markbook."})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"markbook-max-students-error-message",defaultMessage:"Please contact {supportEmail} or your account manager for assistance with data for this class.",values:{supportEmail:e.jsx("a",{className:"link",href:"mailto:[email protected]",onClick:N=>N.stopPropagation(),children:"[email protected]"})}})})]})})}):ve.length===0&&!Re&&!r?kt=e.jsx(As,{children:e.jsx(k,{children:e.jsxs(Se,{qa:"no-students-markbook-tab",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"markbook-no-students-error-title",defaultMessage:"No Students"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"markbook-no-students-error-message",defaultMessage:"You currently don't have any students."})})]})})}):kt=e.jsxs(e.Fragment,{children:[e.jsx(Ou,{courseId:a,courseTopics:h?.topics,dateSelectionName:i||Ft.CurrentAcademicYear,selectOpts:ue,selectedSubtopics:_,selectedStudentsCount:A.length,showSelected:M,viewConfig:w,setSelectRowsConfig:Ni,setCourseId:S,changeDataRange:_i,changeViewConfig:Li,download:Mi,topicToggled:Di,subtopicToggled:Ei,setSelectedSubopics:Oe}),e.jsx(Ps,{children:e.jsxs(Ps.CTA,{children:[ne.length>0&&e.jsxs(zr,{children:[e.jsx(J,{variant:"secondary",size:"tiny",onClick:at,icon:cr,disabled:L.length===0}),e.jsx(tc,{tag:` ${W+1}/${L.length} `,variant:ac.MUTED}),e.jsx(J,{variant:"secondary",size:"tiny",onClick:tt,icon:Wa,disabled:L.length===0})]}),e.jsx(Xr,{performSearch:N=>D(N),defaultPlaceholder:"Find Nugget",placeholderId:"markbook-find-nugget-search-placeholder",searchTimeout:500})]})}),Re?e.jsx(eo,{type:"independent"}):e.jsx(Fs,{children:e.jsx(Bu,{sortingOrder:Ri,sortColumnStudent:pn,tableThs:bs,tableTds:B,hideUsersColumn:w.hideUsersColumn})})]});const{deviceType:Pi}=Ja();return e.jsx(e.Fragment,{children:e.jsxs(Hr,{students:fn.users,nuggets:fn.nuggets,shouldDisplayNugget:(N,R)=>N.students.includes(R.id),getNuggetProp:$u,getStudentProp:Gu,children:[e.jsx(Wr,{nuggets:se.filter(N=>N._id===ce),children:kt}),e.jsx(Js,{dismissLabel:s.formatMessage({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),floatingDismiss:Pi!=="phone",modalActive:G,onExit:()=>Q(!1),size:"xxlarge",qa:"markbook-qla-modal",children:e.jsx(Js.Body,{children:e.jsx(Vr,{userId:ae,nuggetId:ce})})})]})})},Vh=tn(Uu),da=s=>{const{hasPanel:t}=s;return e.jsxs(Se,{hasPanel:t,qa:"widget--empty",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"teacher-dashboard--no-activity--title",defaultMessage:"No activity yet!"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"teacher-dashboard--no-activity--message",defaultMessage:"Once your students do some nuggets you'll see their activity here."})})]})},hn=({totalCount:s,pageLimit:t,currentOffset:a,update:n})=>s<t?null:e.jsx(Yr,{maxPages:Math.ceil(s/t),onNextClick:()=>n(a+t),onPrevClick:()=>n(a-t),currentPage:a>1?Math.floor(a/t)+1:1,goToPage:r=>n((r-1)*t)}),pt={"student-name":{propName:"user.lastName",customGetter:s=>{const t=s?.user?.firstName,a=s?.user?.lastName;return a?`${a||" "}${t}`:-1},type:"string"},nuggets:{customGetter:s=>s?.summary?.studySessionsCompleted||-1,type:"number"},questions:{customGetter:s=>s?.summary?.questionsAnswered?.sum||-1,type:"number"},"study-time":{customGetter:s=>s?.summary?.durationActualSec?.sum||-1,type:"number"},"average-last-score":{customGetter:s=>s?.summary?.percentScore?.latest?.mean||-1,type:"number"}},Qn=()=>Ge("student-name","string",{"student-name":pt["student-name"]},pt["student-name"]?.customGetter),lt=300,Hu=s=>{const{classId:t,subjectIds:a,subjectGroupIds:n}=s,{pathname:r}=He(),{timeSpan:i,dataQueryString:o,updateTeacherDashboardFilters:c,startDate:x,endDate:u,setShowCustomDatePicker:f}=l.useContext(Pe),{setSelectedStudent:m}=l.useContext(vt),C=dr(i,x,u,s.endTime),[j,v]=l.useState(0),[h,S]=l.useState(Qn()),y=l.useMemo(()=>({variables:{input:{subjectIds:a,subjectGroupIds:n,classId:t,userRoles:["student"],...C||{},limit:lt,offset:j,courseTypes:["standard"]}},fetchPolicy:"network-only"}),[a,n,t,C,j]),I=Tt(yr,y),w=l.useCallback((E,F)=>{if(E===Ft.CustomRange){f(!0);return}else i!==E&&(z.track($.TeacherDashboardOverviewTimeFilterChanged,{[g.ClassId]:t,[g.SelectedTimeFilter]:F}),c({timeSpan:E}))},[i,t,f,c]),b=r.slice(0,r.indexOf("/overview")),M=(E,F,H)=>{m&&m({id:E,name:F,settingsUrl:H}),z.track($.TeacherDashboardOverviewStudentSelected,{[g.ClassId]:t,[g.StudentId]:E})},p=E=>{const F=Ge(E,pt[E].type,h,pt[E].customGetter,pt[E].propName);S(F),z.track($.TeacherDashboardOverviewTableSortChanged,{[g.ClassId]:t,[g.SortedColumn]:E.replace("-"," "),[g.SortOrder]:F[E]?.order})},A=l.useMemo(()=>I?.data?.classActivity?.userSummaries?et(I?.data?.classActivity?.userSummaries,h):[],[h,I.data]),T=I.data?.classActivity?.prePaginationCount<=lt&&I.data?.classActivity?.classSummary?.durationActualSec?.sum>0,_=I.data?.classActivity?.prePaginationCount>=lt||T,O=I.data?.classActivity.prePaginationCount>lt;return e.jsxs(k,{qa:"teacher-dashboard--class-activity",children:[e.jsxs(k.Header,{children:[e.jsx(k.Title,{children:e.jsx(d,{id:"class-activity--title",defaultMessage:"Class Activity"})}),e.jsx(En,{children:e.jsx(En.Block,{children:e.jsx(ur,{timeSpan:i,onDateFilterChange:w,startDate:x,endDate:u,isWidget:!0})})})]}),e.jsx(k.Body,{isScrollable:!0,children:e.jsxs(ea,{query:I,children:[T&&e.jsxs(us,{children:[e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.NUGGETS,children:[e.jsx(De.Value,{children:I.data?.classActivity?.classSummary?.studySessionsCompleted||0}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--nuggets-attempted",defaultMessage:"Nuggets Attempted"})})]})}),e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.QUESTIONS,children:[e.jsx(De.Value,{children:I.data?.classActivity?.classSummary?.questionsAnswered.sum||0}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--questions-answered",defaultMessage:"Questions Answered"})})]})}),e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.TIME,children:[e.jsx(De.Value,{children:e.jsx(Ms,{time:I.data?.classActivity?.classSummary?.durationActualSec.sum||0,shortenUnits:!0})}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--time-spent-studying",defaultMessage:"Time Spent Studying"})})]})})]}),_&&e.jsxs(e.Fragment,{children:[e.jsxs(ts,{striped:!0,qa:"teacher-dashboard--class-activity--table",children:[e.jsx("thead",{children:e.jsx("tr",{children:["student-name","nuggets","questions","study-time","average-last-score"].map(E=>e.jsx("th",{scope:"col",children:O?e.jsx(d,{id:`table-heading--${E}`,defaultMessage:E}):e.jsx(fs,{onClick:()=>p(E),sortDirection:h[E]?.order,qa:"table-header-sortable",children:e.jsx(d,{id:`table-heading--${E}`,defaultMessage:E})})},E))})}),e.jsx("tbody",{children:A.map(E=>
5e.jsxs("tr",{children:[e.jsx("th",{scope:"row",children:e.jsx(nn,{children:e.jsx(Os,{to:`${b}/students/${E.user.userId}?${o}`,onClick:()=>M(E.user.userId,`${E.user.firstName} ${E.user.lastName}`,`${b}/students/${E.user.userId}/settings`),children:e.jsxs(ss,{children:[e.jsx(ss.Avatar,{children:e.jsx(Xt,{profilePic:E.user.avatar})}),e.jsx(ss.Name,{children:e.jsxs("span",{children:[E.user.lastName,", ",E.user.firstName]})})]})},`link-user-${E.user.userId}`)})}),e.jsx("td",{children:E.summary?.studySessionsCompleted||0}),e.jsx("td",{children:E.summary?.questionsAnswered.sum||0}),e.jsx("td",{children:e.jsx(Ms,{time:E.summary?.durationActualSec.sum||0,shortenUnits:!0})}),e.jsx("td",{children:E.summary?.percentScore?.latest&&E.summary?.percentScore?.latest.mean!==-1&&e.jsx(Ye,{percentage:Math.round(E.summary?.percentScore?.latest.mean/100)})})]},E.user.userId))})]}),e.jsx(hn,{update:E=>{v(E),S(Qn())},pageLimit:lt,currentOffset:j,totalCount:I.data.classActivity.prePaginationCount})]}),!I.loading&&I.data&&!_&&!T&&e.jsx(da,{hasPanel:!0})]})})]})},Wu=s=>{const{classId:t,subjectIds:a,subjectGroupIds:n,onGetCourseList:r}=s,{dataQueryString:i,baseData:o,contextLoading:c}=l.useContext(Pe),x=l.useMemo(()=>({variables:{input:{subjectIds:a,subjectGroupIds:n,classId:t,courseTypes:["standard"]}},fetchPolicy:"network-only"}),[a,n,t]),u=Tt(qo,x),{pathname:f}=He(),m=f.slice(0,f.indexOf("/overview"));l.useEffect(()=>{u?.data?.classCourseList&&r&&r(u.data.classCourseList)},[u.data,r]);const C=(h,S)=>{z.track($.TeacherDashboardOverviewCourseSelected,{[g.ClassId]:s.classId,[g.CourseId]:h,[g.CourseName]:S})},j=!!o?.courses?.length,v=l.useMemo(()=>{const h=new URLSearchParams(i);return h.delete("subjectId"),h.delete("courseId"),h.toString()},[i]);return e.jsxs(k,{qa:"teacher-dashboard--courses",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"class-courses--title",defaultMessage:"Class Courses"})})}),e.jsx(k.Body,{children:e.jsxs(ea,{query:u,children:[u.data&&!u.loading&&j&&e.jsx(Nn,{qa:"teacher-dashboard--courses--list",children:u.data.classCourseList?.courses?.map(h=>e.jsx(Nn.Item,{children:e.jsx(Os,{to:`${m}/courses?${v}&courseId=${h.courseId}&subjectId=${h.subject.labelId}`,onClick:()=>C(h.courseId,h.name),children:e.jsxs(Fe,{children:[e.jsx(Fe.Thumbnail,{children:e.jsx(At,{size:60,completionPercentage:0,scorePercentage:0,children:e.jsx($s,{item:{iconCode:h.icon.iconCode,iconUrl:h.icon.url,subject:h.subject}})})}),e.jsxs(Fe.Main,{children:[e.jsx(Dr,{subjectName:h.subject.name}),e.jsx(xe.ItemTitle,{children:h.name})]})]})})},h.courseId))}),!c&&!j&&e.jsx(da,{hasPanel:!0})]})})]})},Vu=(s,t)=>{const a=t.map(f=>f.name),n=s.map(f=>f.name),r=t.map(f=>f.id),i=s.map(f=>f.id),o=Kn(a),c=Yn(n,a),x=Kn(r),u=Yn(i,r);return{subjectName:o,subjectGroupName:c,subjectId:x,subjectGroupId:u}},Yn=(s,t)=>s.length>0?s:t.length===0&&s.length===0?["All"]:["Other"],Kn=s=>s.length>0?s:["All"],zu=s=>{const{classId:t,...a}=s,n=Tt(zl,{variables:{input:{classId:t}},fetchPolicy:"network-only"}),r=l.useCallback(i=>i.data?.classSubjects,[]);return e.jsx(Ql,{...a,query:n,getSubjectFilterDataFromQuery:r})},xn=({status:s,size:t=Za.SMALL})=>{const a=Qu(),n=fc[s]||Jt.DEFAULT;return e.jsx(Zt,{size:t,variant:n,qa:`status-${s}`,children:a(s)})},Qu=()=>{const{formatMessage:s}=de();return t=>{switch(t){case"CLOSED":return s({id:"assignment-status-completed",defaultMessage:"Completed"});case"IN_PROGRESS":return s({id:"assignment-status-in-progress",defaultMessage:"In Progress"});case"ENDED":return s({id:"assignment-status-ended",defaultMessage:"Overdue"});default:return s({id:`assignment-status-${t.toLowerCase()}`,defaultMessage:gr(t.toLowerCase())})}}},Yu=5,Ku=s=>{const{classId:t,subjectIds:a}=s,n=St(),r=Er(),i=l.useCallback(async(m,C,j)=>{const v={classId:t,subjectIds:a?.join()||void 0};return await Bo(m,{...C,...v},j)},[t,a]),o=ra(i,{itemsPerPage:Yu}),{data:c,loading:x,error:u}=o,f=m=>{z.track($.TeacherDashboardClassRecentAssignmentsNavigationChanged,{[g.Navigate]:m,[g.ClassId]:t})};return e.jsxs(k,{qa:"recent-assignments-widget",children:[e.jsxs(k.Header,{children:[e.jsxs(k.Title,{children:[e.jsx(d,{id:"td-recent-assignments-widget-title",defaultMessage:"Recent Assignments"}),e.jsx("span",{children:" "}),e.jsx(k.Help,{qa:"recent-assignments-widget-help",children:e.jsx(mr,{label:"Show help",placement:xr.BOTTOM_END,triggerIcon:hr.HELP,qa:"tooltip-help",children:e.jsx(le.Paragraph,{children:e.jsx(d,{id:ct.help.id,defaultMessage:ct.help.message})})})})]}),c?.data&&!x&&!u&&e.jsx(k.Controls,{children:e.jsx(J,{variant:"muted",icon:Kt,size:"tiny",reversed:!0,onClick:()=>n(`/teach/classes/${t}/assignments`),qa:"view-all-button",children:e.jsx(d,{id:"view-all-button",defaultMessage:"View all"})})})]}),e.jsxs(on,{isScrollable:!0,loading:x,emptyState:{isEmpty:!c?.data||c?.data.length===0,title:ct.emptyTitle,content:ct.emptyMessage},errorState:{error:u,customErrorMessage:ct.customError},children:[c?.data.map(m=>{const{assignment:C,summary:j}=m,{assignmentId:v,name:h,schedule:S}=C,{completion:y,averageLastScore:I}=j||{},w=Ue(y?.percentage),b=Ue(I);return e.jsx("a",{href:`teach/classes/${t}/assignments/${v}/assignment-markbook`,"data-testid":"recent-assignment-link",children:e.jsx(ze,{variant:Ks.BORDER,qa:"recent-assignment-panel",children:e.jsxs(Fe,{children:[e.jsx(Fe.Thumbnail,{children:e.jsx(At,{completionPercentage:w,scorePercentage:b,size:48,hasPlaceholder:!0})}),e.jsxs(Fe.Main,{children:[e.jsx(xn,{status:C.status}),e.jsx(pl,{subject:C.subject?.name??"",children:r(C?.subject?.name)}),e.jsx(xe.ItemTitle,{qa:"assignment-name",children:h}),e.jsxs(Dt,{direction:jl.ROW,children:[e.jsx(Dt.Item,{children:e.jsxs(Je,{size:ga.SMALL,children:[e.jsxs(Je.Label,{children:[e.jsx(Je.Indicator,{children:e.jsx(Cn,{type:vn.COMPLETION,size:yn.SMALL,score:w})}),e.jsx(d,{id:"completed-by",defaultMessage:"Completed by"})]}),e.jsx(Je.Value,{qa:"completed-by-value",children:e.jsx(d,{id:"completed-by-count-of-total",defaultMessage:"{count} of {total}",values:{count:y?.count,total:y?.total}})})]})}),I?e.jsx(Dt.Item,{qa:"average-score",children:e.jsxs(Je,{size:ga.SMALL,children:[e.jsxs(Je.Label,{children:[e.jsx(Je.Indicator,{qa:"average-score-indicator",children:e.jsx(Cn,{type:vn.SCORE,size:yn.SMALL,score:b})}),e.jsx(d,{id:"average-score",defaultMessage:"Average Score"})]}),e.jsxs(Je.Value,{qa:"average-score-value",children:[b,e.jsx(Je.Unit,{children:"%"})]})]})}):null,e.jsx(Dt.Item,{children:e.jsxs(Je,{size:ga.SMALL,children:[e.jsx(Je.Label,{children:e.jsx(d,{id:"due",defaultMessage:"Due"})}),e.jsx(Je.Value,{qa:"due-date",children:S?.dueAt&&so(new Date(S?.dueAt),to)})]})})]})]})]})})},v)}),e.jsx(aa,{trackPageNavigation:f,...o})]})]})},ct={help:{id:"td-recent-assignments-widget-help",message:"This widget shows assignments in progress or due in the last 14 days"},customError:{id:"error-loading-recent-assignments",message:"Couldn't load Recent Assignments."},emptyTitle:{id:"no-recent-assignments",message:"No recent assignments"}
5,emptyMessage:{id:"no-recent-assignments-message",message:"This widget displays assignments that are in progress or due in the last 14 days."}},zh=s=>{const t=fl(),[a,n]=l.useState({subjectIds:[],subjectGroupIds:[]}),[r,i]=l.useState(void 0),[o,c]=l.useState([]);We("teacher-dashboard-class-overview");const x=l.useCallback(f=>{const{subjectName:m,subjectGroupName:C,subjectId:j,subjectGroupId:v}=Vu(f.subjectGroups,f.subjects);z.track($.TeacherDashboardOverviewSubjectFiltersChanged,{[g.ClassId]:s.classId,[g.SubjectName]:m,[g.SubjectGroupName]:C,[g.SubjectId]:j,[g.SubjectGroupId]:v}),n({subjectIds:f.subjects.map(h=>h.id),subjectGroupIds:f.subjectGroups.map(h=>h.id)})},[s.classId]),u=l.useCallback(f=>{if(!Array.isArray(r)){const m=new Set(f.courses.map(C=>C.subject.labelId));i([...m])}},[r]);return e.jsx(As,{children:e.jsxs(jd,{children:[e.jsx(Ps,{children:e.jsx(Ps.Controls,{children:e.jsx(zu,{onSubjectFilterSet:x,classId:s.classId,validSubjectIds:r,onSubjectsFetched:c})})}),e.jsx(P,{children:e.jsx(P.Col,{xs:12,children:e.jsxs(P,{children:[e.jsx(P.Col,{md:7,xs:12,children:e.jsx(Hu,{classId:s.classId,...a})}),e.jsx(P.Col,{md:5,xs:12,fullHeightContent:!1,children:e.jsxs(P,{children:[t&&e.jsx(P.Col,{xs:12,children:e.jsx(Ku,{classId:s.classId,subjectIds:o},o.join())}),e.jsx(P.Col,{xs:12,children:e.jsx(Wu,{classId:s.classId,onGetCourseList:u,...a})})]})})]})})})]})})},Xu=s=>{const{studentId:t}=s,a=He(),n=de(),{addBreadcrumb:r}=l.useContext(Lr),{setStudentIsAdminPage:i,selectedStudent:o}=l.useContext(vt);return We("teacher-dashboard-student-overview-settings"),l.useEffect(()=>{o&&r({path:a.pathname,title:n.formatMessage({id:"my-dashboard-student-settings",defaultMessage:"Student Settings"})}),i(!0)},[a.pathname,r,i,o,n]),l.useEffect(()=>()=>i(!1),[i]),e.jsx(Jl,{userId:t,mode:"student"})},Ju=s=>!(s instanceof Error),Zu=s=>{const t=l.useCallback(async o=>{const c=await pr(s,o),x=js(c),f=(await ao(c,o,!0,"cohort")).filter(Ju).map(j=>j._id??"").filter(Boolean),m=await Promise.all(f.map(j=>bl(o,j).catch(()=>null))),C=new Map;for(const j of m){if(!j)continue;const v=j.classProperties?.smartAssessmentProperties??[];for(const h of v){if(h.activationStatus!=="active"&&h.activationStatus!=="deactivated")continue;const S={classId:j._id,className:j.name??""},y=h.activationStatus==="active",I=C.get(h.smartAssessmentId);I?(I.isActive=I.isActive||y,I.classes.some(w=>w.classId===S.classId)||I.classes.push(S)):C.set(h.smartAssessmentId,{smartAssessmentId:h.smartAssessmentId,name:h.name??"",subject:h.subject,classes:[S],isActive:y})}}return{assessments:or(Array.from(C.values()),"name"),studentName:x}},[s]),{data:a,loading:n,error:r,load:i}=Ee(t,!0);return{assessments:a?.assessments??[],studentName:a?.studentName??"",loading:n||!a&&!r,error:r,refetch:i}},Sa=50,Xn=4,Jn={Completed:2,InProgress:1,NotStarted:0},eg=({assessment:s,studentId:t,studentName:a,onOutcome:n})=>{const r=s.smartAssessmentId,i=lc(s),o=s.classes[0]?.className??"",c=s.classes.length>1?`${o} +${s.classes.length-1}`:o,x=Bs(),u=no(),f=hs(),m=ro(x),[C,j]=l.useState(0),[v,h]=l.useState(0),[S,y]=l.useState(),[I,w]=l.useState(!1),[b,M]=l.useState(!1),[p,A]=l.useState(!1),[T,_]=l.useState(!1),[O,E]=l.useState(!1),[F,H]=l.useState(""),K=s.classes[C],be=K?.classId??"",re=K?.className??"",ne=cc(dc,{variables:{input:{classId:be,testId:r,search:a,offset:v,limit:Sa,sortBy:"Name",sortOrder:"Ascending"}},fetchPolicy:"network-only"}),D=ne.data?.iaClassPayload?.iaClass?.students??[],L=ne.data?.iaClassPayload?.totalEntries??0,q=D.find(Le=>Le.studentId===t),W=v+Sa<L,Ce=C+1<s.classes.length;l.useEffect(()=>{if(ne.loading||ne.error||F||I)return;const Le=q?.test.status;if(q&&(Le==="InProgress"||Le==="Completed")){y({student:q,classId:be,className:re}),w(!0);return}if(q&&y(X=>!X||(Jn[Le??""]??0)>(Jn[X.student.test.status]??0)?{student:q,classId:be,className:re}:X),!q&&W){h(X=>X+Sa);return}if(Ce){j(X=>X+1),h(0);return}w(!0)},[ne.loading,ne.error,F,I,q,W,Ce,be,re]);const se=S?.student,G=S?.classId??s.classes[0]?.classId??"",Q=S?.className??o,te=!I&&!ne.error&&!F,ye=()=>{se&&(ag(u,se.studentId,r,Q),_(!0))},ae=async()=>{A(!0);try{(await pc(f.current,r,t)).overridden&&(await ne.refetch(),y(void 0),j(0),h(0),w(!1)),sg({classId:G,className:Q,testId:r,asse
5ssmentName:s.name,studentId:t})}catch(Le){H(Le.message)}M(!1),A(!1)},ke=()=>{E(!0),ce().finally(()=>E(!1))},ce=async()=>{const Le=await jc({download:"pdf",classId:G,testId:r,userId:t},f.current);Yt(Le.url,Le.url.split("/").pop()),tg({classId:G,className:Q,testId:r,assessmentName:s.name,studentId:t})},me=se?.test.status,ve=!!se?.test.resultLevels,as=ve?`${se.test.resultLevels.level} - ${se.test.resultLevels.subLevel}`:"",ls=!!se&&(me==="InProgress"||me==="Completed"),Ke=!!se&&(ls||s.isActive),Xe=ne.error||F?"error":te?"pending":Ke?"visible":"empty";return l.useEffect(()=>{n(s.smartAssessmentId,Xe)},[n,s.smartAssessmentId,Xe]),Xe==="empty"?null:e.jsxs("tr",{"data-testid":"smart-ia-assessment-row","data-progression":!!se&&me!=="NotStarted",children:[e.jsx("th",{scope:"row","data-testid":"smart-ia-assessment-name",children:s.name}),e.jsx("td",{"data-testid":"smart-ia-assessment-subject",children:s.subject??""}),e.jsx("td",{"data-testid":"smart-ia-assessment-cohort",children:c}),te?e.jsx("td",{colSpan:Xn,"data-testid":"smart-ia-assessment-row-loading",children:e.jsx(_e,{type:"simple"})}):ne.error||F?e.jsx("td",{colSpan:Xn,"data-testid":"smart-ia-assessment-row-error",children:e.jsx(J,{variant:"naked",size:"tiny",qa:"smart-ia-row-retry",onClick:()=>{H(""),ne.refetch()},children:e.jsx(d,{id:"smart-ia-row-error-retry",defaultMessage:"Couldn't load - retry"})})}):e.jsxs(e.Fragment,{children:[e.jsx("td",{"data-testid":"smart-ia-assessment-status",children:e.jsx(uc,{status:me})}),e.jsx("td",{"data-testid":"smart-ia-assessment-completed",children:io(se?.test.completionDate,se?.test.completionTime)}),e.jsx("td",{"data-testid":"smart-ia-assessment-result",children:e.jsx(gc,{level:as,isWrittenAssessment:i,hasResults:ve,flagged:se?.test.resultLevels?.flagged,onViewAnswer:ye})}),e.jsx("td",{style:{textAlign:"right"},children:ls&&e.jsx(mc,{toggleQa:"smart-ia-dropdown-btn",canReset:m,onReset:()=>M(!0),canDownloadCertificate:!O&&me==="Completed",onDownloadCertificate:ke,onViewAnswer:i?ye:void 0,canViewAnswer:ve})})]}),b&&e.jsx(hc,{closeResetModal:()=>M(!1),resetStudent:ae,isResetButtonLoading:p}),T&&se&&e.jsx(xc,{studentIndex:0,students:[se],closeModal:()=>_(!1),student:se,testId:r,testName:s.name,cohortName:Q,viewedFrom:ia.TeacherDashboardStudentTab,onViewAnswerIndexChange:()=>null,hasNextPage:!1,hasPrevPage:!1,goToPrevPage:()=>null,goToNextPage:()=>null})]})},sg=({classId:s,className:t,testId:a,assessmentName:n,studentId:r})=>{z.track($.AssessmentsResetStudent,{[g.ClassId]:s,[g.ClassName]:t,[g.AssessmentId]:a,[g.AssessmentName]:n,[g.StudentId]:r,[g.ResultsViewedFrom]:ia.TeacherDashboardStudentTab})},tg=({classId:s,className:t,testId:a,assessmentName:n,studentId:r})=>{z.track($.AssessmentsIndividualCertificateDownloaded,{[g.ClassId]:s,[g.ClassName]:t,[g.AssessmentId]:a,[g.AssessmentName]:n,[g.StudentId]:r,[g.ResultsViewedFrom]:ia.TeacherDashboardStudentTab})},ag=(s,t,a,n)=>{z.track($.ViewWrittenAnswerModalOpened,{[g.UserId]:s,[g.StudentId]:t,[g.TestId]:a,[g.CohortName]:n,[g.ResultsViewedFrom]:ia.TeacherDashboardStudentTab})},dt=({children:s})=>e.jsx(Fs,{children:e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"student-smart-ia-results-title",defaultMessage:"Smart IA Results"})})}),e.jsx(k.Body,{isScrollable:!0,children:s})]})}),ng=[{key:"name",id:"smart-ia-table-title-assessment",defaultMessage:"Assessment"},{key:"subject",id:"smart-ia-table-title-subject",defaultMessage:"Subject"},{key:"cohort",id:"smart-ia-table-title-cohort",defaultMessage:"Cohort"},{key:"status",id:"assessments-students-table-title-progress",defaultMessage:"Status"},{key:"completed",id:"assessments-students-table-title-completed",defaultMessage:"Completed"},{key:"result",id:"assessments-students-table-title-level",defaultMessage:"Result"}],Zn=e.jsxs(Se,{hasPanel:!0,qa:"widget-empty-state",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"smart-ia-empty-title",defaultMessage:"No Smart IA assessments"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"smart-ia-empty-description",defaultMessage:"This student has no Smart IA assessments to show yet."})})]}),rg=({studentId:s})=>{const{assessments:t,studentName:a,loading:n,error:r,refetch:i}=Zu(s),[o,c]=l.useState({});We("teacher-dashboard-student-smart-ia-results");const x=l.useCallback((m,C)=>{c(j=>j[m]===C?j:{...j,[m]:C})},[]);if(n)return e.jsx(dt,{children:e.jsx(_e,{type:"widget",overlay:!0})});if(r)return e.jsx(dt,{children:e.jsx($t,{action:i,error:r,showActionButton:!0})});if(!t.length)return e.jsx(dt,{children:Zn});const u=t.every(m=>o[m.smartAssessmentId]&&o[m.smartAssessmentId]!=="pending"),f=t.some(m=>o[m.smartAssessmentId]==="visible"||o[m.smartAssessmentId]==="error");return u&&!f?e.jsx(dt,{children:Zn}):e.jsx(dt,{children:e.jsxs(ts,{paddingType:Sl.LOOSE,qa:"smart-ia-assessments-table",striped:!0,hover:!0,sticky:!0,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[ng.map(m=>e.jsx("th",{scope:"col","data-testid":`smart-ia-table-${m.key}-column-header`,children:e.jsx(d,{id:m.id,defaultMessage:m.defaultMessage})},m.key)),e.jsx("th",{scope:"col","data-testid":"smart-ia-table-actions-column-header"})]})}),e.jsx("tbody",{children:t.map(m=>e.jsx(eg,{assessment:m,studentId:s,studentName:a,onOutcome:x},m.smartAssessmentId))})]})})},ig=()=>{const s=Bs(),t=os(),a=He(),n=t.studentId,{baseData:r}=l.useContext(Pe),{selectedStudent:i,setSelectedStudent:o}=l.useContext(vt),{addBreadcrumb:c}=It(),x=Uo();We("teacher-dashboard-student-overview");const u=en(),f=_r();return l.useEffect(()=>{if(i===null&&o){const m=r?.users?.find(C=>C._id===n);m?o({id:m._id||"",name:js(m),settingsUrl:`${x("students",!0)}/settings`}):(async()=>{const j=await pr(n,s.accessToken||"");o({id:n||"",name:js(j),settingsUrl:`${x("students",!0)}/settings`})})()}},[s.accessToken,r?.users,x,i,o,n]),l.useEffect(()=>()=>o&&o(null),[o]),l.useEffect(()=>{i&&c({path:x("students",!0),title:i.name})},[c,i,x]),i?e.jsxs(e.Fragment,{children:[!Ka(a.pathname)&&e.jsx(Xl,{hasAssignmentsTab:u,hasLegacyAssignments:f,hasSmartIaTab:jr(s)}),e.jsx(fr,{})]}):null},og=()=>{const s=Bs(),{studentId:t}=os(),{dataQueryString:a}=l.useContext(Pe),{selectedStudent:n}=l.useContext(vt);We("teacher-dashboard-student-overview");const r=en(),i=_r(),o=jr(s);return e.jsx(Va,{children:e.jsxs(Be,{path:"/",element:e.jsx(ig,{}),children:[e.jsx(Be,{path:"settings",element:e.jsx(Xu,{studentId:t})}),r&&e.jsx(Be,{path:"assignments/:assignmentId/markbook",element:e.jsx(Fo,{studentId:t,userMode:nt.TEACHER})}),e.jsx(Be,{path:"overview",element:e.jsx(Yl,{user:{userId:t},qa:"teacher-dashboard-student-overview",userMode:nt.TEACHER})}),e.jsx(Be,{path:"courses",element:e.jsx(Kl,{studentId:t,userMode:nt.TEACHER})}),o&&e.jsx(Be,{path:"smart-ia-results",element:e.jsx(rg,{studentId:t})}),i&&e.jsx(Be,{path:"legacy-assignments",element:e.jsx($o,{studentId:t,userMode:nt.TEACHER})}),r&&e.jsx(Be,{path:"assignments/*",element:e.jsx(Go,{studentId:t,studentName:n?.name??"",userMode:nt.TEACHER})}),e.jsx(Be,{index:!0,element:e.jsx(oo,{to:`overview?${a||""}`,replace:!0})})]})})},Qh=tn(og),jt={"student-name":{propName:"user.lastName",customGetter:s=>{const t=s?.user?.firstName,a=s?.user?.lastName;return a?`${a||" "}${t}`:-1},type:"string"},nuggets:{customGetter:s=>s?.summary?.nuggetsCompleted||-1,type:"number"},questions:{customGetter:s=>s?.summary?.questionsAnswered?.sum||-1,type:"number"},"study-time":{customGetter:s=>s?.summary?.durationActualSec?.sum||-1,type:"number"},score:{customGetter:s=>s?.summary?.percentScore?.latest?.mean||-1,type:"number"}},lg=Object.keys(jt),er=()=>Ge("student-name","string",{},void 0,jt["student-name"].propName),_t=50,cg=s=>{const{classId:t,courseIds:a,startTime:n,endTime:r}=s,[i,o]=l.useState(er()),[c,x]=l.useState(0),{pathname:u}=He(),{dataQueryString:f}=l.useContext(Pe),{setSelectedStudent:m}=l.useContext(vt),C=Tt(yr,{variables:{input:{classId:t,courseIds:a,startTime:n,endTime:r,limit:_t,offset:c,userRoles:["student"],courseTypes:["standard"]}},fetchPolicy:"network-only"}),j=(b,M,p)=>{m&&m({id:b,name:M,settingsUrl:p}),z.track($.TeacherDashboardCoursesStudentSelected,{[g.CourseId]:a,[g.ClassId]:t,[g.StudentId]:b})},v=u.slice(0,u.indexOf("/course")),h=C.data?.classActivity?.prePaginationCount<=_t&&C.data?.classActivity?.classSummary?.durationActualSec?.sum>0,S=C.data?.classActivity?.prePaginationCount>=_t||h,y=b=>{const M=Ge(b,jt[b].type,i,jt[b].customGetter,jt[b].propName);o(M),z.track($.TeacherDashboardCoursesActivityTableSortChanged,{[g.ClassId]:t,[g.CourseId]:a,[g.SortedColumn]:b.replace("-"," "),[g.SortOrder]:M[b]?.order})},I=l.useMemo(()=>C?.data?.classActivity?.userSummaries?et(C?.data?.classActivity?.userSummaries,i):[],[i,C.data]),w=l.useMemo(()=>I.reduce((b,M)=>M?.summary?.nuggetsCompleted>0?b+M?.summary?.nuggetsCompleted:b,0),[I]);return e.jsxs(k,{qa:"course-activity",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"class-activity--title",defaultMessage:"Class Activity"})})}),e.jsx(k.Body,{children:e.jsxs(ea,{query:C,children:[h&&e.jsxs(us,{children:[e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.NUGGETS,children:[e.jsx(De.Value,{children:w}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--nuggets-attempted",defaultMessage:"Nuggets Attempted"})})]})}),e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.QUESTIONS,children:[e.jsx(De.Value,{children:C.data?.classActivity?.classSummary?.questionsAnswered.sum||0}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--questions-answered",defaultMessage:"Questions Answered"})})]})}),e.jsx(us.Item,{children:e.jsxs(De,{icon:Ys.TIME,children:[e.jsx(De.Value,{children:e.jsx(Ms,{time:C.data?.classActivity?.classSummary?.durationActualSec.sum||0,shortenUnits:!0})}),e.jsx(De.Label,{children:e.jsx(d,{id:"label--time-spent-studying",defaultMessage:"Time Spent Studying"})})]})})]}),S&&e.jsxs(e.Fragment,{children:[e.jsxs(ts,{striped:!0,qa:"course-activity--table",children:[e.jsx("thead",{children:e.jsx("tr",{children:lg.map(b=>e.jsx("th",{scope:"col",children:e.jsx(fs,{onClick:()=>y(b),sortDirection:i[b]?.order,children:e.jsx(d,{id:`table-heading--${b}`,defaultMessage:b})})},b))})}),e.jsx("tbody",{children:I.map(b=>e.jsxs("tr",{children:[e.jsx("th",{scope:"row",children:e.jsx(nn,{children:e.jsx(Os,{to:`${v}/students/${b.user.userId}?${f}`,onClick:()=>j(b.user.userId,`${b.user.firstName} ${b.user.lastName}`,`${v}/students/${b.user.userId}/settings`),children:e.jsxs(ss,{children:[e.jsx(ss.Avatar,{children:e.jsx(Xt,{profilePic:b.user.avatar})}),e.jsxs(ss.Name,{children:[b.user.lastName,", ",b.user.firstName]})]})},`link-user-${b.user.userId}`)})}),e.jsx("td",{children:b.summary?.nuggetsCompleted||0}),e.jsx("td",{children:b.summary?.questionsAnswered.sum||0}),e.jsx("td",{children:e.jsx(Ms,{time:b.summary?.durationActualSec.sum||0,shortenUnits:!0})}),e.jsx("td",{children:b.summary?.percentScore?.latest?b.summary?.percentScore?.latest.mean===-1?e.jsx(d,{id:"not-applicable",defaultMessage:"N/A"}):e.jsx(Ye,{percentage:Math.round(b.summary?.percentScore?.latest.mean/100)}):null})]}
5,b.user.userId))})]}),e.jsx(hn,{update:b=>{x(b),o(er())},pageLimit:_t,currentOffset:c,totalCount:C.data.classActivity.prePaginationCount})]}),C.data&&!h&&!S&&e.jsx(da,{hasPanel:!0})]})})]})},gt={name:{defaultMessage:"Name"},"study-count":{defaultMessage:"Studied by",sort:{[Qe.ASC]:"usersFinishedAsc",[Qe.DESC]:"usersFinishedDesc"}},score:{defaultMessage:"Score",sort:{[Qe.ASC]:"percentScoreAsc",[Qe.DESC]:"percentScoreDesc"}}},dg=Object.keys(gt),sr=30,ug=s=>{const{classId:t,courseId:a,startTime:n,endTime:r}=s,[i,o]=l.useState({id:"study-count",direction:Qe.DESC,offset:0}),{dataQueryString:c}=l.useContext(Pe),x=Tt(Ho,{variables:{input:{classId:t,courseId:a,startTime:n,endTime:r,limit:sr,offset:i.offset,userRoles:["student"],courseTypes:["standard"],sortType:gt?.[i.id]?.sort?.[i.direction]||void 0}},fetchPolicy:"network-only"}),{pathname:u}=He(),f=u.slice(0,u.indexOf("/courses")),m=x.data?.classNuggetActivity?.nuggetDetailsAndActivity,C=m&&x.data.classNuggetActivity.nuggetDetailsAndActivity.length>0,j=S=>{o(y=>{let I;return y.id===S?I={...y,direction:y.direction===Qe.DESC?Qe.ASC:Qe.DESC,offset:0}:I={id:S,offset:0,direction:Qe.DESC},z.track($.TeacherDashboardCoursesNuggetsTableSortChanged,{[g.ClassId]:t,[g.CourseId]:a,[g.SortedColumn]:S.replace("-"," "),[g.SortOrder]:I.direction}),I})},v=()=>{z.track($.TeacherDashboardCoursesViewMarkbookClicked,{[g.ClassId]:t,[g.CourseId]:a})},h=l.useMemo(()=>{const S=new URLSearchParams(c);return S.delete("nuggetId"),S.toString()},[c]);return e.jsxs(k,{qa:"course-completed-nuggets",children:[e.jsxs(k.Header,{children:[e.jsx(k.Title,{children:e.jsx(d,{id:"course-completed-nuggets--title",defaultMessage:"Completed Nuggets"})}),e.jsx(k.Controls,{children:e.jsx(le.Paragraph,{noMargin:!0,children:e.jsx(vs,{qa:"markbook-link",children:e.jsx(Os,{to:`${f}/completions?${c}`,onClick:v,children:e.jsx(d,{id:"course-completed-nuggets--markbook-link",defaultMessage:"View in markbook"})})})})})]}),e.jsx(k.Body,{isScrollable:!0,children:e.jsxs(ea,{query:x,children:[C?e.jsxs(e.Fragment,{children:[e.jsxs(ts,{qa:"course-completed-nuggets--table",striped:!0,fixed:!0,children:[e.jsx("thead",{children:e.jsx("tr",{children:dg.map(S=>{const y=e.jsx(d,{id:`table-heading--${S}`,defaultMessage:gt[S]?.defaultMessage});return e.jsx("th",{scope:"col",children:gt[S].sort?e.jsx(fs,{onClick:()=>j(S),sortDirection:i.id===S?i?.direction:void 0,disabled:x.loading,children:e.jsx(d,{id:`table-heading--${S}`,defaultMessage:gt[S]?.defaultMessage})}):y},S)})})}),e.jsx("tbody",{children:x.data?.classNuggetActivity?.nuggetDetailsAndActivity.map(S=>e.jsxs("tr",{children:[e.jsx("th",{scope:"row",children:e.jsx(Os,{to:`${f}/nugget-analytics?${h}&nuggetId=${S.nuggetDetails.nuggetId}`,children:S.nuggetDetails.name})}),e.jsx("td",{children:S.nuggetActivity.usersActive}),e.jsx("td",{children:S.nuggetActivity.questionsAnswered.mean===0?e.jsx(d,{id:"not-applicable",defaultMessage:"N/A"}):S.nuggetActivity.percentScore.mean!==-1&&e.jsx(Ye,{percentage:Math.round(S.nuggetActivity.percentScore.mean/100)})})]},S.nuggetDetails.nuggetId))})]}),e.jsx(hn,{update:S=>{o(y=>({...y,offset:S}))},pageLimit:sr,currentOffset:i.offset,totalCount:x.data.classNuggetActivity.prePaginationCount})]}):null,m&&!C&&e.jsx(da,{hasPanel:!0})]})})]})},Yh=s=>{const[t,a]=l.useState(null),{timeSpan:n,startDate:r,endDate:i,updateTeacherDashboardFilters:o,setShowCustomDatePicker:c}=l.useContext(Pe),x=dr(n,r,i),{deviceType:u}=Ja(),f=l.useMemo(()=>t?[t?.courseId]:[],[t]),m=l.useCallback((j,v)=>{if(j===Ft.CustomRange){c(!0);return}else n!==j&&(z.track($.TeacherDashboardCoursesTimeFilterChanged,{[g.ClassId]:s.classId,[g.CourseId]:t?.courseId,[g.SelectedTimeFilter]:v}),o({timeSpan:j}))},[t,s.classId,n,c,o]),C=l.useCallback((j,v)=>{t?.courseId!==j.courseId&&(a(j),o({courseId:j.courseId,subjectId:j?.subject?.labelId}),z.track($.TeacherDashboardCoursesCourseChanged,{[g.ClassId]:s.classId,[g.CourseId]:j.courseId,[g.CourseName]:j.name}))},[s.classId,t?.courseId,o]);return We("teacher-dashboard-class-course-overview"),e.jsxs(e.Fragment,{children:[e.jsx(gi,{classId:s.classId,onCourseSelect:C}),e.jsx(As,{children:t?e.jsxs(xd,{qa:"teacher-dash--courses",children:[e.jsx(xe.Title,{qa:"course-overview-title",children:e.jsx(d,{id:"teacher-course-overview--title",defaultMessage:"Course overview"})}),e.jsx(P,{children:e.jsx(P.Col,{md:6,xs:12,children:e.jsx(k,{qa:"course-overview-summary",children:e.jsxs(Fe,{children:[e.jsx(Fe.Thumbnail,{children:e.jsx(At,{size:u==="phone"?60:90,children:e.jsx($s,{item:{subject:{name:t?.subject?.name||"default"},iconUrl:t?.icon?.url,iconCode:t?.icon?.iconCode,icon:t?.icon?.name}})})}),e.jsxs(Fe.Main,{children:[e.jsx(Dr,{subjectName:t.subject.name}),e.jsx(xe.Title,{noMargin:!0,children:t.name})]})]})})})}),e.jsx(id,{}),e.jsxs(Ps,{children:[e.jsx(Ps.Controls,{children:e.jsx(xe.Title,{noMargin:!0,qa:"class-usage-title",children:e.jsx(d,{id:"course-overview--class-usage",defaultMessage:"Class usage"})})}),e.jsx(Ps.CTA,{children:e.jsx(ur,{timeSpan:n,onDateFilterChange:m,startDate:r,endDate:i})})]}),e.jsxs(P,{children:[e.jsx(P.Col,{md:6,xs:12,stretch:!0,children:e.jsx(cg,{classId:s.classId,courseIds:f,...x})}),e.jsx(P.Col,{md:6,xs:12,stretch:!0,children:e.jsx(ug,{classId:s.classId,courseId:t.courseId,...x})})]})]}):e.jsx(k,{children:e.jsxs(Se,{qa:"no-class-courses-tab",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"nugget-analytics-no-data-header",defaultMessage:"No data available"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"nugget-analytics-no-data-message",defaultMessage:"There is no data available for this class."})})]})})})]})};function gg(s){const t=os(),a=(i,o)=>{z.track($.TeacherDashboardAssignmentsFilterChanged,{[g.ClassId]:t.classId,[g.FilterType]:i,[g.SelectedValue]:o})},n=i=>{a("subject",i),s.setSelectedSubject(i)},r=i=>{a("type",i),s.setSelectedType(i)};return e.jsxs(e.Fragment,{children:[e.jsx($e.Block,{children:e.jsxs(Is,{qa:"filter-subject",children:[e.jsx(Is.Label,{children:e.jsx(d,{id:"assignments-filters-subject-label",defaultMessage:"Subject:"})}),e.jsx("select",{value:s.selectedSubject,onChange:i=>n(i.target.value),"data-testid":"subject-dropdown",children:s.subjects.map(i=>e.jsx("option",{value:i._id,children:i.name},i._id))})]})}),e.jsx($e.Block,{stretch:!0,children:e.jsxs(_n,{children:[e.jsx(_n.Label,{children:e.jsx(d,{id:"fragment-label-type",defaultMessage:"Type:"})}),e.jsxs(Et,{qa:"type-filter",children:[e.jsx(Et.Button,{active:s.selectedType===Ns.ALL,onClick:()=>r(Ns.ALL),qa:"type-filter-all",children:e.jsx(d,{id:"assignments-filters-subjects-all",defaultMessage:"all"})}),e.jsx(Et.Button,{active:s.selectedType===Ns.NUGGET,onClick:()=>r(Ns.NUGGET),qa:"type-filter-nuggets",children:e.jsx(d,{id:"misc-helpers-nugget",defaultMessage:"nugget"})}),e.jsx(Et.Button,{active:s.selectedType===Ns.TASK,onClick:()=>r(Ns.TASK),qa:"type-filter-essay",children:e.jsx(d,{id:"all-assignments-type-task",defaultMessage:"task"})})]})]})})]})}function mg(s){const{classId:t}=os(),a=()=>{z.track($.TeacherDashboardAssignmentsTableDownloaded,{[g.ClassId]:t})},n=()=>
5{a(),s.downloadExcel()};return e.jsx($e.Block,{children:e.jsxs(Me,{onToggle:()=>null,alignEnd:!0,children:[e.jsx(Me.Toggle,{qa:"button-menu-options-open",children:e.jsx(ns,{children:e.jsx(ns.Label,{children:e.jsx(d,{id:"table-options-title-option",defaultMessage:"Options"})})})}),e.jsx(Me.Content,{offsetY:0,children:e.jsxs(ie,{children:[e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-bars",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-option-show-bars",defaultMessage:"Show Bars"})}),e.jsx("input",{type:"checkbox",checked:s.showBars,onChange:r=>s.onOptionChange(Ds.BARS,r.target.checked)})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-numbers",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-option-show-numbers",defaultMessage:"Show Numbers"})}),e.jsx("input",{type:"checkbox",checked:s.showNumbers,onChange:r=>s.onOptionChange(Ds.NUMBERS,r.target.checked)})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-symbols",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-option-show-symbols",defaultMessage:"Show Symbols"})}),e.jsx("input",{type:"checkbox",checked:s.showSymbols,onChange:r=>s.onOptionChange(Ds.SYMBOLS,r.target.checked)})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-colors",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-option-coloured-cells",defaultMessage:"Coloured Cells"})}),e.jsx("input",{type:"checkbox",checked:s.colouredCells,onChange:r=>s.onOptionChange(Ds.CELLS,r.target.checked)})]})}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-hide",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-option-hide-users-column",defaultMessage:"Hide students' names"})}),e.jsx("input",{type:"checkbox",checked:s.hideUsersColumn,onChange:r=>s.onOptionChange(Ds.HIDE_USERS,r.target.checked)})]})}),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{children:e.jsxs(ge,{qa:"switch-selected",children:[e.jsx(ge.Label,{children:e.jsx(d,{id:"table-options-filter-selected-rows-only",defaultMessage:"Show selected rows only"})}),e.jsx("input",{type:"checkbox",checked:s.showOnlySelected,onChange:r=>s.onOptionChange(Ds.SELECTED,r.target.checked),disabled:!s.showSelectedEnabled})]})}),e.jsx(ie.Divider,{}),e.jsx(ie.Item,{children:e.jsx(mn,{download:n})})]})})]})})}function hg(s){const{classId:t}=os(),a=r=>{const i=s.sortState[r]?.order!==Qe.ASC;z.track($.TeacherDashboardAssignmentsTableSorted,{[g.ClassId]:t,[g.Column]:r,[g.IsAscending]:i}),s.onSort(r)},n=(r,i)=>{const o=r[i];return Array.isArray(o)&&o.length>0&&typeof o[0]?.percentScore=="number"&&o[0]?.percentScore>=0};return e.jsx(Fs,{children:e.jsx(li,{children:e.jsxs(ts,{bordered:!1,fixed:!0,hover:!0,striped:!0,qa:"assignments-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[s.hideUsersColumn?null:e.jsx("th",{scope:"col","data-testid":"assignments-table-student-header",children:e.jsx(fs,{sortDirection:s.sortState["student-name"]?.order,onClick:()=>a("student-name"),children:e.jsx(d,{id:"markbook-student-column",defaultMessage:"Student"})})}),s.tableHeaderData.map(r=>e.jsx("th",{scope:"col","data-data-name":r.name,children:e.jsx(fs,{onClick:()=>a(r.id),sortDirection:s.sortState[r.id]?.order,children:r.name})},r.id))]})}),e.jsx("tbody",{children:s.tableData.map(r=>e.jsxs("tr",{children:[s.hideUsersColumn?null:e.jsx("th",{children:e.jsx(gn,{onClick:()=>s.onSelectStudent(r.id),selected:s.selectedStudents.includes(r.id),children:r.name})}),s?.tableHeaderData?.map(i=>e.jsx("td",{children:n(r?.data,i?.id)&&e.jsx(qs,{onClick:()=>null,children:e.jsx(Ye,{percentage:Ue(r.data[i?.id][0]?.percentScore),hasBar:s.showBars,hasSymbol:s.showSymbols,hasNumber:s.showNumbers,hasColouredCell:s.colouredCells})})},i?.id))]},r.id))})]})})})}var Ns=(s=>(s.ALL="all",s.TASK="essay",s.NUGGET="nuggets",s))(Ns||{}),Ds=(s=>(s.BARS="Show Bars",s.NUMBERS="Show Numbers",s.SYMBOLS="Show Symbols",s.CELLS="Coloured Cells",s.SELECTED="Show Selected Rows Only",s.HIDE_USERS="Hide Users Column",s))(Ds||{});function xg(s){return s.name}function pg(s,t,a){return s.data[t][0][a]}function Kh(){const s=os(),t=hs(),{baseData:a}=l.useContext(Pe),n=de(),[r,i]=l.useState([]),[o,c]=l.useState([]),[x,u]=l.useState([]),[f,m]=l.useState([]),[C,j]=l.useState([]),[v,h]=l.useState(Ge("student-name","string",{})),[S,y]=l.useState([]),[I,w]=l.useState(!0),[b,M]=l.useState(!1),[p,A]=l.useState(""),[T,_]=l.useState([]),[O,E]=l.useState("all"),[F,H]=l.useState("all"),[K,be]=l.useState([]),[re,ne]=l.useState(!0),[D,L]=l.useState(!0),[q,W]=l.useState(!0),[Ce,se]=l.useState(!1),[G,Q]=l.useState(!1),[te,ye]=l.useState(!1),[ae,ke]=l.useState(!1);We("teacher-dashboard-assignments"),l.useEffect(()=>{a?.courses?.length||w(!1);const X=a?.courses?.map(Ae=>Ae.courseId)||[],Y=a?.studyGroups?.filter(Ae=>X.indexOf(Ae.course)===-1)||[];
5i(Y)},[a?.courses?.length,a?.studyGroups?.length]),l.useEffect(()=>{const X=o.reduce((Y,Ae)=>Y.some(Re=>Re._id===Ae._id)?Y:Y.concat([Ae]),[]);_([{_id:"all",name:"All",colour:""},...X])},[a?.courses,o]);const ce=l.useCallback((X,Y)=>{const Ae=r.map(ue=>{const B=X.find(Z=>Z._id===ue.course);return{id:ue.coursePlan||"",name:B?.name||"",subject:B?.subject?._id||"",type:B?.type||""}}),Re=a?.users?.map(ue=>{const B={};for(const Z of r)Z.coursePlan&&ue._id&&(B[Z.coursePlan]=Y[Z.coursePlan][ue._id]);return{id:ue._id||"",name:`${ue.personal?.name?.last}, ${ue.personal?.name?.first}`||"",data:B}})||[],Oe=X.map(ue=>ue.subject);c(Oe),u(Ae),m(Re)},[r,a?.users]),me=l.useCallback(async()=>{try{const X=r.map(ue=>ue.course)||[],Y=r.map(ue=>ue.coursePlan)||[],Ae=a?.users?.filter(ue=>!!ue._id).map(ue=>ue._id)||[];let Re=[],Oe={};try{Re=await Cl(X,[],t.current)}catch{M(!0)}if(!Ae.length||!Y.length)return;if(Ae.length>0&&Y.length>0&&t.current)try{Oe=await yl(Y,Ae,t.current,!0,!0)}catch(ue){M(!0),ue.errorCode===400&&A(n.formatMessage({id:"error-contact-account-manager",defaultMessage:"It looks like something went wrong, please contact your account manager."}))}Object.keys(Oe).length&&Re.length&&ce(Re,Oe)}finally{w(!1)}},[r,a?.users,t,n,ce]);l.useEffect(()=>{let X=x;O!=="all"&&(X=x.filter(Y=>Y.subject===O)),F!=="all"&&(X=X.filter(Y=>Y.type===F)),j(X)},[O,F,x]),l.useEffect(()=>{let X=f;K.length&&te&&(X=f.filter(Y=>K.includes(Y.id))),y(X)},[te,K,f]),l.useEffect(()=>{a?.courses&&a.courses.length&&me()},[a?.courses,me]),l.useEffect(()=>{!Ce&&!D&&!q&&!re&&L(!0)},[Ce,q,re,D]);const ve=(X,Y)=>{z.track($.TeacherDashboardAssignmentsOptionChanged,{[g.ClassId]:s.classId,[g.OptionChanged]:X,[g.Value]:Y})},as=X=>{const Y=X==="student-name"?Ge(X,"string",v,xg):Ge(X,"number",v,pg,"percentScore");h(Y)},ls=X=>{const Y=K,Ae=Y.indexOf(X);Ae===-1?Y.push(X):Y.splice(Ae,1),Y.length===0&&ye(!1),be([...Y]),ke(Y.length>0)},Ke=(X,Y)=>{switch(ve(X,Y),X){case"Show Bars":ne(Y);break;case"Coloured Cells":se(Y),Y&&q&&W(!1);break;case"Show Numbers":L(Y);break;case"Show Selected Rows Only":ye(Y);break;case"Show Symbols":W(Y),Y&&Ce&&se(!1);break;case"Hide Users Column":Q(Y);break}},Xe=l.useMemo(()=>et(S,v),[v,S]),Le=async()=>{const X=[{key:"student",label:"Student",format:"string"}];x.forEach(Oe=>{X.push({key:Oe.id,label:Oe.name,format:"string"})});const Y=[];Xe.forEach(Oe=>{const ue=[];ue.push({key:"student",value:Oe.name}),Object.entries(Oe.data).forEach(([B,Z])=>{Z[0].percentScore&&Z[0].percentScore>-1&&ue.push({key:B,value:Ue(Z[0].percentScore).toString()})}),Y.push(ue)});const Ae={filename:"Assignment Class Overview Report",data:{name:"Assignment Class Overview Table",cols:X,rows:Y}},Re=await an(t.current,JSON.stringify(Ae));Yt(Re)};return b&&p?e.jsx($t,{error:p,showActionButton:!1}):b?e.jsx($t,{action:()=>me()}):I?e.jsx(_e,{type:"fullpage"}):!a?.courses?.length||!a?.users?.length?e.jsx(As,{children:e.jsx(k,{children:e.jsxs(Se,{qa:"no-assignments-in-class",children:[e.jsx(Se.Title,{children:e.jsx(d,{id:"assignments-tab-no-assignments-title",defaultMessage:"No Assignments"})}),e.jsx(Se.Message,{children:e.jsx(d,{id:"assignments-class-overview-no-assignments",defaultMessage:"There are no assignments for this class."})})]})})}):e.jsxs(e.Fragment,{children:[e.jsxs($e,{children:[e.jsx(gg,{subjects:T,selectedSubject:O,setSelectedSubject:E,selectedType:F,setSelectedType:H}),e.jsx(mg,{showBars:re,showNumbers:D,showSymbols:q,colouredCells:Ce,hideUsersColumn:G,showOnlySelected:te,showSelectedEnabled:ae,onOptionChange:Ke,downloadExcel:Le})]}),e.jsx(hg,{tableData:Xe,tableHeaderData:C,showBars:re,showNumbers:D,showSymbols:q,colouredCells:Ce,hideUsersColumn:G,onSort:as,sortState:v,selectedStudents:K,onSelectStudent:ls})]})}const jg=s=>{const{loading:t,assignments:a,onAssignmentClickTrack:n}=s,r=He(),i=de(),o=l.useMemo(()=>!!a?.some(c=>c.assignment.kind==="Smart"),[a]);return e.jsxs(e.Fragment,{children:[e.jsxs(ts,{striped:!0,hover:!0,sticky:!0,children:[e.jsx(rn,{headersData:fg(o),isSortingEnabled:!0,...s}),e.jsx("tbody",{"data-testid":"assignments-list-table-body",style:{opacity:t?"0.5":"1",transition:"opacity 0.5s ease-in-out"},children:a.filter(c=>c.assignment.status!=="NOT_PUBLISHED").map(c=>{const{assignment:x,summary:u}
5=c,{assignmentId:f,name:m,kind:C,status:j,schedule:v,nuggets:h,createdAt:S,createdBy:y}=x,{completion:I,averageLastScore:w,averageTimeSpent:b}=u||{},M=h.length+(x?.smartRecommendationSettings?.nuggetCount??0);return e.jsxs(Jr,{qa:"assignments-list-row",children:[e.jsx("th",{children:e.jsx(nn,{children:e.jsx(Os,{to:`${r.pathname}/${f}/${x.status==="DRAFT"?"settings":"assignment-markbook"}`,title:m,onClick:()=>n(x),"data-testid":"assignments-list-row-name",children:Gt(m,100)})})}),o&&e.jsx("td",{children:e.jsx(Wo,{kind:C})}),e.jsx("td",{children:e.jsx(xn,{status:j})}),e.jsx("td",{children:mt(v?.startAt)}),e.jsx("td",{children:mt(v?.dueAt)}),e.jsx("td",{children:x.status!=="DRAFT"&&I&&e.jsx(d,{id:"completed-by-count-of-total",defaultMessage:"{count} of {total}",values:{count:I.count,total:I.total}})}),e.jsx("td",{children:w?e.jsx(Ye,{percentage:Ue(w),hasBar:!0,hasSymbol:!0,hasNumber:!0}):""}),e.jsx("td",{children:b?.seconds?e.jsx(Ms,{time:b?.seconds,shortenUnits:!0}):""}),e.jsx("td",{children:M||""}),e.jsx("td",{title:i.formatMessage({id:"assignments-table-row-created-at",defaultMessage:"Created At {time}"},{time:mt(S)}),children:y})]},f)})})]}),e.jsx(aa,{...s})]})},fg=s=>[{id:"name",label:"Assignment Name"},...s?[{id:"icon",label:" "}]:[],{id:"status",label:"Status"},{id:"startAt",label:"Start"},{id:"dueAt",label:"Due"},{id:"completion",label:"Completed by"},{id:"averageLastScore",label:"Avg. Score"},{id:"averageTimeSpent",label:"Avg. Time Spent"},{id:"nuggets",label:"Nuggets"},{id:"createdBy",label:"Created By"}].map(a=>({col:a.id,columnMessageId:`assignments-table-header-${a.id}`,columnDefaultMessage:a.label})),ji=s=>{const{onCancelModal:t,modalType:a,populatedValues:n,assignmentStatus:r,classId:i,assignmentId:o,loadAssignment:c}=s,[x,u]=l.useState(""),f=Xa(),{baseData:m}=l.useContext(Pe),{addBreadcrumb:C}=It(),j=de(),v=St(),h=hs(),S=(p,A,T)=>{const _=a==="edit"?$.TeacherDashboardEditAssignmentModal:$.TeacherDashboardCreateAssignmentModal,O=ln(p,A);z.track(_,{[g.ClassId]:i||"N/A",[g.ModalAction]:T.modalAction,[g.ModifiedFields]:O,...T.assignmentId&&{[g.AssignmentId]:T.assignmentId},...T.AssignmentStatus&&{[g.AssignmentStatus]:T.AssignmentStatus}})},y=async(p,A)=>await Zr(p,m?.courses,j,A),{data:I,error:w}=Ee(y,!0),b=l.useMemo(()=>I?.flatMap(p=>p.entities)[0]?.value,[I]),M=()=>{const p=Ht("");return a==="edit"&&n?n:p};return e.jsx(Mt,{initialValues:M(),validateOnBlur:!1,validateOnChange:!1,onSubmit:async(p,{setSubmitting:A})=>{u("");try{if(a==="edit"){if(p.subject===""&&b&&(p.subject=n?.subject||b),!o)throw new Error("Assignment ID is missing");const T=Ra(p),_=await Vo(h.current,o,T);S(M(),p,{assignmentId:o,modalAction:"submitted",AssignmentStatus:_.assignment.status}),c?.(),t();return}if(a==="new"){p.subject===""&&b&&(p.subject=b);const T=Ra(p,i),{assignmentId:_}=await Ir(h.current,T);S(M(),p,{assignmentId:_,modalAction:"submitted"}),C({path:`/teach/classes/${i}/assignments${window.location.search}`,title:j.formatMessage({id:"teacher-dashboard-assignments-title",defaultMessage:"Assignments"})}),v(`${window.location.pathname}/${_}/settings`);return}}catch(T){if(T.type==="problems/validation-error"&&Array.isArray(T.issues)){const _=T.issues.map(O=>{const E=O.path[O.path.length-1];return`${O.message} (${E})`});u(_.join(", "))}else u(T.message)}finally{A(!1)}},validate:p=>Ar(p,f,a,r,n),children:({handleSubmit:p,values:A,isSubmitting:T,dirty:_})=>{const O=()=>{S(M(),A,{assignmentId:o||"",modalAction:"dismissed"}),t()};return e.jsxs(U,{modalActive:!0,onExit:O,dismissLabel:j.formatMessage({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),size:"medium",children:[e.jsx(U.Header,{children:e.jsx(U.Title,{qa:"create-edit-assignment-modal-title",children:e.jsx(d,{id:`${a}-assignment-modal-header`,defaultMessage:`${gr(a)} Assignment`})})}),w?e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"assign-modal-data-error",defaultMessage:"There was a problem loading this data."})}):e.jsxs(e.Fragment,{children:[e.jsxs(U.Body,{children:[e.jsx(Qr,{onSubmit:p,autoComplete:"off",children:e.jsx(vr,{subjects:I??[],assignmentStatus:r})}),e.jsx("div",{style:{marginTop:18},children:x&&e.jsx(ta,{qa:`teacher-dashboard-${a}-assignment-generic-error`,children:x})})]}),e.jsxs(U.Controls,{children:[e.jsx(J,{size:"medium",type:"button",variant:"default",qa:"teacher-assignment-modal-cancel-button",onClick:O,tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"cancel"})}),e.jsx(J,{size:"medium",type:"submit",variant:"primary",qa:`teacher-assignment-modal-${a==="new"?"create":"apply"}-button`,loading:T,disabled:T||!_&&a==="edit",onClick:p,tabIndex:0,children:e.jsx(d,{id:`teacher-assignment-${a}-button`,defaultMessage:`${a==="new"?"Create":"Apply"}`})})]})]})]})}})},fi=(s="selectGroup",t)=>vl({context:{classes:[],students:[],settings:void 0,responseError:"",fromClass:t},id:"createAssignmentGroup",initial:s,states:{selectGroup:{tags:["selectGroup"],on:{SELECT_CLASSES:{target:"selectClasses"},SELECT_STUDENTS:{target:"selectStudents"},SKIP_FOR_NOW:{target:"enterSettings"}},entry:{type:"resetGroups"}},selectClasses:{tags:["selectClasses"],on:{NEXT:{target:"enterSettings",actions:["storeClasses"]},...s==="selectGroup"&&{BACK:{target:"selectGroup"}}}},selectStudents:{tags:["selectStudents"],on:{NEXT:{target:"enterSettings",actions:["storeStudents"]},...s==="selectGroup"&&{BACK:{target:"selectGroup"}}}},enterSettings:{tags:["enterSettings"],initial:"idle",onDone:{target:"completed"},states:{idle:{on:{...s!=="enterSettings"&&{BACK:[{target:"#createAssignmentGroup.selectClasses",cond:"hasClasses",actions:["storeSettings"]},{target:"#createAssignmentGroup.selectStudents",cond:"hasStudents",actions:["storeSettings"]},{target:"#createAssignmentGroup.selectGroup",actions:["storeSettings"]}]},SUBMIT:{target:"submitting",actions:["storeSettings"]}}},submitting:{invoke:{src:"createAssignmentGroup",onDone:{target:"success"},onError:{target:"idle",actions:"storeResponseError"}}},success:{type:"final"}}},completed:{type:"final"}}}).withConfig({actions:{resetGroups:rt({classes:a=>[],students:a=>[]}),storeClasses:rt({classes:(a,n)=>n.classes}),storeStudents:rt({students:(a,n)=>n.students}),storeSettings:rt({settings:(a,n)=>n.settings}),storeResponseError:rt({responseError:(a,n)=>n.data.message??">>> ERROR <<<"})},guards:{hasClasses:a=>!!a.classes.length,hasStudents:a=>!!a.students.length},services:{createAssignmentGroup:async(a,n)=>await n.api(a)}}),Ca=50,bg=({dismissModal:s})=>{const t=Ts.useActorRef(),[a,n]=es.useState("teach"),r=o=>o.classes.length===0?{classes:"teacher-assignment-duplicate-class-required"}:{},i=({classes:o})=>{t.send({type:"NEXT",classes:o})};return e.jsx(Mt,{initialValues:{classes:t.getSnapshot()?.context.classes??[]},validateOnBlur:!1,validateOnChange:!1,validate:r,onSubmit:i,children:({values:o,handleSubmit:c,setFieldValue:x,setFieldError:u,setFieldTouched:f})=>{const m=(h,S)=>{if(S&&o.classes.length>=Ca){u("classes","teacher-assignment-duplicate-class-limit");return}const y=S?o.classes.concat(h):o.classes.filter(I=>I._id!==h._id);x("classes",y),u("classes",void 0),f("classes",!0)},C=h=>{x("classes",o.classes.filter(({_id:S})=>S!==h))},j=h=>{const S=Ca-o.classes.length,y=h.slice(0,S);x("classes",o.classes.concat(y)),f("classes",!0),u("classes",h.length>S?"teacher-assignment-add-class-limit-reached":void 0)},v=h=>{const S=o.classes.filter(y=>!h.some(I=>y._id===I._id));u("classes",void 0),x("classes",S)};return e.jsxs(e.Fragment,{children:[e.jsx(U.Body,{children:e.jsx(cn,{children:e.jsx(ai,{onRowClicked:m,classFilter:a,setClassFilter:n,selectedClasses:o.classes,unselectableClassesId:[],selectAll:j,selectNone:v})})}),e.jsxs(U.Controls,{children:[e.jsx(oa,{alwaysShow:!0,items:o.classes.map(({_id:h,name:S})=>({id:h,name:S})),removeItem:C}),e.jsx(Ls,{name:"classes",errorValues:{amount:Ca}})]}),e.jsxs(U.Controls,{children:[e.jsx(U.ControlStart,{children:e.jsx(J,{size:"medium",icon:za,onClick:()=>t.send("BACK"),qa:"back-button",tabIndex:0})}),e.jsx(J,{size:"medium",type:"button",variant:"default",qa:"cancel-button",onClick:()=>s(!1),tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"cancel"})}),e.jsx(J,{size:"medium",type:"submit",variant:"primary",qa:"next-button",icon:Kt,reversed:!0,onClick:c,tabIndex:0,children:e.jsx(d,{id:"next",defaultMessage:"next"})})]})]})}})},Sg=()=>{const s=Ts.useActorRef();return e.jsxs(e.Fragment,{children:[e.jsx(U.Body,{children:e.jsxs(Es,{children:[e.jsx(ya,{onClick:()=>s.send("SELECT_CLASSES"),qa:"for-classes-button",children:e.jsx(d,{id:"create-assignment-classes",defaultMessage:"For Classes"})}),e.jsx(ya,{onClick:()=>s.send("SELECT_STUDENTS"),qa:"for-students-button",children:e.jsx(d,{id:"create-assignment-students",defaultMessage:"For Students"})}),e.jsx(ya,{onClick:()=>s.send("SKIP_FOR_NOW"),qa:"skip-for-now-button",children:e.jsx(d,{id:"create-assignment-skip",defaultMessage:"Skip for now"})})]})}),e.jsx(U.Controls,{})]})},ya=({children:s,onClick:t,qa:a})=>e.jsx(Es.Item,{children:e.jsx(lo,{type:"button",onClick:t,qa:a,children:e.jsx(ze,{variant:Ks.BORDER,panelPadding:oc.TIGHT,children:e.jsxs(Fe,{children:[e.jsx(Fe.Main,{children:e.jsx(xe.SectionTitle,{children:s})}),e.jsx(Fe.Controls,{children:e.jsx(Vs,{icon:Kt,size:zs.LARGE})})]})})})}),va=50,Cg=({classFilter:s,changeClassFilter:t,dismissModal:a})=>{const n=Ic(!0),r=Ts.useActorRef(),i=c=>c.students.length===0?{students:"teacher-assignment-student-required"}:{},o=({students:c})=>{r.send({type:"NEXT",students:c})};return e.jsx(Mt,{initialValues:{students:r.getSnapshot()?.context.students??[]},validateOnBlur:!1,validateOnChange:!1,validate:i,onSubmit:o,children:({values:c,handleSubmit:x,setFieldValue:u,setFieldError:f,setFieldTouched:m})=>{const C=(S,y)=>
5{if(y&&c.students.length>=va){f("students","teacher-assignment-add-student-limit-reached");return}const I=y?c.students.concat(S):c.students.filter(w=>w._id!==S._id);u("students",I),f("students",void 0),m("students",!0)},j=S=>{u("students",c.students.filter(({_id:y})=>y!==S))},v=S=>{const y=va-c.students.length,I=S.slice(0,y);m("students",!0),u("students",c.students.concat(I)),f("students",S.length>y?"teacher-assignment-add-student-limit-reached":void 0)},h=S=>{const y=c.students.filter(I=>!S.some(w=>I._id===w._id));u("students",y),f("students",void 0)};return e.jsxs(e.Fragment,{children:[e.jsx(U.Body,{children:e.jsx(cn,{children:e.jsx(Mc,{onRowClicked:C,selectedStudents:c.students,classFilter:s,changeClassFilter:t,selectAll:v,selectNone:h})})}),e.jsxs(U.Controls,{children:[e.jsx(oa,{alwaysShow:!0,items:c.students.map(S=>({id:S._id,name:n(S)})),removeItem:j}),e.jsx(Ls,{name:"students",errorValues:{amount:va}})]}),e.jsxs(U.Controls,{children:[e.jsx(U.ControlStart,{children:r.getSnapshot()?.can("BACK")&&e.jsx(J,{size:"medium",icon:za,onClick:()=>r.send("BACK"),qa:"back-button",tabIndex:0})}),e.jsx(J,{size:"medium",type:"button",variant:"default",qa:"cancel-button",onClick:()=>a(!1),tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"cancel"})}),e.jsx(J,{size:"medium",type:"submit",variant:"primary",qa:"next-button",icon:Kt,reversed:!0,onClick:x,tabIndex:0,children:e.jsx(d,{id:"next",defaultMessage:"next"})})]})]})}})},yg=({dismissModal:s,pageArea:t})=>{const a=St(),n=hs(),{getSignal:r}=ua(),{getSignal:i}=ua(),{getSignal:o}=ua(),c=Ts.useActorRef(),x=Ws("enterSettings.submitting"),u=c.getSnapshot()?.context.responseError,f=Yo(),m=Xa(),C=de(),j=async(w,b)=>await Zr(w,[],C,b),{data:v,error:h,loading:S}=Ee(j,!0),y=async w=>{if(!w.settings)throw new Error("Assignments settings unavailable");const b=await Ir(n.current,Ra(w.settings),r());w.classes.length?await zo(n.current,b.assignmentId,w.classes.map(T=>T._id),i()):w.students.length&&await Qo(n.current,b.assignmentId,w.students.map(T=>T._id),o());const M=ln(w.settings,Ht(""));let p,A;w.classes.length?(p="classes",A=w.classes.map(T=>T._id)):w.students.length?(p="students",A=w.students.map(T=>T._id)):p="skip",f(b,{[g.GroupType]:p??"N/A",[g.GroupId]:A??"N/A",[g.GroupAmount]:A?.length||"N/A",[g.ModifiedFields]:M,[g.PageArea]:t}),a(`/teach/assignments/${b.assignmentId}`),s(!0)},I=w=>{c.send({type:"SUBMIT",settings:w,api:y})};return h?e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"assign-modal-data-error",defaultMessage:"There was a problem loading this data."})}):S||!v?e.jsx(_e,{type:"widget"}):e.jsx(Mt,{initialValues:c.getSnapshot()?.context.settings??Ht(v.flatMap(w=>w.entities)[0].value),validateOnBlur:!1,validateOnChange:!1,validate:w=>Ar(w,m),onSubmit:I,children:({values:w,handleReset:b,handleSubmit:M})=>{const p=()=>c.send({type:"BACK",settings:w});return e.jsxs(e.Fragment,{children:[e.jsx(U.Body,{children:e.jsxs(Tc,{children:[e.jsx(k.Title,{children:e.jsx(d,{id:"assignment-settings-widget-title",defaultMessage:"Assignment Settings"})}),e.jsx(Te,{variant:we.INFO,qa:"td-assignment-settings-info-alert",children:e.jsx(le.Lead,{qa:"td-assignment-settings-info-alert-message",children:e.jsx(d,{id:"assignment-settings-modal-info-alert-message",defaultMessage:"These settings will apply to all classes and students. To customise schedules, use {duplicateAssignmentsLink}.",values:{duplicateAssignmentsLink:e.jsx("a",{className:"link",target:"href",href:"https://support.century.tech/support/solutions/articles/44002521715-assignments-on-century#How-to-duplicate-assignments","data-testid":"duplicate-assignments-link",children:e.jsx(d,{id:"duplicate-assignments",defaultMessage:"duplicate assignments"})})}})})}),e.jsxs(Qr,{onReset:b,onSubmit:M,children:[e.jsx(vr,{subjects:v}),u&&e.jsx("div",{style:{marginTop:18},children:e.jsx(ta,{qa:"response-error",children:u})})]})]})}),e.jsxs(U.Controls,{children:[e.jsx(U.ControlStart,{children:e.jsx(J,{size:"medium",icon:za,onClick:p,qa:"back-button"})}),e.jsx(J,{size:"medium",type:"button",variant:"default",qa:"teacher-assignment-modal-cancel-button",onClick:()=>s(!1),tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"cancel"})}),e.jsx(J,{size:"medium",type:"submit",variant:"primary",qa:"teacher-assignment-modal-create-button",onClick:M,loading:x,tabIndex:0,children:e.jsx(d,{id:"modal-create-btn",defaultMessage:"create"})})]})]})}})},Ts=Al(fi()),bi=({initialStep:s,classId:t,closeModal:a,pageArea:n})=>e.jsx(Ts.Provider,{machine:fi(s,t),children:e.jsx(vg,{closeModal:a,classId:t,pageArea:n})}),vg=({closeModal:s,classId:t,pageArea:a})=>
5{const[n,r]=es.useState(t??""),i=Ko(),[o]=Ts.useActor(),{formatMessage:c}=de(),x=c({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),u=j=>{if(j){s();return}if(!o){co("CreateAssignmentGroup state machine not available when dismissing modal"),s();return}const v=o.context.settings?ln(Ht(""),o.context.settings):"none";let h,S,y;if(o.value==="selectGroup")h="select group type";else if(o.value==="selectClasses")h="select classes",S="classes",y=o.context.classes.map(I=>I._id);else if(o.value==="selectStudents")h="select students",S="students",y=o.context.students.map(I=>I._id);else{h="enter settings";const I=o.history?.value;I==="selectClasses"?S="classes":I==="selectStudents"?S="students":S="skip"}i({[g.CreateStep]:h??"unknown",[g.GroupType]:S??"N/A",[g.GroupId]:y??"N/A",[g.GroupAmount]:y?.length??"N/A",[g.ModifiedFields]:v}),s()},f=["selectClasses","selectStudents"].some(j=>o.hasTag(j)),m=f?"large":void 0,C=f?wt:es.Fragment;return e.jsx(U,{modalActive:!0,onExit:()=>u(!1),dismissLabel:x,size:m,children:e.jsxs(C,{children:[e.jsx(U.Header,{children:e.jsx(U.Title,{children:e.jsx(d,{id:"teacher-dashboard-create-assignment-button",defaultMessage:"Create Assignment"})})}),e.jsx(Ag,{dismissModal:u,classFilter:n,changeClassFilter:j=>r(j),pageArea:a})]})})},Ag=({classFilter:s,changeClassFilter:t,dismissModal:a,pageArea:n})=>{const r=Ws("selectGroup"),i=Ws("selectClasses"),o=Ws("selectStudents"),c=Ws("enterSettings");return e.jsxs(e.Fragment,{children:[r&&e.jsx(Sg,{}),i&&e.jsx(bg,{dismissModal:a}),o&&e.jsx(Cg,{dismissModal:a,classFilter:s,changeClassFilter:t}),c&&e.jsx(yg,{dismissModal:a,pageArea:n})]})},Ws=s=>Ts.useSelector(t=>t.matches(s)),Xh=Object.freeze(Object.defineProperty({__proto__:null,CreateAssignmentGroupMachineContext:Ts,CreateAssignmentGroupModal:bi,useIsSelectedStep:Ws},Symbol.toStringTag,{value:"Module"})),Ig=30,tr=["name","startAt","dueAt"],Mg=()=>{const s=os(),t=hs(),a=Mr(),n=He(),{addBreadcrumb:r}=It(),{formatMessage:i}=de(),[o,c]=l.useState(!1);We("teacher-dashboard-assignments-v3");const x=l.useCallback(async(p,A,T)=>{const _={classId:s.classId,include:"summary",...A},O=await Xo(p,_,T),E=Array.from(new Set(O.data.map(K=>K.assignment.createdBy))),F=await br(E,t.current,"personal"),H=Object.fromEntries(F.map(K=>[K._id,js(K)]));return{...O,data:O.data.map(K=>({...K,assignment:{...K.assignment,createdBy:H[K.assignment.createdBy]||a.unknownField}}))}},[t,a.unknownField,s.classId]),u=ra(x,{itemsPerPage:Ig,orderBy:"createdAt",sortBy:"desc",allowedSortColumns:tr,syncWithUrl:!0}),[f,m]=l.useState(""),[C,j]=l.useState(!1),{loading:v,data:h,error:S,currentPage:y,handleSortingState:I}=u,w=(p,A)=>{I(p,A),z.track($.TeacherDashboardAssignmentsTableSortChanged,{[g.SortedColumn]:p,[g.SortOrder]:A,[g.ClassId]:s.classId,[g.PageNumber]:y})},b=p=>{z.track($.TeacherDashboardAssignmentsTableNavigationChanged,{[g.Navigate]:p,[g.ClassId]:s.classId})},M=p=>{r({path:`/teach/classes/${s.classId}/assignments${n.search}`,title:i({id:"teacher-dashboard-assignments-title",defaultMessage:"Assignments"})}),z.track($.TeacherDashboardAssignmentsListAssignmentSelected,{[g.AssignmentId]:p.assignmentId,[g.ClassId]:s.classId,[g.AssignmentStatus]:p.status,[g.Kind]:p.kind})};return v&&!h&&!S?e.jsx(_e,{type:"independent"}):e.jsxs(e.Fragment,{children:[e.jsx(Fs,{children:e.jsx(Il,{children:e.jsxs(k,{children:[e.jsxs(k.Header,{children:[e.jsx(k.Title,{children:e.jsx(d,{id:"teacher-dashboard-assignments-title",defaultMessage:"Assignments"})}),e.jsx(k.Controls,{children:e.jsxs(xt,{children:[e.jsx(xt.Button,{children:e.jsx(J,{variant:"secondary",size:"small",icon:Ct,qa:"create-assignment-button",onClick:()=>{m("new"),z.track($.TeacherDashboardAssignmentsCreateButtonClicked,{[g.ClassId]:s.classId})},children:e.jsx(d,{id:"teacher-dashboard-create-assignment-button",defaultMessage:"Create Assignment"})})}),e.jsx(xt.Menu,{isActive:o,children:e.jsxs(Me,{qa:"create-assignment-options",onToggle:p=>c(p),alignEnd:!0,children:[e.jsx(Me.Toggle,{children:e.jsx(J,{size:"small",variant:"secondary",icon:uo,qa:"create-assignment-dropdown"})}),e.jsx(Me.Content,{children:e.jsxs(ma,{children:[e.jsx(ma.Item,{qa:"create-assignment-for-class",onClick:()=>{m("new"),z.track($.TeacherDashboardAssignmentsCreateButtonClicked,{[g.ClassId]:s.classId,[g.GroupType]:"classes"})},children:e.jsx(d,{id:"teacher-dashboard-create-assignment-for-class-button",defaultMessage:"For this class"})}),e.jsx(ma.Item,{qa:"create-assignment-for-students",onClick:()=>{j(!0),z.track($.TeacherDashboardAssignmentsCreateButtonClicked,{[g.ClassId]:s.classId,[g.GroupType]:"students"})},children:e.jsx(d,{id:"teacher-dashboard-create-assignment-for-students-button",defaultMessage:"For students in this class"})})]})})]})})]})})]}),e.jsx(on,{emptyState:{isEmpty:!h?.data?.length,title:ar.emptyTitle,content:ar.emptyMessage,illustrationType:"add-content"},errorState:{error:S},children:e.jsx(jg,{assignments:h?.data||[],trackPageNavigation:b,handleOpenNewAssignmentModal:()=>m("new"),onAssignmentClickTrack:M,handleSortingAndTracking:w,sortableColumns:tr,...u})})]})})}),f==="new"&&e.jsx(ji,{onCancelModal:()=>m(""),modalType:"new",classId:s.classId}),C&&e.jsx(bi,{closeModal:()=>j(!1),initialStep:"selectStudents",classId:s.classId,pageArea:"class-assignments-list"})]})},ar={emptyTitle:{id:"assignments-tab-no-assignments-title",message:"No Assignments"}
5,emptyMessage:{id:"assignments-tab-no-assignments-message",message:"There are no assignments for this class."}},Tg=s=>{const{assignmentDetails:t,classId:a,updatedBy:n,canEdit:r,loadAssignment:i}=s,[o,c]=l.useState(""),{name:x,assignmentId:u,instructions:f,status:m,subjectId:C,schedule:j,options:v,subject:h}=t,S=bc(t),y=Mr(),I=()=>{const{date:w,time:b}=Ut(j?.startAt),{date:M,time:p}=Ut(j?.dueAt);return{assignmentName:x,subject:C,instructions:f,startDate:w,startTime:b||"08:00",dueDate:M,dueTime:p||"22:00",lateSubmission:S,multipleAttempts:v.reattemptsAllowed}};return t?e.jsxs(e.Fragment,{children:[e.jsxs(k,{qa:"assignments-settings-widget",children:[e.jsxs(k.Header,{children:[e.jsx(k.Title,{children:e.jsx(d,{id:"assignment-settings-widget-title",defaultMessage:"Assignments Settings"})}),r&&e.jsx(k.Controls,{children:e.jsx(J,{variant:"secondary",onClick:async()=>{await i(),c("edit"),z.track($.TeacherDashboardAssignmentSettingsEditButtonClicked,{[g.ClassId]:a,[g.AssignmentId]:u,[g.AssignmentStatus]:m})},qa:"edit-assignment-settings-button",size:"tiny",icon:Qa,children:e.jsx(d,{id:"edit-assignment-settings-button",defaultMessage:"edit"})})})]}),e.jsx(k.Body,{children:e.jsx(Yc,{children:e.jsx(An,{children:e.jsxs(An.Main,{children:[x.length>
5=60?e.jsxs(e.Fragment,{children:[e.jsx(ee,{itemBackgrounds:!0,children:e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.assignmentName}),e.jsx(ee.Value,{qa:"assignment-name",children:x})]})}),e.jsx(ee,{itemBackgrounds:!0,children:e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.subject}),e.jsx(ee.Value,{qa:"assignment-subject",children:h?.translationKey?e.jsx(d,{id:h.translationKey,defaultMessage:h.name}):e.jsx(d,{id:"assignment-settings-subject-not-found",defaultMessage:"Subject not found"})})]})})]}):e.jsxs(ee,{itemBackgrounds:!0,children:[e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.assignmentName}),e.jsx(ee.Value,{qa:"assignment-name",children:Gt(x,60)})]}),e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.subject}),e.jsx(ee.Value,{qa:"assignment-subject",children:h?.translationKey?e.jsx(d,{id:h.translationKey,defaultMessage:h.name}):e.jsx(d,{id:"assignment-settings-subject-not-found",defaultMessage:"Subject not found"})})]})]}),e.jsx(ee,{itemBackgrounds:!0,children:e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.instructions}),e.jsx(ee.Value,{qa:"assignment-instructions",children:f?e.jsx(Ml,{allowedTypes:go,children:mo.sanitize(f)}):e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"no-instructions-defined-warning-message",defaultMessage:"No instructions"})})})]})}
5),e.jsxs(ee,{itemBackgrounds:!0,children:[e.jsxs(ee.Item,{status:j?.startAt?void 0:In.WARNING,children:[e.jsx(ee.Label,{children:y.startTime}),e.jsx(ee.Value,{qa:"assignment-start-date",children:j?.startAt?mt(j?.startAt):e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"no-time-defined-warning-message",defaultMessage:"No time defined"})})})]}),e.jsxs(ee.Item,{status:j?.dueAt?void 0:In.WARNING,children:[e.jsx(ee.Label,{children:y.dueTime}),e.jsx(ee.Value,{qa:"assignment-due-date",children:j?.dueAt?mt(j?.dueAt):e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"no-time-defined-warning-message",defaultMessage:"No time defined"})})})]})]}),e.jsxs(ee,{itemBackgrounds:!0,children:[e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.lateSubmission}),e.jsx(ee.Value,{qa:"assignment-late-submissions",children:e.jsx(d,{id:Rn(S).messageId,defaultMessage:Rn(S).defaultMessage})})]}),e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.multipleAttempts}),e.jsx(ee.Value,{qa:"assignment-multiple-attempts",children:e.jsx(d,{id:Ln(v.reattemptsAllowed)?.messageId,defaultMessage:Ln(v.reattemptsAllowed)?.defaultMessage})})]})]}
5),e.jsx(ee,{itemBackgrounds:!0,children:e.jsxs(ee.Item,{children:[e.jsx(ee.Label,{children:y.lastUpdatedBy}),e.jsxs(ee.Value,{qa:"assignment-last-updated-by",children:[e.jsx("span",{children:`${n??y.unknownField}, `}),e.jsx(Tl,{dateTime:t.updatedAt,timeFormat:wl.RELATIVE_TODAY,includeTimeAndDate:!0,showTodayAsText:!0})]})]})}),e.jsx(wg,{startAt:j?.startAt,dueAt:j?.dueAt})]})})})})]}),o==="edit"&&e.jsx(ji,{onCancelModal:()=>c(""),modalType:"edit",classId:a,populatedValues:I(),assignmentStatus:m,loadAssignment:i,assignmentId:t.assignmentId})]}):e.jsx(bn,{children:e.jsx(bn.Message,{children:e.jsx(d,{id:"generic-data-error-message",defaultMessage:"There was a problem loading this data."})})})},wg=({startAt:s,dueAt:t})=>{const a=[!s&&"start-time",!t&&"due-time"].filter(Boolean);return a.length===0?null:e.jsx(Te,{variant:we.WARNING,children:a.map((n,r)=>e.jsx(d,{id:`missing-assignment-${n}-warning`,defaultMessage:`You must set a ${n.replace("-"," ")}. `},r))})},kg=({assignmentId:s})=>e.jsx(k,{qa:"assignment-info-widget",children:e.jsx(k.Body,{children:e.jsxs(Te,{variant:we.INFO,qa:"assignment-info-alert",children:[e.jsx(le.Lead,{qa:"assignment-info-message",children:e.jsx(d,{id:"assignment-group-info-alert-message",defaultMessage:"This assignment is assigned to multiple classes. Changes must be made on the main assignment settings page and will affect all classes."})}),e.jsx(J,{size:"tiny",variant:"secondary",icon:ho,qa:"go-to-main-assignment-button",children:e.jsx(Os,{to:`/teach/assignments/${s}`,children:e.jsx(d,{id:"assignment-info-go-to-main-assignment",defaultMessage:"Go to main assignment"})})})]})})}),[Ng,Si]=po("SmartValidationContext"),Dg=({children:s,assignment:t})=>{const{smartValidation:a}=Eg(t);return e.jsx(Ng,{value:{smartValidation:a},children:s})},Eg=s=>{const t=l.useCallback(async(r,i)=>{if(s&&s.smartRecommendationSettings?.courseIds?.length)try{return await Jo(s.assignmentId,r,i)}catch(o){xo(new Error("API Error: Smart assignment validity check failed"),"error",{tags:{component:"ClassAssignmentSettings",operation:"getSmartAssignmentValidity",assignmentId:s.assignmentId,assignmentName:s.name,assignmentStatus:s.status,assignmentType:s.kind,errorMessage:o?.message}});return}},[s?.smartRecommendationSettings?.courseIds]),{data:a,load:n}=Ee(t);return l.useEffect(()=>{s?.smartRecommendationSettings?.courseIds?.length&&n()},[s?.smartRecommendationSettings?.courseIds,s?.smartRecommendationSettings?.nuggetCount]),{smartValidation:a}},Lg=({assignment:s,classId:t,smartValidation:a})=>{if(!s.groups||s.groups.length===0)return null;const n=Sc(s.groups).find(r=>r.classId===t);return!n||ei(n.assignmentGroupId,a)===!1?null:e.jsx(Te,{variant:we.WARNING,qa:"course-missing-alert",children:e.jsx(d,{id:"class-assignment-course-missing-alert",defaultMessage:"This class does not have the selected course assigned. Students in this class will not be able to view or complete this assignment."})})},_g=({groupId:s})=>{const{smartValidation:t}=Si();return ei(s,t)===!1?null:e.jsx(k,{children:e.jsx(Te,{variant:we.WARNING,qa:"course-missing-alert",children:e.jsx(d,{id:"course-missing",defaultMessage:"Course missing"})})})},Rg=s=>{const t=s.answerGroups?.[0]?.correctAnswerIds?.[0],n=s.answerGroups?.[0]?.answers?.find(i=>i.id===t)?.exactInput;return(Array.isArray(n)?n:n!=null?[n]:[]).map(i=>(i??"").trim()).filter(Boolean)},Pg=({question:s})=>{const t=s.content?.map((o,c)=>e.jsx(_a,{content:o},`${o.type}-${c}`)),a=Rg(s),n=a[0]??"",r=s.answerType==="exact-answer-equation"?e.jsx(kl,{equation:n}):n,i=s.answerType==="exact-answer"?a.slice(1):[];return e.jsxs(e.Fragment,{children:[e.jsx(Nl,{qa:"exact-answer-preview",children:{question:t,exactAnswer:r,result:Dl.CORRECT,type:s.answerType==="exact-answer-equation"?"equation":"default"}}),i.length>0&&e.jsx("p",{"data-qa":"exact-answer-preview-alternatives",style:{marginTop:"0.4rem",fontSize:"0.85rem",color:"#5b6b8c"},children:e.jsx(d,{id:"exact-answer-preview-also-accepts",defaultMessage:"Also accepts: {alternatives}",values:{alternatives:i.join(", ")}})})]})},Og=({question:s})=>{const t=l.useMemo(()=>jo(s),[s]),a=l.useMemo(()=>qg(s),[s]),n=s.answerType==="matching"?fo:bo,r=s.answerGroups?.[0].answers?.map(i=>({possibleAnswerId:i?.correctPossibleAnswerIds?.[0]||"",answerGroupAnswerId:i?.id||"",isCorrect:!0}));return e.jsx(So,{children:e.jsx(n,{dragComponent:t,question:a,withholdResults:!1,hideFeedback:!0,result:{isCorrect:!0,details:r}})})},qg=s=>({...s,data:{...s}}),Bg=({question:s})=>{const t=s?.content?.map(a=>e.jsx(_a,{content:a},a.id));return e.jsxs(e.Fragment,{children:[t,e.jsx(Mn,{qa:"multi-choice-preview",children:s.answerGroups?.[0].answers?.map((a,n)=>{const r=a.id===s?.answerGroups?.[0].correctAnswerIds?.[0];
5return e.jsx(Mn.Option,{disabled:!0,qa:`multiple-choice-answer-${n}${r?"-correct":""}`,result:r?El.CORRECT:void 0,children:a.content?.map((i,o)=>e.jsx(_a,{content:i},`${i.type}-${a.id}-${o}`))},a.id)})})]})},Fg=({question:s})=>{if(!s?.content?.length||!s?.answerGroups?.[0]?.answers?.length)return e.jsx(d,{id:"question-preview-error",defaultMessage:"There was a problem loading this question"});switch(s.answerType){case"exact-answer":case"exact-answer-equation":return e.jsx(Pg,{question:s});case"multi-one-correct":return e.jsx(Bg,{question:s});case"matching":case"labelling":return e.jsx(Og,{question:s});default:throw Error("Invalid question type")}},$g=({fragments:s})=>{const{formatMessage:t}=de(),[a,n]=l.useState(s[0]),[r,i]=l.useState(0);if(!a?.documents?.length)return null;const o=m=>{n(m),i(0)},c=r>0,x=r<a.documents.length-1,u=()=>{x&&i(r+1)},f=()=>{c&&i(r-1)};return e.jsxs(ms.Fragment,{children:[e.jsxs(ms.Header,{children:[e.jsx(xe.SectionSubtitle,{children:e.jsx(d,{id:"study-session-navigation-heading",defaultMessage:"Learning Material"})}),e.jsxs(Me,{alignEnd:!0,drop:"down",onToggle:()=>null,children:[e.jsx(Me.Toggle,{children:e.jsx(kc,{qa:"fragment-preview-trigger",children:e.jsx(ri,{description:e.jsx(d,{id:a.fragmentType.translationKey||"no-fragment-type-translation",defaultMessage:a.fragmentType.name||" No Fragment Type"}),icon:Ci(a.fragmentType?.name),name:a.name??"",selected:!0})})}),e.jsx(Gg,{fragments:s,selectedFragment:a,handleFragmentChange:o})]})]}),e.jsxs(ot,{children:[e.jsx(ot.Main,{qa:"fragment-preview-content",children:e.jsx(wc,{documentId:a.documents[r]})}),e.jsxs(ot.Controls,{children:[c&&e.jsx(ot.Prev,{"aria-label":t({id:"class-analytics-previous",defaultMessage:"Previous"}),onClick:f,qa:"button-previous-slide"}),x&&e.jsx(ot.Next,{"aria-label":t({id:"class-analytics-next",defaultMessage:"Next"}),onClick:u,qa:"button-next-slide"})]})]})]})},Gg=({fragments:s,selectedFragment:t,handleFragmentChange:a})=>e.jsx(Me.Content,{role:"menu",children:s.map(n=>e.jsx(Nc,{onClick:()=>a(n),qa:"fragment-preview-option",children:e.jsx(ri,{description:e.jsx(d,{id:n.fragmentType?.translationKey||"no-fragment-type-translation",defaultMessage:n.fragmentType?.name||" No Fragment Type"}),icon:Ci(n.fragmentType?.name),name:n.name,selected:n._id===t._id})},n._id))}),Ug={audio:ks.AUDIO,podcast:ks.PODCAST,bonus:ks.BONUS,slideshow:ks.SLIDESHOW,video:ks.VIDEO,"video no audio":ks.VIDEO_NO_AUDIO},Ci=s=>{const t=s.toLowerCase();return t?Ug[t]:ks.SLIDESHOW},Hg=({nuggetId:s})=>{const{data:t,error:a,loading:n}=Ee((i,o)=>Ll(s,i,o),!0);if(n)return e.jsx(_e,{type:"independent"});if(a)return e.jsx(Te,{variant:we.WARNING,qa:"data-error-message",children:e.jsx(d,{id:"generic-modal-data-error",defaultMessage:"There was a problem loading this data. Please refresh the page."})});if(!t)return e.jsx(Te,{variant:we.INFO,qa:"no-data-message",children:e.jsx(d,{id:"generic-no-data-message",defaultMessage:"There is no data to display"})});const r=t?.assessments?.map(i=>i.questionGroups)?.flat()??[];return e.jsx(Tn,{children:e.jsxs(ms,{qa:"np-list",children:[e.jsxs(ms.Title,{children:[e.jsx(xe.Title,{qa:"np-title",children:t.name}),t?.description&&e.jsx(le.Paragraph,{children:t.description})]}),!!t?.fragments.length&&e.jsx($g,{fragments:t?.fragments}),r.map((i,o)=>e.jsxs(ms.Item,{children:[e.jsx(xe.SectionSubtitle,{qa:"qg-name",children:Wg(i,o)}),i?.questions?.length>0&&e.jsx(Tn.Box,{qa:"np-question",children:e.jsx(Fg,{question:i.questions[0]})},`${i._id??o}-${o}`)]},i?._id??o))]})})},Wg=(s,t)=>{const a=s?.name?.trim();return!a||/^[0-9]+$/.test(a)?e.jsx(d,{id:"question-number",defaultMessage:"Question {number}",values:{number:t+1}}):`${t+1}. ${a}`},yi=({nuggetId:s,onClose:t})=>{const a=de();return e.jsx(Js,{dismissLabel:a.formatMessage({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),floatingDismiss:!1,modalActive:!0,onExit:t,size:"xlarge",qa:"nugget-preview-modal",children:e.jsx(Js.Body,{qa:"nugget-preview-modal-body",children:e.jsx(Hg,{nuggetId:s})})})},Vg=s=>{const{filteredNuggets:t,selectedNuggets:a,totalPages:n,currentPage:r,error:i,handleNextPage:o,handlePreviousPage:c,goToPage:x,handleNuggetChange:u,isNuggetSelectable:f,onNuggetPreviewClick:m}=s,{formatMessage:C}=de();return i?e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"add-nuggets-modal-fetch-error",defaultMessage:"There was a problem loading nuggets for this course"})}):t.length===0?e.jsx(nc,{qa:"no-nuggets-found-message",children:e.jsx(d,{id:"search-no-match",defaultMessage:"No results found."})}):e.jsxs(ca,{children:[e.jsx(ts,{children:e.jsxs("tbody",{children:[e.jsxs(Oa,{children:[e.jsx("td",{children:e.jsx(le.Stat,{children:e.jsx(d,{id:"add-nuggets-modal-name-header",defaultMessage:"Nugget Name"})})}),e.jsx("td",{children:e.jsx(le.Stat,{children:e.jsx(d,{id:"add-nuggets-modal-topic-header",defaultMessage:"Topic"})})}),e.jsx("td",{children:e.jsx(le.Stat,{children:e.jsx(d,{id:"add-nuggets-modal-subtopic-header",defaultMessage:"Subtopic"})})}),e.jsx("td",{})]}),t.map(j=>e.jsxs(Jr,{isDisabled:!f(j.id),children:[e.jsx("td",{"data-testid":"nugget-name",children:e.jsxs(Pn,{fillSpace:!0,children:[e.jsx("input",{type:"checkbox",checked:a.some(v=>v.id===j.id),onChange:v=>u(j.id,j.name,v.target.checked)}),e.jsx(Pn.Label,{children:j.name})]})}),e.jsx("td",{children:e.jsx(qs,{onClick:()=>u(j.id,j.name,!a.some(v=>v.id===j.id)),hasActiveOutline:!1,children:j.topicName})}),e.jsx("td",{children:e.jsx(qs,{onClick:()=>u(j.id,j.name,!a.some(v=>
5v.id===j.id)),hasActiveOutline:!1,children:j.subtopicName})}),e.jsx("td",{children:e.jsx(Wt,{position:Vt.W,label:C({id:"preview",defaultMessage:"Preview"}),qa:"preview-nugget-tooltip",children:e.jsx(J,{onClick:()=>m(j.id),icon:Sr,size:"tiny",variant:"secondary",qa:`preview-nugget-${j.id}`})})})]},j.id))]})}),e.jsx(Yr,{maxPages:n,currentPage:r,onNextClick:o,onPrevClick:c,goToPage:x})]})},$a=100,zg=s=>{const{assignedNuggets:t,assignment:a,classId:n,smartNuggetsCount:r,handleCloseModal:i,loadNuggetsAndAssignment:o}=s,{assignmentId:c,subjectId:x,subject:u,status:f}=a,m=de(),C=hs(),[j,v]=l.useState("all"),[h,S]=l.useState("all"),[y,I]=l.useState([]),[w,b]=l.useState(0),[M,p]=l.useState([]),[A,T]=l.useState(""),[_,O]=l.useState(!1),[E,F]=l.useState(!1),[H,K]=l.useState({course:!1,topicId:!1,subtopicId:!1,search:!1}),[be,re]=l.useState(""),{courses:ne,isLoadingCourses:D,coursesError:L,selectedCourseId:q,setSelectedCourseId:W}=Qg(x,u?.name||""),{currentPage:Ce,totalPages:se,goToPage:G,handleNextPage:Q,handlePreviousPage:te,setCurrentPage:ye}=rc({itemsPerPage:$a,totalItems:w}),{data:ae,load:ke,loading:ce,error:me}=Ee(B=>Cr(q,B));l.useEffect(()=>{q&&ke()},[q]);const ve=B=>{z.track($.TeacherDashboardAssignmentSettingsAddNuggetsModal,{[g.ClassId]:n||"N/A",[g.AssignmentId]:c,[g.CourseId]:q,[g.ModalAction]:B,[g.AssignedNuggets]:t?.count,[g.SelectedItems]:y.length,[g.FiltersUsed]:Object.keys(H).filter(Z=>H[Z]).join(", ")||"none"})},as=B=>{W(B.target.value),v("all"),K(Z=>({...Z,course:!0}))},ls=(B,Z,bs)=>{(Y(B)||!bs)&&I(Ss=>bs?[...Ss,{id:B,name:Z}]:Ss.filter(tt=>tt.id!==B))},Ke=ae?.topics,Xe=l.useMemo(()=>ae?.topics?.find(B=>B.topicId===j)?.subtopics,[ae?.topics,j]);l.useEffect(()=>{if(Ke){const{filteredNuggets:B,totalItems:Z}=Yg(Ke,j,h,A,Ce);b(Z),p(B)}},[Ce,A,h,j,Ke]);const Le=l.useMemo(()=>!Ke||M.length?null:h!=="all"?e.jsx(d,{id:"search-no-match-subtopic-level",defaultMessage:"No matches found in this subtopic."}):j!=="all"?e.jsx(d,{id:"search-no-match-topic-level",defaultMessage:"No matches found in this topic."}):e.jsx(d,{id:"search-no-match-course-level",defaultMessage:"No matches found in this course."}),[M.length,h,j,Ke]),X=B=>{I(Z=>Z.filter(bs=>bs.id!==B))},Y=B=>{const bs=y.length+(t?.count||0)+r,Ss=y.some(at=>at.id===B),tt=t?.data.some(at=>at.nuggetId===B);return(bs<gs||Ss)&&!tt},Ae=l.useCallback(async()=>{if(y.length!==0){O(!0);try{const B=y.map(Z=>Z.id);await Tr(C.current,c,B),await o(),ve("submitted"),O(!1),Oe(y.length),i()}catch{F(!0),O(!1)}}},[y,C,c]),Re=()=>{i(),ve("dismiss")},Oe=B=>{yt.success(e.jsx(d,{id:"assignment-nugget-added-toast",defaultMessage:"{count, plural, one {{count} nugget has} other {{count} nuggets have}} been successfully added.",values:{count:B}}))},ue=B=>{re(B),z.track($.NuggetPreviewClicked,{[g.AssignmentId]:c,[g.NuggetId]:B,[g.SelectedItems]:y.length,[g.PreviewLocation]:"Assignment Add Nuggets Modal"})};return e.jsxs(e.Fragment,{children:[e.jsx(U,{modalActive:!0,onExit:Re,dismissLabel:m.formatMessage({id:"modal-dismiss-button",defaultMessage:"Dismiss"}),size:"xxlarge",hasScroll:!1,children:e.jsxs(wt,{children:[e.jsx(U.Header,{children:e.jsx(U.Title,{qa:"add-nuggets-modal-title",children:e.jsx(d,{id:"teacher-assignment-add-nuggets-modal-title",defaultMessage:"Add Nuggets"})})}),L?e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"assignment-add-nuggets-modal-courses-error",defaultMessage:"There was a problem loading courses"})}):f==="IN_PROGRESS"&&e.jsx(Te,{variant:we.INFO,children:e.jsx(d,{id:"assignment-add-nuggets-modal-info-message",defaultMessage:"Adding nuggets to an assignment that's already in progress will not affect the progress students have already made. You can view this progress in the Nuggets tab in the Teacher Dashboard."})}),e.jsx(U.Body,{children:e.jsxs(P,{children:[e.jsx(P.Col,{xs:12,sm:3,children:e.jsxs(Ve,{children:[e.jsx(Ve.Text,{qa:"add-nuggets-modal-course-label",children:e.jsx(d,{id:"dropdown-label-course",defaultMessage:"Course"})}),e.jsx(ha,{name:"course",value:q,onChange:as,children:ne?.map(B=>e.jsx("optgroup",{label:B.title,children:B.entities.map(Z=>e.jsx("option",{value:Z.value,children:Z.title},Z.value))},B.key))})]})}),e.jsx(P.Col,{xs:12,sm:3,children:e.jsxs(Ve,{children:[e.jsx(Ve.Text,{qa:"add-nuggets-modal-topic-label",children:e.jsx(d,{id:"dropdown-label-topic",defaultMessage:"Topic"})}),e.jsxs(ha,{value:j,onChange:B=>{v(B.target.value),S("all"),K(Z=>({...Z,topicId:!0})),ye(1)},children:[e.jsx("option",{value:"all",children:m.formatMessage({id:"dropdown-placeholder-all-topics",defaultMessage:"All Topics"})}),Ke?.map(B=>e.jsx("option",{value:B.topicId,children:B.name},B.topicId))]})]})}),e.jsx(P.Col,{xs:12,sm:3,children:e.jsxs(Ve,{children:[e.jsx(Ve.Text,{qa:"add-nuggets-modal-subtopic-label",children:e.jsx(d,{id:"dropdown-label-subtopic",defaultMessage:"Subtopic"})}),e.jsxs(ha,{disabled:j==="all",value:h,onChange:B=>{S(B.target.value),K(Z=>
5({...Z,subtopicId:!0})),ye(1)},children:[e.jsx("option",{value:"all",children:m.formatMessage({id:"dropdown-placeholder-all-subtopics",defaultMessage:"All Subtopics"})}),Xe?.map(B=>e.jsx("option",{value:B.subtopicId,children:B.name},B.subtopicId))]})]})}),e.jsx(P.Col,{xs:12,sm:3,children:e.jsxs(Ve,{children:[e.jsx(Ve.Text,{qa:"courses-modal-strand-label",children:e.jsx(d,{id:"search-nuggets-by-name-label",defaultMessage:"Nugget Name"})}),e.jsx(Xr,{performSearch:B=>{T(B),K(Z=>({...Z,search:!0})),j==="all"&&ye(1)},size:sc.LARGE})]})}),e.jsx(P.Col,{xs:12,children:e.jsx(k,{children:e.jsx(k.Body,{isScrollable:!0,children:D||ce?e.jsx(_e,{type:"widget"}):Le||e.jsx(Vg,{filteredNuggets:M,selectedNuggets:y,totalPages:se,currentPage:Ce,error:me,handleNextPage:Q,handlePreviousPage:te,goToPage:G,handleNuggetChange:ls,isNuggetSelectable:Y,onNuggetPreviewClick:B=>ue(B)})})})}),e.jsx(P.Col,{xs:12,children:E&&e.jsx(ta,{children:e.jsx(d,{id:"add-nuggets-modal-error-adding-nuggets",defaultMessage:"Oops, there was a problem adding nuggets to this assignment"})})})]})}),e.jsxs(U.Controls,{children:[y.length>0&&e.jsx(oa,{items:y.map(({id:B,name:Z})=>({id:B,name:Z})),removeItem:X}),e.jsx(J,{variant:"default",onClick:Re,tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"Cancel"})}),e.jsx(J,{onClick:Ae,variant:"primary",loading:_,disabled:_,tabIndex:0,children:e.jsx(d,{id:"add-btn",defaultMessage:"Add"})})]})]})}),be&&e.jsx(yi,{nuggetId:be,onClose:()=>re("")})]})},Qg=(s,t)=>{const[a,n]=l.useState(""),r=de(),{baseData:i}=l.useContext(Pe),o=r.formatMessage({id:"assigned-courses-dropdown-title",defaultMessage:"Assigned Courses"}),c=r.formatMessage({id:"all-courses-dropdown-title",defaultMessage:"All Courses"}),x=r.formatMessage({id:"subject-courses-dropdown-title",defaultMessage:"{subject} Courses"},{subject:t}),u=r.formatMessage({id:"assigned-subject-courses-dropdown-title",defaultMessage:"Assigned {subject} Courses"},{subject:t}),f=l.useCallback(async(v,h)=>{const y=(await ic(v,h)).data.courses.map(({id:p,subject:A,name:T})=>({value:p,title:T,subjectId:A.id})),I=it("group3",y,c);if(!i?.courses?.length){const p=y.filter(A=>A.subjectId===s);return!p.length||!t?[I]:[it("group1",p,x),I]}const w=i.courses.map(({courseId:p,name:A,subject:T})=>({value:p,title:A,subjectId:T.labelId})),b=w.filter(p=>p.subjectId===s),M=w.filter(p=>p.subjectId!==s);return!b.length||!t?[it("group2",w,o),I]:[it("group1",b,u),it("group2",M,o),I]},[i,s,t,o,c,x,u]),{data:m,loading:C,error:j}=Ee(f,!0);return l.useEffect(()=>{!C&&m?.length&&n(m[0].entities[0].value)},[m,C,j]),{courses:m,selectedCourseId:a,setSelectedCourseId:n,coursesError:j,isLoadingCourses:C}},Yg=(s,t,a,n,r)=>{const i=(s||[]).filter(u=>t==="all"||u.topicId===t).flatMap(({subtopics:u})=>u).filter(u=>a==="all"||u.subtopicId===a).flatMap(({nuggets:u})=>u.filter(f=>f?.name?.toLowerCase().includes(n.toLowerCase())&&f.isPublished)).map(u=>{let f="",m="";return(s||[]).forEach(C=>{C.subtopics.forEach(j=>{j.nuggets.find(v=>v.nuggetId===u.nuggetId)&&(f=C.name,m=j.name)})}),{id:u.nuggetId,name:u.name,topicName:f,subtopicName:m}}),o=(r-1)*$a,c=o+$a;return{filteredNuggets:i.slice(o,c),totalItems:i.length}},Aa="nugget",Kg=s=>{const{index:t,nugget:a,isEditOpen:n,canReorder:r,moveNugget:i,onRemoveNuggetClick:o,onNuggetPreviewClick:c}=s,x=l.useRef(null),u=de(),[{isDragging:f},m]=Xd({type:Aa,item:{type:Aa,index:t},collect:j=>({isDragging:j.isDragging()}),canDrag:r}),[,C]=mu({accept:Aa,hover:j=>{n&&j.index!==t&&(i(j.index,t),j.index=t)}});return m(C(x)),e.jsx("div",{ref:x,style:{opacity:f?.5:1},children:e.jsxs(Ot.Item,{qa:"td-assignment-nuggets-list-item",children:[r&&e.jsx(Ot.Drag,{children:e.jsx(J,{icon:Co,variant:"naked",size:"medium"})}),a.nugget.name,e.jsx(Ot.Controls,{children:n?e.jsx(Wt,{position:Vt.W,label:u.formatMessage({id:"remove",defaultMessage:"Remove"}),children:e.jsx(J,{icon:ir,size:"tiny",qa:"td-assignment-nugget-remove-button","aria-label":"Remove",onClick:()=>o(a.assignmentNuggetId)})}):e.jsx(Wt,{position:Vt.W,label:u.formatMessage({id:"preview",defaultMessage:"Preview"}),children:e.jsx(J,{icon:Sr,size:"tiny",variant:"naked",qa:"td-nugget-preview-button",onClick:()=>c(a.nuggetId)})})})]})})},Xg=s=>{const{assignmentDetails:t,classId:a,canModify:n,nuggets:r,loadAssignment:i,loadNuggets:o}=s,{assignmentId:c,status:x,options:u}=t,f=Zg(c,a,x),m=sl(t),[C,j]=l.useState(),[v,h]=l.useState(!1),[S,y]=l.useState(""),I=l.useRef(""),[w,b]=l.useState(),[M,p]=l.useState(!1),A=v&&w?w:r?.data||[],T=v&&A.length>1,_=()=>{j("add-nugget"),f($.TeacherDashboardAssignmentSettingsAddNuggetsButtonClicked)},O=D=>{y(D),f($.NuggetPreviewClicked,{[g.NuggetId]:D,[g.PreviewLocation]:"Assignment Nuggets Widget"})},E=l.useCallback(async(D,L,q)=>{await Zo(D,c,L,q),v&&w&&b(w.filter(W=>W.assignmentNuggetId!==L)),await o(),await i(),f($.TeacherDashboardAssignmentSettingsRemoveNuggetClicked,{[g.NuggetId]:L})},[c,w,v,i,o,f]),F=async D=>{I.current=D,x==="IN_PROGRESS"?j("remove-nugget"):await H.load()},H=Ee((D,L)=>E(D,I.current,L)),K=l.useCallback(async(D,L)=>{try{if(!w)return;if(!M){h(!1),b(void 0);return}const q=w.map(W=>W.assignmentNuggetId);await el(D,c,q,L),m("completed"),await o(),await i(),h(!1),b(void 0)}catch(q){yt.error(q.message)}},[c,i,o,m,w,M]),be=Ee(K),re=()=>{r?.data&&b([...r.data]),h(!0),p(!1),f($.TeacherDashboardAssignmentNuggetsWidgetEditButtonClicked,{[g.AssignedNuggets]:r?.count})},ne=l.useCallback((D,L)=>{if(!w)return;const q=w.map((W,Ce)=>Ce===D?w[L]:Ce===L?w[D]:W);b(q),p(!0)},[w]);return e.jsxs(e.Fragment,{children:[!r||r.count===0?e.jsx(sm,{canModify:n,onAddNuggetClick:_}):e.jsxs(ze,{variant:Ks.BORDER,children:[e.jsxs(ze.Header,{qa:"td-assignment-nuggets-widget-title",children:[e.jsxs(is,{children:[e.jsx(is.Score,{children:e.jsx(xe.SectionSubtitle,{noMargin:!0,children:n?e.jsx(d,{id:"assignments-add-nuggets-button",defaultMessage:"Add Nuggets"}):e.jsx(d,{id:"assignments-nuggets-header",defaultMessage:"Nuggets"})})}),(n||!n&&t.smartRecommendationSettings?.courseIds.length)&&e.jsx(is.Attempts,{children:e.jsx(Zt,{variant:Jt.DEFAULT,children:r.count})})]}),e.jsx(ze.Controls,{children:e.jsx(em,{isEditOpen:v,canModify:n,showAddButton:r.count<gs&&n,onEditClick:re,onDoneClick:be.load,onCancelClick:()=>{m("cancelled"),h(!1),b(void 0),p(!1),be.reset()},onAddClick:()=>{j("add-nugget"),f($.TeacherDashboardAssignmentSettingsAddNuggetsButtonClicked)},loading:be.loading})})]}),u.reattemptsAllowed&&r.data.some(D=>D.nugget.isDiagnostic)&&e.jsx(Te,{variant:we.INFO,qa:"td-assignment-nuggets-widget-info-alert",children:e.jsx(le.Lead,{qa:"td-assignment-nuggets-widget-info-warning-message",children:e.jsx(d,{id:"assignment-nuggets-widget-diagnostics-info-alert",defaultMessage:"This assignment includes diagnostics. Students will only be able to complete diagnostics once per assignment. Any other nuggets can be completed multiple times."})})}),e.jsx(yo,{backend:Io.isMobile?vo:Ao,children:e.jsx(Ot,{qa:"td-assignment-nuggets-list",isDraggable:T,children:A.map((D,L)=>e.jsx(Kg,{nugget:D,index:L,isEditOpen:v,canReorder:T,moveNugget:ne,onRemoveNuggetClick:F,onNuggetPreviewClick:O}
5,D.assignmentNuggetId))})})]}),C==="add-nugget"&&e.jsx(zg,{handleCloseModal:()=>j(void 0),assignedNuggets:r,assignment:t,classId:a,smartNuggetsCount:t.smartRecommendationSettings?.nuggetCount||0,loadNuggetsAndAssignment:async()=>{await o(),await i()}}),C==="remove-nugget"&&e.jsx(dn,{onConfirm:()=>{H.load(),j(void 0)},onCancel:()=>j(void 0),loading:H.loading,error:H?.error?.message,modalMessage:Jg}),S&&e.jsx(yi,{nuggetId:S,onClose:()=>y("")})]})},Jg={modalTitle:"Remove Nugget",modalTitleId:"teacher-assignments-remove-nugget-modal-title",modalBodyMessage:"Are you sure you want to remove this nugget? Any progress made by students will still be available via the Nuggets tab on the Teacher Dashboard.",modalBodyMessageId:"teacher-assignments-remove-nugget-modal-message",confirmButtonMessage:"Remove",confirmButtonMessageId:"remove-btn",cancelButtonMessage:"Cancel",cancelButtonMessageId:"cancel-btn"},Zg=(s,t,a)=>{const n={[g.AssignmentId]:s,[g.ClassId]:t||"N/A",[g.AssignmentStatus]:a};return(r,i)=>{const o={...n,...i};z.track(r,o)}},em=s=>{const{isEditOpen:t,canModify:a,showAddButton:n,onEditClick:r,onDoneClick:i,onCancelClick:o,onAddClick:c,loading:x}=s;return t?e.jsxs(e.Fragment,{children:[e.jsx(J,{variant:"default",size:"tiny",icon:Mo,onClick:o,qa:"cancel-button",children:e.jsx(d,{id:"cancel",defaultMessage:"Cancel"})}),e.jsx(J,{variant:"secondary",size:"tiny",icon:Ua,onClick:i,qa:"done-button",loading:x,children:e.jsx(d,{id:"done",defaultMessage:"Done"})})]}):e.jsxs(e.Fragment,{children:[a&&e.jsx(J,{size:"tiny",variant:"secondary",qa:"td-assignment-nuggets-widget-edit-button",icon:Qa,onClick:r,children:e.jsx(d,{id:"assignment-edit-btn",defaultMessage:"Edit"})}),n&&e.jsx(J,{size:"tiny",variant:"secondary",qa:"td-assignment-nuggets-widget-add-button",icon:Ct,onClick:c})]})},sm=({canModify:s,onAddNuggetClick:t})=>s?e.jsx(un,{icon:Ct,onClick:t,qa:"td-assignment-nuggets-widget-add-button",children:e.jsx(P,{direction:rs.COLUMN,noGap:!0,children:e.jsxs(P.Col,{children:[e.jsx(xe.SectionSubtitle,{noMargin:!0,children:e.jsx(d,{id:"select-nuggets",defaultMessage:"Select Nuggets"})}),e.jsx(le.Label,{children:e.jsx(d,{id:"select-nuggets-subtitle",defaultMessage:"Choose specific nuggets for this assignment."})})]})})}):null,tm=(s,t,a=0)=>{const n=Math.min(Math.max(s,a),t),[r,i]=l.useState(n),o=x=>{const u=Math.min(Math.max(x,a),t);i(u)},c=x=>{const u=Number(x.target.value);Number.isNaN(u)||o(u)};return{value:r,isAtMax:r>=t,handleChange:c,increment:()=>o(r+1),decrement:()=>o(r-1)}},am=s=>{const{commonCourses:t,assignedCourse:a,selectedCourseId:n,onCourseSelect:r}=s,{currentSubjectCourses:i,otherCourses:o}=t,c=Er(),x=i.courses.filter(m=>m._id!==a?._id),u=o.filter(m=>m._id!==a?._id),f=!i.courses.length&&!o.length;return e.jsx(ts,{children:e.jsxs("tbody",{children:[a&&e.jsx("tr",{children:e.jsx("td",{children:e.jsxs(ys,{disabled:f,checked:n===a._id,onClick:()=>!f&&r(a._id),children:[e.jsx(ys.Checkbox,{children:e.jsx("input",{type:"radio",id:a._id,checked:n===a._id,disabled:f,readOnly:!0})}),e.jsx(ys.Image,{children:e.jsx($s,{item:{iconCode:a?.iconCode,subject:a?.subject}})}),e.jsx(ys.Title,{children:a?.name})]})})}),f&&e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"smart-nuggets-modal-common-courses-missing",defaultMessage:"You can't change the course because the selected students/classes don't share any courses. You can change the number of nuggets instead."})}),x.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(Oa,{children:e.jsx("td",{children:e.jsx(le.Stat,{children:e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"smart-nuggets-modal-common-courses-with-subject",defaultMessage:"{value} courses common to all classes",values:{value:c(i.subject.subjectName)}})})})})}),x.map(m=>l.createElement(nr,{...s,key:m._id,course:m,includeCourseImage:!0}))]}),u.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(Oa,{children:e.jsx("td",{children:e.jsx(le.Stat,{children:e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"smart-nuggets-modal-all-common-courses-title",defaultMessage:"All Courses Common to All Classes"})})})})}),u.map(m=>
5l.createElement(nr,{...s,key:m._id,course:m}))]})]})})},nr=({course:s,selectedCourseId:t,includeCourseImage:a,onCourseSelect:n})=>e.jsx("tr",{children:e.jsx("td",{children:e.jsxs(ys,{onClick:()=>n(s._id),checked:t===s._id,qa:"course-list-item",children:[e.jsxs(ys.Checkbox,{children:[e.jsx("input",{type:"radio",id:s._id,checked:t===s._id,onChange:()=>n(s._id)}),e.jsx("label",{htmlFor:s._id})]}),a&&e.jsx(ys.Image,{children:e.jsx($s,{item:{iconCode:s?.iconCode,subject:s.subject}})}),e.jsx(ys.Title,{children:s.name})]})})}),nm=({closeModal:s,assignment:t,hasCommonCourses:a})=>e.jsx(U,{modalActive:!0,onExit:s,dismissLabel:"dismiss",size:"xlarge",hasScroll:!1,children:e.jsxs(wt,{children:[e.jsx(U.Header,{children:e.jsx(U.Title,{children:e.jsx(d,{id:"smart-nuggets-title",defaultMessage:"Smart Nuggets"})})}),e.jsx(U.Body,{children:e.jsxs(ca,{mode:bt.SMART,children:[e.jsx(le.Lead,{children:e.jsx(d,{id:"smart-nuggets-modal-description",defaultMessage:"Select how many nuggets and from which course you want the personalised recommendations to be from. The course must be assigned to the classes for the recommendations to work."})}),e.jsx(k,{children:e.jsxs(k.Body,{children:[e.jsx(ii,{inputValue:1,inputDisabled:!0,increaseDisabled:!0,decreaseDisabled:!0}),e.jsx(xe.ItemTitle,{noMargin:!0,children:e.jsx(d,{id:"tabs-nugget-qla",defaultMessage:"Nuggets"})})]})}),e.jsx(k,{children:e.jsx(k.Body,{isScrollable:!0,children:e.jsx(rm,{groups:t.groups,hasCommonCourses:a})})})]})}),e.jsx(U.Controls,{children:e.jsx(J,{variant:"default",size:"medium",onClick:s,tabIndex:1,children:e.jsx(d,{id:"close-btn",defaultMessage:"Close"})})})]})}),rm=({groups:s,hasCommonCourses:t})=>s.length===0?e.jsxs(Te,{variant:we.INFO,qa:"no-students-assigned-alert",children:[e.jsx(le.Lead,{noMargin:!0,children:e.jsx(d,{id:"smart-nuggets-modal-no-classes-students-alert",defaultMessage:"Personalised smart recommendations must be set for a course that is assigned to the classes/students."})}),e.jsx(le.Message,{noMargin:!0,children:e.jsx(d,{id:"smart-nuggets-modal-no-classes-students-alert-action",defaultMessage:"Please add classes or add students to the assignment first."})})]}):t===!1?e.jsx(Te,{variant:we.WARNING,qa:"no-common-courses-error",children:e.jsx(le.Lead,{noMargin:!0,children:e.jsx(d,{id:"smart-nuggets-modal-no-common-courses-alert",defaultMessage:"To create this Smart Assignment, all selected classes/students need to have at least one course in common. Review the list of classes/students and try again."})})}):null,im=5,om=({assignment:s,course:t,loadAssignment:a,closeModal:n})=>{const[r,i]=l.useState(t?._id||null),[o,c]=l.useState(),{formatMessage:x}=de(),u=nl(s),f=To(),m=s.nuggets.length,C=gs-m,j=Math.min(im,C),v=tm(s.smartRecommendationSettings?.nuggetCount||1,j,1),h=m+v.value>=gs,{data:S,loading:y,error:I}=Ee((T,_)=>tl(T,s.assignmentId,_),!0),w=lm(S),b=async(T,_)=>{const O=s?.smartRecommendationSettings?.nuggetCount,E=O===v.value,F=r===t?._id;if(E&&F){A("smart nuggets modal");return}if(!r){c(x({id:"smart-nuggets-modal-course-error",defaultMessage:"Please select a course"}));return}try{const H={courseIds:[r],nuggetCount:v.value};await al(T,s.assignmentId,H,_),await a(),u("smart nuggets modal","submitted",{[g.TotalSelected]:v.value,[g.CoursesChosen]:r,[g.UpdateType]:t?"edit":"add"}),O===void 0&&f.capture("Teacher Dashboard Assignment Smart Nugget Added"),n()}catch(H){c(H.message)}},{load:M,loading:p}=Ee(b),A=T=>{n(),u(T,"dismissed",{[g.UpdateType]:t?"edit":"add"})};return y?e.jsx(Rt,{closeModal:n,children:e.jsx(U.Body,{children:e.jsx(_e,{type:"widget",overlay:!0})})}):I?e.jsxs(Rt,{closeModal:n,children:[e.jsx(U.Body,{children:e.jsxs(Te,{variant:we.WARNING,children:[e.jsx(le.Lead,{noMargin:!0,children:e.jsx(d,{id:"smart-nuggets-modal-common-courses-error",defaultMessage:"Failed to load common courses. Please try again later."})}),e.jsx(le.Message,{noMargin:!0,children:I.message})]})}),e.jsx(U.Controls,{children:e.jsx(J,{variant:"default",size:"medium",onClick:n,tabIndex:1,children:e.jsx(d,{id:"close-btn",defaultMessage:"close"})})})]}):S?s.groups.length===0||!w&&!t?e.jsx(nm,{closeModal:()=>A("missing data alert modal"),assignment:s,hasCommonCourses:w}):e.jsxs(Rt,{closeModal:()=>A("smart nuggets modal"),children:[e.jsx(U.Body,{children:e.jsxs(ca,{mode:bt.SMART,children:[e.jsx(le.Lead,{children:e.jsx(d,{id:"smart-nuggets-modal-description",defaultMessage:"Select how many nuggets and from which course you want the personalised recommendations to be from. The course must be assigned to the classes for the recommendations to work."})}),e.jsx(k,{children:e.jsxs(k.Body,{children:[e.jsx(ii,{inputValue:v.value,inputDisabled:s.nuggets.length>=gs,onChange:v.handleChange,increment:v.increment,decrement:v.decrement,increaseDisabled:v.isAtMax,decreaseDisabled:v.value<=1}),e.jsx(xe.ItemTitle,{noMargin:!0,children:e.jsx(d,{id:"tabs-nugget-qla",defaultMessage:"Nuggets"})})]})}),h&&e.jsx(Te,{variant:we.WARNING,qa:"nuggets-limit-warning",children:e.jsx(d,{id:"smart-nuggets-modal-max-total-warning",defaultMessage:"You can have a maximum of {max} nuggets in an assignment. To add more Smart Nuggets, please remove some of your set nuggets.",values:{max:gs}})}),e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(xe.ItemTitle,{noMargin:!0,children:e.jsx(d,{id:"course-dropdown-label",defaultMessage:"Course"})})}),e.jsx(k.Body,{isScrollable:!0,children:e.jsx(am,{selectedCourseId:r,commonCourses:S,assignedCourse:t,onCourseSelect:i})}),o&&e.jsx(ta,{qa:"select-course-error",children:o})]})]})}),e.jsxs(U.Controls,{children:[e.jsx(J,{variant:"default",size:"medium",onClick:()=>A("smart nuggets modal"),qa:"cancel-button",children:e.jsx(d,{id:"cancel-btn",defaultMessage:"Cancel"})}),e.jsx(J,{variant:"primary",size:"medium",loading:p,disabled:p,onClick:M,qa:"apply-button",children:e.jsx(d,{id:"apply-button-label",defaultMessage:"Apply"})})]})]}):e.jsxs(Rt,{closeModal:n,children:[e.jsx(U.Body,{children:e.jsx(Te,{variant:we.WARNING,children:e.jsx(d,{id:"generic-data-error-message",defaultMessage:"There was a problem loading this data."})})}),e.jsx(U.Controls,{children:e.jsx(J,{variant:"default",size:"medium",onClick:n,children:e.jsx(d,{id:"close-btn",defaultMessage:"close"})})})]})},Rt=({children:s,closeModal:t})=>e.jsx(U,{modalActive:!0,onExit:t,dismissLabel:"dismiss",size:"xlarge",hasScroll:!1,qa:"smart-nuggets-modal",children:e.jsxs(wt,{children:[e.jsx(U.Header,{children:e.jsx(U.Title,{children:e.jsx(d,{id:"smart-nuggets-title",defaultMessage:"Smart Nuggets"})})}),s]})}),lm=s=>s?s.currentSubjectCourses.courses.length>0||s.otherCourses.length>0:!1,cm=s=>{const{assignment:t,canModify:a,courseLoader:n,loadAssignment:r}=s,{data:i,loading:o,error:c}=n,[x,u]=l.useState();return o?e.jsxs(ze,{variant:Ks.BORDER,children:[e.jsx(ze.Header,{children:e.jsx(Ia,{})}),e.jsx(_e,{type:"widget"})]}):c?e.jsxs(ze,{variant:Ks.BORDER,children:[e.jsx(ze.Header,{children:e.jsx(Ia,{})}),e.jsxs(Te,{variant:we.WARNING,children:[e.jsx(le.Message,{noMargin:!0,children:e.jsx(d,{id:"generic-data-error-message",defaultMessage:"There was a problem loading this data."})}),e.jsx(le.Lead,{noMargin:!0,children:c.message})]})]}):e.jsxs(e.Fragment,{children:[t?.smartRecommendationSettings&&t?.smartRecommendationSettings?.nuggetCount>0?e.jsxs(ze,{variant:Ks.BORDER,qa:"smart-nuggets-panel",children:[e.jsxs(ze.Header,{children:[e.jsx(Ia,{}),a&&e.jsx(ze.Controls,{children:e.jsx(J,{icon:Qa,size:"tiny",variant:"secondary",onClick:()=>u("add-smart-nugget"),qa:"edit-smart-nuggets-button",children:e.jsx(d,{id:"assignment-edit-btn",defaultMessage:"Edit"})})})]}
5),e.jsxs(ee,{itemBackgrounds:!0,children:[e.jsxs(ee.Item,{children:[e.jsx(ee.Value,{children:t?.smartRecommendationSettings?.nuggetCount}),e.jsx(ee.Label,{children:e.jsx(d,{id:"smart-nuggets-count-label",defaultMessage:"{count, plural, one {Nugget} other {Nuggets}}",values:{count:t?.smartRecommendationSettings.nuggetCount}})})]}),e.jsx(ee.Item,{children:e.jsxs(Fe,{children:[e.jsx(Fe.Thumbnail,{children:e.jsx($s,{item:{iconCode:i?.iconCode,subject:i?.subject}})}),e.jsx(Fe.Main,{children:e.jsx(xe.ItemTitle,{noMargin:!0,children:i?.name})})]})})]})]}):e.jsx(dm,{canModify:a,onAddSmartNuggets:()=>u("add-smart-nugget")}),x==="add-smart-nugget"&&e.jsx(om,{assignment:t,course:i,loadAssignment:r,closeModal:()=>u(void 0)})]})},dm=({canModify:s,onAddSmartNuggets:t})=>s?e.jsx(un,{icon:Ct,onClick:t,qa:"smart-nuggets-add-button",children:e.jsx(P,{direction:rs.COLUMN,noGap:!0,children:e.jsxs(P.Col,{children:[e.jsx(xe.SectionSubtitle,{noMargin:!0,children:e.jsx(Rr,{position:Or.AFTER,variant:Pr.DEFAULT,children:e.jsx(d,{id:"smart-nuggets-title",defaultMessage:"Smart Nuggets"})})}),e.jsx(le.Label,{children:e.jsx(d,{id:"smart-nuggets-empty-panel-description",defaultMessage:"Let CENTURY do the work and choose the best nuggets personalised for each learner from their pathway."})})]})})}):null,Ia=()=>e.jsx(xe.SectionSubtitle,{noMargin:!0,children:e.jsx(Rr,{position:Or.AFTER,variant:Pr.DEFAULT,children:e.jsx(d,{id:"smart-nuggets-title",defaultMessage:"Smart Nuggets"})})}),um={maxWidth:520,margin:"0.25rem 0 0.5rem"},gm=({assignmentId:s,canModify:t,nuggetCount:a,loadAssignment:n,loadNuggets:r})=>{const i=Dc({flow:"assignment",assignmentId:s}),{getToken:o,orgId:c,mountedRef:x,jobs:u}=i,f=l.useRef(null),[m,C]=l.useState(!1),[j,v]=l.useState(""),[h,S]=l.useState(!1),y=()=>Rc(u).length>0;_l(m&&y());const I=()=>{i.reset(),v(""),S(!1),f.current=null,C(!0)},w=()=>y()?S(!0):C(!1),b=()=>{S(!1),C(!1)},M=async()=>{const p=u.filter(A=>A.status==="done"&&A.result&&Pc(A.result)>0);if(!(!p.length||!c)){if(a>=gs){i.setImportError(`This assignment already has the maximum of ${gs} nuggets.`);return}i.setBusy("importing"),i.setImportError(null),i.setImportMessage(null),i.setImportProgress({done:0,total:p.length});try{const A=f.current??await Oc(o(),c,j);f.current=A;const T=[];let _=0;const O=[];for(let E=0;E<p.length;E++){const F=p[E];if(F.imported)_+=F.imported.exported??0;else try{const H=await qc(o(),c,Bc(F.result),{mode:"nugget",name:Bn(F.name),nuggetId:A});_+=H.summary.exported,O.push({id:F.id,rec:Fc(H)}
5),i.trackCommitted(F,H)}catch{T.push(F.name)}i.setImportProgress({done:E+1,total:p.length})}if(O.length&&i.setJobs(E=>E.map(F=>{const H=O.find(K=>K.id===F.id);return H?{...F,imported:H.rec}:F})),_===0){x.current&&i.setImportError(`No questions could be imported${T.length?` (${T.join(", ")})`:""}. The nugget was created but not added to the assignment.`);return}if(await Tr(o(),s,[A]),await Promise.all([n(),r()]),!x.current)return;i.setImportMessage(`Created "${j}" with ${_} question(s) and added it to this assignment`+(T.length?` — ${T.length} file(s) failed: ${T.join(", ")}.`:".")),C(!1)}catch(A){x.current&&i.setImportError(`Couldn't create the nugget: ${A.message||"unknown error"}. Some content may have been partially created.`)}finally{x.current&&(i.setBusy("idle"),i.setImportProgress(null))}}};return!t||a>=gs?null:e.jsxs(e.Fragment,{children:[e.jsx(un,{icon:Ct,onClick:I,qa:"td-assignment-create-from-document-button",children:e.jsx(P,{direction:rs.COLUMN,noGap:!0,children:e.jsxs(P.Col,{children:[e.jsx(xe.SectionSubtitle,{noMargin:!0,children:"Create from document"}),e.jsx(le.Label,{children:"Upload worksheets to generate a new nugget of questions for this assignment."})]})})}),m&&i.phase!=="review"&&e.jsx(Ec,{modalActive:!0,jobs:u,phase:i.phase,error:i.error,intro:"Choose image, PDF, Word or Excel worksheets. We'll pull out the multiple-choice and short-answer questions for you to review before adding them to this assignment.",onFilesChosen:i.handleFiles,onRemoveFile:i.removeJob,onProcess:()=>i.processAll(p=>v(Bn(p.name))),onExit:w}),m&&i.phase==="review"&&!h&&e.jsxs(U,{modalActive:!0,onExit:i.busy==="importing"?()=>{}:w,size:"xxlarge",dismissLabel:"Close",children:[e.jsx(U.Header,{children:e.jsx(U.Title,{children:"Create assessment from document"})}),e.jsx(U.Body,{children:e.jsx(Lc,{jobs:u,selectedId:i.selectedId,busy:i.busy,importMessage:i.importMessage,importError:i.importError,importProgress:i.importProgress,onSelect:i.setSelectedId,onQuestionChange:i.handleQuestionChange,onSuggestFix:i.handleSuggestFix,onAdapt:i.handleAdapt,onAcceptSuggestion:i.handleAcceptSuggestion,onDeclineSuggestion:i.handleDeclineSuggestion,onToggleSkip:i.handleToggleSkip,onRemoveQuestion:i.handleRemoveQuestion,focusQuestion:i.focusTarget,onAddQuestion:i.handleAddQuestion,onRegenerate:i.handleRegenerate,onImportFile:()=>{},onImportAll:M,onDone:w,title:"Review and create assessment",leadText:"These questions will be created as a new nugget and added to this assignment. Each file becomes its own assessment within the nugget.",primaryLabel:"Create and add to assignment",showPerFileImport:!1,stickyActions:!0,extraHeader:e.jsxs("div",{style:um,children:[e.jsx(Ve,{htmlFor:"cfd-nugget-name",children:e.jsx(Ve.Text,{children:"Nugget name"})}),e.jsx(ws,{id:"cfd-nugget-name",type:"text",style:{width:"100%"},value:j,disabled:i.busy==="importing",onChange:p=>v(p.target.value)})]})})})]}),m&&h&&e.jsx(dn,{modalMessage:_c,loading:!1,onConfirm:b,onCancel:()=>S(!1)})]})},gs=30,mm=s=>{const{assignment:t,classId:a,canModify:n,fromClassAssignment:r,courseLoader:i,smartValidation:o,loadAssignment:c}=s,{assignmentId:x}=t,u=l.useCallback(async(S,y)=>await wr(S,x,y),[x]),{data:f,load:m,error:C,loading:j}=Ee(u,!0),v=wo("is-assignments-doc-import-enabled");if(l.useEffect(()=>{i.load()},[t.smartRecommendationSettings?.courseIds,t.smartRecommendationSettings?.nuggetCount]),j&&!f)return e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(Ma,{})}),e.jsx(k.Body,{children:e.jsx(_e,{type:"widget",overlay:!0})})]});if(C)return e.jsxs(k,{children:[e.jsx(Ma,{}),e.jsx(k.Body,{children:e.jsxs(ht,{qa:"widget-error",children:[e.jsx(ht.Message,{qa:"error-message",children:e.jsx(d,{id:"generic-error-message",defaultMessage:"There was an error loading this data"})}),e.jsx(ht.Controls,{children:e.jsx(J,{icon:ko,size:"small",variant:"secondary",onClick:()=>window.location.reload(),children:e.jsx(d,{id:"error-reload-button-label",defaultMessage:"Reload"})})})]})})]});const h=(f?.count??0)+(t?.smartRecommendationSettings?.nuggetCount??0);return e.jsx(e.Fragment,{children:e.jsx(Wc,{children:e.jsxs(k,{qa:"assignment-content-widget",children:[e.jsx(Ma,{count:h,assignment:t,canModify:n}
5),e.jsxs(k.Body,{children:[n&&e.jsx(le.Lead,{children:e.jsx(vs,{variant:Rs.SECONDARY,children:e.jsx(d,{id:"assignment-content-widget-lead-message",defaultMessage:"Smart Assignments harness CENTURY's AI to deliver a unique learning experience by combining teacher-selected and CENTURY-recommended content."})})}),e.jsxs(Es,{vSpacing:Rl.TIGHT,children:[e.jsx(Es.Item,{children:e.jsx(Xg,{nuggets:f,assignmentDetails:t,classId:a,canModify:n,loadNuggets:m,loadAssignment:c})}),e.jsx(Es.Item,{children:e.jsx(ld,{children:e.jsx(cm,{assignment:t,courseLoader:i,canModify:n,loadAssignment:c})})}),v&&e.jsx(Es.Item,{children:e.jsx(gm,{assignmentId:x,canModify:n,nuggetCount:f?.count??0,loadAssignment:c,loadNuggets:m})}),e.jsx(Es.Item,{children:a&&r&&e.jsx(Lg,{assignment:t,classId:a,smartValidation:o})})]}),n&&e.jsx(le.Helper,{children:e.jsx(d,{id:"assignment-content-widget-helper-message",defaultMessage:"Don't forget you can choose to combine nuggets you select with Smart Nuggets. Students will always complete teacher set nuggets first before completing CENTURY's recommendations."})})]})]})})})},Ma=({count:s,assignment:t,canModify:a})=>e.jsxs(k.Header,{children:[e.jsx(k.Title,{children:e.jsxs(is,{children:[e.jsx(is.Score,{children:e.jsx(d,{id:"content-title",defaultMessage:"Content"})}),!!s&&e.jsx(is.Attempts,{children:e.jsx(Zt,{variant:Jt.DEFAULT,children:s})}),e.jsx(mr,{label:e.jsx(d,{id:"help-tooltip-label",defaultMessage:"Help"}),placement:xr.BOTTOM_START,triggerIcon:hr.INFO,qa:"td-assignment-nuggets-widget-help-tooltip",children:e.jsx(le.Lead,{noMargin:!0,children:e.jsx(d,{id:"assignments-settings-nuggets-widget-help-tooltip-content",defaultMessage:"Please note, each assignment can include a maximum of {maxNumber} nuggets.",values:{maxNumber:gs}})})})]})}),(a||si(t))&&e.jsx(k.Controls,{children:e.jsx(ni,{})})]}),hm=s=>{const{classId:t,assignment:a,loadAssignment:n}=s,{smartValidation:r}=Si();We("teacher-dashboard-assignment-settings");const{data:i,load:o}=Ee(m=>br([a?.updatedBy||""],m,"personal"));l.useEffect(()=>{a?.updatedBy&&o()},[a?.subjectId]);const c=l.useCallback(async(m,C)=>{if(!si(a))return;const j={select:"name,icon,subject"},v=a.smartRecommendationSettings.courseIds[0];return await $c(v,m,j,C)},[a]),x=Ee(c),u=a.groups.length>1,f=ti(a.status)&&!u;return e.jsx(No,{children:e.jsx(As,{children:e.jsxs(P,{children:[e.jsx(P.Col,{xs:12,sm:12,md:6,fullHeightContent:!0,children:e.jsx(P,{direction:rs.COLUMN,children:e.jsx(P.Col,{children:a&&e.jsx(Tg,{assignmentDetails:a,classId:t,updatedBy:i&&js(i[0]),loadAssignment:async()=>Promise.all([n(),o()]),canEdit:a.status!=="ARCHIVED"&&!u})})})}),e.jsx(P.Col,{xs:12,sm:12,md:6,fullHeightContent:!1,children:e.jsxs(P,{direction:rs.COLUMN,children:[u&&e.jsx(P.Col,{children:e.jsx(kg,{assignmentId:a.assignmentId})}),e.jsx(P.Col,{children:e.jsx(mm,{assignment:a,classId:t,loadAssignment:n,canModify:f,courseLoader:x,smartValidation:r,fromClassAssignment:!0})})]})})]})})})},Pt=s=>{const{percentage:t,attemptsCount:a,includeAttemptCount:n,isAvgScore:r,...i}=s;return!a&&!r||r&&!t?null:e.jsxs(is,{children:[e.jsx(is.Score,{children:e.jsx(Ye,{percentage:Ue(t),hasBar:!0,...i})}),n&&e.jsx(is.Attempts,{children:e.jsx(Zt,{variant:Jt.DEFAULT,size:Za.SMALL,children:a})})]})},xm=({count:s,total:t})=>t?s===t?e.jsx(vs,{variant:Rs.INFO,qa:"completion-cell",children:e.jsx(Vs,{icon:Ua,size:zs.MEDIUM})}):e.jsx("span",{children:`${s}/${t}`}):null,pm=s=>{const{loading:t,reports:a,qlaLabels:n,viewConfig:r,openQLA:i}=s,o=la(!0);return e.jsxs(e.Fragment,{children:[e.jsxs(ts,{striped:!0,hover:!0,sticky:!0,hasHeaderColumn:!0,qa:"assignment-markbook-table",children:[e.jsx(rn,{headersData:jm(a,r.hideUsersColumn),isSortingEnabled:!1,...s}),e.jsx("tbody",{"data-testid":"assignment-markbook-table-body",style:{opacity:t?"0.5":"1",transition:"opacity 0.5s ease-in-out"},children:a&&e.jsxs(e.Fragment,{children:[e.jsxs("tr",{children:[r.hideUsersColumn?null:e.jsx("th",{scope:"row",children:e.jsx(d,{id:"assignment-markbook-table-class-average-header",defaultMessage:"CLASS"})}),e.jsx("td",{children:a.summary.completion.percentage?e.jsx(d,{id:"chart-percentage-label",defaultMessage:"{value}%",values:{value:Ue(a.summary.completion.percentage)}}):""}),e.jsx("td",{children:e.jsx(Pt,{percentage:a.summary.averageScore,isAvgScore:!0,...r})}),e.jsx("td",{children:e.jsx(La,{timeSpentSeconds:a.summary.timeSpent.seconds})}),a.summary.nuggets.map(c=>e.jsx("td",{children:c.isSmart?e.jsx(d,{id:"not-applicable",defaultMessage:"N/A"}):e.jsx(Pt,{percentage:c.score,attemptsCount:c.attemptCount,...r})}
5,c.nuggetId))]},"classAverage"),a.data.map(c=>e.jsxs("tr",{children:[r.hideUsersColumn?null:e.jsx("th",{scope:"row",children:o(c.user.details)}),e.jsx("td",{children:e.jsx(xm,{count:c.summary.completion.count,total:c.summary.completion.total})}),e.jsx("td",{children:e.jsx(Pt,{percentage:c.summary.averageScore,isAvgScore:!0,...r})}),e.jsx("td",{children:e.jsx(La,{timeSpentSeconds:c.summary.timeSpent.seconds})}),c.summary.nuggets.map(x=>{const u=c.user.userId,f=x.nuggetId,m=n.find(({id:C})=>C===u)?.[f]??null;return e.jsx("td",{children:x.attemptCount>0&&typeof m?.score=="number"&&e.jsx(qs,{qa:`${u}-${f}`,label:m?.label,onClick:()=>i(u,f),children:e.jsx(Pt,{percentage:x.score,attemptsCount:x.attemptCount,includeAttemptCount:a.reattemptsAllowed&&x.attemptCount>=1&&r.showAttemptsCounter,...r})})},f)})]},c.user.assignmentUserId))]})})]}),e.jsx(aa,{...s})]})},jm=(s,t)=>{const a={lastName:"STUDENTS",completion:"COMPLETION",averageScore:s?.reattemptsAllowed?"AVG. LAST SCORE":"AVG. SCORE",timeSpent:"TIME SPENT"},n=Object.entries(a).filter(([i])=>!(i==="lastName"&&t)).map(([i,o])=>{const c=i==="averageScore"&&s?.reattemptsAllowed?"averageLastScore":i;return{col:c,columnMessageId:`assignment-markbook-table-header-${c}`,columnDefaultMessage:o,isSmart:!1}}),r=(s?.summary.nuggets||[]).map(i=>({col:i.nuggetId,columnMessageId:`assignment-markbook-table-header-${i.nuggetId}`,columnDefaultMessage:i.name,size:na.SMALL,isSmart:i.isSmart}));return n.concat(r)},fm=s=>{const{assignmentGroupId:t,assignment:a,isClassMarkbook:n,classData:r}=s,{assignmentId:i,status:o,name:c}=a,[x,u]=l.useState(!1),[f,m]=l.useState({studentQLA:"",nuggetQLA:""}),[C,j]=Ya(),v=T=>{const _=j(T);z.track($.TeachAssignmentMarkbookMenuOptions,{[g.GroupId]:t,[g.GroupType]:"classes",[g.ClassId]:r?._id,[g.ClassName]:r?.name,[g.AssignmentId]:a.assignmentId,[g.AssignmentName]:a.name,[g.Property]:T,[g.NewState]:_[T]===!0?"on":"off"})},h=l.useCallback((T,_,O)=>Pl(T,i,{..._,assignmentGroupId:t},O),[i,t]),S=ra(h,{itemsPerPage:30});We("teacher-dashboard-assignments-markbook");const{data:y,error:I,loading:w}=S,b=T=>{z.track($.TeacherDashboardAssignmentsTableNavigationChanged,{[g.Navigate]:T,[g.AssignmentId]:i,[g.AssignmentStatus]:o||"N/A"})},M=(T,_)=>{S.handleSortingState(T,_),z.track($.TeacherDashboardAssignmentsTableSortChanged,{[g.SortedColumn]:T,[g.SortOrder]:_,[g.AssignmentId]:i,[g.PageNumber]:S.currentPage})},p=rl(y),A=(T,_)=>{u(!0),m({studentQLA:T,nuggetQLA:_})};return w&&!y&&!I?e.jsx(_e,{type:"independent"}):e.jsxs(e.Fragment,{children:[e.jsx(Fs,{children:e.jsxs(ci,{children:[!ti(a.status)&&e.jsx(_g,{groupId:t}),y?.summary&&e.jsx(il,{assignment:a,summary:y.summary}),e.jsxs(k,{children:[e.jsxs(k.Header,{children:[e.jsxs(k.Title,{children:[e.jsx(d,{id:"teacher-dashboard-assignment-markbook-table-title",defaultMessage:"Markbook"}),n&&e.jsx(e.Fragment,{children:` · ${c}`})]}),e.jsx(k.Controls,{children:e.jsx(kr,{viewConfig:C,changeViewConfig:v,pageArea:"class-assignment-markbook"})})]}),e.jsx(on,{emptyState:{title:{id:"assignment-markbook-table-no-data-title",message:"No data available yet"},content:{id:"assignment-markbook-table-no-data-message",message:"Assignment markbook data will appear here once students have started working on them."},isEmpty:!y?.data.length||!y?.summary},errorState:{error:I},isScrollable:!0,children:e.jsx(pm,{reports:y,trackPageNavigation:b,handleSortingAndTracking:M,openQLA:A,qlaLabels:p?.users||[],...S,viewConfig:C})})]})]})}),e.jsx(Nr,{qlaData:p,selectedQLA:f,showQLA:x,setShowQLA:u,qa:"assignment-markbook-qla"})]})},bm=({regularNuggets:s,smartNuggets:t,selectedNuggetId:a,selectedNuggetName:n,onChange:r})=>{const i=Sm(t.length>0,s,t),o=s.map(C=>C.nuggetId).concat(t.map(C=>C.nuggetId));if(!o.length)return null;const c=o.indexOf(a),x=c>0,u=c>=0&&c<o.length-1,f=t.find(C=>C.nuggetId===a),m=vi(n,f?.userCount);return e.jsxs(P,{direction:rs.ROW,children:[e.jsx(P.Col,{xs:"auto",fullHeightContent:!1,children:e.jsxs(zr,{children:[e.jsx(Fn,{children:e.jsx(J,{icon:cr,size:"large",variant:"muted",type:"button",aria:"Previous nugget",disabled:!x,onClick:()=>x&&r(o[c-1]),qa:"prev-btn"})}),e.jsx(Fn,{children:e.jsx(J,{icon:Wa,size:"large",variant:"muted",type:"button",aria:"Next nugget",disabled:!u,onClick:()=>u&&r(o[c+1]),qa:"next-btn"})})]})}),e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(Kr,{selectedNuggetName:m,selectedNuggetId:a,options:i,onSelectItem:r,isEnclosed:!0,offsetX:0,offsetY:12,qa:"nugget-analysis-dropdown"})})]})},vi=(s,t)=>t?`${s} (${t})`:s,Sm=(s,t,a)=>{const n=de();return s?[{id:"nuggets",groups:[{id:"regular",name:n.formatMessage({id:"assignment-nugget-analysis-dropdown-group-assigned",defaultMessage:"Assigned nuggets"}),items:t.map(r=>({id:r.nuggetId,name:r.nugget.name}))},{id:"smart",name:n.formatMessage({id:"assignment-nugget-analysis-dropdown-group-recommended",defaultMessage:"Recommended nuggets"}),items:a.map(r=>({id:r.nuggetId,name:vi(r.nugget.name,r.userCount)}))}]}]:[{id:"nuggets",items:t.map(r=>({id:r.nuggetId,name:r.nugget.name}))}]},Cm=({question:s,viewConfig:t})=>{if(!s)return null;const a=ym(s),n=s.isCorrect?100:0;return t.hasColouredCell?e.jsx(Ye,{percentage:n,hasNumber:!1,hasBar:!1,hasSymbol:!1,hasColouredCell:!0,resultType:a}):a===Ie.CORRECT?e.jsx(_s,{type:Ie.CORRECT,label:"Correct"}):a===Ie.INCORRECT?e.jsx(_s,{type:Ie.INCORRECT,label:"Incorrect"}):a===Ie.SKIPPED?e.jsx(_s,{type:Ie.SKIPPED,label:"Skipped"}):e.jsx(Ye,{percentage:n,...t})},ym=s=>s.isSkipped?Ie.SKIPPED:s.isCorrect?Ie.CORRECT:Ie.INCORRECT,vm=s=>{const{loading:t,reports:a,viewConfig:n,selectedNuggetId:r,isSortingEnabled:i,openQLA:o}=s,c=la(!0),[x,u]=l.useState({}),f=wm(a,x,i),m=C=>{u(j=>Ge(C,Mm(C),j))};return e.jsxs(e.Fragment,{children:[e.jsxs(ts,{striped:!0,hover:!0,sticky:!0,hasHeaderColumn:!0,qa:"nugget-analysis-table",children:[e.jsx(rn,{headersData:Im(a.questionGroups,n.hideUsersColumn),isSortingEnabled:i,handleSortingAndTracking:m,loading:t}),e.jsx("tbody",{"data-testid":"nugget-analysis-table-body",style:{opacity:t?"0.5":"1",transition:"opacity 0.5s ease-in-out"},children:f.map(({_row:C})=>{const j=new Map(C.questionGroups.map(y=>[y.questionGroupId,y])),v=C.user.userId,{summary:h}=C,S=h.status==="completed";return e.jsxs("tr",{children:[!n.hideUsersColumn&&e.jsx("th",{scope:"row",children:e.jsxs(ss,{children:[e.jsx(ss.Avatar,{children:e.jsx(Xt,{profilePic:C.user.details.avatar??void 0})}),e.jsx(ss.Name,{children:c(C.user.details)})]})}),e.jsx("td",{children:S?h.attemptCount:0}),e.jsx("td",{children:S&&e.jsx(La,{timeSpentSeconds:h.timeSpent.seconds})}),e.jsx("td",{children:S&&e.jsx(Ye,{percentage:Ue(h.lastScore),...n})}),a.questionGroups.map((y,I)=>{const w=j.get(y.questionGroupId);return e.jsx("td",{children:S?e.jsx(qs,{qa:`${v}-${y.questionGroupId}`,onClick:()=>o(v,r,I),children:e.jsx(Cm,{question:w,viewConfig:n})}):null},y.questionGroupId)})]},C.user.assignmentUserId)})})]}),e.jsx(aa,{...s})]})},Ai=[{col:"attempts",columnMessageId:"table-heading--attempts",columnDefaultMessage:"ATTEMPTS",sortType:"number"},{col:"study-time",columnMessageId:"table-heading--study-time",columnDefaultMessage:"TOTAL STUDY TIME",sortType:"number"},{col:"last-score",columnMessageId:"table-heading--last-score",columnDefaultMessage:"LAST SCORE",sortType:"number"}],Am=[{col:"student",columnMessageId:"table-heading--student",columnDefaultMessage:"STUDENT",sortType:"string"},...Ai],Im=(s,t)=>[...t?Ai:Am,...s.map((a,n)=>({col:a.questionGroupId,columnMessageId:`assignment-nugget-analysis-table-header-${a.questionGroupId}`,columnDefaultMessage:`${n+1}. ${a.name??""}`,size:na.SMALL,sortType:"number"}))],Mm=s=>s==="student"?"string":"number",Tm=(s,t,a)=>!a||Object.keys(t).length===0?s:et(s,t),wm=(s,t,a)=>{const n=la(!0);return l.useMemo(()=>{const r=s.data.map(i=>{const o=new Map(i.questionGroups.map(u=>[u.questionGroupId,u])),c=i.summary,x={_row:i,student:n(i.user.details),attempts:Ta(c,"attemptCount")??0,"study-time":Ta(c,"timeSpent")?.seconds??null,"last-score":Ta(c,"lastScore")};return s.questionGroups.forEach(u=>{const f=o.get(u.questionGroupId);x[u.questionGroupId]=f?f.isSkipped?1:f.isCorrect?3:2:null}),x});return Tm(r,t,a)},[s,n,t,a])},Ta=(s,t)=>s.status!=="completed"?null:s[t],km=[{id:"correct",phraseId:"results-correct",defaultMessage:"Correct",color:"#5bd75b"},{id:"incorrect",phraseId:"results-incorrect",defaultMessage:"Incorrect",color:"#ff8a35"}],Nm=s=>{const t=s.data.filter(a=>a.summary.status==="completed").flatMap(a=>a.questionGroups);return s.questionGroups.map((a,n)=>{const r=t.filter(c=>c.questionGroupId===a.questionGroupId),i=r.filter(c=>c.isCorrect).length,o=r.length-i;return{name:a.name??"",_id:a.questionGroupId,idx:n,correct:i,incorrect:o}})},Dm=({reports:s})=>e.jsxs(k,{qa:"nugget-analysis-last-attempt",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"nugget-analytics-last-attempt",defaultMessage:"Last Attempt"})})}
5),e.jsx(k.Body,{children:e.jsx(sn,{chartHeight:160,children:e.jsx(sa,{children:({width:t,height:a})=>e.jsx(Em,{width:t,height:a,reports:s})})})})]}),Em=({reports:s,width:t,height:a})=>{const n=de(),r=l.useMemo(()=>Nm(s),[s]),i=l.useMemo(()=>km.map(c=>({id:c.id,color:c.color,label:n.formatMessage({id:c.phraseId,defaultMessage:c.defaultMessage})})),[n]),o=l.useCallback(c=>{const x=r[c];return e.jsxs("div",{"data-testid":"tooltip",children:[e.jsx(xe.ItemTitle,{children:e.jsx("span",{"data-testid":"question-title",children:c+1})}),e.jsx(pe,{children:i.map(({id:u,label:f,color:m})=>e.jsxs(pe.Item,{children:[e.jsxs(pe.Title,{children:[e.jsx("div",{style:{display:"inline-block",marginRight:"8px"},children:e.jsx("svg",{width:8,height:8,children:e.jsx("rect",{fill:m,width:8,height:8})})}),f]}),e.jsx(pe.Description,{qa:u,children:x?.[u]??0})]},u))})]})},[r,i]);return e.jsx(mi,{width:t,height:a,keys:i,dataSet:r,yAxisLabel:n.formatMessage({id:"nugget-qla-graph-y-axis-label",defaultMessage:"number of answers"}),xAxisLabel:n.formatMessage({id:"nugget-qla-graph-x-axis-label",defaultMessage:"Question"}),formatTooltip:o})},rr=({summary:s,recommendedUserCount:t})=>{const a=t!==void 0,n=Ue(s.averageLastScore),r=Ue(s.completion.percentage);return e.jsxs(k,{qa:"nugget-analysis-overview",children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:e.jsx(d,{id:"nugget-analytics-overview",defaultMessage:"Overview"})})}),e.jsx(k.Body,{isVerticallyCentred:!0,children:e.jsxs(Qs,{children:[e.jsx(Qs.Rings,{children:e.jsx(At,{size:96,completionPercentage:r,scorePercentage:n,children:e.jsx($s,{item:{iconCode:Lm(a)},qa:"nugget-thumbnail-image"})})}),e.jsxs(Qs.Legend,{children:[a?e.jsxs(e.Fragment,{children:[e.jsx(le.Lead,{children:e.jsx(d,{id:"assignment-nugget-analysis-overview-recommended-to",defaultMessage:"Recommended to <completion>{recommendedTo}</completion> students",values:{recommendedTo:t??0,completion:i=>e.jsx(qt,{children:i})}})}),e.jsx(le.Lead,{children:e.jsx(d,{id:"assignment-nugget-analysis-overview-attempted-by-students",defaultMessage:"Attempted by <completion>{count}</completion> students",values:{count:s.completion.count,completion:i=>e.jsx(qt,{children:i})}})})]}):e.jsx(le.Lead,{children:e.jsx(d,{id:"assignment-nugget-analysis-overview-attempted-by",defaultMessage:"Attempted by <completion>{count}</completion> of {totalStudents} students",values:{count:s.completion.count,totalStudents:s.completion.total,completion:i=>e.jsx(qt,{children:i})}})}),e.jsx(le.Lead,{children:e.jsx(d,{id:"assignment-nugget-analysis-overview-average-last-score",defaultMessage:"Average last score <scoreText>{score}%</scoreText>",values:{score:n,scoreText:i=>e.jsx(oi,{score:n,children:i})}})})]})]})})]})},Lm=(s=!1)=>s?"asm-002":"asm-001",_m=({reports:s,recommendedUserCount:t,maxStudents:a})=>s.count>a?e.jsx(rr,{summary:s.summary,recommendedUserCount:t}):e.jsxs(P,{children:[e.jsx(P.Col,{xs:12,sm:12,md:6,fullHeightContent:!0,children:e.jsx(rr,{summary:s.summary,recommendedUserCount:t})}),e.jsx(P.Col,{xs:12,sm:12,md:6,fullHeightContent:!0,children:e.jsx(Dm,{reports:s})})]}),Rm=({assignmentId:s,assignmentGroupId:t,regularNuggets:a,smartNuggets:n,itemsPerPage:r})=>{const[i,o]=Gc("nuggetId"),c=[...a,...n],x=i?c.find(C=>C.nuggetId===i):c[0],u=!!i&&!x&&c.length>0,f=l.useCallback((C,j,v)=>Ol(C,s,x?.nuggetId??"",{...j,assignmentGroupId:t},v),[s,x?.nuggetId,t]),m=ra(f,{itemsPerPage:r},!1);return l.useEffect(()=>{x&&(m.resetPageNumber(),m.load())},[x?.nuggetId]),{setSelectedNuggetId:o,selectedNugget:x,nuggetNotFound:u,paginatedData:m}},Ii=(s,t,a)=>(n,r)=>{z.track(n,{[g.AssignmentId]:s.assignmentId,[g.AssignmentName]:s.name,[g.AssignmentStatus]:s.status,[g.GroupId]:t,[g.GroupType]:a,...r})},Pm=(s,t,a)=>{const n=Ii(s,t,a);return(r,i)=>{n($.TeachAssignmentMarkbookMenuOptions,{[g.Property]:r,[g.NewState]:i[r]===!0?"on":"off"})}},Om=(s,t,a)=>{const n=Ii(s,t,a);return r=>{n($.TeacherDashboardAssignmentsTableNavigationChanged,{[g.Navigate]:r})}},qm=(s,t,a)=>{const n=la(),r=s?.data??[];return{users:r.map(i=>({id:i.user.userId,student:n(i.user.details)})),nuggets:t?[{id:t,name:a,students:r.flatMap(i=>i.summary.status!=="completed"||i.summary.attemptCount===0?[]:[i.user.userId])}]:[],nuggetCompletionData:[],userStudySessions:Object.fromEntries(r.flatMap(i=>i.summary.status!=="completed"?[]:[[i.user.userId,i.summary.lastStudySessionId]]))}},wa=50,Bm={class:"teacher-dashboard-assignments-nugget-analysis",students:"teacher-dashboard-students-group-nugget-analysis"},Fm=({assignment:s,assignmentGroupId:t,groupType:a,pageArea:n})=>{const[r,i]=Ya(),[o,c]=l.useState(!1),[x,u]=l.useState({studentQLA:"",nuggetQLA:"",questionIdx:void 0}),f=de(),m=s.kind==="Smart",C=l.useCallback((re,ne)=>{const D=m?{includeSmart:!0,groupId:t}:void 0;return wr(re,s.assignmentId,ne,D)},[s.assignmentId,t,m]),{data:j,loading:v,error:h}=Ee(C,!0),S=j?.data??[],y=j?.smartNuggets?.data??[],{setSelectedNuggetId:I,selectedNugget:w,nuggetNotFound:b,paginatedData:M}=Rm({assignmentId:s.assignmentId,assignmentGroupId:t,regularNuggets:S,smartNuggets:y,itemsPerPage:wa}),p=w?.nuggetId??null,A=w?.nugget.name??"";We(Bm[a]);const T=Pm(s,t,a),_=Om(s,t,a),{data:O,loading:E,error:F}=M,H=qm(O,p,A),K=re=>{const ne=i(re);T(re,ne)},be=(re,ne,D)=>{u({studentQLA:re,nuggetQLA:ne,questionIdx:D}),c(!0)};if(v&&!j||E&&!O)return e.jsx(_e,{type:"independent"});if(h||b||F||!p){const re=f.formatMessage({id:"nugget-analysis-invalid-nugget",defaultMessage:"Nugget ID '{nuggetId}' does not exist in this assignment."},{nuggetId:p}),ne=h?.message??F?.message??re;return e.jsx(ka,{children:e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(Na,{})}),e.jsx(k.Body,{children:e.jsx(ht,{qa:"nugget-analysis-invalid-nugget-error",children:e.jsx(ht.Message,{qa:"error-message",children:e.jsx(d,{id:ne,defaultMessage:"There was an error loading this data"})})})})]})})}return!O?.data.length||!(S.length>0||y.length>0)?e.jsx(ka,{children:e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(Na,{})}),e.jsx(k.Body,{children:e.jsx(Se,{hasPanel:!0,qa:"nugget-analysis-empty-state",children:e.jsx(Se.Message,{children:e.jsx(d,{id:"assignment-nugget-analysis-no-data-message",defaultMessage:"Nugget analysis data will appear here once students have started working on this assignment."})})})})]})}):e.jsxs(e.Fragment,{children:[e.jsxs(ka,{children:[e.jsx(bm,{regularNuggets:S,smartNuggets:y,selectedNuggetId:p,selectedNuggetName:A,onChange:I}),e.jsx(_m,{reports:O,recommendedUserCount:w?.userCount,maxStudents:wa}),e.jsxs(k,{children:[e.jsxs(k.Header,{children:[e.jsx(Na,{}),e.jsx(k.Controls,{children:e.jsx(kr,{viewConfig:r,changeViewConfig:K,pageArea:n,showAttemptsCounterAvailable:!1})})]}),e.jsx(k.Body,{isScrollable:!0,children:e.jsx(vm,{loading:E,reports:O,viewConfig:r,selectedNuggetId:p,isSortingEnabled:O.count<=wa,openQLA:be,currentPage:M.currentPage,totalPages:M.totalPages,loadNextPage:M.loadNextPage,loadPreviousPage:M.loadPreviousPage,loadSpecificPage:M.loadSpecificPage,trackPageNavigation:_})})]})]}),e.jsx(Nr,{qlaData:H,selectedQLA:x,showQLA:o,setShowQLA:c,qa:"nugget-analysis-qla"})]})},ka=({children:s})=>e.jsx(Fs,{children:e.jsx(ci,{children:s})}),Na=()=>e.jsx(k.Title,{children:e.jsx(d,{id:"assignment-nugget-question-breakdown",defaultMessage:"Question Breakdown"})}),$m={modalTitle:"Delete Assignment",modalTitleId:"teacher-assignments-delete-assignment-modal-title",modalBodyMessage:"Are you sure you want to delete this assignment?",modalBodyMessageId:"teacher-assignments-delete-assignment-modal-message",confirmButtonMessage:"Delete",confirmButtonMessageId:"delete-btn",cancelButtonMessage:"Cancel",cancelButtonMessageId:"cancel-btn"},Gm=({assignment:s,isAssignmentGroup:t,closeModal:a})=>{const[n,r]=l.useState(!1),[i,o]=l.useState(void 0),c=de(),x=St(
5),u=He(),f=hs(),{classId:m}=os(),C=l.useCallback(async(I,w)=>{if(s)return await ql(I,s.assignmentId,w)},[s]),{data:j}=Ee(C,!0),v=j?.summary.nuggets.some(I=>I.attemptCount>0)?c.formatMessage({id:"teacher-assignments-delete-assignment-modal-warning-message",defaultMessage:"Progress made by students in the nuggets in this assignment will not be lost, but the assignment will be deleted. This cannot be undone."}):void 0,h=l.useCallback((I,w)=>{z.track($.TeacherDashboardAssignmentDelete,{[g.AssignmentId]:I.assignmentId,[g.IsAssignmentGroup]:t,[g.ClassId]:m,[g.AssignmentName]:I.name,[g.AssignmentStatus]:I.status,[g.AssignedNuggets]:I.nuggets?.length,[g.AttemptedNuggets]:j?.summary.nuggets.filter(b=>b.attemptCount>0).length,[g.CompletionCount]:j?.summary.completion.count,[g.LearnersAssigned]:j?.summary.completion.total,[g.ModalAction]:w})},[j,m,t]),S=l.useCallback(I=>{s&&(a(),h(s,I))},[s,a,h]),y=l.useCallback(async()=>{if(s){r(!0);try{if(await ol(f.current,s.assignmentId),S("deleted"),t){const I=u.state?.previousSearch||"";x(`/teach/assignments${I}`)}else x(`/teach/classes/${m}/assignments`);yt.info(c.formatMessage({id:"teacher-assignments-delete-assignment-toast",defaultMessage:"Assignment deleted successfully"}))}catch(I){o(I.detail||I.message)}finally{r(!1)}}},[s,f,x,t,S,m,u.state?.previousSearch,c]);return e.jsx(e.Fragment,{children:e.jsx(dn,{onConfirm:y,onCancel:()=>S("dismissed"),loading:n,error:i,modalMessage:$m,extraMessage:v})})},Um=({classes:s,copyToAll:t,dates:a})=>{const{formatMessage:n}=de(),r=Bs(),i=Do(r,"assignments","newAssignments")?.extendedDueDate,o=s.length>1;return e.jsxs(k,{children:[e.jsx(k.Header,{children:e.jsx(k.Title,{children:n({id:"teacher-assignment-duplicate-assignment-adjust-times",defaultMessage:"Adjust start and end times"})})}),e.jsx(k.Body,{isScrollable:!0,children:e.jsxs(P,{direction:rs.ROW,isVerticallyCentred:!0,children:[e.jsx(P.Col,{fullHeightContent:!1,sm:o?3:4,children:e.jsx(xe.Overline,{noMargin:!0,children:n({id:"user-class-title",defaultMessage:"Class"}).toUpperCase()})}),e.jsx(P.Col,{fullHeightContent:!1,sm:4,children:e.jsx(xe.Overline,{noMargin:!0,children:n({id:"question-level-analysis-detail-header-title-start",defaultMessage:"Start"}).toUpperCase()})}),e.jsx(P.Col,{fullHeightContent:!1,sm:4,children:e.jsx(xe.Overline,{noMargin:!0,children:n({id:"question-level-analysis-detail-header-title-end",defaultMessage:"End"}).toUpperCase()})}),o&&e.jsx(P.Col,{sm:1}),s.map((c,x)=>{const u=a[c._id],{startDateRange:f,dueDateRange:m}=Cc(u.startDate,i);return e.jsxs(es.Fragment,{children:[e.jsx(P.Col,{sm:o?3:4,children:e.jsx(xe.ItemTitle,{noMargin:!0,children:c.name})}),e.jsx(P.Col,{sm:4,fullHeightContent:!1,children:e.jsxs(P,{direction:rs.ROW,noWrap:!0,children:[e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(On,{name:`datesAndTimes.${c._id}.startDate`,min:f[0],max:f[1]})}),e.jsx(P.Col,{fullHeightContent:!1,xs:"auto",children:e.jsx(qn,{name:`datesAndTimes.${c._id}.startTime`,disabled:!u.startDate})})]})}),e.jsx(P.Col,{sm:4,fullHeightContent:!1,children:e.jsxs(P,{direction:rs.ROW,noWrap:!0,children:[e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(On,{name:`datesAndTimes.${c._id}.dueDate`,min:m[0],max:m[1]})}),e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(qn,{name:`datesAndTimes.${c._id}.dueTime`,disabled:!u.dueDate})})]})}),o&&e.jsx(P.Col,{sm:1,children:x===0&&e.jsx(Wt,{position:Vt.NW,label:n({id:"teacher-assignment-copy-to-all-classes",defaultMessage:"Copy to all classes"}),children:e.jsx(J,{icon:Eo,size:"small",onClick:async()=>await t(u)})})}),e.jsx(P.Col,{sm:o?3:4}),e.jsx(P.Col,{sm:4,fullHeightContent:!1,children:e.jsxs(P,{direction:rs.ROW,noWrap:!0,noGap:!0,children:[e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(Ls,{name:`datesAndTimes.${c._id}.startDate`})}),e.jsx(P.Col,{fullHeightContent:!1,xs:"auto",children:e.jsx(Ls,{name:`datesAndTimes.${c._id}.startTime`})})]})}),e.jsx(P.Col,{sm:4,fullHeightContent:!1,children:e.jsxs(P,{direction:rs.ROW,noWrap:!0,noGap:!0,children:[e.jsx(P.Col,{fullHeightContent:!1,children:e.jsx(Ls,{name:`datesAndTimes.${c._id}.dueDate`})}),e.jsx(P.Col,{fullHeightContent:!1,xs:"auto",children:e.jsx(Ls,{name:`datesAndTimes.${c._id}.dueTime`})})]})}),o&&e.jsx(P.Col,{sm:1})]},c._id)})]})})]})},Da=20,Hm=({assignment:s,closeModal:t})=>{const{formatMessage:a}=de(),n=hs(),r=Xa(),[i,o]=es.useState("select-class"),[c,x]=es.useState("teach"),u=Qm(),f=Ym(),m=zm(s),C=v=>{if(v.classes.length===0)return{classes:"teacher-assignment-duplicate-class-required"};const h={};
5return Object.entries(v.datesAndTimes).forEach(([S,y])=>{h[S]=cl(y,r)}),Object.values(h).some(S=>Object.values(S).length>0)?{datesAndTimes:h}:{}},j=async(v,h)=>{const S=s.nuggets.map(({nuggetId:A})=>A);let y={};if(s.smartRecommendationSettings?.courseIds.length){const A=s.smartRecommendationSettings.nuggetCount;y={courseIds:s.smartRecommendationSettings.courseIds,nuggetCount:A}}const I=Object.entries(v.datesAndTimes).map(([A,T])=>Wm(s,A,T)),w=await Promise.allSettled(I.map(A=>ll(n.current,A,S,y))),b=w.filter(({status:A})=>A==="fulfilled"),M=b.length,p=w.length-M;if(M&&u(M),p){const A=w.map(({status:T},_)=>T==="rejected"?v.classes[_].name:void 0).filter(Boolean);f(p,A)}m("duplicated",{[g.TotalClasses]:I.length,[g.Successes]:M,[g.Failures]:p,[g.DuplicatedNewIds]:b.map(({value:A})=>A.assignmentId)}),h.resetForm({values:{classes:[],datesAndTimes:{}}}),t()};return e.jsx(Mt,{initialValues:{classes:[],datesAndTimes:{}},validateOnBlur:!1,validateOnChange:!1,validate:C,onSubmit:j,children:({isSubmitting:v,values:h,touched:S,validateForm:y,resetForm:I,setErrors:w,setFieldTouched:b,setFieldError:M,setFieldValue:p,setTouched:A,setValues:T,handleSubmit:_})=>{const O=async D=>{const L={},q={};Object.keys(h.datesAndTimes).forEach(W=>{L[W]=D,q[W]={startDate:!0,startTime:!0,dueDate:!0,dueTime:!0}}),await T({...h,datesAndTimes:L}),await A({...S,datesAndTimes:q}),w({}),m("copy-schedule",{[g.ClassesNames]:h.classes.map(W=>W.name),[g.ClassesIds]:h.classes.map(W=>W._id),[g.StartDate]:D.startDate||void 0,[g.StartTime]:!!D.startDate&&D.startTime||void 0,[g.DueDate]:D.dueDate||void 0,[g.DueTime]:!!D.dueDate&&D.dueTime||void 0})},E=(D,L)=>{if(L&&h.classes.length>=Da){M("classes","teacher-assignment-duplicate-class-limit");return}const q=L?h.classes.concat(D):h.classes.filter(W=>W._id!==D._id);p("classes",q),M("classes",void 0),b("classes",!0)},F=D=>{p("classes",h.classes.filter(({_id:L})=>L!==D))},H=async()=>{await b("classes",!0),await y(h).then(D=>
5{if(D.classes)return D;const L=Vm(s);return h.classes.forEach(q=>{h.datesAndTimes[q._id]={...L}}),o("adjust-dates"),{}})},K=D=>{const L=Da-h.classes.length,q=D.slice(0,L);p("classes",h.classes.concat(q)),b("classes",!0),M("classes",D.length>L?"teacher-assignment-add-class-limit-reached":void 0)},be=D=>{const L=h.classes.filter(q=>!D.some(W=>q._id===W._id));M("classes",void 0),p("classes",L)},re=()=>{m("dismissed"),I({values:{classes:[],datesAndTimes:{}}}),t()},ne=a({id:"modal-dismiss-button",defaultMessage:"Dismiss"});return e.jsx(U,{qa:"duplicate-assignment-modal",modalActive:!0,onExit:re,size:"xlarge",dismissLabel:ne,children:e.jsxs(wt,{children:[e.jsx(U.Header,{children:e.jsx(U.Title,{children:e.jsx(d,{id:"teacher-dashboard-assignment-duplicate-to-other-classes",defaultMessage:"Duplicate to other classes"})})}),e.jsx(U.Body,{children:e.jsxs(cn,{children:[i==="select-class"&&e.jsx(ai,{classFilter:c,setClassFilter:x,selectedClasses:h.classes,onRowClicked:E,unselectableClassesId:[],selectAll:K,selectNone:be}),i==="adjust-dates"&&e.jsx(Um,{classes:h.classes,dates:h.datesAndTimes,copyToAll:O})]})}),e.jsx("div",{style:{marginTop:18},children:e.jsx(Ls,{name:"classes",errorValues:{amount:Da}})}),e.jsxs(U.Controls,{children:[i==="select-class"&&e.jsx(oa,{alwaysShow:!0,items:h.classes.map(({_id:D,name:L})=>({id:D,name:L})),removeItem:F}),e.jsx(J,{size:"medium",type:"button",variant:"default",qa:"cancel-button",onClick:re,tabIndex:0,children:e.jsx(d,{id:"cancel-btn",defaultMessage:"cancel"})}),i==="select-class"&&e.jsxs(J,{size:"medium",type:"button",variant:"primary",qa:"next-button",onClick:H,children:[" tabIndex=",0,e.jsx(d,{id:"next",defaultMessage:"next"})]}),i==="adjust-dates"&&e.jsx(J,{size:"medium",type:"submit",variant:"primary",qa:"duplicate-button",loading:v,disabled:v,onClick:_,tabIndex:0,children:e.jsx(d,{id:"cms-alternative-duplicate-control-button",defaultMessage:"Duplicate"})})]})]})})}})},Wm=(s,t,a)=>{const{instructions:n,name:r,options:i,subjectId:o,schedule:c}=s,{startDate:x,startTime:u,dueDate:f,dueTime:m}=a;return{assignment:{classId:t,name:r,subjectId:o,instructions:n,options:i,schedule:{startAt:Sn(x,u),dueAt:Sn(f,m),closeKind:c?.closeKind,closeDurationSeconds:c?.closeDurationSeconds}}}},Vm=s=>{const t=Lo(s.schedule?.startAt),{date:a,time:n}=Ut(s?.schedule?.startAt),{date:r,time:i}=Ut(s?.schedule?.dueAt);return{startDate:t?a:"",startTime:t?n:"08:00",dueDate:t?r:"",dueTime:t?i:"22:00"}},zm=s=>{const t=dl(),{classId:a}=os();return(n,r)=>{t($.TeacherDashboardAssignmentDuplicate,s,{[g.ClassId]:a,[g.ModalAction]:n,...r})}},Qm=()=>{const{formatMessage:s}=de();return t=>{const a=s({id:"teacher-assignment-duplicate-success",defaultMessage:"The assignment successfully duplicated to {amount} {amount, plural, one {class} other {classes}}."},{amount:t});yt.success(a)}},Ym=()=>{const{formatMessage:s}=de();return(t,a)=>{const n=s({id:"teacher-assignment-duplicate-failure",defaultMessage:"The assignment failed to duplicate to {amount} {amount, plural, one {class} other {classes}}:"},{amount:t});yt.error(e.jsxs(e.Fragment,{children:[n,e.jsx("br",{}),a.join(", ")]}),{autoClose:!1})}},Km=({assignment:s})=>{const[t,a]=l.useState(),{addPageControls:n}=l.useContext(Lr),r=()=>a(void 0),i=ul(s);return l.useEffect(()=>{if(!s)return;const o=[{onClick:()=>a("duplicate"),qa:"assignment-options-duplicate",title:e.jsx(d,{id:"teacher-dashboard-assignment-duplicate-to-other-classes",defaultMessage:"Duplicate to other classes"}),icon:_o}];yc(s.status)&&o.push({onClick:()=>i(),qa:"assignment-options-view",title:e.jsx(d,{id:"copy-assignment-url",defaultMessage:"Copy Assignment Link for Students"}),icon:Ro}),vc(s.status)&&o.push({onClick:()=>a("delete"),qa:"assignment-options-delete",title:e.jsx(d,{id:"teacher-dashboard-assignment-delete",defaultMessage:"Delete Assignment"}),icon:Po}),n({controls:o,paths:[window.location.pathname]})},[s]),e.jsxs(e.Fragment,{children:[t==="duplicate"&&e.jsx(Hm,{assignment:s,closeModal:r}),t==="delete"&&e.jsx(Gm,{assignment:s,closeModal:r})]})},Xm=["DRAFT"],Jm=({assignment:s})=>{const t=He(),a=Ga(s.status);return e.jsxs(e.Fragment,{children:[e.jsx(Km,{assignment:s},t?.pathname),Ka(t.pathname)&&e.jsxs(Ze,{children:[a&&e.jsx(Ze.Item,{isActive:ps(t.pathname,"/assignment-markbook"),children:e.jsx(ds,{to:"assignment-markbook","data-testid":"assignment-markbook-tab-link",children:e.jsx(d,{id:"teacher-dashboard-assignment-markbook-tab",defaultMessage:"Assignment Markbook"})})}),a&&e.jsx(Ze.Item,{isActive:ps(t.pathname,"/assignment-nugget-analysis"),children:e.jsx(ds,{to:"assignment-nugget-analysis","data-testid":"assignment-nugget-analysis-tab-link",children:e.jsx(d,{id:"teacher-dashboard-assignment-nugget-analysis-tab",defaultMessage:"Nugget Analysis"})})}),e.jsx(Ze.Item,{isActive:ps(t.pathname,"/settings"),children:e.jsx(ds,{to:"settings","data-testid":"assignment-settings-tab-link",children:e.jsx(d,{id:"teacher-dashboard-assignment-settings-tab",defaultMessage:"Settings"})})})]}),e.jsx(fr,{})]})},Zm=()=>{const{addBreadcrumb:s,removeBreadcrumb:t}=It(),a=He(),{assignmentId:n,classId:r}=os(),{baseData:i}=l.useContext(Pe),o=l.useCallback(async(C,j)=>await gl(C,n,j),[n]),{data:c,error:x,loading:u,load:f}=Ee(o,!0);if(ml(c,f),l.useEffect(()=>{c?.name&&(t({path:`${a.pathname}`,title:Gt(c.name,100)}),s({path:`${a.pathname}`,title:Gt(c?.name,100),titleRightNode:e.jsx(xn,{status:c.status,size:Za.SMALL})}))},[s,t,c?.name,c?.status,a.pathname]),u&&!c)return e.jsx(_e,{type:"fullpage"});if(x)return e.jsx($t,{action:f});if(!c)return null;const m=c.groups.find(C=>Ac(C)&&C.classId===r)?.assignmentGroupId??"";return e.jsx(Dg,{assignment:c,children:e.jsx(Va,{children:e.jsxs(Be,{path:"/",element:e.jsx(Jm,{assignment:c}),children:[e.jsx(Be,{path:"settings",element:e.jsx(hm,{classId:r,assignment:c,loadAssignment:f})}),Ga(c.status)&&e.jsx(Be,{path:"assignment-markbook",element:e.jsx(fm,{assignment:c,assignmentGroupId:m,classData:i?.classInfo})}),Ga(c.status)&&e.jsx(Be,{path:"assignment-nugget-analysis",element:e.jsx(Fm,{assignment:c,assignmentGroupId:m,groupType:"class",pageArea:"class-assignment-nugget-analysis"})})]})})})},Ga=s=>!Xm.includes(s),Jh=()=>{const{classId:s}=os(),{addBreadcrumb:t,removeBreadcrumb:a}=It(),n=de();return l.useEffect(()=>{const r={path:`/teach/classes/${s}/assignments`,title:n.formatMessage({id:"teacher-dashboard-assignments-title",defaultMessage:"Assignments"})};return t(r),()=>a(r)},[s]),e.jsxs(Va,{children:[e.jsx(Be,{path:":assignmentId/*",element:e.jsx(Zm,{})}),e.jsx(Be,{index:!0,element:e.jsx(Mg,{})})]})};function Zh(s){const{hasOverview:t,hasNewAssignments:a,hasTeacherGenie:n,queryString:r}=s,i=en(),o=He();if(Ka(o.pathname,["students"]))return null;const c=r?`?${r}`:"";return e.jsxs(Ze,{children:[t&&e.jsx(Ze.Item,{isActive:ps(o.pathname,"/overview"),children:e.jsx(ds,{"data-testid":"class-overview-link",to:`overview${c}`,children:e.jsx(d,{id:"tabs-class-overview",defaultMessage:"Overview"})})}),i&&e.jsx(Ze.Item,{isActive:ps(o.pathname,"/assignments"),children:e.jsx(ds,{"data-testid":"assignments-tab-link",to:`assignments${c}`,children:a?e.jsxs(e.Fragment,{children:[e.jsx(d,{id:"tabs-assignments",defaultMessage:"Assignments"}),e.jsx("span",{children:" "})]}):e.jsx(d,{id:"tabs-assignments",defaultMessage:"Assignments"})})}),t&&e.jsx(Ze.Item,{isActive:ps(o.pathname,"/courses"),children:e.jsx(ds,{"data-testid":"course-overview-tab-link",to:`courses${c}`,children:e.jsx(d,{id:"tabs-course-overview",defaultMessage:"Course"})})}),e.jsx(Ze.Item,{isActive:ps(o.pathname,"/completions"),children:e.jsx(ds,{"data-testid":"markbook-tab-link",to:`completions${c}`,children:e.jsx(d,{id:"tabs-completion",defaultMessage:"Markbook"})})}),e.jsx(Ze.Item,{isActive:ps(o.pathname,"/nugget-analytics"),children:e.jsx(ds,{"data-testid":"nuggets-tab-link",to:`nugget-analytics${c}`,children:e.jsx(d,{id:"tabs-nugget-qla",defaultMessage:"Nuggets"})})}),e.jsx(Ze.Item,{isActive:ps(o.pathname,"/interventions"),children:e.jsx(ds,{"data-testid":"interventions-tab-link",to:`interventions${c}`,children:e.jsx(d,{id:"tabs-interventions",defaultMessage:"Interventions"})})}),n&&e.jsx(eh,{})]})}const eh=()=>{const{enabled:s}=Uc(),t=He(),a=Hc(),n=()=>a($.TeacherDashboardTeacherToolsTabClicked);return s?e.jsx(Ze.Item,{isActive:t.pathname.endsWith("/teacher-tools"),children:e.jsxs(ds,{"data-testid":"teacher-genie-tab-link",to:"teacher-tools",onClick:n,children:[e.jsx(d,{id:"teacher-genie",defaultMessage:"Worksheet GENai"}),e.jsx("span",{children:" "}),e.jsx(ni,{})]})}):null};export{xn as A,ju as B,zh as C,Gm as D,_g as M,Pt as S,Qh as T,Yh as a,Vh as b,Wh as c,Jh as d,Kh as e,Hh as f,Zh as g,bi as h,fm as i,Fm as j,Si as k,c
5a as l,bt as m,jd as n,Tg as o,mm as p,xm as q,ci as r,Dg as s,st as t,Qu as u,Pa as v,hu as w,Su as x,Xh as y};

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.