PageSourceSearch

https://campus.iaia.org.ar/dist/webpack-production/enhanced_individual_gradebook-c-5cefde6a5a.js

js iaia.org.ar collected 2026-10-06 09:04:40 UTC 105,605 bytes, 1,124 lines download raw bytes

1/*! For license information please see enhanced_individual_gradebook-c-5cefde6a5a.js.LICENSE.txt */
2"use strict";(globalThis["webpackChunkcanvas_lms"]=globalThis["webpackChunkcanvas_lms"]||[]).push([[10707],{19684:(e,t,n)=>{n.d(t,{q:()=>O})
3var o=n(4942)
4var s=n(45987)
5var i=n(15671)
6var a=n(43144)
7var r=n(60136)
8var d=n(51630)
9var l=n(67294)
10var c=n(45697)
11var u=n.n(c)
12var m=n(94184)
13var g=n.n(m)
14var v=n(69924)
15var h=n(54577)
16var p=n(79070)
17var b=n(96580)
18var f=n(15922)
19var _=n(16121)
20var C=n(53912)
21function S(e){var t=e.colors,n=e.borders,o=e.typography
22return{background:t.backgroundLightest,borderWidthSmall:n.widthSmall,borderWidthMedium:n.widthMedium,borderColor:t.borderMedium,boxShadowColor:(0,C.F)(t.backgroundDarkest,12),boxShadowBlur:"1rem",fontFamily:o.fontFamily,fontWeight:o.fontWeightBold,color:t.brand,colorShamrock:t.shamrock,colorBarney:t.barney,colorCrimson:t.crimson,colorFire:t.fire,colorLicorice:t.licorice,colorAsh:t.ash}}var Z,y,G,k,N,w
23var x={componentId:"elMgC",template:function(e){return"\n\n.elMgC_bGBk{background-clip:content-box;background-color:".concat(e.background||"inherit",";background-position:50%;background-repeat:no-repeat;background-size:cover;box-sizing:border-box;height:2.5em;line-height:0;overflow:hidden;text-align:center}\n\n[dir=ltr] .elMgC_bGBk,[dir=rtl] .elMgC_bGBk{text-align:center}\n\n.elMgC_bGBk.elMgC_uUeq{font-size:inherit}\n\n.elMgC_bGBk.elMgC_uUeq,.elMgC_bGBk.elMgC_UKsG{border-width:").concat(e.borderWidthSmall||"inherit","}\n\n.elMgC_bGBk.elMgC_UKsG{font-size:0.5rem}\n\n.elMgC_bGBk.elMgC_dfBC{font-size:0.75rem}\n\n.elMgC_bGBk.elMgC_doqw,.elMgC_bGBk.elMgC_dfBC{border-width:").concat(e.borderWidthSmall||"inherit","}\n\n.elMgC_bGBk.elMgC_doqw{font-size:1rem}\n\n.elMgC_bGBk.elMgC_ycrn{font-size:1.25rem}\n\n.elMgC_bGBk.elMgC_cMDj,.elMgC_bGBk.elMgC_ycrn{border-width:").concat(e.borderWidthMedium||"inherit","}\n\n.elMgC_bGBk.elMgC_cMDj{font-size:1.5rem}\n\n.elMgC_bGBk.elMgC_eoMd{font-size:1.75rem}\n\n.elMgC_bGBk.elMgC_eoMd,.elMgC_bGBk.elMgC_fdca{border-width:").concat(e.borderWidthMedium||"inherit","}\n\n.elMgC_bGBk.elMgC_fdca{font-size:2rem}\n\n.elMgC_bGBk.elMgC_cHTY{border:0;box-shadow:inset 0 0 ").concat(e.boxShadowBlur||"inherit"," 0 ").concat(e.boxShadowColor||"inherit","}\n\n.elMgC_bGBk:not(.elMgC_cHTY){border-color:").concat(e.borderColor||"inherit",";border-style:solid}\n\n.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA{background-clip:border-box;border:0;padding:0}\n\n.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_uUeq,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_doqw,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_dfBC,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_UKsG{padding:").concat(e.borderWidthSmall||"inherit","}\n\n.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_cMDj,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_ycrn,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_eoMd,.elMgC_bGBk:not(.elMgC_cHTY).elMgC_fKgA.elMgC_fdca{padding:").concat(e.borderWidthMedium||"inherit","}\n\n.elMgC_eYKj{font-family:").concat(e.fontFamily||"inherit",";font-weight:").concat(e.fontWeight||"inherit",";letter-spacing:0.0313em;line-height:2.375em}\n\n.elMgC_ddES{color:").concat(e.color||"inherit","}\n\n.elMgC_ekuM{color:").concat(e.colorShamrock||"inherit","}\n\n.elMgC_bXnN{color:").concat(e.colorBarney||"inherit","}\n\n.elMgC_byip{color:").concat(e.colorCrimson||"inherit","}\n\n.elMgC_dKVo{color:").concat(e.colorFire||"inherit","}\n\n.elMgC_eaOe{color:").concat(e.colorLicorice||"inherit","}\n\n.elMgC_fuVp{color:").concat(e.colorAsh||"inherit","}\n\n.elMgC_fKgA{color:").concat(e.background||"inherit","}\n\n.elMgC_fKgA.elMgC_ddES{background-color:").concat(e.color||"inherit","}\n\n.elMgC_fKgA.elMgC_ekuM{background-color:").concat(e.colorShamrock||"inherit","}\n\n.elMgC_fKgA.elMgC_bXnN{background-color:").concat(e.colorBarney||"inherit","}\n\n.elMgC_fKgA.elMgC_byip{background-color:").concat(e.colorCrimson||"inherit","}\n\n.elMgC_fKgA.elMgC_dKVo{background-color:").concat(e.colorFire||"inherit","}\n\n.elMgC_fKgA.elMgC_eaOe{background-color:").concat(e.colorLicorice||"inherit","}\n\n.elMgC_fKgA.elMgC_fuVp{background-color:").concat(e.colorAsh||"inherit","}\n\n.elMgC_MrJH{display:none}\n\n.elMgC_cJVF{border-radius:100%;overflow:hidden;position:relative;width:2.5em}\n\n.elMgC_bRWf{width:3em}\n\n.elMgC_eoCh{align-items:center;display:flex;height:100%;justify-content:center;width:100%}\n\n.elMgC_eoCh svg{fill:currentColor;height:1em;width:1em}")},root:"elMgC_bGBk",auto:"elMgC_uUeq","xx-small":"elMgC_UKsG","x-small":"elMgC_dfBC",small:"elMgC_doqw",medium:"elMgC_ycrn",large:"elMgC_cMDj","x-large":"elMgC_eoMd","xx-large":"elMgC_fdca",loaded:"elMgC_cHTY",hasInverseColor:"elMgC_fKgA",initials:"elMgC_eYKj",default:"elMgC_ddES",shamrock:"elMgC_ekuM",barney:"elMgC_bXnN",crimson:"elMgC_byip",fire:"elMgC_dKVo",licorice:"elMgC_eaOe",ash:"elMgC_fuVp",loadImage:"elMgC_MrJH",circle:"elMgC_cJVF",rectangle:"elMgC_bRWf",iconSVG:"elMgC_eoCh"}
24var O=(Z=(0,_.j)(),y=(0,p.x)("8.0.0",{inline:"display",variant:"shape"}),G=(0,h.YY)(S,x),Z(k=y(k=G(k=(w=N=function(e){(0,r.Z)(n,e)
25var t=(0,d.Z)(n)
26function n(){var e;(0,i.Z)(this,n)
27for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a]
28e=t.call.apply(t,[this].concat(s))
29e.state={loaded:false}
30e.handleImageLoaded=function(t){e.setState({loaded:true})
31e.props.onImageLoaded(t)}
32return e}
32(0,a.Z)(n,[{key:"componentDidUpdate",value:function(){this.state.loaded&&!this.props.src&&this.setState({loaded:false})}},{key:"makeInitialsFromName",value:function(){var e=this.props.name
33if(!e||"string"!==typeof e)return
34e=e.trim()
35if(0===e.length)return
36if(e.match(/\s+/)){var t=e.split(/\s+/)
37return(t[0][0]+t[t.length-1][0]).toUpperCase()}return e[0].toUpperCase()}},{key:"renderLoadImage",value:function(){return l.createElement("img",{src:this.props.src,className:x.loadImage,alt:this.props.alt,onLoad:this.handleImageLoaded,"aria-hidden":"true"})}},{key:"renderInitials",value:function(){return l.createElement("span",{className:x.initials,"aria-hidden":"true"},this.makeInitialsFromName())}},{key:"renderContent",value:function(){var e=this.props.renderIcon
38if(!e)return this.renderInitials()
39return l.createElement("span",{className:x.iconSVG},(0,b.A)(e))}},{key:"render",value:function(){var e
40var t=this.props,n=(t.onImageLoaded,(0,s.Z)(t,["onImageLoaded"]))
41var i=this.state.loaded
42return l.createElement(v.G,Object.assign({},(0,f.ry)(n),{style:{backgroundImage:i?"url('".concat(this.props.src,"')"):void 0},className:g()((e={},(0,o.Z)(e,x.root,true),(0,o.Z)(e,x[this.props.size],true),(0,o.Z)(e,x[this.props.variant||this.props.shape],true),(0,o.Z)(e,x[this.props.color],true),(0,o.Z)(e,x.loaded,i),(0,o.Z)(e,x.hasInverseColor,this.props.hasInverseColor),e)),"aria-label":this.props.alt?this.props.alt:null,role:this.props.alt?"img":null,as:this.props.as,elementRef:this.props.elementRef,margin:this.props.margin,display:"block"===this.props.display||false===this.props.inline?"block":"inline-block"}),this.renderLoadImage(),!i&&this.renderContent())}}])
43n.displayName="Avatar"
44return n}(l.Component),N.propTypes={name:u().string.isRequired,src:u().string,alt:u().string,size:u().oneOf(["auto","xx-small","x-small","small","medium","large","x-large","xx-large"]),color:u().oneOf(["default","shamrock","barney","crimson","fire","licorice","ash"]),hasInverseColor:u().bool,shape:u().oneOf(["circle","rectangle"]),margin:h.j7.spacing,display:u().oneOf(["inline-block","block"]),onImageLoaded:u().func,as:u().elementType,elementRef:u().func,renderIcon:u().oneOfType([u().node,u().func]),inline:u().bool,variant:u().oneOf(["circle","rectangle"])},N.defaultProps={src:void 0,alt:void 0,margin:void 0,elementRef:void 0,size:"medium",color:"default",hasInverseColor:false,shape:"circle",display:"inline-block",onImageLoaded:function(e){},renderIcon:null},w))||k)||k)||k)},42931:(e,t,n)=>{n.d(t,{O:()=>u})
45var o=n(1413)
46var s=n(15671)
47var i=n(43144)
48var a=n(60136)
49var r=n(51630)
50var d=n(67294)
51var l=n(94855)
52var c=d.createElement("path",{d:"M1807.09271,1482.47718 L1886.82918,1562.43953 L1531.51624,1917.75247 L355.346824,1917.75247 L0.0338823529,1562.43953 L79.8832941,1482.47718 L402.104471,1804.81129 L1484.75859,1804.81129 L1807.09271,1482.47718 Z M997.677176,-0.0338823529 L997.677176,1166.98729 L1352.99012,811.674353 L1432.95247,891.523765 L941.093647,1383.15671 L449.460706,891.523765 L529.423059,811.674353 L884.736,1166.98729 L884.736,-0.0338823529 L997.677176,-0.0338823529 Z",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
53var u=function(e){(0,a.Z)(n,e)
54var t=(0,r.Z)(n)
55function n(){(0,s.Z)(this,n)
56return t.apply(this,arguments)}(0,i.Z)(n,[{key:"render",value:function(){return d.createElement(l.q,Object.assign({},this.props,{name:"IconDownload",viewBox:"0 0 1920 1920"}),c)}}])
57n.displayName="IconDownloadLine"
58return n}(d.Component)
59u.glyphName="download"
60u.variant="Line"
61u.propTypes=(0,o.Z)({},l.q.propTypes)},9:(e,t,n)=>{n.d(t,{V:()=>u})
62var o=n(1413)
63var s=n(15671)
64var i=n(43144)
65var a=n(60136)
66var r=n(51630)
67var d=n(67294)
68var l=n(94855)
69var c=d.createElement("path",{d:"M1838.86029,1451.57632 L1920,1532.94589 L1558.4341,1894.51179 L361.565904,1894.51179 L0,1532.94589 L81.2546391,1451.57632 L409.146414,1779.58302 L1510.85359,1779.58302 L1838.86029,1451.57632 Z M962.333054,25 L1462.61798,525.284928 L1381.47827,606.654495 L1019.68251,244.973662 L1019.68251,1432.53262 L904.86867,1432.53262 L904.86867,244.973662 L543.187837,606.654495 L462.048126,525.284928 L962.333054,25 Z",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
70var u=function(e){(0,a.Z)(n,e)
71var t=(0,r.Z)(n)
72function n(){(0,s.Z)(this,n)
73return t.apply(this,arguments)}(0,i.Z)(n,[{key:"render",value:function(){return d.createElement(l.q,Object.assign({},this.props,{name:"IconUpload",viewBox:"0 0 1920 1920"}),c)}}])
74n.displayName="IconUploadLine"
75return n}(d.Component)
76u.glyphName="upload"
77u.variant="Line"
78u.propTypes=(0,o.Z)({},l.q.propTypes)},7342:(e,t,n)=>{n.d(t,{Z:()=>u})
79var o=n(1413)
80var s=n(15671)
81var i=n(43144)
82var a=n(60136)
83var r=n(51630)
84var d=n(67294)
85var l=n(94855)
86var c=d.createElement("path",{d:"M1587.85365,1133.98588 C1478.18776,1091.63294 1364.34306,1061.92941 1248.57835,1042.72941 L1243.38306,1042.72941 C1378.91247,951.36 1468.24894,796.404706 1468.24894,621.12 L1468.24894,596.272941 C1440.01365,614.343529 1403.87247,638.061176 1353.16188,653.985882 C1337.23718,856.150588 1166.696,1016.41412 960.013647,1016.41412 C760.220706,1016.41412 594.084235,867.444706 569.237176,674.202353 C565.848941,657.261176 564.719529,639.303529 564.719529,621.12 L564.719529,560.131765 C566.074824,560.018824 566.978353,559.68 568.333647,559.454118 C578.837176,557.647059 588.211294,555.275294 597.698353,552.790588 C605.830118,550.757647 613.848941,548.611765 621.077176,546.127059 C628.983059,543.416471 636.550118,540.705882 643.665412,537.543529 C651.797176,534.042353 659.251294,530.428235 666.705412,526.588235 C671.787765,523.764706 677.096,521.28 681.839529,518.456471 C689.067765,514.164706 695.844235,509.985882 702.507765,505.694118 C705.896,503.435294 709.848941,501.176471 713.011294,499.143529 C717.867765,495.981176 722.611294,493.157647 727.354824,490.221176 C761.801882,468.649412 794.667765,451.821176 855.881882,451.708235 L856.107765,451.708235 C909.303059,451.708235 941.039529,463.792941 970.743059,480.734118 C980.568941,486.381176 990.281882,492.705882 1000.55953,499.256471 C1035.68424,522.070588 1074.536,546.804706 1134.28188,558.211765 C1134.95953,558.324706 1135.41129,558.663529 1136.08894,558.776471 C1156.41835,562.503529 1179.23247,564.649412 1205.096,564.649412 C1205.54776,564.649412 1205.88659,564.536471 1206.33835,564.536471 C1309.67953,564.310588 1363.55247,529.750588 1410.87482,499.143529 L1466.66776,464.696471 L1466.66776,464.583529 L1467.23247,464.131765 L1463.27953,442.785882 L1460.90776,427.312941 C1455.59953,392.865882 1445.66071,359.887059 1433.68894,327.811765 C1408.95482,261.063529 1371.11953,199.849412 1319.16659,148.009412 C1292.17365,120.790588 1261.56659,97.0729412 1229.94306,77.8729412 C1149.75482,27.1623529 1056.01365,-0.0564705882 960.013647,-0.0564705882 C739.778353,-0.0564705882 551.166588,141.12 481.143059,338.767059 C461.943059,391.849412 451.778353,448.32 451.778353,508.178824 L451.778353,621.12 C451.778353,640.32 452.907765,659.52 455.279529,677.590588 C472.107765,829.948235 557.152471,960.734118 677.999529,1042.16471 L672.917176,1042.16471 C561.105412,1060.57412 450.874824,1089.14824 344.484235,1129.35529 C203.872471,1182.66353 112.954824,1312.77176 112.954824,1461.06353 L112.954824,1669.10118 L139.721882,1685.59059 C311.957176,1792.54588 594.197176,1919.94353 960.013647,1919.94353 C1161.95247,1919.94353 1468.24894,1879.39765 1780.41835,1685.59059 L1807.07247,1669.10118 L1807.07247,1461.06353 C1807.07247,1316.16 1718.97835,1184.80941 1587.85365,1133.98588",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
87var u=function(e){(0,a.Z)(n,e)
88var t=(0,r.Z)(n)
89function n(){(0,s.Z)(this,n)
90return t.apply(this,arguments)}(0,i.Z)(n,[{key:"render",value:function(){return d.createElement(l.q,Object.assign({},this.props,{name:"IconUser",viewBox:"0 0 1920 1920"}),c)}}])
91n.displayName="IconUserSolid"
92return n}(d.Component)
93u.glyphName="user"
94u.variant="Solid"
95u.propTypes=(0,o.Z)({},l.q.propTypes)},18331:(e,t,n)=>{n.d(t,{v:()=>u})
96var o=n(1413)
97var s=n(15671)
98var i=n(43144)
99var a=n(60136)
100var r=n(51630)
101var d=n(67294)
102var l=n(94855)
103var c=d.createElement("path",{d:"M960,0 C1490.19336,0 1920,429.80664 1920,960 C1920,1490.19336 1490.19336,1920 960,1920 C429.80664,1920 0,1490.19336 0,960 C0,429.80664 429.80664,0 960,0 Z M960,101.052632 C485.616468,101.052632 101.052632,485.616468 101.052632,960 C101.052632,1434.38353 485.616468,1818.94737 960,1818.94737 C1434.38353,1818.94737 1818.94737,1434.38353 1818.94737,960 C1818.94737,485.616468 1434.38353,101.052632 960,101.052632 Z M950.679927,1322.54386 C870.655911,1322.54386 805.551855,1387.64792 805.551855,1467.67193 C805.551855,1547.69595 870.655911,1612.8 950.679927,1612.8 C1030.70394,1612.8 1095.808,1547.69595 1095.808,1467.67193 C1095.808,1387.64792 1030.70394,1322.54386 950.
103679927,1322.54386 Z M1143.46512,353.684211 L757.894737,353.684211 L851.795993,1205.0114 L1049.56386,1205.0114 L1143.46512,353.684211 Z",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
104var u=function(e){(0,a.Z)(n,e)
105var t=(0,r.Z)(n)
106function n(){(0,s.Z)(this,n)
107return t.apply(this,arguments)}(0,i.Z)(n,[{key:"render",value:function(){return d.createElement(l.q,Object.assign({},this.props,{name:"IconWarning",viewBox:"0 0 1920 1920"}),c)}}])
108n.displayName="IconWarningLine"
109return n}(d.Component)
110u.glyphName="warning"
111u.variant="Line"
112u.propTypes=(0,o.Z)({},l.q.propTypes)},62779:(e,t,n)=>{n.d(t,{D:()=>O})
113var o=n(4942)
114var s=n(45987)
115var i=n(15671)
116var a=n(43144)
117var r=n(60136)
118var d=n(51630)
119var l=n(67294)
120var c=n(45697)
121var u=n.n(c)
122var m=n(94184)
123var g=n.n(m)
124var v=n(69924)
125var h=n(98983)
126var p=n(56398)
127var b=n(54577)
128var f=n(79070)
129var _=n(15922)
130var C=n(16121)
131function S(e){var t=e.borders,n=e.colors,o=e.spacing,s=e.typography
132return{fontFamily:s.fontFamily,padding:"0 ".concat(o.xSmall),height:"1.3125rem",background:n.backgroundLightest,textTransformStyle:"uppercase",textFontSize:s.fontSizeXSmall,textFontWeight:s.fontWeightBold,maxWidth:"15rem",color:n.textDark,primaryColor:n.textDark,infoColor:n.textInfo,dangerColor:n.textDanger,successColor:n.textSuccess,warningColor:n.textWarning,alertColor:n.textAlert,messageColor:n.textAlert,borderWidth:t.widthSmall,borderStyle:t.style,borderRadius:"999rem"}}S["instructure"]=function(){return{height:"1.5rem"}}
133var Z,y,G,k,N,w
134var x={componentId:"dLyYq",template:function(e){return"\n\n.dLyYq_bGBk{background:".concat(e.background||"inherit",";border-radius:").concat(e.borderRadius||"inherit",";border-style:").concat(e.borderStyle||"inherit",";border-width:").concat(e.borderWidth||"inherit",";display:block;font-family:").concat(e.fontFamily||"inherit",";line-height:calc(").concat(e.height||"inherit"," - ").concat(e.borderWidth||"inherit","*2);padding:").concat(e.padding||"inherit","}\n\n.dLyYq_bGBk,.dLyYq_eWKC{box-sizing:border-box}\n\n.dLyYq_eWKC{font-size:").concat(e.textFontSize||"inherit",";font-weight:").concat(e.textFontWeight||"inherit",";letter-spacing:0.0625rem;text-transform:").concat(e.textTransformStyle||"inherit","}\n\n.dLyYq_ddES{border-color:").concat(e.color||"inherit",";color:").concat(e.color||"inherit","}\n\n.dLyYq_bXiG{border-color:").concat(e.primaryColor||"inherit",";color:").concat(e.primaryColor||"inherit","}\n\n.dLyYq_pypk,.dLyYq_ecos{border-color:").concat(e.infoColor||"inherit",";color:").concat(e.infoColor||"inherit","}\n\n.dLyYq_cOXX{border-color:").concat(e.successColor||"inherit",";color:").concat(e.successColor||"inherit","}\n\n.dLyYq_zGXc{border-color:").concat(e.dangerColor||"inherit",";color:").concat(e.dangerColor||"inherit","}\n\n.dLyYq_eRqw{border-color:").concat(e.warningColor||"inherit",";color:").concat(e.warningColor||"inherit","}\n\n.dLyYq_elxg{border-color:").concat(e.messageColor||"inherit",";color:").concat(e.messageColor||"inherit","}\n\n.dLyYq_bgqc{border-color:").concat(e.alertColor||"inherit",";color:").concat(e.alertColor||"inherit","}")},root:"dLyYq_bGBk",text:"dLyYq_eWKC",default:"dLyYq_ddES",primary:"dLyYq_bXiG",info:"dLyYq_pypk",oldPrimary:"dLyYq_ecos",success:"dLyYq_cOXX",danger:"dLyYq_zGXc",warning:"dLyYq_eRqw",message:"dLyYq_elxg",alert:"dLyYq_bgqc"}
135var O=(Z=(0,C.j)(),y=(0,f.x)("8.0.0",{text:"children",variant:"color"}),G=(0,b.YY)(S,x),Z(k=y(k=G(k=(w=N=function(e){(0,r.Z)(n,e)
136var t=(0,d.Z)(n)
137function n(e){var o;(0,i.Z)(this,n)
138o=t.call(this,e)
139o.state={truncated:false}
140return o}(0,a.Z)(n,[{key:"handleTruncation",value:function(e){this.setState({truncated:e})}},{key:"renderPill",value:function(e,t){var n,i=this
141var a=this.props,r=a.margin,d=a.children,c=a.variant,u=a.color,m=a.as,h=a.elementRef,b=a.text,f=(0,s.Z)(a,["margin","children","variant","color","as","elementRef","text"])
142var C=(0,_.ry)(f)
143var S="function"===typeof t?t(C):C
144var Z=c
145Z?"primary"===c&&(Z="oldPrimary"):Z=u
146var y=g()((n={},(0,o.Z)(n,x.root,true),(0,o.Z)(n,x.truncated,this.state.truncated),(0,o.Z)(n,x[Z],true),n))
147return l.createElement(v.G,Object.assign({},S,{as:m,elementRef:h,margin:r,padding:"0",maxWidth:this.theme.maxWidth,background:"transparent",borderRadius:"pill",borderWidth:"0",display:"inline-block",position:"relative",withFocusOutline:e,focusColor:"info"}),l.createElement("span",{className:y},l.createElement("span",{className:x.text},l.createElement(p.Y,{onUpdate:function(e){i.handleTruncation(e)}},d||b))))}},{key:"render",value:function(){var e=this
148return this.state.truncated?l.createElement(h.u,{renderTip:this.props.children||this.props.text},(function(t){var n=t.focused,o=t.getTriggerProps
149return e.renderPill(n,o)})):this.renderPill()}}])
150n.displayName="Pill"
151return n}(l.Component),N.propTypes={as:u().elementType,children:u().node,color:u().oneOf(["primary","success","danger","info","warning","alert"]),elementRef:u().func,margin:b.j7.spacing,text:u().node,variant:u().oneOf(["default","success","danger","primary","warning","message"])},N.defaultProps={children:void 0,margin:void 0,elementRef:void 0,color:"primary"},w))||k)||k)||k)},92665:(e,t,n)=>{n.d(t,{V:()=>x})
152var o=n(4942)
153var s=n(15671)
154var i=n(43144)
155var a=n(60136)
156var r=n(51630)
157var d=n(67294)
158var l=n(45697)
159var c=n.n(l)
160var u=n(94184)
161var m=n.n(u)
162var g=n(36849)
163var v=n(69924)
164var h=n(54577)
165var p=n(15922)
166var b=n(69505)
167var f=n(16121)
168var _=n(1413)
169var C=n(64337)
170function S(e){var t=e.borders,n=e.colors,s=e.forms,i=e.spacing,a=e.typography
171var r=function(e,n){var s
172var i=n.borderColor,a=n.borderRadius,r=n.borderStyle,d=n.borderWidth,l=n.hoverColor,c=n.iconColor,u=n.iconHoverColor,m=n.mainColor,g=n.textColor
173return s={}
173,(0,o.Z)(s,"".concat(e,"BackgroundHover"),l||(0,C._)(m,5)),(0,o.Z)(s,"".concat(e,"Background"),m),(0,o.Z)(s,"".concat(e,"BorderColor"),i),(0,o.Z)(s,"".concat(e,"BorderRadius"),a||"999rem"),(0,o.Z)(s,"".concat(e,"BorderStyle"),r||t.style),(0,o.Z)(s,"".concat(e,"BorderWidth"),d||t.widthSmall),(0,o.Z)(s,"".concat(e,"Color"),g),(0,o.Z)(s,"".concat(e,"IconColor"),c||g),(0,o.Z)(s,"".concat(e,"IconHoverColor"),u||c||g),s}
174return(0,_.Z)({fontFamily:a.fontFamily,heightSmall:"1.3125rem",heightMedium:s.inputHeightSmall,heightLarge:s.inputHeightMedium,fontSizeSmall:a.fontSizeXSmall,fontSizeMedium:a.fontSizeSmall,fontSizeLarge:a.fontSizeMedium,padding:"0 ".concat(i.xSmall),paddingSmall:"0 ".concat(i.xSmall),focusOutlineColor:n.borderBrand,focusOutlineWidth:t.widthMedium,focusOutlineStyle:t.style,maxWidth:"10rem",iconMargin:i.small,transitionTiming:"0.2s"},r("default",{borderColor:n.borderMedium,iconColor:n.textDarkest,iconHoverColor:n.textBrand,mainColor:n.textLight,textColor:n.textDarkest}),{},r("inline",{borderColor:n.borderDark,borderRadius:t.radiusMedium,iconColor:n.textDark,iconHoverColor:n.textDark,mainColor:n.textLightest,textColor:n.textDarkest}))}S["canvas-a11y"]=S["canvas-high-contrast"]=function(e){var t=e.colors
175return{defaultBackground:t.backgroundLightest,defaultBorderColor:t.borderDarkest}}
176S.canvas=function(e){return{focusOutlineColor:e["ic-brand-primary"],textColor:e["ic-brand-font-color-dark"],defaultIconColor:e["ic-brand-font-color-dark"],defaultIconHoverColor:e["ic-brand-primary"],defaultColor:e["ic-brand-font-color-dark"]}}
177var Z,y,G,k,N
178var w={componentId:"DyQTK",template:function(e){return"\n\n.DyQTK_eAEM{-ms-user-select:none;-webkit-user-select:none;align-items:center;box-sizing:border-box;display:inline-flex;font-family:".concat(e.fontFamily||"inherit",";text-align:center;user-select:none;vertical-align:middle}\n\n[dir=ltr] .DyQTK_eAEM,[dir=rtl] .DyQTK_eAEM{text-align:center}\n\n.DyQTK_doqw{font-size:").concat(e.fontSizeSmall||"inherit",";padding:").concat(e.paddingSmall||"inherit","}\n\n.DyQTK_doqw .DyQTK_eWKC{line-height:calc(").concat(e.heightSmall||"inherit"," - ").concat(e.defaultBorderWidth||"inherit","*2)}\n\n.DyQTK_doqw .DyQTK_dnnz{font-size:0.75rem}\n\n.DyQTK_ycrn{font-size:calc(").concat(e.fontSizeMedium||"inherit"," - 0.0625rem);padding:").concat(e.padding||"inherit","}\n\n.DyQTK_ycrn .DyQTK_eWKC{line-height:calc(").concat(e.heightMedium||"inherit"," - ").concat(e.defaultBorderWidth||"inherit","*2)}\n\n.DyQTK_ycrn .DyQTK_dnnz{font-size:0.75rem}\n\n.DyQTK_cMDj{font-size:calc(").concat(e.fontSizeLarge||"inherit"," - 0.0625rem);padding:").concat(e.padding||"inherit","}\n\n.DyQTK_cMDj .DyQTK_eWKC{line-height:calc(").concat(e.heightLarge||"inherit"," - ").concat(e.defaultBorderWidth||"inherit","*2)}\n\n.DyQTK_cMDj .DyQTK_dnnz{font-size:0.875rem}\n\n.DyQTK_EwaR{outline:none;overflow:visible;position:relative;touch-action:manipulation;transition:background-color ").concat(e.transitionTiming||"inherit","}\n\n.DyQTK_EwaR:before{border:").concat(e.focusOutlineWidth||"inherit"," ").concat(e.focusOutlineStyle||"inherit"," ").concat(e.focusOutlineColor||"inherit",";border-radius:").concat(e.borderRadius||"inherit",';bottom:-0.3125rem;box-sizing:border-box;content:"";left:-0.3125rem;opacity:0;pointer-events:none;position:absolute;right:-0.3125rem;top:-0.3125rem;transform:scale(0.9);transition:all ').concat(e.transitionTiming||"inherit","}\n\n.DyQTK_EwaR:not(.DyQTK_erdA){cursor:pointer}\n\n.DyQTK_EwaR:focus:before{opacity:1;transform:scale(1)}\n\n.DyQTK_EwaR.DyQTK_ywdX{cursor:not-allowed;opacity:0.5;pointer-events:none}\n\n.DyQTK_dnnz{-webkit-margin-end:0;-webkit-margin-start:").concat(e.iconMargin||"inherit",";cursor:pointer;margin-inline-end:0;margin-inline-start:").concat(e.iconMargin||"inherit",";transform:translateY(0.0625rem);transition:all ").concat(e.transitionTiming||"inherit","}\n\n[dir=ltr] .DyQTK_dnnz{margin-left:").concat(e.iconMargin||"inherit",";margin-right:0}\n\n[dir=rtl] .DyQTK_dnnz{margin-left:0;margin-right:").concat(e.iconMargin||"inherit","}\n\n.DyQTK_eWKC{max-width:").concat(e.maxWidth||"inherit",";overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
178\n\n.DyQTK_ddES{background-color:").concat(e.defaultBackground||"inherit",";border:").concat(e.defaultBorderWidth||"inherit"," ").concat(e.defaultBorderStyle||"inherit"," ").concat(e.defaultBorderColor||"inherit",";border-radius:").concat(e.defaultBorderRadius||"inherit",";color:").concat(e.defaultColor||"inherit","}\n\n.DyQTK_ddES.DyQTK_EwaR:before{border-radius:").concat(e.defaultBorderRadius||"inherit","}\n\n.DyQTK_ddES.DyQTK_EwaR:hover{background-color:").concat(e.defaultBackgroundHover||"inherit","}\n\n.DyQTK_ddES.DyQTK_erdA .DyQTK_dnnz{color:").concat(e.defaultIconColor||"inherit","}\n\n.DyQTK_ddES.DyQTK_erdA:hover .DyQTK_dnnz{color:").concat(e.defaultIconHoverColor||"inherit","}\n\n.DyQTK_eXrk{background-color:").concat(e.inlineBackground||"inherit",";border:").concat(e.inlineBorderWidth||"inherit"," ").concat(e.inlineBorderStyle||"inherit"," ").concat(e.inlineBorderColor||"inherit",";border-radius:").concat(e.inlineBorderRadius||"inherit",";color:").concat(e.inlineColor||"inherit",";cursor:text;margin:0 0.1875rem 0.1875rem}\n\n.DyQTK_eXrk.DyQTK_EwaR:before{border-radius:calc(").concat(e.inlineBorderRadius||"inherit","*1.5)}\n\n.DyQTK_eXrk.DyQTK_EwaR:hover{background-color:").concat(e.inlineBackgroundHover||"inherit","}\n\n.DyQTK_eXrk.DyQTK_erdA .DyQTK_dnnz{background-color:").concat(e.inlineIconColor||"inherit",";border-radius:50%;color:").concat(e.inlineBackground||"inherit",";font-size:0.75rem;inset-inline-end:0;inset-inline-start:auto;padding:0.25rem;position:absolute;top:0;transform:translate(40%,-40%)}\n\n[dir=ltr] .DyQTK_eXrk.DyQTK_erdA .DyQTK_dnnz{left:auto;right:0}\n\n[dir=rtl] .DyQTK_eXrk.DyQTK_erdA .DyQTK_dnnz{left:0;right:auto}\n\n.DyQTK_eXrk.DyQTK_erdA:hover .DyQTK_dnnz{background-color:").concat(e.inlineIconHoverColor||"inherit","}\n\n[dir=rtl] .DyQTK_eXrk.DyQTK_erdA .DyQTK_dnnz{transform:translate(-40%,-40%)}")},tagRoot:"DyQTK_eAEM",small:"DyQTK_doqw",text:"DyQTK_eWKC",icon:"DyQTK_dnnz",medium:"DyQTK_ycrn",large:"DyQTK_cMDj",button:"DyQTK_EwaR",dismissible:"DyQTK_erdA",disabled:"DyQTK_ywdX",default:"DyQTK_ddES",inline:"DyQTK_eXrk"}
179var x=(Z=(0,f.j)(),y=(0,h.YY)(S,w),Z(G=y(G=(N=k=function(e){(0,a.Z)(n,e)
180var t=(0,r.Z)(n)
181function n(){var e;(0,s.Z)(this,n)
182for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a]
183e=t.call.apply(t,[this].concat(i))
184e.focus=function(){e._container&&e._container.focus()}
185e.handleClick=function(t){var n=e.props,o=n.disabled,s=n.readOnly,i=n.onClick
186if(o||s){t.preventDefault()
187t.stopPropagation()}else"function"===typeof i&&i(t)}
188e.handleRef=function(t){e._container=t}
189return e}(0,i.Z)(n,[{key:"render",value:function(){var e
190var t=this.props,s=t.className,i=t.dismissible,a=t.disabled,r=t.readOnly,l=t.size,c=t.text,u=t.title,h=t.onClick,b=t.margin,f=t.variant
191var _=(e={},(0,o.Z)(e,w.tagRoot,true),(0,o.Z)(e,w[f],true),(0,o.Z)(e,w[l],l),(0,o.Z)(e,w.dismissible,i),(0,o.Z)(e,w.button,h),(0,o.Z)(e,w.disabled,a),e)
192var C=v.G.omitViewProps((0,p.cZ)(this.props,n.propTypes),n)
193return d.createElement(v.G,Object.assign({},C,{ref:this.handleRef,elementRef:this.props.elementRef,className:m()(s,_),as:h?"button":"span",margin:b,type:h?"button":null,onClick:h?this.handleClick:null,disabled:a||r,display:null,title:u||("string"===typeof c?c:null)}),d.createElement("span",{className:w.text},c),h&&i?d.createElement(g.k,{className:w.icon}):null)}},{key:"focused",get:function(){return(0,b.H)(this._container)}}])
194n.displayName="Tag"
195return n}(d.Component),k.propTypes={className:c().string,text:c().oneOfType([c().string,c().node]).isRequired,title:c().string,disabled:c().bool,readOnly:c().bool,dismissible:c().bool,margin:h.j7.spacing,onClick:c().func,elementRef:c().func,size:c().oneOf(["small","medium","large"]),variant:c().oneOf(["default","inline"])},k.defaultProps={size:"medium",dismissible:false,variant:"default",elementRef:void 0,className:void 0,title:void 0,disabled:false,readOnly:false,margin:void 0,onClick:void 0},N))||G)||G)},22701:(e,t,n)=>{n.r(t)
196var o=n(63056)
197var s=n(67294)
198var i=n(73935)
199var a=n(79655)
200var r=n(89250)
201var d=n(69354)
202var l=n(80276)
203var c=n(23176)
204var u=n(93999)
205var m=n(61323)
206var g=n(23629)
207var v=n(69924)
208var h=n(96486)
209var p=n.n(h)
210var b=n(15809)
211var f=n(18331)
212var _=n(38496)
213var C=n(14899)
214var S=n(75149)
215let Z;(function(e){e["DueDate"]="dueDate"
216e["Alphabetical"]="alphabetical"
217e["AssignmentGroup"]="assignmentGroup"})(Z||(Z={}))
218let y;(function(e){e["NOT_STARTED"]="NOT_STARTED"
219e["NO_CHANGE"]="NO_CHANGE"
220e["PENDING"]="PENDING"
221e["COMPLETED"]="COMPLETED"
222e["FAILED"]="FAILED"})(y||(y={}))
223var G=n(99556)
224var k=n(82567)
225var N=n(84034)
226var w=n(59324)
227var x=n(52111)
228const O=(0,m.useScope)("enhanced_individual_gradebook")
229function E(e,t){return e.reduce(((e,n)=>{const o=n.assignmentsConnection.nodes
230const s=o.map((e=>Y(e,n.position,t[e.id])))
231e.mappedAssignments.push(...s)
232const i=[]
233let a=0
234e.mappedAssignmentGroupMap[n.id]={name:n.name,assignments:n.assignmentsConnection.nodes.map((e=>{a+=e.pointsPossible
235const n=t[e.id]
236n&&i.push(n)
237return{id:e.id,name:e.name,points_possible:e.pointsPossible,submission_types:e.submissionTypes,anonymize_students:e.anonymizeStudents,omit_from_final_grade:e.omitFromFinalGrade,workflow_state:e.workflowState}})),group_weight:n.groupWeight,rules:n.rules,id:n.id,position:n.position,integration_data:{}
237,sis_source_id:null,invalid:0===a,gradingPeriodsIds:p().uniq(i)}
238return e}),{mappedAssignments:[],mappedAssignmentGroupMap:{}})}function I(e){const t={}
239const n=e.reduce(((e,n)=>{const{assignmentId:o,id:s}=n
240if(!e[o]){e[o]={}
241t[o]=n.gradingPeriodId}e[o][s]=n
242return e}),{})
243return{assignmentGradingPeriodMap:t,assignmentSubmissionsMap:n}}function D(e){const t=e.reduce(((e,t)=>{const{user:n,courseSectionId:o,state:s}=t
244e[n.id]?e[n.id].sections.push(o):e[n.id]={...n,sections:[o],state:s}
245return e}),{})
246return Object.values(t)}function T(e,t){return t?e.hiddenName??O.t("Student"):e.name}function M(e,t){switch(t){case Z.Alphabetical:return p().sortBy(e,"sortableName")
247case Z.DueDate:return p().sortBy(e,["sortableDueDate","sortableName"])
248case Z.AssignmentGroup:return p().sortBy(e,["assignmentGroupPosition","sortableName"])
249default:return e}}function A(e,t){const n=t.reduce(((e,t)=>{e[t.assignmentId]=true
250return e}),{})
251return e.filter((e=>n[e.id]))}function P(e,t){return{max:$(Math.max(...t)),min:$(Math.min(...t)),pointsPossible:$(e.pointsPossible,"N/A"),average:$((0,C.Z)(t.reduce(((e,t)=>e+t),0)/t.length,2)),median:$(j(t,.5)),lowerQuartile:$(j(t,.25)),upperQuartile:$(j(t,.75))}}function L(e){return{assignmentId:e.assignment_id,enteredScore:e.entered_score,excused:e.excused,grade:e.grade,id:e.id,late:e.late,missing:e.missing,redoRequest:e.redo_request,score:e.score,submittedAt:e.submitted_at,userId:e.user_id,submissionType:e.submission_type,state:e.workflow_state,cachedDueDate:e.cached_due_date}}function B(e){if(!e.submissionType)return O.t("Has not submitted")
252const t=G.Z.formatDatetimeForDisplay(e.submittedAt)
253if(e.proxySubmitter)return O.t("Submitted by %{proxy} on %{date}",{proxy:e.proxySubmitter,date:t})
254return O.t("Submitted on %{date}",{date:t})}function K(e,t){const{gradingType:n,pointsPossible:o}=e
255return t.excused?O.t("Excused"):"gpa_scale"===n?"":"letter_grade"===n||"pass_fail"===n?O.t("(%{score} out of %{points})",{points:O.n(o),score:t.enteredScore}):null===o||void 0===o?O.t("No points possible"):O.t("(out of %{points})",{points:O.n(o)})}function U(e){return{assignmentId:e.assignment_id,enteredScore:e.entered_score,excused:e.excused,grade:e.grade,id:e.id,late:e.late,missing:e.missing,score:e.score,submittedAt:e.submitted_at,state:e.workflow_state,userId:e.user_id}}function F(e){var t,n,o,s,i,a,r,d,l,c,u,m,v,h,p,b,f,_,C,S,y,G,k,N,w,x,O,E,I,D,T,M,A,P,L,B,K,U
256const F=(null===(t=g.Z.contextGet("sort_grade_columns_by"))||void 0===t?void 0:t.sortType)??Z.Alphabetical
257const R={activeGradingPeriods:null===(n=e.GRADEBOOK_OPTIONS)||void 0===n?void 0:n.active_grading_periods,changeGradeUrl:null===(o=e.GRADEBOOK_OPTIONS)||void 0===o?void 0:o.change_grade_url,contextId:null===(s=e.GRADEBOOK_OPTIONS)||void 0===s?void 0:s.context_id,contextUrl:null===(i=e.GRADEBOOK_OPTIONS)||void 0===i?void 0:i.context_url,customColumnDatumUrl:null===(a=e.GRADEBOOK_OPTIONS)||void 0===a?void 0:a.custom_column_datum_url,customColumnDataUrl:null===(r=e.GRADEBOOK_OPTIONS)||void 0===r?void 0:r.custom_column_data_url,customColumnUrl:null===(d=e.GRADEBOOK_OPTIONS)||void 0===d?void 0:d.custom_column_url,customColumnsUrl:null===(l=e.GRADEBOOK_OPTIONS)||void 0===l?void 0:l.custom_columns_url,customOptions:{allowFinalGradeOverride:(null===(c=e.GRADEBOOK_OPTIONS)||void 0===c?void 0:c.course_settings.allow_final_grade_override)??false,includeUngradedAssignments:null!==(u=e.GRADEBOOK_OPTIONS)&&void 0!==u&&u.save_view_ungraded_as_zero_to_server&&null!==(m=e.GRADEBOOK_OPTIONS)&&void 0!==m&&m.settings?"true"===e.GRADEBOOK_OPTIONS.settings.view_ungraded_as_zero:g.Z.contextGet("include_ungraded_assignments")||false,hideStudentNames:g.Z.contextGet("hide_student_names")||false,showConcludedEnrollments:!(null===(v=e.GRADEBOOK_OPTIONS)||void 0===v||null===(h=v.settings)||void 0===h||!h.show_concluded_enrollments)&&"true"===e.GRADEBOOK_OPTIONS.settings.show_concluded_enrollments,showNotesColumn:void 0!==(null===(p=e.GRADEBOOK_OPTIONS)||void 0===p||null===(b=p.teacher_notes)||void 0===b?void 0:b.hidden)&&!e.GRADEBOOK_OPTIONS.teacher_notes.hidden,showTotalGradeAsPoints:(null===(f=e.GRADEBOOK_OPTIONS)||void 0===f?void 0:f.show_total_grade_as_points)??false},downloadAssignmentSubmissionsUrl:null===(_=e.GRADEBOOK_OPTIONS)||void 0===_?void 0:_.download_assignment_submissions_url,exportGradebookCsvUrl:null===(C=e.GRADEBOOK_OPTIONS)||void 0===C?void 0:C.export_gradebook_csv_url,finalGradeOverrideEnabled:null===(S=e.GRADEBOOK_OPTIONS)||void 0===S?void 0:S.final_grade_override_enabled,gradeCalcIgnoreUnpostedAnonymousEnabled:null===(y=e.GRADEBOOK_OPTIONS)||void 0===y?void 0:y.grade_calc_ignore_unposted_anonymous_enabled,gradebookCsvProgress:null===(G=e.GRADEBOOK_OPTIONS)||void 0===G?void 0:G.gradebook_csv_progress,gradesAreWeighted:null===(k=e.GRADEBOOK_OPTIONS)||void 0===k?void 0:k.grades_are_weighted,gradingPerio
257dSet:null===(N=e.GRADEBOOK_OPTIONS)||void 0===N?void 0:N.grading_period_set,gradingSchemes:null===(w=e.GRADEBOOK_OPTIONS)||void 0===w?void 0:w.grading_schemes,gradingStandard:null===(x=e.GRADEBOOK_OPTIONS)||void 0===x?void 0:x.grading_standard,gradingStandardPointsBased:(null===(O=e.GRADEBOOK_OPTIONS)||void 0===O?void 0:O.grading_standard_points_based)||false,gradingStandardScalingFactor:(null===(E=e.GRADEBOOK_OPTIONS)||void 0===E?void 0:E.grading_standard_scaling_factor)||1,groupWeightingScheme:null===(I=e.GRADEBOOK_OPTIONS)||void 0===I?void 0:I.group_weighting_scheme,lastGeneratedCsvAttachmentUrl:null===(D=e.GRADEBOOK_OPTIONS)||void 0===D?void 0:D.attachment_url,messageAttachmentUploadFolderId:null===(T=e.GRADEBOOK_OPTIONS)||void 0===T?void 0:T.message_attachment_upload_folder_id,pointsBasedGradingSchemesFeatureEnabled:!!e.POINTS_BASED_GRADING_SCHEMES_ENABLED,publishToSisEnabled:null===(M=e.GRADEBOOK_OPTIONS)||void 0===M?void 0:M.publish_to_sis_enabled,publishToSisUrl:null===(A=e.GRADEBOOK_OPTIONS)||void 0===A?void 0:A.publish_to_sis_url,reorderCustomColumnsUrl:null===(P=e.GRADEBOOK_OPTIONS)||void 0===P?void 0:P.reorder_custom_columns_url,saveViewUngradedAsZeroToServer:null===(L=e.GRADEBOOK_OPTIONS)||void 0===L?void 0:L.save_view_ungraded_as_zero_to_server,selectedGradingPeriodId:g.Z.contextGet("gradebook_current_grading_period"),settingsUpdateUrl:null===(B=e.GRADEBOOK_OPTIONS)||void 0===B?void 0:B.settings_update_url,settingUpdateUrl:null===(K=e.GRADEBOOK_OPTIONS)||void 0===K?void 0:K.setting_update_url,sortOrder:F,teacherNotes:null===(U=e.GRADEBOOK_OPTIONS)||void 0===U?void 0:U.teacher_notes,userId:e.current_user_id}
258return R}function R(e){if(!e)return null
259return{createdAt:new Date(e.created_at),displayTotalsForAllGradingPerio
259ds:e.display_totals_for_all_grading_periods,enrollmentTermIDs:e.enrollment_term_ids,gradingPeriods:e.grading_periods.map((e=>({closeDate:new Date(e.close_date),endDate:new Date(e.end_date),id:e.id,startDate:new Date(e.start_date),isClosed:e.is_closed,title:e.title,isLast:e.is_last,weight:e.weight??0}))),id:e.id,permissions:e.permissions,title:e.title,weighted:e.weighted}}function z(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2
260const o=Number(e)/Number(t)*100
261return o%1===0?o:o.toFixed(n)}function W(e,t,n){const o=e/(t/n)
262if(!Number.isFinite(o))return o
263return(0,x.He)((0,x.cs)(e,(0,x.cs)(t,n)))}function Q(e,t,n){if(!n||!n.length||!e||!t)return"-"
264const o=z(t,e)
265const s=parseFloat(Number(o).toPrecision(4))
266return(0,w._o)(s,n)}function q(e){let{assignmentGroupMap:t,gradeCalcIgnoreUnpostedAnonymousEnabled:n,gradingPeriodSet:o,groupWeightingScheme:s,studentId:i,submissions:a}=e
267if(!a||!i)return
268const r=R(o)
269const d=a.map((e=>({assignment_id:e.assignmentId,excused:e.excused,grade:e.grade,score:e.score,workflow_state:e.state,id:e.id})))
270const l=(0,N.Y)({},a.map((e=>({assignment_id:e.assignmentId,cached_due_date:e.cachedDueDate,user_id:e.userId}
270))),null===r||void 0===r?void 0:r.gradingPeriods)
271const c=o&&l
272return k.Z.calculate(d,t,s??"points",n??false,c?r:void 0,c?(0,N.U)(l,i):void 0)}function $(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"No graded submissions"
273return Number.isFinite(e)&&!Number.isNaN(e)?e.toString():t}function j(e,t){const n=Math.floor(t*(e.length-1)+1)-1
274const o=(t*(e.length-1)+1)%1
275return e[n]+o*(e[n+1]-e[n])}function Y(e,t,n){const o=e.dueAt?+S.Z.parse(e.dueAt)/1e3:Number.MAX_VALUE
276return{...e,sortableName:e.name.toLowerCase(),sortableDueDate:o,assignmentGroupPosition:t,gradingPeriodId:n}}var H=n(50324)
277var V=n(46624)
278var X=n(38104)
279const J=(0,m.useScope)("enhanced_individual_gradebook")
280function ee(e){let{assignment:t,gradebookOptions:n,students:i,submissions:a,isOpen:r,onClose:d}=e
281const{userId:l}=n
282const c={...t,muted:false}
283const u=(0,s.useMemo)((()=>a.reduce(((e,t)=>{e[t.userId]=t
284return e}),{})),[a])
285const m=(0,s.useMemo)((()=>i.reduce(((e,t)=>{const n=u[t.id]
286if(!n)return e
287e.push({...t,submittedAt:null===n||void 0===n?void 0:n.submittedAt,grade:null===n||void 0===n?void 0:n.grade,redoRequest:null===n||void 0===n?void 0:n.redoRequest,score:null===n||void 0===n?void 0:n.score})
288return e}),[])),[i,u])
289const g=async e=>{const n="Message failed to send"
290try{const{status:o}=await X.ZP.sendMessageStudentsWho(e.recipientsIds,e.subject,e.body,`course_${t.courseId}`,e.mediaFile,e.attachmentIds)
291if(202!==o)throw new Error(n);(0,H.au)(J.t("Your message was sent!"))()
292d()}catch(e){(0,H.IM)(J.t("There was a problem sending your message."))(new Error(J.t("%{errorMessage}",{errorMessage:n})))}}
293if(!r||!l)return null
294return(0,o.Z)(V["default"],{assignment:c,students:m,onClose:d,onSend:g,userId:l,messageAttachmentUploadFolderId:""})}var te=n(60124)
295var ne=n(85779)
296var oe=n(76092)
297var se=n(35498)
298var ie=n(34651)
299var ae=n(86333)
300var re=n(75935)
301var de=n(1958)
302var le,ce,ue
303const me=(0,m.useScope)("enhanced_individual_gradebook")
304const{Option:ge}=de.G
305function ve(e){let{disabled:t,gradingType:n,onGradeInputChange:i}=e
306const[a,r]=(0,s.useState)("")
307const[d,l]=(0,s.useState)("")
308const c=(0,s.useCallback)((()=>{const e=["percent","points","letter_grade","gpa_scale"]
309if(e.includes(n))return"text"
310return"select"}),[n]);(0,s.useEffect)((()=>{i("text"===c()?a:d)}),[a,d,i,c])
311return s.createElement(s.Fragment,null,"text"===c()?(0,o.Z)(re.o,{renderLabel:(0,o.Z)(ae.c,{},void 0,me.t("Default Grade")),display:"inline-block",width:"4rem",value:a,disabled:t,onChange:e=>r(e.target.value)}):(0,o.Z)(de.G,{value:d,defaultValue:d,renderLabel:"Uncontrolled Select",onChange:(e,t)=>
311{let{value:n}=t
312return l(n)}},void 0,le||(le=(0,o.Z)(ge,{id:"emptyOption",value:""},void 0,"---")),ce||(ce=(0,o.Z)(ge,{id:"completeOption",value:"complete"},void 0,"Complete")),ue||(ue=(0,o.Z)(ge,{id:"incompleteOption",value:"incomplete"},void 0,"Incomplete"))))}var he=n(79206)
313var pe=n(15450)
314async function be(e){const{json:t,response:n,link:o}=await(0,pe.Z)(e)
315return{data:t,status:n.status,link:o}}const fe=()=>{const[e,t]=(0,s.useState)(y.NOT_STARTED)
316const[n,o]=(0,s.useState)("")
317const[i,a]=(0,s.useState)([])
318const r=(0,s.useCallback)((async(e,n,s)=>{t(y.PENDING)
319a([])
320o("")
321try{const{status:i,data:r}=await be({path:`${e}/gradebook/update_submission`,body:s,method:"POST"})
322if(201!==i)throw new Error
323a(r.map((e=>{let{submission:t}=e
324return U(t)})))
325o(n)
326t(y.COMPLETED)}catch(e){t(y.FAILED)}}),[])
327return{defaultGradeStatus:e,savedGrade:n,setGrades:r,updatedSubmissions:i}}
328const{Header:_e,Body:Ce}=te.u_
329const Se=(0,m.useScope)("enhanced_individual_gradebook")
330function Ze(e){let{assignment:t,gradebookOptions:n,modalOpen:i,submissions:a,handleClose:r,handleSetGrades:d}=e
331const{contextUrl:l}=n
332const[c,u]=(0,s.useState)("")
333const[m,g]=(0,s.useState)(false)
334const{defaultGradeStatus:h,savedGrade:p,setGrades:f,updatedSubmissions:_}=fe()
335const C=e=>null!==e&&"MI"===e.toUpperCase()
336const S=(0,s.useCallback)((e=>C(p)?Se.t({one:"1 student marked as missing",other:"%{count} students marked as missing"},{count:e}):Se.t({one:"1 student score updated",other:"%{count} student scores updated"},{count:e})),[p]);(0,s.useEffect)((()=>{switch(h){case y.FAILED:(0,H.IM)(Se.t("Failed to set default grade"))(new Error)
337break
338case y.COMPLETED:(0,H.au)(S(_.length))()
339d(_)}}),[h,d,S,_])
340const Z=async()=>{if(!l)return
341if((0,he.o_)(c)){(0,H.IM)(Se.t("Default grade cannot be set to %{ex}",{ex:"EX"}))(new Error)
342return}const e=C(c)?{late_policy_status:"missing"}:{grade:c}
343const t={submissions:{},dont_overwrite_grades:!m}
344a.forEach((n=>{t.submissions[`submission_${n.userId}`]={assignment_id:n.assignmentId,user_id:n.userId,set_by_default_grade:true,...e}}))
345await f(l,c,t)}
346return(0,o.Z)(te.u_,{open:i,onDismiss:()=>{},size:"small",label:"Set Default Grade Modal",shouldCloseOnDocumentClick:false,theme:{mediumMaxWidth:"40em"}},void 0,(0,o.Z)(_e,{},void 0,(0,o.Z)(ne.P,{placement:"end",offset:"small",onClick:()=>r(),screenReaderLabel:"Close Submission Detail"}),(0,o.Z)(se.X,{level:"h3"},void 0,Se.t("Default Grade for")," ",t.name)),(0,o.Z)(Ce,{padding:"none"},void 0,(0,o.Z)(v.G,{as:"div",margin:"medium"},void 0,"percent"===t.gradingType?(0,o.Z)(ie.x,{},void 0,Se.t("Give all students the same")," ",(0,o.Z)(v.G,{as:"b"},void 0,Se.t("percent"))," ",Se.t("grade for")," ",(0,o.Z)(v.G,{as:"i"},void 0,t.name)," ",Se.t("by entering and submitting a grade value below:")):(0,o.Z)(ie.x,{},void 0,Se.t("Give all students the same grade for")," ",(0,o.Z)(v.G,{as:"i"},void 0,t.name)," ",Se.t("by entering and submitting a grade value below:"))),(0,o.Z)(v.G,{as:"div",margin:"small medium"},void 0,(0,o.Z)(ve,{disabled:h===y.PENDING,gradingType:t.gradingType,onGradeInputChange:u})),(0,o.Z)(v.G,{as:"div",margin:"small medium"},void 0,(0,o.Z)(oe.XZ,{label:Se.t("Overwrite already-entered grades"),checked:m,disabled:h===y.PENDING,onChange:e=>g(e.target.checked)}))),(0,o.Z)(te.u_.Footer,{},void 0,(0,o.Z)(b.z,{onClick:Z,type:"submit",disabled:h===y.PENDING||!c},void 0,Se.t("Set Default Grade"))))}var ye=n(6507)
347var Ge=n.n(ye)
348async function ke(){return(await Promise.all([n.e(32842),n.e(89014),n.e(89448)]).then(n.bind(n,47320))).default}const Ne=(0,m.useScope)("enhanced_individual_gradebook")
349function we(e){let{assignment:t,contextUrl:n,submissions:s,handleGradeChange:i}=e
350const a=s.reduce(((e,t)=>{const{userId:n,assignmentId:o}=t
351e[n]={[`assignment_${o}`]:t}
352return e}),{})
353const r={id:t.id,points_possible:t.pointsPossible,grading_type:t.gradingType,name:t.name}
354if(!n)return null
355const d=async()=>{const e=await ke()
356const t={assignment:r,students:a,context_url:n}
357const o=new e(t)
358o.show((()=>{}))}
359Ge().subscribe("submissions_updated",(e=>{const t=e.map((e=>U(e)))
360i(t)}))
361return(0,o.Z)(b.z,{color:"secondary",onClick:d},void 0,Ne.t("Curve Grades"))}var xe=n(1413)
362var Oe=n(15671)
363var Ee=n(43144)
364var Ie=n(60136)
365var De=n(51630)
366var Te=n(94855)
367var Me=s.createElement("path",{d:"M1764.09785,1355.41151 L1920,1511.31366 L1556.92661,1874.38704 L363.073389,1874.38704 L0,1511.31366 L155.902148,1355.41151 L454.365453,1653.87481 L1465.63455,1653.87481 L1764.09785,1355.41151 Z M1070.3333,-7.10542736e-15 L1070.3333,949.966693 L1320.83519,699.354542 L1476.73734,855.25669 L957.761801,1374.23223 L438.786264,855.25669 L594.688412,699.354542 L849.710807,954.376938 L849.710807,-7.10542736e-15 L1070.3333,-7.10542736e-15 Z",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
368var Ae=function(e){(0,Ie.Z)(n,e)
369var t=(0,De.Z)(n)
370function n(){(0,Oe.Z)(this,n)
371return t.apply(this,arguments)}(0,Ee.Z)(n,[{key:"render",value:function(){return s.createElement(Te.q,Object.assign({},this.props,{name:"IconDownload",viewBox:"0 0 1920 1920"}),Me)}}])
372n.displayName="IconDownloadSolid"
373return n}(s.Component)
374Ae.glyphName="download"
375Ae.variant="Solid"
376Ae.propTypes=(0,xe.Z)({},Te.q.propTypes)
377var Pe=n(77197)
378n(38593)
379n(60314)
380n(72877)
381const Le=(0,m.useScope)("submissions")
382const Be=3
383function Ke(e,t){let n=0
384let o=false
385const s=ENV.SUBMISSION_DOWNLOAD_DIALOG_TITLE||Le.t("Download Assignment Submissions")
386Ge()("#download_submissions_dialog").dialog({title:s,close(){o=true}}).on("dialogclose",t)
387Ge()("#download_submissions_dialog .progress").progressbar({value:0})
388const i=function(){if(o||0===Ge()("#download_submissions_dialog:visible").length)return
389Ge()("#download_submissions_dialog .status_loader").css("visibility","visible")
390let t=null
391Ge().ajaxJSON(e,"GET",{},(n=>{if(n&&n.attachment){const s=n.attachment
392if("zipped"===s.workflow_state){Ge()("#download_submissions_dialog .progress").progressbar("value",100)
393const t=Le.t("#submissions.finished_redirecting","Finished!  Redirecting to File...")
394const n=Le.t("Click here to download %{size_of_file}",{size_of_file:s.readable_size})
395const o=`<a href="${(0,Pe.ZP)(e)}"><b>${(0,Pe.ZP)(n)}</b></a>`
396Ge()("#download_submissions_dialog .status").html(`${(0,Pe.ZP)(t)}<br>${Ge().raw(o)}`)
397Ge()("#download_submissions_dialog .status_loader").css("visibility","hidden")
398window.location.href=e
399return}if("errored"===s.workflow_state){Ge()("#download_submissions_dialog .progress").progressbar("value",100)
400Ge()("#download_submissions_dialog .status").text(Le.t("No submissions to zip. Please try again after student submissions."))
401o=true}else{let n=parseInt(s.file_state,10)
402Number.isNaN(Number(n))&&(n=0)
403n+=5
404Ge()("#download_submissions_dialog .progress").progressbar("value",n)
405let o=null
406o=n>=95?Le.t("#submissions.creating_zip","Creating zip file..."):Le.t("#submissions.gathering_files_progress","Gathering Files (%{progress})...",{progress:Le.toPercentage(n)})
407Ge()("#download_submissions_dialog .status").text(o);(n<=5||n===t)&&Ge().ajaxJSON(`${e}&compile=1`,"GET",{},(()=>{}),(()=>{}))
408t=n}}Ge()("#download_submissions_dialog .status_loader").css("visibility","hidden")
409setTimeout(i,3e3)}),(()=>{n+=1
410if(n>Be){Ge()("#download_submissions_dialog .progress").progressbar("value",100)
411Ge()("#download_submissions_dialog .status").text(Le.t("Something went wrong downloading submissions. Please try again later."))
412o=true}Ge()("#download_submissions_dialog .status_loader").css("visibility","hidden")
413setTimeout(i,1e3)}))}
414i()}var Ue,Fe
415const Re=(0,m.useScope)("enhanced_individual_gradebook")
416function ze(e){let{downloadSubmissionsUrl:t}=e
417const n=()=>{Ke(t,(()=>{}))}
418return s.createElement(s.Fragment,null,(0,o.Z)(b.z,{color:"secondary",onClick:n},void 0,Re.t("Download all submissions")),(0,o.Z)("div",{id:"download_submissions_dialog",style:{display:"none"}},void 0,Ue||(Ue=(0,o.Z)(Ae,{})),(0,o.Z)(v.G,{as:"span",margin:"0 0 0 xx-small"},void 0,(0,o.Z)(ie.x,{weight:"bold"},void 0,Re.t("Your student submissions are being gathered")," "),Re.t("and compressed into a zip file. This may take some time, depending on the size and number of submission files.")),Fe||(Fe=(0,o.Z)(v.G,{as:"div",className:"progress",margin:"small"})),(0,o.Z)(v.G,{as:"div",className:"status_box",textAlign:"center"},void 0,Re.t("Loading"),(0,o.Z)(v.G,{as:"span",margin:"0 0 0 xx-small",className:"status"},void 0,Re.t("Gathering Files...")))))}var We,Qe,qe
419const $e=(0,m.useScope)("enhanced_individual_gradebook")
420function je(e){let{assignment:t,assignmentGroupInvalid:n,gradebookOptions:i,students:a=[],submissions:r=[],handleSetGrades:d}=e
421const{gradedSubmissions:l,scores:c}
421=(0,s.useMemo)((()=>({gradedSubmissions:r.filter((e=>null!==e.score&&void 0!==e.score)),scores:r.map((e=>e.score??0))})),[r])
422if(!t)return(0,o.Z)(v.G,{as:"div","data-testid":"assignment-information-empty"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,$e.t("Assignment Information"))),(0,o.Z)(v.G,{as:"div",className:"span8 pad-box top-only"},void 0,(0,o.Z)(v.G,{as:"p",className:"submission_selection"},void 0,$e.t("Select an assignment to view additional information here.")))))
423const{downloadAssignmentSubmissionsUrl:u,contextUrl:m,groupWeightingScheme:g}=i
424const h=(u??"").replace(":assignment",t.id)
425const{hasSubmittedSubmissions:b,submissionTypes:C,htmlUrl:S}=t
426const Z=()=>{const e=["online_upload","online_text_entry","online_url"]
427const t=p().intersection(C,e)
428return b&&p().some(t)}
429const y=()=>`${m}/gradebook/speed_grader?assignment_id=${t.id}`
430const G=()=>(n??false)&&"percent"===g
431return(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,We||(We=(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,"Assignment Information"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)(v.G,{as:"h3",className:"assignment_selection","data-testid":"assignment-information-name"},void 0,(0,o.Z)(_.r,{href:S,isWithinText:false},void 0,t.name)),t.omitFromFinalGrade?s.createElement(s.Fragment,null,(0,o.Z)("i",{className:"icon-warning"},void 0,(0,o.Z)(v.G,{as:"span",className:"screenreader-only"},void 0,$e.t("Warning")))," ",$e.t("This assignment does not count toward the final grade.")):G()?(0,o.Z)(v.G,{as:"span",className:"text-error"},void 0,(0,o.Z)(_.r,{href:S,isWithinText:false,renderIcon:Qe||(Qe=(0,o.Z)(f.v,{size:"x-small"}))},void 0,qe||(qe=(0,o.Z)(ae.c,{},void 0,"Warning")),"Assignments in this group have no points possible and cannot be included in grade calculation.")):null,(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(_.r,{href:y(),isWithinText:false},void 0,$e.t("See this assignment in speedgrader"))),Z()&&(0,o.Z)(v.G,{as:"div",margin:"small 0 0 0"},void 0,(0,o.Z)(ze,{downloadSubmissionsUrl:h})),(0,o.Z)(v.G,{as:"div",className:"pad-box no-sides"},void 0,(0,o.Z)(v.G,{as:"p"},void 0,(0,o.Z)(v.G,{as:"strong"},void 0,$e.t("Submission types:")," ",t.submissionTypes)),(0,o.Z)(v.G,{as:"p"},void 0,(0,o.Z)(v.G,{as:"strong"},void 0,$e.t("Graded submissions:")," ",l.length))),(0,o.Z)(Ye,{assignment:t,scores:c}),(0,o.Z)(He,{assignment:t,submissions:r,students:a,gradebookOptions:i,handleSetGrades:d}))))}function Ye(e){let{assignment:t,scores:n}=e
432const{average:i,max:a,min:r}=(0,s.useMemo)((()=>P(t,n)),[t,n])
433return(0,o.Z)(v.G,{as:"div",className:"pad-box bottom-only ic-Table-responsive-x-scroll"},void 0,(0,o.Z)("table",{className:"ic-Table"},void 0,(0,o.Z)("thead",{},void 0,(0,o.Z)("tr",{},void 0,(0,o.Z)("th",{},void 0,$e.t("Points possible")),(0,o.Z)("th",{},void 0,$e.t("Average Score")),(0,o.Z)("th",{},void 0,$e.t("High Score")),(0,o.Z)("th",{},void 0,$e.t("Low Score")))),(0,o.Z)("tbody",{},void 0,(0,o.Z)("tr",{},void 0,(0,o.Z)("td",{},void 0,t.pointsPossible?t.pointsPossible:$e.t("No points possible")),(0,o.Z)("td",{},void 0,i),(0,o.Z)("td",{},void 0,a),(0,o.Z)("td",{},void 0,r)))))}function He(e){let{assignment:t,students:n,submissions:i,gradebookOptions:a,handleSetGrades:r}=e
434const[d,l]=(0,s.useState)(false)
435const[c,u]=(0,s.useState)(false)
436const m=(0,s.useCallback)((e=>{u(false)
437e.length&&r(e)}),[r])
438return s.createElement(s.Fragment,null,!a.customOptions.hideStudentNames&&(0,o.Z)(v.G,{as:"div",className:"pad-box no-sides"},void 0,(0,o.Z)(b.z,{color:"secondary",onClick:()=>l(true)},void 0,$e.t("Message students who...")),(0,o.Z)(ee,{assignment:t,gradebookOptions:a,students:n,submissions:i,isOpen:d,onClose:()=>l(false)})),(0,o.Z)(v.G,{as:"div",className:"pad-box no-sides"},void 0,s.createElement(s.Fragment,null,(0,o.Z)(b.z,{color:"secondary",onClick:()=>u(true)},void 0,$e.t("Set default grade")),(0,o.Z)(Ze,{assignment:t,gradebookOptions:a,submissions:i,modalOpen:c,handleClose:()=>u(false),handleSetGrades:m}))),(0,o.Z)(v.G,{as:"div",className:"pad-box no-sides"},void 0,t.pointsPossible?(0,o.Z)(we,{assignment:t,submissions:i,handleGradeChange:m,contextUrl:a.contextUrl}):null))}var Ve=n(31230)
439const Xe=Ve.ZP`
440  query GradebookQuery($courseId: ID!) {
441    course(id: $courseId) {
442      enrollmentsConnection(
443        filter: {
444          states: [active, invited, completed]
445          types: [StudentEnrollment, StudentViewEnrollment]
446        }
447      ) {
448        nodes {
449          user {
450            id: _id
451            name
452            sortableName
453          }
454          courseSectionId
455          state
456        }
457      }
458      sectionsConnection {
459        nodes {
460          id: _id
461          name
462        }
463      }
464      submissionsConnection(
465        filter: {states: [graded, pending_review, submitted, ungraded, unsubmitted]}
466      ) {
467        nodes {
468          grade
469          id: _id
470          score
471          assignmentId
472          redoRequest
473          submittedAt
474          userId
475          state
476          gradingPeriodId
477        }
478      }
479      assignmentGroupsConnection {
480        nodes {
481          id: _id
482          name
483          groupWeight
484          rules {
485            dropHighest
486            dropLowest
487          }
488          state
489          position
490          assignmentsConnection(filter: {gradingPeriodId: null}) {
491            nodes {
492              anonymizeStudents
493              assignmentGroupId
494              gradingType
495              id: _id
496              name
497              omitFromFinalGrade
498              pointsPossible
499              submissionTypes
500              dueAt
501              groupCategoryId
502              gradeGroupStudentsIndividually
503              allowedAttempts
504              anonymousGrading
505              courseId
506              gradesPublished
507              htmlUrl
508              moderatedGrading: moderatedGradingEnabled
509              postManually
510              published
511              hasSubmittedSubmissions
512            }
513          }
514        }
515      }
516    }
517  }
518`
519const Je=Ve.ZP`
520  query GradebookStudentQuery($courseId: ID!, $userIds: [ID!]) {
521    course(id: $courseId) {
522      usersConnection(
523        filter: {
524          enrollmentTypes: [StudentEnrollment, StudentViewEnrollment]
525          enrollmentStates: [active, invited, completed]
526          userIds: $userIds
527        }
528      ) {
529        nodes {
530          enrollments(courseId: $courseId) {
531            id: _id
532            grades {
533              unpostedCurrentGrade
534              unpostedCurrentScore
535              unpostedFinalGrade
536              unpostedFinalScore
537            }
538            section {
539              id: _id
540              name
541            }
542          }
543          id: _id
544          loginId
545          name
546        }
547      }
548      submissionsConnection(
549        studentIds: $userIds
550        filter: {states: [graded, pending_review, submitted, ungraded, unsubmitted]}
551      ) {
552        nodes {
553          grade
554          id: _id
555          score
556          enteredScore
557          assignmentId
558          submissionType
559          submittedAt
560          state
561          proxySubmitter
562          excused
563          late
564          latePolicyStatus
565          missing
566          userId
567          cachedDueDate
568          gradingPeriodId
569        }
570      }
571    }
572  }
573`
574const et=Ve.ZP`
575  query GradebookSubmissionCommentsQuery($courseId: ID!, $submissionId: ID!) {
576    submission(id: $submissionId) {
577      commentsConnection {
578        nodes {
579          id: _id
580          comment
581          mediaObject {
582            id: _id
583            mediaDownloadUrl
584          }
585          attachments {
586            id: _id
587            displayName
588            mimeClass
589            url
590          }
591          author {
592            name
593            id: _id
594            avatarUrl
595            htmlUrl(courseId: $courseId)
596          }
597          updatedAt
598        }
599      }
600    }
601  }
602`
603const tt=(e,t)=>{const[n,o]=(0,s.useState)()
604const[i,a]=(0,s.useState)()
605const{data:r,error:d,loading:l}=(0,u.aM)(Je,{variables:{courseId:e,userIds:t},fetchPolicy:"cache-and-network",skip:!t});(0,s.useEffect)((()=>{if(!t){o(void 0)
606a(void 0)}}),[t]);(0,s.useEffect)((()=>{if(null!==r&&void 0!==r&&r.course){o(r.course.usersConnection.nodes[0])
607a(r.course.submissionsConnection.nodes)}}),[r,d])
608const c=(0,s.useCallback)((e=>{a((t=>{if(!t)return
609const n=t.findIndex((t=>t.id===e.id))
610n>-1&&(t[n]={...t[n],...e})
611return[...t]}))}),[a])
612return{currentStudent:n,studentSubmissions:i,loadingStudent:l,updateSubmissionDetails:c}}
613const nt=(0,m.useScope)("enhanced_individual_gradebook_content_selection")
614const ot=nt.t("No Student Selected")
615const st=nt.t("No Assignment Selected")
616const it={id:"-1",name:ot}
617const at={id:"-1",name:st}
618const rt=["active","invited"]
619const dt=e=>{let{students:t,selectedSection:n,showConcludedEnrollments:o}=e
620const[i,a]=(0,s.useState)();(0,s.useEffect)((()=>{if(!t)return
621const e=[...rt,...o?["completed"]:[]]
622const s=t.filter((t=>e.includes(t.state)&&(!n||t.sections.includes(n))))
623const i=[it,...s.map((e=>({id:e.id,name:e.sortableName,data:e})))]
624a(i)}),[t,n,a,o])
625return{studentDropdownOptions:i}}
626const lt=e=>{let{assignments:t,sortOrder:n,selectedStudentId:o,studentSubmissions:i,selectedGradingPeriodId:a}=e
627const[r,d]=(0,s.useState)();(0,s.useEffect)((()=>{if(!t)return
628const e=M(t,n)
629let s=o&&i?A(e,i):e
630a&&(s=s.filter((e=>e.gradingPeriodId===a)))
631const r=[at,...s.map((e=>({id:e.id,name:e.name,data:e})))]
632d(r)}),[t,n,o,i,a,d])
633return{assignmentDropdownOptions:r}}
634var ct
635const ut=(0,m.useScope)("enhanced_individual_gradebook")
636function mt(e){var t,n
637let{courseId:i,students:a,assignments:r,selectedAssignmentId:d,selectedStudentId:l,gradebookOptions:u,onAssignmentChange:m,onStudentChange:g}=e
638const[h,p]=(0,s.useState)(0)
639const[b,f]=(0,s.useState)(0)
640const{studentSubmissions:_}=tt(i,l)
641const{sortOrder:C,selectedGradingPeriodId:S,selectedSection:Z,customOptions:{showConcludedEnrollments:y}}=u
642const{studentDropdownOptions:G}=dt({students:a,selectedSection:Z,showConcludedEnrollments:y})
643const{assignmentDropdownOptions:k}=lt({assignments:r,sortOrder:C,studentSubmissions:_,selectedStudentId:l,selectedGradingPeriodId:S});(0,s.useEffect)((()=>{if(!G)return
644if(l){const e=G.findIndex((e=>e.id===l))
645if(-1!==e)p(e)
646else{p(0)
647g(void 0)}}}),[l,G,p,g]);(0,s.useEffect)((()=>{if(!k)return
648if(d){const e=k.findIndex((e=>e.id===d))
649if(e>=0)f(e)
650else{f(0)
651m(void 0)}}}),[k,d,m,f])
652if(!G||!k)return ct||(ct=(0,o.Z)(c.Z,{}))
653const N=(e,t)=>{var n
654const o=(e?e.target.selectedIndex:t)??0
655p(o)
656const s=null===(n=G[o])||void 0===n?void 0:n.data
657g(null===s||void 0===s?void 0:s.id)}
658const w=(e,t)=>{var n
659const o=(e?e.target.selectedIndex:t)??0
660f(o)
661const s=null===(n=k[o])||void 0===n?void 0:n.data
662m(null===s||void 0===s?void 0:s.id)}
663const{hideStudentNames:x}=u.customOptions
664return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span12"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,ut.t("Content Selection")))),(0,o.Z)(v.G,{as:"div",className:"row-fluid pad-box bottom-only","data-testid":"content-selection-student"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4 text-right-responsive"},void 0,(0,o.Z)("label",{htmlFor:"student_select",style:{textAlign:"right",display:"block"}},void 0,ut.t("Select a student"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)("select",{className:"student_select",onChange:N,value:null===(t=G[h])||void 0===t?void 0:t.id,"data-testid":"content-selection-student-select"},void 0,G.map((e=>(0,o.Z)("option",{value:e.id},e.id,e.data?T(e.data,x):e.name)))),(0,o.Z)(v.G,{as:"div",className:"row-fluid pad-box bottom-only student_navigation"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("button",{type:"button",className:"btn btn-block next_object",disabled:h<=1,onClick:()=>N(void 0,h-1)},void 0,ut.t("Previous Student"))),(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("button",{type:"button",className:"btn btn-block next_object",disabled:h>=G.length-1,onClick:()=>N(void 0,h+1)},void 0,ut.t("Next Student")))))),(0,o.Z)(v.G,{as:"div",className:"row-fluid pad-box bottom-only","data-testid":"content-selection-assignment"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4 text-right-responsive"},void 0,(0,o.Z)("label",{htmlFor:"assignment_select",style:{textAlign:"right",display:"block"}},void 0,ut.t("Select an assignment"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)("select",{className:"assignment_select",onChange:w,value:null===(n=k[b])||void 0===n?void 0:n.id,"data-testid":"content-selection-assignment-select"},void 0,k.map((e=>(0,o.Z)("option",{value:e.id},e.id,e.name)))),(0,o.Z)(v.G,{as:"div",className:"row-fluid pad-box bottom-only assignment_navigation"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("button",{type:"button",className:"btn btn-block next_object",disabled:b<=1,onClick:()=>w(void 0,b-1)},void 0,ut.t("Previous Assignment"))),(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("button",{type:"button",className:"btn btn-block next_object",disabled:b>=k.length-1,onClick:()=>w(void 0,b+1)},void 0,ut.t("Next Assignment")))))))}var gt=n(42931)
665const vt=(0,m.useScope)("enhanced_individual_gradebook_submit_score")
666const ht=()=>{const[e,t]=(0,s.useState)(y.NOT_STARTED)
667const[n,o]=(0,s.useState)(new Error(""))
668const[i,a]=(0,s.useState)(null)
669const r=async(e,n)=>{t(y.PENDING)
670if(!n){o(new Error("Error exporting gradebook, export URL not found"))
671t(y.FAILED)
672return}if(!e){o(new Error("Error exporting gradebook, user ID not found"))
673t(y.FAILED)
674return}try{const s=(await(0,pe.Z)({path:n,method:"POST"})).json
675const i=window.setInterval((async()=>{const n=(await(0,pe.Z)({path:`/api/v1/progress/${s.progress_id}`,method:"GET"})).json
676if("running"===n.workflow_state||"queued"===n.workflow_state)return
677if("completed"===n.workflow_state){const n=(await(0,pe.Z)({path:`/api/v1/users/${e}/files/${s.attachment_id}`,method:"GET"})).json
678t(y.COMPLETED)
679a(n)}if("failed"===n.workflow_state){clearInterval(i)
680const e=n.message
681o(new Error(e?vt.t("%{message}",{message:e}):vt.t("There was an error exporting the gradebook")))
682t(y.FAILED)}clearInterval(i)}),2e3)}catch(e){o(e)
683t(y.FAILED)}}
684return{exportGradebook:r,attachmentStatus:e,attachmentError:n,attachment:i}}
685const pt=(0,m.useScope)("enhanced_individual_gradebook")
686function bt(e){let{lastGeneratedCsvAttachmentUrl:t,gradebookCsvProgress:n,userId:i,exportGradebookCsvUrl:a}=e
687const[r,d]=(0,s.useState)(t)
688const[l,c]=(0,s.useState)(null===n||void 0===n?void 0:n.progress.updated_at)
689const u=(0,s.useRef)(null)
690const{exportGradebook:m,attachmentStatus:g,attachmentError:h,attachment:p}=ht();(0,s.useEffect)((()=>{g===y.FAILED&&(0,H.IM)("Failed to export gradebook")(h)
691if(g===y.COMPLETED&&null!==u&&void 0!==u&&u.current&&null!==p&&void 0!==p&&p.url){d(p.url)
692c(p.updated_at)}}),[g,h,p]);(0,s.useEffect)((()=>{if(r&&g===y.COMPLETED){var e
693null===(e=u.current)||void 0===e||e.click()}}),[r,g])
694const f=async()=>{i&&await m(i,a)}
695const C=e=>{const t=G.Z.formatDatetimeForDisplay(e)
696return pt.t("Download Scores Generated on %{date}",{date:t})}
697return(0,o.Z)(v.G,{as:"div",className:"pad-box bottom-only"},void 0,(0,o.Z)(b.z,{"data-testid":"gradebook-export-button",color:"secondary",renderIcon:gt.O,id:"gradebook-export",interaction:g===y.PENDING?"disabled":"enabled",onClick:f},void 0,pt.t("Download Current Scores (.csv)")),g!==y.PENDING&&r&&l&&n&&(0,o.Z)(_.r,{elementRef:e=>u.current=e,href:r,isWithinText:false,margin:"0 xx-small","data-testid":"gradebook-export-link"},void 0,C(l)))}var ft=n(9)
698var _t=n(54577)
699var Ct=n(55688)
700const St=(0,m.useScope)("enhanced_individual_gradebook")
701function Zt(e){let{saveViewUngradedAsZeroToServer:t,contextId:n,handleCheckboxChange:s,includeUngradedAssignments:i}=e
702const a=e=>{const o=e.target.checked
703s("includeUngradedAssignments",o)
704g.Z.contextSet("include_ungraded_assignments",o)
705if(!t)return;(0,pe.Z)({method:"PUT",path:`/api/v1/courses/${n}/gradebook_settings`,body:{gradebook_settings:{view_ungraded_as_zero:o?"true":"false"}}})}
706return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"medium",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{"data-testid":"include-ungraded-assignments-checkbox",size:"small",label:St.t("View Ungraded as 0"),checked:i,onChange:a})))}const yt=(0,m.useScope)("enhanced_individual_gradebook")
707function Gt(e){let{handleCheckboxChange:t,hideStudentNames:n}=e
708const s=e=>{const n=e.target.checked
709g.Z.contextSet("hide_student_names",n)
710t("hideStudentNames",n)}
711return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"medium",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{"data-testid":"hide-student-names-checkbox",size:"small",label:yt.t("Hide Student Names"),checked:n,onChange:s})))}const kt=(0,m.useScope)("enhanced_individual_gradebook")
712function Nt(e){let{settingsUpdateUrl:t,handleCheckboxChange:n,showConcludedEnrollments:s}=e
713const i=e=>{const o=e.target.checked;(0,pe.Z)({method:"PUT",path:t,body:{gradebook_settings:{show_concluded_enrollments:o?"true":"false"}}})
714n("showConcludedEnrollments",o)}
715return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"medium",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{size:"small",label:kt.t("Show Concluded Enrollments"),checked:s,onChange:i,"data-testid":"show-concluded-enrollments-checkbox"})))}const wt=(0,m.useScope)("enhanced_individual_gradebook")
716function xt(e){let{teacherNotes:t,customColumns:n,customColumnsUrl:s,customColumnUrl:i,reorderCustomColumnsUrl:a,showNotesColumn:r,handleCheckboxChange:d,onTeacherNotesCreation:l}=e
717const c=async e=>{if(!i||!s)return
718const o=e.target.checked
719if(t)be({method:"PUT",body:{column:{hidden:!o}},path:i.replace(":id",null===t||void 0===t?void 0:t.id)})
720else{const{data:e}=await be({method:"POST",body:{column:{title:wt.t("Notes"),position:1,teacher_notes:true,hidden:!o}},path:s})
721l(e)}d("showNotesColumn",o)
722if(!o||!a||!n)return
723be({method:"POST",path:a,body:{order:n.map((e=>Number(e.id)))}})}
724return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"medium",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{"data-testid":"show-notes-column-checkbox",size:"small",label:wt.t("Show Notes in Student Info"),checked:r,onChange:c})))}const Ot=(0,m.useScope)("enhanced_individual_gradebook")
725function Et(e){let{showTotalGradeAsPoints:t,settingUpdateUrl:n,handleCheckboxChange:s}=e
726const i=e=>{const t=e.target.checked;(0,pe.Z)({method:"PUT",path:n,body:{show_total_grade_as_points:t}})
727s("showTotalGradeAsPoints",t)}
728return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"large",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{size:"small",label:Ot.t("Show Totals as Points on Student Grade Page"),checked:t,onChange:i,"data-testid":"show-total-grade-as-points-checkbox"})))}const It=(0,m.useScope)("enhanced_individual_gradebook")
729function Dt(e){let{allowFinalGradeOverride:t,contextId:n,handleCheckboxChange:s}=e
730const i=e=>{const t=e.target.checked
731s("allowFinalGradeOverride",t)
732be({method:"PUT",path:`/api/v1/courses/${n}/settings`,body:{allow_final_grade_override:t}})}
733return(0,o.Z)(_t.SD,{theme:{[Ct.h.theme]:{checkedBackground:"#0375ff",borderColor:"#777777",labelFontSizeSmall:"1rem"},[v.G.theme]:{paddingMedium:"16px"}}},void 0,(0,o.Z)(v.G,{as:"div",className:"checkbox",margin:"x-small 0",borderRadius:"medium",background:"primary",padding:"medium",theme:{backgroundPrimary:"#eee"}},void 0,(0,o.Z)(oe.XZ,{size:"small",label:It.t("Allow Final Grade Override"),checked:t,onChange:i,"data-testid":"allow-final-grade-override-checkbox"})))}const Tt=(0,m.useScope)("enhanced_individual_gradebook")
734const Mt=[{value:Z.AssignmentGroup,text:Tt.t("By Assignment Group and Position")},{value:Z.Alphabetical,text:Tt.t("Alphabetically")},{value:Z.DueDate,text:Tt.t("By Due Date")}]
735function At(e){let{sections:t,customColumns:n,gradebookOptions:i,onGradingPeriodChange:a,onSortChange:r,onSectionChange:d,handleCheckboxChange:l,onTeacherNotesCreation:c}=e
736const u=e=>{const t=e.target.value
737r(t)}
738const m=e=>{const t=e.target.selectedIndex
739const n=0!==t?e.target.value:void 0
740d(n)}
741const g=e=>{const t=e.target.selectedIndex
742const n=0!==t?e.target.value:void 0
743a(n)}
744const{gradingPeriodSet:h,sortOrder:p,selectedGradingPeriodId:f}=i
745return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span12"},void 0,(0,o.Z)("h2",{},void 0,Tt.t("Global Settings")))),(0,o.Z)(v.G,{as:"div",className:"row-fluid","data-testid":"section-select"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("label",{htmlFor:"section_select",style:{textAlign:"right",display:"block"}},void 0,Tt.t("Select a section"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)("select",{id:"section_select",className:"section_select",onChange:m},void 0,(0,o.Z)("option",{value:"-1"},void 0,Tt.t("All Sections")),t.map((e=>(0,o.Z)("option",{value:e.id},e.id,e.name)))))),h&&(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("label",{htmlFor:"section_select",style:{textAlign:"right",display:"block"}},void 0,Tt.t("Select a Grading Period"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)("select",{id:"grading_period_select","data-testid":"grading-period-select",className:"section_select",onChange:g,defaultValue:f},void 0,(0,o.Z)("option",{},void 0,Tt.t("All Grading Periods")),h.grading_periods.map((e=>(0,o.Z)("option",{value:e.id},e.id,e.title)))))),(0,o.Z)("div",{className:"row-fluid",style:{paddingBottom:20}},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)("label",{htmlFor:"sort_select",style:{textAlign:"right",display:"block"}},void 0,Tt.t("Sort Assignments"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)("select",{id:"sort_select","data-testid":"sort-select",className:"section_select",defaultValue:p,onChange:u},void 0,Mt.map((e=>(0,o.Z)("option",{value:e.value},e.value,e.text)))))),(0,o.Z)(v.G,{as:"div",className:"row-fluid pad-box bottom-only"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"}),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)(Zt,{saveViewUngradedAsZeroToServer:i.saveViewUngradedAsZeroToServer,contextId:i.contextId,handleCheckboxChange:l,includeUngradedAssignments:i.customOptions.includeUngradedAssignments}),(0,o.Z)(Gt,{handleCheckboxChange:l,hideStudentNames:i.customOptions.hideStudentNames}),(0,o.Z)(Nt,{settingsUpdateUrl:i.settingsUpdateUrl,handleCheckboxChange:l,showConcludedEnrollments:i.customOptions.showConcludedEnrollments}),(0,o.Z)(xt,{teacherNotes:i.teacherNotes,customColumns:n,customColumnUrl:i.customColumnUrl,customColumnsUrl:i.customColumnsUrl,reorderCustomColumnsUrl:i.reorderCustomColumnsUrl,handleCheckboxChange:l,showNotesColumn:i.customOptions.showNotesColumn,onTeacherNotesCreation:c}),i.finalGradeOverrideEnabled&&(0,o.Z)(Dt,{contextId:i.contextId,allowFinalGradeOverride:i.customOptions.allowFinalGradeOverride,handleCheckboxChange:l}),!i.gradesAreWeighted&&(0,o.Z)(Et,{settingUpdateUrl:i.settingUpdateUrl,showTotalGradeAsPoints:i.customOptions.showTotalGradeAsPoints,handleCheckboxChange:l}))),(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"}),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)(bt,{lastGeneratedCsvAttachmentUrl:null===i||void 0===i?void 0:i.lastGeneratedCsvAttachmentUrl,gradebookCsvProgress:i.gradebookCsvProgress,userId:i.userId,exportGradebookCsvUrl:i.exportGradebookCsvUrl}),(0,o.Z)(v.G,{as:"div",className:"pad-box bottom-only"},void 0,(0,o.Z)(b.z,{"data-testid":"upload-button",href:`${i.contextUrl}/gradebook_upload/new`,color:"secondary",renderIcon:ft.V,id:"upload"},void 0,Tt.t("Upload Scores (.csv)"))),(0,o.Z)(v.G,{as:"div",className:"pad-box bottom-only"},void 0,(0,o.Z)(v.G,{as:"div"},void 0,i.publishToSisEnabled&&i.publishToSisUrl&&(0,o.Z)(_.r,{href:i.publishToSisUrl,isWithinText:false},void 0,Tt.t("Sync grades to SIS"))),(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(_.r,{href:`${i.contextUrl}/gradebook/history`,isWithinText:false,"data-testid":"gradebook-history-link"},void 0,Tt.t("View Gradebook History")))))))}var Pt=n(62779)
746var Lt=n(59403)
747var Bt=n(40291)
748const Kt=(0,m.useScope)("enhanced_individual_gradebook_submit_score")
749const Ut=()=>
749{const[e,t]=(0,s.useState)(y.NOT_STARTED)
750const[n,o]=(0,s.useState)("")
751const[i,a]=(0,s.useState)(null)
752const r=(0,s.useCallback)((async(e,n,s,i)=>{if(!i){o(Kt.t("Unable to submit score"))
753t(y.FAILED)
754return}const{gradingType:r}=e
755const d=Lt.Z.delocalizeGrade(s)
756const l="EXCUSED"===(null===s||void 0===s?void 0:s.toUpperCase())||"EX"===(null===s||void 0===s?void 0:s.toUpperCase())
757if(d===n.grade||("-"===d||""===d)&&null===n.grade||l&&n.excused){t(y.NO_CHANGE)
758return}t(y.PENDING)
759if(!l&&"points"===r||"percent"===r){const e=Bt.Z.parse(null===d||void 0===d?void 0:d.replace(/%/g,"")).toString()
760if("NaN"===e){o(Kt.t("Invalid Grade"))
761t(y.FAILED)
762return}}const c={submission:{}}
763l?c.submission.excuse=true:c.submission.posted_grade=d
764try{const{data:e,status:n}=await be({method:"PUT",path:i,body:c})
765if(200!==n)throw new Error
766a(L(e))
767t(y.COMPLETED)}catch(e){o(Kt.t("Something went wrong"))
768t(y.FAILED)}}),[])
769const d=(0,s.useCallback)((async(e,n)=>{if(!n){o(Kt.t("Unable to submit score"))
770t(y.FAILED)
771return}const s={submission:{excuse:e.toString()}}
772try{t(y.PENDING)
773const{data:e,status:o}=await be({method:"PUT",path:n,body:s})
774if(200!==o)throw new Error
775a(L(e))
776t(y.COMPLETED)}catch(e){o(Kt.t("Something went wrong"))
777t(y.FAILED)}}),[])
778return{submitScoreError:n,submitScoreStatus:e,savedSubmission:i,submitExcused:d,submit:r}}
779const Ft=(0,m.useScope)("enhanced_individual_gradebook_submit_score")
780const Rt=e=>{let{courseId:t,submissionId:n}=e
781const[o,i]=(0,s.useState)([])
782const{data:a,error:r,loading:d,refetch:l}=(0,u.aM)(et,{variables:{courseId:t,submissionId:n},fetchPolicy:"cache-and-network",skip:!n||!t});(0,s.useEffect)((()=>{null!==a&&void 0!==a&&a.submission&&i(a.submission.commentsConnection.nodes)}),[a,r])
783return{submissionComments:o,loadingComments:d,refetchComments:l}}
784const zt=()=>{const[e,t]=(0,s.useState)(y.NOT_STARTED)
785const[n,o]=(0,s.useState)("")
786const i=(0,s.useCallback)((async(e,n,s)=>{if(!s){o(Ft.t("Unable to post comment"))
787t(y.FAILED)
788return}t(y.PENDING)
789const i={comment:{text_comment:e,group_comment:n}}
790try{const{status:e}=await be({path:s,body:i,method:"PUT"})
791if(200!==e)throw new Error
792t(y.COMPLETED)}catch(e){o(Ft.t("Something went wrong"))
793t(y.FAILED)}}),[])
794return{postCommentError:n,postCommentStatus:e,submit:i}}
795var Wt=n(39625)
796var Qt=s.createElement("path",{d:"M1129.4317,113 L1129.4317,1807.14754 L903.545357,1807.14754 L451.772678,1355.37487 L451.772678,564.772678 L903.545357,113 L1129.4317,113 Z M1671.9768,361.057083 C1832.01727,521.097555 1920,733.882486 1920,960.107655 C1920,1186.33282 1832.01727,1399.00481 1671.9768,1559.04528 L1671.9768,1559.04528 L1592.12598,1479.19446 C1730.82019,1340.61319 1807.05683,1156.177 1807.05683,960.107655 C1807.05683,763.925369 1730.82019,579.602117 1592.12598,440.907904 L1592.12598,440.907904 Z M338.829509,564.772678 L338.829509,1355.37487 L169.414754,1355.37487 C75.6719236,1355.37487 0,1279.70294 0,1185.96011 L0,1185.96011 L0,734.187433 C0,640.444602 75.6719236,564.772678 169.414754,564.772678 L169.414754,564.772678 L338.829509,564.772678 Z M1432.75187,600.858021 C1528.52768,697.876204 1581.1592,825.501985 1581.1592,960.0173 C1581.1592,1094.64556 1528.52768,1222.27134 1432.75187,1319.28952 L1432.75187,1319.28952 L1352.44928,1240.11636 C1427.10471,1164.21855 1468.21603,1064.71562 1468.21603,960.0173 C1468.21603,855.431925 1427.10471,755.928993 1352.44928,680.031183 L1352.44928,680.031183 Z",fillRule:"evenodd",stroke:"none",strokeWidth:"1"})
797var qt=function(e){(0,Ie.Z)(n,e)
798var t=(0,De.Z)(n)
799function n(){(0,Oe.Z)(this,n)
800return t.apply(this,arguments)}(0,Ee.Z)(n,[{key:"render",value:function(){return s.createElement(Te.q,Object.assign({},this.props,{name:"IconAudio",viewBox:"0 0 1920 1920",bidirectional:true}),Qt)}}])
801n.displayName="IconAudioSolid"
802return n}(s.Component)
803qt.glyphName="audio"
804qt.variant="Solid"
805qt.propTypes=(0,xe.Z)({},Te.q.propTypes)
806var $t=n(7342)
807var jt=n(77545)
808var Yt=n(87611)
809var Ht=n(10837)
810var Vt=n(19684)
811var Xt=n(95732)
812var Jt=n(89010)
813var en,tn
814const nn=(0,m.useScope)("enhanced_individual_gradebook")
815const{Header:on,Body:sn}=te.u_
816const{Item:an}=Xt.kC
817function rn(e){let{assignment:t,gradebookOptions:n,student:s,submission:i,comments:a,loadingComments:r,modalOpen:d,submitScoreUrl:l,handleClose:u,onGradeChange:m,onPostComment:g}=e
818const h=()=>`${n.contextUrl}/gradebook/speed_grader?assignment_id=${t.id}`
819return(0,o.Z)(te.u_,{open:d,onDismiss:()=>{}
819,size:"medium",label:"Student Submission Detail Modal",shouldCloseOnDocumentClick:false,theme:{mediumMaxWidth:"40em"}},void 0,(0,o.Z)(on,{},void 0,(0,o.Z)(ne.P,{placement:"end",offset:"small",onClick:()=>u(),screenReaderLabel:"Close Submission Detail"}),(0,o.Z)(se.X,{level:"h4"},void 0,s.name)),(0,o.Z)(sn,{padding:"none"},void 0,(0,o.Z)(v.G,{as:"div",padding:"medium medium 0 medium"},void 0,(0,o.Z)(se.X,{level:"h3"},void 0,null===t||void 0===t?void 0:t.name)),(0,o.Z)(un,{assignment:t,submission:i,submitScoreUrl:l,onGradeChange:m}),(0,o.Z)(v.G,{as:"div",margin:"small 0",padding:"0 medium"},void 0,(0,o.Z)(_.r,{href:h(),isWithinText:false},void 0,nn.t("More details in the SpeedGrader"))),(0,o.Z)(v.G,{as:"div",margin:"small 0",padding:"0 medium"},void 0,(0,o.Z)(v.G,{as:"b"},void 0,B(i))),r&&(en||(en=(0,o.Z)(c.Z,{}))),!r&&a.length>0&&(0,o.Z)(v.G,{as:"div",margin:"small 0"},void 0,(0,o.Z)(se.X,{level:"h3",margin:"0 medium"},void 0,nn.t("Comments")),(0,o.Z)(v.G,{as:"div",margin:"small 0",maxHeight:"9rem",overflowX:"auto"},void 0,a.map(((e,t)=>(0,o.Z)(dn,{comment:e,showDivider:t<a.length-1},e.id))))),(0,o.Z)(mn,{assignment:t,submitScoreUrl:l,onPostComment:g})))}function dn(e){let{comment:t,showDivider:n}=e
820const{attachments:s,author:i,mediaObject:a}=t
821return(0,o.Z)(v.G,{as:"div",padding:"0 medium",elementRef:e=>{e&&e.scrollIntoView()}},t.id,(0,o.Z)(Xt.kC,{alignItems:"start"},void 0,(0,o.Z)(_.r,{href:i.htmlUrl,isWithinText:false},void 0,(0,o.Z)(cn,{comment:t})),(0,o.Z)(an,{shouldGrow:true,shouldShrink:true,padding:"0 0 0 small"},void 0,(0,o.Z)(se.X,{level:"h5"},void 0,(0,o.Z)(_.r,{href:i.htmlUrl,isWithinText:false},void 0,i.name)),(0,o.Z)(ie.x,{size:"small"},void 0,t.comment),a&&(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(_.r,{href:a.mediaDownloadUrl,renderIcon:qt,isWithinText:false},void 0,nn.t("click here to view"))),s.length>0&&s.map((e=>(0,o.Z)(ln,{attachment:e},e.id)))),(0,o.Z)(an,{align:"start"},void 0,(0,o.Z)(se.X,{level:"h5"},void 0,(0,o.Z)(Jt.Z,{dateTime:t.updatedAt})))),n&&(0,o.Z)("hr",{style:{margin:".6rem 0"}},"hrcomment-{comment.id}"))}function ln(e){let{attachment:t}=e
822return(0,o.Z)(v.G,{as:"div"},t.id,(0,o.Z)(_.r,{href:t.url,isWithinText:false,renderIcon:(0,Wt.hB)(t.mimeClass)},void 0,(0,o.Z)(ie.x,{size:"x-small"},void 0,t.displayName)))}function cn(e){let{comment:t}=e
823if(t.author.avatarUrl)return(0,o.Z)(Vt.q,{name:t.author.name,src:t.author.avatarUrl})
824return tn||(tn=(0,o.Z)(Vt.q,{name:"user",renderIcon:(0,o.Z)($t.Z,{}),color:"ash"}))}function un(e){let{assignment:t,submission:n,submitScoreUrl:i,onGradeChange:a}=e
825const[r,d]=(0,s.useState)("")
826const{submit:l,submitScoreError:c,submitScoreStatus:u,savedSubmission:m}=Ut();(0,s.useEffect)((()=>{a({status:u,newSubmission:m,error:c})}),[u,m,c,a]);(0,s.useEffect)((()=>{n&&d(n.excused?nn.t("EX"):n.grade??"-")}),[n])
827const g=async()=>{await l(t,n,r,i)}
828return(0,o.Z)(v.G,{as:"div",margin:"small 0",padding:"0 medium"},void 0,(0,o.Z)(Xt.kC,{},void 0,(0,o.Z)(an,{shouldGrow:true,shouldShrink:true},void 0,(0,o.Z)(ie.x,{},void 0,nn.t("Grade:")," "),(0,o.Z)(v.G,{as:"span",margin:"0 x-small 0 x-small"},void 0,(0,o.Z)(re.o,{renderLabel:(0,o.Z)(ae.c,{},void 0,nn.t("Student Grade")),display:"inline-block",width:"4rem",value:r,disabled:u===y.PENDING,onChange:e=>d(e.target.value)})),(0,o.Z)(ie.x,{},void 0,K(t,n))),(0,o.Z)(an,{align:"start"},void 0,(0,o.Z)(b.z,{disabled:u===y.PENDING,onClick:()=>g()},void 0,nn.t("Update Grade")))))}function mn(e){let{assignment:t,submitScoreUrl:n,onPostComment:i}=e
829const{groupCategoryId:a,gradeGroupStudentsIndividually:r}=t
830const[d,l]=(0,s.useState)("")
831const[c,u]=(0,s.useState)(false)
832const{postCommentError:m,postCommentStatus:g,submit:h}=zt()
833const p=async()=>{let e
834a&&(e=!r||c)
835await h(d,e,n)}
836const f=[{value:"0",label:"Send comment to this student only"},{value:"1",label:"Send comment to the whole group"}]
837const _=e=>{u("1"===e.target.value)};(0,s.useEffect)((()=>{switch(g){case y.COMPLETED:l("")
838i()
839break
840case y.FAILED:(0,H.IM)(m)(new Error("Failed to add comment"))}}),[g,m,i])
841return(0,o.Z)("div",{style:{backgroundColor:"#F2F2F2",borderTop:"1px solid #bbb"}},void 0,(0,o.Z)(v.G,{as:"div",padding:"small medium"},void 0,(0,o.Z)(Ht.K,{label:nn.t("Add a comment"),maxHeight:"4rem",value:d,onChange:e=>l(e.target.value)}),(0,o.Z)(Xt.kC,{margin:"small 0 0 0"},void 0,(0,o.Z)(an,{padding:"x-small",shouldShrink:true,shouldGrow:true},void 0,a&&(0,o.Z)("div",{},void 0,r?(0,o.Z)(jt.a,{onChange:_,defaultValue:"0",name:"groupComment",description:(0,o.Z)(ae.c,{},void 0,nn.t("Send to all of group"))},void 0,f.map((e=>(0,o.Z)(Yt.N,{value:e.value,label:e.label},e.value)))):(0,o.Z)(ie.x,{size:"small"},void 0,nn.t("All comments are sent to the whole group")))),(0,o.Z)(an,{align:"start"},void 0,(0,o.Z)(b.z,{disabled:g===y.PENDING,onClick:p},void 0,nn.t("Post Comment"))))))}var gn
842const vn=(0,m.useScope)("enhanced_individual_gradebook")
843function hn(e){let{assignment:t,courseId:n,currentStudent:i,studentSubmissions:a,gradebookOptions:r,loadingStudent:d,currentStudentHiddenName:l,onSubmissionSaved:u}=e
844const m=null===a||void 0===a?void 0:a.find((e=>e.assignmentId===(null===t||void 0===t?void 0:t.id)))
845const[g,h]=(0,s.useState)("")
846const[p,f]=(0,s.useState)(false)
847const[_,C]=(0,s.useState)(false)
848const{submit:S,submitExcused:Z,submitScoreError:G,submitScoreStatus:k,savedSubmission:N}=Ut()
849const{submissionComments:w,loadingComments:x,refetchComments:O}=Rt({courseId:n,submissionId:null===m||void 0===m?void 0:m.id});(0,s.useEffect)((()=>{if(m){f(m.excused)
850h(m.excused?vn.t("Excused"):m.grade??"-")}}),[m])
851const E=(0,s.useCallback)((e=>{const{status:t,newSubmission:n,error:o}=e
852switch(t){case y.FAILED:(0,H.IM)(o)(new Error("Failed to submit score"))
853break
854case y.COMPLETED:if(!n)return
855u(n)
856C(false);(0,H.au)(vn.t("Grade saved"))()}}),[u])
857const I=(0,s.useCallback)((()=>{C(false)
858O()}),[O]);(0,s.useEffect)((()=>{E({status:k,newSubmission:N,error:G})}),[k,N,G,E])
859if(!m||!t||!i)return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"div","data-testid":"grading-results-empty"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,vn.t("Grading"))),(0,o.Z)(v.G,{as:"div",className:"span8 pad-box top-only"},void 0,(0,o.Z)(v.G,{as:"p",className:"submission_selection"},void 0,vn.t("Select a student and an assignment to view and edit grades."))))))
860if(d)return gn||(gn=(0,o.Z)(c.Z,{}))
861const{changeGradeUrl:D,customOptions:{hideStudentNames:T}}=r
862const M=(D??"").replace(":assignment",t.id).replace(":submission",m.userId)
863const A=async e=>{const{target:{checked:t}}=e
864await Z(t,M)}
865const P=async()=>{await S(t,m,g,M)}
866return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"div","data-testid":"grading-results"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,vn.t("Grading"))),(0,o.Z)(v.G,{as:"div",className:"span8 pad-box top-only"},void 0,(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"span"},void 0,(0,o.Z)(ie.x,{size:"small"},void 0,(0,o.Z)(v.G,{as:"strong"},void 0,`${vn.t("Grade for")} ${T?l:i.name} - ${t.name}`)),(0,o.Z)(pn,{submission:m}))),(0,o.Z)(v.G,{as:"span"},void 0,(0,o.Z)(ie.x,{size:"small"},void 0,B(m))),(0,o.Z)(v.G,{as:"div",className:"grade"},void 0,(0,o.Z)(re.o,{display:"inline-block",width:"14rem",value:g,disabled:k===y.PENDING,renderLabel:(0,o.Z)(ae.c,{},void 0,vn.t("Student Grade")),onChange:e=>h(e.target.value),onBlur:()=>P()}),(0,o.Z)(v.G,{as:"span",margin:"0 0 0 small"},void 0,K(t,m))),"pass_fail"!==t.gradingType&&(0,o.Z)("div",{className:"checkbox",style:{padding:12,margin:"15px 0 0 0",background:"#eee",borderRadius:5}},void 0,(0,o.Z)("label",{className:"checkbox",htmlFor:"excuse_assignment"},void 0,(0,o.Z)("input",{type:"checkbox",id:"excuse_assignment",name:"excuse_assignment",checked:p,disabled:k===y.PENDING,onChange:A}),vn.t("Excuse This Assignment for the Selected Student"))),(0,o.Z)(v.G,{as:"div",className:"span4",margin:"medium 0 0 0",width:"14.6rem"},void 0,(0,o.Z)(b.z,{display:"block",onClick:()=>{C(true)}},void 0,vn.t("Submission Details")))))),(0,o.Z)(rn,{assignment:t,comments:w,gradebookOptions:r,student:i,submission:m,loadingComments:x,modalOpen:_,submitScoreUrl:M,handleClose:()=>C(false),onGradeChange:E,onPostComment:I}))}function pn(e){let{submission:t}=e
867let n=""
868if(t.late)n="LATE"
869else if(t.missing)n="MISSING"
870else{if("extended"!==t.latePolicyStatus)return null
871n="EXTENDED"}return(0,o.Z)(v.G,{as:"span"},void 0,(0,o.Z)(Pt.D,{margin:"small",color:"danger"},void 0,(0,o.Z)(v.G,{as:"strong",padding:"x-small"},void 0,vn.t("%{text}",{text:n}))))}var bn=n(66076)
872var fn=n(3434)
873const _n=(0,m.useScope)("enhanced_individual_gradebook")
874function Cn(e){let{currentStudentNotes:t,disabled:n,handleSubmitNotes:i}=e
875const[a,r]=(0,s.useState)(t)
876const{Row:d,Col:l}=fn.rj;(0,s.useEffect)((()=>{r(t)}),[t])
877return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"h4"},void 0,_n.t("Notes")),(0,o.Z)(fn.rj,{},void 0,(0,o.Z)(d,{},void 0,(0,o.Z)(l,{width:{small:12,medium:12,large:8,xLarge:8}},void 0,(0,o.Z)(Ht.K,{resize:"vertical",onBlur:()=>i(a),label:"",value:a,onChange:e=>r(e.target.value),disabled:n})))))}const Sn=(0,m.useScope)("enhanced_individual_gradebook_submit_score")
878const Zn=(e,t,n,o)=>{const[i,a]=(0,s.useState)(y.NOT_STARTED)
879const[r,d]=(0,s.useState)(y.NOT_STARTED)
880const[l,c]=(0,s.useState)("")
881const[u,m]=(0,s.useState)({});(0,s.useEffect)((()=>{const o=async()=>{if(!e||!t||!n||r===y.COMPLETED||r===y.PENDING)return
882d(y.PENDING)
883const o={}
884let s=n.replace(":id",e)
885while(s){var i,a
886const{data:e,link:t}=await be({method:"GET",path:s})
887e.forEach((e=>{o[e.user_id]=e.content}))
888if(!(null!==t&&void 0!==t&&null!==(i=t.next)&&void 0!==i&&i.url))break
889s=null===t||void 0===t||null===(a=t.next)||void 0===a?void 0:a.url}d(y.COMPLETED)
890m(o)}
891o()}),[t,n,e,u,r])
892const g=async(t,n)=>{if(u[n]===t)return
893if(!o||!e){c(Sn.t("Missing required parameters"))
894a(y.FAILED)
895return}a(y.PENDING)
896const{status:s}=await be({method:"PUT",path:o.replace(":id",e).replace(":user_id",n),body:{column_data:{content:t}}})
897if(200!==s){c(Sn.t("Request failed with status %{status}",{status:s}))
898a(y.FAILED)
899return}a(y.COMPLETED)
900m((e=>({...e,[n]:t})))}
901return{submitNotesError:l,submitNotesStatus:i,getNotesStatus:r,studentNotes:u,submit:g}}
902var yn=n(73128)
903const Gn=(0,m.useScope)("enhanced_individual_gradebook")
904function kn(e){let{finalGradeOverride:t,gradingScheme:n,enrollmentId:i,onSubmit:a,gradingPerio
904dId:r,pointsBasedGradingSchemesFeatureEnabled:d}=e
905const[l,c]=(0,s.useState)("")
906const[u,m]=(0,s.useState)("")
907const[g,h]=(0,s.useState)(y.NOT_STARTED);(0,s.useEffect)((()=>{var e,o,s
908const i=r?null===t||void 0===t||null===(e=t.gradingPeriodGrades)||void 0===e||null===(o=e[r])||void 0===o?void 0:o.percentage:null===t||void 0===t||null===(s=t.courseGrade)||void 0===s?void 0:s.percentage
909if(null==i){m("")
910c("")}else if(n&&n.data.length>0){const e=(0,w._o)(i,n.data)
911c(e||"")
912n.pointsBased||m(Lt.Z.formatGrade(i,{gradingType:"percent"}))}else{c(Lt.Z.formatGrade(i,{gradingType:"percent"}))
913m("")}}),[t,r,n])
914const p=e=>{c(e.target.value)}
915const b=async()=>{var e,o,s,u
916const m={pointsBasedGradingSchemesFeatureEnabled:d}
917n&&(m.gradingScheme=n)
918const g=r?null===t||void 0===t||null===(e=t.gradingPeriodGrades)||void 0===e||null===(o=e[r])||void 0===o?void 0:o.percentage:null===t||void 0===t||null===(s=t.courseGrade)||void 0===s?void 0:s.percentage
919const v=new yn.Z(m)
920const p=v.parseValue(l)
921const b=v.parseValue(null!=g?g:{})
922if(!p.valid||!v.hasGradeChanged(b,p)||null==(null===(u=p.grade)||void 0===u?void 0:u.percentage)){var f
923if(null!==(f=b.grade)&&void 0!==f&&f.schemeKey){var _
924c(null===(_=b.grade)||void 0===_?void 0:_.schemeKey)}else{var C,S
925c(null!==(C=b.grade)&&void 0!==C&&C.percentage?String(null===(S=b.grade)||void 0===S?void 0:S.percentage):"")}return}const Z={percentage:p.grade.percentage}
926h(y.PENDING)
927const G=await(0,bn.g)(i,r,Z)
928h(y.COMPLETED)
929G&&a(r?{...t,gradingPeriodGrades:{...null===t||void 0===t?void 0:t.gradingPeriodGrades,[r]:G}}:{...t,courseGrade:G})}
930return s.createElement(s.Fragment,null,(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)("label",{htmlFor:"final-grade-override-input"},void 0,(0,o.Z)("strong",{},void 0,Gn.t("Final Grade Override")))),(0,o.Z)(re.o,{display:"inline-block",renderLabel:(0,o.Z)(ae.c,{},void 0,Gn.t("Final Grade Override")),value:l,onChange:p,onBlur:b,width:"14rem",disabled:g===y.PENDING}),(0,o.Z)(v.G,{as:"span",margin:"0 0 0 xx-small"},void 0,u))}const Nn=kn
931const wn=(0,m.useScope)("enhanced_individual_gradebook")
932function xn(e){let{gradingScheme:t,name:n,possible:s,score:i,weight:a,pointsBasedGradingSchemesFeatureEnabled:r}=e
933const d=z(i,s,1)
934const l=Number.isNaN(Number(d))
935let c
936let u=false
937if(r){if(t){u=t.pointsBased
938const e=t.scalingFactor
939if(u&&s){const t=wn.n(e,{precision:1})
940const n=wn.n(W(i||0,s,e),{precision:1})
941c=`${n} / ${t}`}else c=l?"-":`${d}% (${i} / ${s})`}}else c=l?"-":`${d}% (${i} / ${s})`
942const m=l?"-":t?Q(s,i,t.data):"-"
943const g=a?wn.n(a,{percentage:true}):"-"
944return(0,o.Z)("tr",{},void 0,(0,o.Z)("th",{},void 0,n),(0,o.Z)("td",{},void 0,c),(0,o.Z)("td",{},void 0,m),(0,o.Z)("td",{},void 0,g))}
944function On(e){let{gradingPeriodId:t,gradingPeriods:n,gradingPeriodSet:s,gradingScheme:i,pointsBasedGradingSchemesFeatureEnabled:a,includeUngradedAssignments:r}=e
945const d=s.grading_periods.find((e=>{let{id:n}=e
946return n===t}))
947if(!d)return null
948const{title:l,weight:c}=d
949const{final:u,current:m}=n[t]
950const g=r?u:m
951const{score:v,possible:h}=g
952return(0,o.Z)(xn,{gradingScheme:i,pointsBasedGradingSchemesFeatureEnabled:a,name:l,possible:h,score:v,weight:c})}function En(e){let{assignmentGroupId:t,assignmentGroupMap:n,assignmentGroups:s,gradingScheme:i,pointsBasedGradingSchemesFeatureEnabled:a,includeUngradedAssignments:r}=e
953const{name:d,group_weight:l}=n[t]
954const{final:c,current:u}=s[t]??{}
955const m=r?c:u
956const{score:g,possible:v}=m||{}
957return(0,o.Z)(xn,{gradingScheme:i,pointsBasedGradingSchemesFeatureEnabled:a,name:d,possible:v,score:g,weight:l})}var In
958const Dn=(0,m.useScope)("enhanced_individual_gradebook")
959function Tn(e){var t
960let{assignmentGroupMap:n,studentNotesColumnId:i,gradebookOptions:a,student:r,submissions:d,currentStudentHiddenName:l,invalidAssignmentGroups:c}=e
961const{customOptions:{allowFinalGradeOverride:u,includeUngradedAssignments:m,hideStudentNames:g,showNotesColumn:h},customColumnsUrl:p,customColumnDataUrl:b,customColumnDatumUrl:C,contextId:S,contextUrl:Z,finalGradeOverrideEnabled:G,gradeCalcIgnoreUnpostedAnonymousEnabled:k,gradingPerio
961dSet:N,gradingStandard:w,gradingStandardScalingFactor:x,gradingStandardPointsBased:O,groupWeightingScheme:E,pointsBasedGradingSchemesFeatureEnabled:I,selectedGradingPeriodId:D}=a
962const[T,M]=(0,s.useState)({})
963const{submitNotesError:A,submitNotesStatus:P,studentNotes:L,getNotesStatus:B,submit:K}=Zn(i,p,b,C);(0,s.useEffect)((()=>{A&&P===y.FAILED&&(0,H.IM)(Dn.t("Error updating notes"))(new Error(A))}),[A,P]);(0,s.useEffect)((()=>{async function e(){if(!S)return
964const e=await(0,bn.Z)(S)
965if(!e)return
966M(e.finalGradeOverrides)}e()}),[S])
967const U=D?null===d||void 0===d?void 0:d.filter((e=>e.gradingPeriodId===D)):d
968const F=(0,s.useMemo)((()=>q({submissions:U,assignmentGroupMap:n,groupWeightingScheme:E,gradeCalcIgnoreUnpostedAnonymousEnabled:k,gradingPeriodSet:N,studentId:null===r||void 0===r?void 0:r.id})),[U,n,E,k,N,r])
969if(!r||!d||!F)return(0,o.Z)(v.G,{as:"div","data-testid":"student-information-empty"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,Dn.t("Student Information"))),(0,o.Z)(v.G,{as:"div",className:"span8 pad-box top-only"},void 0,(0,o.Z)(v.G,{as:"p",className:"submission_selection"},void 0,Dn.t("Select a student to view additional information here.")))))
970const{current:R,final:$,assignmentGroups:j,gradingPeriods:Y={}}=F
971const V=m?$:R
972const X=V?z(V.score,V.possible):null
973const J=L[r.id]??""
974const ee=!D&&(null===N||void 0===N?void 0:N.weighted)
975const te=()=>{const{possible:e,score:t}=V
976if(null===e||void 0===e)return"-"
977let n=false
978let o
979if(I){if(w){n=O
980const s=x
981if(n&&e){const n=Dn.n(s,{precision:1})
982const i=Dn.n(W(t,e,s),{precision:1})
983o=`${i} / ${n}`}else o=Number.isNaN(Number(X))?"-":`${X}%`}}else o=Number.isNaN(Number(X))?"-":`${X}%`
984const s=!!("percent"===E||!D&&null!==N&&void 0!==N&&N.weighted)
985const i=!!(!s&&V)
986const a=i?` (${V.score} / ${V.possible} ${Dn.t("points")})`:""
987const r=w?` - ${Q(e,t,w)}`:""
988return`${o}${a}${r}`}
989const ne=`${Z}/grades/${r.id}`
990const oe=Object.keys(c).length
991const se=Object.values(c)
992const ae=oe>0&&"percent"===E
993const re=()=>Dn.t("invalid_group_warning",{one:"Note: Score does not include assignments from the group %{list_of_group_names} because it has no points possible.",other:"Note: Score does not include assignments from the groups %{list_of_group_names} because they have no points possible."},{count:oe,list_of_group_names:se.join(" or ")})
994return(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span4"},void 0,(0,o.Z)(v.G,{as:"h2"},void 0,Dn.t("Student Information"))),(0,o.Z)(v.G,{as:"div",className:"span8"},void 0,(0,o.Z)(v.G,{as:"h3",className:"student_selection","data-testid":"student-information-name"},void 0,g?l:(0,o.Z)(_.r,{isWithinText:false,href:ne},void 0,r.name)),(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"strong"},void 0,Dn.t("Secondary ID:"),(0,o.Z)(v.G,{as:"span",className:"secondary_id"},void 0," ",g?(0,o.Z)(v.G,{as:"em"},void 0,Dn.t("hidden")):r.loginId))),(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"strong"},void 0,Dn.t("Sections: "),r.enrollments.map((e=>e.section.name)).join(", "))),h&&(0,o.Z)(Cn,{currentStudentNotes:J,disabled:B===y.PENDING||P===y.PENDING,handleSubmitNotes:e=>K(e,r.id)}),(0,o.Z)(v.G,{as:"h4"},void 0,Dn.t("Grades")),(0,o.Z)(v.G,{as:"div",className:"ic-Table-responsive-x-scroll"},void 0,(0,o.Z)("table",{className:"ic-Table"},void 0,(0,o.Z)("thead",{},void 0,(0,o.Z)("tr",{},void 0,(0,o.Z)("th",{scope:"col"},void 0,ee?Dn.t("Grading Period"):Dn.t("Assignment Group")),(0,o.Z)("th",{scope:"col"},void 0,Dn.t("Grade")),(0,o.Z)("th",{scope:"col"},void 0,Dn.t("Letter Grade")),(0,o.Z)("th",{scope:"col"},void 0,Dn.t("% of Grade")))),(0,o.Z)("tbody",{},void 0,ee?Object.keys(Y).map((e=>
994(0,o.Z)(On,{gradingPeriodId:e,gradingPeriodSet:N,gradingPeriods:Y,gradingScheme:{data:w||[],pointsBased:O,scalingFactor:x},pointsBasedGradingSchemesFeatureEnabled:I,includeUngradedAssignments:m},`grading_period_scores_${e}`))):Object.keys(n).map((e=>(0,o.Z)(En,{assignmentGroupId:e,assignmentGroupMap:n,assignmentGroups:j,gradingScheme:{data:w||[],pointsBased:O,scalingFactor:x},pointsBasedGradingSchemesFeatureEnabled:I,includeUngradedAssignments:m},`assignment_group_scores_${e}`)))))),(0,o.Z)(v.G,{as:"h3"},void 0,Dn.t("Final Grade: "),(0,o.Z)(v.G,{as:"span",className:"total-grade"},void 0,te())),G&&u&&(0,o.Z)(Nn,{pointsBasedGradingSchemesFeatureEnabled:I,finalGradeOverride:T[r.id],enrollmentId:null===(t=r.enrollments[0])||void 0===t?void 0:t.id,onSubmit:e=>{M({...T,[r.id]:e})},gradingScheme:{data:w||[],pointsBased:O,scalingFactor:x},gradingPeriodId:D}),ae&&(0,o.Z)(v.G,{as:"div",className:"text-error",margin:"small 0 0 0",style:{width:"100%"}},void 0,(0,o.Z)(ie.x,{size:"medium"},void 0,In||(In=(0,o.Z)(f.v,{}))," ",re()," ")))))}const Mn=e=>{const[t,n]=(0,s.useState)(null);(0,s.useEffect)((()=>{const t=async()=>{if(!e)return
995const{data:t}=await be({method:"GET",path:e})
996n(t)}
997t()}),[e])
998return{customColumns:t}}
999const An=(0,m.useScope)("enhanced_individual_gradebook")
1000const Pn="student"
1001const Ln="assignment"
1002function Bn(){var e,t
1003const[n,i]=(0,s.useState)([])
1004const[r,d]=(0,s.useState)({})
1005const[l,c]=(0,s.useState)()
1006const[m,h]=(0,s.useState)()
1007const p=(null===(e=ENV.GRADEBOOK_OPTIONS)||void 0===e?void 0:e.context_id)||""
1008const[b,f]=(0,a.lr)()
1009const _=b.get(Pn)
1010const[C,S]=(0,s.useState)(_)
1011const{currentStudent:Z,studentSubmissions:y,updateSubmissionDetails:G,loadingStudent:k}=tt(p,C)
1012const[N,w]=(0,s.useState)({})
1013const x=b.get(Ln)
1014const[O,T]=(0,s.useState)(x)
1015const M=null===m||void 0===m?void 0:m.find((e=>e.id===O))
1016const A=M?r[M.id]:{}
1017const P=Object.values(A??{})
1018const[L,B]=(0,s.useState)(F(ENV))
1019const{data:K,error:U}=(0,u.aM)(Xe,{variables:{courseId:p},fetchPolicy:"no-cache",skip:!p})
1020const{customColumnsUrl:R}=L
1021const{customColumns:z}=Mn(R)
1022const W=null===z||void 0===z||null===(t=z.find((e=>e.teacher_notes)))||void 0===t?void 0:t.id
1023const[Q,q]=(0,s.useState)("");(0,s.useEffect)((()=>{var e
1024if(!Z||!l)return
1025const t=null===l||void 0===l||null===(e=l.find((e=>e.id===Z.id)))||void 0===e?void 0:e.hiddenName
1026q(t??An.t("Student"))}),[Z,l]);(0,s.useEffect)((()=>{if(null!==K&&void 0!==K&&K.course){const{assignmentGroupsConnection:e,enrollmentsConnection:t,sectionsConnection:n,submissionsConnection:o}=K.course
1027const{assignmentGradingPeriodMap:s,assignmentSubmissionsMap:a}=I(o.nodes)
1028d(a)
1029const{mappedAssignmentGroupMap:r,mappedAssignments:l}=E(e.nodes,s)
1030w(r)
1031h(l)
1032i(n.nodes)
1033const u=D(t.nodes)
1034const m=u.sort(((e,t)=>e.sortableName.localeCompare(t.sortableName)))
1035m.forEach(((e,t)=>e.hiddenName=An.t("Student %{id}",{id:t+1})))
1036c(m)}}),[K,U])
1037const $=Object.keys(N).reduce(((e,t)=>{const{invalid:n,name:o,gradingPeriodsIds:s}=N[t]
1038const{selectedGradingPeriodId:i}=L;(n||i&&!(null!==s&&void 0!==s&&s.includes(i)))&&(e[t]=o)
1039return e}),{})
1040const j=!(null===M||void 0===M||!M.assignmentGroupId)&&!!$[null===M||void 0===M?void 0:M.assignmentGroupId]
1041const Y=e=>{S(e)
1042e?b.set(Pn,e):b.delete(Pn)
1043f(b)}
1044const H=e=>{T(e)
1045e?b.set(Ln,e):b.delete(Ln)
1046f(b)}
1047const V=(0,s.useCallback)((e=>{d((t=>{const{assignmentId:n,id:o}=e
1048t[n][o]=e
1049return{...t}}))
1050G(e)}),[G,d])
1051const X=(0,s.useCallback)((e=>{d((t=>{e.forEach((e=>{const{assignmentId:n,id:o}=e
1052const s=t[n][o]
1053s&&(t[n][o]={...s,...e})}))
1054return{...t}}))
1055const t=e.find((e=>e.userId===C))
1056t&&G(t)}),[C,G])
1057return(0,o.Z)(v.G,{as:"div"},void 0,(0,o.Z)(v.G,{as:"div",className:"row-fluid"},void 0,(0,o.Z)(v.G,{as:"div",className:"span12"},void 0,(0,o.Z)(v.G,{as:"h1"},void 0,An.t("Gradebook: Enhanced Individual View")),An.t("Note: Grades and notes will be saved automatically after moving out of the field."))),(0,o.Z)(At,{sections:n,gradebookOptions:L,customColumns:z,onSortChange:e=>{g.Z.contextSet("sort_grade_columns_by",{sortType:e})
1058const t={...L,sortOrder:e}
1059B(t)},onSectionChange:e=>{const t={...L,selectedSection:e}
1060B(t)},onGradingPeriodChange:e=>{g.Z.contextSet("gradebook_current_grading_period",e)
1061const t={...L,selectedGradingPeriodId:e}
1062B(t)},handleCheckboxChange:(e,t)=>
1062{B((n=>{const o={...n.customOptions,[e]:t}
1063return{...n,customOptions:o}}))},onTeacherNotesCreation:e=>{B((t=>({...t,teacherNotes:e})))}}),(0,o.Z)("div",{className:"hr",style:{margin:10,padding:10,borderBottom:"1px solid #eee"}}),(0,o.Z)(mt,{courseId:p,assignments:m,students:l,selectedStudentId:C,selectedAssignmentId:O,gradebookOptions:L,onStudentChange:Y,onAssignmentChange:H}),(0,o.Z)("div",{className:"hr",style:{margin:10,padding:10,borderBottom:"1px solid #eee"}}),(0,o.Z)(hn,{assignment:M,courseId:p,currentStudent:Z,studentSubmissions:y,gradebookOptions:L,loadingStudent:k,onSubmissionSaved:V,currentStudentHiddenName:Q}),(0,o.Z)("div",{className:"hr",style:{margin:10,padding:10,borderBottom:"1px solid #eee"}}),(0,o.Z)(Tn,{assignmentGroupMap:N,gradebookOptions:L,invalidAssignmentGroups:$,student:Z,studentNotesColumnId:W,currentStudentHiddenName:Q,submissions:y}),(0,o.Z)("div",{className:"hr",style:{margin:10,padding:10,borderBottom:"1px solid #eee"}}),(0,o.Z)(je,{assignment:M,assignmentGroupInvalid:j,gradebookOptions:L,students:l,submissions:P,handleSetGrades:X}),(0,o.Z)("div",{className:"hr",style:{margin:10,padding:10,borderBottom:"1px solid #eee"}}))}var Kn,Un
1064function Fn(){const[e,t]=(0,s.useState)(null)
1065const[n,i]=(0,s.useState)(true)
1066if(!ENV.GRADEBOOK_OPTIONS)throw new Error("ENV.GRADEBOOK_OPTIONS is not defined");(0,s.useEffect)((()=>{const e=async()=>{t((0,d.eI)())
1067i(false)}
1068e()}),[])
1069if(n)return Kn||(Kn=(0,o.Z)(c.Z,{}))
1070return s.createElement(s.Fragment,null,(0,o.Z)(l.Z,{courseUrl:ENV.GRADEBOOK_OPTIONS.context_url,learningMasteryEnabled:Boolean(ENV.GRADEBOOK_OPTIONS.outcome_gradebook_enabled),enhancedIndividualGradebookEnabled:Boolean(ENV.GRADEBOOK_OPTIONS.individual_gradebook_enhancements),variant:"EnhancedIndividualGradebook"}),(0,o.Z)(d.eT,{client:e},void 0,Un||(Un=(0,o.Z)(Bn,{}))))}const Rn=window.location.pathname.match(/(.*\/gradebook)/)
1071const zn=Rn&&Rn[0]||""
1072i.render((0,o.Z)(a.VK,{basename:zn},void 0,(0,o.Z)(r.Z5,{},void 0,(0,o.Z)(r.AW,{path:"/",element:(0,o.Z)(Fn,{})}))),document.getElementById("content"))},89714:(e,t,n)=>{n.d(t,{Z:()=>a})
1073var o=n(9669)
1074var s=n.n(o)
1075s().defaults.xsrfCookieName="_csrf_token"
1076s().defaults.xsrfHeaderName="X-CSRF-Token"
1077const i=s().defaults.headers.common.Accept
1078s().defaults.headers.common.Accept="application/json+canvas-string-ids, "+i
1079s().defaults.headers.common["X-Requested-With"]="XMLHttpRequest"
1080const a=s()},89010:(e,t,n)=>{n.d(t,{Z:()=>g})
1081var o=n(63056)
1082var s=n(67294)
1083var i=n(75149)
1084var a=n(25683)
1085var r=n.n(a)
1086var d=n(6507)
1087var l=n.n(d)
1088n(23292)
1089var c=n(86333)
1090var u
1091class m extends s.Component{constructor(){super(...arguments)
1092this.render=r().memoize((()=>{const{prefixMobile:e,showTime:t,...n}=this.props
1093let a=this.props.dateTime
1094if(!a)return u||(u=(0,o.Z)("time",{}))
1095r().isDate(a)||(a=i.Z.parse(a))
1096const d=l().fudgeDateForProfileTimezone(a)
1097let m
1098m=this.props.format?i.Z.format(a,this.props.format):t?l().datetimeString(a):l().friendlyDatetime(d)
1099const g={...n,title:l().datetimeString(a),dateTime:a.toISOString()}
1100let v=this.props.prefix
1101v&&!v.endsWith(" ")&&(v+=" ")
1102let h=e
1103h&&!h.endsWith(" ")&&(h+=" ")
1104return(0,o.Z)("span",{"data-testid":"friendly-date-time"},void 0,(0,o.Z)(c.c,{},void 0,v+m),s.createElement("time",Object.assign({},g,{ref:e=>{this.time=e},"aria-hidden":"true"}),(0,o.Z)("span",{className:"visible-desktop"},void 0,v+m),(0,o.Z)("span",{className:"hidden-desktop"},void 0,(h||"")+d.toLocaleDateString())))}),(()=>this.props.dateTime))}}m.defaultProps={format:null,prefix:"",prefixMobile:null,showTime:false}
1105const g=m},72877:(e,t,n)=>{var o=n(6507)
1106var s=n.n(o)
1107n(33108)
1108n(11516)
1109s().widget("ui.progressbar",{version:"@VERSION",options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()})
1110this.valueDiv=s()("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element)
1111this.oldValue=this._value()
1112this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow")
1113this.valueDiv.remove()}
1113,value:function(e){if(void 0===e)return this._value()
1114this._setOption("value",e)
1115return this},_setOption:function(e,t){if("value"===e){this.options.value=t
1116this._refreshValue()
1117this._value()===this.options.max&&this._trigger("complete")}this._super(e,t)},_value:function(){var e=this.options.value
1118"number"!==typeof e&&(e=0)
1119return Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage()
1120if(this.oldValue!==e){this.oldValue=e
1121this._trigger("change")}this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%")
1122this.element.attr("aria-valuenow",e)}})}}])
1123
1124//# sourceMappingURL=enhanced_individual_gradebook-c-5cefde6a5a.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.