{"version":3,"file":"bundle-chameleon_legacy_src_a.xxxxxxxxxxxxxxxxxxxx.js","mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACO,MAAMC,uBAAuB,GAAGD,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAME,YAAY,GAAGF,iDAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMva,cAAc,GAAGua,iDAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMG,cAAc,GAAGH,iDAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMI,iBAAiB,GAAGJ,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMK,kCAAkC,GAAGL,iDAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMM,yBAAyB,GAAGN,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMO,mBAAmB,GAAGP,iDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMQ,YAAY,GAAGR,iDAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMzH,cAAc,GAAGyH,iDAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMS,YAAY,GAAGT,iDAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMU,8BAA8B,GAAGV,iDAAG;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMW,qBAAqB,GAAGX,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMY,yBAAyB,GAAGZ,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMa,6BAA6B,GAAGb,iDAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMc,kBAAkB,GAAGd,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMe,qBAAqB,GAAGf,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgB,2BAA2B,GAAGhB,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMiB,sBAAsB,GAAGjB,iDAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkB,oBAAoB,GAAGlB,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMmB,gBAAgB,GAAGnB,iDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMoB,uBAAuB,GAAGpB,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqB,+BAA+B,GAAGrB,iDAAG;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMsB,wBAAwB,GAAGtB,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMuB,yBAAyB,GAAGvB,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMwB,8BAA8B,GAAGxB,iDAAG;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMyB,oBAAoB,GAAGzB,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM0B,qBAAqB,GAAG1B,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM2B,wBAAwB,GAAG3B,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM4B,wBAAwB,GAAG5B,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM6B,qBAAqB,GAAG7B,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM8B,yBAAyB,GAAG9B,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM+B,kBAAkB,GAAG/B,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgC,8BAA8B,GAAGhC,iDAAG;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMiC,gBAAgB,GAAGjC,iDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkC,eAAe,GAAGlC,iDAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMmC,eAAe,GAAGnC,iDAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMoC,oBAAoB,GAAGpC,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqC,mBAAmB,GAAGrC,iDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMsC,aAAa,GAAGtC,iDAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMuC,6BAA6B,GAAGvC,iDAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACO,MAAMwC,mBAAmB,GAAGxC,iDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMyC,wBAAwB,GAAGzC,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM0C,wBAAwB,GAAG1C,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM2C,wBAAwB,GAAG3C,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM4C,0BAA0B,GAAG5C,iDAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM6C,2BAA2B,GAAG7C,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM8C,2BAA2B,GAAG9C,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM+C,0BAA0B,GAAG/C,iDAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgD,uBAAuB,GAAGhD,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMiD,iBAAiB,GAAGjD,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkD,qBAAqB,GAAGlD,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMmD,eAAe,GAAGnD,iDAAG;AAClC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMoD,kBAAkB,GAAGpD,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqD,iBAAiB,GAAGrD,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMsD,kBAAkB,GAAGtD,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMuD,oBAAoB,GAAGvD,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM3H,mBAAmB,GAAG2H,iDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM5P,SAAS,GAAG4P,iDAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM1H,yBAAyB,GAAG0H,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMwD,iBAAiB,GAAGxD,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMyD,kBAAkB,GAAGzD,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM0D,yBAAyB,GAAG1D,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM2D,wBAAwB,GAAG3D,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM4D,cAAc,GAAG5D,iDAAG;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM6D,gBAAgB,GAAG7D,iDAAG;AACnC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM8D,UAAU,GAAG9D,iDAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM+D,UAAU,GAAG/D,iDAAG;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgE,cAAc,GAAGhE,iDAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMiE,uBAAuB,GAAGjE,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkE,iCAAiC,GAAGlE,iDAAG;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMmE,kBAAkB,GAAGnE,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMoE,kBAAkB,GAAGpE,iDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqE,yBAAyB,GAAGrE,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMsE,oBAAoB,GAAGtE,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMuE,iBAAiB,GAAGvE,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMwE,oBAAoB,GAAGxE,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMyE,qBAAqB,GAAGzE,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM0E,iBAAiB,GAAG1E,iDAAG;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM2E,uBAAuB,GAAG3E,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM4E,uBAAuB,GAAG5E,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM6E,qBAAqB,GAAG7E,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM8E,UAAU,GAAG9E,iDAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM+E,wBAAwB,GAAG/E,iDAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMgF,eAAe,GAAGhF,iDAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMiF,sBAAsB,GAAGjF,iDAAG;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMkF,qBAAqB,GAAGlF,iDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMmF,oBAAoB,GAAGnF,iDAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMoF,gBAAgB,GAAGpF,iDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMqF,uBAAuB,GAAGrF,iDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMsF,2BAA2B,GAAGtF,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMuF,2BAA2B,GAAGvF,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMwF,+BAA+B,GAAGxF,iDAAG;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMyF,2BAA2B,GAAGzF,iDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM0F,yBAAyB,GAAG1F,iDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM2F,sBAAsB,GAAG3F,iDAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AC3zGuC;AACY;AAEpD,MAAMzgD,QAAQ,GAAG,SAAAA,CAAA,EAA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kC,gEAAgE,qCAAqC,kCAAkC,uBAAuB,YAAY,8BAA8B,oBAAoB,KAAK,GAAG,4BAA4B,gGAAgG,GAAG,0BAA0B,+CAA+C,sBAAsB,iCAAiC,2GAA2G,mCAAmC,iDAAiD,mBAAmB,qBAAqB,uBAAuB,wBAAwB,4CAA4C,qBAAqB,2BAA2B,qBAAqB,yBAAyB,OAAO,aAAa,wBAAwB,0BAA0B,OAAO,2BAA2B,wBAAwB,OAAO,WAAW,wBAAwB,0BAA0B,OAAO,KAAK,GAAG,qBAAqB;AACv7J;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;AC7CvC;AAC4H;AACjB;AAC3G,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA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","sources":["webpack:///./chameleon/legacy/src/actions/admin.js","webpack:///./chameleon/legacy/src/actions/classes.js","webpack:///./chameleon/legacy/src/actions/commonActions.js","webpack:///./chameleon/legacy/src/actions/courseOutline.js","webpack:///./chameleon/legacy/src/actions/educationPeriod.js","webpack:///./chameleon/legacy/src/actions/featureFlags.js","webpack:///./chameleon/legacy/src/actions/paperscorer.js","webpack:///./chameleon/legacy/src/actions/studentsBySection.js","webpack:///./chameleon/legacy/src/actions/subject.js","webpack:///./chameleon/legacy/src/actions/userSubjects.js","webpack:///./chameleon/legacy/src/bootstrap/api.js","webpack:///./chameleon/legacy/src/bootstrap/apollo.js","webpack:///./chameleon/legacy/src/bootstrap/constants.js","webpack:///./chameleon/legacy/src/components/PageNotFound.js","webpack:///./chameleon/legacy/src/components/TeacherAssignments/hooks/useTeacherAssignments.js","webpack:///./chameleon/legacy/src/components/TeacherAssignments/state/context.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/components/constants.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/useBulkDeleteManager.ts","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/useTeacherOrganize.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/utils/api.utils.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/utils/apiHelpers.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/utils/calculateCache.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/utils/index.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/hooks/utils/labels.utils.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/state/context.js","webpack:///./chameleon/legacy/src/components/TeacherOrganize/utils/constants.js","webpack:///./chameleon/legacy/src/components/apstudent/handlers/Assignments/constants.ts","webpack:///./chameleon/legacy/src/components/apstudent/handlers/Assignments/util.ts","webpack:///./chameleon/legacy/src/components/apstudent/handlers/state/reducer.js","webpack:///./chameleon/legacy/src/components/assessment/AssignItem/state/reducer.js","webpack:///./chameleon/legacy/src/components/assessment/Filters/state/actions.js","webpack:///./chameleon/legacy/src/components/assessment/Filters/state/reducer.js","webpack:///./chameleon/legacy/src/components/assessment/Results/PerformanceBar/index.js","webpack:///./chameleon/legacy/src/components/assessment/Results/PerformanceBarPopover/index.js","webpack:///./chameleon/legacy/src/components/assessment/Results/PerformanceDetails/index.js","webpack:///./chameleon/legacy/src/components/assessment/state/actions.js","webpack:///./chameleon/legacy/src/components/assessment/state/reducer.js","webpack:///./chameleon/legacy/src/components/assessment/state/sagas.js","webpack:///./chameleon/legacy/src/components/assessment/types/AssessmentTypes.ts","webpack:///./chameleon/legacy/src/components/auth/Levity.js","webpack:///./chameleon/legacy/src/components/auth/PermissionsContainer.js","webpack:///./chameleon/legacy/src/components/auth/actions.js","webpack:///./chameleon/legacy/src/components/auth/helpers.ts","webpack:///./chameleon/legacy/src/components/auth/reducer.js","webpack:///./chameleon/legacy/src/components/auth/requireAuth.js","webpack:///./chameleon/legacy/src/components/auth/sagas.js","webpack:///./chameleon/legacy/src/components/auth/utils.js","webpack:///./chameleon/legacy/src/components/help/ContactUs.js","webpack:///./chameleon/legacy/src/components/help/FAQ.js","webpack:///./chameleon/legacy/src/components/help/FAQHelper.js","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateFocusWrapper.js","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateHeader/index.js","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateModal/index.js","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateSubjectSelector/index.js","webpack:///./chameleon/legacy/src/components/impersonating/components/StudentsSearch/index.js","webpack:///./chameleon/legacy/src/components/impersonating/components/UnableToViewModal/index.js","webpack:///./chameleon/legacy/src/components/impersonating/hooks/useDoImpersonate.js","webpack:///./chameleon/legacy/src/components/impersonating/hooks/useDoLogout.js","webpack:///./chameleon/legacy/src/components/impersonating/hooks/useImpersonateModal.js","webpack:///./chameleon/legacy/src/components/impersonating/hooks/useSubjectsRestrictions.js","webpack:///./chameleon/legacy/src/components/impersonating/hooks/useTeacherData.js","webpack:///./chameleon/legacy/src/components/impersonating/state/actions.js","webpack:///./chameleon/legacy/src/components/impersonating/state/reducer.js","webpack:///./chameleon/legacy/src/components/impersonating/state/sagas.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/constants.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/getImpersonatedStudentClass.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/index.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/isSubjectAvailable.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/isTeacherTeachingClass.js","webpack:///./chameleon/legacy/src/components/impersonating/utils/telemetry.js","webpack:///./chameleon/legacy/src/components/learnosity/utils/constants.js","webpack:///./chameleon/legacy/src/components/learnosity/utils/helpers.js","webpack:///./chameleon/legacy/src/components/paperscorer/DownloadNowLink/index.js","webpack:///./chameleon/legacy/src/components/paperscorer/sagas.js","webpack:///./chameleon/legacy/src/components/util.js","webpack:///./chameleon/legacy/src/constants/assignment.js","webpack:///./chameleon/legacy/src/constants/common.ts","webpack:///./chameleon/legacy/src/constants/config.js","webpack:///./chameleon/legacy/src/constants/operatingSystems.ts","webpack:///./chameleon/legacy/src/constants/types.js","webpack:///./chameleon/legacy/src/queries.js","webpack:///./chameleon/legacy/src/reducers/admin.js","webpack:///./chameleon/legacy/src/reducers/apdCarousel.js","webpack:///./chameleon/legacy/src/reducers/assessmentData.js","webpack:///./chameleon/legacy/src/reducers/bookmarks.js","webpack:///./chameleon/legacy/src/reducers/classes.js","webpack:///./chameleon/legacy/src/reducers/courseOutline.js","webpack:///./chameleon/legacy/src/reducers/currentState.js","webpack:///./chameleon/legacy/src/reducers/featureFlag.js","webpack:///./chameleon/legacy/src/reducers/index.js","webpack:///./chameleon/legacy/src/reducers/me.js","webpack:///./chameleon/legacy/src/reducers/nav.js","webpack:///./chameleon/legacy/src/reducers/paperscorer.js","webpack:///./chameleon/legacy/src/reducers/questionBySharedStimulus.js","webpack:///./chameleon/legacy/src/reducers/questionPreviewToggle.js","webpack:///./chameleon/legacy/src/reducers/resourceFilters.js","webpack:///./chameleon/legacy/src/reducers/searchedResources.js","webpack:///./chameleon/legacy/src/reducers/secureAssignmentIds.js","webpack:///./chameleon/legacy/src/reducers/sharedResources.js","webpack:///./chameleon/legacy/src/reducers/skillSummary.js","webpack:///./chameleon/legacy/src/reducers/studentsBySection.js","webpack:///./chameleon/legacy/src/reducers/subject.js","webpack:///./chameleon/legacy/src/reducers/teacherAssignment.js","webpack:///./chameleon/legacy/src/reducers/userSubjects.js","webpack:///./chameleon/legacy/src/components/PageNotFound.scss","webpack:///./chameleon/legacy/src/components/assessment/Results/PerformanceDetails/styles.scss","webpack:///./chameleon/legacy/src/components/assessment/Results/ScoredIcon/index.scss","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateHeader/styles.scss","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateModal/styles.scss","webpack:///./chameleon/legacy/src/components/impersonating/components/StudentsSearch/styles.scss","webpack:///./chameleon/legacy/src/components/paperscorer/DownloadNowLink/index.scss","webpack:///./chameleon/legacy/src/components/PageNotFound.scss?cbf3","webpack:///./chameleon/legacy/src/components/assessment/Results/PerformanceDetails/styles.scss?844d","webpack:///./chameleon/legacy/src/components/assessment/Results/ScoredIcon/index.scss?fcf3","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateHeader/styles.scss?5033","webpack:///./chameleon/legacy/src/components/impersonating/components/ImpersonateModal/styles.scss?281a","webpack:///./chameleon/legacy/src/components/impersonating/components/StudentsSearch/styles.scss?f1e8","webpack:///./chameleon/legacy/src/components/paperscorer/DownloadNowLink/index.scss?ca66"],"sourcesContent":["import * as types from 'legacy/src/constants/types';\n\nfunction adminInfo(props) {\n  return {\n    type: types.SET_ADMIN_INFO,\n    ...props,\n  };\n}\n\nexport function setAdminInfo(props) {\n  return (dispatch) => {\n    dispatch(adminInfo(props));\n  };\n}\n","import * as types from 'legacy/src/constants/types';\n\nexport function setItems(props) {\n  return (dispatch) => {\n    dispatch({\n      type: types.USER_CLASSES,\n      items: props,\n    });\n  };\n}\n","import { createRoutine } from 'redux-saga-routines';\n\nexport const pageLoading = createRoutine('PAGE_LOADING');\nexport const pageReloading = createRoutine('PAGE_RELOADING');\n","import {\n  SET_COURSE_OUTLINE,\n  GET_COURSE_OUTLINE,\n  RESET_COURSE_OUTLINE,\n} from 'legacy/src/constants/types';\n\nexport function getCourseOutline(loading) {\n  return (dispatch) => {\n    dispatch({ type: GET_COURSE_OUTLINE, payload: { loading } });\n  };\n}\n\nexport default function setCourseOutline({ subject, courseOutline }) {\n  return (dispatch) => {\n    dispatch({\n      type: SET_COURSE_OUTLINE,\n      payload: courseOutline,\n      subject,\n    });\n  };\n}\n\nexport function resetCourseOutline(dispatch) {\n  dispatch({\n    type: RESET_COURSE_OUTLINE,\n  });\n}\n","import {\n  getSubjectEducationPeriods,\n  findChosenEducationPeriod,\n} from 'legacy/src/components/auth/utils';\nimport { getUserSubjects } from 'legacy/src/reducers/subject';\nimport * as types from 'legacy/src/constants/types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const defaultEducationPeriod = (payload) => ({\n  type: types.SET_DEFAULT_EDUCATION_PERIOD,\n  payload,\n});\n\nexport const getDefaultEducationPeriod = ({ subject, userData }) => {\n  const subjectEducationPeriods = getSubjectEducationPeriods({\n    subjectId: subject,\n    teacherSubjects: userData.teacherSubjects,\n  });\n\n  const educationPeriodCode = findChosenEducationPeriod({\n    currentEducationPeriod: userData.educationPeriod.currentEducationPeriod,\n    subjectEducationPeriods,\n    me: userData.me,\n    userSubjects: getUserSubjects(userData),\n    subject,\n  });\n\n  return { educationPeriodCode, subjectEducationPeriods };\n};\n\nexport const clearDefaultEducationPeriod =\n  ({ subject, userData }) =>\n  (dispatch) => {\n    const { educationPeriodCode, subjectEducationPeriods } =\n      getDefaultEducationPeriod({\n        subject,\n        userData,\n      });\n\n    return dispatch(\n      defaultEducationPeriod({\n        educationPeriodCode: educationPeriodCode.id || '',\n        subjectEducationPeriods,\n        allEducationPeriods: userData.educationPeriod.educationPeriods,\n        educationPeriod: userData.educationPeriod,\n      }),\n    );\n  };\n\nexport const setDefaultEducationPeriodCode = ({\n  educationPeriodCode,\n  userData,\n}) => ({\n  type: types.SET_DEFAULT_EDUCATION_PERIOD,\n  payload: {\n    educationPeriodCode,\n    chosenEducationPeriodCode: educationPeriodCode,\n    subjectEducationPeriods: userData.educationPeriod.educationPeriods,\n    allEducationPeriods: userData.educationPeriod.educationPeriods,\n    educationPeriod: userData.educationPeriod,\n  },\n});\n","import * as types from 'legacy/src/constants/types';\nimport { flagList } from '../reducers/featureFlag';\n\n/**\n * Set Feature Flag action. Dispatches an action that triggers an action.\n *\n * @param  {String}  flag  A feature flag constant.\n * @param  {any}     value Value to assign.\n * @return {Object}        Redux action.\n */\nexport default function setFeatureFlag(treatments) {\n  const flags = {};\n\n  Object.keys(treatments).forEach((key) => {\n    if (typeof treatments[key] === 'boolean') {\n      flags[key] = treatments[key];\n    }\n\n    switch (key) {\n      case 'show_maintenance_page':\n        flags[key] = treatments[key];\n        break;\n      case 'cb_session_expiration_threshold':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 90;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'cb_session_expiration_time':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = false;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'cb_session_expiration_override':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = false;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'secure_firewall_check_interval_duration_hours':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 10;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'secure_firewall_check_enable':\n        flags[key] =\n          treatments[key] === 'FAIL' ? flagList[key] : treatments[key] === 'on';\n        break;\n      case 'ap_qb_preview_load_more':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 0;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'my_assignment_page_size':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 30;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'qb_cached_lrn_questions_limit':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 30;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'assignments_overview_info_panel':\n        flags[key] =\n          treatments[key] === 'both'\n            ? treatments[key]\n            : treatments[key] === 'on';\n        break;\n      case 'enter_scores_expansion':\n        if (treatments[key] === 'on') {\n          flags[key] = true;\n        } else if (treatments[key] === 'off') {\n          flags[key] = false;\n        } else if (treatments[key] === 'print_only') {\n          flags[key] = 'print_only';\n        }\n        break;\n      case 'assignment_status_polling_interval':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 30;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'timed_assignment_status_polling_interval':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 10;\n        } else {\n          flags[key] = parseInt(treatments[key], 10);\n        }\n        break;\n      case 'consolidated_assignment_overview_refetch_interval_in_seconds':\n        if (Number.isNaN(parseInt(treatments[key], 10))) {\n          flags[key] = 10;\n        } else {\n          flags[key] = Math.max(parseInt(treatments[key], 10), 0);\n        }\n        break;\n      default:\n        flags[key] = treatments[key] === 'on';\n    }\n\n    if (typeof treatments[key] === 'object') {\n      const flagValue = {\n        ...treatments[key],\n        treatment: treatments[key]?.treatment === 'on',\n      };\n      flags[key] = flagValue;\n    }\n  });\n\n  return { type: types.SET_FEATURE_FLAG, payload: { flags } };\n}\n","import { createRoutine } from 'redux-saga-routines';\n\nexport const generateAnswerSheets = createRoutine('GENERATE_ANSWER_SHEET');\nexport const generateAnswerSheetsPreview = createRoutine(\n  'GENERATE_ANSWER_SHEET_PREVIEW',\n);\nexport const resetAnswerSheetsPreview = createRoutine('RESET_ANSWER_SHEET_URL');\nexport const downloadAllAnswerSheets = createRoutine(\n  'DOWNLOAD_ALL_ANSWER_SHEETS',\n);\nexport const downloadIndividualAnswerSheet = createRoutine(\n  'DOWNLOAD_INDIVIDUAL_ANSWER_SHEET',\n);\nexport const initiateDownloadForUser = createRoutine(\n  'INITIATE_DOWNLOAD_ANSWER_SHEET_FOR_USER',\n);\nexport const downloadGeneratedAnswerSheet = createRoutine(\n  'DOWNLOAD_GENERATED_ANSWER_SHEET',\n);\n","import * as types from 'legacy/src/constants/types';\n\nexport function setStudentsBySection(userData, params) {\n  return (dispatch) => {\n    dispatch({\n      type: types.STUDENTS_BY_SECTION,\n      userData,\n      params,\n    });\n  };\n}\n","import * as types from 'legacy/src/constants/types';\n\nexport function setSubject(userData, router, params) {\n  return (dispatch) => {\n    dispatch({\n      type: types.SUBJECT_MAPPING,\n      userData,\n      router,\n      params,\n    });\n  };\n}\n","import * as types from 'legacy/src/constants/types';\n\nexport default function setUserSubjects({ subjects }) {\n  return (dispatch) => {\n    dispatch({\n      type: types.USER_SUBJECTS,\n      userSubjects: subjects,\n    });\n  };\n}\n","import axios from 'axios';\nimport axiosCancel from 'axios-cancel';\nimport { notify } from 'legacy/packages/ft-cb';\nimport {\n  redirectToLogin,\n  refreshAccessToken,\n} from 'legacy/src/components/auth/utils';\nimport { VITAL_DOMAINS } from 'legacy/src/constants/config';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport {\n  ERROR_PROCESSING_MESSAGE,\n  KNOWN_ISSUE_ERROR_MESSAGE,\n} from './constants';\nimport { getTelemetryUrl } from 'chameleon/ui-stack/utilities/telemetry/getTelemetryUrl';\n\nwindow.axios = axios;\n\n// the promise code here sets up a promise we can wait on so we don't try to call the verify endpoint before token\n// injection is set up.\n// don't use middleware_resolve directly, use complete_middleware_promise\nlet middleware_resolve = null;\nlet middleware_timeout = null;\nlet complete_middleware_promise = () => {\n  if (middleware_timeout) {\n    window.clearTimeout(middleware_timeout);\n  }\n  middleware_resolve();\n};\nwindow.axios.middleware_promise = new Promise((resolve, reject) => {\n  middleware_resolve = resolve;\n  middleware_timeout = window.setTimeout(() => {\n    log('error', 'Setting up the interceptors failed, this should not happen.');\n    reject();\n  }, 60000);\n});\n\nconst interceptorConfig = {\n  errorInterceptor(err) {\n    const { response, config } = err;\n\n    // If the err is a “Cancel” promise\n    if (axios.isCancel(err)) {\n      return log('Request canceled', err.message);\n    }\n\n    if (config && config.url.includes('Report')) {\n      return;\n    }\n\n    const telemetry_url = getTelemetryUrl().replace(/https?:\\/\\//, '');\n    if (config.url.indexOf(telemetry_url) > -1) {\n      log('error', err);\n      return;\n    }\n\n    const state = window.store.getState();\n    const known_issue_ff = state.featureFlag?.error_notification_known_issue;\n\n    // Use the whitelist to determine if we should display the error message-\n    // Otherwise, we display this even if unnecessary (often third-party) requests fail.\n    if (!response && VITAL_DOMAINS.find((d) => config.url.includes(d))) {\n      notify.error(\n        known_issue_ff ? KNOWN_ISSUE_ERROR_MESSAGE : ERROR_PROCESSING_MESSAGE,\n      );\n      log('error', err);\n    }\n\n    if (!response) {\n      throw new Error(err);\n    }\n\n    if (\n      response.status === 400 &&\n      response.data &&\n      response.data.message === 'Assessment is rotten'\n    ) {\n      notify.error(\n        \"This assessment contains a question that is no longer in this subject's library, and cannot \".concat(\n          \"be assigned. Please create a new assessment using questions still available from the 'Create' tab.\",\n        ),\n      );\n    } else if (response.status === 422) {\n      redirectToLogin();\n    } else if (response.status >= 500) {\n      const state = window.store.getState();\n      const known_issue_ff = state.featureFlag?.error_notification_known_issue;\n      notify.error(\n        known_issue_ff ? KNOWN_ISSUE_ERROR_MESSAGE : ERROR_PROCESSING_MESSAGE,\n      );\n    }\n\n    return response;\n  },\n  tokenInterceptor(oldConfig) {\n    let config = { ...oldConfig };\n\n    if (!config.headers.Authorization) {\n      const token = window.localStorage.getItem('account_access_token');\n      if (token && token.startsWith('ey')) {\n        config.headers.Authorization = `Bearer ${token}`;\n      }\n    }\n\n    // sometimes we want to use a different timestamp for checking expiry (impersonation needs to be explicit)\n    const { expires: customExpires } = config.headers;\n    const expires = customExpires ?? window.localStorage.getItem('expires');\n    const expiresValueOf = Number.parseInt(expires, 10);\n\n    // we don't want to try to refresh when we are already making a request to endpoints that use the refresh token\n    // instead of the access token\n    const is_refresh_endpoint = config?.url?.match?.(/\\/token\\/refresh\\/?$/);\n    const is_logout2_endpoint = config?.url?.match?.(/\\/auth\\/logout2\\/?$/);\n    const is_refreshable = !is_refresh_endpoint && !is_logout2_endpoint;\n\n    const second = 1000;\n    const is_about_to_expire =\n      new Date() > new Date(expiresValueOf - 5 * second);\n    let config_promise;\n    if (is_refreshable && is_about_to_expire) {\n      // if the token is going to expire lets re-issue it pre-emptively, prevents 401 errors and unnecessary traffic\n      config_promise = fetchNewAccessToken(config);\n    } else {\n      config_promise = Promise.resolve(config);\n    }\n\n    // cleanup the headers we're using to configure this middleware functionality\n    return config_promise.then((config) => {\n      delete config.headers.expires;\n      delete config.headers.refreshToken;\n      delete config.headers.skipRefresh;\n      return config;\n    });\n  },\n};\n\n/**\n * Delay the desired request, fetch new access token and make the original request\n *\n * @param originalConfig axios config object, see: https://axios-http.com/docs/req_config\n * @returns updated axios config object, with new token values\n */\nfunction fetchNewAccessToken(originalConfig) {\n  const {\n    headers: { skipRefresh, refreshToken },\n  } = originalConfig;\n\n  if (skipRefresh) {\n    return originalConfig;\n  }\n\n  let refreshParams = {\n    // access token we are going to revoke in our refresh request\n    accessToken: window.localStorage.getItem('account_access_token'),\n  };\n  if (refreshToken) {\n    refreshParams['refreshToken'] = refreshToken;\n  }\n\n  return refreshAccessToken(refreshParams).then((response) => {\n    const config = { ...originalConfig };\n    const { access_token: newAccessToken } = response.data;\n    config.headers.Authorization = `Bearer ${newAccessToken}`;\n    return config;\n  });\n}\n\nconst bootstrapApi = () => {\n  axios.interceptors.request.handlers = [];\n  axios.interceptors.response.handlers = [];\n\n  axiosCancel(axios);\n\n  // Attach global API interceptors\n  axios.interceptors.response.use(\n    undefined,\n    interceptorConfig.errorInterceptor,\n  );\n  axios.interceptors.request.use(interceptorConfig.tokenInterceptor);\n\n  complete_middleware_promise();\n};\n\nexport default bootstrapApi;\n","import ApolloClient from 'apollo-client';\nimport { notify } from 'legacy/packages/ft-cb';\nimport {\n  getCbSession,\n  redirectToLogin,\n  refreshAccessToken,\n} from 'legacy/src/components/auth/utils';\nimport { LC_CONSTANTS } from 'legacy/src/components/impersonating/utils/constants';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport {\n  ERROR_PROCESSING_MESSAGE,\n  KNOWN_ISSUE_ERROR_MESSAGE,\n} from './constants';\n\nconst getConfig = ({ accessTokenKey, refreshTokenKey, expiresKey }) => ({\n  use: [\n    {\n      applyMiddleware(req, next) {\n        /**\n         * Get authentication token from localStorage.\n         * @todo move this to a service.\n         */\n        getCbSession();\n        const accessToken = window.localStorage.getItem(accessTokenKey);\n        if (!accessToken || !accessToken.startsWith('ey')) {\n          log('error', `Bad or missing access token`, accessToken);\n          // eslint-disable-next-line no-console\n          console.trace();\n          return;\n        }\n        if (!req.options.headers) {\n          req.options.headers = {\n            'Content-Type': 'application/json; charset=utf-8',\n            Authorization: `Bearer ${accessToken}`,\n          };\n        }\n        const expiresValueOf = parseInt(\n          window.localStorage.getItem(expiresKey),\n          10,\n        );\n        // if our token is about to expire, we'll get a new one\n        if (new Date() > new Date(expiresValueOf - 5000)) {\n          refreshAccessToken({\n            refreshTokenKey,\n            accessTokenKey,\n            expiresKey,\n          }).then((response) => {\n            req.options.headers.Authorization = `Bearer ${response.data.access_token}`;\n            next();\n          });\n        } else {\n          next();\n        }\n      },\n    },\n  ],\n  useAfter: [\n    {\n      applyAfterware: async (res, next) => {\n        if (res.response) {\n          try {\n            const apiResponse = res.response.clone();\n            const traceId = apiResponse.headers.get('Ft_otel_traceid') || 'N/A';\n\n            const response = await apiResponse.json();\n            if (response.errors) {\n              const getQueryName = () => {\n                if (!response.data || typeof response.data !== 'object') {\n                  return 'N/A';\n                }\n                const keys = Object.keys(response.data);\n                return keys.length > 0 ? keys[0] : 'N/A';\n              };\n              response.errors.forEach((error) => {\n                const errorMessage =\n                  error.message || 'No error message provided';\n                const errorPath = error.path\n                  ? error.path.join(' -> ')\n                  : 'No path field';\n                log.error(`\n                Trace ID       : ${traceId}\n                GraphQL Query  : ${getQueryName()}\n                Error Message  : ${errorMessage}\n                Error Path     : ${errorPath}\n                `);\n              });\n            }\n          } catch (error) {\n            log.error('Error while parsing response JSON:', error);\n          }\n        } else {\n          log.error('Response object is missing');\n        }\n\n        if (res.response.status === 422) {\n          redirectToLogin();\n        } else if (res.response.status >= 500) {\n          const state = window.store.getState();\n          const known_issue_ff =\n            state.featureFlag?.error_notification_known_issue;\n\n          notify.error(\n            known_issue_ff\n              ? KNOWN_ISSUE_ERROR_MESSAGE\n              : ERROR_PROCESSING_MESSAGE,\n          );\n        }\n        next();\n        //need to return res or we will get an error\n        return res;\n      },\n    },\n  ],\n});\n\nconst config = getConfig({\n  accessTokenKey: LC_CONSTANTS.AT,\n  refreshTokenKey: LC_CONSTANTS.RT,\n  expiresKey: LC_CONSTANTS.EXP,\n});\nconst impersonatorConfig = getConfig({\n  accessTokenKey: LC_CONSTANTS.IAT,\n  refreshTokenKey: LC_CONSTANTS.IRT,\n  expiresKey: LC_CONSTANTS.IEXP,\n});\n\nconst bootstrapApollo = (\n  networkInterface,\n  fragmentMatcher,\n  isImpersonating = false,\n) => {\n  networkInterface\n    .use(isImpersonating ? impersonatorConfig.use : config.use)\n    .useAfter(config.useAfter);\n\n  return new ApolloClient({\n    networkInterface,\n    fragmentMatcher,\n    shouldBatch: true,\n  });\n};\n\nexport default bootstrapApollo;\n","export const ERROR_PROCESSING_MESSAGE = 'Error processing the request.';\nexport const KNOWN_ISSUE_ERROR_MESSAGE =\n  'AP Classroom is currently experiencing a technical issue that our engineers are actively working to resolve.\\n\\nNote: Issues experienced on AP Classroom do not affect digital AP Exams.';\n","import React, { useEffect } from 'react';\nimport Icon from 'chameleon/ui-stack/ui/base/icon';\nimport ButtonWithIcon from 'chameleon/ui-stack/ui/buttons/button-with-icon';\nimport { sendToTelemetry, TLTRY_DEFAULTS } from 'legacy/src/utility/telemetry';\nimport { withRouter } from 'react-router';\nimport { connect } from 'react-redux';\n\nimport './PageNotFound.scss';\n\nconst PageNotFound = ({ userData, router }) => {\n  const { me, studentSubjects, teacherSubjects, adminSubjects } =\n    userData || {};\n  const { location } = router || {};\n  const { pathname, search } = location || {};\n\n  useEffect(() => {\n    sendToTelemetry({\n      event_type: '404_page_triggered',\n      current_url: `${pathname || ''}${search || ''}`,\n      previous_url: window.sessionStorage.getItem('apc:locationFrom') || '',\n      user_agent: window.navigator.userAgent,\n      ...TLTRY_DEFAULTS[0],\n    });\n  }, []);\n\n  let userSubjects = teacherSubjects;\n\n  if (me?.isStudent) {\n    userSubjects = studentSubjects;\n  } else if (me?.isAdmin) {\n    userSubjects = adminSubjects;\n  }\n\n  const buttonOnClick = (event) => {\n    event.preventDefault();\n    /**\n     * window.location is used because we have routes, e.g. when the wrong\n     * url is actually opening the student assignment player, where using\n     * router.push does not work at all. The URL changes, but the linked\n     * page is not opened. window.location is the tradeoff.\n     */\n    if (userSubjects?.length > 1) {\n      window.location.href = '/subjects/preview';\n    }\n\n    if (userSubjects?.length === 1) {\n      window.location.href = `/${userSubjects[0].id}/home`;\n    }\n  };\n\n  return (\n    <div className=\"page_wrapper\">\n      <div className=\"page_not_found m-auto flex\">\n        <div className=\"float-left\">\n          <Icon\n            id=\"close\"\n            width=\"26.43\"\n            height=\"26.43\"\n            className=\"close-icon text-white mr-8 mt-1\"\n            role=\"presentation\"\n            accessibility={{ ariaHidden: true }}\n          />\n        </div>\n        <div className=\"float-right\">\n          <div className=\"font-medium\">Sorry</div>\n          <p>\n            The page you requested cannot be found. You may have typed the{' '}\n            address incorrectly or used an outdated link. Please try again, or{' '}\n            go to your AP Classroom homepage.\n          </p>\n          <ButtonWithIcon\n            isLink\n            isNaked\n            tabIndex=\"-1\"\n            iconOrientation=\"right\"\n            accessibility={{ 'aria-label': 'AP Classroom Link' }}\n            icon=\"chevron_right\"\n            className=\"font-medium\"\n            onClick={buttonOnClick}\n          >\n            AP Classroom Homepage\n          </ButtonWithIcon>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nPageNotFound.displayName = 'PageNotFound';\n\nlet mapStateToProps = (state) => ({\n  userData: state.userData,\n});\n\nexport default connect(mapStateToProps)(withRouter(PageNotFound));\n","import * as React from 'react';\nimport { useState } from 'react';\nimport useFetchTeacherAssignments from 'chameleon/ui-stack/hooks/use-assignments-fetch/teacher';\n\nimport Context from '../state/context';\n\nfunction TeacherAssignmentsProvider({ children }) {\n  /**\n   * A map of assignment ID to the details of the full object\n   * to allow easy lookup\n   */\n  const [assignments, setAssignments] = useState({});\n  const [isLoading, setIsLoading] = useState(false);\n\n  const [getTeacherAssignments] = useFetchTeacherAssignments();\n\n  const addAssignments = async () => {};\n\n  const updateAssignment = async () => {};\n\n  const updateAssignments = async () => {};\n\n  const deleteAssignment = async () => {};\n\n  const loadAssignments = async () => {\n    setIsLoading(true);\n    getTeacherAssignments();\n    setAssignments([]);\n    setIsLoading(false);\n  };\n\n  const loadAssignment = async () => {};\n\n  const value = {\n    state: {\n      isLoading,\n      assignments,\n    },\n    actions: {\n      addAssignments,\n      updateAssignment,\n      updateAssignments,\n      deleteAssignment,\n      loadAssignments,\n      loadAssignment,\n    },\n  };\n  return <Context.Provider value={value}>{children}</Context.Provider>;\n}\n\nexport { TeacherAssignmentsProvider };\n","import React from 'react';\n\n/**\n * Context properties\n * */\nconst TeacherAssignmentsContext = React.createContext();\nTeacherAssignmentsContext.displayName = 'TeacherAssignmentsContext';\nexport default TeacherAssignmentsContext;\n","export const BULK_ACTION_TYPES = {\n  LABEL: 'LABEL',\n  DELETE: 'DELETE',\n};\n","import { useEffect, useState } from 'react';\nimport { STATUS } from 'chameleon/src/constants/assessmentStatus';\nimport { PDF } from 'chameleon/src/components/assignments/constants';\nimport { type WithRouterProps } from 'react-router/lib/withRouter';\nimport useNavigation from 'chameleon/ui-stack/hooks/useNavigation';\n\ninterface UseBulkDeleteManagerProps {\n  isBulkMode: boolean;\n  isBulkDeleteAction: boolean;\n  router: WithRouterProps;\n  deactivateBulkMode: () => void;\n}\n\nexport const useBulkDeleteManager = ({\n  isBulkMode,\n  isBulkDeleteAction,\n  router,\n  deactivateBulkMode,\n}: UseBulkDeleteManagerProps) => {\n  const [savedStatusFilter, setSavedStatusFilter] = useState<string[] | null>(\n    null,\n  );\n\n  const { isAllResourcesQuizzesPage, queryParams, cleanPageParams } =\n    (router && useNavigation({ router })) || {};\n\n  const activateBulkDeleteMode = () => {\n    cleanPageParams();\n    saveCurrentStatusFilter();\n  };\n\n  const saveCurrentStatusFilter = () => {\n    const status = queryParams.status\n      ? queryParams.status.split(',').filter(Boolean)\n      : null;\n    setSavedStatusFilter(status);\n  };\n\n  useEffect(() => {\n    if (!isBulkMode && savedStatusFilter !== null) {\n      setSavedStatusFilter(null);\n    }\n  }, [isBulkMode]);\n\n  const shouldDeactivateBulkMode = () => {\n    return isBulkMode && isBulkDeleteAction && !isAllResourcesQuizzesPage;\n  };\n\n  const updateStatusFilterAfterBulkDeactivation = () => {\n    const { status, labels, type } = queryParams;\n\n    const isAssignedResourcesPage = status === STATUS.ALL_ASSIGNED;\n    const isLabelsPage = Boolean(labels);\n    const isPDFTab = type === PDF;\n\n    if (isAssignedResourcesPage || isLabelsPage || isPDFTab) {\n      setSavedStatusFilter(null);\n    }\n  };\n\n  useEffect(() => {\n    if (shouldDeactivateBulkMode()) {\n      deactivateBulkMode();\n      updateStatusFilterAfterBulkDeactivation();\n    }\n  }, [isAllResourcesQuizzesPage, queryParams?.status]);\n\n  return {\n    savedStatusFilter,\n    saveCurrentStatusFilter,\n    activateBulkDeleteMode,\n  };\n};\n","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { toast } from 'chameleon/ui-stack/ui/toast';\nimport useNavigation from 'chameleon/ui-stack/hooks/useNavigation';\nimport { BULK_ACTION_TYPES } from 'chameleon/legacy/src/components/TeacherOrganize/components/constants';\n\nimport Context from '../state/context';\nimport { calculateCache } from './utils';\n\nimport {\n  createLabelAPI,\n  createLabelItemAssociation,\n  createLabelResourceAssociation,\n  createLabelItemAssociationsBulk,\n  createLabelResourceAssociationsBulk,\n  updateLabelAPI,\n  deleteLabelAPI,\n  updateLabelsVisibilityAPI,\n  updateLabelAssociationsBulkAPI,\n  reorderLabelsAPI,\n} from './utils/api.utils';\nimport { convertObjectKeysToCamelCase } from './utils/apiHelpers';\n\nimport {\n  addLabels,\n  removeLabels,\n  reorderLabels as reorderLabelsUtil,\n  updateLabels,\n} from './utils/labels.utils';\nimport {\n  handleTelemetry,\n  TELEMETRY_EVENTS,\n} from 'legacy/src/utility/telemetry';\nimport {\n  resourcesForBulkInitState,\n  resourceTypes,\n} from 'legacy/src/components/TeacherOrganize/utils/constants';\nimport { useBulkDeleteManager } from './useBulkDeleteManager';\n\nfunction TeacherOrganizeProvider({\n  children,\n  subjects,\n  router,\n  isTeacherInfoLoading,\n}) {\n  /**\n   * A map of label ID to the details of the full object\n   * to allow easy lookup\n   */\n\n  const [labels, setLabels] = useState({});\n  const [isLoading, setIsLoading] = useState(false);\n  const [isReordering, setIsReordering] = useState(false);\n  const [isBulkMode, setIsBulkMode] = useState(false);\n  const [bulkActionType, setBulkActionType] = useState('');\n\n  const [resourcesForBulk, setResourcesForBulk] = useState(\n    resourcesForBulkInitState,\n  );\n\n  const {\n    isAssignmentProgressPage,\n    isAssignmentsPage,\n    isSppTeacherPreviewPage,\n  } = (router && useNavigation({ router })) || {};\n\n  useEffect(() => {\n    const isLabelAction = bulkActionType === BULK_ACTION_TYPES.LABEL;\n    if (isBulkMode && isLabelAction) {\n      const isBulkLabelPage =\n        isAssignmentsPage ||\n        isAssignmentProgressPage ||\n        isSppTeacherPreviewPage;\n\n      if (!isBulkLabelPage) {\n        deactivateBulkMode();\n      }\n    }\n  }, [isAssignmentsPage, isAssignmentProgressPage, isSppTeacherPreviewPage]);\n\n  const updateLabelState = (labelData) =>\n    setLabels(updateLabels(labels, labelData));\n  const removeLabelState = (labelData) =>\n    setLabels(removeLabels(labels, labelData));\n  const addLabelState = (labelData) => setLabels(addLabels(labels, labelData));\n  const updateLabelVisibilityState = (studentVisible, masterSubjectId) => {\n    const labelsTemp = labels;\n    const subjectLabels = labelsTemp[masterSubjectId]?.labels;\n    subjectLabels &&\n      Object.values(subjectLabels).forEach((label) => {\n        labelsTemp[masterSubjectId].labels[label.labelId] = {\n          ...label,\n          studentVisible,\n        };\n      });\n    setLabels(labelsTemp);\n  };\n\n  useEffect(() => {\n    const labelsTemp = {};\n    (subjects || []).forEach(({ id, labels: subjectLabels }) => {\n      labelsTemp[id] = calculateCache({ subjectLabels });\n    });\n    setLabels(labelsTemp);\n  }, [subjects]);\n\n  const createLabel = async (label) => {\n    setIsLoading(true);\n    const apiResponse = await createLabelAPI(label);\n    if (apiResponse.success) {\n      toast(`\"${label?.name}\" label created`);\n      apiResponse.data = {\n        ...apiResponse.data,\n        id: apiResponse.data.id.toString(),\n      };\n      addLabelState(convertObjectKeysToCamelCase(apiResponse.data));\n    } else {\n      toast('Error creating label');\n    }\n    setIsLoading(false);\n  };\n\n  const updateLabel = async (label) => {\n    setIsLoading(true);\n    const apiResponse = await updateLabelAPI(label);\n    if (apiResponse.success) {\n      toast(`\"${apiResponse?.data?.name}\" label updated`);\n      updateLabelState(convertObjectKeysToCamelCase(apiResponse.data));\n    } else {\n      toast('Error updating label');\n    }\n    setIsLoading(false);\n  };\n\n  const deleteLabel = async (label) => {\n    const apiResponse = await deleteLabelAPI(label);\n    if (apiResponse.success) {\n      toast(`\"${label?.name}\" label deleted`);\n      removeLabelState(convertObjectKeysToCamelCase(apiResponse.data));\n    } else {\n      toast('Error deleting label');\n    }\n    setIsLoading(false);\n  };\n\n  const reorderLabels = async (labelIds, masterSubjectId) => {\n    setIsReordering(true);\n    const apiResponse = await reorderLabelsAPI(labelIds);\n    if (apiResponse.success) {\n      setLabels(reorderLabelsUtil(labels, apiResponse.data, masterSubjectId));\n    } else {\n      toast('Error reordering labels');\n    }\n    setIsReordering(false);\n  };\n\n  const createLabelAssociation = (params) => {\n    if (!params.type) throw new Error('Provide the type of assessment.');\n\n    const isVideo = params.type === resourceTypes.video;\n    const actionMethod = isVideo\n      ? createLabelResourceAssociation\n      : createLabelItemAssociation;\n\n    return actionMethod(params);\n  };\n\n  const updateLabelAssociations = async (type, resourceId, labelIds) => {\n    return await updateLabelAssociationsBulkAPI(type, resourceId, labelIds);\n  };\n\n  const createLabelItemAssociations = async ({ quizId, labelIds }) => {\n    return await createLabelItemAssociationsBulk({\n      quizId,\n      labelIds,\n    });\n  };\n\n  const createLabelResourceAssociations = async ({ resourceId, labelIds }) => {\n    return await createLabelResourceAssociationsBulk({\n      resourceId,\n      labelIds,\n    });\n  };\n\n  const updateLabelsVisibility = async (isStudentVisible, masterSubjectId) => {\n    setIsLoading(true);\n    const apiResponse = await updateLabelsVisibilityAPI(\n      isStudentVisible,\n      masterSubjectId,\n    );\n    handleTelemetry(\n      'teacher_organize',\n      TELEMETRY_EVENTS.teacherUpdateShowLabels,\n      {\n        student_visible: isStudentVisible,\n        subjectId: masterSubjectId,\n      },\n    );\n    if (apiResponse.success) {\n      const successToastText = isStudentVisible\n        ? 'Labels with assignments visible to students'\n        : 'Labels hidden from students';\n      toast(successToastText);\n      updateLabelVisibilityState(isStudentVisible, masterSubjectId);\n    } else {\n      toast(\n        'Error processing backend requests. Please contact the support team.',\n      );\n    }\n    setIsLoading(false);\n  };\n\n  // bulk adding mode\n  const resourcesForBulkLength = Object.keys(resourcesForBulk).reduce(\n    (result, resourceForType) => {\n      return result + Object.keys(resourcesForBulk[resourceForType]).length;\n    },\n    0,\n  );\n\n  const deactivateBulkMode = () => {\n    setIsBulkMode(false);\n    setBulkActionType('');\n    clearBulkSelections();\n  };\n\n  const isBulkDeleteAction = bulkActionType === BULK_ACTION_TYPES.DELETE;\n  const isBulkLabelAction = bulkActionType === BULK_ACTION_TYPES.LABEL;\n\n  const { savedStatusFilter, activateBulkDeleteMode } = useBulkDeleteManager({\n    isBulkMode,\n    bulkActionType,\n    isBulkDeleteAction,\n    router,\n    deactivateBulkMode,\n  });\n\n  const activateBulkMode = (type) => {\n    if (type === BULK_ACTION_TYPES.DELETE) {\n      activateBulkDeleteMode();\n    }\n    setIsBulkMode(true);\n    setBulkActionType(type);\n  };\n\n  const clearBulkSelections = () => {\n    setResourcesForBulk(resourcesForBulkInitState);\n  };\n\n  const addOrRemoveBulk = (id, type, removeIfExists = true) => {\n    /**\n     * If we decide to be able to bulk mode PDFs, remove\n     * this condition\n     */\n    if (type === resourceTypes.pdf) {\n      return;\n    }\n    setResourcesForBulk((currentState) => {\n      const typeToAdd = [resourceTypes.video, resourceTypes.pdf].includes(type)\n        ? type\n        : resourceTypes.item;\n      const state = window.structuredClone(currentState);\n\n      const currentStateForType = state[typeToAdd];\n\n      if (removeIfExists && currentStateForType[id]) {\n        delete currentStateForType[id];\n      } else {\n        currentStateForType[id] = true;\n      }\n\n      return state;\n    });\n  };\n\n  const checkIfResourceSelectedBulk = (id) =>\n    Object.keys(resourcesForBulk).some(\n      (resourceForType) => resourcesForBulk[resourceForType][id],\n    );\n\n  // might need to memoize\n  const value = {\n    state: {\n      labels,\n      isLoading,\n      isBulkMode,\n      resourcesForBulk,\n      resourcesForBulkLength,\n      isReordering,\n      isTeacherInfoLoading,\n      savedStatusFilter,\n      isBulkDeleteAction,\n      isBulkLabelAction,\n    },\n    actions: {\n      createLabel,\n      updateLabel,\n      deleteLabel,\n      updateLabelsVisibility,\n      createLabelAssociation,\n      createLabelItemAssociations,\n      createLabelResourceAssociations,\n      updateLabelAssociations,\n      activateBulkMode,\n      deactivateBulkMode,\n      addOrRemoveBulk,\n      checkIfResourceSelectedBulk,\n      clearBulkSelections,\n      reorderLabels,\n    },\n  };\n  return <Context.Provider value={value}>{children}</Context.Provider>;\n}\n\nfunction useTeacherOrganizeContext({ masterSubject }) {\n  const context = React.useContext(Context);\n  if (context === undefined) {\n    throw new Error(\n      'useTeacherOrganizeContext must be used within a TeacherOrganizeProvider',\n    );\n  }\n  const subjectLabels = context.state.labels[masterSubject] || {};\n\n  const { labels = {}, parents = [], children = {} } = subjectLabels;\n  const labelIds = Object.keys(labels);\n\n  const isStudentVisible =\n    labelIds.length > 0 ? labels[labelIds[0]].studentVisible : false;\n\n  return {\n    ...context,\n    subjectLabels,\n    isStudentVisible,\n    labels,\n    parents,\n    children,\n  };\n}\n\nexport { TeacherOrganizeProvider, useTeacherOrganizeContext };\n","import {\n  convertApiParams,\n  createDeleteRequest,\n  createPatchRequest,\n  createPostRequest,\n  createPutRequest,\n} from './apiHelpers';\n\nexport const API_TYPES_MAP = {\n  assessments: 'item-labels',\n  video: 'resource-labels',\n};\n\nconst createLabelAPI = async (label) =>\n  createPostRequest({\n    url: `/assessments/api/labels/`,\n    params: convertApiParams(label),\n  });\n\nconst updateLabelAPI = async (label) =>\n  createPatchRequest({\n    url: `/assessments/api/labels/${label.labelId}/`,\n    params: convertApiParams(label),\n  });\n\nconst deleteLabelAPI = async ({ labelId }) =>\n  createDeleteRequest({ url: `/assessments/api/labels/${labelId}/` });\n\nconst createLabelItemAssociation = async ({ labelId, resourceId }) =>\n  createPostRequest({\n    url: `/assessments/api/item-labels/`,\n    params: { label_id: labelId, item_id: resourceId },\n  });\n\nconst createLabelResourceAssociation = async ({ labelId, resourceId }) =>\n  createPostRequest({\n    url: `/assessments/api/resource-labels/`,\n    params: { label_id: labelId, resource_id: resourceId },\n  });\n\nconst createLabelItemAssociationsBulk = async ({\n  quizId = null,\n  labelIds = [],\n}) =>\n  createPutRequest({\n    url: `/assessments/api/item-labels/bulk/${quizId}`,\n    params: { label_ids: labelIds },\n  });\n\nconst createLabelResourceAssociationsBulk = async ({\n  resourceId = null,\n  labelIds = [],\n}) =>\n  createPutRequest({\n    url: `/assessments/api/resource-labels/bulk/${resourceId}`,\n    params: { label_ids: labelIds },\n  });\n\nconst updateLabelsVisibilityAPI = async (studentVisible, masterSubjectId) =>\n  createPutRequest({\n    url: '/assessments/api/labels/student_visible/',\n    params: convertApiParams({ studentVisible, masterSubjectId }),\n  });\n\nconst updateLabelAssociationsBulkAPI = async (type, resourceId, label_ids) =>\n  createPutRequest({\n    url: `/assessments/api/${API_TYPES_MAP[type]}/bulk/${resourceId}`,\n    params: { label_ids },\n  });\n\nconst addMultipleLabelResourcesBulk = async ({\n  resourceIds = [],\n  labelIds = [],\n}) =>\n  createPutRequest({\n    url: `/assessments/api/resource-labels/bulk/`,\n    params: { label_ids: labelIds, resource_ids: resourceIds },\n  });\n\nconst addMultipleLabelItemsBulk = async ({ itemIds = [], labelIds = [] }) =>\n  createPutRequest({\n    url: `/assessments/api/item-labels/bulk/`,\n    params: { label_ids: labelIds, item_ids: itemIds },\n  });\n\nconst reorderLabelsAPI = async (label_ids) =>\n  createPatchRequest({\n    url: `/assessments/api/labels/reorder/`,\n    params: { label_ids },\n  });\n\nexport {\n  createLabelAPI,\n  updateLabelAPI,\n  deleteLabelAPI,\n  createLabelItemAssociation,\n  createLabelResourceAssociation,\n  createLabelItemAssociationsBulk,\n  createLabelResourceAssociationsBulk,\n  updateLabelsVisibilityAPI,\n  updateLabelAssociationsBulkAPI,\n  addMultipleLabelItemsBulk,\n  addMultipleLabelResourcesBulk,\n  reorderLabelsAPI,\n};\n","import axios from 'axios';\n\nconst camelToSnakeCase = (str) => {\n  return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);\n};\nconst toCamelCase = (str) => {\n  return str.replace(/([-_][a-z])/g, (group) =>\n    group.toUpperCase().replace('-', '').replace('_', ''),\n  );\n};\n\nexport const convertObjectKeysToCamelCase = (obj) => {\n  const newObj = {};\n  Object.keys(obj).forEach((key) => {\n    newObj[toCamelCase(key)] = obj[key];\n  });\n  return newObj;\n};\n\nexport const convertApiParams = (obj) => {\n  const result = {};\n  // eslint-disable-next-line no-unused-vars\n  for (const key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      const newKey = camelToSnakeCase(key);\n      result[newKey] = obj[key];\n    }\n  }\n  return result;\n};\n\nexport const createApiRequest = async (fn = () => {}) => {\n  try {\n    const response = await fn;\n\n    if (response.status >= 400) {\n      return { success: false, error: response.statusText };\n    }\n    return { success: true, data: response.data };\n  } catch (error) {\n    return { success: false, error: error.message };\n  }\n};\n\nexport const createPostRequest = async ({ url, params }) =>\n  await createApiRequest(axios.post(`${FYM_BACKEND_URL}${url}`, params));\n\nexport const createPutRequest = async ({ url, params }) =>\n  await createApiRequest(axios.put(`${FYM_BACKEND_URL}${url}`, params));\n\nexport const createDeleteRequest = async ({ url }) =>\n  await createApiRequest(axios.delete(`${FYM_BACKEND_URL}${url}`));\n\nexport const createPatchRequest = async ({ url, params }) =>\n  await createApiRequest(axios.patch(`${FYM_BACKEND_URL}${url}`, params));\n","const getSortOrder = ({ labelCache, label }) => {\n  const { order, parentId } = label;\n  // children should be sorted relative to their parent order *and* theirs\n  if (parentId) {\n    return Number.parseFloat(`${labelCache[parentId].order}.${order}`);\n  }\n  return order;\n};\n\nexport default ({ subjectLabels }) => {\n  if (subjectLabels.length === 0) {\n    return {};\n  }\n\n  const labelCache = subjectLabels.reduce(\n    (accumulator, label) => ({\n      ...accumulator,\n      [label?.labelId]: { ...label },\n    }),\n    {},\n  );\n\n  // ensure the labels are rendered in the correct order based on the order field\n  // this allows us correctly set an index on each label and A LOT more easily\n  // meet a11y requirements\n  const sortedLabels = Object.values(labelCache).sort((a, b) => {\n    // sorting of a some child and some parent where the parent and child are related: descending\n    // additional sorting labels by co-teacher, using userId. FY-31496\n    if (a.userId !== b.userId) {\n      return a.userId - b.userId;\n    }\n\n    if (a.labelId === b.parentId) {\n      return -1;\n    }\n\n    if (b.labelId === a.parentId) {\n      return 1;\n    }\n\n    // every other time, sort ascending\n    const aSortOrder = getSortOrder({ labelCache, label: a });\n    const bSortOrder = getSortOrder({ labelCache, label: b });\n\n    return aSortOrder - bSortOrder;\n  });\n\n  // build an ordered hierarchy\n  // NOTE, keys are automatically sorted by JS so we need to calculate parents separately\n  // if we want to get them in order\n  const parents = [];\n  const orderedParentChildHierarchy = sortedLabels.reduce(\n    (accumulator, label, index) => {\n      const { parentId, labelId } = label;\n\n      // used for a11y\n      labelCache[labelId].index = index;\n      labelCache[labelId].lastIndex = subjectLabels.length - 1;\n\n      if (!parentId) {\n        parents.push(labelId);\n        return {\n          ...accumulator,\n          [labelId]: [...(accumulator[labelId] || [])],\n        };\n      }\n\n      return {\n        ...accumulator,\n        [parentId]: [...(accumulator[parentId] || []), labelId],\n      };\n    },\n    {},\n  );\n\n  return {\n    labels: labelCache,\n    parents,\n    children: orderedParentChildHierarchy,\n  };\n};\n","export { default as calculateCache } from './calculateCache';\n","import calculateCache from './calculateCache';\nimport get from 'lodash/get';\n\nexport const updateLabels = (labels, labelData) => {\n  if (typeof labels !== 'object' || typeof labelData !== 'object') {\n    throw new Error('Invalid parameters provided');\n  }\n\n  const { id, ...rest } = labelData;\n  const updatedLabelData = { labelId: id?.toString(), ...rest };\n  const { masterSubjectId } = updatedLabelData;\n\n  // Check if labels[masterSubjectId] exists, otherwise use an empty array as a fallback\n  const subjectLabels = labels[masterSubjectId]?.labels || [];\n\n  // Get the current subjectLabels and add the new data to it\n  const currentSubjectLabels = [\n    ...Object.values(subjectLabels),\n    updatedLabelData,\n  ];\n\n  // Replace the object with the same labelId in the subjectLabels array\n  const updatedSubjectLabels = currentSubjectLabels.reduce(\n    (accumulator, label) => {\n      const existingLabelIndex = accumulator.findIndex(\n        (item) => item.labelId === label.labelId,\n      );\n\n      if (existingLabelIndex > -1) {\n        accumulator[existingLabelIndex] = label;\n      } else {\n        accumulator.push(label);\n      }\n\n      return accumulator;\n    },\n    [],\n  );\n\n  return {\n    ...labels,\n    [masterSubjectId]: calculateCache({\n      subjectLabels: updatedSubjectLabels,\n    }),\n  };\n};\n\nexport const addLabels = (labels, labelData) => {\n  if (typeof labels !== 'object' || typeof labelData !== 'object') {\n    throw new Error('Invalid parameters provided');\n  }\n\n  const { id, ...rest } = labelData;\n  const updatedLabelData = { labelId: id, ...rest };\n  const { masterSubjectId } = updatedLabelData;\n\n  // Get the current subjectLabels and add the new data to it\n  const currentSubjectLabels = labels[masterSubjectId]?.labels\n    ? [...Object.values(labels[masterSubjectId].labels), updatedLabelData]\n    : [updatedLabelData];\n\n  // Replace the object with the same labelId in the subjectLabels array\n  return {\n    ...labels,\n    [masterSubjectId]: calculateCache({\n      subjectLabels: currentSubjectLabels,\n    }),\n  };\n};\n\nexport const removeLabels = (labels, labelData) => {\n  if (typeof labels !== 'object' || typeof labelData !== 'object') {\n    throw new Error('Invalid parameters provided');\n  }\n\n  const { id, ...rest } = labelData;\n  const updatedLabelData = { labelId: id, ...rest };\n  const { masterSubjectId, labelId } = updatedLabelData;\n\n  if (!masterSubjectId) {\n    throw new Error('Invalid label data provided');\n  }\n\n  const currentSubjectLabels = labels[masterSubjectId]?.labels\n    ? [...Object.values(labels[masterSubjectId].labels)]\n    : [];\n\n  // Remove the parent label and its children\n  const updatedLabelsArray = currentSubjectLabels.filter((label) => {\n    if (parseInt(label.labelId, 10) === parseInt(labelId, 10)) {\n      // Remove the parent label with null parentId\n      return false;\n    }\n    if (parseInt(label.parentId, 10) === parseInt(labelId, 10)) {\n      // Remove the child labels of the parent label\n      return false;\n    }\n    return true;\n  });\n\n  // Update the labels object with the new labels\n  return {\n    ...labels,\n    [masterSubjectId]: calculateCache({\n      subjectLabels: updatedLabelsArray,\n    }),\n  };\n};\n\nexport const reorderLabels = (labels, labelData, masterSubjectId) => {\n  if (typeof labels !== 'object' || typeof labelData !== 'object') {\n    throw new Error('Invalid parameters provided');\n  }\n\n  // Check if labels[masterSubjectId] exists, otherwise use an empty array as a fallback\n  const subjectLabels = labels[masterSubjectId]?.labels || {};\n\n  // Replace order in the labels where label ID is a match in labelData\n  const updatedSubjectLabels = Object.values(subjectLabels).reduce(\n    (accumulator, label) => {\n      const order = get(labelData, label.labelId, label.order);\n      accumulator.push({\n        ...label,\n        order,\n      });\n      return accumulator;\n    },\n    [],\n  );\n\n  return {\n    ...labels,\n    [masterSubjectId]: calculateCache({\n      subjectLabels: updatedSubjectLabels,\n    }),\n  };\n};\n","import React from 'react';\n\n/**\n * Context properties\n * */\nconst TeacherOrganizeContext = React.createContext();\nTeacherOrganizeContext.displayName = 'TeacherOrganizeContext';\nexport default TeacherOrganizeContext;\n","import React from 'react';\n\nexport const LABEL_MODES = {\n  create: 'create',\n  edit: 'edit',\n};\n\nexport const LABEL_BUTTON_CLASS = {\n  create: 'create-label-button',\n  edit: 'edit-label-button',\n  delete: 'delete-label-button',\n  menu: 'popover-action',\n  toggleLabelVisibility: 'toggle-label-visibility',\n  moveup: 'move-up-button',\n  movedown: 'move-down-button',\n};\n\nexport const LEFT_POPOVER_MENU_NAME = {\n  create: 'New Label',\n  edit: 'Edit',\n  delete: 'Delete Label',\n};\n\nexport const TEACHER_ORGANIZE_EXAMPLE_MODAL = {\n  title: 'Labels',\n  ...LEFT_POPOVER_MENU_NAME,\n};\n\nexport const DELETE_CONFIRMATION_DEFAULT = (\n  <React.Fragment>\n    Are you sure you want to delete this label? This will also delete all labels\n    nested under this one, and will remove this label from all resources.\n    <br />\n    <br />\n    This action cannot be undone.\n  </React.Fragment>\n);\n\nexport const resourceTypes = {\n  item: 'item',\n  video: 'video',\n  pdf: 'pdf',\n};\n\nexport const resourcesForBulkInitState = {\n  [resourceTypes.item]: {},\n  [resourceTypes.video]: {},\n  [resourceTypes.pdf]: {},\n};\n","export type SecureLinkPlatforms = {\n  Win: string;\n  Mac: string;\n  iPad: string;\n};\n\nexport const PLATFORMS: SecureLinkPlatforms = {\n  Win: SECURE_BROWSER_LINK_WINDOWS,\n  Mac: SECURE_BROWSER_LINK_MACOSX,\n  iPad: SECURE_BROWSER_LINK_IOS,\n};\n","import {\n  PLATFORMS,\n  type SecureLinkPlatforms,\n} from 'chameleon/legacy/src/components/apstudent/handlers/Assignments/constants';\nimport { OPERATING_SYSTEMS } from 'legacy/src/constants/operatingSystems';\n\nexport const isIpad = (): boolean => {\n  const { platform, maxTouchPoints } = navigator;\n  return (\n    platform === OPERATING_SYSTEMS.IPAD ||\n    (platform === OPERATING_SYSTEMS.MAC_INTEL && maxTouchPoints > 0)\n  );\n};\n\nexport const getDownloadURL = (): string | null => {\n  let url = null;\n  (Object.keys(PLATFORMS) as Array<keyof SecureLinkPlatforms>).forEach(\n    (platform) => {\n      if (navigator.platform.indexOf(platform) > -1) {\n        url = isIpad()\n          ? PLATFORMS.iPad\n          : `${FYM_FRONTEND_URL}/${PLATFORMS[platform]}`;\n      }\n    },\n  );\n  return url;\n};\n","import * as types from 'legacy/src/constants/types';\nimport { combineReducers } from 'redux';\nimport createReducer from 'legacy/src/shared/util/createReducer';\n\n// These properties are likely unused, but we keep their initial values just in case\nconst initialState = {\n  assignments: [],\n  readinessCheck: null,\n  loadingAssignments: false,\n};\n\nconst reducer = createReducer(initialState, {});\n\nconst assignmentScroll = (\n  state = {\n    assignments: {},\n  },\n  action,\n) => {\n  switch (action.type) {\n    case types.Assignment:\n      return action.payload || {};\n    default:\n      return state;\n  }\n};\n\nexport default combineReducers({\n  reducer,\n  assignmentScroll,\n});\n","import createReducer from 'legacy/src/shared/util/createReducer';\n\n// These properties are likely unused, but we keep their initial values just in case\nconst initialState = {\n  assignments: null,\n  submitting: false,\n};\n\nconst reducer = createReducer(initialState, {});\n\nexport default reducer;\n","export const SET_ACTIVE_GROUP = 'Filters/SET_ACTIVE_GROUP';\nexport const setActiveGroup = (groupSelection) => {\n  const id =\n    groupSelection && groupSelection.value !== 'all-value'\n      ? groupSelection.value\n      : null;\n\n  return {\n    type: SET_ACTIVE_GROUP,\n    payload: { id },\n  };\n};\n\nexport const RESET_FILTERS = 'Filters/RESET_FILTERS';\nexport const resetFilters = () => ({\n  type: RESET_FILTERS,\n});\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport { SET_ACTIVE_GROUP, RESET_FILTERS } from './actions';\n\nconst initialState = {\n  activeGroup: null,\n  activeStatus: null,\n};\n\nconst reducer = createReducer(initialState, {\n  [SET_ACTIVE_GROUP]: (state, { payload }) => ({\n    ...state,\n    activeGroup: payload.id || null,\n  }),\n  [RESET_FILTERS]: () => initialState,\n});\n\nexport default reducer;\n","import StackedBar from 'legacy/src/utility/StackedBar';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nconst { bool, array } = PropTypes;\n\nclass PerformanceBar extends Component {\n  static OverInterpretingMessage = () => <span>OverInterpretingMessage</span>;\n\n  static propTypes = {\n    showLabels: bool,\n    isSmall: bool,\n    stacks: array.isRequired,\n    isAutoHeight: bool,\n  };\n\n  static defaultProps = {\n    report: {},\n    total: null,\n    showLabels: false,\n    isSmall: false,\n    stacks: [],\n    isAutoHeight: false,\n  };\n\n  render() {\n    const { showLabels, isSmall, stacks, isAutoHeight } = this.props;\n    return (\n      <StackedBar\n        isSmall={isSmall}\n        showLabels={showLabels}\n        stacks={stacks}\n        isAutoHeight={isAutoHeight}\n      />\n    );\n  }\n}\n\nexport default PerformanceBar;\n","import PopOver from 'chameleon/ui-stack/ui/base/popover';\nimport { Link as RouterLink } from 'react-router';\nimport Button from 'chameleon/ui-stack/ui/base/button';\nimport PerformanceBar from '../PerformanceBar';\nimport PerformanceDetails from '../PerformanceDetails';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport cn from 'classnames';\n\nexport const questionTiers = [\n  {\n    label: 'Correct',\n    topLimit: 100,\n    bottomLimit: 2,\n    type: 'correct',\n  },\n  {\n    label: 'Incorrect',\n    bottomLimit: 0,\n    topLimit: 1,\n    type: 'incorrect',\n  },\n];\n\nexport const questionFRQTiers = [\n  {\n    label: 'Full Credit',\n    topLimit: 100,\n    bottomLimit: 100,\n    type: 'correct',\n  },\n  {\n    label: 'Partial Credit',\n    topLimit: 99,\n    bottomLimit: 2,\n    type: 'partial',\n    isHiddenByDefault: true,\n  },\n  {\n    label: 'No Credit',\n    bottomLimit: 0,\n    topLimit: 1,\n    type: 'incorrect',\n  },\n];\n\nconst PerformanceBarPopover = ({\n  stacks,\n  ariaLabel,\n  ariaDescribedBy,\n  studentUrl,\n  contentOffset,\n  perfDetailsTitle,\n  perfDetailsFooter,\n  showFooter,\n  isWeighed,\n  showScore,\n  disableNoResultsLink,\n  resultsUrl,\n  fullWidth = false,\n  disabled,\n  assignmentProgressText,\n  assignmentProgressLink,\n  onProgressBarClick,\n  isAutoHeight,\n  stackMinWidth,\n  size,\n  ...props\n}) => (\n  <PopOver\n    showCloseButton\n    className={cn('progress_details_popover popover_underneath', {\n      'w-full': fullWidth,\n      'cursor-default': disabled,\n      'h-full': isAutoHeight,\n    })}\n    buttonClassName={cn('w-full', { 'h-full': isAutoHeight })}\n    size={size}\n    contentOffset={contentOffset}\n    disabled={disabled}\n    accessibility={{\n      'aria-label': ariaLabel,\n      'aria-describedby': ariaDescribedBy,\n      // Test attribute\n      'data-test-perf-details-popover': '',\n    }}\n    trigger={\n      onProgressBarClick ? (\n        <div\n          onClick={onProgressBarClick}\n          role=\"link\"\n          tabIndex={0}\n          className={cn({ 'h-full': isAutoHeight })}\n        >\n          <PerformanceBar\n            data-test-perf-bar\n            isSmall\n            stacks={stacks}\n            isAutoHeight={isAutoHeight}\n          />\n        </div>\n      ) : (\n        <PerformanceBar\n          data-test-perf-bar\n          isSmall\n          stacks={stacks}\n          isAutoHeight={isAutoHeight}\n        />\n      )\n    }\n    {...props}\n  >\n    <PerformanceDetails\n      showScore={showScore}\n      isWeighted={isWeighed}\n      id={ariaDescribedBy}\n      stacks={stacks}\n      studentUrl={studentUrl}\n      title={perfDetailsTitle}\n      footer={perfDetailsFooter}\n      showFooter={showFooter}\n      disableNoResultsLink={disableNoResultsLink}\n      stackMinWidth={stackMinWidth}\n    />\n    <div className=\"flex flex-row justify-end items-center\">\n      {assignmentProgressLink && (\n        <RouterLink className=\"mr-5\" to={assignmentProgressLink}>\n          <Button\n            tabIndex={0}\n            accessibility={{\n              'aria-label': assignmentProgressText,\n            }}\n            className=\"bg-white border border-blue-500\"\n          >\n            {assignmentProgressText}\n          </Button>\n        </RouterLink>\n      )}\n      {resultsUrl && (\n        <RouterLink to={resultsUrl}>\n          <Button\n            tabIndex={0}\n            accessibility={{\n              'aria-label': 'View Results',\n            }}\n            isPrimary\n          >\n            View Results\n          </Button>\n        </RouterLink>\n      )}\n    </div>\n  </PopOver>\n);\n\nPerformanceBarPopover.propTypes = {\n  stacks: PropTypes.array.isRequired,\n  ariaLabel: PropTypes.string.isRequired,\n  ariaDescribedBy: PropTypes.string.isRequired,\n  studentUrl: PropTypes.string,\n  contentOffset: PropTypes.string,\n  perfDetailsTitle: PropTypes.element,\n  perfDetailsFooter: PropTypes.element,\n  showFooter: PropTypes.bool,\n  showScore: PropTypes.bool,\n  disableNoResultsLink: PropTypes.bool,\n  size: PropTypes.oneOf(['auto', 'narrow', 'normal', 'medium', 'wide', 'full']),\n  isAutoHeight: PropTypes.bool,\n  stackMinWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  position: PropTypes.oneOf([\n    'left',\n    'start',\n    'center',\n    'end',\n    'top',\n    'top-start',\n    'top-center',\n    'top-end',\n    'bottom',\n    'bottom-start',\n    'bottom-center',\n    'bottom-end',\n    'right',\n    'right-start',\n    'right-center',\n    'right-end',\n  ]),\n};\n\nPerformanceBarPopover.defaultProps = {\n  studentUrl: '/',\n  contentOffset: '0 0 0 0',\n  perfDetailsTitle: null,\n  perfDetailsFooter: null,\n  showFooter: false,\n  showScore: true,\n  disableNoResultsLink: false,\n  size: 'full',\n};\n\nexport default PerformanceBarPopover;\n","import React from 'react';\nimport { Link } from 'react-router';\nimport cn from 'classnames';\nimport { Icon } from 'legacy/packages/ft-cb';\nimport { createWeightedStacks } from 'legacy/src/utility/progressHelpers';\n\nimport './styles.scss';\n\n/**\n * PerformanceDetails\n * Display the list of students associated with each performance level category.\n */\nconst PerformanceDetails = ({\n  stacks = [],\n  studentUrl,\n  title,\n  footer,\n  showFooter,\n  id,\n  showScore = true,\n  isWeighted,\n  disableNoResultsLink = false,\n  stackMinWidth,\n}) => {\n  const stackWidth = `${100 / stacks.length}%`;\n  const weightedStacks = createWeightedStacks(stacks, isWeighted);\n\n  return (\n    <div className=\"PerformanceDetails\" id={id}>\n      {title && <div className=\"title\">{title}</div>}\n\n      <div className=\"content\">\n        {weightedStacks.map((stack) => (\n          <div\n            key={stack.status}\n            className=\"block\"\n            data-test-tier={stack.status}\n            style={{\n              width: stackWidth,\n              flex: stack.flex,\n            }}\n          >\n            <h5 className={cn('title', stack.status)}>\n              {stack.label}\n              <span className=\"info\">\n                {stack.students.length}\n                <Icon name=\"person\" size=\"15px\" />\n              </span>\n            </h5>\n\n            <div\n              className={cn('list-wrapper', {\n                '--columned': stack.hasExpandedView,\n              })}\n            >\n              {stack.studentGroups.map((group, i, groups) => (\n                <ul\n                  data-test-student-group\n                  className=\"list\"\n                  key={i}\n                  style={{\n                    width: `${100 / groups.length}%`,\n                    minWidth: stackMinWidth,\n                  }}\n                >\n                  {group &&\n                    group.map((student) => {\n                      const firstName = student.first_name || student.firstName;\n                      const lastName = student.last_name || student.lastName;\n                      const userId = student.user_id || student.id;\n                      return (\n                        <li\n                          key={userId}\n                          className=\"list-item\"\n                          data-test-tier-student={userId}\n                        >\n                          {studentUrl &&\n                          !(stack.isNoResults && disableNoResultsLink) ? (\n                            <Link\n                              to={`${studentUrl}/${userId}`}\n                              title={`${firstName} ${lastName}`}\n                              className=\"link\"\n                              onClick={(event) => event.stopPropagation()}\n                            >\n                              {firstName} {lastName}\n                            </Link>\n                          ) : (\n                            <span>\n                              {firstName} {lastName}\n                            </span>\n                          )}\n\n                          {showScore && student.learnosityReport && (\n                            <span className=\"link-info\" data-test-score>\n                              {student.learnosityReportScoreParsed}/\n                              {student.learnosityReportMaxScore}\n                            </span>\n                          )}\n                        </li>\n                      );\n                    })}\n                </ul>\n              ))}\n            </div>\n          </div>\n        ))}\n      </div>\n\n      {showFooter && (\n        <div className=\"footer\" data-test-tier-footer>\n          {footer}\n        </div>\n      )}\n    </div>\n  );\n};\n\nexport default PerformanceDetails;\n","import { createRoutine } from 'redux-saga-routines';\n\n// Routines\nexport const fetchAssessments = createRoutine('assessment/FETCH_ASSESSMENTS');\nexport const fetchCategories = createRoutine('assessment/FETCH_CATEGORIES');\nexport const fetchSubjects = createRoutine('assessment/FETCH_SUBJECTS');\nexport const fetchGroupedAssignments = createRoutine(\n  'assessment/FETCH_GROUPED_ASSIGNMENTS',\n);\n\n// Standard Actions Types\nexport const RESET_ASSESSMENT_STATE = 'RESET_ASSESSMENT_STATE';\nexport const ADD_QUESTION_TO_STATE = 'ADD_QUESTION_TO_STATE';\nexport const ADD_QUESTIONS_LIST_TO_STATE = 'ADD_QUESTIONS_LIST_TO_STATE';\nexport const REMOVE_NEW_ITEM_FROM_STATE = 'REMOVE_NEW_ITEM_FROM_STATE';\n\n// Standard Action Creators\nexport const resetAssessmentState = () => ({\n  type: RESET_ASSESSMENT_STATE,\n});\n\nexport const addQuestion = (payload) => ({\n  type: ADD_QUESTION_TO_STATE,\n  payload,\n});\n\nexport const addQuestions = (payload, showNewItem = false) => ({\n  type: ADD_QUESTIONS_LIST_TO_STATE,\n  payload,\n  showNewItem,\n});\n\nexport const removeNewQuestion = () => ({\n  type: REMOVE_NEW_ITEM_FROM_STATE,\n});\n","import { isEmpty } from 'lodash';\n\nimport createReducer from 'legacy/src/shared/util/createReducer';\nimport {\n  fetchAssessments,\n  fetchSubjects,\n  fetchCategories,\n  fetchGroupedAssignments,\n  RESET_ASSESSMENT_STATE,\n  ADD_QUESTION_TO_STATE,\n  ADD_QUESTIONS_LIST_TO_STATE,\n  REMOVE_NEW_ITEM_FROM_STATE,\n} from './actions';\n\nconst initialState = {\n  loadingAssessments: false,\n  loadingAssignment: false,\n  loadingAssignments: false,\n  loadingSubjects: false,\n  loadingCategories: false,\n  loadingResults: false,\n  loadingGroupedAssignments: false,\n  activeAssignment: null,\n  assignments: {\n    assignments: [],\n    options: {\n      groups: [],\n      status: [],\n    },\n  },\n  itemsData: {\n    items: [],\n    total: 0,\n  },\n  itemData: null,\n  subjects: [],\n  results: {\n    results: [],\n    options: {\n      groups: [],\n    },\n  },\n  categories: {},\n  groupedAssignmentsData: {\n    assessments: [],\n  },\n  newItem: {},\n};\n\nconst reducer = createReducer(initialState, {\n  [RESET_ASSESSMENT_STATE]: () => initialState,\n  /**\n   * Fetch Assessments\n   */\n  [fetchAssessments.request]: (state) => ({\n    ...state,\n    loadingAssessments: true,\n  }),\n  [fetchAssessments.success]: (state, { payload }) => ({\n    ...state,\n    itemsData: payload,\n    loadingAssessments: false,\n  }),\n  [fetchAssessments.failure]: (state) => ({\n    ...state,\n    loadingAssessments: false,\n  }),\n\n  [ADD_QUESTIONS_LIST_TO_STATE]: (state, { payload, showNewItem }) => {\n    let { items: itemsList, total } = payload;\n    const isNewItemInFetchedItems =\n      !isEmpty(state.newItem) &&\n      !!itemsList.find((item) => item.item_id === state.newItem.item_id);\n    if (!isEmpty(state.newItem) && !isNewItemInFetchedItems && showNewItem) {\n      itemsList = [state.newItem, ...itemsList];\n      total += 1;\n    }\n    return {\n      ...state,\n      itemsData: {\n        ...payload,\n        items: itemsList,\n        total,\n      },\n      loadingAssessments: false,\n    };\n  },\n\n  [ADD_QUESTION_TO_STATE]: (state, { payload }) => ({\n    ...state,\n    newItem: payload,\n    loadingAssessments: false,\n  }),\n\n  [REMOVE_NEW_ITEM_FROM_STATE]: (state) => ({\n    ...state,\n    newItem: {},\n  }),\n\n  /**\n   * Fetch Subjects\n   */\n  [fetchSubjects.request]: (state) => ({\n    ...state,\n    loadingSubjects: true,\n  }),\n  [fetchSubjects.success]: (state, { payload }) => ({\n    ...state,\n    subjects: payload,\n  }),\n  [fetchSubjects.failure]: (state) => ({\n    ...state,\n    loadingSubjects: false,\n  }),\n\n  /**\n   * Fetch Categories\n   */\n  [fetchCategories.request]: (state) => ({\n    ...state,\n    loadingCategories: true,\n  }),\n  [fetchCategories.success]: (state, { payload }) => ({\n    ...state,\n    categories: payload,\n    loadingCategories: false,\n  }),\n  [fetchCategories.failure]: (state) => ({\n    ...state,\n    loadingCategories: false,\n  }),\n\n  /**\n   * Fetch Grouped Assignments\n   */\n  [fetchGroupedAssignments.request]: (state) => ({\n    ...state,\n    loadingGroupedAssignments: true,\n  }),\n  [fetchGroupedAssignments.success]: (state, { payload }) => ({\n    ...state,\n    groupedAssignmentsData: payload,\n    loadingGroupedAssignments: false,\n  }),\n  [fetchGroupedAssignments.failure]: (state) => ({\n    ...state,\n    loadingGroupedAssignments: false,\n  }),\n});\n\nexport default reducer;\n","import { takeLatest, all } from 'redux-saga/effects';\nimport apiSaga from 'legacy/src/shared/util/apiSagaGenerator';\nimport { applyFilterCustomLabel } from 'legacy/src/utility/AssessmentFilterProvider';\n\nimport {\n  fetchAssessments,\n  fetchSubjects,\n  fetchCategories,\n  fetchGroupedAssignments,\n} from './actions';\n\n/**\n * Assessments saga.\n * Create a new api saga for fetching assessment data.\n *\n * @param {Object} action.payload Data object.\n * @yield {apiSaga}               Api Response.\n */\nfunction* assessmentsSaga({ payload }) {\n  yield apiSaga(fetchAssessments, {\n    url: `tagging/api/subject/${payload.initId}/items/`,\n    data: payload.params,\n    silent: payload.silent,\n    callback: payload.callback,\n    callbackValue: payload.callbackValue,\n  });\n}\n\n/**\n * Subjects saga.\n * Create a new api saga for fetching subjects.\n *\n * @yield {apiSaga} Api Response.\n */\nfunction* subjectsSaga({ payload }) {\n  yield apiSaga(fetchSubjects, {\n    url: 'assessments/api/subjects/',\n    data: payload.params,\n  });\n}\n\n/**\n * Categories saga.\n * Create a new api saga for fetching categories..\n *\n * @param {Object} options.payload Data object.\n * @yield {apiSaga}                Api Response.\n */\nfunction* categoriesSaga({ payload }) {\n  const { initId, minimal_fields_only, subunitLabel, educationPeriod } =\n    payload;\n  yield apiSaga(\n    fetchCategories,\n    {\n      url: `tagging/api/subject/${initId}/categories/`,\n      data: { minimal_fields_only, educationPeriod },\n    },\n    (response) => {\n      if (subunitLabel) {\n        return applyFilterCustomLabel(response, subunitLabel);\n      }\n      return response;\n    },\n  );\n}\n\n/**\n * Grouped Assignments Saga.\n * Create a new api saga for fetching grouped assignments.\n *\n * @param {Object} action.payload Data object.\n * @yield {apiSaga}               Api Response.\n */\nfunction* groupedAssignmentsSaga({ payload }) {\n  yield apiSaga(fetchGroupedAssignments, {\n    url: `assessments/api/chameleon/assessments/${payload.subjectId}/`,\n    data: payload.params,\n    silent: payload.silent,\n  });\n}\n\n/**\n * Assessment Saga\n *\n * @yield {Saga} All sagas that belong to assessments.\n */\nexport default function* assessmentSaga() {\n  yield all([\n    takeLatest(fetchAssessments.TRIGGER, assessmentsSaga),\n    takeLatest(fetchSubjects.TRIGGER, subjectsSaga),\n    takeLatest(fetchCategories.TRIGGER, categoriesSaga),\n    takeLatest(fetchGroupedAssignments.TRIGGER, groupedAssignmentsSaga),\n  ]);\n}\n","export enum ASSESSMENT_TYPE_ENUM {\n  PPC = 'progress_check',\n  SPP = 'student_practice',\n  PE = 'practice_exam',\n  TEACHER_AUTHORED = 'teacher_quiz',\n  VIDEO = 'video',\n  LC = 'learning_checkpoint',\n  PT = 'performance_task',\n  LAB = 'lab',\n}\n","import React, { Component } from 'react';\nimport { getCbSession } from 'legacy/src/components/auth/utils';\nimport { isOnLogout } from 'legacy/src/utility/UrlPaths';\nimport { clearLocalStorage } from 'legacy/packages/ft-cb';\nimport { isLockdownBrowser } from './utils';\nimport { isImpersonating } from 'legacy/src/components/impersonating/utils';\nimport clearPersistedFilters from 'chameleon/src/components/questionBank/hooks/usePersistFilters/clearPersistedFilters';\nimport LOGOUT_WHITELIST from 'chameleon/ui-stack/constants/lc-logout-whitelist';\n\n/*\n * Identity Widget 5.1.0\n * Includes Levity as a dependency\n * */\nexport class IdentityWidget extends Component {\n  constructor(props) {\n    super(props);\n    this.identityHook = null;\n  }\n\n  render() {\n    return (\n      <div className=\"form_account_container\">\n        <div className=\"contents\">\n          <div id=\"ft-levity-login\" ref={(elm) => (this.identityHook = elm)} />\n        </div>\n      </div>\n    );\n  }\n}\n\nexport function bindLevityEvents() {\n  if (OVERRIDE_SSO_LOGIN) {\n    // eslint-disable-next-line no-console\n    console.info('SSO Override is enabled');\n    return;\n  }\n  this.props.bindLevityEventsAction();\n  const token = window.localStorage.getItem('account_access_token');\n  /**\n   * Get data about levity session, and bind handlers to Login/Logout events\n   */\n  const cbSession = getCbSession();\n  const cbObject = (window.cb && window.cb.core && window.cb.core.iam) || {};\n  // eslint-disable-next-line no-console\n  console.log(window.cb, '******window.cb');\n  // eslint-disable-next-line no-console\n  console.log(cbObject, '******cbObject.cb');\n\n  /**\n   * Lev says to extend timeout before trying to do a redirect or logout on our page\n   * to allow levity script to do a second fetch for bsauth. This will suspend logout event from completing\n   * even though levity fires logout event\n   */\n  if (cbObject.getEventBus) {\n    cbObject\n      .getEventBus()\n      .on(cbObject.events.Logout, () => levityLogout(this.props));\n    cbObject\n      .getEventBus()\n      .on(cbObject.events.Login, () => levityLogin(this.props));\n    cbObject\n      .getEventBus()\n      .on(cbObject.events?.AWSLogin, () => levityLogin(this.props)); // suggest By Levity devs to use this. Adding it as backup.\n  }\n\n  /**\n   * If user navigates back to fym from another service (e.g. units, am) after cbSession expiry, log user out.\n   */\n  if (\n    cbSession.isLoggedIn === false &&\n    token &&\n    !isOnLogout(this.props.location.pathname)\n  ) {\n    levityLogout(this.props);\n  }\n}\n/**\n * Listen for login event from Levity and auto-login a user if not already signed in\n */\nexport function levityLogin(props) {\n  const cbSession = getCbSession();\n  const tokenSessionId = window.localStorage.getItem('cb_session_id');\n  // eslint-disable-next-line no-console\n  console.log('levityLogin called...');\n  props.levityLoginAction(props);\n  /**\n   * There are two scenarios where you need a levity login\n   * 1. There is an active session on CB, and you don't have a token.\n   * 2. You have an active session on CB, and you have a token, but the id on CB session\n   *    differs from our session. In this case relogin user. This can happen if you logout from ROS without\n   *    having an open tab with APC and then log in again on ROS.\n   *    Levity just doesn't fires logout, and you are hanging with old user.\n   */\n  if (\n    cbSession.sessionId !== 'not_logged_in' &&\n    cbSession.sessionId &&\n    tokenSessionId\n  ) {\n    if (cbSession.sessionId !== tokenSessionId) {\n      clearLocalStorage(LOGOUT_WHITELIST);\n    }\n  }\n}\n\n/**\n * Listen for a logout event and auto-logout a user if they were signed in via SSO\n */\nfunction levityLogout(props) {\n  if (isLockdownBrowser()) return; // prevent SSO logout if the user is in a secure browser\n  // eslint-disable-next-line no-console\n  console.log('LevityLogout called...');\n  props.levityLogoutAction(props);\n  const token = window.localStorage.getItem('account_access_token');\n  // sometimes window.current_user was empty for pre-ap test user's direct login\n  // logout the case that user and token exists and user's login is SSO (test users are not SSO)\n  const user = props.userData.me || window.current_user;\n  const impersonating = isImpersonating();\n\n  if (token && user && !impersonating) {\n    clearPersistedFilters(user.initId);\n  }\n\n  if (token && user && (user.ssoLogin !== 'Not SSO' || impersonating)) {\n    window.location.href = `${FYM_FRONTEND_URL}/logout?next=${props.location.pathname}`;\n  }\n}\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { flowRight as compose } from 'lodash';\nimport { withMeQuery } from 'legacy/src/components/util';\nimport { clearDefaultEducationPeriod as clearDefaultEducationPeriodAction } from 'legacy/src/actions/educationPeriod';\n\n/**\n * This is certainly not a permissions container anymore, we are only\n * passing down props to children. We can get rid of this component\n * once it's children have all the props passed by it.\n *\n * @classdesc Permissions Container component\n * @param {object} params Router params\n * @param {array} routes Routes list\n * @param {array} nav Navigation redux store object\n * @param {object} router The react router handler\n * */\nexport default (WrappedComponent) => {\n  class PermissionsContainer extends Component {\n    componentDidUpdate(prevProps) {\n      const {\n        params: { subject },\n        meQuery,\n        userData,\n        clearDefaultEducationPeriod,\n      } = this.props;\n      const {\n        params: { subject: prevSubject },\n      } = prevProps;\n      if (prevSubject && prevSubject !== subject) {\n        meQuery.refetch();\n        clearDefaultEducationPeriod({ subject, userData });\n      }\n    }\n\n    render() {\n      return <WrappedComponent {...this.props} />;\n    }\n  }\n\n  function mapStateToProps(state) {\n    const { featureFlag, subject, userData } = state;\n    return {\n      userData,\n      showQuizBuilder: featureFlag.quiz_builder,\n      subjectData: subject.data,\n    };\n  }\n\n  return compose(\n    connect(mapStateToProps, {\n      clearDefaultEducationPeriod: clearDefaultEducationPeriodAction,\n    }),\n    withMeQuery,\n  )(PermissionsContainer);\n};\n","import { createRoutine } from 'redux-saga-routines';\nimport * as types from 'legacy/src/constants/types';\n\nfunction logoutSuccess() {\n  return { type: types.LOGOUT_SUCCESS };\n}\n\nexport function savePreferenceSuccess(payload) {\n  return {\n    type: types.SAVE_PREFERENCE_SUCCESS,\n    payload,\n  };\n}\n\nexport const levityLoginAction = createRoutine('LEVITY_LOGIN');\nexport const levityLogoutAction = createRoutine('LEVITY_LOGOUT');\nexport const bindLevityEventsAction = createRoutine('BIND_LEVITY_EVENTS');\nexport const storeCbSessionAction = createRoutine('STORE_CB_SESSION');\nexport const authenticateStrategyAction = createRoutine(\n  'AUTHENTICATE_STRATEGY',\n);\nexport const navigateToError = createRoutine('NAVIGATE_TO_ERROR');\nexport const redirectToHomeAction = createRoutine('REDIRECT_TO_HOME');\nexport const redirectToROSLoginAction = createRoutine('REDIRECT_TO_ROS_LOGIN');\nexport const redirectToLoginAction = createRoutine('REDIRECT_TO_LOGIN');\nexport const authorize = createRoutine('AUTHORIZE');\nexport const login = createRoutine('LOGIN');\nexport const storeApolloClientAction = createRoutine('STORE_APOLLO_CLIENT');\n\nexport function addSession(payload) {\n  return (dispatch) => {\n    dispatch(authorize.success(payload));\n  };\n}\n\nexport function endSession() {\n  return (dispatch) => {\n    dispatch(logoutSuccess());\n  };\n}\n","import { UserRoles } from 'chameleon/legacy/src/constants/common';\nimport { type Me } from 'chameleon/types/me';\nimport { type InjectedRouter } from 'react-router';\nimport {\n  type StudentSubject,\n  type TeacherSubject,\n  type AdminSubject,\n  type Subjects,\n} from 'chameleon/types/subjects';\nimport { DASHBOARD_ID } from 'chameleon/src/components/SidebarWrapperTwoLevels/constants';\nimport { isSubjectHasResource } from 'chameleon/src/utility/subjectResources';\n\nexport const getUserSubjects = (\n  me: Me | null | undefined,\n  subjects: {\n    studentSubjects: StudentSubject[];\n    teacherSubjects: TeacherSubject[];\n    adminSubjects: AdminSubject[];\n  },\n): Subjects => {\n  if (!me) return [];\n  return me.isStudent\n    ? subjects.studentSubjects\n    : me.isAdmin\n      ? subjects.adminSubjects\n      : subjects.teacherSubjects;\n};\n\nexport const handleRoleRedirect = (router: InjectedRouter, me: Me): boolean => {\n  const isAdmin = me.userRole.includes(UserRoles.ADMIN);\n  const isCoordinator = me.userRole.includes(UserRoles.COORDINATOR);\n\n  if (isAdmin) {\n    router.replace('/admin');\n    return true;\n  }\n  if (isCoordinator) {\n    router.replace('/coordinator');\n    return true;\n  }\n  return false;\n};\n\nexport const handleSubjectRedirect = (\n  router: InjectedRouter,\n  me: Me,\n  userSubjects: Subjects,\n): boolean => {\n  const firstSubjectId = userSubjects[0]?.id;\n\n  if (\n    userSubjects.length === 1 &&\n    me.isStudent &&\n    isSubjectHasResource(firstSubjectId, DASHBOARD_ID)\n  ) {\n    router.replace(`/${firstSubjectId}/assignments/dashboard`);\n    return true;\n  } else if (userSubjects.length > 1) {\n    router.replace('/subjects/preview');\n    return true;\n  } else if (firstSubjectId) {\n    router.replace(`/${firstSubjectId}/home`);\n    return true;\n  }\n\n  return false;\n};\n\nexport const redirectToUrl = (url: string): void => {\n  window.location.href = url;\n};\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport { storeCbSessionAction, storeApolloClientAction } from './actions';\n\nconst initialState = {\n  cbSession: null,\n  apolloClient: null,\n};\n\nconst reducer = createReducer(initialState, {\n  [storeCbSessionAction]: (state, { payload }) => ({\n    ...state,\n    cbSession: payload,\n  }),\n  [storeApolloClientAction]: (state, { payload }) => ({\n    ...state,\n    apolloClient: payload,\n  }),\n});\n\nexport default reducer;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withApollo } from 'react-apollo';\nimport { flowRight as compose } from 'lodash';\nimport { withRouter } from 'react-router';\nimport get from 'lodash/get';\nimport {\n  LoadingSpinner,\n  Notifications,\n  ToastNotifications,\n} from 'legacy/packages/ft-cb';\nimport {\n  authorize,\n  addSession,\n  endSession,\n  authenticateStrategyAction,\n  storeCbSessionAction,\n  levityLoginAction,\n  levityLogoutAction,\n  bindLevityEventsAction,\n  storeApolloClientAction,\n} from 'legacy/src/components/auth/actions';\nimport {\n  getCbSession,\n  timeLeftUntilCbSessionTimeout,\n  timeLeftUntilCBSessionExpire,\n} from 'legacy/src/components/auth/utils';\nimport { bindLevityEvents } from 'legacy/src/components/auth/Levity';\nimport { pageLoading } from 'legacy/src/actions/commonActions';\nimport authenticate from 'legacy/src/utility/authenticate';\nimport SecureFirewallCheck from 'legacy/src/utility/FirewallCheck/SecureFirewallCheck';\nimport SplitIOHandler from 'chameleon/ui-stack/utilities/split-io-handler';\nimport ToastContentWrapper from 'chameleon/src/components/wrappers/ToastContentWrapper';\nimport ValidatedRoute from 'chameleon/src/utility/validatedRoute';\nimport { nestedTreeToKeyPairsWithTypes } from './utils';\nimport log from 'chameleon/ui-stack/utilities/log';\n\nconst serializeType = (val) => {\n  if (val == null || val == undefined) {\n    val = 'null';\n  } else if (typeof val === 'string') {\n    val = '`' + val.toString() + '`';\n  } else if (Array.isArray(val)) {\n    val = 'array';\n  }\n  val = val.toString();\n  return val;\n};\n\nconst logPropChanges = (oldProps, nextProps) => {\n  try {\n    let oldKeys = nestedTreeToKeyPairsWithTypes(oldProps.userData, 'props', 4);\n    let newKeys = nestedTreeToKeyPairsWithTypes(nextProps.userData, 'props', 4);\n    let dict = oldKeys.reduce((acc, ele) => ({\n      ...acc,\n      [ele.key]: ele.value,\n    }));\n    let changes = [];\n    for (const pair of newKeys) {\n      let newVal = serializeType(pair.value);\n      let oldVal = serializeType(dict[pair.key]);\n      if (oldVal != newVal) {\n        changes.push(`${pair.key}: ${oldVal} -> ${newVal}`);\n      }\n    }\n    log('log', 'Re-rendering requireAuth, changes:', changes);\n  } catch (err) {\n    log('error', 'Error occurred', err);\n  }\n};\n\nexport default (WrappedComponent) => {\n  class RequireAuth extends Component {\n    static displayName = 'RequireAuth';\n\n    constructor(props) {\n      super(props);\n      this.bindLevityEvents = bindLevityEvents.bind(this);\n    }\n\n    componentDidMount() {\n      const isLocalDevelopment = process.env.ENV === 'dev';\n      if (!isLocalDevelopment) {\n        this.bindLevityEvents();\n      }\n      const {\n        authenticateStrategy,\n        storeCbSession,\n        userData,\n        storeApolloClient,\n      } = this.props;\n      const currentCBSession = getCbSession();\n      // eslint-disable-next-line no-console\n      const cbSessionExpiration = get(currentCBSession, 'createTimeInMS', null);\n      // eslint-disable-next-line no-console\n      const APROLink = new RegExp(ROS_FRONTEND_URL, 'g');\n      const PLLink = new RegExp(CB_LEGACY_URL, 'g');\n      const whiteListedReferrers =\n        APROLink.test(document.referrer) ||\n        PLLink.test(document.referrer) ||\n        /apstudents.collegeboard.org/g.test(document.referrer) ||\n        /apcentral.collegeboard.org/g.test(document.referrer);\n      const initialCheckOccurred =\n        window.localStorage.getItem('apc:initialExpirationCheck') === 'true';\n      // if initial check already occurred, and coming from APROorMYAP, this condition is satisfied\n      const isNotInitialCheckAndReferredFromAPRO =\n        initialCheckOccurred && whiteListedReferrers;\n\n      const flagHandler = new SplitIOHandler({\n        key: get(userData, 'me.initId', 1),\n        splitName: [\n          'cb_session_expiration_threshold',\n          // feature flag \"cb_session_expiration_check\" FORCES this check regardless of referrer\n          'cb_session_expiration_check',\n          'levity_use_createtime',\n          'cb_session_expiration_override',\n        ],\n        callback: (treatment) => {\n          if (cbSessionExpiration !== null) {\n            // if it is the initial check, we set local storage to ensure we don't do it again for this session\n            if (\n              !isNotInitialCheckAndReferredFromAPRO ||\n              treatment.cb_session_expiration_check === 'on'\n            ) {\n              const expirationThreshold = parseInt(\n                treatment.cb_session_expiration_threshold,\n                10,\n              );\n              // eslint-disable-next-line no-console\n              console.log(expirationThreshold, 'expirationThreshold**********');\n              const useCreateTimeOrExpireTime = treatment.levity_use_createtime\n                ? timeLeftUntilCbSessionTimeout()\n                : timeLeftUntilCBSessionExpire();\n              // hard override only used for debugging, should remain off, see FY-12447\n              const expirationTimeDiff =\n                treatment.cb_session_expiration_override ||\n                useCreateTimeOrExpireTime;\n              window.localStorage.setItem('apc:initialExpirationCheck', true);\n              if (expirationTimeDiff < expirationThreshold) {\n                window.sessionStorage.setItem(\n                  'EXTERNAL_REFERRER_URL',\n                  document.referrer,\n                );\n                authenticate();\n              }\n            }\n          }\n        },\n      });\n\n      flagHandler.invoke();\n\n      // get the cb session as soon as app loads\n      storeCbSession(getCbSession());\n      storeApolloClient(this.props.client);\n      authenticateStrategy(this.props);\n    }\n\n    shouldComponentUpdate(nextProps) {\n      const pathnameChanged =\n        nextProps.location.pathname !== this.props.location.pathname;\n      const searchChanged =\n        nextProps.location.search !== this.props.location.search;\n      const rerender =\n        nextProps.currentState.rendering !==\n          this.props.currentState.rendering ||\n        nextProps.currentState.reloading !==\n          this.props.currentState.reloading ||\n        nextProps.userData !== this.props.userData ||\n        pathnameChanged ||\n        searchChanged;\n      if (rerender) {\n        if (!pathnameChanged && !searchChanged && process.env.ENV == 'dev') {\n          logPropChanges(this.props, nextProps);\n        }\n      }\n      return rerender;\n    }\n\n    /**\n     * When we have me.initId, proceed with identifying the user in Mixpanel.\n     */\n    componentWillUpdate(nextProps) {\n      /**\n       * Allow us to keep track of the previous APC URL. This, initially, is\n       * being used for the 404 page. So that we know where the user was just\n       * before the 404 page was triggered.\n       */\n      if (\n        nextProps.location.pathname !== this.props.location.pathname ||\n        nextProps.location.search !== this.props.location.search\n      ) {\n        window.sessionStorage.setItem(\n          'apc:locationFrom',\n          `${this.props.location.pathname}${this.props.location.search}`,\n        );\n      }\n\n      if (nextProps.userData.me && nextProps.currentState.rendering) {\n        this.props.pageLoaded();\n      }\n    }\n\n    render() {\n      const { children, currentState, userData } = this.props;\n\n      if (\n        currentState.rendering ||\n        currentState.reloading ||\n        children === null\n      ) {\n        return (\n          <div>\n            <ToastContentWrapper />\n            <Notifications />\n            <ToastNotifications />\n            <LoadingSpinner />\n          </div>\n        );\n      } else if (!currentState.rendering) {\n        return (\n          <div>\n            <ToastContentWrapper />\n            <Notifications />\n            <ToastNotifications />\n            <WrappedComponent {...this.props} />\n            <SecureFirewallCheck userData={userData} />\n          </div>\n        );\n      }\n    }\n  }\n\n  function mapStateToProps(state) {\n    return {\n      userData: state.userData,\n      currentState: state.currentState,\n    };\n  }\n\n  return compose(\n    withApollo,\n    withRouter,\n    connect(mapStateToProps, {\n      pageLoaded: pageLoading.fulfill,\n      authorize,\n      addSession,\n      endSession,\n      storeCbSession: storeCbSessionAction,\n      levityLoginAction,\n      levityLogoutAction,\n      bindLevityEventsAction,\n      authenticateStrategy: authenticateStrategyAction,\n      storeApolloClient: storeApolloClientAction,\n    }),\n    ValidatedRoute,\n  )(RequireAuth);\n};\n","import get from 'lodash/get';\nimport { isEmpty } from 'lodash';\nimport {\n  all,\n  call,\n  cancelled,\n  delay,\n  put,\n  race,\n  select,\n  take,\n  takeLatest,\n  takeLeading,\n} from 'redux-saga/effects';\n\nimport log from 'chameleon/ui-stack/utilities/log';\nimport { toast } from 'chameleon/ui-stack/ui/toast';\nimport LOGOUT_WHITELIST from 'chameleon/ui-stack/constants/lc-logout-whitelist';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nimport { clearLocalStorage } from 'legacy/packages/ft-cb';\nimport { me as meQuery } from 'legacy/src/queries';\nimport {\n  isOnLogin,\n  isOnRoot,\n  isOnJoin,\n  isOnLogout,\n} from 'legacy/src/utility/UrlPaths';\nimport { pageLoading } from 'legacy/src/actions/commonActions';\nimport renderValidation from 'legacy/src/services/error';\nimport fetchFlags from 'legacy/src/utility/featureFlag/fetchFlags';\n\nimport {\n  levityLoginAction,\n  authenticateStrategyAction,\n  navigateToError,\n  redirectToHomeAction,\n  authorize,\n  login,\n  redirectToROSLoginAction,\n  redirectToLoginAction,\n  storeCbSessionAction,\n} from './actions';\nimport {\n  getCbSession,\n  loginWithLevity,\n  setGlobalCurrentUser,\n  isLockdownBrowser,\n  LOCKDOWN_PAGES,\n  sendForAuthentication,\n  initFaro,\n} from './utils';\nimport {\n  getUserSubjects,\n  handleRoleRedirect,\n  handleSubjectRedirect,\n  redirectToUrl,\n} from './helpers';\n\nconst selectCbSession = (state) => state.auth.cbSession;\nconst getApolloClient = (state) => state.auth.apolloClient;\nconst getUserData = (state) => state.userData;\nconst isLocalDevelopment = process.env.ENV === 'dev';\n\nexport function* redirectToROS() {\n  try {\n    yield delay(3000);\n  } finally {\n    if (!(yield cancelled())) {\n      yield put(redirectToROSLoginAction());\n    }\n  }\n}\n\nexport function* redirectToROSLoginSaga() {\n  if (!isLocalDevelopment) {\n    log(`redirecting to ${ROS_FRONTEND_URL}`);\n    yield call(sendForAuthentication, window.location.href);\n  } else {\n    const directLogin = `${FYM_FRONTEND_URL}/login?directlogin=true`;\n    log(`redirecting to ${directLogin}}`);\n    yield call(() => (window.location.href = directLogin));\n  }\n}\n\nexport function* authenticateStrategySaga({ payload }) {\n  try {\n    const userData = yield select(getUserData);\n    // we grab cbSession from redux here. this might not be populated by levity yet.\n    const cbSession = yield select(selectCbSession);\n    const token = window.localStorage.getItem('account_access_token');\n    const {\n      location: {\n        pathname,\n        query: { account_updated: accountUpdated, directlogin },\n      },\n      params,\n      router,\n    } = payload;\n    const error_id = renderValidation(CURRENT_PILOT_NAME, userData, params);\n    const splitPathname = pathname.split('/');\n    const isLockdownPage = LOCKDOWN_PAGES.includes(splitPathname[1]);\n    /**\n     * set currentPath to go back to it if later if you are currently not logged in\n     * and prevent setting circular redirects like / or /login or /logout.\n     */\n    const cbSessionIsLoggedIn = get(cbSession, 'isLoggedIn');\n    if (!isOnLogout(pathname) && error_id > -1) {\n      yield put(navigateToError());\n      router.replace(`/error/${error_id}`);\n    } else if (accountUpdated) {\n      /**\n       * Executed when user updates their info in My Account in amerit-nuevo\n       * Needs to logout user and send them back to login\n       */\n      clearLocalStorage(LOGOUT_WHITELIST);\n      router.replace('/login?account_updated_notify=true');\n      // this path is the typical cb sso path (no token, levity populated levity object)\n    } else if (!token && cbSessionIsLoggedIn) {\n      yield put(levityLoginAction(payload));\n    } else if (\n      !token &&\n      !isLockdownPage &&\n      !cbSessionIsLoggedIn &&\n      (isOnRoot(pathname) || (isOnLogin(pathname) && !directlogin))\n    ) {\n      yield race([\n        // adding artificial timeout to give levity a chance to login (according to Lev, this is necessary)\n        call(redirectToROS),\n        take(levityLoginAction.TRIGGER),\n      ]);\n    } else if (\n      !token &&\n      !isLockdownPage &&\n      !cbSessionIsLoggedIn &&\n      !(isOnJoin(pathname) || isOnLogin(pathname))\n    ) {\n      // we are going to redirect to login UNLESS we receive a levity login event within 3 seconds.\n      // this means cb session object in redux might be outdated at this point if levity login event occurs\n      yield race([\n        // adding artificial timeout to give levity a chance to login (according to Lev, this is necessary)\n        call(redirectToROS),\n        take(levityLoginAction.TRIGGER),\n      ]);\n      // for sso login\n    } else if (token && cbSessionIsLoggedIn) {\n      yield put(levityLoginAction(payload));\n      // for direct login, we skip levity\n    } else if (token && !cbSessionIsLoggedIn) {\n      yield put(authorize(payload));\n    } else {\n      yield put(pageLoading.fulfill());\n    }\n  } catch (error) {\n    log('authenticateStrategySaga error', error);\n    yield put(authenticateStrategyAction.failure(error));\n    yield put(pageLoading.fulfill());\n  }\n}\n\nexport function* serviceAccountsSaga({ payload }) {\n  try {\n    // We need a refreshed CB object in the case where levity login event (from levity)\n    // is triggereed after we store it into redux. (see race side-effect handler)\n    let cbSession = getCbSession();\n\n    // Retry logic: sometimes Levity provides a numeric sessionId first, then updates to a UUID asynchronously.\n    // Wait briefly (bounded retries) until sessionId looks like a UUID before calling service account login.\n    const uuidRegex = /^\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12}$/;\n    let attempts = 0;\n    const maxAttempts = 10;\n    while (\n      attempts < maxAttempts &&\n      (!cbSession.sessionId ||\n        typeof cbSession.sessionId !== 'string' ||\n        !uuidRegex.test(cbSession.sessionId))\n    ) {\n      attempts += 1;\n      yield delay(300);\n      cbSession = getCbSession();\n    }\n    yield put(storeCbSessionAction(cbSession));\n\n    const token = window.localStorage.getItem('account_access_token');\n    if (!token) {\n      toast('Please wait while you are being logged in...', { timeout: 7 });\n    }\n\n    const serviceAccountsResponse = yield loginWithLevity(cbSession);\n    yield put(levityLoginAction.success(serviceAccountsResponse));\n    yield put(authorize(payload));\n  } catch (error) {\n    log('serviceAccountsSaga error', error);\n    yield put(levityLoginAction.failure(error));\n  }\n}\n\nexport function* authorizeServiceSaga({ type, payload }) {\n  const isLogin = type === login.TRIGGER;\n  const cbSessionIsLoggedIn = !isLocalDevelopment\n    ? get(yield select(selectCbSession), 'isLoggedIn')\n    : false;\n  try {\n    const apolloClient = yield select(getApolloClient);\n    const apolloClientMeResponse = yield apolloClient.query({ query: meQuery });\n    const {\n      teacherSubjects,\n      studentSubjects,\n      adminSubjects,\n      educationPeriods,\n      currentEducationPeriod,\n      nextEducationPeriod,\n      me,\n    } = yield apolloClientMeResponse.data;\n    const successObject = {\n      me,\n      teacherSubjects,\n      studentSubjects,\n      adminSubjects,\n      educationPeriod: {\n        educationPeriods,\n        currentEducationPeriod,\n        nextEducationPeriod,\n      },\n    };\n    yield setGlobalCurrentUser(me);\n\n    const isStudent = me.userRole.includes(UserRoles.STUDENT);\n\n    const faroFeatureFlagName = isStudent\n      ? 'faro_enabled_for_students'\n      : 'faro_enabled';\n\n    const faroFeatureFlagTreatment = get(\n      yield fetchFlags([faroFeatureFlagName], get(me, 'initId', 1)),\n      faroFeatureFlagName,\n      'off',\n    );\n    const shouldTrack = faroFeatureFlagTreatment === 'on';\n\n    if (shouldTrack) {\n      initFaro(me);\n    }\n\n    // if is an SSO user but no session exists in cbSession object, we push them back to re-login on MyAP\n    if (\n      !OVERRIDE_SSO_LOGIN &&\n      me.ssoLogin === 'SSO-FYM' &&\n      !cbSessionIsLoggedIn &&\n      !isLockdownBrowser()\n    ) {\n      // We do this after authorizing, because they can be a direct login user.\n      // If they have a token, and we presume they have an existing session and try to log them in.\n      // After running through this service, we do a comparison to see if this is an SSO-user and they are logged in as SSO.\n      if (isLogin) {\n        yield put(login.failure('SSO user, not logged in'));\n      } else {\n        yield put(authorize.failure('SSO user, not logged in'));\n      }\n    } else if (isLogin) {\n      yield put(login.success(successObject));\n    } else {\n      yield put(authorize.success(successObject));\n    }\n    if (\n      isOnLogin(payload.location.pathname) ||\n      isOnRoot(payload.location.pathname)\n    ) {\n      yield put(redirectToHomeAction(payload));\n    } else {\n      yield put(pageLoading.fulfill());\n    }\n  } catch (error) {\n    log('authorizeSerivceSaga error', error);\n    yield log('error', error);\n    if (isLogin) {\n      yield put(login.failure(error));\n    } else {\n      yield put(authorize.failure(error));\n    }\n    yield put(pageLoading.fulfill());\n  }\n}\n\nexport function* redirectToHomeSaga({ payload: { router, location } }) {\n  try {\n    const user = yield select(getUserData);\n    const { me, studentSubjects, teacherSubjects, adminSubjects } = user;\n    const redirectPath = location.query.redirect_path;\n    const userSubjects = getUserSubjects(me, {\n      studentSubjects,\n      teacherSubjects,\n      adminSubjects,\n    });\n\n    if (redirectPath) {\n      redirectToUrl(redirectPath);\n      return;\n    }\n\n    if (handleRoleRedirect(router, me)) {\n      return;\n    }\n\n    if (isEmpty(userSubjects)) {\n      redirectToUrl(ROS_FRONTEND_URL); // redirect to MyAP if no subjects\n      return;\n    }\n\n    if (handleSubjectRedirect(router, me, userSubjects)) {\n      return;\n    }\n  } catch (error) {\n    log('redirectToHomeSaga error', error);\n    yield put(redirectToHomeAction.failure(error));\n  }\n}\n\nexport default function* authSaga() {\n  yield all([\n    // takeLatest will cancel and re-run any calls that are re-triggered.\n    takeLatest(authenticateStrategyAction.TRIGGER, authenticateStrategySaga),\n    takeLeading(levityLoginAction.TRIGGER, serviceAccountsSaga),\n    takeLatest([login.TRIGGER, authorize.TRIGGER], authorizeServiceSaga),\n    takeLatest(redirectToHomeAction.TRIGGER, redirectToHomeSaga),\n    takeLatest(\n      [\n        redirectToLoginAction.TRIGGER,\n        redirectToROSLoginAction.TRIGGER,\n        login.FAILURE,\n        authenticateStrategyAction.FAILURE,\n        authorize.FAILURE,\n        levityLoginAction.FAILURE,\n      ],\n      redirectToROSLoginSaga,\n    ),\n  ]);\n}\n","import dayjs from 'dayjs';\nimport axios from 'axios';\nimport get from 'lodash/get';\nimport Cookies from 'universal-cookie';\nimport { v4 as uuidv4 } from 'uuid';\nimport { clearLocalStorage } from 'legacy/packages/ft-cb';\nimport { userRoles } from 'legacy/src/utility/User';\nimport { storeUserType } from 'legacy/src/utility/utils';\nimport {\n  EDUCATIONAL_PERIOD_PREFERENCE,\n  PREFERENCE_CONTEXT_SUBJECT,\n} from 'legacy/src/constants/types';\nimport { throttle } from 'lodash';\nimport { LC_CONSTANTS } from 'legacy/src/components/impersonating/utils/constants';\nimport {\n  getUserLocalStorageKeys,\n  isImpersonating,\n} from 'legacy/src/components/impersonating/utils';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport LOGOUT_WHITELIST from 'chameleon/ui-stack/constants/lc-logout-whitelist';\nimport { instrumentFaro } from 'chameleon/ui-stack/utilities/telemetry/faro';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\nimport { ERRORS } from 'chameleon/ui-stack/utilities/copy';\n\nexport const LOCKDOWN_PAGES = [\n  'lockdown', // Used for downloading Lockdown Browser\n  'cf_dl', // Used for downloading Lockdown Browser (S3 Download)\n  'securebrowsercheck', // Used for checking Lockdown Browser\n  'close', // Used for closing Lockdown Browser\n  'readinesscheck', // Used to show Lockdown's Test Exam (to verify everything works)\n];\n\nexport const STANDALONE_PAGES = [\n  ...LOCKDOWN_PAGES,\n  'ps-answer-sheets',\n  'login',\n  'version',\n  'logout',\n  'join',\n];\n\nconst cookies = new Cookies();\n\nexport const getCbSession = () => {\n  const globalCB = window.cb;\n  return (\n    (globalCB &&\n      globalCB.core &&\n      globalCB.core.iam &&\n      globalCB.core.iam.getAuthSession()) ||\n    {}\n  );\n};\n\n// relies on the window object\nexport const timeLeftUntilCBSessionExpire = () => {\n  const cbSessionExpiration = get(getCbSession(), 'expireTimeInMS', null);\n  const currentTime = dayjs();\n  const expirationTime = dayjs(cbSessionExpiration);\n  return expirationTime.diff(currentTime, 'minute');\n};\n\n// relies on the window object\n// returns time left in minutes or null if session does not exist\nexport const timeLeftUntilCbSessionTimeout = () => {\n  // levity idle timeout refreshes expiration every 15 minutes after the 2 hours up to a maximum of 6 hours\n  const cbSessionCreation = get(getCbSession(), 'createTimeInMS', null);\n  if (cbSessionCreation) {\n    const currentTime = dayjs();\n    const expirationTime = dayjs(cbSessionCreation).add(6, 'hour');\n    return expirationTime.diff(currentTime, 'minute');\n  }\n  return timeLeftUntilCBSessionExpire();\n};\n\ndocument.addEventListener(\n  'visibilitychange',\n  () => {\n    const splitPathname = window.location.pathname.split('/');\n    const shouldRedirect = !STANDALONE_PAGES.includes(splitPathname[1]); // 0 index is empty as `pathname` begins with a `/`\n\n    if (\n      !document.hidden &&\n      shouldRedirect &&\n      window.axios?.middleware_promise &&\n      localStorage.getItem('account_access_token')?.startsWith('ey')\n    ) {\n      window.axios.middleware_promise.then(() => {\n        axios({\n          method: 'get',\n          url: `${FYM_ACCOUNTS_URL}/auth/verify/`,\n        });\n      });\n    }\n  },\n  false,\n);\n\n/**\n * Log you in using the levity session if it exists\n */\nexport const loginWithLevity = (cbSession) =>\n  new Promise((resolve) => {\n    axios({\n      method: 'post',\n      url: `${FYM_ACCOUNTS_URL}/account/api/`,\n      headers: {\n        'Content-Type': 'application/json',\n      },\n      data: {\n        namespace: cbSession.basicProfile.namespace,\n        sessionId: cbSession.sessionId,\n        username: cbSession.basicProfile.userName,\n        hashId: cbSession.hashId,\n      },\n    })\n      .then((resp) => {\n        // should return access+refresh token\n        if (resp.status === 200) {\n          const { accessTokenKey, refreshTokenKey, expiresKey } =\n            getUserLocalStorageKeys();\n\n          if (!isImpersonating() && resp.data.cb_redirect_url) {\n            window.location.href = resp.data.cb_redirect_url;\n          }\n\n          window.localStorage.setItem(accessTokenKey, resp.data.access_token);\n          window.localStorage.setItem(refreshTokenKey, resp.data.refresh_token);\n          window.localStorage.setItem(\n            expiresKey,\n            Date.parse(resp.data.expires),\n          );\n          window.localStorage.setItem('cb_session_id', cbSession.sessionId);\n          window.localStorage.setItem('session_id', uuidv4());\n          window.localStorage.setItem(\n            'appcues_access_token',\n            resp.data.appcues_access_token,\n          );\n          return resolve(true);\n        } else if (resp.status === 400 && resp.data.error === 'MISSING APUID') {\n          // If the student has no apuid it means they have not been enrolled yet.\n          // Beyond this point error.js will expect userData.me which doesnt exist when 400 is returned\n          // Also, user_role will not have been set which means there’s no way to determine the\n          // error message to display, which means best way to deal with this is redirect the student so they can enroll\n          window.location.href = `${ROS_FRONTEND_URL}/dashboard`;\n          return;\n        } else if (\n          resp.status === 400 &&\n          resp.data &&\n          resp.data.message &&\n          (resp.data.message.error ===\n            'The user has not accepted the terms and conditions' ||\n            resp.data.message === 'Failed to fetch remote user.') // User is not in our DB yet. It will be created by the enrollment process.\n        ) {\n          window.location.href = ROS_FRONTEND_URL;\n          return;\n        } else if (\n          resp.status === 403 &&\n          resp.data.message.error === 'USER_HAS_NO_ROLES'\n        ) {\n          if (resp.data.message.professional) {\n            window.location.href = `${FYM_FRONTEND_URL}/error/${ERRORS.PILOT_P2.TEACHER_UNKNOWN.id}`;\n          } else {\n            window.location.href = `${FYM_FRONTEND_URL}/error/${ERRORS.PILOT_P2.STUDENT_EMPTY_ENROLLMENT.id}`;\n          }\n          return;\n        }\n\n        log(\n          'error',\n          'Log in fell through acceptable conditions',\n          resp.status,\n          resp.data,\n        );\n        return resolve(false);\n      })\n      .catch((err) => {\n        log('error', \"An error was raised during levity login's request\", err);\n        return resolve(false);\n      });\n  });\n/**\n * Performs redirect to login upon errors.\n * @param {string} redirectPath Allows for specifying redirect path.\n * @param {object} router - optional\n */\nexport function redirectToLogin(redirectPath = '', router) {\n  /**\n   * Set the redirect_path so long as path is not version, login, logout, join, auth/redirect or root.\n   */\n  let path = `${FYM_FRONTEND_URL}/login`;\n\n  const split = redirectPath.split('/');\n\n  const redirect =\n    !/(version$)|(login$)|(close$)|(lockdown$)|(cf_dl$)|(securebrowsercheck$)|(logout$)|(join$)|(auth\\/redirect$)|(^\\/$)/i.test(\n      split[1],\n    );\n  // ^ 0 index is empty as `pathname` begins with a `/`\n\n  if (redirectPath && redirect) {\n    path += `?redirect_path=${redirectPath}`;\n  }\n\n  if (router) {\n    router.replace(redirectPath || '/login');\n  } else {\n    window.location.href = path;\n  }\n}\n\n/**\n * Redundant thing, needed to be removed later.\n * Sets the user variable to global context.\n * @param {object} me - user object.\n **/\nexport const setGlobalCurrentUser = (me) => {\n  if (me) {\n    /**\n     * Set /me response to global variable.\n     */\n    const roles = userRoles.set(me.userRole);\n    window.current_user = me;\n    /**\n     * Set user type to localStorage.\n     */\n    storeUserType(roles);\n  }\n};\n\nexport const findGroupId = (userSubjects, subjectId) =>\n  userSubjects.find((userSubject) => userSubject.id === subjectId)?.subjects[0]\n    ?.initId;\n\nexport const getPeriodObjFromValue = (val, educationPeriods = []) => {\n  let period;\n  educationPeriods.forEach((ed) => {\n    if (parseInt(val, 10) === parseInt(ed.id, 10)) {\n      period = ed;\n    }\n  });\n  return period;\n};\n\nconst getStoredPreference = ({ me, userSubjects, subject, preference }) => {\n  if (me && userSubjects && subject) {\n    const { preferences } = me;\n\n    if (!preferences) {\n      return null;\n    }\n\n    const groupId = findGroupId(userSubjects, subject);\n\n    let storedPref = null;\n    preferences.forEach((pref) => {\n      const {\n        preference: storedPreferenceType,\n        context,\n        contextId,\n        value,\n      } = pref;\n      const rightPrefType =\n        storedPreferenceType === preference &&\n        context === PREFERENCE_CONTEXT_SUBJECT;\n      if (rightPrefType && parseInt(contextId, 10) === parseInt(groupId, 10)) {\n        storedPref = value;\n      }\n    });\n    return storedPref;\n  }\n\n  return '';\n};\n\nexport const findChosenEducationPeriod = ({\n  currentEducationPeriod,\n  subjectEducationPeriods,\n  me,\n  userSubjects,\n  subject,\n}) => {\n  if (subjectEducationPeriods.length < 1) {\n    return currentEducationPeriod;\n  }\n\n  const chosen = getStoredEducationPeriodPreference({\n    me,\n    educationPeriods: subjectEducationPeriods,\n    userSubjects,\n    subject,\n  });\n\n  if (!chosen) {\n    const fromSubject = getPeriodObjFromValue(\n      currentEducationPeriod.id,\n      subjectEducationPeriods,\n    );\n\n    // Pre-AP edge case when PL user given access to next\n    // Education Period classes while the current one is still in the progress\n    // pick EP from the subject they have access to\n    if (!fromSubject) {\n      return subjectEducationPeriods[0];\n    }\n\n    return fromSubject;\n  }\n  return chosen;\n};\n\nexport const getStoredEducationPeriodPreference = ({\n  me,\n  educationPeriods,\n  userSubjects,\n  subject,\n}) => {\n  if (educationPeriods) {\n    const preference = getStoredPreference({\n      me,\n      educationPeriods,\n      userSubjects,\n      subject,\n      preference: EDUCATIONAL_PERIOD_PREFERENCE,\n    });\n\n    return getPeriodObjFromValue(preference, educationPeriods);\n  }\n\n  return null;\n};\n\nexport const getSubjectEducationPeriods = ({ subjectId, teacherSubjects }) => {\n  if (!teacherSubjects) {\n    return [];\n  }\n\n  const teacherSubject = teacherSubjects.find(\n    (s) => parseInt(s.id, 10) === parseInt(subjectId, 10),\n  );\n  return (\n    (teacherSubject &&\n      teacherSubject.educationPeriods &&\n      teacherSubject.educationPeriods.length &&\n      teacherSubject.educationPeriods) ||\n    []\n  );\n};\n\nexport const getEducationPeriodForSubject = ({ subjectId, userData }) => {\n  const {\n    teacherSubjects,\n    educationPeriod: { currentEducationPeriod, nextEducationPeriod },\n    chosenEducationPeriodCode,\n  } = userData;\n\n  const subjectEducationPeriods = getSubjectEducationPeriods({\n    subjectId,\n    teacherSubjects,\n  });\n\n  const subjectHasCurrentEducationPeriod =\n    !!currentEducationPeriod &&\n    !!subjectEducationPeriods.find(\n      (subjectEducationPeriod) =>\n        subjectEducationPeriod.id === currentEducationPeriod.id,\n    );\n  const subjectHasNextEducationPeriod =\n    !!nextEducationPeriod &&\n    !!subjectEducationPeriods.find(\n      (subjectEducationPeriod) =>\n        subjectEducationPeriod.id === nextEducationPeriod.id,\n    );\n\n  const hasAccessToAnyPeriod = !!(\n    subjectEducationPeriods && subjectEducationPeriods.length\n  );\n  const latestPeriodWithAccess =\n    hasAccessToAnyPeriod &&\n    subjectEducationPeriods\n      .slice()\n      .sort((a, b) => new Date(b.endDate) - new Date(a.endDate));\n\n  const educationPeriod =\n    chosenEducationPeriodCode ||\n    (subjectHasCurrentEducationPeriod && currentEducationPeriod.id) ||\n    (subjectHasNextEducationPeriod && nextEducationPeriod.id) ||\n    (hasAccessToAnyPeriod && latestPeriodWithAccess[0].id);\n\n  return educationPeriod || '';\n};\n\nexport const accessTokenRefresh = ({\n  refreshToken,\n  accessToken,\n  refreshTokenKey,\n  accessTokenKey,\n  expiresKey,\n} = {}) => {\n  if (!accessToken) {\n    accessToken = window.localStorage.getItem(\n      accessTokenKey || LC_CONSTANTS.AT,\n    );\n  }\n  if (!refreshToken) {\n    refreshToken = window.localStorage.getItem(\n      refreshTokenKey || LC_CONSTANTS.RT,\n    );\n  }\n\n  // make a new request here so that we can set headers\n  // you have to set headers before you send the actual request - otherwise they wont show\n  const getRefresh = axios.create({\n    baseURL: `${FYM_ACCOUNTS_URL}/token/refresh/`,\n    headers: {\n      Authorization: `Bearer ${refreshToken}`,\n    },\n    data: { access_token: accessToken },\n  });\n  const prom = getRefresh\n    .post()\n    .then((resp) => {\n      if (resp.data.access_token) {\n        //got new account_access_token - set it to storage\n        window.localStorage.setItem(\n          accessTokenKey || LC_CONSTANTS.AT,\n          resp.data.access_token,\n        );\n        window.localStorage.setItem(\n          expiresKey || LC_CONSTANTS.EXP,\n          Date.parse(resp.data.expires),\n        );\n        return resp;\n      }\n      throw new Error('Error processing the request. Please login again.');\n    })\n    .catch((err) => {\n      console.error('Refresh error', err); // eslint-disable-line no-console\n      clearLocalStorage(LOGOUT_WHITELIST);\n      log('error', err);\n      redirectToLogin();\n      throw err;\n    })\n    .finally(accessTokenRefresh.cancel);\n  return prom;\n};\n/**\n * Fetch a new access token, the promise is debounced to prevent fetching multiple times concurrently.\n *\n * We really only want to request the access token once when invoked, but because all axios and apollo requests can\n * occur very quickly, we'll throttle the calls to just the first one.\n * Basically every call to `refreshAccessToken` will get the first calls return value, which in our case is the promise\n * of when it finishes.\n */\nexport const refreshAccessToken = throttle(accessTokenRefresh, 5000, {\n  trailing: false,\n});\nexport const isLockdownBrowser = () => cookies.get('rldbci');\n\n/**\n * Given url, should we redirect to SSO?\n * The return value is a boolean, in all cases.\n * @param {string} url - The url, as a string, on which we decide\n */\nexport const shouldRedirectToSSO = (url) => {\n  // Unless the first level pages are login, logout - send them to SSO\n  // No:\n  // apclassroom.collegeboard.org/login\n  // apclassroom.collegeboard.org/logout\n\n  // SSO if pattern like \"/78/assessments/assignments/173784\"\n  // this should not change behavior of apclassroom.collegeboard.org/login?directlogin=blah\n  const logPageRegExp = RegExp('^/log(in|out)', 'i');\n  const urlParsed = new URL(url);\n\n  if (logPageRegExp.test(urlParsed.pathname)) {\n    return false;\n  }\n\n  return true;\n};\n\n/**\n * Given url, which URL should we redirect to?\n * The return value is an URL string, in all cases.\n * @param {string} url - The url, as a string, on which we decide\n */\nexport const redirectTo = (url) => {\n  if (shouldRedirectToSSO(url)) {\n    return `${SSO_LOGIN_URL}?DURL=${url}`;\n  }\n\n  return `${ROS_FRONTEND_URL}`; // Remove DURL as MyAP does not respect it\n};\n\n/**\n * Given url currentLocation, redirect to the proper page if user\n * needs to authenticate.\n * Determine if we need to login: if not, there's nothing for us to do\n * The return value is an URL string, in all cases.\n * @param {string} currentLocation - The url, as a string, where we are\n */\n\nexport const sendForAuthentication = (currentLocation) => {\n  if (process.env.ENV !== 'dev') {\n    window.location.href = redirectTo(currentLocation);\n  }\n};\n\nexport const initFaro = async (user) => {\n  const isTeacher = user.userRole.includes(UserRoles.TEACHER);\n  const isStudent = user.userRole.includes(UserRoles.STUDENT);\n  const faro = await instrumentFaro(user.initId);\n  try {\n    faro?.api?.setUser({\n      id: user.initId,\n      attributes: {\n        role: isTeacher\n          ? UserRoles.TEACHER\n          : isStudent\n            ? UserRoles.STUDENT\n            : 'other',\n        import_id: user.importId,\n      },\n    });\n    console.log('Faro SDK Ready'); // eslint-disable-line no-console\n  } catch (error) {\n    console.error('Failed to initialize Faro SDK', error); // eslint-disable-line no-console\n  }\n};\n\n/**\n * Converts a nested object (tree) into a flat list of key-value pairs,\n * where the key is the full nested path. It includes entries for\n * objects and arrays with the value \"object\" or \"array\".\n * * @param {Object} tree The nested JavaScript object/tree to flatten.\n * @returns {Array<Object>} A list of objects, each with 'key' (the nested path)\n * and 'value' (the corresponding value/type).\n */\nexport const nestedTreeToKeyPairsWithTypes = (\n  tree,\n  name,\n  limit_depth = 100,\n) => {\n  const result = [];\n\n  const traverse = (currentNode, currentPath) => {\n    // Check if the current node is an object (but not null)\n    if (typeof currentNode === 'object' && currentNode !== null) {\n      const isArray = Array.isArray(currentNode);\n      const valueType = isArray ? 'array' : 'object';\n\n      // 1. ADD entry for the container itself (the object or array)\n      if (currentPath) {\n        result.push({\n          key: currentPath,\n          value: valueType, // The value is the type (\"object\" or \"array\")\n        });\n      }\n\n      // 2. CONTINUE traversal for its children\n      for (const key in currentNode) {\n        // Use hasOwnProperty to ensure we only iterate over the object's own properties\n        if (Object.prototype.hasOwnProperty.call(currentNode, key)) {\n          // Determine the path segment: use key for objects, index for arrays\n          // We only use the dot '.' separator for object keys.\n          const pathSegment = isArray ? `[${key}]` : key;\n\n          const newPath = currentPath\n            ? isArray\n              ? `${currentPath}${pathSegment}`\n              : currentPath\n                ? `${currentPath}.${pathSegment}`\n                : pathSegment\n            : pathSegment;\n\n          const value = currentNode[key];\n\n          // Recursively call for nested objects/arrays\n          if (\n            typeof value === 'object' &&\n            value !== null &&\n            newPath.length < limit_depth\n          ) {\n            traverse(value, newPath);\n          } else {\n            // Push the key-value pair for non-objects (primitives)\n            result.push({\n              key: newPath,\n              value: value,\n            });\n          }\n        }\n      }\n    } else {\n      // Handle the case where the initial input is a non-object primitive (if the root is a primitive)\n      if (currentPath) {\n        result.push({\n          key: currentPath,\n          value: currentNode,\n        });\n      }\n    }\n  };\n\n  traverse(tree, name); // Start the traversal from the root with an empty path\n\n  // Handle the case where the root itself is an object or array (since it wasn't added inside traverse)\n  if (typeof tree === 'object' && tree !== null) {\n    const rootType = Array.isArray(tree) ? 'array' : 'object';\n    // Prepend the root entry to the list using a generic key like 'root' or '__root__'\n    result.unshift({ key: name, value: rootType });\n  } else if (typeof tree !== 'undefined') {\n    result.unshift({ key: name, value: tree });\n  }\n\n  return result;\n};\n","import React, { useCallback } from 'react';\nimport { Link } from 'react-router';\nimport A11y from 'chameleon/ui-stack/utilities/a11y';\nimport useNavigation from 'chameleon/ui-stack/hooks/useNavigation';\n\nconst ContactUs = ({ router, popoverRef, buttonText = '' }) => {\n  const { pushParamsToHistory } = useNavigation({\n    router,\n  });\n\n  const onClick = useCallback(\n    (event) => {\n      event.stopPropagation();\n      event.preventDefault();\n      if (popoverRef && popoverRef.current) {\n        popoverRef.current.close();\n      }\n      pushParamsToHistory({\n        contactus: 'show',\n      });\n    },\n    [pushParamsToHistory],\n  );\n\n  return (\n    <>\n      <h4 className=\"flex items-center m-0 bg-gray-100 pt-4.2 pb-0.9 pl-8 border-b border-gray-300 uppercase text-black text-14 font-medium\">\n        Contact us about an issue\n      </h4>\n      <ul className=\"list-none p-0 m-0\">\n        <li className=\"list-none pt-8.1 pb-4.8 pl-16.6 pr-8.5\">\n          <A11y>\n            <Link\n              tabIndex={0}\n              onClick={onClick}\n              className=\"text-blue-800 text-16 font-normal\"\n            >\n              {buttonText}\n            </Link>\n          </A11y>\n        </li>\n      </ul>\n    </>\n  );\n};\n\nexport default ContactUs;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { getSignedUrl } from 'legacy/src/shared/clients/apiClient';\nimport * as types from 'legacy/src/constants/types';\nimport {\n  PDFS,\n  APCLASSROOM_FOLDER,\n  teacherGuidesKey,\n  studentGuidesKey,\n  apKey,\n  defaultKey,\n  preApKey,\n} from './FAQHelper';\nimport A11y from 'chameleon/ui-stack/utilities/a11y';\nimport Icon from 'chameleon/ui-stack/ui/base/icon';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nconst FAQ = ({ isPreAPCoord, userData, subjectData }) => {\n  const {\n    isStudent,\n    isTeacher,\n    isAdmin,\n    isCoordinator,\n    teacherSubjects,\n    studentSubjects,\n    adminSubjects,\n  } = userData;\n  const { isPreApSubject } = subjectData;\n\n  const isPreAPTeacher = teacherSubjects.some(\n    (subject) => subject.subjectProgram === types.PreAP,\n  );\n  const isAPTeacher = teacherSubjects.some(\n    (subject) => subject.subjectProgram === types.AP,\n  );\n  const isPreAPStudent = studentSubjects.some(\n    (subject) => subject.subjectProgram === types.PreAP,\n  );\n  const isAPStudent = studentSubjects.some(\n    (subject) => subject.subjectProgram === types.AP,\n  );\n  const isAPAdmin = adminSubjects.some(\n    (subject) => subject.subjectProgram === types.AP,\n  );\n  const isPreAPAdmin = adminSubjects.some(\n    (subject) => subject.subjectProgram === types.PreAP,\n  );\n\n  /**\n   * Store Pdf Items\n   * @param {array} toArray The array where we store the new items.\n   * @param {array} someArguments A list of arguments\n   */\n  const storePdfItems = (toArray, ...someArguments) => {\n    const items = getPdfItems(...someArguments);\n    if (items) {\n      toArray.push(items);\n    }\n  };\n\n  /**\n   * Get pdf items list\n   * @param {object} PDFS The pdf configuration object\n   * @param {string} section First level - section [teacherGuides - studentGuides]\n   * @param {string} ENV Second level - ENV [infra - behavioral]\n   * @param {array} levelArguments The list of arguments sent by caller\n   * @return {object} Path (to list of items) and List of items or NULL\n   * */\n  const getPdfItems = (PDFS, section, ENV, ...levelArguments) => {\n    let itemsFound = true;\n    const sectionPath = PDFS[section];\n    const envPath = (sectionPath && sectionPath[ENV]) || null;\n    let returnObj = null;\n    let path;\n\n    if (envPath) {\n      path = envPath.path;\n      let PDFSbyPath = envPath;\n      levelArguments.forEach((level) => {\n        if (PDFSbyPath[level]) {\n          PDFSbyPath = PDFSbyPath[level];\n        } else {\n          itemsFound = false;\n        }\n      });\n\n      if (itemsFound) {\n        returnObj = {\n          items: PDFSbyPath,\n          path,\n        };\n      }\n    }\n\n    return returnObj;\n  };\n\n  const PDF_ENV = () => {\n    if ((isAPAdmin || isAPTeacher || isAPStudent) && !isPreApSubject) {\n      return apKey;\n    } else if (\n      isPreAPTeacher ||\n      isPreAPStudent ||\n      isPreAPCoord ||\n      isPreAPAdmin\n    ) {\n      return preApKey;\n    }\n    return 'behavioral';\n  };\n\n  /**\n   * Renders list of pdfs\n   * @param {array|object} pdfItems List of items\n   * @return React element\n   * */\n  const pdfRender = (pdfItems) => {\n    const pilot = APCLASSROOM_FOLDER;\n    const { path } = pdfItems;\n    const baseDir = path ? `${pilot}${path}` : `${pilot}/`;\n\n    return pdfItems.items.map((l, i) => {\n      if (l.webLink) {\n        return (\n          <li key={i} className=\"list-none pt-8.1 pb-4.8 pl-16.6 pr-8.5\">\n            <A11y>\n              <a\n                className=\"flex justify-between items-center text-blue-800 text-16 font-normal\"\n                tabIndex={0}\n                href={l.href}\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                {l.title}\n                <Icon id=\"external_link\" className=\"text-gray-700\" />\n              </a>\n            </A11y>\n          </li>\n        );\n      }\n\n      let linkRef = React.createRef();\n      let key = `${baseDir}${l.href}`;\n      getSignedUrl({ key, bucket: 'help.media.academicmerit.com' }).then(\n        (signedURL) => {\n          if (linkRef.current) {\n            linkRef.current.href = signedURL.replace(\n              /\\/[^\\/]+\\//,\n              '/media.academicmerit.com/',\n            );\n            linkRef.current.target = '_blank';\n          }\n        },\n      );\n      return (\n        <li key={i} className=\"list-none pt-8.1 pb-4.8 pl-16.6 pr-8.5\">\n          <a\n            className=\"grid grid-flow-col justify-between items-center\"\n            ref={linkRef}\n            href=\"#\"\n          >\n            {l.title}\n            <Icon id=\"external_link\" className=\"text-gray-700\" />\n          </a>\n        </li>\n      );\n    });\n  };\n\n  let teacherGuides = [];\n  let studentGuides = [];\n\n  let userType;\n  if (isAdmin) {\n    userType = UserRoles.ADMIN;\n  } else if (isCoordinator) {\n    userType = UserRoles.COORDINATOR;\n  } else if (isTeacher) {\n    userType = UserRoles.TEACHER;\n  } else if (isStudent) {\n    userType = UserRoles.STUDENT;\n  }\n\n  if (isPreAPCoord) {\n    storePdfItems(teacherGuides, PDFS, teacherGuidesKey, preApKey, userType);\n    if (isAPAdmin) {\n      storePdfItems(teacherGuides, PDFS, teacherGuidesKey, PDF_ENV(), userType);\n      storePdfItems(\n        teacherGuides,\n        PDFS,\n        teacherGuidesKey,\n        PDF_ENV(),\n        defaultKey,\n      );\n      storePdfItems(\n        studentGuides,\n        PDFS,\n        studentGuidesKey,\n        PDF_ENV(),\n        defaultKey,\n      );\n    }\n  } else if (isCoordinator || isAdmin || isTeacher) {\n    storePdfItems(teacherGuides, PDFS, teacherGuidesKey, PDF_ENV(), userType);\n    storePdfItems(teacherGuides, PDFS, teacherGuidesKey, PDF_ENV(), defaultKey);\n    storePdfItems(studentGuides, PDFS, studentGuidesKey, PDF_ENV(), defaultKey);\n  }\n\n  if (isStudent) {\n    storePdfItems(studentGuides, PDFS, studentGuidesKey, PDF_ENV(), defaultKey);\n  }\n\n  return (\n    <div>\n      <h4 className=\"flex items-center m-0 bg-gray-100 pl-8 pt-4.2 pb-0.9 border-b border-gray-300 uppercase text-black text-14 font-medium\">\n        {isPreApSubject && <>user guides (includes video supports)</>}\n        {!isPreApSubject && <>step-by-step Instructions and Videos</>}\n      </h4>\n      <ul className=\"list-none p-0 m-0\">\n        {(isAPTeacher || isAPAdmin || isPreAPCoord) &&\n          (teacherGuides || []).map((item) => pdfRender(item))}\n        {(studentGuides || []).map((item) => pdfRender(item))}\n      </ul>\n    </div>\n  );\n};\n\nFAQ.displayName = 'FAQ';\n\nFAQ.propTypes = {\n  userData: PropTypes.object,\n  subjectData: PropTypes.object,\n  location: PropTypes.object,\n  regularSubjects: PropTypes.array,\n  adminSubjects: PropTypes.array,\n};\n\nfunction mapStateToProps(state) {\n  const { userData } = state;\n\n  return {\n    userData,\n    regularSubjects: userData.studentSubjects.concat(userData.teacherSubjects),\n    adminSubjects: userData.adminSubjects,\n    subjectData: state.subject.data,\n  };\n}\n\nexport default connect(mapStateToProps)(FAQ);\n","export const teacherGuidesKey = 'teacherGuides';\nexport const studentGuidesKey = 'studentGuides';\nexport const defaultKey = 'default';\nexport const preApKey = 'preap';\nexport const apKey = 'ap';\n\nexport const baseClickHelp = 'https://apclassroom.clickhelp.co/articles';\nconst preapBaseClickHelp = 'https://collegeboard.clickhelp.co/articles';\nconst preapTeacherGuide = `${preapBaseClickHelp}/#!pre-ap-classroom-user-guide-for-teachers-new-for-25-26-sy-publication/welcome`;\nconst apTeacherGuide = `${baseClickHelp}/#!ap-classroom-user-guide-for-teachers-publication`;\nconst apAdminCoordGuide = `${baseClickHelp}/#!ap-classroom-user-guide-for-administrators-and-coordinators/`;\nconst apStudentGuide = `${baseClickHelp}/#!ap-classroom-user-guide-for-students`;\nconst preapStudentGuide = `${preapBaseClickHelp}/#!pre-ap-classroom-user-guide-for-students-new-for-25-26-sy-publication/pre-ap-classroom-user-guide-for-students`;\n\nexport const PDFS = {\n  [teacherGuidesKey]: {\n    preap: {\n      default: [\n        {\n          href: preapTeacherGuide,\n          title: 'Pre-AP Course Implementation Guide',\n          webLink: true,\n        },\n      ],\n      admin: [],\n      coordinator: [],\n      teacher: [],\n    },\n    ap: {\n      default: [\n        {\n          href: apTeacherGuide,\n          title: 'AP Teacher Guide to AP Classroom',\n          webLink: true,\n        },\n      ],\n      coordinator: [\n        {\n          href: apAdminCoordGuide,\n          title: 'AP Administrator and Coordinator Guide to AP Classroom',\n          webLink: true,\n        },\n      ],\n      admin: [\n        {\n          href: apAdminCoordGuide,\n          title: 'AP Administrator and Coordinator Guide to AP Classroom',\n          webLink: true,\n        },\n      ],\n      calculus: [\n        {\n          href: 'Teacher_Guide_to_AP_Calculus_Resources.pdf',\n          title: 'Teacher Guide to AP Calculus Resources',\n        },\n      ],\n      world_history: [\n        {\n          href: 'Teacher_Guide_to_AP_World_History_Resources.pdf',\n          title: 'Teacher Guide to AP World History Resources',\n        },\n      ],\n    },\n    behavioral: {\n      path: '/teacher_guides/',\n      default: [\n        {\n          href: 'Pilot_Guide_for_AP_Teachers_and_Administrators.pdf',\n          title: 'Pilot Guide',\n        },\n        {\n          href: 'Users_Guide_to_the_AP_Question_Bank.pdf',\n          title: \"User's Guide to the Question Bank\",\n        },\n      ],\n    },\n  },\n  [studentGuidesKey]: {\n    preap: {\n      admin: [],\n      coordinator: [],\n      teacher: [],\n      default: [\n        {\n          href: preapStudentGuide,\n          title: 'Pre-AP Classroom User Guide for Students',\n          webLink: true,\n          appendText: 'includes video supports',\n        },\n      ],\n    },\n    ap: {\n      default: [\n        {\n          href: apStudentGuide,\n          title: 'AP Student Guide to AP Classroom',\n          webLink: true,\n        },\n      ],\n    },\n    behavioral: {\n      path: '/student_guides/',\n      default: [\n        {\n          href: 'AP_Pilot_Guide_for_AP_Students_and_Parents_EN.pdf',\n          title: 'AP® Student and Parent Pilot Guide',\n        },\n        {\n          href: 'Guia_del_programa_piloto_para_estudiantes_y_padres_de_AP_2017-18_final.pdf',\n          title: 'Guía del programa piloto para estudiantes y padres de AP®',\n        },\n        {\n          href: 'Student_Guide_to_the_AP_Question_Bank.pdf',\n          title: 'Student Guide to the Question Bank',\n        },\n      ],\n    },\n  },\n};\n\nexport const APCLASSROOM_FOLDER = `apclassroom`;\n","import React, { Fragment } from 'react';\nimport FocusLock from 'react-focus-lock';\n\nconst ImpersonateFocusWrapper = ({ children, isPlayerRoute, isBluebookUi }) => {\n  if (isPlayerRoute && !isBluebookUi) {\n    return (\n      <FocusLock group=\"student-player-group\" autoFocus={false}>\n        {children}\n      </FocusLock>\n    );\n  }\n\n  return <Fragment>{children}</Fragment>;\n};\n\nexport default ImpersonateFocusWrapper;\n","import React, { Fragment, useEffect, useState } from 'react';\nimport { flowRight as compose } from 'lodash';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router';\nimport cn from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n  AccessibilityWrapper,\n  Icon,\n  LoadingSpinner,\n} from 'legacy/packages/ft-cb';\nimport StudentsSearch from 'legacy/src/components/impersonating/components/StudentsSearch';\nimport ImpersonateFocusWrapper from 'legacy/src/components/impersonating/components/ImpersonateFocusWrapper';\nimport {\n  isImpersonating as isImpersonatingLC,\n  isImpersonatingStudent,\n  withUnitsConnectLean,\n  getSectionAndStudentName,\n  getLDBImpersonatingHeaderDetailLC,\n} from 'legacy/src/components/impersonating/utils';\nimport {\n  setStudentId,\n  setSectionId,\n  setIsReadOnly,\n  setEducationPeriod,\n  setSubject,\n  setCurrentSubject,\n  setTeacherClasses,\n} from 'legacy/src/components/impersonating/state/actions';\nimport { LC_CONSTANTS } from 'legacy/src/components/impersonating/utils/constants';\nimport useDoImpersonate from 'legacy/src/components/impersonating/hooks/useDoImpersonate';\nimport useDoLogout from 'legacy/src/components/impersonating/hooks/useDoLogout';\nimport useTeacherData from 'legacy/src/components/impersonating/hooks/useTeacherData';\nimport { isLockdownBrowser } from 'legacy/src/components/auth/utils';\nimport isTeacherTeachingClass from 'legacy/src/components/impersonating/utils/isTeacherTeachingClass';\nimport getImpersonatedStudentClass from 'legacy/src/components/impersonating/utils/getImpersonatedStudentClass';\nimport ResponsiveView from 'legacy/src/utility/ResponsiveView';\nimport { impersonatorFymClient } from 'legacy/src/utility/GraphqlClients';\nimport './styles.scss';\n\nconst ImpersonateHeader = (props) => {\n  const [wasRedirected, setWasRedirected] = useState(false);\n  const [isLoading, setIsLoading] = useState(false);\n  const {\n    isImpersonatingFlagPreap,\n    isBluebookUi,\n    impersonating,\n    dispatch,\n    router,\n    userData,\n    resetUnitsInternalStore,\n    subjectData: { isPreApSubject },\n    areFeatureFlagsLoaded,\n  } = props;\n  const canImpersonate = isPreApSubject ? isImpersonatingFlagPreap : true;\n  const { isReadOnly, studentId, sectionId, teacherClasses, teacherSubjects } =\n    impersonating;\n  const [isImpersonating, setIsImpersonating] = useState(false);\n  const {\n    location: { pathname },\n    params: { subject, assignmentId },\n  } = router;\n\n  const [, doImpersonate] = useDoImpersonate({\n    dispatch,\n    router,\n    userData,\n    impersonating,\n  });\n\n  const [, getTeacherData] = useTeacherData({\n    dispatch,\n    client: impersonatorFymClient,\n  });\n\n  const [, doLogout] = useDoLogout({\n    dispatch,\n    router,\n    userData,\n    impersonating,\n    callback: () => {\n      resetUnitsInternalStore();\n      setIsLoading(false);\n    },\n  });\n\n  const onStudentSelected = (section, student) => {\n    if (student && !isImpersonatingStudent(student)) {\n      setIsLoading(true);\n      doImpersonate({\n        studentId: student.value,\n        sectionId: section.value,\n        ...getSectionAndStudentName(\n          student.value,\n          section.value,\n          teacherClasses,\n        ),\n      });\n    }\n  };\n\n  const onLogoutClick = () => {\n    doLogout();\n  };\n\n  useEffect(() => {\n    if (\n      areFeatureFlagsLoaded &&\n      isImpersonatingLC() &&\n      !canImpersonate &&\n      !wasRedirected\n    ) {\n      setWasRedirected(true);\n      const impersonatingSubject = window.localStorage.getItem(\n        LC_CONSTANTS.ISUBJECT,\n      );\n      if (impersonatingSubject) {\n        router.replace(`/${impersonatingSubject}/home`);\n      }\n    }\n  }, [areFeatureFlagsLoaded, canImpersonate, wasRedirected]);\n\n  useEffect(() => {\n    /**\n     * Persist redux store from localstorage on refresh\n     * */\n    if (isImpersonatingLC() && canImpersonate && !isImpersonating) {\n      let sectionIdLC = window.localStorage.getItem(LC_CONSTANTS.SECTION_ID);\n      const subjectIdLC = window.localStorage.getItem(LC_CONSTANTS.ISUBJECT);\n      let currentSubjectIdLC = window.localStorage.getItem(\n        LC_CONSTANTS.ICURRENTSUBJECT,\n      );\n      if (!isReadOnly) {\n        setIsReadOnly(dispatch, true);\n        setEducationPeriod(\n          dispatch,\n          window.localStorage.getItem(LC_CONSTANTS.EDUCATION_PERIOD),\n        );\n        setSubject(dispatch, subjectIdLC);\n        setCurrentSubject(dispatch, currentSubjectIdLC);\n      }\n\n      document.querySelector('#root').classList.add('is-impersonating');\n\n      setIsImpersonating(true);\n\n      setIsLoading(true);\n      // we don't need the teacher data in LDB mode since we are just showing the banner\n      if (isLockdownBrowser()) {\n        setIsLoading(false);\n      } else {\n        getTeacherData({\n          subjectId: subjectIdLC,\n        }).then(() => {\n          setSectionId(dispatch, sectionIdLC);\n          setStudentId(\n            dispatch,\n            window.localStorage.getItem(LC_CONSTANTS.STUDENT_ID),\n          );\n          setIsLoading(false);\n        });\n      }\n    }\n  }, [canImpersonate, isImpersonating, isReadOnly]);\n\n  /**\n   * Has support for changing subjects or refreshing a page with or without a subject param\n   * */\n  useEffect(() => {\n    if (subject) {\n      setCurrentSubject(dispatch, subject);\n      window.localStorage.setItem(LC_CONSTANTS.ICURRENTSUBJECT, subject);\n    }\n\n    const selectedSubject = (\n      subject ||\n      window.localStorage.getItem(LC_CONSTANTS.ICURRENTSUBJECT) ||\n      ''\n    ).toString();\n    if (selectedSubject && teacherSubjects.length > 0) {\n      const educationPeriodLC = Number.parseInt(\n        window.localStorage.getItem(LC_CONSTANTS.EDUCATION_PERIOD),\n        10,\n      );\n      const teacherSubject =\n        (teacherSubjects || []).find(({ id }) => id === selectedSubject) || {};\n      const classes = (teacherSubject.classes || []).filter(\n        ({ educationPeriod }) => educationPeriod === educationPeriodLC,\n      );\n      const sectionIdLC = window.localStorage.getItem(LC_CONSTANTS.SECTION_ID);\n      const isTeacherTeaching = isTeacherTeachingClass({\n        sectionId: sectionIdLC,\n        classes: classes || [],\n      });\n      setTeacherClasses(dispatch, classes);\n      if (!isTeacherTeaching && sectionIdLC !== '-1') {\n        const studentIdLC = window.localStorage.getItem(\n          LC_CONSTANTS.STUDENT_ID,\n        );\n        const impersonatedStudentClass = getImpersonatedStudentClass({\n          studentId: studentIdLC,\n          educationPeriod: educationPeriodLC,\n          classes,\n        });\n        if (!isEmpty(impersonatedStudentClass)) {\n          const { id: sectionIdFound } = impersonatedStudentClass;\n          setSectionId(dispatch, sectionIdFound);\n          window.localStorage.setItem(LC_CONSTANTS.SECTION_ID, sectionIdFound);\n        }\n      }\n    }\n  }, [subject, teacherSubjects]);\n\n  if (!isImpersonating) return null;\n\n  const icon = (\n    <Fragment>\n      <ResponsiveView screens={['mobile']}>\n        <Icon\n          className={cn('Impersonate--logout-icon')}\n          name=\"arrow_assigned\"\n          width=\"1.4rem\"\n          height=\"1.4rem\"\n        />\n      </ResponsiveView>\n      <ResponsiveView screens={['desktop']}>\n        <Icon\n          className={cn('Impersonate--logout-icon')}\n          name=\"arrow_assigned\"\n          width=\"1.2rem\"\n          height=\"1.2rem\"\n        />\n      </ResponsiveView>\n    </Fragment>\n  );\n\n  const isPlayerRoute =\n    pathname.includes(`/${subject}/assessments/assignments/${assignmentId}`) &&\n    assignmentId;\n\n  const renderLDBHeaderDetails = () => {\n    if (isLockdownBrowser() && isImpersonating) {\n      const { studentName, sectionName } = getLDBImpersonatingHeaderDetailLC();\n      return (\n        <Fragment>\n          <span className=\"Impersonate--header-info\">\n            You are viewing AP Classroom for\n          </span>\n          <div className=\"ldb-details\">\n            <span className=\"student-name\">{studentName}</span> in{' '}\n            <span className=\"section-name\"> {sectionName} </span>\n          </div>\n        </Fragment>\n      );\n    }\n    return null;\n  };\n\n  return (\n    <ImpersonateFocusWrapper\n      isPlayerRoute={isPlayerRoute}\n      isBluebookUi={isBluebookUi}\n    >\n      <div\n        className={cn(\n          'Impersonate--header gap-7 bg-yellow-200 border-b-4 border-blue-500 fixed z-10 top-0',\n          {\n            'is-sticky': isPlayerRoute,\n          },\n        )}\n      >\n        {isLoading ? (\n          <LoadingSpinner />\n        ) : (\n          <Fragment>\n            {isLockdownBrowser() ? (\n              renderLDBHeaderDetails()\n            ) : (\n              <Fragment>\n                <span className=\"Impersonate--header-info\">\n                  You are viewing AP Classroom for:\n                </span>\n                <StudentsSearch\n                  classes={teacherClasses}\n                  onStudentSelected={onStudentSelected}\n                  selectedSectionId={sectionId}\n                  selectedStudentId={studentId}\n                />\n                <AccessibilityWrapper>\n                  <a\n                    role=\"button\"\n                    onClick={onLogoutClick}\n                    className=\"Impersonate--logout\"\n                    tabIndex={0}\n                  >\n                    <span className=\"Impersonate--header-logout\">\n                      Return to my view\n                    </span>{' '}\n                    {icon}\n                  </a>\n                </AccessibilityWrapper>\n              </Fragment>\n            )}\n          </Fragment>\n        )}\n      </div>\n    </ImpersonateFocusWrapper>\n  );\n};\n\nconst mapStateToProps = ({\n  featureFlag,\n  impersonating,\n  userData,\n  subject,\n}) => ({\n  impersonating,\n  featureFlag,\n  isImpersonatingFlagPreap: featureFlag.preap_teacher_impersonates_student,\n  isBluebookUi: featureFlag.bluebook_ui,\n  areFeatureFlagsLoaded: featureFlag.areFeatureFlagsLoaded,\n  userData,\n  subjectData: subject.data,\n});\n\nexport default compose(\n  withRouter,\n  withUnitsConnectLean,\n  connect(mapStateToProps),\n)(ImpersonateHeader);\n","import React, { Fragment, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport StudentsSearch from '../StudentsSearch';\nimport useDoImpersonate from 'legacy/src/components/impersonating/hooks/useDoImpersonate';\nimport {\n  withUnitsConnectLean,\n  getSectionAndStudentName,\n} from 'legacy/src/components/impersonating/utils';\nimport ConfirmDialog from 'chameleon/ui-stack/ui/modals/confirm-dialog';\nimport './styles.scss';\n\nconst ImpersonateModal = (props) => {\n  const {\n    onClose,\n    dispatch,\n    router,\n    userData,\n    classes,\n    resetUnitsInternalStore,\n    impersonating,\n  } = props;\n  const [selectedStudent, setSelectedStudent] = useState(null);\n  const chosenEducationPeriodCode = Number.parseInt(\n    userData.chosenEducationPeriodCode,\n    10,\n  );\n  const [currentClasses, setCurrentClasses] = useState([]);\n\n  useEffect(() => {\n    const filteredClasses = classes.filter(\n      ({ educationPeriod }) => educationPeriod === chosenEducationPeriodCode,\n    );\n    setCurrentClasses(filteredClasses);\n  }, [classes]);\n\n  const [, doImpersonate] = useDoImpersonate({\n    dispatch,\n    router,\n    userData,\n    impersonating: {\n      ...impersonating,\n      teacherClasses: currentClasses,\n    },\n    callback: () => {\n      resetUnitsInternalStore();\n    },\n  });\n\n  const onViewStudentExperience = () => {\n    const { value, section } = selectedStudent;\n    doImpersonate({\n      studentId: value,\n      sectionId: section.value,\n      ...getSectionAndStudentName(value, section.value, currentClasses),\n    });\n  };\n\n  const onStudentSelected = (section, student) => {\n    const studentWithSection = {\n      ...student,\n      section,\n    };\n    setSelectedStudent(studentWithSection);\n  };\n\n  return (\n    <ConfirmDialog\n      size=\"small\"\n      title=\"Student View of AP Classroom\"\n      onClose={onClose}\n      onSuccess={onViewStudentExperience}\n      isPrimaryBtnDisabled={\n        !selectedStudent || (selectedStudent && !selectedStudent.value)\n      }\n      content={{\n        btnPrimary: 'View Student Experience',\n      }}\n    >\n      <Fragment>\n        <p>\n          Select a student to view their AP Classroom experience. You will be\n          able to see everything they see, but your activity will not be saved.\n          When the student next logs in, their experience will be as they left\n          it.\n        </p>\n        <div className=\"Impersonate--dropdowns\">\n          <p>Which student account would you like to view?</p>\n          <StudentsSearch\n            containerClassName=\"flex-column\"\n            classes={currentClasses}\n            onStudentSelected={onStudentSelected}\n          />\n        </div>\n      </Fragment>\n    </ConfirmDialog>\n  );\n};\n\nImpersonateModal.propTypes = {\n  onClose: PropTypes.func,\n};\n\nImpersonateModal.defaultProps = {\n  onClose: () => {},\n};\n\nconst mapStateToProps = ({ userData, subject, impersonating }) => ({\n  userData,\n  classes: subject.data.classes || [],\n  impersonating,\n});\nexport default compose(\n  withRouter,\n  withUnitsConnectLean,\n  connect(mapStateToProps),\n)(ImpersonateModal);\n","import React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport useSubjectRestrictions from 'legacy/src/components/impersonating/hooks/useSubjectsRestrictions';\nimport useImpersonateModal from 'legacy/src/components/impersonating/hooks/useImpersonateModal';\nimport UnableToViewModal from 'legacy/src/components/impersonating/components/UnableToViewModal';\nimport {\n  isImpersonatingSubjectAvailable,\n  getUnableToViewContent,\n} from 'legacy/src/components/impersonating/utils';\n\nconst ImpersonateSubjectSelector = (props) => {\n  const { children, impersonating, preapImpersonatingFlag, userData } = props;\n  const { teacherSubjects, subject = '0' } = impersonating || {};\n  const [isImpersonatingReady, setIsImpersonatingReady] = useState(false);\n  const [externalLinkModal, openExternalLinkModal] = useImpersonateModal({\n    modal: UnableToViewModal,\n  });\n  const { studentSubjects } = userData;\n\n  const [, setSubjectRestrictions] = useSubjectRestrictions({\n    impersonating,\n    studentSubjects,\n    preapImpersonatingFlag,\n    userData,\n    onRestrictedSubject: (messageType) => {\n      const contentData = getUnableToViewContent(messageType);\n      openExternalLinkModal(contentData);\n    },\n  });\n\n  useEffect(() => {\n    if (subject && (teacherSubjects || []).length) {\n      const teacherSubject = teacherSubjects.find(({ id }) => id === subject);\n      const { subjectProgram } = teacherSubject;\n      if (\n        isImpersonatingSubjectAvailable({\n          program: subjectProgram,\n          preapImpersonatingFlag,\n        })\n      ) {\n        setIsImpersonatingReady(true);\n      }\n    }\n  }, [subject, teacherSubjects]);\n\n  if (isImpersonatingReady) {\n    return (\n      <Fragment>\n        {externalLinkModal}\n        {React.cloneElement(children, {\n          onSubjectClick: setSubjectRestrictions,\n        })}\n      </Fragment>\n    );\n  }\n\n  return children;\n};\n\nImpersonateSubjectSelector.propTypes = {\n  impersonating: PropTypes.object,\n};\n\nexport default ImpersonateSubjectSelector;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport sortBy from 'lodash/sortBy';\nimport cn from 'classnames';\nimport { Icon } from 'legacy/packages/ft-cb';\nimport AutocompleteSelect from 'chameleon/ui-stack/ui/forms/autocomplete-select';\nimport './styles.scss';\n\nconst StudentsSearch = (props) => {\n  const {\n    classes,\n    onStudentSelected,\n    selectedSectionId,\n    selectedStudentId,\n    containerClassName,\n  } = props;\n  const [sections, setSections] = useState([]);\n  const [selectedSection, setSelectedSection] = useState(null);\n  const [selectedStudent, setSelectedStudent] = useState(null);\n  const [students, setStudents] = useState(null);\n  const [allStudents, setAllStudents] = useState(null);\n\n  useEffect(() => {\n    if ((classes || []).length) {\n      let allStudentsFound = [];\n      let allSections = classes.map(\n        ({ id, name, students: sectionStudents }) => {\n          let studentsMap = sectionStudents.map(\n            ({ id: studentId, firstName, lastName }) => ({\n              firstName,\n              lastName,\n              label: `${firstName} ${lastName}`,\n              value: studentId,\n            }),\n          );\n          allStudentsFound = allStudentsFound.concat(studentsMap);\n          studentsMap = sortBy(\n            studentsMap,\n            [\n              ({ firstName, lastName, ...rest }) => ({\n                ...rest,\n                firstName: firstName.toLowerCase(),\n                lastName: lastName.toLowerCase(),\n              }),\n            ],\n            ['lastName', 'firstName'],\n          );\n          return {\n            label: name,\n            value: id,\n            students: studentsMap,\n          };\n        },\n      );\n      allSections = sortBy(\n        allSections,\n        [({ label }) => label.toLowerCase()],\n        ['label'],\n      );\n      if (allSections.length > 1) {\n        allSections.unshift({\n          label: 'All Classes',\n          value: '-1',\n        });\n      }\n\n      setSections(allSections);\n      const defaultSelectedSection = selectedSectionId\n        ? allSections.find(({ value }) => value === selectedSectionId) ||\n          allSections[0]\n        : allSections[0];\n      setSelectedSection(defaultSelectedSection);\n      allStudentsFound = sortBy(\n        allStudentsFound,\n        [\n          ({ firstName, lastName, ...rest }) => ({\n            ...rest,\n            firstName: firstName.toLowerCase(),\n            lastName: lastName.toLowerCase(),\n          }),\n        ],\n        ['lastName', 'firstName'],\n      );\n      setAllStudents(allStudentsFound);\n    }\n  }, [classes]);\n\n  useEffect(() => {\n    if (selectedSection) {\n      let foundStudents;\n      if (selectedSection.value === '-1') {\n        foundStudents = allStudents;\n      } else {\n        foundStudents =\n          (sections.find(({ value }) => value === selectedSection.value) || {})\n            .students || [];\n      }\n\n      setStudents(foundStudents);\n      if (foundStudents.length === 1) {\n        setSelectedStudent(foundStudents[0]);\n      } else if (selectedStudentId) {\n        setSelectedStudent(\n          foundStudents.find(({ value }) => value === selectedStudentId),\n        );\n      }\n    }\n  }, [selectedSection, sections]);\n\n  useEffect(() => {\n    if (selectedSection) {\n      onStudentSelected(selectedSection, selectedStudent);\n    }\n  }, [selectedSection, selectedStudent]);\n\n  const onSectionChange = (section) => {\n    setSelectedStudent(null);\n    setSelectedSection(section);\n  };\n\n  const onStudentChange = (student) => {\n    setSelectedStudent(student);\n  };\n\n  const onStudentCustomReset = () => {\n    setSelectedStudent(null);\n  };\n\n  const isSearchingMode = !!selectedStudent;\n  return (\n    <div className={cn('flex gap-7', containerClassName)}>\n      <AutocompleteSelect\n        data-test-id=\"sections-dropdown\"\n        portalContainerClassName=\"z-overModals\"\n        listClassName=\"StudentsSearch--list\"\n        onChange={onSectionChange}\n        value={selectedSection || {}}\n        placeholder={{\n          label: 'Select a Class Section',\n        }}\n        options={sections}\n      />\n      <AutocompleteSelect\n        data-test-id=\"students-dropdown\"\n        portalContainerClassName=\"z-overModals\"\n        listClassName=\"StudentsSearch--list\"\n        onChange={onStudentChange}\n        customReset={onStudentCustomReset}\n        value={\n          selectedStudent || {\n            label: '',\n          }\n        }\n        placeholder={{\n          label: 'Select a Student',\n        }}\n        options={students || []}\n        icon={\n          isSearchingMode ? (\n            <Icon name=\"xmark\" />\n          ) : (\n            <Icon\n              className=\"StudentsSearch--students-search-icon\"\n              name=\"search\"\n              size=\"18px\"\n            />\n          )\n        }\n        clearable={isSearchingMode}\n      />\n    </div>\n  );\n};\n\nStudentsSearch.propTypes = {\n  classes: PropTypes.array.isRequired,\n  onStudentSelected: PropTypes.func,\n  selectedSectionId: PropTypes.string,\n  selectedStudentId: PropTypes.string,\n  containerClassName: PropTypes.string,\n};\n\nStudentsSearch.defaultProps = {\n  onStudentSelected: () => {},\n  selectedSectionId: '',\n  selectedStudentId: '',\n  containerClassName: '',\n};\n\nexport default StudentsSearch;\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport ConfirmDialog from 'chameleon/ui-stack/ui/modals/confirm-dialog';\n\nconst UnableToViewModal = (props) => {\n  const { onClose, title, description, otherDescription } = props;\n\n  return (\n    <ConfirmDialog\n      title={title}\n      onSuccess={onClose}\n      onClose={onClose}\n      content={{\n        btnPrimary: 'Ok',\n      }}\n    >\n      <p>{description}</p>\n      {otherDescription !== null ? (\n        otherDescription\n      ) : (\n        <Fragment>\n          <p>From this menu, students can click: </p>\n          <ul>\n            <li>\n              <strong>My AP</strong> to join classes and view AP exam\n              information.\n            </li>\n            <li>\n              <strong>My Account</strong> to view and update personal\n              information.\n            </li>\n          </ul>\n        </Fragment>\n      )}\n    </ConfirmDialog>\n  );\n};\n\nUnableToViewModal.propTypes = {\n  onClose: PropTypes.func,\n  title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n  description: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n    .isRequired,\n  otherDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\n\nUnableToViewModal.defaultProps = {\n  onClose: () => {},\n  title: 'About the AP Classroom Student View',\n  description:\n    'The Student View is only able to share what students see in AP Classroom.',\n  otherDescription: null,\n};\n\nexport default UnableToViewModal;\n","import { bindActionCreators } from 'redux';\nimport forEach from 'lodash/forEach';\nimport { me } from 'legacy/src/queries';\nimport {\n  setIsReadOnly,\n  setStudentId,\n  setSectionId,\n  setEducationPeriod,\n  setSubject,\n  setIsWelcomeVideoFirstTime,\n  doImpersonate as doImpersonateAction,\n  logoutImpersonate as logoutImpersonateAction,\n  refreshImpersonatorAccessToken as refreshImpersonatorAccessTokenAction,\n} from 'legacy/src/components/impersonating/state/actions';\nimport {\n  saveLocalStorageData,\n  isImpersonating,\n  getImpersonatorTokens,\n  updateImpersonatorAccessToken,\n  getStudentTokens,\n  getImpersonatedStudentId,\n  emptyImpersonaterLocalStorage,\n} from 'legacy/src/components/impersonating/utils';\nimport { pageReloading } from 'legacy/src/actions/commonActions';\nimport { login } from 'legacy/src/components/auth/actions';\nimport { getEducationPeriodForSubject } from 'legacy/src/components/auth/utils';\nimport { setItems } from 'legacy/src/actions/classes';\nimport {\n  unitsClient,\n  fymClient,\n  impersonatorFymClient,\n  reportsClient,\n  wizardsClient,\n} from 'legacy/src/utility/GraphqlClients';\nimport { isSubjectHasResource } from 'chameleon/src/utility/subjectResources';\nimport { DASHBOARD_ID } from 'chameleon/src/components/SidebarWrapperTwoLevels/constants';\nimport {\n  IMPERSONATING_TELEMETRY_TYPES,\n  LC_CONSTANTS,\n} from '../utils/constants';\nimport postImpersonatingTelemetryData from '../utils/telemetry';\n\n/**\n * @todo - check SSO teacher session (livity)\n * */\n\n/**\n * Hook for doing the impersonating call\n * @param {function} dispatch The redux dispatch method\n * @param {object} router\n * @param {object} userData\n * @param {object} impersonating\n * @param {function} callback\n * */\nexport default ({\n  dispatch,\n  router,\n  userData,\n  impersonating,\n  callback = () => {},\n}) => {\n  const sagaDispatch = bindActionCreators(\n    {\n      doImpersonateAction,\n      logoutImpersonateAction,\n      refreshImpersonatorAccessTokenAction,\n      pageReloading,\n      pageReloadingFulfill: pageReloading.fulfill,\n      loginSuccess: login.success,\n      setItemsAction: setItems,\n    },\n    dispatch,\n  );\n\n  const { teacherClasses = [] } = impersonating || {};\n\n  const getSubjectPath = (subjectId) => {\n    if (isSubjectHasResource(subjectId, DASHBOARD_ID)) {\n      return 'assignments/dashboard';\n    }\n\n    return 'home';\n  };\n\n  /**\n   * @param {string} sectionId\n   * @param {string} studentId\n   * @param {string} studentName\n   * @param {string} sectionName\n   * */\n  const doImpersonate = async ({\n    sectionId,\n    studentId,\n    studentName = '',\n    sectionName = '',\n  }) => {\n    const impersonatedStudentId = getImpersonatedStudentId();\n    /**\n     * Do not impersonate the same student\n     * */\n    if (impersonatedStudentId === studentId) {\n      return;\n    }\n\n    // if we are changing student then send a stop telementry for the old student\n    if (impersonatedStudentId) {\n      const stopImpersonatedTelData = {\n        eventType: IMPERSONATING_TELEMETRY_TYPES.STOP,\n        studentId: impersonatedStudentId,\n        userData,\n        subjectId: window.localStorage.getItem(LC_CONSTANTS.ISUBJECT),\n        sectionId: window.localStorage.getItem(LC_CONSTANTS.SECTION_ID),\n        teacherClasses,\n      };\n      postImpersonatingTelemetryData(stopImpersonatedTelData);\n    }\n    sagaDispatch.pageReloading();\n    const { refreshToken } = getImpersonatorTokens();\n\n    // If we swap to another student, we likely need to get a new access token. they only live for like 45 minutes\n    // and the interceptors won't trigger while we are already impersonating a user\n    sagaDispatch.refreshImpersonatorAccessTokenAction({\n      headers: {\n        //skip automatic refresh, because this is the refresh endpoint\n        skipRefresh: true,\n        Authorization: `Bearer ${refreshToken}`,\n      },\n      onReady: (refreshResponse) => {\n        const {\n          access_token: newAccessToken,\n          expires: newExpires,\n          http_status_code,\n        } = refreshResponse;\n        if (http_status_code >= 400) {\n          emptyImpersonaterLocalStorage();\n          return;\n        }\n        updateImpersonatorAccessToken({\n          accessToken: newAccessToken,\n          expires: Date.parse(newExpires),\n        });\n\n        // get the actual student access token\n        sagaDispatch.doImpersonateAction({\n          headers: {\n            skipRefresh: true,\n            Authorization: `Bearer ${newAccessToken}`,\n          },\n          params: {\n            id: studentId,\n          },\n          onReady: (response) => {\n            if (response.http_status_code >= 400) {\n              emptyImpersonaterLocalStorage();\n              return;\n            }\n            sagaDispatch.setItemsAction([]);\n            forEach(\n              [\n                unitsClient,\n                fymClient,\n                impersonatorFymClient,\n                reportsClient,\n                wizardsClient,\n              ],\n              async (client) => {\n                client && client.resetStore && (await client.resetStore());\n              },\n            );\n\n            const next = () => {\n              const {\n                subject,\n                currentSubject,\n                educationPeriod: currentEducationPeriod,\n              } = impersonating;\n              const { subject: routerSubject } = router.params;\n              const educationPeriod =\n                currentEducationPeriod ||\n                getEducationPeriodForSubject({\n                  subjectId: currentSubject,\n                  userData,\n                });\n              saveLocalStorageData(\n                response,\n                sectionId,\n                educationPeriod,\n                currentSubject || routerSubject,\n                studentName,\n                sectionName,\n              );\n              setIsReadOnly(dispatch, true);\n              setStudentId(dispatch, studentId);\n              setSectionId(dispatch, sectionId);\n              setEducationPeriod(dispatch, educationPeriod);\n              if (!subject && routerSubject) {\n                setSubject(dispatch, routerSubject);\n              }\n              setIsWelcomeVideoFirstTime(dispatch, true);\n\n              // send start event for new impersonated student\n              const startImpersonatedTelData = {\n                eventType: IMPERSONATING_TELEMETRY_TYPES.START,\n                studentId,\n                sectionId,\n                subjectId: currentSubject || routerSubject,\n                userData,\n                teacherClasses,\n              };\n              postImpersonatingTelemetryData(startImpersonatedTelData);\n\n              fymClient\n                .query({\n                  query: me,\n                  fetchPolicy: 'network-only',\n                })\n                .then(({ data }) => {\n                  const {\n                    currentEducationPeriod,\n                    educationPeriods,\n                    nextEducationPeriod,\n                  } = data;\n                  sagaDispatch.loginSuccess({\n                    ...data,\n                    me: {\n                      ...data.me,\n                      ssoLogin: 'Not SSO',\n                    },\n                    educationPeriod: {\n                      currentEducationPeriod,\n                      educationPeriods,\n                      nextEducationPeriod,\n                    },\n                  });\n                  callback();\n                  const subjectId = currentSubject || routerSubject;\n                  const path = getSubjectPath(Number(subjectId));\n                  router.replace(`/${subjectId}/${path}`);\n                  sagaDispatch.pageReloadingFulfill();\n                });\n            };\n\n            if (isImpersonating()) {\n              /**\n               * @todo - answer this: What happens with the endpoints that would fire exactly after logout\n               * (use case is you impersonate student assignment results page which takes time to load)\n               * */\n              const {\n                accessToken: studentAccessToken,\n                refreshToken: studentRefreshToken,\n                expires: studentExpires,\n              } = getStudentTokens();\n              sagaDispatch.logoutImpersonateAction({\n                headers: {\n                  skipRefresh: true,\n                  Authorization: `Bearer ${studentAccessToken}`,\n                  refreshToken: studentRefreshToken,\n                  expires: studentExpires,\n                },\n                onReady: () => next(),\n              });\n            } else {\n              next();\n            }\n          },\n        });\n      },\n    });\n  };\n\n  return [{}, doImpersonate];\n};\n","import { bindActionCreators } from 'redux';\nimport forEach from 'lodash/forEach';\nimport { me } from 'legacy/src/queries';\nimport {\n  emptyImpersonaterLocalStorage,\n  getStudentTokens,\n} from 'legacy/src/components/impersonating/utils';\nimport {\n  logoutImpersonate,\n  setEducationPeriod,\n  setIsReadOnly,\n  setSectionId,\n  setStudentId,\n  setSubject,\n  setCurrentSubject,\n  setTeacherClasses,\n} from 'legacy/src/components/impersonating/state/actions';\nimport { pageReloading } from 'legacy/src/actions/commonActions';\nimport { login } from 'legacy/src/components/auth/actions';\nimport { resetCourseOutline } from 'legacy/src/actions/courseOutline';\nimport { setItems } from 'legacy/src/actions/classes';\nimport {\n  IMPERSONATING_TELEMETRY_TYPES,\n  LC_CONSTANTS,\n} from '../utils/constants';\nimport postImpersonatingTelemetryData from '../utils/telemetry';\nimport {\n  unitsClient,\n  fymClient,\n  impersonatorFymClient,\n  reportsClient,\n  wizardsClient,\n} from 'legacy/src/utility/GraphqlClients';\n\n/**\n * @params {func} dispatch - redux method\n * @params {object} navData - the nav data\n * @params {function} callback\n * @params {object} impersonating - redux object\n * */\nexport default ({\n  dispatch,\n  router,\n  impersonating,\n  callback = () => {},\n  userData,\n}) => {\n  const sagaDispatch = bindActionCreators(\n    {\n      logoutImpersonateAction: logoutImpersonate,\n      pageReloading,\n      pageReloadingFulfill: pageReloading.fulfill,\n      loginSuccess: login.success,\n      setItemsAction: setItems,\n    },\n    dispatch,\n  );\n\n  const { teacherClasses } = impersonating;\n\n  const doLogout = () => {\n    sagaDispatch.pageReloading();\n\n    const { accessToken: studentAccessToken } = getStudentTokens();\n\n    // revoke the student access token\n    sagaDispatch.logoutImpersonateAction({\n      headers: {\n        skipRefresh: true,\n        Authorization: `Bearer ${studentAccessToken}`,\n      },\n      onReady: () => {\n        // send stop data for the current impersonated student\n        const stopImpersonatedTelData = {\n          eventType: IMPERSONATING_TELEMETRY_TYPES.STOP,\n          subjectId: window.localStorage.getItem(LC_CONSTANTS.ICURRENTSUBJECT),\n          studentId: window.localStorage.getItem(LC_CONSTANTS.STUDENT_ID),\n          sectionId: window.localStorage.getItem(LC_CONSTANTS.SECTION_ID),\n          userData,\n          teacherClasses,\n        };\n        postImpersonatingTelemetryData(stopImpersonatedTelData);\n        emptyImpersonaterLocalStorage();\n        setIsReadOnly(dispatch, false);\n        setStudentId(dispatch, null);\n        setSectionId(dispatch, null);\n        setEducationPeriod(dispatch, null);\n        setTeacherClasses(dispatch, []);\n        setSubject(dispatch, null);\n        setCurrentSubject(dispatch, null);\n\n        fymClient\n          .query({\n            query: me,\n            fetchPolicy: 'network-only',\n          })\n          .then(({ data }) => {\n            forEach(\n              [\n                unitsClient,\n                fymClient,\n                impersonatorFymClient,\n                reportsClient,\n                wizardsClient,\n              ],\n              async (client) => {\n                client && client.resetStore && (await client.resetStore());\n              },\n            );\n\n            const {\n              currentEducationPeriod,\n              educationPeriods,\n              nextEducationPeriod,\n            } = data;\n            sagaDispatch.loginSuccess({\n              ...data,\n              me: data.me,\n              educationPeriod: {\n                currentEducationPeriod,\n                educationPeriods,\n                nextEducationPeriod,\n              },\n            });\n            /**\n             * Reset CO redux store for current subject\n             * */\n            resetCourseOutline(dispatch);\n            sagaDispatch.setItemsAction([]);\n            const { currentSubject } = impersonating;\n            document\n              .querySelector('#root')\n              .classList.remove('is-impersonating');\n            window.localStorage.setItem(\n              LC_CONSTANTS.IMPERSONATOR_REDIRECT_SUBJECT_ID,\n              currentSubject,\n            );\n            callback();\n            router.replace(`/${currentSubject}/home`);\n            sagaDispatch.pageReloadingFulfill();\n          });\n      },\n    });\n  };\n\n  return [\n    {\n      logoutDispatchers: sagaDispatch,\n    },\n    doLogout,\n  ];\n};\n","import React, { useState } from 'react';\nimport ImpersonateModal from 'legacy/src/components/impersonating/components/ImpersonateModal';\n\nexport default (props) => {\n  const [isOpen, setIsOpen] = useState(false);\n  const [otherProps, setOtherProps] = useState({});\n  const { modal: Component = ImpersonateModal, ...rest } = props || {};\n  const onClose = () => {\n    setIsOpen(false);\n  };\n\n  const modal = isOpen ? (\n    <Component onClose={onClose} {...rest} {...otherProps} />\n  ) : null;\n  const onOpenModal = (p = {}) => {\n    setOtherProps(p);\n    setIsOpen(true);\n  };\n  return [modal, onOpenModal];\n};\n","import * as types from 'legacy/src/constants/types';\nimport { isImpersonatingSubjectAvailable } from 'legacy/src/components/impersonating/utils';\nimport isSubjectAvailable from 'legacy/src/components/impersonating/utils/isSubjectAvailable';\nimport {\n  IMPERSONATING_TELEMETRY_TYPES,\n  LC_CONSTANTS,\n  SUBJECT_RESTRICTION_TYPES,\n} from 'legacy/src/components/impersonating/utils/constants';\nimport postImpersonatingTelemetryData from '../utils/telemetry';\n/**\n * @params {object} impersonating redux reducer\n * @params {array} studentSubjects The list of subjects the student is seeing in subject selector\n * @params {boolean} preapImpersonatingFlag\n * @params {function} onRestrictedSubject\n * */\nconst useSubjectRestrictions = (props) => {\n  const {\n    impersonating,\n    studentSubjects,\n    preapImpersonatingFlag,\n    onRestrictedSubject = () => {},\n    userData,\n  } = props;\n  const { teacherSubjects, studentId, educationPeriod, teacherClasses } =\n    impersonating;\n\n  const stopSubjectSelection = (event, messageType) => {\n    event.preventDefault();\n    onRestrictedSubject(messageType);\n  };\n\n  const setSubjectRestrictions = (event, subjectId) => {\n    const studentSubject = studentSubjects.find(({ id }) => id === subjectId);\n    const { subjectProgram } = studentSubject;\n\n    if (\n      !isImpersonatingSubjectAvailable({\n        program: subjectProgram,\n        preapImpersonatingFlag,\n      })\n    ) {\n      const messageType =\n        subjectProgram === types.AP\n          ? SUBJECT_RESTRICTION_TYPES.PROGRAM_AP\n          : SUBJECT_RESTRICTION_TYPES.PROGRAM_PREAP;\n      stopSubjectSelection(event, messageType);\n    } else {\n      const isTeacherTeaching = isSubjectAvailable({\n        subjectId,\n        studentId,\n        educationPeriod,\n        teacherSubjects,\n      });\n      if (!isTeacherTeaching) {\n        stopSubjectSelection(event, SUBJECT_RESTRICTION_TYPES.NOT_TEACHING);\n      } else {\n        // send a start event for subject change\n        const startImpersonatedTelData = {\n          eventType: IMPERSONATING_TELEMETRY_TYPES.START,\n          sectionId: window.localStorage.getItem(LC_CONSTANTS.SECTION_ID),\n          studentId,\n          subjectId,\n          userData,\n          teacherClasses,\n        };\n        postImpersonatingTelemetryData(startImpersonatedTelData);\n      }\n    }\n  };\n\n  return [{}, setSubjectRestrictions];\n};\n\nexport default useSubjectRestrictions;\n","import { useState } from 'react';\nimport get from 'lodash/get';\nimport { me, getTeacherInfo } from 'legacy/src/queries';\nimport {\n  setTeacherClasses,\n  setTeacherSubjects,\n} from 'legacy/src/components/impersonating/state/actions';\nimport { LC_CONSTANTS } from 'legacy/src/components/impersonating/utils/constants';\n\nexport default (props) => {\n  const { client, dispatch } = props;\n  const [classes, setClasses] = useState([]);\n\n  const getTeacherData = async ({ subjectId }) => {\n    const currentEducationPeriod = Number.parseInt(\n      window.localStorage.getItem(LC_CONSTANTS.EDUCATION_PERIOD),\n      10,\n    );\n    const mePromise = client\n      .query({\n        query: me,\n      })\n      .then((response) => {\n        const teacherSubjects = get(response, 'data.teacherSubjects', []);\n        const currentSubject =\n          teacherSubjects.find(({ id }) => id === subjectId) || {};\n        const teacherClasses = (currentSubject.classes || []).filter(\n          ({ educationPeriod }) => educationPeriod === currentEducationPeriod,\n        );\n        setClasses(teacherClasses);\n        setTeacherClasses(dispatch, teacherClasses);\n        setTeacherSubjects(dispatch, teacherSubjects);\n\n        return response;\n      });\n\n    const teacherInfoPromise = client\n      .query({\n        query: getTeacherInfo,\n        variables: {\n          id: subjectId,\n          educationPeriod: String(currentEducationPeriod),\n        },\n      })\n      .then((response) => response);\n\n    return Promise.all([mePromise, teacherInfoPromise]);\n  };\n\n  const data = {\n    classes,\n  };\n\n  return [data, getTeacherData];\n};\n","import { createRoutine } from 'redux-saga-routines';\nimport { ACTIONS } from '../utils/constants';\n\nconst {\n  SET_READ_ONLY,\n  SET_STUDENT_ID,\n  SET_SECTION_ID,\n  SET_IMPERSONATOR_EDUCATION_PERIOD,\n  SET_IMPERSONATOR_TEACHER_CLASSES,\n  SET_IMPERSONATOR_TEACHER_SUBJECTS,\n  SET_IMPERSONATOR_SUBJECT,\n  SET_IMPERSONATOR_CURRENT_SUBJECT,\n  SET_IS_WELCOME_VIDEO_FIRST_TIME,\n} = ACTIONS;\n\nexport const setIsReadOnly = (dispatch, isReadOnly) =>\n  dispatch({\n    type: SET_READ_ONLY,\n    payload: { isReadOnly },\n  });\n\nexport const setStudentId = (dispatch, studentId) =>\n  dispatch({\n    type: SET_STUDENT_ID,\n    payload: { studentId },\n  });\n\nexport const setSectionId = (dispatch, sectionId) =>\n  dispatch({\n    type: SET_SECTION_ID,\n    payload: { sectionId },\n  });\n\nexport const setEducationPeriod = (dispatch, educationPeriod) =>\n  dispatch({\n    type: SET_IMPERSONATOR_EDUCATION_PERIOD,\n    payload: { educationPeriod },\n  });\n\nexport const setTeacherClasses = (dispatch, classes) =>\n  dispatch({\n    type: SET_IMPERSONATOR_TEACHER_CLASSES,\n    payload: { teacherClasses: classes },\n  });\n\nexport const setTeacherSubjects = (dispatch, subjects) =>\n  dispatch({\n    type: SET_IMPERSONATOR_TEACHER_SUBJECTS,\n    payload: { teacherSubjects: subjects },\n  });\n\nexport const setIsWelcomeVideoFirstTime = (dispatch, isWelcomeVideoFirstTime) =>\n  dispatch({\n    type: SET_IS_WELCOME_VIDEO_FIRST_TIME,\n    payload: { isWelcomeVideoFirstTime },\n  });\n\nexport const setSubject = (dispatch, subject) =>\n  dispatch({\n    type: SET_IMPERSONATOR_SUBJECT,\n    payload: { subject },\n  });\n\nexport const setCurrentSubject = (dispatch, subject) =>\n  dispatch({\n    type: SET_IMPERSONATOR_CURRENT_SUBJECT,\n    payload: { currentSubject: subject },\n  });\n\nexport const doImpersonate = createRoutine('teacher/IMPERSONATE');\nexport const logoutImpersonate = createRoutine('teacher/IMPERSONATE-logout');\nexport const refreshImpersonatorAccessToken = createRoutine(\n  'teacher/IMPERSONATE-refreshToken',\n);\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport { ACTIONS } from '../utils/constants';\nimport { doImpersonate } from './actions';\n\nconst {\n  SET_READ_ONLY,\n  SET_STUDENT_ID,\n  SET_SECTION_ID,\n  SET_IMPERSONATOR_EDUCATION_PERIOD,\n  SET_IMPERSONATOR_TEACHER_CLASSES,\n  SET_IMPERSONATOR_TEACHER_SUBJECTS,\n  SET_IMPERSONATOR_SUBJECT,\n  SET_IMPERSONATOR_CURRENT_SUBJECT,\n  SET_IS_WELCOME_VIDEO_FIRST_TIME,\n} = ACTIONS;\n\nconst initialState = {\n  isReadOnly: false,\n  teacherSubjects: [],\n  isWelcomeVideoFirstTime: false,\n};\n\nconst reducer = (state = initialState, action) => {\n  const { type, payload } = action;\n  const {\n    isReadOnly,\n    studentId,\n    sectionId,\n    educationPeriod,\n    teacherClasses,\n    teacherSubjects,\n    subject,\n    isWelcomeVideoFirstTime,\n    currentSubject,\n  } = payload || {};\n\n  switch (type) {\n    case SET_READ_ONLY:\n      return {\n        ...state,\n        isReadOnly,\n      };\n    case SET_STUDENT_ID:\n      return {\n        ...state,\n        studentId,\n      };\n    case SET_SECTION_ID:\n      return {\n        ...state,\n        sectionId,\n      };\n    case SET_IMPERSONATOR_EDUCATION_PERIOD:\n      return {\n        ...state,\n        educationPeriod,\n      };\n    case SET_IMPERSONATOR_TEACHER_CLASSES:\n      return {\n        ...state,\n        teacherClasses,\n      };\n    case SET_IMPERSONATOR_TEACHER_SUBJECTS:\n      return {\n        ...state,\n        teacherSubjects,\n      };\n    case SET_IMPERSONATOR_SUBJECT:\n      return {\n        ...state,\n        subject,\n      };\n    case SET_IMPERSONATOR_CURRENT_SUBJECT:\n      return {\n        ...state,\n        currentSubject,\n      };\n    case SET_IS_WELCOME_VIDEO_FIRST_TIME:\n      return {\n        ...state,\n        isWelcomeVideoFirstTime,\n      };\n    default:\n      return state;\n  }\n};\n\nconst sagaInitialState = {\n  loadingImpersonating: false,\n};\n\nexport const sagaReducer = createReducer(sagaInitialState, {\n  [doImpersonate.request]: (state) => ({\n    ...state,\n    loadingImpersonating: true,\n  }),\n  [doImpersonate.success]: (state, { payload }) => {\n    return {\n      ...state,\n      ...payload,\n      loadingImpersonating: false,\n    };\n  },\n  [doImpersonate.failure]: (state) => ({\n    ...state,\n    loadingImpersonating: false,\n  }),\n});\n\nexport default reducer;\n","import { takeLatest, all } from 'redux-saga/effects';\nimport apiSaga from 'legacy/src/shared/util/apiSagaGenerator';\nimport {\n  doImpersonate,\n  logoutImpersonate,\n  refreshImpersonatorAccessToken,\n} from './actions';\n\nfunction* impersonateSaga({ payload = {} }) {\n  yield apiSaga(doImpersonate, {\n    method: 'post',\n    url: `${FYM_ACCOUNTS_URL}/impersonate/`,\n    data: payload.params,\n    headers: payload.headers,\n    onReady: payload.onReady,\n  });\n}\n\nfunction* logoutImpersonateSaga({ payload = {} }) {\n  yield apiSaga(logoutImpersonate, {\n    method: 'post',\n    url: `${FYM_ACCOUNTS_URL}/auth/logout/`,\n    data: payload.params,\n    headers: payload.headers,\n    onReady: payload.onReady,\n  });\n}\n\nfunction* refreshImpersonatorAccessTokenSaga({ payload = {} }) {\n  yield apiSaga(refreshImpersonatorAccessToken, {\n    method: 'post',\n    url: `${FYM_ACCOUNTS_URL}/token/refresh/`,\n    data: payload.params,\n    headers: payload.headers,\n    onReady: payload.onReady,\n  });\n}\n\n/**\n * Impersonate Saga\n * @yield {Saga} All sagas that belong to impersonate.\n */\nexport default function* teacherImpersonateSaga() {\n  yield all([\n    takeLatest(doImpersonate.TRIGGER, impersonateSaga),\n    takeLatest(logoutImpersonate.TRIGGER, logoutImpersonateSaga),\n    takeLatest(\n      refreshImpersonatorAccessToken.TRIGGER,\n      refreshImpersonatorAccessTokenSaga,\n    ),\n  ]);\n}\n","import * as types from 'legacy/src/constants/types';\n\nexport const ACTIONS = {\n  SET_READ_ONLY: 'set-read-only',\n  SET_STUDENT_ID: 'set-student-id',\n  SET_SECTION_ID: 'set-section-id',\n  SET_IMPERSONATOR_EDUCATION_PERIOD: 'SET-IMPERSONATOR-EDUCATION-PERIOD',\n  SET_IMPERSONATOR_TEACHER_CLASSES: 'SET-IMPERSONATOR-TEACHER-CLASSES',\n  SET_IMPERSONATOR_TEACHER_SUBJECTS: 'SET-IMPERSONATOR-TEACHER-SUBJECTS',\n  SET_IMPERSONATOR_SUBJECT: 'SET-IMPERSONATOR-SUBJECT',\n  SET_IMPERSONATOR_CURRENT_SUBJECT: 'SET-IMPERSONATOR-CURRENT-SUBJECT',\n  SET_IS_WELCOME_VIDEO_FIRST_TIME: 'set-is-welcome-video-first-time',\n};\n\nexport const LC_CONSTANTS = {\n  RO: 'isReadOnly',\n  AT: 'account_access_token',\n  RT: 'account_refresh_token',\n  EXP: 'expires',\n  IAT: 'impersonator_access_token',\n  IRT: 'impersonator_refresh_token',\n  IEXP: 'impersonator_expires',\n  STUDENT_ID: 'impersonating_student_id',\n  SECTION_ID: 'impersonating_section_id',\n  EDUCATION_PERIOD: 'impersonator_education_period',\n  ISUBJECT: 'impersonator_subject',\n  ICURRENTSUBJECT: 'impersonator_current_subject',\n  IS_WELCOME_VIDEO_FIRST_TIME: 'impersonator_is_welcome_video_first_time',\n  STUDENT_NAME: 'impersonating_student_name',\n  SECTION_NAME: 'impersonating_section_name',\n  IMPERSONATOR_REDIRECT_SUBJECT_ID: 'impersonator_redirect_subject_id',\n};\n\nexport const SUBJECT_RESTRICTION_TYPES = {\n  NOT_TEACHING: 'not-teaching',\n  PROGRAM_AP: types.AP,\n  PROGRAM_PREAP: types.PreAP,\n};\n\nexport const IMPERSONATING_TELEMETRY_TYPES = {\n  START: 'start',\n  STOP: 'stop',\n};\n","/**\n * Find the student in the list of classes\n * @param {string} studentId\n * @param {integer} ep The education period\n * @param {array} classes\n * @returns {object} The class found\n * */\nconst getImpersonatedStudentClass = ({\n  studentId,\n  educationPeriod,\n  classes,\n}) => {\n  if (\n    !studentId ||\n    !educationPeriod ||\n    !Array.isArray(classes) ||\n    !classes.length\n  )\n    return {};\n\n  const foundStudent = classes.find(\n    ({ students = [], educationPeriod: classEp }) =>\n      educationPeriod === classEp &&\n      ((Array.isArray(students) && students) || []).find(\n        ({ id }) => id === studentId,\n      ),\n  );\n\n  return foundStudent || {};\n};\n\nexport default getImpersonatedStudentClass;\n","import { LC_CONSTANTS, SUBJECT_RESTRICTION_TYPES } from './constants';\nimport { connectLean } from 'lean-redux';\nimport * as types from 'legacy/src/constants/types';\nimport log from 'chameleon/ui-stack/utilities/log';\n\nexport const backupImpersonatorLC = ({ subject, educationPeriod }) => {\n  const accessToken = window.localStorage.getItem(LC_CONSTANTS.AT);\n  const refreshToken = window.localStorage.getItem(LC_CONSTANTS.RT);\n  const expires = window.localStorage.getItem(LC_CONSTANTS.EXP);\n\n  const impersonatorAccessToken = window.localStorage.getItem(LC_CONSTANTS.IAT);\n  if (!impersonatorAccessToken || impersonatorAccessToken === 'null') {\n    window.localStorage.setItem(LC_CONSTANTS.IAT, accessToken);\n    window.localStorage.setItem(LC_CONSTANTS.IRT, refreshToken);\n    window.localStorage.setItem(\n      LC_CONSTANTS.IEXP,\n      new Date(parseInt(expires, 10)).valueOf(),\n    );\n    window.localStorage.setItem(LC_CONSTANTS.ISUBJECT, subject);\n    window.localStorage.setItem(LC_CONSTANTS.EDUCATION_PERIOD, educationPeriod);\n  }\n};\n\nexport const saveLocalStorageData = (\n  data,\n  sectionId,\n  educationPeriod,\n  subject,\n  studentName,\n  sectionName,\n) => {\n  const {\n    access_token: accessToken,\n    refresh_token: refreshToken,\n    id: studentId,\n  } = data;\n  const expires = new Date(data.expires).valueOf();\n\n  backupImpersonatorLC({\n    subject,\n    educationPeriod,\n  });\n  window.localStorage.setItem(LC_CONSTANTS.RO, 'true');\n  window.localStorage.setItem(LC_CONSTANTS.AT, accessToken);\n  window.localStorage.setItem(LC_CONSTANTS.RT, refreshToken);\n  window.localStorage.setItem(\n    LC_CONSTANTS.EXP,\n    new Date(parseInt(expires, 10)).valueOf(),\n  );\n  window.localStorage.setItem(LC_CONSTANTS.STUDENT_ID, studentId);\n  window.localStorage.setItem(LC_CONSTANTS.SECTION_ID, sectionId);\n  window.localStorage.setItem(LC_CONSTANTS.IS_WELCOME_VIDEO_FIRST_TIME, 'true');\n  window.localStorage.setItem(LC_CONSTANTS.STUDENT_NAME, studentName);\n  window.localStorage.setItem(LC_CONSTANTS.SECTION_NAME, sectionName);\n};\n\nexport const isImpersonating = () =>\n  window.localStorage.getItem(LC_CONSTANTS.RO) === 'true';\n\nexport const getImpersonatorTokens = () => {\n  const { accessTokenKey, refreshTokenKey, expiresKey } =\n    getUserLocalStorageKeys();\n\n  const accessToken = window.localStorage.getItem(accessTokenKey);\n  const refreshToken = window.localStorage.getItem(refreshTokenKey);\n  const expires = window.localStorage.getItem(expiresKey);\n\n  return {\n    accessToken,\n    refreshToken,\n    expires,\n  };\n};\n\nexport const updateImpersonatorAccessToken = ({ accessToken, expires }) => {\n  const { accessTokenKey, expiresKey } = getUserLocalStorageKeys();\n\n  window.localStorage.setItem(accessTokenKey, accessToken);\n  window.localStorage.setItem(expiresKey, new Date(expires).valueOf());\n};\n\nexport const getStudentTokens = () => ({\n  accessToken: window.localStorage.getItem(LC_CONSTANTS.AT),\n  refreshToken: window.localStorage.getItem(LC_CONSTANTS.RT),\n  expires: window.localStorage.getItem(LC_CONSTANTS.EXP),\n});\n\nexport const getImpersonatedStudentId = () =>\n  window.localStorage.getItem(LC_CONSTANTS.STUDENT_ID);\n\n/**\n * Clear out tokens of the user that is being impersonated, and put the impersonator tokens back in place\n */\nexport const emptyImpersonaterLocalStorage = () => {\n  const { accessToken, refreshToken, expires } = getImpersonatorTokens();\n  if (\n    !accessToken ||\n    !accessToken.startsWith('ey') ||\n    !refreshToken ||\n    !refreshToken.startsWith('ey')\n  ) {\n    log('error', 'Tried to set a bad token', accessToken, refreshToken);\n    return;\n  }\n\n  window.localStorage.setItem(LC_CONSTANTS.AT, accessToken);\n  window.localStorage.setItem(LC_CONSTANTS.RT, refreshToken);\n  window.localStorage.setItem(\n    LC_CONSTANTS.EXP,\n    new Date(parseInt(expires, 10)).valueOf(),\n  );\n\n  window.localStorage.removeItem(LC_CONSTANTS.IAT);\n  window.localStorage.removeItem(LC_CONSTANTS.IRT);\n  window.localStorage.removeItem(LC_CONSTANTS.IEXP);\n  window.localStorage.removeItem(LC_CONSTANTS.EDUCATION_PERIOD);\n  window.localStorage.removeItem(LC_CONSTANTS.STUDENT_ID);\n  window.localStorage.removeItem(LC_CONSTANTS.SECTION_ID);\n  window.localStorage.removeItem(LC_CONSTANTS.RO);\n  window.localStorage.removeItem(LC_CONSTANTS.ISUBJECT);\n  window.localStorage.removeItem(LC_CONSTANTS.ICURRENTSUBJECT);\n  window.localStorage.removeItem(LC_CONSTANTS.IS_WELCOME_VIDEO_FIRST_TIME);\n  window.localStorage.removeItem(LC_CONSTANTS.STUDENT_NAME);\n  window.localStorage.removeItem(LC_CONSTANTS.SECTION_NAME);\n};\n\nexport const isImpersonatingStudent = ({ value }) =>\n  value === window.localStorage.getItem(LC_CONSTANTS.STUDENT_ID);\n\nexport const withUnitsConnectLean = connectLean({\n  scope: ['units'],\n  resetUnitsInternalStore() {\n    this.setState({\n      units: {},\n    });\n  },\n});\n\nexport const getUserLocalStorageKeys = () => {\n  let accessTokenKey;\n  let refreshTokenKey;\n  let expiresKey;\n  if (isImpersonating()) {\n    accessTokenKey = LC_CONSTANTS.IAT;\n    refreshTokenKey = LC_CONSTANTS.IRT;\n    expiresKey = LC_CONSTANTS.IEXP;\n  } else {\n    accessTokenKey = LC_CONSTANTS.AT;\n    refreshTokenKey = LC_CONSTANTS.RT;\n    expiresKey = LC_CONSTANTS.EXP;\n  }\n\n  return {\n    accessTokenKey,\n    refreshTokenKey,\n    expiresKey,\n  };\n};\n\nexport const isImpersonatingSubjectAvailable = ({\n  program,\n  preapImpersonatingFlag,\n}) =>\n  program === types.AP || (program === types.PreAP && preapImpersonatingFlag);\n\nexport const getUnableToViewContent = (type) => {\n  let description;\n  switch (type) {\n    case SUBJECT_RESTRICTION_TYPES.PROGRAM_AP:\n      description =\n        'Students use this to view resources for other courses. Student View is only available for PRE-AP Courses.';\n      break;\n    case SUBJECT_RESTRICTION_TYPES.PROGRAM_PREAP:\n      description =\n        'Students use this to view resources for other courses. Student View is only available for AP Courses.';\n      break;\n    case SUBJECT_RESTRICTION_TYPES.NOT_TEACHING:\n      description =\n        'Students use this to view resources for other courses. This can only be viewed by the teacher managing their class section.';\n      break;\n    default:\n      description = '';\n      break;\n  }\n\n  return {\n    description,\n    otherDescription: '',\n  };\n};\n\nexport const contructParamsForLDBImpersonating = () => {\n  const params = {\n    is_impersonating: 1,\n    impersonator_subject: window.localStorage.getItem(LC_CONSTANTS.ISUBJECT),\n    impersonating_student_id: window.localStorage.getItem(\n      LC_CONSTANTS.STUDENT_ID,\n    ),\n    impersonating_section_id: window.localStorage.getItem(\n      LC_CONSTANTS.SECTION_ID,\n    ),\n    impersonator_education_period: window.localStorage.getItem(\n      LC_CONSTANTS.EDUCATION_PERIOD,\n    ),\n    impersonating_student_name: window.localStorage.getItem(\n      LC_CONSTANTS.STUDENT_NAME,\n    ),\n    impersonating_section_name: window.localStorage.getItem(\n      LC_CONSTANTS.SECTION_NAME,\n    ),\n  };\n  return params;\n};\n\nexport const getLDBImpersonatingHeaderDetailLC = () => ({\n  studentName: window.localStorage.getItem(LC_CONSTANTS.STUDENT_NAME),\n  sectionName: window.localStorage.getItem(LC_CONSTANTS.SECTION_NAME),\n});\n\nexport const getSectionAndStudentName = (\n  studentId,\n  sectionId,\n  teacherClasses = [],\n) => {\n  const sectionInfo = teacherClasses.find((t) => t.id === sectionId);\n  if (sectionInfo) {\n    const { students, name: sectionName, id: actualSectionId } = sectionInfo;\n    const student = students.find((s) => s.id === studentId);\n    return {\n      studentName: student ? `${student.firstName} ${student.lastName}` : '',\n      sectionName,\n      actualSectionId,\n    };\n  }\n  // user selected all classes\n  if (!sectionInfo) {\n    for (let i = 0; i < teacherClasses.length; i++) {\n      const { students, name, id: actualSectionId } = teacherClasses[i];\n      const student = students.find((s) => s.id === studentId);\n      if (student) {\n        return {\n          studentName: student\n            ? `${student.firstName} ${student.lastName}`\n            : '',\n          sectionName: name,\n          actualSectionId,\n        };\n      }\n    }\n  }\n  return {};\n};\n","/**\n * Checks if teacher is teaching in this subject for a student\n * @params {string} subjectId\n * @params {string} studentId\n * @params {educationPeriod}\n * @params {array} teacherSubjects The list of subjects provided by me query\n * @returns {boolean} If the student was found for a subject in one of the subject classes\n * */\nconst isSubjectAvailable = ({\n  subjectId,\n  studentId,\n  educationPeriod: ep,\n  teacherSubjects = [],\n}) => {\n  if (\n    !subjectId ||\n    !studentId ||\n    !ep ||\n    !Array.isArray(teacherSubjects) ||\n    !teacherSubjects.length\n  )\n    return false;\n\n  const currentEducationPeriod = Number.parseInt(ep, 10);\n  const { classes } = teacherSubjects.find(({ id }) => id === subjectId) || {};\n  const classesForThisEP = ((Array.isArray(classes) && classes) || []).filter(\n    ({ educationPeriod }) => educationPeriod === currentEducationPeriod,\n  );\n  const studentFoundInClass = (\n    (Array.isArray(classesForThisEP) && classesForThisEP) ||\n    []\n  ).find(({ students }) =>\n    ((Array.isArray(students) && students) || []).find(\n      ({ id }) => id === studentId,\n    ),\n  );\n\n  return Boolean(studentFoundInClass);\n};\n\nexport default isSubjectAvailable;\n","/**\n * Checks if the sectionId exists in list of classes\n * @param {string} sectionId\n * @param {array} classes\n * @returns {boolean} If the class was found\n * */\nconst isTeacherTeachingClass = ({ sectionId, classes }) => {\n  if (!sectionId || !Array.isArray(classes) || !classes.length) return false;\n\n  const foundClass = classes.find(({ id }) => id === sectionId);\n\n  return Boolean(foundClass);\n};\n\nexport default isTeacherTeachingClass;\n","import dayjs from 'dayjs';\nimport {\n  sendImpersonatingDetailsToTelemetry,\n  TLTRY_DEFAULTS,\n} from 'legacy/src/utility/telemetry';\nimport { getSectionAndStudentName } from '.';\n\nconst postImpersonatingTelemetryData = ({\n  eventType,\n  sectionId,\n  studentId,\n  subjectId,\n  userData,\n  teacherClasses,\n}) => {\n  const {\n    me: { initId: userId },\n  } = userData;\n  const { id: amUserId, pilot } = window.current_user || {};\n  const { actualSectionId } = getSectionAndStudentName(\n    studentId,\n    sectionId,\n    teacherClasses,\n  );\n  const data = {\n    app: 'fym/impersonating',\n    event_type: eventType,\n    params: {\n      impersonated_student_id: studentId,\n    },\n    user: {\n      am_user_id: amUserId,\n      pilot,\n      cb_user_id: userId,\n    },\n    context: {\n      subject_id: subjectId,\n      class_id: actualSectionId,\n    },\n    timestamp: dayjs(),\n  };\n  sendImpersonatingDetailsToTelemetry(Object.assign(data, TLTRY_DEFAULTS[0]));\n};\n\nexport default postImpersonatingTelemetryData;\n","export const MCQ_WIDGET_JSON = {\n  options: [\n    {\n      label: '&nbsp;',\n      value: '0',\n    },\n    {\n      label: '&nbsp;',\n      value: '1',\n    },\n  ],\n  stimulus: '&nbsp;',\n  type: 'mcq',\n  ui_style: {},\n  validation: {\n    scoring_type: 'exactMatch',\n    valid_response: {},\n  },\n};\n\nexport const SHARED_PASSAGE_JSON = {\n  feature_id: '7004',\n  type: 'sharedpassage',\n  content: '&nbsp;',\n  heading: '',\n};\n\nexport const MCQ_WIDGET_TEMPLATE = '9e8149bd-e4d8-4dd6-a751-1a113a4b9163';\n\nexport const FRQ_WIDGET_JSON = {\n  type: 'longtextV2',\n  stimulus: '&nbsp;',\n  formatting_options: [\n    'bold',\n    'italic',\n    'underline',\n    '|',\n    'unorderedList',\n    'orderedList',\n    'image',\n  ],\n};\n\nexport const FILE_UPLOAD_WIDGET_JSON = {\n  type: 'fileupload',\n  stimulus: '&nbsp;',\n  max_files: 12,\n  allow_jpg: true,\n  allow_png: true,\n  allow_gif: true,\n  allow_pdf: true,\n  allow_ms_word: true,\n  allow_ms_excel: true,\n  allow_ms_powerpoint: true,\n};\n\nexport const AUDIO_WIDGET_JSON = {\n  type: 'audio',\n  stimulus: '&nbsp;',\n  ui_style: {\n    type: 'button',\n  },\n};\n\nexport const FRQ_WIDGET_TEMPLATE = '1e6039f8-0676-495d-aca9-108710a51ce5';\nexport const FILE_UPLOAD_WIDGET_TEMPLATE =\n  '40f17271-9190-469e-b9da-e9bb57352b62';\nexport const AUDIO_WIDGET_TEMPLATE = '1ed372fd-78fc-4681-8898-338a81a176e5';\n\nexport const MATHEMATICS_CHARACTER_MAP_ICON = 'Ω';\nexport const MATHEMATICS_CHARACTER_MAPS = [\n  '°',\n  '∞',\n  '≤',\n  '≥',\n  '≠',\n  '≈',\n  'π',\n  'Δ',\n  'Σ',\n  'Χ',\n  'α',\n  'β',\n  'ε',\n  'θ',\n  'κ',\n  'λ',\n  'μ',\n  'ν',\n  'ρ',\n  'σ',\n  'τ',\n  'ω',\n  'x̄',\n  'p̂',\n  'ŷ',\n  '→',\n  '⇄',\n];\n\nexport const MATHEMATICS_FORMATTING_OPTIONS = [\n  'bold',\n  'italic',\n  'underline',\n  'superscript',\n  'subscript',\n  'undo',\n  'redo',\n  'characterMathMap',\n  'unorderedList',\n  'orderedList',\n  'image',\n];\n\nexport const DEFAULT_FORMATTING_OPTIONS = [\n  'bold',\n  'italic',\n  'underline',\n  'superscript',\n  'subscript',\n  'undo',\n  'redo',\n  'image',\n];\n\nexport const COMPUTER_SCIENCE_FORMATTING_OPTIONS = [\n  'bold',\n  'italic',\n  'underline',\n  '|',\n  'unorderedList',\n  'orderedList',\n  'image',\n  '|',\n  'codeInline',\n  'codeEditor',\n];\n\nexport const FOREIGN_LANGUAGE_FORMATTING_OPTIONS = [\n  'bold',\n  'italic',\n  'underline',\n  '|',\n  'unorderedList',\n  'orderedList',\n  'charactermap',\n  'image',\n  '|',\n  'undo',\n  'redo',\n  '|',\n  'superscript',\n  'subscript',\n];\n\nexport const FRENCH_CHARACTER_MAPS = [\n  'Ç',\n  'é',\n  'â',\n  'ê',\n  'î',\n  'ô',\n  'û',\n  'à',\n  'è',\n  'ù',\n  'ë',\n  'ï',\n  'ü',\n];\n\nexport const GERMAN_CHARACTER_MAPS = ['Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', 'ß'];\nexport const ITALIAN_CHARACTER_MAPS = [\n  'À',\n  'à',\n  'È',\n  'è',\n  'É',\n  'é',\n  'Ì',\n  'ì',\n  'Ò',\n  'ò',\n  'Ù',\n  'ù',\n];\nexport const SPANISH_CHARACTER_MAPS = [\n  'Á',\n  'á',\n  'É',\n  'é',\n  'Í',\n  'í',\n  'Ó',\n  'ó',\n  'Ú',\n  'ú',\n  'Ü',\n  'ü',\n  'Ñ',\n  'ñ',\n  '¿',\n  '¡',\n  '«',\n  '»',\n];\n","import { ASSIGNMENT_STATUS_CRITERIA } from 'legacy/src/constants/assignment';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport isObject from 'lodash/isObject';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport isFunction from 'lodash/isFunction';\nimport transform from 'lodash/transform';\nimport {\n  MATHEMATICS_CHARACTER_MAP_ICON,\n  MATHEMATICS_CHARACTER_MAPS,\n} from 'legacy/src/components/learnosity/utils/constants';\nimport { notify } from 'legacy/packages/ft-cb';\nimport { ATTESTATION_PREFERENCE } from 'legacy/src/constants/types';\nimport { SUBJECT_TYPE_VIEW } from 'legacy/src/constants/config';\nimport {\n  isPreApSubject,\n  MathematicsSubjects,\n} from 'chameleon/src/constants/subjects';\nimport { ALPHABET } from 'legacy/src/utility/utils';\n\nconst { keys, values } = Object;\n\n// question helpers\nexport const findResponseIndex = (response, options) =>\n  options.findIndex(\n    (option) => response.value && response.value[0] === option.value,\n  );\n\nexport const validateQuestion = (question) => {\n  question.validate({ showCorrectAnswers: true });\n};\n\nexport const removeCriteriaFromRubricResponse = (rubricResponses = {}) =>\n  transform(\n    rubricResponses,\n    (allResponses, resultsForStudent, studentId) =>\n      // eslint-disable-next-line no-param-reassign\n      (allResponses[studentId] = transform(\n        resultsForStudent,\n        (response, score, rubric) =>\n          (response[rubric] = score.score ? score.score : score),\n      )),\n  );\n\n// rubrics\nexport const hasAllRubricsFilled = (scoringRubricItemsApp) => {\n  const responses = scoringRubricItemsApp.getResponses();\n  const rubricItems = scoringRubricItemsApp.getItems();\n\n  const hasAllResponses = keys(rubricItems).length === keys(responses).length;\n  const isAllResponsesScored = values(responses).every((response) => {\n    if (response) {\n      if (!response.value) {\n        // {value: null} or value is undefined\n        return false;\n      }\n      if (isObject(response) && isObject(response.value)) {\n        // {value: {score: \"1\", ...}}\n        return Boolean(response.value.score);\n      }\n      // {value: \"1\"}\n      return Boolean(response.value);\n    }\n  });\n\n  return hasAllResponses && isAllResponsesScored;\n};\n\nexport const getFinishedPercent = (progress) => {\n  const notStarted = progress.notStarted || progress.not_started || 0;\n  const started = progress.started || 0;\n  const submitted = progress.submitted || 0;\n  const scoring = progress.scoring || 0;\n  const scored = progress.scored || 0;\n  const studentScored = progress.studentScored || progress.student_scored || 0;\n  const teacherAndStudentScored =\n    progress.teacherAndStudentScored ||\n    progress.teacher_and_student_scored ||\n    0;\n  const complete = progress.complete || 0;\n  const readyToScore = progress.readyToScore || progress.ready_to_score || 0;\n\n  const scoredSubmissions =\n    complete + scored + studentScored + teacherAndStudentScored;\n  const totalSubmissions =\n    notStarted +\n    started +\n    submitted +\n    scoring +\n    scored +\n    studentScored +\n    teacherAndStudentScored +\n    complete +\n    readyToScore;\n  if (totalSubmissions === 0) {\n    return 0;\n  }\n  return (scoredSubmissions / totalSubmissions) * 100;\n};\n\nexport const isAssignmentInProgress = (progress) =>\n  getFinishedPercent(progress) < ASSIGNMENT_STATUS_CRITERIA;\n\nexport const flattenTags = (tagsToFlatten) => {\n  if (!tagsToFlatten || !tagsToFlatten.length) {\n    return [];\n  }\n\n  return [\n    ...tagsToFlatten.map((tagToFlatten) => ({\n      ...omit(tagToFlatten, ['tags']),\n    })),\n    ...flattenTags(\n      tagsToFlatten\n        .map((tag) => tag.tags)\n        .reduce((curr, next) => [...curr, ...next], []),\n    ),\n  ];\n};\n\nexport const mapTagsToCategories = (tags) => {\n  if (!tags || !tags.length) {\n    return {};\n  }\n\n  let mappedTags = {};\n  tags.forEach((tag) => {\n    const tagId = parseInt(tag.id, 10);\n    tag.categories.forEach((category) => {\n      const categoryId = parseInt(category.id, 10);\n      if (categoryId in mappedTags) {\n        mappedTags[categoryId].push(tagId);\n      } else {\n        mappedTags[categoryId] = [tagId];\n      }\n    });\n  });\n\n  return mappedTags;\n};\n\nexport function createResponseAnalysis(\n  learnosityReportsResponseAnalysisData,\n  reference,\n  responseId = null,\n) {\n  if (\n    !learnosityReportsResponseAnalysisData ||\n    isEmpty(learnosityReportsResponseAnalysisData)\n  ) {\n    return {};\n  }\n\n  const reportData = learnosityReportsResponseAnalysisData[0].data;\n  const getQuestionResponseReference = (questionId) => {\n    const internalResponseId = get(\n      reportData,\n      ['_internal', 'questions_json', questionId, 'response_id'],\n      '',\n    );\n    if (!internalResponseId) return null;\n\n    const separatorIndex = internalResponseId.indexOf('_');\n    return separatorIndex === -1\n      ? internalResponseId\n      : internalResponseId.slice(separatorIndex + 1);\n  };\n  const questionMatchesReference = (question) =>\n    question.item_id === reference ||\n    question.question_id === reference ||\n    getQuestionResponseReference(question.question_id) === reference;\n  const questionMatchesResponseId = (question) =>\n    !responseId ||\n    question.question_id === responseId ||\n    getQuestionResponseReference(question.question_id) === responseId;\n\n  const referenceQuestions =\n    learnosityReportsResponseAnalysisData &&\n    reportData.questions &&\n    reportData.questions.filter(\n      (question) =>\n        questionMatchesReference(question) &&\n        questionMatchesResponseId(question),\n    );\n  const referenceQuestionIds = new Set(\n    (referenceQuestions || []).map((question) => question.question_id),\n  );\n\n  const referenceItems =\n    learnosityReportsResponseAnalysisData &&\n    reportData.items &&\n    reportData.items.filter(\n      (item) =>\n        item.item_id === reference ||\n        (item.questions || []).some((questionId) =>\n          referenceQuestionIds.has(questionId),\n        ),\n    );\n\n  return {\n    items: referenceItems,\n    questions: referenceQuestions,\n    sessions: learnosityReportsResponseAnalysisData && reportData.sessions,\n  };\n}\n\nexport function getStudentResponseForItem(\n  responses,\n  reference,\n  learnosityQuestion,\n) {\n  // I think we can just get correct response here with learnosityQuestion.getResponse()...\n  if (!learnosityQuestion) {\n    return null;\n  }\n\n  // transform A,B back to i1...i2\n  // some of the questions values starts from i0, some from i1, 1, 0\n  // use real options from learnosity question to map answers (A, B, C) back to values\n\n  const processedOptions = isFunction(learnosityQuestion.getProcessedOptions)\n    ? learnosityQuestion.getProcessedOptions()\n    : [];\n\n  // if this not mcq and haapens to have no responses\n  if (isEmpty(processedOptions) || isEmpty(responses)) {\n    return null;\n  }\n\n  return transform(\n    responses,\n    (result, value, key) => {\n      // key is studentId, value responses\n      if (!value) return result;\n\n      const responsesPerItem = value && value[reference];\n      if (Array.isArray(responsesPerItem)) {\n        result[key] = responsesPerItem.map((response) => {\n          const index = ALPHABET.indexOf(response);\n          return processedOptions[index] && processedOptions[index].value;\n        });\n      }\n\n      return result;\n    },\n    {},\n  );\n}\n\nexport const PROVIDER_MODES = {\n  edit: 'edit',\n  preview: 'preview',\n};\n\n/**\n * This is a hacky solution to switch between edit|preview mode since the\n * changeItemMode does not work at this level (Questions API)\n * https://help.learnosity.com/hc/en-us/articles/16782372566941-changeItemMode-Methods-Author-API\n *\n * When modifying anything at this code, you have to test:\n * Regress that FY-36553 bug is fixed\n * Test creating new FRQ and MCQ item with and without shared passage\n * Test editing existing FRQ and MCQ item with and without a shared passage\n * Test editing a FRQ and MCQ question and switch to preview/edit\n * Test editing shared passage and switch to preview/edit\n */\nexport async function switchMode(containerId, mode = PROVIDER_MODES.preview) {\n  const isPreviewMode = mode === PROVIDER_MODES.preview;\n  const selectorSuffix = isPreviewMode\n    ? '.lrn-qe-toggle-right'\n    : '.lrn-qe-toggle-left';\n\n  const sharedPassageButton = document.querySelector(\n    `.sharedPassage ${selectorSuffix}`,\n  );\n  const editorQuestionButton = document.querySelector(\n    `.editorItem ${selectorSuffix}`,\n  );\n\n  if (isPreviewMode) {\n    sharedPassageButton?.click();\n    sharedPassageButton &&\n      (await new Promise((resolve) => setTimeout(resolve, 1000)));\n    editorQuestionButton?.click();\n  } else {\n    sharedPassageButton?.click();\n    editorQuestionButton?.click();\n  }\n}\n\nexport const goToQuestionWidget = (app) => {\n  const item = app.getItem();\n  if (get(item, 'questions.length')) {\n    const itemQuestion = item.questions[0];\n    app.navigate(\n      `items/${item.item.reference}/widgets/${itemQuestion.reference}`,\n    );\n  } else {\n    notify('Error loading question, please try again', { timeout: 5 });\n  }\n};\n\nexport const getPassageFromItem = (item) => {\n  const passage = get(item, 'features[0]');\n  if (passage && passage.type === 'sharedpassage') {\n    return passage;\n  }\n};\n\nexport const goToPassageWidget = (app) => {\n  const item = app.getItem();\n  const passage = getPassageFromItem(item);\n\n  if (passage) {\n    app.navigate(`items/${item.item.reference}/widgets/${passage.reference}`);\n  }\n};\n\nexport const setWidgetFields = (editorApp, fields = {}) => {\n  Object.keys(fields).forEach((key) => {\n    const fieldValue = fields[key];\n    const attr = editorApp.attribute(key);\n    attr && attr.setValue(fieldValue);\n  });\n};\n\nconst findSubject = (subjects, masterSubjectId, subjectType) => {\n  if (!subjects || !masterSubjectId) {\n    return undefined;\n  }\n\n  return subjects.find(\n    (subject) =>\n      subject.type === subjectType &&\n      parseInt(subject.masterSubjectId, 10) === parseInt(masterSubjectId, 10),\n  );\n};\n\nexport const findQBSubject = (currentTeacherSubjects, masterSubjectId) =>\n  findSubject(\n    currentTeacherSubjects,\n    masterSubjectId,\n    SUBJECT_TYPE_VIEW.QUESTION_BANK,\n  );\n\n// This is the PREAP version of findQBSubject\nexport const findPREAPSubject = (currentTeacherSubjects, masterSubjectId) =>\n  findSubject(currentTeacherSubjects, masterSubjectId, SUBJECT_TYPE_VIEW.PREAP);\n\nexport const acceptedAttestation = (me, qbSubject) => {\n  const attestationPreference = findAttestationPreference(me, {\n    initId: qbSubject,\n  });\n  return (\n    (attestationPreference && attestationPreference.value === 'true') || false\n  );\n};\n\nexport const findAttestationPreference = (me, qbSubject) =>\n  me &&\n  me.preferences &&\n  me.preferences.find(\n    ({ preference, contextId }) =>\n      preference === ATTESTATION_PREFERENCE &&\n      parseInt(contextId, 10) === parseInt(qbSubject.initId, 10),\n  );\n\nexport const shouldShowAttestationDialog = (\n  showAttestationFeatureFlag,\n  currentTeacherSubjects,\n  me,\n  isAlreadyShown,\n  masterSubjectId,\n) => {\n  // We don't display this dialog for PREAP subjects\n  if (isPreApSubject(parseInt(masterSubjectId, 10))) return false;\n\n  const qbSubject = findQBSubject(currentTeacherSubjects, masterSubjectId);\n  if (!qbSubject) return false;\n\n  const { containsSecureQuestions } = qbSubject;\n  const attestationPreferenceForSubject = findAttestationPreference(\n    me,\n    qbSubject,\n  );\n  const attestationState =\n    attestationPreferenceForSubject &&\n    [true, 'true'].includes(attestationPreferenceForSubject.value);\n\n  return (\n    showAttestationFeatureFlag &&\n    containsSecureQuestions &&\n    !attestationState &&\n    !isAlreadyShown\n  );\n};\n\nexport const hasContent = (html) =>\n  new DOMParser().parseFromString(html, 'text/html').documentElement\n    .textContent;\n\nexport const hasLearnosityQuestionAllAnswersCorrect = (container) =>\n  container.querySelectorAll('.lrn_not_attempted').length === 0 &&\n  container.querySelectorAll('.lrn_incorrect').length === 0;\n\nexport const customCbRubricsConfSetter = ({\n  data = {},\n  mainLabel = 'Teacher Score',\n  assignment,\n  progressPerStudent = {},\n}) => {\n  const { studentScored, teacherAndStudentScored, scored } =\n    progressPerStudent || {};\n  // pass data to custom_cb_rubric with global object\n  window.customCbRubricsConf = {\n    ...data,\n    mainLabel,\n    showStudentResults: Boolean(studentScored || teacherAndStudentScored),\n    showTeacherResults: Boolean(scored || teacherAndStudentScored),\n    showCriteriaLabel: Boolean(\n      get(assignment, 'studentScoring') || get(assignment, 'hasStudentScores'),\n    ),\n  };\n};\n\nexport const getMathematicsSubjectsConfig = (subjectId) =>\n  MathematicsSubjects.includes(subjectId)\n    ? {\n        questions_api_init_options: {\n          labelBundle: {\n            characterMathMapTitle: '',\n            characterMapMathIcon: MATHEMATICS_CHARACTER_MAP_ICON,\n            characterMapMathCharacters: MATHEMATICS_CHARACTER_MAPS,\n          },\n        },\n      }\n    : null;\n\nconst getTeacherRubricReferenceAlias = (itemId) => {\n  if (itemId.includes('_T_rubric_category_')) {\n    return null;\n  }\n\n  const legacyRubricReference = itemId.match(/^(.*)_rubric_category_(\\d+)$/);\n  if (!legacyRubricReference) {\n    return null;\n  }\n\n  const [, itemReference, categoryIndex] = legacyRubricReference;\n  return `${itemReference}_T_rubric_category_${Number(categoryIndex) + 1}`;\n};\n\nconst buildCustomCbRubricQuestion = (itemId, value) => ({\n  item_id: itemId,\n  ...set({}, 'permutations[0].response.value', value),\n});\n\nexport const deserialiseScoringRubricResponses = (\n  scoringRubricResponses,\n  studentId,\n) => {\n  if (!scoringRubricResponses || isEmpty(scoringRubricResponses)) {\n    return;\n  }\n\n  const responsesByQuestion = scoringRubricResponses[studentId];\n\n  // serialize data back to the format expected by custom_cb_rubric.js\n  return set(\n    {},\n    '0.data.questions',\n    transform(\n      responsesByQuestion,\n      (result, value, key) => {\n        result.push(buildCustomCbRubricQuestion(key, value));\n\n        const teacherRubricReferenceAlias = getTeacherRubricReferenceAlias(key);\n        if (\n          teacherRubricReferenceAlias &&\n          !Object.prototype.hasOwnProperty.call(\n            responsesByQuestion,\n            teacherRubricReferenceAlias,\n          )\n        ) {\n          result.push(\n            buildCustomCbRubricQuestion(teacherRubricReferenceAlias, value),\n          );\n        }\n      },\n      [],\n    ),\n  );\n};\n","import React, { Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { flowRight as compose, get } from 'lodash';\nimport { LoadingSpinner } from 'legacy/packages/ft-cb';\nimport { downloadGeneratedAnswerSheet as downloadGeneratedAnswerSheetAction } from 'legacy/src/actions/paperscorer';\nimport './index.scss';\n\nconst DownloadNowLink = ({\n  downloadGeneratedAnswerSheet,\n  loadingGeneratedAnswersheet,\n  payload,\n}) => (\n  <Fragment>\n    <a\n      className=\"text-blue-500 font-bold\"\n      onClick={() => downloadGeneratedAnswerSheet(payload)}\n    >\n      Download now\n    </a>\n    {loadingGeneratedAnswersheet && (\n      <div className=\"DownloadNowLink__loading-spinner-container\">\n        <LoadingSpinner containerClassName=\"DownloadNowLink__loading-spinner\" />\n      </div>\n    )}\n  </Fragment>\n);\n\nconst mapStateToProps = (state) => ({\n  assignmentId: get(state, 'teacherAssignment.assignment.id'),\n  loadingGeneratedAnswersheet: get(\n    state,\n    'paperscorer.loadingGeneratedAnswersheet',\n  ),\n});\n\nconst mapDispatchToProps = {\n  downloadGeneratedAnswerSheet: downloadGeneratedAnswerSheetAction,\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n  DownloadNowLink,\n);\n","import React from 'react';\nimport axios from 'axios';\nimport { all, put, takeEvery, takeLatest } from 'redux-saga/effects';\nimport { get, isEmpty, sortBy } from 'lodash';\nimport {\n  downloadAllAnswerSheets,\n  downloadIndividualAnswerSheet,\n  generateAnswerSheets,\n  generateAnswerSheetsPreview,\n  downloadGeneratedAnswerSheet as downloadGeneratedAnswerSheetAction,\n  initiateDownloadForUser as initiateDownloadForUserAction,\n} from 'legacy/src/actions/paperscorer';\nimport { toast as toastify } from 'chameleon/ui-stack/ui/toast';\nimport { toast } from 'legacy/packages/ft-cb';\nimport DownloadNowLink from 'legacy/src/components/paperscorer/DownloadNowLink';\nimport log from 'chameleon/ui-stack/utilities/log';\n\nexport function* generatePaperscorerAnswerSheet({\n  payload: {\n    assignmentPaperscorerAnswerSheet,\n    frqPrintSettings,\n    assignmentName,\n    sectionName,\n    subjectName,\n    assignmentProgressLink,\n    ...formValues\n  },\n}) {\n  try {\n    const assignmentJsonData = get(\n      JSON.parse(assignmentPaperscorerAnswerSheet),\n      'json_data',\n      {},\n    );\n    const students = get(formValues, 'students', []);\n    const questions = !isEmpty(frqPrintSettings)\n      ? [\n          ...assignmentJsonData.questions.filter((config) => config.type === 2),\n          ...Object.values(frqPrintSettings).reduce(\n            (acc, curr) => [...acc, ...Object.values(curr)],\n            [],\n          ),\n        ]\n      : assignmentJsonData.questions;\n\n    const jsonData = {\n      assignment_json_data: {\n        ...assignmentJsonData,\n        students,\n        questions: sortBy(questions, (config) => parseInt(config.text, 10)),\n      },\n      is_preview: false,\n      config_json: '{}',\n    };\n    const body = JSON.stringify(jsonData);\n\n    const response = yield axios({\n      method: 'post',\n      url: `${FYM_BACKEND_PAPERSCORER_API_URL}/generate_paperscorer_answer_sheet`,\n      headers: {\n        'Content-Type': 'application/json',\n      },\n      data: body,\n    });\n    const {\n      status,\n      message,\n      answer_sheet_url,\n      download_url: downloadUrl,\n    } = get(response, 'data', {});\n    yield put(\n      generateAnswerSheets.success({ answerSheetUrl: answer_sheet_url }),\n    );\n    const payload = {\n      status,\n      assignmentName,\n      sectionName,\n      subjectName,\n      formUrl: downloadUrl,\n    };\n    if (status === 1) {\n      toastify(\n        <span>\n          The answer sheets for {assignmentName} are ready. <br />\n          <DownloadNowLink payload={payload} /> or\n          <a className=\"text-blue-500 font-bold\" href={assignmentProgressLink}>\n            {' '}\n            reload your assignment page.\n          </a>\n        </span>,\n        { timeout: 20 },\n      );\n    } else {\n      toast.error(\n        `Failed to generate the answer sheet, ${message}, please contact support.`,\n      );\n    }\n  } catch (error) {\n    toast.error(\n      `Failed to generate the answer sheet, request failed, please contact support.`,\n    );\n    yield put(generateAnswerSheets.failure(error));\n    log('error', error);\n  }\n}\n\nexport function* generatePaperscorerAnswerSheetPreview({\n  payload: { assignmentPaperscorerAnswerSheet, frqPrintSettings },\n}) {\n  try {\n    const assignmentJsonData = get(\n      JSON.parse(assignmentPaperscorerAnswerSheet),\n      'json_data',\n      {},\n    );\n    const questions = !isEmpty(frqPrintSettings)\n      ? [\n          ...assignmentJsonData.questions.filter((config) => config.type === 2),\n          ...Object.values(frqPrintSettings).reduce(\n            (acc, curr) => [...acc, ...Object.values(curr)],\n            [],\n          ),\n        ]\n      : assignmentJsonData.questions;\n\n    const jsonData = {\n      assignment_json_data: {\n        ...assignmentJsonData,\n        students: [\n          {\n            name: 'Sample Student',\n            id: '123456',\n            identifier: 'AP Classroom ID 123456',\n          },\n        ],\n        questions: sortBy(questions, (config) => parseInt(config.text, 10)),\n      },\n      is_preview: true,\n      config_json: '{}',\n    };\n    const body = JSON.stringify(jsonData);\n\n    const response = yield axios({\n      method: 'post',\n      url: `${FYM_BACKEND_PAPERSCORER_API_URL}/generate_paperscorer_answer_sheet`,\n      headers: {\n        'Content-Type': 'application/json',\n      },\n      data: body,\n    });\n    const { status, message, answer_sheet_url } = get(response, 'data', {});\n    if (status === 1) {\n      yield put(generateAnswerSheetsPreview.success(answer_sheet_url));\n    } else {\n      toast.error(\n        `Failed to preview answer sheet, ${message}, please contact support.`,\n      );\n    }\n  } catch (error) {\n    toast.error(\n      `Failed to preview answer sheet, request failed, please contact support.`,\n    );\n    yield put(generateAnswerSheetsPreview.failure(error));\n  }\n}\n\nexport function* downloadAllPaperscorerAnswerSheets({ payload }) {\n  const assignmentId = get(payload, 'assignmentId', 0);\n  const assignmentName = get(payload, 'assignmentName', '');\n  const subjectName = get(payload, 'subjectName', '');\n  const sectionName = get(payload, 'sectionName', '');\n  try {\n    const response = yield axios({\n      method: 'get',\n      url: `${FYM_BACKEND_PAPERSCORER_API_URL}/get_paperscorer_forms_by_assignment_id`,\n      params: { assignment_id: assignmentId },\n    });\n    const paperscorerForms = get(response, 'data', {});\n    if (paperscorerForms.length < 1) {\n      yield put(downloadAllAnswerSheets.failure());\n      toast.error('No answer sheets were found');\n    } else {\n      // eslint-disable-next-line no-unused-vars\n      for (let formUrl of paperscorerForms) {\n        yield put(\n          downloadAllAnswerSheets.success({\n            formUrl,\n            assignmentName,\n            subjectName,\n            sectionName,\n          }),\n        );\n      }\n    }\n  } catch (error) {\n    toast.error(`Failed to download answer sheets, please contact support.`);\n    yield put(downloadAllAnswerSheets.failure(error));\n    log('error', error);\n  }\n}\n\nexport function* downloadIndividualPaperscorerAnswerSheet({ payload }) {\n  const userId = get(payload, 'userId', 0);\n  const assignmentId = get(payload, 'assignmentId', 0);\n  const assignmentName = get(payload, 'assignmentName', '');\n  const subjectName = get(payload, 'subjectName', '');\n  const sectionName = get(payload, 'sectionName', '');\n  try {\n    const response = yield axios({\n      method: 'get',\n      url: `${FYM_BACKEND_PAPERSCORER_API_URL}/get_individual_paperscorer_form_by_assignment_id`,\n      params: { assignment_id: assignmentId, user_id: userId },\n    });\n    const paperscorerForm = get(response, 'data', {});\n    yield put(\n      downloadIndividualAnswerSheet.success({\n        formUrl: paperscorerForm,\n        assignmentName,\n        subjectName,\n        sectionName,\n      }),\n    );\n    if (paperscorerForm.length < 1) {\n      yield put(downloadIndividualAnswerSheet.failure());\n      toast.error('No answer sheet was found');\n    }\n  } catch (error) {\n    toast.error(`Failed to download answer sheets, please contact support.`);\n    yield put(downloadIndividualAnswerSheet.failure(error));\n    log('error', error);\n  }\n}\n\n// split up download from service-ps-api from initiating download on client side so\n// in case we need to debug, the point of failure would be more obvious\nexport function* initiateDownloadForUser({ payload }) {\n  const formUrl = get(payload, 'formUrl', '');\n  const subjectName = get(payload, 'subjectName', '');\n  const sectionName = get(payload, 'sectionName', '');\n  const assignmentName = get(payload, 'assignmentName', '');\n  try {\n    const response = yield fetch(formUrl);\n    if (response.status === 200) {\n      const blob = new Blob([yield response.blob()], {\n        type: 'application/pdf',\n      });\n      const a = document.createElement('a');\n      a.href = window.URL.createObjectURL(blob);\n      a.download = `Answer Sheets for ${subjectName}_${assignmentName}_${sectionName}.pdf`;\n      document.body.appendChild(a);\n      a.click();\n      a.remove();\n      yield put(initiateDownloadForUserAction.success());\n    } else {\n      yield put(initiateDownloadForUserAction.failure());\n    }\n  } catch (error) {\n    toast.error(\n      'Failed to initiate download for answer sheet, please contact support.',\n    );\n    yield put(initiateDownloadForUserAction.failure(error));\n    log('error', error);\n  }\n}\n\nexport default function* paperscorerSaga() {\n  yield all([\n    takeLatest(generateAnswerSheets, generatePaperscorerAnswerSheet),\n    takeLatest(\n      generateAnswerSheetsPreview,\n      generatePaperscorerAnswerSheetPreview,\n    ),\n    takeLatest(downloadAllAnswerSheets, downloadAllPaperscorerAnswerSheets),\n    takeLatest(\n      downloadIndividualAnswerSheet,\n      downloadIndividualPaperscorerAnswerSheet,\n    ),\n    takeEvery(downloadGeneratedAnswerSheetAction, initiateDownloadForUser),\n    takeEvery(downloadAllAnswerSheets.SUCCESS, initiateDownloadForUser),\n    takeEvery(downloadIndividualAnswerSheet.SUCCESS, initiateDownloadForUser),\n    takeEvery(\n      downloadGeneratedAnswerSheetAction.SUCCESS,\n      initiateDownloadForUser,\n    ),\n  ]);\n}\n","import { graphql } from 'react-apollo';\nimport snakeCase from 'lodash/snakeCase';\nimport get from 'lodash/get';\nimport {\n  me as meQuery,\n  getQuizQuestionInfo,\n  getAssessmentSecurityInfo,\n  savePreference,\n} from 'legacy/src/queries';\nimport {\n  FILE_UPLOAD_WIDGET_JSON,\n  AUDIO_WIDGET_JSON,\n} from 'legacy/src/components/learnosity/utils/constants';\nimport log from 'chameleon/ui-stack/utilities/log';\n\nimport withCourseOutline from 'chameleon/packages/units/composable/withCourseOutline';\n\nexport { withCourseOutline };\n\nexport const hasNonSecureQn = 'hasNonSecureQn';\n\nexport const withQuizQuestionInfo = graphql(getQuizQuestionInfo, {\n  alias: 'withQuizQuestionInfo',\n  options: ({ itemId, assignment = {} }) => ({\n    notifyOnNetworkStatusChange: true,\n    fetchPolicy: 'network-only',\n    variables: {\n      // we check both the itemId and assignment object to cater for both the Assign and Manage Modals\n      assessmentId: Number(itemId || get(assignment, 'item.id', '')).toString(),\n      assignmentId:\n        assignment && assignment.id ? Number(assignment.id).toString() : '',\n      questionTypes: `${FILE_UPLOAD_WIDGET_JSON.type},${AUDIO_WIDGET_JSON.type}`,\n    },\n  }),\n  skip: ({\n    assessmentDataCache,\n    itemId,\n    assignment = {},\n    quizHasNonSecureQns,\n    isFinalExam,\n    isAdminOrCoordinator,\n  }) => {\n    /*\n     * rerun the query if we don't have both a value in the cache and directly from the BE\n     * we check both the itemId and assignment object to cater for both the Assign and Manage Modals\n     */\n    const id = itemId || assignment.id;\n    const cache = (assessmentDataCache && assessmentDataCache[id]) || {};\n    return (\n      isFinalExam ||\n      [typeof cache[hasNonSecureQn], typeof quizHasNonSecureQns].includes(\n        'boolean',\n      ) ||\n      isAdminOrCoordinator\n    );\n  },\n  props: ({ data }) => {\n    const { loading, quizHasNonSecureQns, error } = data;\n\n    if (error) {\n      return log('error', error);\n    }\n\n    if (loading) {\n      return {\n        loading,\n      };\n    }\n\n    return {\n      loading,\n      quizHasNonSecureQns,\n    };\n  },\n});\n\nexport const withSavePreference = graphql(savePreference, {\n  alias: 'withSavePreference',\n  name: 'savePreference',\n});\nexport const withMeQuery = graphql(meQuery, {\n  alias: 'meQuery',\n  name: 'meQuery',\n});\n\nexport const withAssessmentSecurityInfo = graphql(getAssessmentSecurityInfo, {\n  alias: 'withAssessmentSecurityInfo',\n  options: ({ itemId, assignment }) => ({\n    notifyOnNetworkStatusChange: true,\n    fetchPolicy: 'network-only',\n    variables: {\n      assessmentId: Number(itemId || get(assignment, 'item.id', '')).toString(),\n    },\n  }),\n  skip: ({ isFinalExam, isAdminOrCoordinator }) =>\n    isFinalExam || isAdminOrCoordinator,\n  props: ({ data }) => {\n    const { loading, assessment, error } = data;\n\n    if (error) {\n      return log('error', error);\n    }\n\n    if (loading) {\n      return {\n        loading,\n        isAssessmentSecurityInfoLoading: loading,\n      };\n    }\n\n    if (assessment?.questions?.length) {\n      const { isPracticeExam, isExamModeAvailable, totalMaxTime } = assessment;\n      // has secure questions, PE context\n      const hasSecureQuestions = assessment.questions.some(\n        (question) => question.isSecure,\n      );\n\n      return {\n        isPracticeExam,\n        isExamModeAvailable,\n        totalMaxTime,\n        quizHasAnySecureQnsPE: hasSecureQuestions,\n        assessmentWithQuestionsData: assessment,\n        isAssessmentSecurityInfoLoading: loading,\n      };\n    }\n\n    return {\n      loading,\n      isAssessmentSecurityInfoLoading: loading,\n    };\n  },\n});\n\n/**\n * Convert first level of keys of a object from camelCase to snake case.\n *\n * Any sublevel object keys WILL NOT BE CONVERTED!\n */\nexport const convertKeysToSnakeCase = (obj) =>\n  Object.keys(obj).reduce((acc, k) => ({ ...acc, [snakeCase(k)]: obj[k] }), {});\n\n/**\n * Skip dangerous char to prevent XSS\n */\nexport const escapeHTML = (text) => {\n  if (!text) {\n    return '';\n  }\n\n  const str = String(text);\n\n  return str\n    .replace(/&/g, '&amp;')\n    .replace(/[\\u00A0-\\u9999<>]/g, (i) => `&#${i.charCodeAt(0)};`);\n};\n\n/**\n * Transform charCode to display html\n */\nexport const decodeHTML = (encodedText) => {\n  if (!encodedText) {\n    return '';\n  }\n\n  const str = String(encodedText);\n\n  if (str === '') {\n    return '';\n  }\n\n  const doc = new DOMParser().parseFromString(encodedText, 'text/html');\n  return doc.documentElement.textContent || doc.body.textContent || '';\n};\n","/**\n * Available/Supported Statuses for an assignment\n * */\nexport const ASSIGNMENT_STATUSES = {\n  'view-progress': {\n    icon: 'status-inprogress',\n  },\n  'take-quiz-begin': {\n    icon: 'unlocked',\n    cellClassName: 'take-quiz-begin',\n  },\n  'take-quiz-continue': {\n    label: 'In Progress',\n    cellClassName: 'take-quiz-continue',\n  },\n  'awaiting-results': {\n    label: 'Awaiting Results',\n    cellClassName: 'awaiting-results',\n  },\n  'refresh-for-results': {\n    label: 'Awaiting Results',\n    cellClassName: 'awaiting-results',\n  },\n  locked: {\n    icon: 'locked',\n  },\n  unlock: {\n    icon: 'locked',\n  },\n};\n\n/**\n * Used for determine if the status of an assignment\n * can be considered as fallow:\n * - < 80 - assignment in progress\n * - >= 80 - assignment in results\n * */\nexport const ASSIGNMENT_STATUS_CRITERIA = 80;\n\nexport const largeFontSubjects = [\n  87, // AP Chinese Language and Culture\n  88, // AP Japanese Language and Culture\n];\n\nexport const TEI_TYPES = [\n  'clozeassociation', // Drag and Drop\n  'clozetext', // Fill in the Blanks\n  'hotspot', // Hotspots\n  'tokenhighlight', // Token Highlight\n  'clozedropdown', // Dropdowns\n];\n\nexport const QUESTION_TYPES = {\n  multipleChoice: 'questions/multiple_choice',\n  freeResponse: 'questions/free_response',\n  mcq: 'questions/multiple_choice',\n  frq: 'questions/free_response',\n};\n","export const BOOKMARKED_QUESTIONS = 'bookmarked-questions';\n\nexport const UserRoles = {\n  STUDENT: 'student',\n  TEACHER: 'teacher',\n  COORDINATOR: 'coordinator',\n  ADMIN: 'admin',\n  STAFF: 'staff',\n  DEMO: 'demo',\n  PARENT_PREVIEW: 'APC_PARENT_PREVIEW',\n} as const;\n","/**\n * Toggles redux logging.\n */\nexport const REDUX_LOGGING_ENABLED = false;\n/**\n * Levity widget properties.\n */\nexport const SITE_CODE = 'apfym';\nexport const APP_ID = 366;\n/**\n * Specifies target endpoints for /browsercheck, student subject /home.\n */\nexport const STUDENT_DOMAIN_CHECK_LIST = {};\n/**\n * Specifies critical endpoints for site functionality.\n */\nexport const VITAL_DOMAINS = [\n  FYM_WIZARDS_BACKEND_URL,\n  FYM_ACCOUNTS_URL,\n  FYM_BACKEND_URL,\n  FYM_FRONTEND_URL,\n  FYM_UNITS_BACKEND_URL,\n  TEACHER_SSO_LOGIN_URL,\n  CB_LEGACY_URL,\n];\n/**\n * Teacher subject type -> view mapping.\n */\nexport const SUBJECT_TYPE_VIEW = {\n  UNIT_ASSESSMENTS: 'fym',\n  ASSESSMENTS: 'pre-ap',\n  QUESTION_BANK: 'qb',\n  PREAP: 'pre-ap',\n};\n/**\n * This is the PDF used as the LockDown Browser How-To Guide\n */\nexport const LDB_HOW_TO_GUIDE =\n  'http://media.academicmerit.com/apclassroom/InstallingtheLockDownBrowserforAP%20Classroom.pdf';\n\n/**\n * FAQ web page managed by CB\n */\nexport const LDB_FAQ_WEB_PAGE =\n  'https://apclassroom.clickhelp.co/articles/#!ap-classroom-user-guide-for-teachers-publication/qb-about-the-lockdown-browser';\n\nexport const TROUBLESHOOTING_LINK_STUDENTS =\n  'https://apclassroom.clickhelp.co/articles/#!ap-classroom-user-guide-for-students/stu-ldb-troubleshooting';\n\nexport const GENERIC_LDB_DOWNLOAD_LINK =\n  'https://apclassroom.collegeboard.org/lockdown';\n\nexport const TROUBLESHOOTING_LINK_TEACHERS =\n  'https://apclassroom.clickhelp.co/articles/#!ap-classroom-user-guide-for-teachers-publication/qb-ldb-troubleshooting';\n","export const OPERATING_SYSTEMS = {\n  IPAD: 'iPad',\n  MAC_INTEL: 'MacIntel',\n} as const;\n","export const SIGNUP_SUCCESS = 'SIGNUP_SUCCESS';\nexport const SIGNUP_ERROR = 'SIGNUP_FAILURE';\n\nexport const LOGOUT = 'LOGOUT';\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\nexport const LOGOUT_ERROR = 'LOGOUT_ERROR';\n\nexport const WIZARDS_FLAGS_INIT = 'WIZARDS_FLAGS_INIT';\nexport const WIZARDS_DISABLE = 'WIZARDS_DISABLE';\nexport const WIZARDS_EXAM_CLOSE = 'WIZARDS_EXAM_CLOSE';\nexport const WIZARDS_EXAM_CLOSE_READY = 'WIZARDS_EXAM_CLOSE_READY';\nexport const WIZARDS_INFO_FETCH = 'WIZARDS_INFO_FETCH';\nexport const WIZARDS_INFO_FULLFILLED = 'WIZARDS_INFO_FULLFILLED';\n\nexport const SET_ADMIN_SUBJECTS = 'SET_ADMIN_SUBJECTS';\nexport const SET_ADMIN_INFO = 'SET_ADMIN_INFO';\nexport const ADMIN_START_LOADING = 'ADMIN_START_LOADING';\nexport const ADMIN_END_LOADING = 'ADMIN_END_LOADING';\n\nexport const SAVE_PERFORMANCE_TIERS = 'SAVE_PERFORMANCE_TIERS';\nexport const PERFORMANCE_TIERS_START_LOADING =\n  'PERFORMANCE_TIERS_START_LOADING';\nexport const PERFORMANCE_TIERS_END_LOADING = 'PERFORMANCE_TIERS_END_LOADING';\n\nexport const QUESTION_PREVIEW_TOGGLE = 'QUESTION_PREVIEW_TOGGLE';\nexport const QUESTION_ITEM_ID = 'QUESTION_ITEM_ID';\n\nexport const LOCATION_CHANGE = 'LOCATION_CHANGE';\n\n// subject types\nexport const SUBJECT_MAPPING = 'SUBJECT_MAPPING';\n\n// student/ section\nexport const STUDENTS_BY_SECTION = 'STUDENTS_BY_SECTION';\n\n//AP and PRE-AP keys\nexport const PreAP = 'PRE-AP';\nexport const AP = 'AP';\n\nexport const USER_SUBJECTS = 'USER_SUBJECTS';\nexport const USER_CLASSES = 'USER_CLASSES';\nexport const UNIT_FILTERS_DATA = 'UNIT_FILTERS_DATA';\nexport const UNIT_COURSE_OUTLINE_CONFIG = 'UNIT_COURSE_OUTLINE_CONFIG';\n\n// Feature Flag reducer key\nexport const SET_FEATURE_FLAG = 'SET_FEATURE_FLAG';\n\n// Question Bank\nexport const QuestionBank = 'QB';\n\n//Assignment\nexport const Assignment = 'Assignment';\n\n// Question by shared stimulus data\nexport const SET_QUESTION_BY_STIMULUS = 'SET_QUESTION_BY_STIMULUS';\n\nexport const UPDATE_ASSESSMENT_CACHE = 'UPDATE_ASSESSMENT_CACHE';\n\n//Preferences\nexport const ATTESTATION_PREFERENCE = 'ACCEPTED_PRACTICE_EXAM_TOC';\nexport const HIDE_DIGITAL_ASSESSMENT_INFO_MODAL =\n  'HIDE_DIGITAL_ASSESSMENT_INFO_MODAL';\nexport const ATTESTATION_SUBJECT = 'SUBJECT';\nexport const SAVE_PREFERENCE_SUCCESS = 'SAVE_PREFERENCE_SUCCESS';\nexport const EDUCATIONAL_PERIOD_PREFERENCE = 'EDUCATIONAL_PERIOD_PREFERENCE';\nexport const PREFERENCE_CONTEXT_SUBJECT = 'SUBJECT';\nexport const UNIT_FILTER_PREFERENCE = 'UNIT_FILTER_PREFERENCE';\nexport const JSTOR_TERMS_AND_CONDITIONS = 'JSTOR_TERMS_AND_CONDITIONS';\nexport const STANDARDS_REPORTS_FILTER_STATE = 'STANDARDS_REPORTS_FILTER_STATE';\n\n//Education Perdiod\nexport const SET_DEFAULT_EDUCATION_PERIOD = 'SET_DEFAULT_EDUCATION_PERIOD';\nexport const SET_USER_EDUCATION_PERIODS = 'SET_USER_EDUCATION_PERIODS';\n\n//Skill Summary\nexport const SET_SKILL_SUMMARY_UPDATED_AT = 'SET_SKILL_SUMMARY_UPDATED_AT';\n\n// Shared Resources\nexport const FETCH_SHARED_RESOURCE_START = 'FETCH_SHARED_RESOURCE_START';\nexport const FETCH_SHARED_RESOURCE_SUCCESS = 'FETCH_SHARED_RESOURCE_SUCCESS';\nexport const FETCH_SHARED_RESOURCE_FAILED = 'FETCH_SHARED_RESOURCE_FAILED';\nexport const UPDATE_SHARED_RESOURCE_STATUS = 'UPDATE_SHARED_RESOURCE_STATUS';\n\n// course outline\nexport const SET_COURSE_OUTLINE = 'SET_COURSE_OUTLINE';\nexport const GET_COURSE_OUTLINE = 'GET_COURSE_OUTLINE';\nexport const RESET_COURSE_OUTLINE = 'RESET_COURSE_OUTLINE';\nexport const SET_APD_CAROUSEL_DATA = 'SET_APD_CAROUSEL_DATA';\nexport const UPDATE_APD_CAROUSEL_DATA = 'UPDATE_APD_CAROUSEL_DATA';\n\n// Assessment Types\n\nexport const LEARNING_CHECKPOINT = 'is_learning_checkpoint';\nexport const PERFORMANCE_TASK = 'is_performance_task';\n\n// Resource Filter\nexport const FETCH_RESOURCE_FILTERS_START = 'FETCH_RESOURCE_FILTERS_START';\nexport const FETCH_RESOURCE_FILTERS_SUCCESS = 'FETCH_RESOURCE_FILTERS_SUCCESS';\nexport const FETCH_RESOURCE_FILTERS_FAILED = 'FETCH_RESOURCE_FILTERS_FAILED';\n\n// Search Resources\nexport const SEARCH_RESOURCES_START = 'SEARCH_RESOURCES_START';\nexport const SEARCH_RESOURCES_SUCCESS = 'SEARCH_RESOURCES_SUCCESS';\nexport const SEARCH_RESOURCES_FAILED = 'SEARCH_RESOURCES_FAILED';\nexport const SEARCH_RESOURCES_RESET = 'SEARCH_RESOURCES_RESET';\n\n// Teacher Assignments\nexport const FETCH_ASSIGNMENT_DATA_SUCCESS = 'FETCH_ASSIGNMENT_DATA_SUCCESS';\nexport const FETCH_ASSIGNMENT_DATA_FAILED = 'FETCH_ASSIGNMENT_DATA_FAILED';\nexport const FETCH_ASSIGNMENT_DATA_START = 'FETCH_ASSIGNMENT_DATA_START';\n\n// Assignment Students Status\nexport const FETCH_ASSIGNMENT_STUDENTS_STATUS_START =\n  'FETCH_ASSIGNMENT_STUDENTS_STATUS_START';\nexport const FETCH_ASSIGNMENT_STUDENTS_STATUS_SUCCESS =\n  'FETCH_ASSIGNMENT_STUDENTS_STATUS_SUCCESS';\nexport const FETCH_ASSIGNMENT_STUDENTS_STATUS_FAILED =\n  'FETCH_ASSIGNMENT_STUDENTS_STATUS_FAILED';\nexport const REMOVE_ASSIGNMENT_STUDENTS = 'REMOVE_ASSIGNMENT_STUDENTS';\n\n// Bookmarks\nexport const SET_BOOKMARKS = 'SET_BOOKMARKS';\nexport const REMOVE_BOOKMARK = 'REMOVE_BOOKMARK';\nexport const ADD_BOOKMARK = 'ADD_BOOKMARK';\n\nexport const SET_SECURE_ASSIGNMENT_IDS = 'SET_SECURE_ASSIGNMENT_IDS';\n\n// Student Navigation Direction\nexport const PREVIOUS_STUDENT = 'previous';\nexport const NEXT_STUDENT = 'next';\n\nexport const SET_TEACHER_VIEW_SCORING_RUBRIC =\n  'SET_TEACHER_VIEW_SCORING_RUBRIC';\n","import { gql } from 'react-apollo';\n\nexport * from 'legacy/packages/wizards/src/queries';\n\n// Returns stuff about Me\nexport const me = gql`\n  query me {\n    me {\n      id: initId\n      email\n      initId\n      username\n      firstName\n      lastName\n      userRole\n      isStudent\n      ssoLogin\n      aiCode\n      pilot\n      hpd\n      generateData\n      registeredDate\n      importId\n      preferences {\n        preference\n        value\n        context\n        contextId\n      }\n      sections {\n        id\n        masterSubjectId\n        name\n        educationPeriod\n        parentId\n        importId\n        teacherId\n        teacherCbPersonId\n        sectionType\n      }\n      schoolSet {\n        initId\n        groupImportId\n        name\n        parentId\n        timezone\n      }\n      districts {\n        groupImportId\n      }\n      programs\n      lastLogin\n    }\n    teacherSubjects {\n      id\n      name\n      subjectProgram\n      classes {\n        id\n        name\n        parentId\n        educationPeriod\n        students {\n          id: initId\n          firstName\n          lastName\n          apuid\n          email\n        }\n      }\n      educationPeriods {\n        id\n        displayValue\n        contentAvailableAt\n        endDate\n      }\n      subjects {\n        initId\n        name\n      }\n    }\n    studentSubjects {\n      id\n      name\n      subjectProgram\n      initId\n    }\n    adminSubjects {\n      id\n      initId\n      importId\n      masterSubjectId\n      name\n      parentId\n      subjectProgram\n      type\n      url\n      containsSecureQuestions\n    }\n    educationPeriods {\n      id\n      displayValue\n      contentAvailableAt\n      endDate\n    }\n    currentEducationPeriod {\n      id\n      displayValue\n      endDate\n    }\n    nextEducationPeriod {\n      id\n      displayValue\n    }\n  }\n`;\n\n// Returns user's available education periods\nexport const getUserEducationPeriods = gql`\n  query getUserEducationPeriods($subjectId: Int!) {\n    userEducationPeriods(subjectId: $subjectId) {\n      id\n      displayValue\n    }\n  }\n`;\n\nexport const getAdminInfo = gql`\n  query getAdminInfo($id: String!, $educationPeriod: String) {\n    adminSubject(id: $id) {\n      classes {\n        id\n        name\n      }\n      subjectAllClasses(educationPeriod: $educationPeriod) {\n        id\n        name\n        students {\n          id: initId\n          firstName\n          lastName\n        }\n      }\n    }\n  }\n`;\n\nexport const getTeacherInfo = gql`\n  query getTeacherInfo($id: String!, $educationPeriod: String!) {\n    teacherSubject(id: $id, educationPeriod: $educationPeriod) {\n      subjects(educationPeriod: $educationPeriod) {\n        id\n        initId\n        importId\n        name\n        parentId\n        type\n        masterSubjectId\n        containsSecureQuestions\n      }\n      classes {\n        id\n        name\n        importId\n        subjectProgram\n        parentId\n        educationPeriod\n        timezone\n        resourcesAssigned {\n          assignedAt\n          resource\n          type\n          subjectId\n        }\n      }\n      contentExpired\n    }\n    teacherSubjects {\n      id\n      name\n      subjectProgram\n      educationPeriods {\n        id\n        displayValue\n        contentAvailableAt\n        endDate\n      }\n      labels {\n        labelId\n        name\n        order\n        userId\n        parentId\n        studentVisible\n      }\n    }\n  }\n`;\n\nexport const getStudentInfo = gql`\n  query getStudentInfo($id: String!) {\n    studentSubject(id: $id) {\n      labels {\n        labelId\n        name\n        order\n        userId\n        parentId\n      }\n    }\n  }\n`;\n\nexport const getAdminPlCourses = gql`\n  query getAdminPlCourses {\n    adminPlCourses {\n      id\n      name\n      importId\n      initId\n      type\n    }\n  }\n`;\n\nexport const getAssessmentGroupByAssignmentInfo = gql`\n  query getAssessmentGroupByAssignmentInfo($assignmentId: Int!) {\n    assessmentGroupByAssignmentInfo(assignmentId: $assignmentId) {\n      id\n      name\n      subject\n      type\n      semester\n      members {\n        partName\n        partType\n        sortOrder\n        assessmentId\n        unitMask\n      }\n      window {\n        registrationStartDate\n        registrationEndDate\n        winterWindowStartDate\n        winterWindowEndDate\n        springWindowStartDate\n        springWindowEndDate\n      }\n    }\n  }\n`;\n\nexport const getAssignmentRestrictions = gql`\n  query getAssignmentRestrictions($assignmentId: Int!) {\n    assignmentRestrictionStatus(assignmentId: $assignmentId) {\n      isRestricted\n    }\n  }\n`;\n\nexport const getPerformanceTiers = gql`\n  query getPerformanceTiers($subjectId: Int!) {\n    performanceTiers(subjectId: $subjectId) {\n      type\n      label\n      bottomLimit\n      topLimit\n      color\n    }\n  }\n`;\n\nexport const saveFeedback = gql`\n  mutation saveFeedback(\n    $assignmentId: Int!\n    $studentId: Int!\n    $content: JSONString\n  ) {\n    studentFeedback(\n      assignmentId: $assignmentId\n      studentId: $studentId\n      content: $content\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const savePreference = gql`\n  mutation savePreference(\n    $userId: String!\n    $preference: PreferenceName!\n    $value: JSONString!\n    $context: Context\n    $contextId: Int\n  ) {\n    savePreference(\n      userId: $userId\n      preference: $preference\n      value: $value\n      context: $context\n      contextId: $contextId\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const saveSessions = gql`\n  mutation saveSessions(\n    $assignmentId: String!\n    $template: String!\n    $scoringSessionTemplate: String\n    $sessions: [Session]!\n  ) {\n    saveSessions(\n      assignmentId: $assignmentId\n      template: $template\n      scoringSessionTemplate: $scoringSessionTemplate\n      sessions: $sessions\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const assessmentPreviewSignedRequest = gql`\n  query assessmentPreview($assessmentId: String!, $config: String) {\n    assessmentPreview(assessmentId: $assessmentId, config: $config) {\n      learnositySignedRequest\n    }\n  }\n`;\n\nexport const assessmentPreviewData = gql`\n  query assessmentPreview(\n    $assessmentId: String!\n    $config: String\n    $showCorrectAnswers: Boolean\n    $educationPeriod: String\n    $subjectId: Int\n    $groupUntimedQuestions: Boolean\n  ) {\n    assessmentPreview(\n      assessmentId: $assessmentId\n      config: $config\n      showCorrectAnswers: $showCorrectAnswers\n      educationPeriod: $educationPeriod\n      masterSubjectId: $subjectId\n      groupUntimedQuestions: $groupUntimedQuestions\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n      sppVideos {\n        questionPartReference\n        displayName\n        resourceId\n        videoId\n        unitId\n        providerVideoId\n      }\n    }\n    assessment(assessmentId: $assessmentId, educationPeriod: $educationPeriod) {\n      id: itemId\n      title\n      learnosityItemReference\n      questions(\n        educationPeriod: $educationPeriod\n        groupUntimedQuestions: $groupUntimedQuestions\n      ) {\n        ... on MultipleChoiceQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          used_detail: usedDetail(\n            subjectId: $subjectId\n            educationPeriod: $educationPeriod\n          )\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n          section {\n            timer\n          }\n        }\n        ... on FreeResponseQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          used_detail: usedDetail(\n            subjectId: $subjectId\n            educationPeriod: $educationPeriod\n          )\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored: isTeacherAuthored\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n          section {\n            timer\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const assignmentPreviewDataOnly = gql`\n  query assignmentPreview(\n    $assignmentId: String!\n    $config: String\n    $inline: Boolean\n    $showCorrectAnswers: Boolean\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      studentResponses\n    }\n    assignmentPreview(\n      assignmentId: $assignmentId\n      config: $config\n      inline: $inline\n      showCorrectAnswers: $showCorrectAnswers\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      learnositySignedRequest\n      scoringRubric {\n        learnositySignedRequest\n        rubricCategoryReferencesByQuestion\n      }\n    }\n  }\n`;\n\nexport const assignmentReviewScoringRubric = gql`\n  query assignmentReview(\n    $assignmentId: String!\n    $studentId: String!\n    $config: String\n    $inline: Boolean\n    $showCorrectAnswers: Boolean\n    $subjectId: Int\n    $htmlId: String\n    $assignmentIdAsInt: Int\n    $scorerType: String\n  ) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      studentScoring\n      responseAnalysis(studentId: $studentId)\n      scoringRubricResponses(studentId: $studentId, scorerType: $scorerType)\n      scoringRubricResponseAnalysis(\n        studentId: $studentId\n        scorerType: $scorerType\n      )\n      progress(userId: $studentId) {\n        submitted\n        scoring\n        scored\n        studentScored\n        teacherAndStudentScored\n      }\n    }\n    assignmentReview(\n      assignmentId: $assignmentId\n      studentId: $studentId\n      config: $config\n      inline: $inline\n      showCorrectAnswers: $showCorrectAnswers\n      scorerType: \"teacher\"\n    ) {\n      scoringRubric {\n        learnositySignedRequest\n      }\n    }\n    assignmentScoringByRubric(\n      studentId: $studentId\n      assignmentId: $assignmentId\n    ) {\n      studentSessionReviewSignedRequest\n      rubricCategoryReferencesByQuestion\n    }\n    assessmentGroupByAssignmentInfo(\n      assignmentId: $assignmentIdAsInt\n      subjectId: $subjectId\n      htmlId: $htmlId\n    ) {\n      id\n      name\n      type\n      subject\n    }\n  }\n`;\n\nexport const assignmentProgress = gql`\n  query assignmentProgress($assignmentId: String!, $studentId: String) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      progress(userId: $studentId) {\n        complete\n        notStarted\n        started\n        submitted\n        scoring\n        scored\n        studentScored\n        readyToScore\n        teacherAndStudentScored\n      }\n    }\n  }\n`;\n\nexport const assignmentPreviewData = gql`\n  query assignmentPreview(\n    $assignmentId: String!\n    $config: String\n    $showCorrectAnswers: Boolean\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignmentPreview(\n      assignmentId: $assignmentId\n      config: $config\n      showCorrectAnswers: $showCorrectAnswers\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n    }\n    assignment(\n      assignmentId: $assignmentId\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      id\n      title\n      questions(unwrapStackedQuestions: $unwrapStackedQuestions) {\n        ... on MultipleChoiceQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n          section {\n            timer\n          }\n        }\n        ... on FreeResponseQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored: isTeacherAuthored\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n          section {\n            timer\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const studentAssignmentReviewData = gql`\n  query assignmentPreview(\n    $assignmentId: String!\n    $config: String\n    $showCorrectAnswers: Boolean\n    $unwrapStackedQuestions: Boolean\n    $studentIdForTeacherReview: String\n  ) {\n    assignmentReview(\n      assignmentId: $assignmentId\n      studentId: $studentIdForTeacherReview\n      config: $config\n      showCorrectAnswers: $showCorrectAnswers\n      scorerType: \"student\"\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n    }\n    assignment(\n      assignmentId: $assignmentId\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      id\n      title\n      questions(\n        unwrapStackedQuestions: $unwrapStackedQuestions\n        studentId: $studentIdForTeacherReview\n      ) {\n        ... on MultipleChoiceQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n        }\n        ... on FreeResponseQuestion {\n          isSecure\n          isRetired\n          itemId\n          title\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          owner_id: ownerId\n          itemShareChain\n          isTeacherAuthored: isTeacherAuthored\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n            hasExamMode\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const assignmentQuestionData = gql`\n  query assignmentQuestionData($assignmentId: String!) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      title\n      questions {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTeacherAuthored\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          stackedQuestions {\n            id\n          }\n          flags {\n            hasExamMode\n          }\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTeacherAuthored\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          stackedQuestions {\n            id\n          }\n          flags {\n            hasExamMode\n          }\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const assignmentPlayerData = gql`\n  query assignmentPlayer(\n    $assignmentId: String!\n    $subjectId: String!\n    $config: String\n    $ldbChallenge: String\n    $isImpersonating: Boolean!\n    $impersonatingDetails: String!\n    $studentId: String!\n  ) {\n    assignment(\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n      masterSubjectId: $subjectId\n    ) {\n      id\n      title\n      sectionId\n      hasImmediateFeedback\n      immediateFeedbackAttempts\n      assessment {\n        id: itemId\n        learnosityItemReference\n        title\n      }\n      isHardTimer\n      allowLateSubmission\n      allowCalculator\n      allowResume\n      isSecure\n      studentScoring\n      testTakingMode\n      questions(isImpersonating: $isImpersonating, studentId: $studentId) {\n        ... on MultipleChoiceQuestion {\n          itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          section {\n            timer\n          }\n          tags {\n            id\n            label\n            description\n            categories {\n              id\n              label\n            }\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          section {\n            timer\n          }\n          tags {\n            id\n            label\n            description\n            categories {\n              id\n              label\n            }\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n        }\n      }\n      dueAt\n      timezone\n    }\n    assignmentPlayer(\n      assignmentId: $assignmentId\n      subjectId: $subjectId\n      config: $config\n      ldbChallenge: $ldbChallenge\n      isImpersonating: $isImpersonating\n      impersonatingDetails: $impersonatingDetails\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n      timer\n      isSecure\n      isCbPracticeQuiz\n      ldbLink\n      isSpp\n      isSandbox\n      sppVideos {\n        questionPartReference\n        displayName\n        resourceId\n        videoId\n        unitId\n        providerVideoId\n      }\n      timedSession {\n        timeElapsed\n        totalTime\n        submissionStatus\n        isTimerPaused\n        isTimerHidden\n      }\n    }\n  }\n`;\n\nexport const assignmentReview = gql`\n  query assignmentReview(\n    $assignmentId: String!\n    $studentId: String!\n    $config: String\n    $inline: Boolean\n    $showCorrectAnswers: Boolean\n    $assignmentIdAsInt: Int\n    $subjectId: Int\n    $htmlId: String\n    $scorerType: String\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignmentReview(\n      assignmentId: $assignmentId\n      studentId: $studentId\n      config: $config\n      inline: $inline\n      showCorrectAnswers: $showCorrectAnswers\n      subjectId: $subjectId\n      scorerType: \"teacher\"\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n      scoringRubric {\n        learnositySignedRequest\n        rubricCategoryReferencesByQuestion\n      }\n      sppVideos {\n        questionPartReference\n        displayName\n        resourceId\n        videoId\n        unitId\n        providerVideoId\n      }\n      status\n      scoreDisplay\n    }\n    assignment(assignmentId: $assignmentId) {\n      id\n      studentScoring\n      studentResponses(studentId: $studentId)\n      students {\n        id: initId\n        firstName\n        lastName\n      }\n      scoringRubricResponseAnalysis(\n        studentId: $studentId\n        scorerType: $scorerType\n      )\n      scoringRubricResponses(studentId: $studentId, scorerType: $scorerType)\n      progress(userId: $studentId) {\n        scored\n        studentScored\n        teacherAndStudentScored\n      }\n      assessment {\n        id: itemId\n        learnosityItemReference\n        title\n      }\n    }\n    assessmentGroupByAssignmentInfo(\n      assignmentId: $assignmentIdAsInt\n      subjectId: $subjectId\n      htmlId: $htmlId\n    ) {\n      type\n    }\n  }\n`;\n\nexport const startAssignmentMutation = gql`\n  mutation startAssignment($assignmentId: Int!, $isImpersonating: Boolean!) {\n    startAssignment(\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n    ) {\n      ok\n      error\n    }\n  }\n`;\n\nexport const bluebookStartAssignmentMutation = gql`\n  mutation startAssignment(\n    $assignmentId: Int!\n    $isImpersonating: Boolean!\n    $isRefreshing: Boolean\n    $isLdbStarted: Boolean\n    $isLdb: Boolean\n  ) {\n    startAssignment(\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n      isRefreshing: $isRefreshing\n      isLdbStarted: $isLdbStarted\n      isLdb: $isLdb\n    ) {\n      ok\n      error\n    }\n  }\n`;\n\nexport const assignmentSubmitMutation = gql`\n  mutation assignmentSubmit($assignmentId: String!) {\n    submitAssignment(assignmentId: $assignmentId) {\n      ok\n    }\n  }\n`;\n\nexport const assignmentScoringByRubric = gql`\n  query assignmentScoringByRubric(\n    $studentId: String!\n    $assignmentId: String\n    $subjectId: Int\n    $htmlId: String\n    $assignmentIdAsInt: Int\n    $scorerType: String!\n    $isImpersonating: Boolean!\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignmentScoringByRubric(\n      studentId: $studentId\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      studentSessionReviewSignedRequest\n      scoringRubricSignedRequest\n      rubricCategoryReferencesByQuestion\n    }\n    assessmentGroupByAssignmentInfo(\n      assignmentId: $assignmentIdAsInt\n      subjectId: $subjectId\n      htmlId: $htmlId\n    ) {\n      id\n      name\n      type\n      subject\n    }\n    assignment(\n      assignmentId: $assignmentId\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      id\n      title\n      studentScoring\n      hasStudentScores\n      responseAnalysis(studentId: $studentId)\n      scoringRubricResponseAnalysis(\n        studentId: $studentId\n        scorerType: $scorerType\n      )\n      scoringRubricResponses(studentId: $studentId, scorerType: $scorerType)\n      feedback(studentId: $studentId) {\n        content\n      }\n      students {\n        id: initId\n        firstName\n        lastName\n      }\n      printToggle\n      questions(unwrapStackedQuestions: $unwrapStackedQuestions) {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          stackedItem(assignmentId: $assignmentId) {\n            learnosityReference\n          }\n          isSecure\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          isSecure\n          partSuffix\n          sharedStimulus {\n            id\n            itemId\n          }\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n        }\n      }\n      progress(userId: $studentId) {\n        scored\n        studentScored\n        teacherAndStudentScored\n      }\n      assessment {\n        id: itemId\n        isSpp\n      }\n    }\n  }\n`;\n\nexport const assignmentScoringByRubricPreap = gql`\n  query assignmentScoringByRubric(\n    $studentId: String!\n    $assignmentId: String\n    $subjectId: Int\n    $htmlId: String\n    $assignmentIdAsInt: Int\n    $scorerType: String!\n    $isImpersonating: Boolean!\n  ) {\n    assignmentScoringByRubric(\n      studentId: $studentId\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n    ) {\n      studentSessionReviewSignedRequest\n      scoringRubricSignedRequest\n      rubricCategoryReferencesByQuestion\n    }\n    assessmentGroupByAssignmentInfo(\n      assignmentId: $assignmentIdAsInt\n      subjectId: $subjectId\n      htmlId: $htmlId\n    ) {\n      id\n      name\n      type\n      subject\n    }\n    assignment(assignmentId: $assignmentId) {\n      id\n      title\n      studentScoring\n      hasStudentScores\n      responseAnalysis(studentId: $studentId)\n      scoringRubricResponseAnalysis(\n        studentId: $studentId\n        scorerType: $scorerType\n      )\n      scoringRubricResponses(studentId: $studentId, scorerType: $scorerType)\n      feedback(studentId: $studentId) {\n        content\n      }\n      students {\n        id: initId\n        firstName\n        lastName\n      }\n      printToggle\n      questions {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          isSecure\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          isSecure\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n        }\n      }\n      progress(userId: $studentId) {\n        scored\n        studentScored\n        teacherAndStudentScored\n      }\n      assessment {\n        id: itemId\n        isSpp\n      }\n    }\n  }\n`;\n\nexport const updateScoresMutation = gql`\n  mutation updateScores(\n    $assignmentId: String!\n    $studentId: String!\n    $scores: String!\n    $scoringCompleted: Boolean\n  ) {\n    updateScores(\n      assignmentId: $assignmentId\n      studentId: $studentId\n      scores: $scores\n      scoringCompleted: $scoringCompleted\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const assignmentWithScoring = gql`\n  query getAssignmentWithScoring($assignmentId: String, $studentId: String) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      progress {\n        complete\n        not_started: notStarted\n        started\n        submitted\n        scoring\n        mcq_scoring: mcqScoring\n        scored\n        student_scored: studentScored\n        ready_to_score: readyToScore\n        teacher_and_student_scored: teacherAndStudentScored\n      }\n      studentSessions {\n        allowResume\n        userId\n        learnositySubmittedAt\n        submittedAt\n        createdBy\n        progress {\n          complete\n          not_started: notStarted\n          started\n          submitted\n          scoring\n          mcq_scoring: mcqScoring\n          scored\n          student_scored: studentScored\n          ready_to_score: readyToScore\n          teacher_and_student_scored: teacherAndStudentScored\n        }\n      }\n      results\n      studentResponses(studentId: $studentId)\n      resultsByItem(studentId: $studentId)\n      learnosityScoringActivityId\n      learnosityStudentScoringActivityId\n      teacherScoringRubricResults: scoringRubricResults(scorerType: \"teacher\")\n      studentScoringRubricResults: scoringRubricResults(scorerType: \"student\")\n    }\n  }\n`;\n\nexport const assignmentScrambledOrder = gql`\n  query getSignedAssignmentResultRequest(\n    $assignmentId: String\n    $educationPeriod: String\n    $scrambledStudentId: String\n  ) {\n    assignment(assignmentId: $assignmentId, educationPeriod: $educationPeriod) {\n      id\n      questions(studentId: $scrambledStudentId) {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const assignmentWithAssessment = gql`\n  query getSignedAssignmentResultRequest(\n    $assignmentId: String\n    $studentId: String\n    $educationPeriod: String\n    $masterSubjectId: String\n    $scrambledStudentId: String\n    $includeResults: Boolean = true\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignment(assignmentId: $assignmentId, educationPeriod: $educationPeriod) {\n      id\n      quizIsPpc\n      status\n      scoreDisplay\n      hasImmediateFeedback\n      studentResponses(studentId: $studentId)\n      scoringRubricResponses(studentId: $studentId, scorerType: \"teacher\")\n      results(studentId: $studentId) @include(if: $includeResults)\n      resultsByItem(studentId: $studentId)\n      scoringRubricResults(studentId: $studentId)\n      responseAnalysis(studentId: $studentId)\n      scoringRubricResponseAnalysis(studentId: $studentId)\n      studentScoringRubricResults: scoringRubricResults(\n        studentId: $studentId\n        scorerType: \"student\"\n      )\n      teacherScoringRubricResults: scoringRubricResults(scorerType: \"teacher\")\n      scores(studentId: $studentId) {\n        studentId\n        score\n        maxScore\n      }\n      title\n      startsAt\n      dueAt\n      timer\n      sectionName\n      sectionId\n      isSecure\n      studentScoring\n      hasStudentScores\n      isIndividualAssignment\n      studentScoring\n      printToggle\n      students {\n        id: initId\n        firstName\n        lastName\n        apuid\n        email\n      }\n      progress(userId: $studentId) {\n        submitted\n        scoring\n        scored\n        studentScored\n        teacherAndStudentScored\n      }\n      studentSessions {\n        userId\n        submittedAt\n        scoringCompletedAt\n        createdBy\n      }\n      feedback(studentId: $studentId) {\n        content\n        studentId\n      }\n      timeTaken(studentId: $studentId) {\n        studentId\n        seconds\n      }\n      timezone\n      assessment {\n        id: itemId\n        title\n        isPracticeExam\n        isLearningCheckpoint\n        isPerformanceTask\n        associatedResources {\n          resourceUrl\n          resourceType\n        }\n        isCbPracticeQuiz\n        isSampleQuiz\n        isSpp\n        isPpc\n        is_learning_checkpoint: isLearningCheckpoint\n      }\n      customAssignmentSettings {\n        startsAt\n        dueAt\n        timer\n        userId\n      }\n      questions(\n        studentId: $scrambledStudentId\n        unwrapStackedQuestions: $unwrapStackedQuestions\n      ) {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          ownerId\n          title\n          isSecure\n          isTopicQuestion\n          isRetired\n          isTeacherAuthored\n          learnosityItemReference\n          itemShareChain\n          partSuffix\n          stackedItem(assignmentId: $assignmentId) {\n            learnosityReference\n          }\n          sharedStimulus {\n            id\n            itemId\n            title\n            learnosityItemReference\n          }\n          relatedSkills(educationPeriod: $educationPeriod) {\n            tagCategoryId\n            title\n            children {\n              tagId\n              label\n              title\n              description\n              category\n              learnosityItemReference\n            }\n          }\n          relatedOtherTags(\n            educationPeriod: $educationPeriod\n            masterSubjectId: $masterSubjectId\n          ) {\n            tagId\n            label\n            title\n            description\n            category\n            learnosityItemReference\n          }\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          ownerId\n          title\n          isSecure\n          isTopicQuestion\n          isRetired\n          isTeacherAuthored\n          learnosityItemReference\n          itemShareChain\n          partSuffix\n          stackedItem(assignmentId: $assignmentId) {\n            learnosityReference\n          }\n          sharedStimulus {\n            id\n            itemId\n            title\n            learnosityItemReference\n          }\n          relatedSkills(educationPeriod: $educationPeriod) {\n            tagCategoryId\n            title\n            children {\n              tagId\n              label\n              title\n              description\n              learnosityItemReference\n            }\n          }\n          relatedOtherTags(\n            educationPeriod: $educationPeriod\n            masterSubjectId: $masterSubjectId\n          ) {\n            tagId\n            label\n            title\n            description\n            category\n            learnosityItemReference\n          }\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          type: __typename\n        }\n      }\n      categories(masterSubjectId: $masterSubjectId)\n      scrambleQuestionsPerStudent\n      scoreDisplay\n    }\n  }\n`;\n\nexport const scoringGridAssignment = gql`\n  query scoringGridAssignment(\n    $assignmentId: String\n    $unwrapStackedQuestions: Boolean\n    $masterSubjectId: String\n  ) {\n    assignment(\n      assignmentId: $assignmentId\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      id\n      categories(masterSubjectId: $masterSubjectId)\n      sessionTemplate\n      scoringSessionTemplate\n      responseAnalysis\n      studentResponses\n      scoringRubricResponseAnalysis\n      scoringRubricResponses(studentId: \"\", scorerType: \"teacher\")\n      teacherScoringRubricResults: scoringRubricResults(scorerType: \"teacher\")\n      studentScoringRubricResults: scoringRubricResults(scorerType: \"student\")\n      students {\n        id: initId\n        firstName\n        lastName\n      }\n      questions(unwrapStackedQuestions: $unwrapStackedQuestions) {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          flags {\n            hasExamMode\n          }\n          partSuffix\n          stackedItem(assignmentId: $assignmentId) {\n            learnosityReference\n          }\n          stackedQuestions {\n            id\n            baseQuestionReference\n            baseQuestionId\n            stackedItemId\n            stackOrder\n          }\n          sharedStimulus {\n            id\n            itemId\n            title\n            learnosityItemReference\n          }\n          relatedSkills {\n            tagCategoryId\n            title\n            children {\n              tagId\n              label\n              title\n              description\n              category\n              learnosityItemReference\n            }\n          }\n          relatedOtherTags(masterSubjectId: $masterSubjectId) {\n            tagId\n            label\n            title\n            description\n            category\n            learnosityItemReference\n          }\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          flags {\n            hasExamMode\n          }\n          partSuffix\n          stackedItem(assignmentId: $assignmentId) {\n            learnosityReference\n          }\n          sharedStimulus {\n            id\n            itemId\n            title\n            learnosityItemReference\n          }\n          relatedSkills {\n            tagCategoryId\n            title\n            children {\n              tagId\n              label\n              title\n              description\n              category\n              learnosityItemReference\n            }\n          }\n          relatedOtherTags(masterSubjectId: $masterSubjectId) {\n            tagId\n            label\n            title\n            description\n            category\n            learnosityItemReference\n          }\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const assignmentSessionTemplate = gql`\n  query getSignedAssignmentResultRequest($assignmentId: String!) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      sessionTemplate\n    }\n  }\n`;\n\nexport const teacherAssignments = gql`\n  query getTeacherAssignments($subjectIds: [String]!) {\n    teacherAssignments(subjectIds: $subjectIds) {\n      assignments {\n        id\n        title\n        sectionId\n        sectionName\n        sectionImportId\n        isSecure\n        scrambleQuestions\n        students {\n          id: initId\n          firstName\n          lastName\n        }\n        studentSessions {\n          userId\n          startedAt\n          submittedAt\n          scoringStartedAt\n          scoringCompletedAt\n          learnositySubmittedAt\n        }\n        status\n        startsAt\n        dueAt\n        opened\n        teacherAssigned\n        assessment {\n          id: itemId\n          units\n          itemId\n          questions {\n            ... on MultipleChoiceQuestion {\n              id: itemId\n              type: __typename\n            }\n            ... on FreeResponseQuestion {\n              id: itemId\n              type: __typename\n            }\n          }\n          isPracticeExam\n          isCbPracticeQuiz\n          isSPP: isSpp\n          isPPC: isPpc\n          is_learning_checkpoint: isLearningCheckpoint\n          is_performance_task: isPerformanceTask\n        }\n        progress {\n          complete\n          notStarted\n          started\n          submitted\n          scoring\n          mcqScoring\n          scored\n          studentScored\n          readyToScore\n          teacherAndStudentScored\n        }\n        window {\n          startDate\n        }\n        scores {\n          studentId\n          score\n          maxScore\n        }\n        results\n        isIndividualAssignment\n      }\n    }\n  }\n`;\n\nexport const assignmentProgressWithTagPairs = gql`\n  query getAssignmentProgressWithTagPairs(\n    $assignmentId: String!\n    $studentId: String\n    $tags: String!\n    $educationPeriod: String\n  ) {\n    assignmentProgressWithTagPairs(\n      assignmentId: $assignmentId\n      studentId: $studentId\n      tags: $tags\n      educationPeriod: $educationPeriod\n    ) {\n      attemptNumber\n      resultByTags\n      otherPartsResults\n      otherPartsResultsByItem\n      otherPartsResponseByAnalysis\n      otherPartsScoringRubricResults(studentId: $studentId)\n      otherPartsScoringRubricResponseAnalysis(studentId: $studentId)\n      assessmentShortName\n      learnosityActivityId\n      tagPairs\n      tagPairAbbreviations\n      otherParts {\n        numberOfSubmissions\n        numberOfCompletedScores\n        hasBeenOpened\n        assessmentId\n        assignmentId\n        unitId\n        shortName\n        status\n        tagPairAbbreviations\n        learnosityActivityId\n        learnosityScoringActivityId\n        displayScore\n        timer\n        timeTaken(studentId: $studentId) {\n          studentId\n          seconds\n        }\n        itemData {\n          itemId\n          title\n          canScrambleQuestions\n          isSecure\n        }\n        studentSessions {\n          userId\n          submittedAt\n          scoringCompletedAt\n        }\n        feedback(studentId: $studentId) {\n          content\n          studentId\n        }\n        questions {\n          ... on MultipleChoiceQuestion {\n            id: itemId\n            title\n            learnosityItemReference\n            relatedSkills(educationPeriod: $educationPeriod) {\n              tagCategoryId\n              title\n              children {\n                tagId\n                label\n                title\n                description\n              }\n            }\n            type: __typename\n          }\n          ... on FreeResponseQuestion {\n            id: itemId\n            title\n            learnosityItemReference\n            relatedSkills(educationPeriod: $educationPeriod) {\n              tagCategoryId\n              title\n              children {\n                tagId\n                label\n                title\n                description\n              }\n            }\n            children: scoringRubric {\n              id\n              title\n              learnosityItemReference\n              type: __typename\n            }\n            type: __typename\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const relatedQuestions = gql`\n  query relatedQuestions($assignmentId: String!, $questionId: String!) {\n    relatedQuestions(assignmentId: $assignmentId, questionId: $questionId) {\n      questions {\n        questionId\n        index\n      }\n    }\n  }\n`;\n\nexport const getEditQuestion = gql`\n  query editQuestionQuery($subjectId: Int!, $itemId: Int) {\n    editQuestion(subjectId: $subjectId, itemId: $itemId, copyQuestion: false) {\n      learnositySignedRequest\n      question {\n        ... on MultipleChoiceQuestion {\n          title\n          learnosityItemReference\n          tags {\n            id\n            categories {\n              id\n            }\n          }\n        }\n        ... on FreeResponseQuestion {\n          title\n          learnosityItemReference\n          tags {\n            id\n            categories {\n              id\n            }\n          }\n          scoringRubric {\n            id\n            title\n            learnosityItemReference\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const getCopyQuestion = gql`\n  query editQuestionQuery($subjectId: Int!, $itemId: Int) {\n    editQuestion(subjectId: $subjectId, itemId: $itemId, copyQuestion: true) {\n      learnositySignedRequest\n      question {\n        ... on MultipleChoiceQuestion {\n          title\n          learnosityItemReference\n          tags {\n            id\n            categories {\n              id\n            }\n          }\n        }\n        ... on FreeResponseQuestion {\n          title\n          learnosityItemReference\n          tags {\n            id\n            categories {\n              id\n            }\n          }\n          scoringRubric {\n            id\n            title\n            learnosityItemReference\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const saveQuestionMutation = gql`\n  mutation saveQuestion(\n    $subjectId: String!\n    $type: String\n    $title: String!\n    $learnosityItemReference: String!\n    $itemId: String\n    $tags: [Int]\n    $categoryItems: String\n    $categoryQuestions: String\n    $replaceQuestion: String\n  ) {\n    saveQuestion(\n      subjectId: $subjectId\n      type: $type\n      title: $title\n      learnosityItemReference: $learnosityItemReference\n      itemId: $itemId\n      tags: $tags\n      categoryItems: $categoryItems\n      categoryQuestions: $categoryQuestions\n      replaceQuestion: $replaceQuestion\n    ) {\n      item_id: itemId\n      title\n      rev_id: revId\n      learnosity_item_reference: learnosityItemReference\n      owner_id: ownerId\n      is_full_form: isFullForm\n      can_scramble_questions: canScrambleQuestions\n      is_secure: isSecure\n      type\n      is_final_exam: isFinalExam\n      is_practice_exam: isPracticeExam\n      is_cb_practice_quiz: isCbPracticeQuiz\n      is_sample_quiz: isSampleQuiz\n      used_before: usedBefore\n      can_edit: canEdit\n      metadata {\n        title\n        tag_category_id: tagCategoryId\n        label\n        tags {\n          id\n          label\n          title\n          description\n        }\n      }\n    }\n  }\n`;\n\nexport const getQuestionsPreview = gql`\n  query getQuestionsPreview(\n    $questionId: Int\n    $questionIds: [Int]!\n    $subjectId: Int\n    $config: String\n    $educationPeriod: String\n    $showCorrectAnswers: Boolean\n  ) {\n    questionsPreview(\n      questionId: $questionId\n      questionIds: $questionIds\n      subjectId: $subjectId\n      config: $config\n      showCorrectAnswers: $showCorrectAnswers\n    ) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n      questions {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          isSecure\n          isRetired\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          used_detail: usedDetail(\n            subjectId: $subjectId\n            educationPeriod: $educationPeriod\n          )\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n          section {\n            timer\n          }\n          stackedItem {\n            timer\n          }\n          owner_id: ownerId\n          isTeacherAuthored: isTeacherAuthored\n          item_share_chain: itemShareChain\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n          used_detail: usedDetail(\n            subjectId: $subjectId\n            educationPeriod: $educationPeriod\n          )\n          flags {\n            hasAudioPlayback\n            hasAudioConversation\n            hasAudioPresentation\n          }\n          section {\n            timer\n          }\n          owner_id: ownerId\n          isTeacherAuthored: isTeacherAuthored\n          item_share_chain: itemShareChain\n        }\n      }\n    }\n  }\n`;\n\nexport const getSampleExam = gql`\n  query getSampleExam($subjectId: Int!, $config: String) {\n    sampleExam(subjectId: $subjectId, config: $config) {\n      learnositySignedRequest\n      allowCalculatorForItems {\n        itemId\n        revisionId\n        learnosityItemReference\n      }\n      questions {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          title\n          learnosityItemReference\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const getQuestionsTypesOnAssignment = gql`\n  query getQuestionsTypesOnAssignment(\n    $assignmentId: String\n    $unwrapStackedQuestions: Boolean\n  ) {\n    assignment(\n      assignmentId: $assignmentId\n      unwrapStackedQuestions: $unwrapStackedQuestions\n    ) {\n      id\n      title\n      timezone\n      reviewUntil\n      isReviewDisabled\n      startsAt\n      dueAt\n      window {\n        startDate\n        endDate\n      }\n      assignmentPaperscorerAnswerSheet\n      questions(unwrapStackedQuestions: $unwrapStackedQuestions) {\n        ... on MultipleChoiceQuestion {\n          id: itemId\n          itemId\n          title\n          isSecure\n          isRetired\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTopicQuestion\n          isTeacherAuthored\n          type: __typename\n        }\n        ... on FreeResponseQuestion {\n          id: itemId\n          itemId\n          title\n          isSecure\n          isRetired\n          isTopicQuestion\n          learnosityItemReference\n          isCbPracticeQuiz\n          isTeacherAuthored\n          type: __typename\n          children: scoringRubric {\n            id\n            title\n            learnosityItemReference\n            type: __typename\n          }\n        }\n      }\n    }\n  }\n`;\n\n// Annotations\nexport const annotationDataQuery = gql`\n  query getLearnosityAssignmentAnnotations($assignmentId: Int!) {\n    learnosityAssignmentAnnotations(assignmentId: $assignmentId) {\n      id\n      annotation\n      highlight {\n        id\n        item\n        path\n        offset\n        selection\n        color\n      }\n    }\n  }\n`;\n\nexport const createAnnotationMutation = gql`\n  mutation createLearnosityAnnotation(\n    $assignmentId: Int!\n    $annotation: String!\n    $highlight: HighlightInput!\n  ) {\n    createLearnosityAnnotation(\n      assignmentId: $assignmentId\n      annotation: $annotation\n      highlight: $highlight\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const updateAnnotationMutation = gql`\n  mutation updateLearnosityAnnotation(\n    $learnosityAnnotationId: Int!\n    $annotation: String!\n  ) {\n    updateLearnosityAnnotation(\n      annotationId: $learnosityAnnotationId\n      annotation: $annotation\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const deleteAnnotationMutation = gql`\n  mutation deleteLearnosityAnnotation($learnosityAnnotationId: Int!) {\n    deleteLearnosityAnnotation(annotationId: $learnosityAnnotationId) {\n      ok\n    }\n  }\n`;\n\nexport const assessmentTestPreviewQuery = gql`\n  query getAssessmentTestPreview(\n    $assessmentId: String!\n    $masterSubjectId: String!\n  ) {\n    assessment(assessmentId: $assessmentId) {\n      id: itemId\n      previewPdfUrl(masterSubjectId: $masterSubjectId)\n    }\n  }\n`;\n\nexport const assignmentScoringGuideQuery = gql`\n  query getAssignmentScoringGuide(\n    $assignmentId: String!\n    $masterSubjectId: String!\n  ) {\n    assignment(assignmentId: $assignmentId) {\n      id\n      scoringGuideUrl(masterSubjectId: $masterSubjectId)\n    }\n  }\n`;\n\nexport const assessmentScoringGuideQuery = gql`\n  query getAssessmentScoringGuide(\n    $assessmentId: String!\n    $masterSubjectId: String!\n  ) {\n    assessment(assessmentId: $assessmentId) {\n      id: itemId\n      scoringGuideUrl(masterSubjectId: $masterSubjectId)\n    }\n  }\n`;\n\nexport const assessmentTestBookletQuery = gql`\n  query getAssessmentTestBookletQuery(\n    $assessmentId: String!\n    $masterSubjectId: Int!\n    $paperSaver: Boolean\n    $connectedQuestions: Boolean\n  ) {\n    assessment(assessmentId: $assessmentId) {\n      id\n      testBookletUrl(\n        masterSubjectId: $masterSubjectId\n        paperSaver: $paperSaver\n        connectedQuestions: $connectedQuestions\n      )\n    }\n  }\n`;\n\nexport const logSubjectVisitMutation = gql`\n  mutation logSubjectVisit($path: String!) {\n    logSubjectVisit(path: $path) {\n      logged\n    }\n  }\n`;\n\nexport const trackResultsVisit = gql`\n  mutation trackResultsVisit($assignmentId: String!) {\n    trackResultsVisit(assignmentId: $assignmentId) {\n      tracked\n    }\n  }\n`;\n\nexport const trackItemResultsVisit = gql`\n  mutation trackItemResultsVisit($assignmentId: String!, $itemId: String!) {\n    trackItemResultsVisit(assignmentId: $assignmentId, itemId: $itemId) {\n      tracked\n    }\n  }\n`;\n\nexport const proctoringQuery = gql`\n  query getAssignmentProctoring($assignmentId: String!, $htmlId: String!) {\n    assignmentProctoring(assignmentId: $assignmentId, htmlId: $htmlId) {\n      learnositySignedRequest\n    }\n  }\n`;\n\nexport const extendTimeMutation = gql`\n  mutation extendTimeMutation(\n    $assignmentId: Int!\n    $studentIds: [Int!]\n    $minutes: Int!\n  ) {\n    extendSessionTime(\n      assignmentId: $assignmentId\n      studentIds: $studentIds\n      minutes: $minutes\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const assignmentSession = gql`\n  query getassignmentSession($assignmentId: Int!, $isImpersonating: Boolean!) {\n    assignmentSession(\n      assignmentId: $assignmentId\n      isImpersonating: $isImpersonating\n    ) {\n      id: assignmentId\n      timedSession {\n        timeElapsed\n        totalTime\n        submissionStatus\n      }\n      isOpen\n      isSubmitted\n    }\n  }\n`;\n\nexport const getQuestionRubrics = gql`\n  query getQuestionRubrics($questionId: String!, $program: String!) {\n    questionRubricPreview(questionId: $questionId, program: $program) {\n      learnositySignedRequest\n    }\n  }\n`;\n\nexport const getStimulusQuestions = gql`\n  query getStimulusQuestions($stimulusId: String!, $subjectId: String!) {\n    stimulusQuestions(stimulusId: $stimulusId, subjectId: $subjectId) {\n      questions {\n        item_id: itemId\n        rev_id: revId\n        title: title\n        is_full_form: isFullForm\n        owner_id: ownerId\n        can_scramble_questions: canScrambleQuestions\n        is_sample_quiz: isSampleQuiz\n        metadata {\n          tag_category_id: tagCategoryId\n          label\n          title\n          tags {\n            id\n            label\n            title\n            description\n          }\n        }\n        learnosity_item_reference: learnosityItemReference\n        is_secure: isSecure\n        has_exam_mode: hasExamMode\n        type: type\n        can_edit: canEdit\n        used_before: usedBefore\n        used_detail: usedDetail\n      }\n    }\n  }\n`;\n\nexport const getQuizQuestionInfo = gql`\n  query quizHasNonSecureQns(\n    $assessmentId: String!\n    $assignmentId: String\n    $questionTypes: String\n  ) {\n    quizHasNonSecureQns(\n      assessmentId: $assessmentId\n      assignmentId: $assignmentId\n      questionTypes: $questionTypes\n    )\n  }\n`;\n\nexport const questions = gql`\n  query questions(\n    $subjectId: Int!\n    $orderBy: String\n    $page: Int\n    $filterTagIds: String\n    $excludeHigherTagCategoryIds: String\n    $includeOnlyTagCategoryIds: String\n    $searchTerm: String\n    $searchFor: String\n    $educationPeriod: String\n    $sortTagsBy: String\n    $statusFilter: String\n  ) {\n    questions(\n      subjectId: $subjectId\n      orderBy: $orderBy\n      page: $page\n      filterTagIds: $filterTagIds\n      excludeHigherTagCategoryIds: $excludeHigherTagCategoryIds\n      includeOnlyTagCategoryIds: $includeOnlyTagCategoryIds\n      searchTerm: $searchTerm\n      searchFor: $searchFor\n      educationPeriod: $educationPeriod\n      sortTagsBy: $sortTagsBy\n      statusFilter: $statusFilter\n    ) {\n      currentPage\n      columnLabels\n      itemsColumns\n      items\n      hasMore\n      perPage\n      total\n      addAllItemIds\n      type: __typename\n    }\n  }\n`;\n\nexport const getAssessmentSecurityInfo = gql`\n  query getAssessmentSecurityInfo($assessmentId: String!) {\n    assessment(assessmentId: $assessmentId) {\n      id: itemId\n      isSecure\n      isPracticeExam\n      learnosityItemReference\n      isExamModeAvailable\n      hasUntimedUngroupedQuestions\n      totalMaxTime\n      questions {\n        ... on MultipleChoiceQuestion {\n          hasExamMode\n          isSecure\n          type: __typename\n          stackedQuestions {\n            id\n          }\n        }\n        ... on FreeResponseQuestion {\n          hasExamMode\n          isSecure\n          type: __typename\n          stackedQuestions {\n            id\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const getAssessmentInfo = gql`\n  query getAssessmentInfo($assessmentId: String!, $educationPeriod: String!) {\n    assessment(assessmentId: $assessmentId, educationPeriod: $educationPeriod) {\n      id: itemId\n      item_id: itemId\n      title\n      isSecure\n      isPracticeExam\n      isCbPracticeQuiz\n      is_spp: isSpp\n      is_ppc: isPpc\n      is_learning_checkpoint: isLearningCheckpoint\n      canScrambleQuestions\n      isSampleQuiz\n      isOwner\n      isInCoTaughtClass\n      isAssigned\n      isInProgress\n      associatedResources {\n        resourceUrl\n        resourceType\n      }\n    }\n  }\n`;\n\nexport const getQBCreateAddInfo = gql`\n  query getQBCreateAddInfo(\n    $itemIds: [Int]!\n    $subjectId: String!\n    $educationPeriod: String!\n  ) {\n    qbCreateAdd(\n      itemIds: $itemIds\n      subjectId: $subjectId\n      educationPeriod: $educationPeriod\n    ) {\n      isPracticeExam\n      isOwner\n      itemToStimulusMap {\n        question_id: questionId\n        stimulus {\n          id\n          rev_id: revId\n          title\n          created\n          updated\n          type\n          learnosity_item_reference: learnosityItemReference\n          is_secure: isSecure\n        }\n      }\n      questions {\n        id\n        rev_id: revId\n        title\n        created\n        updated\n        type\n        learnosity_item_reference: learnosityItemReference\n        is_secure: isSecure\n        has_exam_mode: hasExamMode\n        is_retired: isRetired\n        is_cb_practice_quiz: isCbPracticeQuiz\n        owner_id: ownerId\n        is_topic_question: isTopicQuestion\n        calculator_section: calculatorSection\n        is_ppc: isPpc\n        metadata {\n          tag_category_id: tagCategoryId\n          label\n          title\n          tags {\n            id\n            label\n            title\n            description\n          }\n        }\n        used_before: usedBefore\n        used_detail: usedDetail\n      }\n      stimuli {\n        stimulus_id: stimulusId\n        questions {\n          item_id: itemId\n          rev_id: revId\n          title: title\n          is_full_form: isFullForm\n          owner_id: ownerId\n          is_cb_practice_quiz: isCbPracticeQuiz\n          is_topic_question: isTopicQuestion\n          can_scramble_questions: canScrambleQuestions\n          metadata {\n            tag_category_id: tagCategoryId\n            label\n            title\n            tags {\n              id\n              label\n              title\n              description\n            }\n          }\n          learnosity_item_reference: learnosityItemReference\n          is_secure: isSecure\n          has_exam_mode: hasExamMode\n          type: type\n          can_edit: canEdit\n          used_before: usedBefore\n          used_detail: usedDetail\n        }\n      }\n    }\n  }\n`;\n\nexport const getQBCreateAssessmentInfo = gql`\n  query getQBCreateAssessmentInfo(\n    $assessmentId: String!\n    $subjectId: String!\n    $educationPeriod: String!\n    $isQuestionsDataUsed: Boolean\n  ) {\n    qbCreateEdit(\n      assessmentId: $assessmentId\n      subjectId: $subjectId\n      educationPeriod: $educationPeriod\n      isQuestionsDataUsed: $isQuestionsDataUsed\n    ) {\n      id\n      title\n      isPracticeExam\n      isOwner\n      labels {\n        labelId\n      }\n      itemToStimulusMap {\n        question_id: questionId\n        stimulus {\n          id\n          rev_id: revId\n          title\n          created\n          updated\n          type\n          learnosity_item_reference: learnosityItemReference\n          is_secure: isSecure\n        }\n      }\n      questions {\n        id\n        rev_id: revId\n        title\n        created\n        updated\n        type\n        learnosity_item_reference: learnosityItemReference\n        is_secure: isSecure\n        has_exam_mode: hasExamMode\n        is_retired: isRetired\n        is_cb_practice_quiz: isCbPracticeQuiz\n        owner_id: ownerId\n        is_topic_question: isTopicQuestion\n        calculator_section: calculatorSection\n        is_ppc: isPpc\n        metadata {\n          tag_category_id: tagCategoryId\n          label\n          title\n          tags {\n            id\n            label\n            title\n            description\n          }\n        }\n        used_before: usedBefore\n        used_detail: usedDetail\n        item_share_chain: itemShareChain\n      }\n      stimuli {\n        stimulus_id: stimulusId\n        questions {\n          item_id: itemId\n          rev_id: revId\n          title: title\n          is_full_form: isFullForm\n          owner_id: ownerId\n          is_cb_practice_quiz: isCbPracticeQuiz\n          is_topic_question: isTopicQuestion\n          can_scramble_questions: canScrambleQuestions\n          metadata {\n            tag_category_id: tagCategoryId\n            label\n            title\n            tags {\n              id\n              label\n              title\n              description\n            }\n          }\n          learnosity_item_reference: learnosityItemReference\n          is_secure: isSecure\n          has_exam_mode: hasExamMode\n          type: type\n          can_edit: canEdit\n          used_before: usedBefore\n          used_detail: usedDetail\n          item_share_chain: itemShareChain\n        }\n      }\n    }\n  }\n`;\n\nexport const deleteAssessmentMutation = gql`\n  mutation deleteAssesment($itemId: Int!, $shouldConfirmDelete: Boolean) {\n    deleteAssessment(\n      itemId: $itemId\n      shouldConfirmDelete: $shouldConfirmDelete\n    ) {\n      deleted\n      message\n      canBeDeleted\n    }\n  }\n`;\n\nexport const submitSessions = gql`\n  mutation submitSessions($assignmentId: String!, $userIds: [Int]!) {\n    submitSessions(assignmentId: $assignmentId, userIds: $userIds) {\n      ok\n    }\n  }\n`;\n\nexport const unsubmitSessions = gql`\n  mutation unsubmitSessions($assignmentId: String!, $userIds: [Int]!) {\n    unsubmitSessions(assignmentId: $assignmentId, userIds: $userIds) {\n      ok\n    }\n  }\n`;\n\nexport const createQuiz = gql`\n  mutation createQuiz(\n    $libraryId: Int!\n    $title: String!\n    $content: JSONString!\n  ) {\n    createQuiz(libraryId: $libraryId, title: $title, content: $content) {\n      ok\n      itemId\n    }\n  }\n`;\n\nexport const updateQuiz = gql`\n  mutation updateQuiz($itemId: Int!, $title: String!, $content: JSONString!) {\n    updateQuiz(itemId: $itemId, title: $title, content: $content) {\n      ok\n    }\n  }\n`;\n\nexport const copyAssessment = gql`\n  mutation copyAssessment($assessmentId: Int!, $subjectId: Int!) {\n    copyAssessment(assessmentId: $assessmentId, subjectId: $subjectId) {\n      ok\n      newAssessment {\n        itemId\n      }\n      message\n    }\n  }\n`;\n\nexport const getAggregatedVideoStats = gql`\n  query getAggregatedVideoStats($videoId: Int!, $subjectId: Int!) {\n    aggregatedVideoStatus(videoId: $videoId, subjectId: $subjectId) {\n      totalStudents\n      watchedStudents\n      stats {\n        school\n        classProgress {\n          className\n          classId\n          assigned\n          studentProgress {\n            firstName\n            lastName\n            completed\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const getAdminCoordAggregatedVideoStats = gql`\n  query getAggregatedAdminVideoStats($videoId: Int!, $subjectId: Int!) {\n    aggregatedVideoStatus(videoId: $videoId, subjectId: $subjectId) {\n      totalStudents\n      watchedStudents\n      stats {\n        school\n        classProgress {\n          className\n          classId\n          assigned\n          totalStudents\n          watchedStudents\n        }\n      }\n    }\n  }\n`;\n\nexport const getSharedResources = gql`\n  query getSharedResources(\n    $subjectId: Int!\n    $classIds: [String]!\n    $educationPeriod: Int!\n  ) {\n    sharedVideoResources(\n      subjectId: $subjectId\n      classIds: $classIds\n      educationPeriod: $educationPeriod\n    ) {\n      id\n      isVideo\n      displayName\n      date\n      headline\n      description\n      link\n      message\n      status\n      icon {\n        name\n        height\n        width\n        clickable\n      }\n    }\n  }\n`;\n\nexport const videoStatusesQuery = gql`\n  query videoStatusesQuery($videoIds: [Int]!, $userId: Int!, $subjectId: Int!) {\n    videoProgress(videoIds: $videoIds, userId: $userId, subjectId: $subjectId) {\n      resourceId\n      status\n    }\n  }\n`;\n\nexport const getVideoWatchedPercentage = gql`\n  query dailyVideoWatchedPercentage(\n    $userId: Int!\n    $videoIds: [Int]!\n    $subjectId: Int!\n  ) {\n    videoProgress(userId: $userId, videoIds: $videoIds, subjectId: $subjectId) {\n      url\n      watchedPercentage\n    }\n  }\n`;\n\nexport const getSearchedResources = gql`\n  query filteredResources(\n    $resourceTypes: [String]!\n    $subjectId: Int!\n    $searchTerm: String\n    $educationPeriod: Int!\n    $sortOrder: String\n    $resourceSubTypes: [String]\n  ) {\n    filteredResources(\n      resourceTypes: $resourceTypes\n      subjectId: $subjectId\n      searchTerm: $searchTerm\n      educationPeriod: $educationPeriod\n      sortOrder: $sortOrder\n      resourceSubTypes: $resourceSubTypes\n    ) {\n      resource {\n        id\n        displayName\n        description\n        icon\n        group\n        ... on EmbeddedVideoResource {\n          isShareable\n          fileSize\n          url\n          videoId\n          thumbnailUrl\n        }\n        ... on AssessmentResource {\n          assessmentId\n          resourceTypeDetails\n        }\n        ... on StudentPracticeResource {\n          assessmentId\n        }\n        ... on URLResource {\n          isShareable\n          fileSize\n          url\n          contentType\n        }\n        ... on SourceResource {\n          isShareable\n          fileSize\n          url\n          contentType\n        }\n        ... on LTIResource {\n          isShareable\n          url\n        }\n      }\n      unit\n      subunit\n      displayTags\n      resourceCount\n    }\n  }\n`;\n\nexport const itemRelatedVideos = gql`\n  query itemRelatedVideos(\n    $itemId: Int!\n    $educationPeriod: Int\n    $masterSubjectId: Int!\n  ) {\n    relatedVideos(\n      itemId: $itemId\n      educationPeriod: $educationPeriod\n      masterSubjectId: $masterSubjectId\n    ) {\n      videos {\n        id\n        displayName\n        url\n        videoId\n        unitId\n        thumbnailUrl\n        description\n      }\n    }\n  }\n`;\n\nexport const pauseSessionMutation = gql`\n  mutation pauseSessionMutation($assignmentId: Int!, $studentIds: [Int!]) {\n    pauseSession(assignmentId: $assignmentId, studentIds: $studentIds) {\n      ok\n    }\n  }\n`;\n\nexport const resumeSessionMutation = gql`\n  mutation resumeSessionMutation($assignmentId: Int!, $studentIds: [Int!]) {\n    resumeSession(assignmentId: $assignmentId, studentIds: $studentIds) {\n      ok\n    }\n  }\n`;\n\nexport const videoMarkComplete = gql`\n  mutation markCompleteEmbedVideo($id: Int!) {\n    markCompleteEmbedVideo(id: $id) {\n      ok\n    }\n  }\n`;\n\nexport const deleteApVideoAssignment = gql`\n  mutation deleteApVideoAssignment($id: Int!) {\n    deleteApVideoAssignment(id: $id) {\n      ok\n    }\n  }\n`;\n\nexport const itemShareInviteCopyLink = gql`\n  mutation itemShareInviteCopyLink(\n    $masterSubjectId: Int!\n    $period: Int!\n    $itemId: Int!\n    $copyLinkButton: Boolean!\n    $description: String\n    $emails: [String]\n  ) {\n    itemShareInvite(\n      masterSubjectId: $masterSubjectId\n      period: $period\n      itemId: $itemId\n      copyLinkButton: $copyLinkButton\n      description: $description\n      emails: $emails\n    ) {\n      itemShareInvite {\n        shareKey\n        itemId\n        copyLinkButton\n        emails\n        createdAt\n        updatedAt\n        masterSubjectId\n      }\n    }\n  }\n`;\n\nexport const checkShareInviteEmail = gql`\n  query checkShareInviteEmail(\n    $email: String!\n    $itemId: Int!\n    $educationPeriod: Int!\n  ) {\n    checkShareInviteEmail(\n      email: $email\n      itemId: $itemId\n      educationPeriod: $educationPeriod\n    ) {\n      isValid\n      email\n    }\n  }\n`;\n\nexport const itemShares = gql`\n  query getItemShares($masterSubjectId: Int!) {\n    itemShares(masterSubjectId: $masterSubjectId) {\n      itemMetadata {\n        numberOfQuestions\n        numberOfMcq\n        numberOfFrq\n        numberOfTeacherQuestions\n      }\n      assessment {\n        id: itemId\n        title\n        is_assigned: isAssigned\n        is_in_progress: isInProgress\n        units\n      }\n      initId\n      oldItemId\n      itemId\n      ownerId\n      sharerId\n      creatorId\n      shareKey\n      status\n      lastModified\n      updatedAt\n      disabledAt\n      sharer\n      sharedAt\n      isDisabled\n      title\n    }\n  }\n`;\n\nexport const getItemShareInvitesQuery = gql`\n  query getItemShareInvites($masterSubjectId: Int!) {\n    itemShareInvites(masterSubjectId: $masterSubjectId) {\n      itemMetadata {\n        numberOfQuestions\n        numberOfMcq\n        numberOfFrq\n        numberOfTeacherQuestions\n      }\n      assessment {\n        id: itemId\n        title\n        is_assigned: isAssigned\n        is_in_progress: isInProgress\n        units\n      }\n      itemInfo {\n        lastModifiedDate\n        isOwner\n      }\n      initId\n      oldItemId: itemId\n      itemId\n      ownerId: initId\n      creatorId: createdBy\n      shareKey\n      createdBy: createdAt\n      updatedAt\n      sharer: initId\n      sharedAt: updatedAt\n      disabledAt\n      isDisabled\n    }\n  }\n`;\n\nexport const assignmentTimer = gql`\n  query getAssignmentTimer($assignmentId: String, $educationPeriod: String) {\n    assignment(assignmentId: $assignmentId, educationPeriod: $educationPeriod) {\n      id\n      timer\n      isSecure\n      requiresMicWarning\n    }\n  }\n`;\n\nexport const deleteQuestionMutation = gql`\n  mutation DeleteQuestionMutation($itemId: Int!) {\n    retireItem(itemId: $itemId) {\n      ok\n    }\n  }\n`;\n\nexport const getAggregatedSppStats = gql`\n  query getAggregatedSppStats($subjectId: Int!, $itemId: Int!) {\n    aggregatedSppStats(subjectId: $subjectId, itemId: $itemId) {\n      totalStudents\n      submittedStudents\n      stats {\n        school\n        classProgress {\n          className\n          classId\n          assigned\n          totalStudents\n          submittedStudents\n          startedStudents\n          notStartedStudents\n          studentProgress {\n            firstName\n            lastName\n            hasStarted\n            hasSubmitted\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const GeneratePracticeQuiz = gql`\n  query getGeneratePracticeQuiz(\n    $masterSubjectId: Int!\n    $tagCategoryId: Int!\n    $tagsPerformance: [TagPerformance]!\n    $allowedPracticeExams: [Int]!\n    $mcqNum: Int!\n    $frqNum: Int!\n    $excludeInterval: Int!\n  ) {\n    generatePracticeQuiz(\n      masterSubjectId: $masterSubjectId\n      tagCategoryId: $tagCategoryId\n      tagsPerformance: $tagsPerformance\n      allowedPracticeExams: $allowedPracticeExams\n      mcqNum: $mcqNum\n      frqNum: $frqNum\n      excludeInterval: $excludeInterval\n    ) {\n      errors\n      warnings\n      questions {\n        ... on MultipleChoiceQuestion {\n          id\n          itemId\n          isTeacherAuthored\n          __typename\n          tags {\n            id\n            description\n            label\n            __typename\n            categories {\n              id\n              label\n            }\n          }\n        }\n        ... on FreeResponseQuestion {\n          id\n          itemId\n          isTeacherAuthored\n          __typename\n          tags {\n            id\n            description\n            label\n            __typename\n            categories {\n              id\n              label\n            }\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const AutoGenerateQuiz = gql`\n  mutation autoGenerateQuiz(\n    $libraryId: Int!\n    $title: String!\n    $content: JSONString!\n    $autoCreateContent: Boolean\n    $questionIds: String\n    $isGeneratePracticeQuiz: Boolean\n  ) {\n    createQuiz(\n      libraryId: $libraryId\n      title: $title\n      content: $content\n      autoCreateContent: $autoCreateContent\n      questionIds: $questionIds\n      isGeneratePracticeQuiz: $isGeneratePracticeQuiz\n    ) {\n      ok\n      itemId\n    }\n  }\n`;\n\nexport const CreateDynamicAssessment = gql`\n  mutation CreateDynamicQuiz(\n    $masterSubjectId: Int!\n    $title: String!\n    $excludeInterval: Int!\n    $saveReport: Boolean\n    $useDefaultConfiguration: Boolean\n    $allowedPracticeExams: [Int]\n  ) {\n    createDynamicQuiz(\n      masterSubjectId: $masterSubjectId\n      title: $title\n      excludeInterval: $excludeInterval\n      saveReport: $saveReport\n      useDefaultConfiguration: $useDefaultConfiguration\n      allowedPracticeExams: $allowedPracticeExams\n    ) {\n      quizzesDetails {\n        itemId\n        title\n        quizType\n        itemsLength\n      }\n      errors\n      warnings\n      message\n    }\n  }\n`;\n\nexport const AssessmentAssignedInfoQuery = gql`\n  query getAssessmentAssignedInfo($assessmentId: Int, $educationPeriod: Int) {\n    assessmentAssignedInfo(\n      assessmentId: $assessmentId\n      educationPeriod: $educationPeriod\n    ) {\n      assignmentId\n      sectionName\n      groupId\n      scoredDateMin\n      scoredDateMax\n    }\n  }\n`;\n\nexport const AssignmentSessionsStartedAt = gql`\n  query getAssignmentSessionInfo(\n    $assignmentId: String\n    $educationPeriod: String\n  ) {\n    assignment(assignmentId: $assignmentId, educationPeriod: $educationPeriod) {\n      id\n      studentSessions {\n        userId\n        startedAt\n      }\n    }\n  }\n`;\n\nexport const GetFRQResponsesPerQuestionQuery = gql`\n  query frqResponsesPerQuestion($assignmentId: Int!) {\n    frqResponsesPerQuestion(assignmentId: $assignmentId) {\n      quizTitle\n      itemReference\n      sectionTitle\n      questionNumber\n      isMultipart\n      responses {\n        userId\n        lastName\n        firstName\n        response\n        responseImages\n        type\n        part\n        taskLabel\n      }\n    }\n  }\n`;\n\nexport const GetFRQResponsesPerUserQuery = gql`\n  query frqResponsesPerUser($assignmentId: Int!) {\n    frqResponsesPerUser(assignmentId: $assignmentId) {\n      quizTitle\n      userId\n      firstName\n      lastName\n      sectionTitle\n      responses {\n        itemReference\n        response\n        responseImages\n        type\n        part\n        questionNumber\n        taskLabel\n      }\n    }\n  }\n`;\n\nexport const SavePlayerSessionAuditLog = gql`\n  mutation SavePlayerSessionAuditLog(\n    $assignmentId: Int!\n    $userAgent: String!\n    $sessionStatus: String!\n    $sessionUuid: String!\n    $browserVersion: String\n    $browserVersionSupportStatus: String\n  ) {\n    savePlayerSessionAuditLog(\n      assignmentId: $assignmentId\n      userAgent: $userAgent\n      sessionStatus: $sessionStatus\n      sessionUuid: $sessionUuid\n      browserVersion: $browserVersion\n      browserVersionSupportStatus: $browserVersionSupportStatus\n    ) {\n      ok\n    }\n  }\n`;\n\nexport const PlayerSessionAuditLogs = gql`\n  query playerSessionAuditLogs($assignmentId: Int!) {\n    playerSessionAuditLogs(assignmentId: $assignmentId) {\n      id\n      studentId\n      ipAddress\n      userAgent\n      sessionStatus\n      sessionUuid\n      created\n    }\n  }\n`;\n","import { combineReducers } from 'redux';\nimport * as types from 'legacy/src/constants/types';\n\nconst subjects = (state = [], action) => {\n  switch (action.type) {\n    case types.SET_ADMIN_SUBJECTS:\n      return [...action.adminSubjects];\n    default:\n      return state;\n  }\n};\n\nconst info = (state = [], action) => {\n  switch (action.type) {\n    case types.SET_ADMIN_INFO:\n      return { ...action.adminInfo };\n    default:\n      return state;\n  }\n};\n\nconst loading = (state = true, action) => {\n  switch (action.type) {\n    case types.ADMIN_START_LOADING:\n      return action.loading;\n    case types.ADMIN_END_LOADING:\n      return action.loading;\n    default:\n      return state;\n  }\n};\n\nconst adminData = combineReducers({\n  subjects,\n  info,\n  loading,\n});\n\nexport default adminData;\n","import get from 'lodash/get';\nimport {\n  SET_APD_CAROUSEL_DATA,\n  UPDATE_APD_CAROUSEL_DATA,\n} from 'legacy/src/constants/types';\n\nconst initialState = {};\n\nconst apdCarouselData = (\n  state = initialState,\n  { type, payload, subject, videoId },\n) => {\n  switch (type) {\n    case SET_APD_CAROUSEL_DATA:\n      return {\n        ...state,\n        [subject]: payload,\n      };\n    case UPDATE_APD_CAROUSEL_DATA:\n      return {\n        ...state,\n        [subject]: {\n          ...get(state, [subject], {}),\n          [videoId]: {\n            ...get(state, [subject, videoId], {}),\n            providerVideoId: videoId,\n            playTimePercentage: payload.playTimePercentage,\n            watchedPercentage: payload.watchedPercentage,\n          },\n        },\n      };\n    default:\n      return state;\n  }\n};\n\nexport default apdCarouselData;\n","import * as types from 'legacy/src/constants/types';\n\nconst updateAssessmentDataCache = (state = {}, action) => {\n  switch (action.type) {\n    case types.UPDATE_ASSESSMENT_CACHE:\n      return {\n        ...state,\n        [action.itemId]: {\n          ...state[action.itemId],\n          ...action.payload,\n        },\n      };\n    default:\n      return state;\n  }\n};\n\nexport default updateAssessmentDataCache;\n","import {\n  SET_BOOKMARKS,\n  REMOVE_BOOKMARK,\n  ADD_BOOKMARK,\n} from 'legacy/src/constants/types';\n\nconst initialState = [];\n\nconst bookmarks = (state = initialState, { type, payload }) => {\n  switch (type) {\n    case SET_BOOKMARKS:\n      return payload;\n    case ADD_BOOKMARK:\n      return [...state, payload];\n    case REMOVE_BOOKMARK:\n      return state.filter((ref) => ref !== payload);\n    default:\n      return state;\n  }\n};\n\nexport default bookmarks;\n","import * as types from 'legacy/src/constants/types';\nimport { combineReducers } from 'redux';\n\nconst items = (state = [], action) => {\n  switch (action.type) {\n    case types.USER_CLASSES:\n      return action.items || [];\n    default:\n      return state;\n  }\n};\n\nexport default combineReducers({\n  items,\n});\n","import {\n  SET_COURSE_OUTLINE,\n  GET_COURSE_OUTLINE,\n  RESET_COURSE_OUTLINE,\n} from 'legacy/src/constants/types';\n\nconst initialState = {\n  isLoadingSubjectCourseOutline: false,\n};\n\nconst courseOutline = (state = initialState, { type, payload, subject }) => {\n  switch (type) {\n    case GET_COURSE_OUTLINE:\n      return {\n        ...state,\n        isLoadingSubjectCourseOutline: payload.loading,\n      };\n    case SET_COURSE_OUTLINE:\n      return {\n        ...state,\n        [subject]: payload,\n        isLoadingSubjectCourseOutline: false,\n      };\n    case RESET_COURSE_OUTLINE:\n      return {\n        isLoadingSubjectCourseOutline: false,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default courseOutline;\n","import { combineReducers } from 'redux';\nimport * as types from 'legacy/src/constants/types';\nimport { pageLoading, pageReloading } from 'legacy/src/actions/commonActions';\nimport { authorize, login } from 'legacy/src/components/auth/actions';\n\nconst rendering = (state = true, action) => {\n  switch (action.type) {\n    case login.TRIGGER:\n    case authorize.TRIGGER:\n    case types.LOGOUT:\n    case pageLoading.TRIGGER:\n      return true;\n    case pageLoading.FULFILL:\n    case login.SUCCESS:\n    case authorize.SUCCESS:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst reloading = (state = false, action) => {\n  switch (action.type) {\n    case pageReloading.TRIGGER:\n      return true;\n    case pageReloading.FULFILL:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst currentState = combineReducers({\n  rendering,\n  reloading,\n});\n\nexport default currentState;\n","import * as types from 'legacy/src/constants/types';\n\nexport const flagList = {\n  areFeatureFlagsLoaded: false,\n  show_attestation_confirmation_dialog: false,\n  ProgressDashboard_GroupParticipation: false,\n  secure_browser: false,\n  secure_browser_preap: false,\n  course_summary_points_possible: true,\n  course_summary_export_button: false,\n  live_status_report: false,\n  edit_existing_question: false,\n  show_usage_tab_for_admins_coords: false,\n  'FY-9219-teacher-annotation': false,\n  enable_stimulus_filter_on_qb_create: false,\n  qb_elastic_search_items_create: true,\n  qb_elastic_search_items_full_text: true,\n  remove_action_column: true,\n  questions_list_skill_column: false,\n  qb_print_preview: false,\n  remove_question_from_preview: false,\n  enable_quiz_auto_save: false,\n  cb_session_expiration_threshold: 90,\n  cb_session_expiration_time: 5,\n  cb_session_expiration_check_before_take_assignment: false,\n  cb_session_expiration_check: true,\n  ppc_custom_name: false,\n  show_frq_responses: false,\n  show_frq_responses_student: false,\n  cb_session_expiration_logout_check: false,\n  qb_create_add_all: false,\n  copy_assignment_details: false,\n  show_student_practice_icon: false,\n  multisubjectschool_export: false,\n  paperscorer_answer_sheets: false,\n  show_assessment_practice_icon: false,\n  student_practice_blank_message_and_order: false,\n  student_reference_banner: false,\n  enable_audio_playback_complete: false,\n  scoring_rubric_cumulative_score: false,\n  show_education_period_filter: false,\n  scoring_rubric_disable_auto_save_on_review: false,\n  AP_AY_dropdown_at_top: false,\n  show_global_nav: false,\n  quiz_builder: false,\n  fy_13178_show_new_exam_alignment_text: false,\n  icon_preview_update: false,\n  show_gray_top_right_preview_player: false,\n  edit_cb_provided_question: false,\n  double_arrow: false,\n  // see https://academicmerit.atlassian.net/browse/FY-14979\n  levity_use_createtime: false,\n  pacing: false,\n  review_mode: false,\n  results_distractors: false,\n  show_lab_edition_downloads: false,\n  show_related_videos_carousel: false,\n  secure_firewall_check_interval_duration_hours: 24,\n  secure_firewall_check_enable: true,\n  show_related_videos: false,\n  student_coursesummary_detail: false,\n  edit_existing_question_frq: false,\n  ap_daily_videos_admin_usage: false,\n  show_0pct_watched: false,\n  copy_assessments: false,\n  individual_student_assignment: false,\n  preap_outline_use_resources_route: false,\n  outline_search_instructional_resource_search_text: false,\n  reorder_questions: false,\n  edit_question_assessment: false,\n  iPad_LDB_message: false,\n  progress_actions_dropdown: false,\n  preap_teacher_impersonates_student: false,\n  preap_quick_tips: false,\n  assign_to_popover_default_opened: false,\n  PS_links_in_actions_dropdown: false,\n  PS_download_AS_link: false,\n  PS_show_tips: false,\n  paperscorer_allow_unsubmit: false,\n  show_paperscorer_progress: false,\n  reshape_two_column_questions: false,\n  reshape_two_column_questions_preap: false,\n  copy_question_assessment: false,\n  copy_question_preview: false,\n  websocket: false,\n  show_ap_stories_in_user_menu: false,\n  show_video_mark_complete: false,\n  export_all_assignments: false,\n  results_other_tag_columns: false,\n  limit_report_years: false,\n  admin_report_csp_group_csv_export: false,\n  show_my_assignments_date_picker: false,\n  qb_filter_include_options: false,\n  show_qb_build_quiz_most_recent_unassigned: false,\n  poc_qb_preview_approach_gama: false,\n  hometq_preview_approach_gama: false,\n  cr_show_practice_exams: false,\n  mastery_report: true,\n  ap_qb_preview_load_more: 3,\n  student_practice_problems: false,\n  results_assignment_actions: false,\n  qb_list_column_popover: false,\n  ps_multipage_frq_responses: false,\n  my_assignment_page_size: 30,\n  qb_list_sort_priority: false,\n  disable_ppc_auto_assign: false,\n  spp_filter_by_school: false,\n  spp_filter_by_subject: false,\n  question_bank_tabs: false,\n  shared_assessments: false,\n  dab_for_pe_p1: false,\n  dab_for_micro: false,\n  dab_for_macro: false,\n  internal_dab_ui: false,\n  save_report_dab: false,\n  retire_qb_questions: false,\n  scramble_questions_per_student: false,\n  preap_sso_professional_learning: false,\n  hide_pl_links_for_preap: false,\n  qb_cached_lrn_questions_limit: 30,\n  ap_sources: false,\n  hierachical_qb_filters: false,\n  my_assignments_pdf: false,\n  labels_dnd: false,\n  no_reload_remove_label: false,\n  qb_question_set_support: false,\n  show_maintenance_page: false,\n  no_reload_update_label: false,\n  individual_student_assignment_settings: false,\n  bluebook_ui: false,\n  threeplay_plugin: false,\n  set_student_app_cues: false,\n  assignments_overview_info_panel: false,\n  immediate_feedback: false,\n  generate_practice_quiz: false,\n  use_new_grouped_actions: false,\n  disable_lazy_load: false,\n  enter_scores_expansion: false,\n  allow_late_submission: false,\n  show_assessment_audit: false,\n  show_responses_by_question_part_pdf_action: false,\n  bluebook_ui_highlight_enabled: false,\n  new_assign_modal_cas_button: false,\n  updated_timer_controls: false,\n  student_player_defer_render: true,\n  bluebook_ui_highlight_acknowledgement_enabled: false,\n  refactored_qb_inclusion_filters: false,\n  bluebook_ui_keyboard_shortcuts: false,\n  bluebook_ui_calculator: false,\n  bluebook_ui_shortcuts_calculator_rs_ack_enabled: false,\n  scoring_improvements: false,\n  wbl_print_mode: false,\n  enable_allow_save_exit_option: false,\n  admin_report: false,\n  error_notification_known_issue: false,\n  use_last_wistia_player: false,\n  bulk_delete_my_quizzes: false,\n  attestations_25_26: false,\n  attestations_26_27: false,\n  preap_disable_assign_action: true,\n  contact_us_AP_Video: false,\n  security_attestation_25_26: false,\n  security_attestation_26_27: false,\n  enable_print_mode_for_mcq_pcs_and_lc: false,\n  redis_cache_course_outliine: false,\n  preap_advanced_settings_modal: false,\n  score_frq_authoring_cards: false,\n  character_toggle: false,\n  use_assignment_scores: false,\n  FIGSS_language_toggle: false,\n  allow_audio_record_with_ldb: false,\n  bluebook_ui_rs_available_new_subjects_enabled: false,\n  bluebook_project_qa: false,\n  bluebook_project_presentation: false,\n  stacked_questions_report: false,\n  assignment_status_polling_interval: 30,\n  timed_assignment_status_polling_interval: 10,\n  is_subject_restricted: false,\n  is_professional_learning_suppressed: false,\n  consolidated_assignment_overview_page: false,\n  consolidated_assignment_overview_refetch_interval_in_seconds: 10,\n  is_duplicate_quiz_suppressed: false,\n  is_generate_practice_suppressed: false,\n  dynamically_correct_progress_vector: false,\n  keyboard_audio_button: false,\n  ldb_swipe_away_guard_enabled: false,\n  debug_ldb: false,\n  telemetry_use_ecs_backend: false,\n  learning_checkpoint_summary_tab: false,\n  restrict_topic_questions_for_course: false,\n  bb_lightbox: false,\n  enter_scores_form_v2: false,\n};\n\nexport const flagListWithConfig = {\n  student_cb_alert: {\n    treatment: false,\n    config: {},\n  },\n  teacher_authoring_cb_rubric_templates: {\n    treatment: false,\n    config: {},\n  },\n  maintenance_banner: {\n    treatment: false,\n    config: {},\n  },\n  assign_modal_wl_mt: {\n    treatment: false,\n    config: {},\n  },\n  assign_modal_remove_immediate_feedback: {\n    treatment: false,\n    config: '{}',\n  },\n};\n\nconst sort_object_by_keys = (new_obj) =>\n  Object.keys(new_obj)\n    .sort()\n    .reduce((obj, key) => {\n      obj[key] = new_obj[key];\n      return obj;\n    }, {});\n\nconst featureFlag = (\n  state = { ...flagList, ...flagListWithConfig },\n  action,\n) => {\n  switch (action.type) {\n    case types.SET_FEATURE_FLAG:\n      // javascript in the browser shows keys in the order of entry just sorting the object so its easier to hunt down\n      // values in redux devtools\n      return sort_object_by_keys({\n        ...state,\n        ...action.payload.flags,\n      });\n    default:\n      return state;\n  }\n};\n\nexport default featureFlag;\n","import { createStore, combineReducers, applyMiddleware, compose } from 'redux';\nimport { leanReducer } from 'lean-redux';\nimport { createLogger } from 'redux-logger';\nimport { thunk } from 'redux-thunk';\nimport { REDUX_LOGGING_ENABLED } from 'legacy/src/constants/config';\nimport { all } from 'redux-saga/effects';\nimport { routinePromiseWatcherSaga } from 'redux-saga-routines';\nimport createSagaMiddleware from 'redux-saga';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport hardSet from 'redux-persist/lib/stateReconciler/hardSet';\n\n/* reducers */\nimport wizards from 'legacy/packages/wizards/src/reducers';\nimport { reducer as formReducer } from 'redux-form';\nimport apstudent from 'legacy/src/components/apstudent/handlers/state/reducer';\nimport assessment from 'legacy/src/components/assessment/state/reducer';\nimport assignItem from 'legacy/src/components/assessment/AssignItem/state/reducer';\nimport filters from 'legacy/src/components/assessment/Filters/state/reducer';\nimport itemTags from 'legacy/src/utility/ItemTags/state/reducer';\nimport submissionData from 'legacy/src/utility/withSubmissionData/reducer';\nimport impersonatingSaga from 'legacy/src/components/impersonating/state/sagas';\nimport filterControls from 'legacy/src/utility/Filters/reducers';\nimport authReducer from 'legacy/src/components/auth/reducer';\nimport impersonating, {\n  sagaReducer as impersonatingSagaReducer,\n} from 'legacy/src/components/impersonating/state/reducer';\nimport visitedSubunits from 'chameleon/ui-stack/ui/units/subunits-list/state/reducers';\nimport visitedUnits from 'chameleon/src/components/SidebarWrapperTwoLevels/state/reducers';\nimport questionPreview from 'chameleon/src/components/QuestionPreviewWrapper/state/reducers.js';\nimport itemShareInvites from 'chameleon/src/reducers/itemShareInvites';\nimport itemShares from 'chameleon/src/reducers/itemShares';\nimport assessmentSummary from 'chameleon/src/reducers/assessmentSummary';\nimport dashboardAssignments from 'chameleon/src/components/assignments/Dashboard/state/reducer';\n\n/* end */\nimport assessmentSaga from 'legacy/src/components/assessment/state/sagas';\nimport itemTagsSaga from 'legacy/src/utility/ItemTags/state/sagas';\nimport submissionDataSaga from 'legacy/src/utility/withSubmissionData/sagas';\nimport authSaga from 'legacy/src/components/auth/sagas';\nimport paperscorerSaga from 'legacy/src/components/paperscorer/sagas';\nimport paperscorer from './paperscorer';\nimport teacherAssignment, {\n  assignmentStudentsStatus,\n} from './teacherAssignment';\nimport apdCarouselData from './apdCarousel';\nimport searchedResources from './searchedResources';\nimport resourceFilters from './resourceFilters';\nimport sharedResources from './sharedResources';\nimport courseOutline from './courseOutline';\nimport skillSummary from './skillSummary';\nimport assessmentDataCache from './assessmentData';\nimport questionBySharedStimulus from './questionBySharedStimulus';\nimport bookmarks from './bookmarks';\nimport questionPreviewToggle from './questionPreviewToggle';\nimport featureFlag from './featureFlag';\nimport admin from './admin';\nimport nav from './nav';\nimport subject from './subject';\nimport userData from './me';\nimport classes from './classes';\nimport userSubjects from './userSubjects';\nimport currentState from './currentState';\nimport entrypointSaga from '../sagas';\nimport studentsBySection from './studentsBySection';\nimport secureAssignmentIds from './secureAssignmentIds';\n\n// create the saga middleware\nexport const sagaMiddleware = createSagaMiddleware();\n\nfunction createRootReducer(apolloClient, initialState = {}) {\n  // notice how we now only export the rootSaga\n  // single entry point to start all Sagas at once\n  function* rootSaga() {\n    yield all([\n      assessmentSaga(),\n      routinePromiseWatcherSaga(),\n      itemTagsSaga(),\n      submissionDataSaga(),\n      authSaga(),\n      entrypointSaga(),\n      paperscorerSaga(),\n      impersonatingSaga(),\n    ]);\n  }\n\n  // apolloClient.middleware is responsible for setting APOLLO_QUERY_INIT, APOLLO_QUERY_RESULT, and APOLLO_QUERY_STOP in the redux store\n  const middleware = [apolloClient.middleware(), thunk, sagaMiddleware];\n\n  leanReducer.setGlobalScope('lean');\n  const reducers = combineReducers({\n    apollo: apolloClient.reducer(),\n    form: formReducer,\n    userData,\n    currentState,\n    admin,\n    wizards,\n    questionPreviewToggle,\n    nav,\n    subject,\n    apstudent,\n    assessment,\n    assignItem,\n    filters,\n    classes,\n    userSubjects,\n    lean: leanReducer,\n    featureFlag,\n    itemTags,\n    questionBySharedStimulus,\n    assessmentDataCache,\n    submissionData,\n    skillSummary,\n    filterControls,\n    courseOutline,\n    apdCarouselData,\n    auth: authReducer,\n    sharedResources,\n    resourceFilters,\n    searchedResources,\n    teacherAssignment,\n    paperscorer,\n    assignmentStudentsStatus,\n    impersonating,\n    impersonatingUser: impersonatingSagaReducer,\n    visitedSubunits: persistReducer(\n      {\n        key: 'visited-subunits',\n        storage,\n        version: 1,\n        stateReconciler: hardSet,\n      },\n      visitedSubunits,\n    ),\n    visitedUnits: persistReducer(\n      {\n        key: 'visited-units',\n        storage,\n        version: 1,\n        stateReconciler: hardSet,\n      },\n      visitedUnits,\n    ),\n    studentsBySection,\n    bookmarks,\n    questionPreview,\n    itemShareInvites,\n    itemShares,\n    assessmentSummary,\n    secureAssignmentIds,\n    dashboardAssignments,\n  });\n\n  if (REDUX_LOGGING_ENABLED) {\n    middleware.push(createLogger());\n  }\n\n  const store = createStore(\n    reducers,\n    initialState, // initial state\n    compose(\n      applyMiddleware(...middleware),\n      // devToolsExtension setting\n      typeof window.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined'\n        ? window.__REDUX_DEVTOOLS_EXTENSION__({\n            name: 'AP Classroom Chameleon',\n            // false is the default\n            trace: process.env.ENV == 'prod' ? false : true,\n            // 50 is the default\n            maxAge: process.env.ENV == 'prod' ? 50 : 150,\n          })\n        : (f) => f,\n    ),\n  );\n\n  // Run the saga\n  sagaMiddleware.run(rootSaga);\n\n  return store;\n}\n\nexport default createRootReducer;\n","import { combineReducers } from 'redux';\nimport * as types from 'legacy/src/constants/types';\nimport { authorize, login } from 'legacy/src/components/auth/actions';\nimport {\n  isAfterEducationPeriodExpires,\n  isCurrentEducationPeriod,\n} from '../utility/EducationPeriodCalculations';\nimport { isImpersonating } from 'legacy/src/components/impersonating/utils';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nfunction checkIfAuthenticated() {\n  const token = window.localStorage.getItem('account_access_token');\n  return !(token === null || token === undefined);\n}\n\n/**\n * Overrides the ssoLogin for impersonated student to bypass Levity\n * @param {object} me The me query response from redux\n * @returns {object} me with new ssoLogin\n *\n * */\nconst setImpersonatingMeOverrides = (me) => {\n  if (isImpersonating()) {\n    return {\n      ...me,\n      ssoLogin: 'Not SSO',\n    };\n  }\n\n  return me;\n};\n\nconst isAuthenticated = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      return checkIfAuthenticated();\n    case authorize.SUCCESS:\n      return checkIfAuthenticated();\n    default:\n      return state;\n  }\n};\n\nconst isAdmin = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.ADMIN);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.ADMIN);\n    default:\n      return state;\n  }\n};\n\nconst isCoordinator = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.COORDINATOR);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.COORDINATOR);\n    default:\n      return state;\n  }\n};\n\nconst isStaff = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.STAFF);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.STAFF);\n    default:\n      return state;\n  }\n};\n\nconst isDemo = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.DEMO);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.DEMO);\n    default:\n      return state;\n  }\n};\n\nconst isStudent = (state = false, action) => {\n  switch (action.type) {\n    case types.LOGOUT:\n      return false;\n    case login.FAILURE:\n      return false;\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.STUDENT);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.STUDENT);\n    default:\n      return state;\n  }\n};\n\nconst isTeacher = (state = false, action) => {\n  switch (action.type) {\n    case types.LOGOUT:\n      return false;\n    case login.FAILURE:\n      return false;\n    case login.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.TEACHER);\n    case authorize.SUCCESS:\n      return action.payload.me.userRole.includes(UserRoles.TEACHER);\n    default:\n      return state;\n  }\n};\n\nconst me = (state = false, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      if (action.payload) {\n        return setImpersonatingMeOverrides(action.payload.me);\n      }\n      return state;\n    case types.SIGNUP_SUCCESS:\n      if (action.payload) {\n        return setImpersonatingMeOverrides(action.payload.me);\n      }\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n      return false;\n    case types.SIGNUP_ERROR:\n      return false;\n    case types.LOGOUT_SUCCESS:\n      return false;\n    case authorize.SUCCESS:\n      if (action.payload) {\n        return setImpersonatingMeOverrides(action.payload.me);\n      }\n      return state;\n    case types.SAVE_PREFERENCE_SUCCESS:\n      if (action.payload) return action.payload;\n      return state;\n    default:\n      return state;\n  }\n};\n\nconst teacherSubjects = (state = [], action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      if (action.payload) return action.payload.teacherSubjects || [];\n      return state;\n    case types.SIGNUP_SUCCESS:\n      if (action.payload) return action.payload.teacherSubjects || [];\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return [];\n    case authorize.SUCCESS:\n      if (action.payload) return action.payload.teacherSubjects || [];\n      return state;\n    default:\n      return state;\n  }\n};\n\nconst studentSubjects = (state = [], action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      if (action.payload) return action.payload.studentSubjects || [];\n      return state;\n    case types.SIGNUP_SUCCESS:\n      if (action.payload) return action.payload.studentSubjects || [];\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return [];\n    case authorize.SUCCESS:\n      if (action.payload) return action.payload.studentSubjects || [];\n      return state;\n    default:\n      return state;\n  }\n};\n\nconst adminSubjects = (state = [], action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      if (action.payload) return action.payload.adminSubjects || [];\n      return state;\n    case types.SIGNUP_SUCCESS:\n      if (action.payload) return action.payload.adminSubjects || [];\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return [];\n    case authorize.SUCCESS:\n      if (action.payload) return action.payload.adminSubjects || [];\n      return state;\n    default:\n      return state;\n  }\n};\n\nconst educationPeriod = (state = {}, action) => {\n  switch (action.type) {\n    case login.SUCCESS:\n      if (action.payload) return action.payload.educationPeriod || {};\n      return state;\n    case types.SIGNUP_SUCCESS:\n      if (action.payload) return action.payload.educationPeriod || {};\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return {};\n    case authorize.SUCCESS:\n      if (action.payload) return action.payload.educationPeriod || {};\n      return state;\n    default:\n      return state;\n  }\n};\n\nconst chosenEducationPeriodCode = (state = '', action) => {\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload) return action.payload.educationPeriodCode || '';\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return '';\n    default:\n      return state;\n  }\n};\n\nconst isContentExpiring = (state = false, action) => {\n  const isExpiring = (edCode, nextEdCode, periods) =>\n    isCurrentEducationPeriod(edCode, periods) &&\n    isCurrentEducationPeriod(nextEdCode, periods);\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload) {\n        const edCode = action.payload.educationPeriodCode;\n        const nextCode = (parseInt(edCode, 10) + 1).toString();\n        const { allEducationPeriods } = action.payload;\n        return isExpiring(edCode, nextCode, allEducationPeriods);\n      }\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst isNewContentAvailable = (state = false, action) => {\n  const isAvailable = (edCode, previousCode, periods) =>\n    isCurrentEducationPeriod(edCode, periods) &&\n    isCurrentEducationPeriod(previousCode, periods);\n\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload) {\n        const edCode = action.payload.educationPeriodCode;\n        const previousCode = (parseInt(edCode, 10) - 1).toString();\n        const { allEducationPeriods } = action.payload;\n        return isAvailable(edCode, previousCode, allEducationPeriods);\n      }\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst hasAccessToNextYear = (state = false, action) => {\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload) {\n        const {\n          educationPeriod: { nextEducationPeriod },\n          subjectEducationPeriods,\n        } = action.payload;\n        const nextEducationPeriodCode =\n          subjectEducationPeriods &&\n          subjectEducationPeriods.find(\n            (period) => period.id === nextEducationPeriod.id,\n          );\n\n        return !!nextEducationPeriodCode;\n      }\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst isNewTeacher = (state = false, action) => {\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload) {\n        const {\n          educationPeriod: { currentEducationPeriod },\n          subjectEducationPeriods,\n        } = action.payload;\n        const currentEducationPeriodCode =\n          subjectEducationPeriods &&\n          subjectEducationPeriods.find(\n            (period) => period.id === currentEducationPeriod.id,\n          );\n\n        return !currentEducationPeriodCode;\n      }\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst isContentExpired = (state = false, action) => {\n  switch (action.type) {\n    case types.SET_DEFAULT_EDUCATION_PERIOD:\n      if (action.payload)\n        return isAfterEducationPeriodExpires(\n          action.payload.educationPeriodCode,\n          action.payload.allEducationPeriods,\n        );\n      return state;\n    case types.LOGOUT_ERROR:\n    case login.FAILURE:\n    case types.SIGNUP_ERROR:\n    case types.LOGOUT_SUCCESS:\n      return false;\n    default:\n      return state;\n  }\n};\n\nconst userEducationPeriods = (state = [], action) => {\n  switch (action.type) {\n    case types.SET_USER_EDUCATION_PERIODS:\n      return action.payload;\n    default:\n      return state;\n  }\n};\n\nconst meReducer = combineReducers({\n  isTeacher,\n  isStudent,\n  isAdmin,\n  isCoordinator,\n  isStaff,\n  isDemo,\n  isAuthenticated,\n  isImpersonating,\n  me,\n  teacherSubjects,\n  studentSubjects,\n  adminSubjects,\n  educationPeriod,\n  chosenEducationPeriodCode,\n  userEducationPeriods,\n  isContentExpiring,\n  isNewContentAvailable,\n  hasAccessToNextYear,\n  isNewTeacher,\n  isContentExpired,\n});\n\nexport default meReducer;\n","import * as types from 'legacy/src/constants/types';\nimport { combineReducers } from 'redux';\n\nconst prevLocation = (state = '', action) => {\n  if (action.type === types.LOCATION_CHANGE) {\n    return action.location;\n  }\n  return state;\n};\n\nconst nav = combineReducers({\n  prevLocation,\n});\n\nexport default nav;\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport {\n  downloadAllAnswerSheets,\n  downloadIndividualAnswerSheet,\n  downloadGeneratedAnswerSheet,\n  generateAnswerSheets,\n  generateAnswerSheetsPreview,\n  initiateDownloadForUser,\n  resetAnswerSheetsPreview,\n} from 'legacy/src/actions/paperscorer';\n\nconst initialState = {\n  allAnswerSheetUrls: [],\n  answerSheetsPreviewUrl: '',\n  answerSheetsUrl: {},\n  error: null,\n  individualAnswerSheetUrl: '',\n  loadingIndividualAnswerSheet: false,\n  loadingAllAnswerSheets: false,\n  loadingAnswerSheetsPreview: false,\n  loadingGeneratedAnswersheet: false,\n  generatedAnswersheetUrl: '',\n};\n\nconst reducer = createReducer(initialState, {\n  [generateAnswerSheets.SUCCESS]: (state, { payload }) => ({\n    ...state,\n    answerSheetsUrl: payload,\n  }),\n  [resetAnswerSheetsPreview.TRIGGER]: (state) => ({\n    ...state,\n    answerSheetsPreviewUrl: initialState.answerSheetsPreviewUrl,\n  }),\n  [generateAnswerSheetsPreview.TRIGGER]: (state) => ({\n    ...state,\n    loadingAnswerSheetsPreview: true,\n  }),\n  [generateAnswerSheetsPreview.SUCCESS]: (state, { payload }) => ({\n    ...state,\n    answerSheetsPreviewUrl: payload,\n    loadingAnswerSheetsPreview: false,\n  }),\n  [generateAnswerSheetsPreview.FAILURE]: (state) => ({\n    ...state,\n    loadingAnswerSheetsPreview: false,\n  }),\n  [downloadAllAnswerSheets.TRIGGER]: (state) => ({\n    ...state,\n    loadingAllAnswerSheets: true,\n  }),\n  [downloadAllAnswerSheets.SUCCESS]: (state, { payload }) => ({\n    ...state,\n    allAnswerSheetUrls: payload.form,\n    loadingAllAnswerSheets: false,\n  }),\n  [downloadAllAnswerSheets.FAILURE]: (state, { payload }) => ({\n    ...state,\n    error: payload,\n    loadingAllAnswerSheets: false,\n  }),\n  [downloadIndividualAnswerSheet.TRIGGER]: (state) => ({\n    ...state,\n    loadingIndividualAnswerSheet: true,\n  }),\n  [downloadIndividualAnswerSheet.SUCCESS]: (state, { payload }) => ({\n    ...state,\n    individualAnswerSheetUrl: payload.form,\n    loadingIndividualAnswerSheet: false,\n  }),\n  [downloadIndividualAnswerSheet.FAILURE]: (state, { payload }) => ({\n    ...state,\n    error: payload,\n    loadingIndividualAnswerSheet: false,\n  }),\n  [downloadGeneratedAnswerSheet.TRIGGER]: (state) => ({\n    ...state,\n    loadingGeneratedAnswersheet: true,\n  }),\n  [downloadGeneratedAnswerSheet.SUCCESS]: (state, { payload }) => ({\n    ...state,\n    generatedAnswersheetUrl: payload,\n  }),\n  [downloadGeneratedAnswerSheet.FAILURE]: (state, { payload }) => ({\n    ...state,\n    error: payload,\n    loadingGeneratedAnswersheet: false,\n  }),\n  [initiateDownloadForUser.SUCCESS]: (state) => ({\n    ...state,\n    loadingGeneratedAnswersheet: false,\n  }),\n  [initiateDownloadForUser.FAILURE]: (state, { payload }) => ({\n    ...state,\n    error: payload,\n    loadingGeneratedAnswersheet: false,\n  }),\n});\n\nexport default reducer;\n","import * as types from 'legacy/src/constants/types';\n\nconst questionBySharedStimulus = (state = {}, action) => {\n  switch (action.type) {\n    case types.SET_QUESTION_BY_STIMULUS:\n      return {\n        ...state,\n        [action.stimulus]: action.payload,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default questionBySharedStimulus;\n","import { combineReducers } from 'redux';\nimport * as types from '../constants/types';\n\nconst toggle = (state = false, action) => {\n  switch (action.type) {\n    case types.QUESTION_PREVIEW_TOGGLE:\n      return action.expanded;\n    default:\n      return state;\n  }\n};\n\nconst item = (\n  state = {\n    id: 0,\n    index: 0,\n    store: '',\n  },\n  action,\n) => {\n  switch (action.type) {\n    case types.QUESTION_ITEM_ID:\n      if (action.item) {\n        return action.item;\n      }\n      return state;\n\n    default:\n      return state;\n  }\n};\n\nexport default combineReducers({\n  toggle,\n  item,\n});\n","import {\n  FETCH_RESOURCE_FILTERS_START,\n  FETCH_RESOURCE_FILTERS_SUCCESS,\n  FETCH_RESOURCE_FILTERS_FAILED,\n} from 'legacy/src/constants/types';\n\nconst initialState = {\n  filters: {},\n  isFetching: false,\n  errorMessage: '',\n};\n\nconst resourceFilters = (state = initialState, action) => {\n  const { type, payload } = action;\n  const { filters, errorMessage } = payload || {};\n\n  switch (type) {\n    case FETCH_RESOURCE_FILTERS_START:\n      return {\n        ...state,\n        isFetching: true,\n        errorMessage: '',\n      };\n    case FETCH_RESOURCE_FILTERS_SUCCESS:\n      return {\n        ...state,\n        isFetching: false,\n        filters,\n      };\n    case FETCH_RESOURCE_FILTERS_FAILED:\n      return {\n        ...state,\n        isFetching: false,\n        errorMessage,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default resourceFilters;\n","import {\n  SEARCH_RESOURCES_START,\n  SEARCH_RESOURCES_SUCCESS,\n  SEARCH_RESOURCES_FAILED,\n  SEARCH_RESOURCES_RESET,\n} from 'legacy/src/constants/types';\n\nconst initialState = {\n  resources: [],\n  isFetching: false,\n  errorMessage: '',\n  isDefault: true,\n  isFetchingTopicQuestions: false,\n};\n\nconst searchedResources = (state = initialState, action) => {\n  const { type, payload } = action;\n  const { resources, errorMessage } = payload || {};\n\n  switch (type) {\n    case SEARCH_RESOURCES_START:\n      return {\n        ...state,\n        isDefault: false,\n        resources: [],\n        isFetching: true,\n        errorMessage: '',\n      };\n    case SEARCH_RESOURCES_SUCCESS:\n      return {\n        ...state,\n        isFetching: false,\n        resources,\n      };\n    case SEARCH_RESOURCES_FAILED:\n      return {\n        ...state,\n        isFetching: false,\n        errorMessage,\n      };\n    case SEARCH_RESOURCES_RESET:\n      return initialState;\n    default:\n      return state;\n  }\n};\n\nexport default searchedResources;\n","import * as types from 'legacy/src/constants/types';\n\nconst secureAssignmentIds = (state = {}, action) => {\n  switch (action.type) {\n    case types.SET_SECURE_ASSIGNMENT_IDS:\n      return action.secureAssignmentIds || {};\n    default:\n      return state;\n  }\n};\n\nexport default secureAssignmentIds;\n","import {\n  FETCH_SHARED_RESOURCE_START,\n  FETCH_SHARED_RESOURCE_SUCCESS,\n  FETCH_SHARED_RESOURCE_FAILED,\n  UPDATE_SHARED_RESOURCE_STATUS,\n} from 'legacy/src/constants/types';\n\nconst initialState = {\n  resources: [],\n  isFetching: false,\n  errorMessage: '',\n};\n\nconst removeSharedResource = (resources, resourceId) =>\n  resources.filter((resource) => resource.id !== resourceId);\n\nconst updateSharedResources = (resources, resourceId, watchStatus) =>\n  resources.map((resource) => {\n    if (resource.id === resourceId && watchStatus === 'STARTED') {\n      return {\n        ...resource,\n        status: watchStatus,\n        message: `Continue ${resource.displayName}`,\n      };\n    }\n    return resource;\n  });\n\nconst sharedResources = (state = initialState, action) => {\n  const { type, payload } = action;\n  const { resourceId, watchStatus, errorMessage } = payload || {};\n  const isComplete = watchStatus === 'COMPLETE';\n  const { resources } = state;\n  const updatedResources = isComplete\n    ? resourceId && removeSharedResource(resources, resourceId)\n    : resourceId && updateSharedResources(resources, resourceId, watchStatus);\n  switch (type) {\n    case FETCH_SHARED_RESOURCE_START:\n      return {\n        ...state,\n        resources: [],\n        isFetching: true,\n        errorMessage: '',\n      };\n    case FETCH_SHARED_RESOURCE_SUCCESS:\n      return {\n        ...state,\n        isFetching: false,\n        resources: payload,\n      };\n    case FETCH_SHARED_RESOURCE_FAILED:\n      return {\n        ...state,\n        isFetching: false,\n        errorMessage,\n      };\n    case UPDATE_SHARED_RESOURCE_STATUS:\n      return {\n        ...state,\n        resources: updatedResources,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default sharedResources;\n","import * as types from 'legacy/src/constants/types';\n\nconst initialState = {\n  date: '',\n};\n\nconst skillSummary = (state = initialState, action) => {\n  switch (action.type) {\n    case types.SET_SKILL_SUMMARY_UPDATED_AT:\n      return {\n        ...state,\n        date: action.payload,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default skillSummary;\n","import * as types from 'legacy/src/constants/types';\nimport { isEmpty } from 'lodash';\nimport { getActiveSubject } from './subject';\n\nconst studentsBySection = (state = false, action) => {\n  switch (action.type) {\n    case types.STUDENTS_BY_SECTION:\n      const { userData, params } = action;\n\n      if (!userData && !params) {\n        return false;\n      }\n\n      const activeSubject = getActiveSubject(userData, params);\n      if (isEmpty(activeSubject)) {\n        return {};\n      }\n\n      const { classes } = activeSubject;\n\n      const studentsBySection = classes.reduce((acc, currentClass) => {\n        acc[parseInt(currentClass.id, 10)] = currentClass.students.map(\n          (student) => ({\n            ...student,\n            id: parseInt(student.id, 10),\n          }),\n        );\n        return acc;\n      }, {});\n\n      return studentsBySection;\n  }\n\n  return state;\n};\n\nexport default studentsBySection;\n","import { combineReducers } from 'redux';\nimport * as types from 'legacy/src/constants/types';\nimport { subjectsThatUseBluebook } from 'chameleon/src/constants/subjects';\nimport { find, isEmpty } from 'lodash';\n\nexport const getUserSubjects = (userData) =>\n  !!userData.me &&\n  (userData.isStudent\n    ? userData.studentSubjects\n    : userData.isAdmin || userData.isCoordinator\n      ? userData.adminSubjects\n      : userData.teacherSubjects);\n\nexport const getActiveSubject = (userData, params) =>\n  find(getUserSubjects(userData), ({ masterSubjectId, id }) => {\n    const subject_id =\n      userData.isAdmin || userData.isCoordinator ? masterSubjectId || id : id;\n    return Number(subject_id) === Number(params.subject);\n  });\n\nexport const subjectUsesBlueBookDigitalExam = (masterSubjectId) =>\n  subjectsThatUseBluebook.includes(Number(masterSubjectId));\n\nconst data = (state = false, action) => {\n  switch (action.type) {\n    case types.SUBJECT_MAPPING:\n      const { userData, params } = action;\n      const activeSubject = getActiveSubject(userData, params);\n      if (isEmpty(activeSubject)) {\n        return false;\n      }\n\n      let subject = { ...activeSubject };\n      if (userData.isAdmin || userData.isCoordinator) {\n        subject.id = subject.masterSubjectId;\n      }\n\n      subject.useBluebookDigitalExam = subjectUsesBlueBookDigitalExam(\n        subject.id,\n      );\n\n      return {\n        ...subject,\n        isPreApSubject: activeSubject.subjectProgram === types.PreAP,\n      };\n  }\n\n  return state;\n};\n\nconst subjectReducer = combineReducers({\n  data,\n});\n\nexport default subjectReducer;\n","import omit from 'lodash/omit';\nimport {\n  FETCH_ASSIGNMENT_DATA_SUCCESS,\n  FETCH_ASSIGNMENT_DATA_FAILED,\n  FETCH_ASSIGNMENT_DATA_START,\n  FETCH_ASSIGNMENT_STUDENTS_STATUS_FAILED,\n  FETCH_ASSIGNMENT_STUDENTS_STATUS_START,\n  FETCH_ASSIGNMENT_STUDENTS_STATUS_SUCCESS,\n  REMOVE_ASSIGNMENT_STUDENTS,\n  SET_TEACHER_VIEW_SCORING_RUBRIC,\n} from 'legacy/src/constants/types';\n\nconst teacherAssignmentInitialState = {\n  assignment: {},\n  submissionData: {},\n  associatedResources: {},\n  isFetching: false,\n  errorMessage: null,\n  teacherViewScoringRubricStatus: false,\n};\n\nconst teacherAssignment = (state = teacherAssignmentInitialState, action) => {\n  const { type, payload } = action;\n  switch (type) {\n    case SET_TEACHER_VIEW_SCORING_RUBRIC:\n      return {\n        ...state,\n        teacherViewScoringRubricStatus: payload,\n      };\n    case FETCH_ASSIGNMENT_DATA_START:\n      return {\n        ...state,\n        isFetching: true,\n      };\n    case FETCH_ASSIGNMENT_DATA_SUCCESS:\n      return {\n        ...state,\n        ...payload,\n        isFetching: false,\n      };\n    case FETCH_ASSIGNMENT_DATA_FAILED:\n      return {\n        ...state,\n        ...payload,\n        isFetching: false,\n      };\n    default:\n      return state;\n  }\n};\n\nconst assignmentStudentsStatusInitialState = {\n  assignmentStudentsStatusData: {},\n  isFetching: false,\n  errorMessage: '',\n};\n\nexport const assignmentStudentsStatus = (\n  state = assignmentStudentsStatusInitialState,\n  action,\n) => {\n  const { type, payload } = action;\n  switch (type) {\n    case FETCH_ASSIGNMENT_STUDENTS_STATUS_START:\n      const { isFetching } = payload;\n      return {\n        ...state,\n        isFetching,\n        assignmentStudentsStatusData: isFetching\n          ? {}\n          : state.assignmentStudentsStatusData,\n      };\n    case FETCH_ASSIGNMENT_STUDENTS_STATUS_SUCCESS:\n      return {\n        ...state,\n        assignmentStudentsStatusData: {\n          ...state.assignmentStudentsStatusData,\n          ...payload,\n        },\n        isFetching: false,\n      };\n    case FETCH_ASSIGNMENT_STUDENTS_STATUS_FAILED:\n      const { errorMessage } = payload;\n      return {\n        ...state,\n        isFetching: false,\n        errorMessage,\n      };\n    case REMOVE_ASSIGNMENT_STUDENTS:\n      const { assignmentIds } = payload;\n      return {\n        ...state,\n        assignmentStudentsStatusData: {\n          ...omit(state.assignmentStudentsStatusData, assignmentIds),\n        },\n      };\n    default:\n      return state;\n  }\n};\n\nexport default teacherAssignment;\n","import * as types from 'legacy/src/constants/types';\n\nconst userSubjects = (state = [], action) => {\n  switch (action.type) {\n    case types.USER_SUBJECTS:\n      return action.userSubjects || [];\n    default:\n      return state;\n  }\n};\n\nexport default userSubjects;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon :export {\n  primary: #0076c4;\n  secondary: #1e1e1e;\n  error: #e75b6b;\n  tabsEdge: #ececec;\n  dark: #1e1e1e;\n  border: #d9d9d9;\n  blue: #0076c4;\n  white: #fff;\n  gray: #999896;\n  focusColor: rgba(0, 156, 222, 0.8);\n  focusRadius: 3px;\n}\n\n.chameleon .page_wrapper .page_not_found {\n  max-width: 400px;\n  min-height: 150px;\n  margin-top: calc((100vh - 150px) / 2);\n}\n\n.chameleon .page_wrapper .page_not_found .close-icon {\n  border-radius: 50%;\n  padding: 3px;\n  background: #e75b6b;\n}\n\n.chameleon .page_wrapper .page_not_found div {\n  font-size: 20px;\n  line-height: 30px;\n}\n\n.chameleon .page_wrapper .page_not_found button .text-left {\n  font-size: 18px;\n}\n\n.chameleon .page_wrapper .page_not_found p {\n  font-size: 18px;\n  line-height: 30px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/styles/utility/Colors.scss\",\"webpack://./chameleon/legacy/src/components/PageNotFound.scss\"],\"names\":[],\"mappings\":\"AA+HA;EACE,gBApHK;EAqHL,kBAjDW;EAkDX,cA5DI;EA6DJ,iBAlGU;EAmGV,aA7HK;EA8HL,eAzFO;EA0FP,aA1HK;EA2HL,WAnIM;EAoIN,aApGK;EAqGL,kCApBsB;EAqBtB,gBAvBuB;ACvGzB;;AATE;EACE,gBAAA;EACA,iBAAA;EACA,qCAAA;AAYJ;;AAVI;EACE,kBAAA;EACA,YAAA;EACA,mBD2DA;AC/CN;;AATI;EACE,eAAA;EACA,iBAAA;AAWN;;AARI;EACE,eAAA;AAUN;;AAPI;EACE,eAAA;EACA,iBAAA;AASN\",\"sourcesContent\":[\"//\\n// Base colors\\n//\\n\\n$white: #fff;\\n$black: #000;\\n$almost_black: #1e1e1e;\\n$dark: #1e1e1e;\\n$body: #333;\\n$incorrect: #d0021b;\\n\\n// - Brand\\n$blue: #0076c4;\\n$darkBlue: #024974;\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n\\n// - Interaction alt\\n// High, low and middle grays. Lighten or darken by 10% to get CB approved colors.\\n$tile_gray: #696969;\\n$tile_light_gray: #888888;\\n$light_gray: #ebe9e6;\\n$light_gray_op: #efeff4;\\n$slider_gray: #d8d8d8;\\n$light_gray2: #f0f0f0;\\n$lighter_gray: #faf9f7;\\n$lighter_gray_2: #ddd;\\n$light_gray2: #f0f0f0;\\n$gray-400: #d4d4d8;\\n$light_row_gray: #e0e0e0;\\n$light_header_gray: #f9f9f9;\\n$row_gray: #f2f2f2;\\n$tabs_gray: #ececec;\\n$medium-gray: #aaaaa9;\\n$medium_light_gray: #bcbcbc;\\n$gray: #999896;\\n$gray_text_consistent: #999999;\\n$dark_gray: #333231;\\n$mild-gray: #cecece;\\n$trans_gray: $light_gray;\\n$solid_gray: $light_gray;\\n$panel_gray: #f0f0f0;\\n$input_border: darken($light_gray, 12.5%);\\n$border: #d9d9d9;\\n$dark-border: #a5a6a7;\\n$border-grey: #ccc;\\n$shadow: #000; //DEPRECATED\\n$medium_gray_border: #cccccc;\\n$transparent_gray: rgba($light_gray, 0.5);\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n$light_blue_two: #0077c8;\\n$hover_blue: #00497c;\\n$new_light_blue: #eef7ff;\\n$new_border_light_blue: #efeff1;\\n\\n//\\n// Contextual colors\\n//\\n$green: #318635;\\n$light_green: rgba(58, 145, 63, 0.1);\\n$alt_green: #c4e7b6;\\n$bright_green: #6cc449;\\n\\n$yellow: #fedb00;\\n$alt_yellow: #fff199;\\n$alt_yellow_light: #fdf4ba;\\n\\n$red: #e75b6b;\\n$alt_red: #f9d1d2;\\n$dark_red: $red;\\n$light_red: #9127251a;\\n\\n$teal: #01a1b3;\\n$orange: #ff8000;\\n$dark-orange: #e57200;\\n\\n// Global Colors\\n$text-color: #1e1e1e;\\n$text-color-blue: #0073ce;\\n$warm-neutral-color: $light_gray;\\n$merit-color: #deb53c;\\n$app-color: rgba(239, 239, 244, 1);\\n\\n// Disabled Colors\\n$disabled-color: $gray;\\n$disabled-background: $light_gray;\\n$disabled-border: darken($light_gray, 10%);\\n\\n// Scoring Colors\\n$exact-color: $green;\\n$close-color: $yellow;\\n$out-of-range-color: $dark_red;\\n\\n// Form colors\\n$form-light-blue: #009cde;\\n$form-error-red: #cf2b4e;\\n$button_blue: #1d8fdc;\\n\\n// Alert Colors\\n$warning-color: $yellow;\\n$confirm-warning-color: $dark-orange;\\n$error-color: $red;\\n$valid-color: $green;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n\\n// performance metrics color\\n$performance1: $yellow;\\n$performance2: $alt_yellow;\\n$performance3: $alt_green;\\n$performance4: $bright_green;\\n\\n$homepage-intro-background: #296dc1;\\n\\n:export {\\n  primary: $blue;\\n  secondary: $text-color;\\n  error: $red;\\n  tabsEdge: $tabs_gray;\\n  dark: $dark;\\n  border: $border;\\n  blue: $blue;\\n  white: $white;\\n  gray: $gray;\\n  focusColor: $focus-highlight-color;\\n  focusRadius: $focus-highlight-radius;\\n}\\n\\n$teiCorrect: #3a913f;\\n$teiCorrectBackground: #e5f6f2;\\n$teiIncorrect: #cf2b4e;\\n\\n$finalExamDeveloping: $yellow;\\n$finalExamApproaching: #a7dc92;\\n$finalExamAchieving: #6cc449;\\n\\n$placeholderColor: #807f7c;\\n\\n$resourceYellowBg: #fff4c1;\\n$resourceBlueBg: #e5f1f9;\\n\\n$firewall-accepted: #3b8f3e;\\n$firewall-blocked: #c23146;\\n$firewall-warning: #e57202;\\n$firewall-default: #a5a6a7;\\n\\n$dark_select_boarder: #1d2225;\\n$popover-box-shadow: 0 0.5rem 3rem 0.25rem rgba(0, 0, 0, 0.3);\\n$toast-text-default-color: #468847;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n@mixin focus_outline() {\\n  box-shadow: 0 0 $focus-highlight-radius $focus-highlight-radius\\n    $focus-highlight-color;\\n}\\n\\n$widget-blue: #0075c8;\\n$modal-window-background: rgba(0, 0, 0, 0.5);\\n$modal-margin: 24px;\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n$code-editor-background: #f7f7f7;\\n\",\"@import '~legacy/src/styles/utility/Colors';\\n\\n.page_wrapper {\\n  .page_not_found {\\n    max-width: 400px;\\n    min-height: 150px;\\n    margin-top: calc((100vh - 150px) / 2);\\n\\n    .close-icon {\\n      border-radius: 50%;\\n      padding: 3px;\\n      background: $red;\\n    }\\n\\n    div {\\n      font-size: 20px;\\n      line-height: 30px;\\n    }\\n\\n    button .text-left {\\n      font-size: 18px;\\n    }\\n\\n    p {\\n      font-size: 18px;\\n      line-height: 30px;\\n    }\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .default-tier {\n  --tw-bg-opacity: 1;\n  background-color: rgb(113 113 122 / var(--tw-bg-opacity));\n}\n\n.chameleon .default-tier-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(113 113 122 / var(--tw-border-opacity));\n}\n\n.chameleon .tier1,\n.chameleon .tier-developing {\n  --tw-bg-opacity: 1;\n  background-color: rgb(254 219 0 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier1-text,\n.chameleon .tier-developing-text {\n  --tw-text-opacity: 1;\n  color: rgb(254 219 0 / var(--tw-text-opacity));\n}\n\n.chameleon .tier1-border,\n.chameleon .tier-developing-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(254 219 0 / var(--tw-border-opacity));\n}\n\n.chameleon .tier2,\n.chameleon .tier-approaching {\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 236 156 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier2-text,\n.chameleon .tier-approaching-text {\n  --tw-text-opacity: 1;\n  color: rgb(255 236 156 / var(--tw-text-opacity));\n}\n\n.chameleon .tier2-border,\n.chameleon .tier-approaching-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(255 236 156 / var(--tw-border-opacity));\n}\n\n.chameleon .tier3,\n.chameleon .tier-progressing {\n  --tw-bg-opacity: 1;\n  background-color: rgb(191 245 170 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier3-text,\n.chameleon .tier-progressing-text {\n  --tw-text-opacity: 1;\n  color: rgb(191 245 170 / var(--tw-text-opacity));\n}\n\n.chameleon .tier3-border,\n.chameleon .tier-progressing-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(191 245 170 / var(--tw-border-opacity));\n}\n\n.chameleon .tier4,\n.chameleon .tier-achieving {\n  --tw-bg-opacity: 1;\n  background-color: rgb(108 194 74 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier4-text,\n.chameleon .tier-achieving-text {\n  --tw-text-opacity: 1;\n  color: rgb(108 194 74 / var(--tw-text-opacity));\n}\n\n.chameleon .tier4-border,\n.chameleon .tier-achieving-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(108 194 74 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .title {\n  padding-right: 2rem;\n}\n\n.chameleon .PerformanceDetails > .content {\n  display: flex;\n  margin: 0 -9.5px 0 -9.5px;\n  padding-bottom: 1rem;\n}\n\n.chameleon .PerformanceDetails > .content > .block {\n  flex: 1;\n  position: relative;\n  padding-bottom: 3rem;\n  margin: 0 9.5px;\n  align-items: initial;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.yellow {\n  --tw-border-opacity: 1;\n  border-color: rgb(254 219 0 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.light-yellow {\n  --tw-border-opacity: 1;\n  border-color: rgb(255 236 156 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.light-green {\n  --tw-border-opacity: 1;\n  border-color: rgb(191 245 170 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.green {\n  --tw-border-opacity: 1;\n  border-color: rgb(108 194 74 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title {\n  width: 100%;\n  font-size: 1.6rem;\n  font-weight: 500;\n  line-height: 2;\n  letter-spacing: -0.3px;\n  color: #1e1e1e;\n  padding: 0;\n  margin: 9.5px 0;\n  border-bottom: 9.5px solid;\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--low_tier, .chameleon .PerformanceDetails > .content > .block > .title.--low-tier {\n  --tw-border-opacity: 1;\n  border-color: rgb(254 219 0 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--partial, .chameleon .PerformanceDetails > .content > .block > .title.--middle_tier, .chameleon .PerformanceDetails > .content > .block > .title.--middle-tier {\n  --tw-border-opacity: 1;\n  border-color: rgb(255 236 156 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--high-tier, .chameleon .PerformanceDetails > .content > .block > .title.--high_tier {\n  --tw-border-opacity: 1;\n  border-color: rgb(191 245 170 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--default {\n  --tw-border-opacity: 1;\n  border-color: rgb(113 113 122 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--correct {\n  --tw-border-opacity: 1;\n  border-color: rgb(33 126 38 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title.--incorrect {\n  --tw-border-opacity: 1;\n  border-color: rgb(193 49 69 / var(--tw-border-opacity));\n}\n\n.chameleon .PerformanceDetails > .content > .block > .title > .info {\n  position: absolute;\n  bottom: 0;\n  left: 19px;\n  display: flex;\n  align-items: center;\n}\n\n.chameleon .PerformanceDetails .list-wrapper {\n  max-height: 223px;\n  overflow: auto;\n  padding: 0 8px 19px 0;\n}\n\n.chameleon .PerformanceDetails .list-wrapper > .list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.chameleon .PerformanceDetails .list-wrapper > .list > .list-item {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n.chameleon .PerformanceDetails .list-wrapper > .list .link-info {\n  font-size: 1.4rem;\n  padding-left: 1rem;\n}\n\n.chameleon .PerformanceDetails .list-wrapper > .list .link {\n  font-size: 1.4rem;\n  font-weight: 500;\n  line-height: 2.29;\n  letter-spacing: -0.2px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  display: block;\n  -webkit-font-smoothing: antialiased;\n}\n\n.chameleon .PerformanceDetails .list-wrapper > .list span {\n  font-size: 1.4rem;\n  font-weight: 500;\n  line-height: 2.29;\n  letter-spacing: -0.2px;\n  white-space: nowrap;\n  display: block;\n  -webkit-font-smoothing: antialiased;\n  right: auto;\n  width: unset;\n}\n\n.chameleon .PerformanceDetails .list-wrapper.--columned {\n  display: flex;\n}\n\n.chameleon .PerformanceDetails > .footer {\n  margin: 0 -1.25rem -1.25rem;\n  padding: 2.25rem;\n  --tw-bg-opacity: 1;\n  background-color: rgb(244 244 245 / var(--tw-bg-opacity));\n}\n\n.chameleon .PerformanceBar-message {\n  display: flex;\n  align-items: center;\n  font-size: 1.4rem;\n  font-weight: 500;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/src/styles/PerformanceColors.css\",\"webpack://./chameleon/legacy/src/components/assessment/Results/PerformanceDetails/styles.scss\"],\"names\":[],\"mappings\":\"AACE;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AC3DA;EACE,mBAAA;AA+DJ;;AA7DE;EACE,aAAA;EACA,yBAAA;EACA,oBAAA;AA+DJ;;AA7DI;EACE,OAAA;EACA,kBAAA;EACA,oBAAA;EACA,eAAA;EACA,oBAAA;EACA,sBAAA;EACA,2BAAA;AA+DN;;AA3DU;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIJ;EACE,WAAA;EACA,iBAAA;EACA,gBAAA;EACA,cAAA;EACA,sBAAA;EACA,cAAA;EACA,UAAA;EACA,eAAA;EACA,0BAAA;AAyDR;;AArDU;EAAA,sBAAA;EAAA;AAAA;;AAMA;EAAA,sBAAA;EAAA;AAAA;;AAKA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAGF;EACE,kBAAA;EACA,SAAA;EACA,UAjFM;EAkFN,aAAA;EACA,mBAAA;AA+CV;;AAzCE;EACE,iBAAA;EACA,cAAA;EACA,qBAAA;AA2CJ;;AAzCI;EACE,SAAA;EACA,UAAA;EACA,gBAAA;AA2CN;;AAzCM;EACE,aAAA;EACA,mBAAA;EACA,8BAAA;AA2CR;;AAxCM;EACE,iBAAA;EACA,kBAAA;AA0CR;;AAvCM;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,sBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,cAAA;EACA,mCAAA;AAyCR;;AAvCM;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,sBAAA;EACA,mBAAA;EACA,cAAA;EACA,mCAAA;EACA,WAAA;EACA,YAAA;AAyCR;;AArCI;EACE,aAAA;AAuCN;;AAnCE;EACE,2BAAA;EACA,gBAAA;EACA,kBAAA;EAAA,yDAAA;AAqCJ;;AAjCA;EACE,aAAA;EACA,mBAAA;EACA,iBAAA;EACA,gBAAA;AAoCF\",\"sourcesContent\":[\".default-tier {\\n  @apply bg-gray-600;\\n}\\n\\n.default-tier-border {\\n  @apply border-gray-600;\\n}\\n\\n.tier1,\\n.tier-developing {\\n  @apply bg-yellow-400;\\n}\\n\\n.tier1-text,\\n.tier-developing-text {\\n  @apply text-yellow-400;\\n}\\n\\n.tier1-border,\\n.tier-developing-border {\\n  @apply border-yellow-400;\\n}\\n\\n.tier2,\\n.tier-approaching {\\n  @apply bg-yellow-200;\\n}\\n\\n.tier2-text,\\n.tier-approaching-text {\\n  @apply text-yellow-200;\\n}\\n\\n.tier2-border,\\n.tier-approaching-border {\\n  @apply border-yellow-200;\\n}\\n\\n.tier3,\\n.tier-progressing {\\n  @apply bg-green-200;\\n}\\n\\n.tier3-text,\\n.tier-progressing-text {\\n  @apply text-green-200;\\n}\\n\\n.tier3-border,\\n.tier-progressing-border {\\n  @apply border-green-200;\\n}\\n\\n.tier4,\\n.tier-achieving {\\n  @apply bg-green-400;\\n}\\n\\n.tier4-text,\\n.tier-achieving-text {\\n  @apply text-green-400;\\n}\\n\\n.tier4-border,\\n.tier-achieving-border {\\n  @apply border-green-400;\\n}\\n\",\"@import '~chameleon/src/styles/PerformanceColors';\\n\\n$inner-padding: 19px;\\n$inner-padding-half: calc($inner-padding / 2);\\n\\n.PerformanceDetails {\\n  > .title {\\n    padding-right: 2rem;\\n  }\\n  > .content {\\n    display: flex;\\n    margin: 0 (-$inner-padding-half) 0 (-$inner-padding-half);\\n    padding-bottom: 1rem;\\n\\n    > .block {\\n      flex: 1;\\n      position: relative;\\n      padding-bottom: 3rem;\\n      margin: 0 $inner-padding-half;\\n      align-items: initial;\\n      flex-direction: column;\\n      justify-content: flex-start;\\n\\n      > .title {\\n        &.yellow {\\n          @apply tier1-border;\\n        }\\n\\n        &.light-yellow {\\n          @apply tier2-border;\\n        }\\n\\n        &.light-green {\\n          @apply tier3-border;\\n        }\\n\\n        &.green {\\n          @apply tier4-border;\\n        }\\n      }\\n\\n      > .title {\\n        width: 100%;\\n        font-size: 1.6rem;\\n        font-weight: 500;\\n        line-height: 2;\\n        letter-spacing: -0.3px;\\n        color: #1e1e1e;\\n        padding: 0;\\n        margin: $inner-padding-half 0;\\n        border-bottom: $inner-padding-half solid;\\n\\n        &.--low_tier,\\n        &.--low-tier {\\n          @apply tier1-border;\\n        }\\n\\n        &.--partial,\\n        &.--middle_tier,\\n        &.--middle-tier {\\n          @apply tier2-border;\\n        }\\n\\n        &.--high-tier,\\n        &.--high_tier {\\n          @apply tier3-border;\\n        }\\n\\n        &.--default {\\n          @apply default-tier-border;\\n        }\\n\\n        &.--correct {\\n          @apply border-green-600;\\n        }\\n\\n        &.--incorrect {\\n          @apply border-red-600;\\n        }\\n\\n        > .info {\\n          position: absolute;\\n          bottom: 0;\\n          left: $inner-padding;\\n          display: flex;\\n          align-items: center;\\n        }\\n      }\\n    }\\n  }\\n\\n  .list-wrapper {\\n    max-height: 223px;\\n    overflow: auto;\\n    padding: 0 8px $inner-padding 0;\\n\\n    > .list {\\n      margin: 0;\\n      padding: 0;\\n      list-style: none;\\n\\n      > .list-item {\\n        display: flex;\\n        align-items: center;\\n        justify-content: space-between;\\n      }\\n\\n      .link-info {\\n        font-size: 1.4rem;\\n        padding-left: 1rem;\\n      }\\n\\n      .link {\\n        font-size: 1.4rem;\\n        font-weight: 500;\\n        line-height: 2.29;\\n        letter-spacing: -0.2px;\\n        white-space: nowrap;\\n        overflow: hidden;\\n        text-overflow: ellipsis;\\n        display: block;\\n        -webkit-font-smoothing: antialiased;\\n      }\\n      span {\\n        font-size: 1.4rem;\\n        font-weight: 500;\\n        line-height: 2.29;\\n        letter-spacing: -0.2px;\\n        white-space: nowrap;\\n        display: block;\\n        -webkit-font-smoothing: antialiased;\\n        right: auto;\\n        width: unset;\\n      }\\n    }\\n\\n    &.--columned {\\n      display: flex;\\n    }\\n  }\\n\\n  > .footer {\\n    margin: 0 -1.25rem -1.25rem;\\n    padding: 2.25rem;\\n    @apply bg-gray-200;\\n  }\\n}\\n\\n.PerformanceBar-message {\\n  display: flex;\\n  align-items: center;\\n  font-size: 1.4rem;\\n  font-weight: 500;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .student_performance_container {\n  display: flex;\n  align-items: center;\n}\n.chameleon .student_performance_container svg.icon--person {\n  margin-left: 10px;\n}\n.chameleon .scored-icon {\n  height: auto;\n  width: 68px;\n  margin-top: 2px;\n}\n.chameleon .scored-icon .pop_over_toggle.btn {\n  background-color: transparent;\n  padding: 0;\n  display: flex;\n  align-items: center;\n}\n.chameleon .scored-icon .pop_over_toggle.btn:hover {\n  background: none;\n}\n.chameleon .scored-icon .scored_status_tooltip {\n  font-size: 14px;\n  margin-bottom: 0;\n  font-weight: 400;\n  line-height: 28px;\n}\n.chameleon .result_page_student_performance_container {\n  display: flex;\n  align-items: center;\n  margin: 0 2rem;\n}\n.chameleon .result_page_student_performance_container svg.icon--person {\n  margin-left: 10px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/components/assessment/Results/ScoredIcon/index.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,mBAAA;AACF;AACE;EACE,iBAAA;AACJ;AAEA;EACE,YAAA;EACA,WAAA;EACA,eAAA;AACF;AACE;EACE,6BAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;AACJ;AACI;EACE,gBAAA;AACN;AAEE;EACE,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,iBAAA;AAAJ;AAGA;EACE,aAAA;EACA,mBAAA;EACA,cAAA;AAAF;AAEE;EACE,iBAAA;AAAJ\",\"sourcesContent\":[\".student_performance_container {\\n  display: flex;\\n  align-items: center;\\n\\n  svg.icon--person {\\n    margin-left: 10px;\\n  }\\n}\\n.scored-icon {\\n  height: auto;\\n  width: 68px;\\n  margin-top: 2px;\\n\\n  .pop_over_toggle.btn {\\n    background-color: transparent;\\n    padding: 0;\\n    display: flex;\\n    align-items: center;\\n\\n    &:hover {\\n      background: none;\\n    }\\n  }\\n  .scored_status_tooltip {\\n    font-size: 14px;\\n    margin-bottom: 0;\\n    font-weight: 400;\\n    line-height: 28px;\\n  }\\n}\\n.result_page_student_performance_container {\\n  display: flex;\\n  align-items: center;\\n  margin: 0 2rem;\\n\\n  svg.icon--person {\\n    margin-left: 10px;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .Impersonate--header {\n  width: 100%;\n  height: 52px;\n  font-size: 14px;\n  display: flex;\n  padding: 0 30px 0 30px;\n  align-items: center;\n}\n.chameleon .Impersonate--header.is-sticky {\n  position: fixed;\n  top: 0;\n  z-index: 999;\n}\n.chameleon .Impersonate--header .LoadingSpinner {\n  margin-top: 7px;\n}\n.chameleon .Impersonate--header .StudentsSearch {\n  display: flex;\n  margin-left: 10px;\n}\n.chameleon .Impersonate--header .StudentsSearch .autocomplete-input .MuiInputBase-input {\n  padding-top: 6px;\n  padding-bottom: 6px;\n}\n.chameleon .Impersonate--header .ldb-details {\n  display: flex;\n  margin-left: 5px;\n}\n.chameleon .Impersonate--header .ldb-details .student-name {\n  font-weight: 500;\n  margin-right: 3px;\n}\n.chameleon .Impersonate--header .ldb-details .section-name {\n  margin-left: 3px;\n}\n.chameleon .Impersonate--logout {\n  margin-left: auto;\n  font-weight: 500;\n  display: inline-flex;\n  align-items: center;\n}\n.chameleon .is-impersonating .Player .PlayerModeContainer--content .lrn.lrn-assess .lrn-right-region .right-wrapper {\n  top: 200px;\n}\n.chameleon .is-impersonating .Player .Navigation {\n  margin-top: 52px;\n}\n.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n}\n@media only screen and (max-width: 767px) {\n  .chameleon .StudentsSearch--students-dropdown.autocomplete {\n    margin-right: 5px;\n  }\n  .chameleon .StudentsSearch--students-dropdown.autocomplete .autocomplete__dropdown {\n    max-width: 100px;\n  }\n  .chameleon .Impersonate--header {\n    padding: 0;\n  }\n  .chameleon .Impersonate--header-info, .chameleon .Impersonate--header-logout {\n    display: none;\n  }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/components/impersonating/components/ImpersonateHeader/styles.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Breakpoints.scss\",\"webpack://./chameleon/legacy/src/components/impersonating/components/ImpersonateHeader/responsive.scss\"],\"names\":[],\"mappings\":\"AAGE;EACE,WAAA;EACA,YAAA;EACA,eAAA;EAEA,aAAA;EACA,sBAAA;EACA,mBAAA;AAHJ;AAMI;EACE,eAAA;EACA,MAAA;EACA,YAAA;AAJN;AAOI;EACE,eAAA;AALN;AAQI;EACE,aAAA;EACA,iBAAA;AANN;AAQM;EACE,gBAAA;EACA,mBAAA;AANR;AAUI;EACE,aAAA;EACA,gBAAA;AARN;AAUM;EACE,gBAAA;EACA,iBAAA;AARR;AAWM;EACE,gBAAA;AATR;AAcE;EACE,iBAAA;EAEA,gBAAA;EACA,oBAAA;EACA,mBAAA;AAbJ;AAmBI;EAIE,UAAA;AAnBN;AAsBI;EACE,gBAAA;AApBN;ACFA;EACE,UA7CiB;EA8CjB,cA7CqB;EA8CrB,WA7CkB;EA8ClB,WA7CiB;EA8CjB,WA5CkB;ADiDpB;ACjCE;ECnBA;IAIE,iBAAA;EFqDF;EExDE;IACE,gBAAA;EF0DJ;EErDA;IACE,UAAA;EFuDF;EEtDE;IAEE,aAAA;EFuDJ;AACF\",\"sourcesContent\":[\"// @import '~legacy/src/styles/utility/Colors';\\n\\n.Impersonate {\\n  &--header {\\n    width: 100%;\\n    height: 52px;\\n    font-size: 14px;\\n    // @apply bg-yellow-200;\\n    display: flex;\\n    padding: 0 30px 0 30px;\\n    align-items: center;\\n    // color: $text-color;\\n\\n    &.is-sticky {\\n      position: fixed;\\n      top: 0;\\n      z-index: 999;\\n    }\\n\\n    .LoadingSpinner {\\n      margin-top: 7px;\\n    }\\n\\n    .StudentsSearch {\\n      display: flex;\\n      margin-left: 10px;\\n\\n      .autocomplete-input .MuiInputBase-input {\\n        padding-top: 6px;\\n        padding-bottom: 6px;\\n      }\\n    }\\n\\n    .ldb-details {\\n      display: flex;\\n      margin-left: 5px;\\n\\n      .student-name {\\n        font-weight: 500;\\n        margin-right: 3px;\\n      }\\n\\n      .section-name {\\n        margin-left: 3px;\\n      }\\n    }\\n  }\\n\\n  &--logout {\\n    margin-left: auto;\\n    // color: $text-color;\\n    font-weight: 500;\\n    display: inline-flex;\\n    align-items: center;\\n  }\\n}\\n\\n.is-impersonating {\\n  .Player {\\n    .PlayerModeContainer--content\\n      .lrn.lrn-assess\\n      .lrn-right-region\\n      .right-wrapper {\\n      top: 200px;\\n    }\\n\\n    .Navigation {\\n      margin-top: 52px;\\n    }\\n  }\\n}\\n\\n@import './responsive';\\n\",\"// Responsive Breakpoints\\n$small-breakpoint: 471;\\n$smallplus-breakpoint: 568;\\n$medium-breakpoint: 768;\\n$large-breakpoint: 1024;\\n\\n$mobile-breakpoint: 767;\\n$desktop-breakpoint: $medium-breakpoint;\\n$tailwind-mobile-breakpoint: 993;\\n\\n$small: #{$small-breakpoint}px;\\n$smallplus: #{$smallplus-breakpoint}px;\\n$medium: #{$medium-breakpoint}px;\\n$large: #{$large-breakpoint}px;\\n\\n@mixin min-responsive($breakpoint) {\\n  @media only screen and (min-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin max-responsive($breakpoint) {\\n  @media only screen and (max-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin mobile() {\\n  @include max-responsive(#{$mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin desktop() {\\n  @include min-responsive(#{$desktop-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin tailwind-mobile() {\\n  @include max-responsive(#{$tailwind-mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n:export {\\n  small: $small-breakpoint;\\n  smallplus: $smallplus-breakpoint;\\n  medium: $medium-breakpoint;\\n  large: $large-breakpoint;\\n  mobile: $mobile-breakpoint;\\n}\\n\",\"@import 'chameleon/legacy/src/styles/utility/Breakpoints';\\n\\n@include mobile() {\\n  .StudentsSearch--students-dropdown.autocomplete {\\n    .autocomplete__dropdown {\\n      max-width: 100px;\\n    }\\n    margin-right: 5px;\\n  }\\n\\n  .Impersonate--header {\\n    padding: 0;\\n    &-info,\\n    &-logout {\\n      display: none;\\n    }\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .Impersonate--modal.content {\n  width: 551px;\n  min-width: 0;\n  overflow: visible;\n}\n.chameleon .Impersonate--dropdowns {\n  margin-top: 32px;\n}\n.chameleon .Impersonate--dropdowns p {\n  font-size: 16px;\n  font-weight: 500;\n  color: #1e1e1e;\n}\n.chameleon .Impersonate--modal .autocomplete__dropdown {\n  max-height: 200px;\n}\n.chameleon .Impersonate--modal .StudentsSearch--students-dropdown {\n  margin-top: 16px;\n}\n.chameleon .Impersonate--modal .Modal--dialog--confirmation-buttons {\n  margin-top: 16px;\n  margin-right: 20px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/components/impersonating/components/ImpersonateModal/styles.scss\"],\"names\":[],\"mappings\":\"AACE;EACE,YAAA;EACA,YAAA;EACA,iBAAA;AAAJ;AAGE;EACE,gBAAA;AADJ;AAIE;EACE,eAAA;EACA,gBAAA;EACA,cAAA;AAFJ;AAOE;EACE,iBAAA;AAJJ;AAOE;EACE,gBAAA;AALJ;AAQE;EACE,gBAAA;EACA,kBAAA;AANJ\",\"sourcesContent\":[\".Impersonate {\\n  &--modal.content {\\n    width: 551px;\\n    min-width: 0;\\n    overflow: visible;\\n  }\\n\\n  &--dropdowns {\\n    margin-top: 32px;\\n  }\\n\\n  &--dropdowns p {\\n    font-size: 16px;\\n    font-weight: 500;\\n    color: #1e1e1e;\\n  }\\n}\\n\\n.Impersonate--modal {\\n  .autocomplete__dropdown {\\n    max-height: 200px;\\n  }\\n\\n  .StudentsSearch--students-dropdown {\\n    margin-top: 16px;\\n  }\\n\\n  .Modal--dialog--confirmation-buttons {\\n    margin-top: 16px;\\n    margin-right: 20px;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .StudentsSearch--students-search-icon {\n  margin-right: 2px;\n}\n.chameleon .StudentsSearch--list {\n  max-height: 24rem;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/components/impersonating/components/StudentsSearch/styles.scss\"],\"names\":[],\"mappings\":\"AACE;EACE,iBAAA;AAAJ;AAII;EAAA;AAAA\",\"sourcesContent\":[\".StudentsSearch {\\n  &--students-search-icon {\\n    margin-right: 2px;\\n  }\\n\\n  &--list {\\n    @apply max-h-96;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon :export {\n  primary: #0076c4;\n  secondary: #1e1e1e;\n  error: #e75b6b;\n  tabsEdge: #ececec;\n  dark: #1e1e1e;\n  border: #d9d9d9;\n  blue: #0076c4;\n  white: #fff;\n  gray: #999896;\n  focusColor: rgba(0, 156, 222, 0.8);\n  focusRadius: 3px;\n}\n\n.chameleon .DownloadAllASBtn {\n  position: relative;\n}\n\n.chameleon .DownloadAllASBtn .DownloadAllASBtn__button.btn {\n  align-items: center;\n  border: none;\n  display: flex;\n  font-size: 14px;\n}\n\n.chameleon .DownloadAllASBtn__loading-spinner, .chameleon .DownloadNowLink__loading-spinner {\n  min-height: unset;\n}\n\n.chameleon .DownloadAllASBtn__loading-spinner-container, .chameleon .DownloadNowLink__loading-spinner-container {\n  background: #fff;\n  border-radius: 0.3rem;\n  box-shadow: 0 0.5rem 3rem 0.25rem rgba(0, 0, 0, 0.3);\n  left: 50%;\n  min-height: unset;\n  overflow: hidden;\n  padding: 0.75rem;\n  position: absolute;\n  top: 50%;\n  transform: translateX(-50%);\n  transition: all 0.25s ease;\n  z-index: 100;\n}\n\n.chameleon .DownloadNowLink__loading-spinner-container {\n  top: 100%;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/styles/utility/Colors.scss\",\"webpack://./chameleon/legacy/src/components/paperscorer/DownloadNowLink/index.scss\",\"webpack://./chameleon/legacy/src/components/paperscorer/DownloadAllAnswerSheetsButton/index.scss\"],\"names\":[],\"mappings\":\"AA+HA;EACE,gBApHK;EAqHL,kBAjDW;EAkDX,cA5DI;EA6DJ,iBAlGU;EAmGV,aA7HK;EA8HL,eAzFO;EA0FP,aA1HK;EA2HL,WAnIM;EAoIN,aApGK;EAqGL,kCApBsB;EAqBtB,gBAvBuB;ACvGzB;;ACVA;EACE,kBAAA;AD2BF;;ACvBI;EACE,mBAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;ADyBN;;ACrBE;EACE,iBAAA;ADuBJ;;ACpBE;EACE,gBFhBI;EEiBJ,qBAAA;EACA,oDF0IiB;EEzIjB,SAAA;EACA,iBAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,QAAA;EACA,2BAAA;EACA,0BAAA;EACA,YAAA;ADsBJ;;AA7CE;EAEE,SAAA;AA+CJ\",\"sourcesContent\":[\"//\\n// Base colors\\n//\\n\\n$white: #fff;\\n$black: #000;\\n$almost_black: #1e1e1e;\\n$dark: #1e1e1e;\\n$body: #333;\\n$incorrect: #d0021b;\\n\\n// - Brand\\n$blue: #0076c4;\\n$darkBlue: #024974;\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n\\n// - Interaction alt\\n// High, low and middle grays. Lighten or darken by 10% to get CB approved colors.\\n$tile_gray: #696969;\\n$tile_light_gray: #888888;\\n$light_gray: #ebe9e6;\\n$light_gray_op: #efeff4;\\n$slider_gray: #d8d8d8;\\n$light_gray2: #f0f0f0;\\n$lighter_gray: #faf9f7;\\n$lighter_gray_2: #ddd;\\n$light_gray2: #f0f0f0;\\n$gray-400: #d4d4d8;\\n$light_row_gray: #e0e0e0;\\n$light_header_gray: #f9f9f9;\\n$row_gray: #f2f2f2;\\n$tabs_gray: #ececec;\\n$medium-gray: #aaaaa9;\\n$medium_light_gray: #bcbcbc;\\n$gray: #999896;\\n$gray_text_consistent: #999999;\\n$dark_gray: #333231;\\n$mild-gray: #cecece;\\n$trans_gray: $light_gray;\\n$solid_gray: $light_gray;\\n$panel_gray: #f0f0f0;\\n$input_border: darken($light_gray, 12.5%);\\n$border: #d9d9d9;\\n$dark-border: #a5a6a7;\\n$border-grey: #ccc;\\n$shadow: #000; //DEPRECATED\\n$medium_gray_border: #cccccc;\\n$transparent_gray: rgba($light_gray, 0.5);\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n$light_blue_two: #0077c8;\\n$hover_blue: #00497c;\\n$new_light_blue: #eef7ff;\\n$new_border_light_blue: #efeff1;\\n\\n//\\n// Contextual colors\\n//\\n$green: #318635;\\n$light_green: rgba(58, 145, 63, 0.1);\\n$alt_green: #c4e7b6;\\n$bright_green: #6cc449;\\n\\n$yellow: #fedb00;\\n$alt_yellow: #fff199;\\n$alt_yellow_light: #fdf4ba;\\n\\n$red: #e75b6b;\\n$alt_red: #f9d1d2;\\n$dark_red: $red;\\n$light_red: #9127251a;\\n\\n$teal: #01a1b3;\\n$orange: #ff8000;\\n$dark-orange: #e57200;\\n\\n// Global Colors\\n$text-color: #1e1e1e;\\n$text-color-blue: #0073ce;\\n$warm-neutral-color: $light_gray;\\n$merit-color: #deb53c;\\n$app-color: rgba(239, 239, 244, 1);\\n\\n// Disabled Colors\\n$disabled-color: $gray;\\n$disabled-background: $light_gray;\\n$disabled-border: darken($light_gray, 10%);\\n\\n// Scoring Colors\\n$exact-color: $green;\\n$close-color: $yellow;\\n$out-of-range-color: $dark_red;\\n\\n// Form colors\\n$form-light-blue: #009cde;\\n$form-error-red: #cf2b4e;\\n$button_blue: #1d8fdc;\\n\\n// Alert Colors\\n$warning-color: $yellow;\\n$confirm-warning-color: $dark-orange;\\n$error-color: $red;\\n$valid-color: $green;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n\\n// performance metrics color\\n$performance1: $yellow;\\n$performance2: $alt_yellow;\\n$performance3: $alt_green;\\n$performance4: $bright_green;\\n\\n$homepage-intro-background: #296dc1;\\n\\n:export {\\n  primary: $blue;\\n  secondary: $text-color;\\n  error: $red;\\n  tabsEdge: $tabs_gray;\\n  dark: $dark;\\n  border: $border;\\n  blue: $blue;\\n  white: $white;\\n  gray: $gray;\\n  focusColor: $focus-highlight-color;\\n  focusRadius: $focus-highlight-radius;\\n}\\n\\n$teiCorrect: #3a913f;\\n$teiCorrectBackground: #e5f6f2;\\n$teiIncorrect: #cf2b4e;\\n\\n$finalExamDeveloping: $yellow;\\n$finalExamApproaching: #a7dc92;\\n$finalExamAchieving: #6cc449;\\n\\n$placeholderColor: #807f7c;\\n\\n$resourceYellowBg: #fff4c1;\\n$resourceBlueBg: #e5f1f9;\\n\\n$firewall-accepted: #3b8f3e;\\n$firewall-blocked: #c23146;\\n$firewall-warning: #e57202;\\n$firewall-default: #a5a6a7;\\n\\n$dark_select_boarder: #1d2225;\\n$popover-box-shadow: 0 0.5rem 3rem 0.25rem rgba(0, 0, 0, 0.3);\\n$toast-text-default-color: #468847;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n@mixin focus_outline() {\\n  box-shadow: 0 0 $focus-highlight-radius $focus-highlight-radius\\n    $focus-highlight-color;\\n}\\n\\n$widget-blue: #0075c8;\\n$modal-window-background: rgba(0, 0, 0, 0.5);\\n$modal-margin: 24px;\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n$code-editor-background: #f7f7f7;\\n\",\"@import '~legacy/src/styles/utility/Colors';\\n@import '../DownloadAllAnswerSheetsButton/index.scss';\\n\\n.DownloadNowLink {\\n  &__loading-spinner {\\n    @extend .DownloadAllASBtn__loading-spinner;\\n  }\\n\\n  &__loading-spinner-container {\\n    @extend .DownloadAllASBtn__loading-spinner-container;\\n    top: 100%;\\n  }\\n}\\n\",\"@import '~legacy/src/styles/utility/Colors';\\n\\n.DownloadAllASBtn {\\n  position: relative;\\n  $blockElement: &;\\n\\n  & #{$blockElement}__button {\\n    &.btn {\\n      align-items: center;\\n      border: none;\\n      display: flex;\\n      font-size: 14px;\\n    }\\n  }\\n\\n  &__loading-spinner {\\n    min-height: unset;\\n  }\\n\\n  &__loading-spinner-container {\\n    background: $white;\\n    border-radius: 0.3rem;\\n    box-shadow: $popover-box-shadow;\\n    left: 50%;\\n    min-height: unset;\\n    overflow: hidden;\\n    padding: 0.75rem;\\n    position: absolute;\\n    top: 50%;\\n    transform: translateX(-50%);\\n    transition: all 0.25s ease;\\n    z-index: 100;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs/index.js!./PageNotFound.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs/index.js!./PageNotFound.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./index.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./index.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../../node_modules/sass-loader/dist/cjs/index.js!./styles.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../node_modules/sass-loader/dist/cjs/index.js!./index.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../../node_modules/sass-loader/dist/cjs/index.js!./index.scss\";\n       export default content && content.locals ? content.locals : undefined;\n"],"names":["types","adminInfo","props","type","SET_ADMIN_INFO","setAdminInfo","dispatch","setItems","USER_CLASSES","items","createRoutine","pageLoading","pageReloading","SET_COURSE_OUTLINE","GET_COURSE_OUTLINE","RESET_COURSE_OUTLINE","getCourseOutline","loading","payload","setCourseOutline","_ref","subject","courseOutline","resetCourseOutline","getSubjectEducationPeriods","findChosenEducationPeriod","getUserSubjects","defaultEducationPeriod","SET_DEFAULT_EDUCATION_PERIOD","getDefaultEducationPeriod","userData","subjectEducationPeriods","subjectId","teacherSubjects","educationPeriodCode","currentEducationPeriod","educationPeriod","me","userSubjects","clearDefaultEducationPeriod","_ref2","id","allEducationPeriods","educationPeriods","setDefaultEducationPeriodCode","_ref3","chosenEducationPeriodCode","flagList","setFeatureFlag","treatments","flags","Object","keys","forEach","key","Number","isNaN","parseInt","Math","max","flagValue","treatment","SET_FEATURE_FLAG","generateAnswerSheets","generateAnswerSheetsPreview","resetAnswerSheetsPreview","downloadAllAnswerSheets","downloadIndividualAnswerSheet","initiateDownloadForUser","downloadGeneratedAnswerSheet","setStudentsBySection","params","STUDENTS_BY_SECTION","setSubject","router","SUBJECT_MAPPING","setUserSubjects","subjects","USER_SUBJECTS","axios","axiosCancel","notify","redirectToLogin","refreshAccessToken","VITAL_DOMAINS","log","ERROR_PROCESSING_MESSAGE","KNOWN_ISSUE_ERROR_MESSAGE","getTelemetryUrl","window","middleware_resolve","middleware_timeout","complete_middleware_promise","clearTimeout","middleware_promise","Promise","resolve","reject","setTimeout","interceptorConfig","errorInterceptor","err","response","config","isCancel","message","url","includes","telemetry_url","replace","indexOf","state","store","getState","known_issue_ff","featureFlag","error_notification_known_issue","find","d","error","Error","status","data","concat","tokenInterceptor","oldConfig","headers","Authorization","token","localStorage","getItem","startsWith","expires","customExpires","expiresValueOf","is_refresh_endpoint","match","is_logout2_endpoint","is_refreshable","second","is_about_to_expire","Date","config_promise","fetchNewAccessToken","then","refreshToken","skipRefresh","originalConfig","refreshParams","accessToken","access_token","newAccessToken","bootstrapApi","interceptors","request","handlers","use","undefined","ApolloClient","getCbSession","LC_CONSTANTS","getConfig","accessTokenKey","refreshTokenKey","expiresKey","applyMiddleware","req","next","console","trace","options","useAfter","applyAfterware","res","apiResponse","clone","traceId","get","json","errors","getQueryName","length","errorMessage","errorPath","path","join","AT","RT","EXP","impersonatorConfig","IAT","IRT","IEXP","bootstrapApollo","networkInterface","fragmentMatcher","isImpersonating","arguments","shouldBatch","React","useEffect","Icon","ButtonWithIcon","sendToTelemetry","TLTRY_DEFAULTS","withRouter","connect","PageNotFound","studentSubjects","adminSubjects","location","pathname","search","event_type","current_url","previous_url","sessionStorage","user_agent","navigator","userAgent","isStudent","isAdmin","buttonOnClick","event","preventDefault","href","createElement","className","width","height","role","accessibility","ariaHidden","isLink","isNaked","tabIndex","iconOrientation","icon","onClick","displayName","mapStateToProps","useState","useFetchTeacherAssignments","Context","TeacherAssignmentsProvider","children","assignments","setAssignments","isLoading","setIsLoading","getTeacherAssignments","addAssignments","updateAssignment","updateAssignments","deleteAssignment","loadAssignments","loadAssignment","value","actions","Provider","TeacherAssignmentsContext","createContext","BULK_ACTION_TYPES","LABEL","DELETE","STATUS","PDF","useNavigation","useBulkDeleteManager","isBulkMode","isBulkDeleteAction","deactivateBulkMode","savedStatusFilter","setSavedStatusFilter","isAllResourcesQuizzesPage","queryParams","cleanPageParams","activateBulkDeleteMode","saveCurrentStatusFilter","split","filter","Boolean","shouldDeactivateBulkMode","updateStatusFilterAfterBulkDeactivation","labels","isAssignedResourcesPage","ALL_ASSIGNED","isLabelsPage","isPDFTab","toast","calculateCache","createLabelAPI","createLabelItemAssociation","createLabelResourceAssociation","createLabelItemAssociationsBulk","createLabelResourceAssociationsBulk","updateLabelAPI","deleteLabelAPI","updateLabelsVisibilityAPI","updateLabelAssociationsBulkAPI","reorderLabelsAPI","convertObjectKeysToCamelCase","addLabels","removeLabels","reorderLabels","reorderLabelsUtil","updateLabels","handleTelemetry","TELEMETRY_EVENTS","resourcesForBulkInitState","resourceTypes","TeacherOrganizeProvider","isTeacherInfoLoading","setLabels","isReordering","setIsReordering","setIsBulkMode","bulkActionType","setBulkActionType","resourcesForBulk","setResourcesForBulk","isAssignmentProgressPage","isAssignmentsPage","isSppTeacherPreviewPage","isLabelAction","isBulkLabelPage","updateLabelState","labelData","removeLabelState","addLabelState","updateLabelVisibilityState","studentVisible","masterSubjectId","labelsTemp","subjectLabels","values","label","labelId","createLabel","success","name","toString","updateLabel","deleteLabel","labelIds","createLabelAssociation","isVideo","video","actionMethod","updateLabelAssociations","resourceId","createLabelItemAssociations","quizId","createLabelResourceAssociations","_ref4","updateLabelsVisibility","isStudentVisible","teacherUpdateShowLabels","student_visible","successToastText","resourcesForBulkLength","reduce","result","resourceForType","clearBulkSelections","isBulkLabelAction","activateBulkMode","addOrRemoveBulk","removeIfExists","pdf","currentState","typeToAdd","item","structuredClone","currentStateForType","checkIfResourceSelectedBulk","some","useTeacherOrganizeContext","_ref5","masterSubject","context","useContext","parents","convertApiParams","createDeleteRequest","createPatchRequest","createPostRequest","createPutRequest","API_TYPES_MAP","assessments","label_id","item_id","resource_id","label_ids","addMultipleLabelResourcesBulk","_ref6","resourceIds","resource_ids","addMultipleLabelItemsBulk","_ref7","itemIds","item_ids","camelToSnakeCase","str","letter","toLowerCase","toCamelCase","group","toUpperCase","obj","newObj","prototype","hasOwnProperty","call","newKey","createApiRequest","fn","statusText","post","FYM_BACKEND_URL","put","delete","patch","getSortOrder","labelCache","order","parentId","parseFloat","accumulator","sortedLabels","sort","a","b","userId","aSortOrder","bSortOrder","orderedParentChildHierarchy","index","lastIndex","push","default","rest","updatedLabelData","currentSubjectLabels","updatedSubjectLabels","existingLabelIndex","findIndex","updatedLabelsArray","TeacherOrganizeContext","LABEL_MODES","create","edit","LABEL_BUTTON_CLASS","menu","toggleLabelVisibility","moveup","movedown","LEFT_POPOVER_MENU_NAME","TEACHER_ORGANIZE_EXAMPLE_MODAL","title","DELETE_CONFIRMATION_DEFAULT","Fragment","PLATFORMS","Win","SECURE_BROWSER_LINK_WINDOWS","Mac","SECURE_BROWSER_LINK_MACOSX","iPad","SECURE_BROWSER_LINK_IOS","OPERATING_SYSTEMS","isIpad","platform","maxTouchPoints","IPAD","MAC_INTEL","getDownloadURL","FYM_FRONTEND_URL","combineReducers","createReducer","initialState","readinessCheck","loadingAssignments","reducer","assignmentScroll","action","Assignment","submitting","SET_ACTIVE_GROUP","setActiveGroup","groupSelection","RESET_FILTERS","resetFilters","activeGroup","activeStatus","StackedBar","Component","PropTypes","bool","array","PerformanceBar","render","showLabels","isSmall","stacks","isAutoHeight","_defineProperty","isRequired","report","total","PopOver","Link","RouterLink","Button","PerformanceDetails","cn","questionTiers","topLimit","bottomLimit","questionFRQTiers","isHiddenByDefault","PerformanceBarPopover","ariaLabel","ariaDescribedBy","studentUrl","contentOffset","perfDetailsTitle","perfDetailsFooter","showFooter","isWeighed","showScore","disableNoResultsLink","resultsUrl","fullWidth","disabled","assignmentProgressText","assignmentProgressLink","onProgressBarClick","stackMinWidth","size","_extends","showCloseButton","buttonClassName","trigger","isWeighted","footer","to","isPrimary","propTypes","string","element","oneOf","oneOfType","number","position","defaultProps","createWeightedStacks","stackWidth","weightedStacks","map","stack","style","flex","students","hasExpandedView","studentGroups","i","groups","minWidth","student","firstName","first_name","lastName","last_name","user_id","isNoResults","stopPropagation","learnosityReport","learnosityReportScoreParsed","learnosityReportMaxScore","fetchAssessments","fetchCategories","fetchSubjects","fetchGroupedAssignments","RESET_ASSESSMENT_STATE","ADD_QUESTION_TO_STATE","ADD_QUESTIONS_LIST_TO_STATE","REMOVE_NEW_ITEM_FROM_STATE","resetAssessmentState","addQuestion","addQuestions","showNewItem","removeNewQuestion","isEmpty","loadingAssessments","loadingAssignment","loadingSubjects","loadingCategories","loadingResults","loadingGroupedAssignments","activeAssignment","itemsData","itemData","results","categories","groupedAssignmentsData","newItem","failure","itemsList","isNewItemInFetchedItems","takeLatest","all","apiSaga","applyFilterCustomLabel","assessmentsSaga","initId","silent","callback","callbackValue","subjectsSaga","categoriesSaga","minimal_fields_only","subunitLabel","groupedAssignmentsSaga","assessmentSaga","TRIGGER","ASSESSMENT_TYPE_ENUM","isOnLogout","clearLocalStorage","isLockdownBrowser","clearPersistedFilters","LOGOUT_WHITELIST","IdentityWidget","constructor","identityHook","ref","elm","bindLevityEvents","OVERRIDE_SSO_LOGIN","info","bindLevityEventsAction","cbSession","cbObject","cb","core","iam","getEventBus","on","events","Logout","levityLogout","Login","levityLogin","AWSLogin","isLoggedIn","tokenSessionId","levityLoginAction","sessionId","levityLogoutAction","user","current_user","impersonating","ssoLogin","flowRight","compose","withMeQuery","clearDefaultEducationPeriodAction","WrappedComponent","PermissionsContainer","componentDidUpdate","prevProps","meQuery","prevSubject","refetch","showQuizBuilder","quiz_builder","subjectData","logoutSuccess","LOGOUT_SUCCESS","savePreferenceSuccess","SAVE_PREFERENCE_SUCCESS","storeCbSessionAction","authenticateStrategyAction","navigateToError","redirectToHomeAction","redirectToROSLoginAction","redirectToLoginAction","authorize","login","storeApolloClientAction","addSession","endSession","UserRoles","DASHBOARD_ID","isSubjectHasResource","handleRoleRedirect","userRole","ADMIN","isCoordinator","COORDINATOR","handleSubjectRedirect","firstSubjectId","redirectToUrl","apolloClient","withApollo","LoadingSpinner","Notifications","ToastNotifications","timeLeftUntilCbSessionTimeout","timeLeftUntilCBSessionExpire","authenticate","SecureFirewallCheck","SplitIOHandler","ToastContentWrapper","ValidatedRoute","nestedTreeToKeyPairsWithTypes","serializeType","val","Array","isArray","logPropChanges","oldProps","nextProps","oldKeys","newKeys","dict","acc","ele","changes","pair","newVal","oldVal","RequireAuth","bind","componentDidMount","isLocalDevelopment","process","env","ENV","authenticateStrategy","storeCbSession","storeApolloClient","currentCBSession","cbSessionExpiration","APROLink","RegExp","ROS_FRONTEND_URL","PLLink","CB_LEGACY_URL","whiteListedReferrers","test","document","referrer","initialCheckOccurred","isNotInitialCheckAndReferredFromAPRO","flagHandler","splitName","cb_session_expiration_check","expirationThreshold","cb_session_expiration_threshold","useCreateTimeOrExpireTime","levity_use_createtime","expirationTimeDiff","cb_session_expiration_override","setItem","invoke","client","shouldComponentUpdate","pathnameChanged","searchChanged","rerender","rendering","reloading","componentWillUpdate","pageLoaded","fulfill","cancelled","delay","race","select","take","takeLeading","isOnLogin","isOnRoot","isOnJoin","renderValidation","fetchFlags","loginWithLevity","setGlobalCurrentUser","LOCKDOWN_PAGES","sendForAuthentication","initFaro","selectCbSession","auth","getApolloClient","getUserData","redirectToROS","redirectToROSLoginSaga","directLogin","authenticateStrategySaga","query","account_updated","accountUpdated","directlogin","error_id","CURRENT_PILOT_NAME","splitPathname","isLockdownPage","cbSessionIsLoggedIn","serviceAccountsSaga","uuidRegex","attempts","maxAttempts","timeout","serviceAccountsResponse","authorizeServiceSaga","isLogin","apolloClientMeResponse","nextEducationPeriod","successObject","STUDENT","faroFeatureFlagName","faroFeatureFlagTreatment","shouldTrack","redirectToHomeSaga","redirectPath","redirect_path","authSaga","FAILURE","dayjs","Cookies","v4","uuidv4","userRoles","storeUserType","EDUCATIONAL_PERIOD_PREFERENCE","PREFERENCE_CONTEXT_SUBJECT","throttle","getUserLocalStorageKeys","instrumentFaro","ERRORS","STANDALONE_PAGES","cookies","globalCB","getAuthSession","currentTime","expirationTime","diff","cbSessionCreation","add","addEventListener","shouldRedirect","hidden","method","FYM_ACCOUNTS_URL","namespace","basicProfile","username","userName","hashId","resp","cb_redirect_url","refresh_token","parse","appcues_access_token","professional","PILOT_P2","TEACHER_UNKNOWN","STUDENT_EMPTY_ENROLLMENT","catch","redirect","roles","set","findGroupId","userSubject","getPeriodObjFromValue","period","ed","getStoredPreference","preference","preferences","groupId","storedPref","pref","storedPreferenceType","contextId","rightPrefType","chosen","getStoredEducationPeriodPreference","fromSubject","teacherSubject","s","getEducationPeriodForSubject","subjectHasCurrentEducationPeriod","subjectEducationPeriod","subjectHasNextEducationPeriod","hasAccessToAnyPeriod","latestPeriodWithAccess","slice","endDate","accessTokenRefresh","getRefresh","baseURL","prom","finally","cancel","trailing","shouldRedirectToSSO","logPageRegExp","urlParsed","URL","redirectTo","SSO_LOGIN_URL","currentLocation","isTeacher","TEACHER","faro","api","setUser","attributes","import_id","importId","tree","limit_depth","traverse","currentNode","currentPath","valueType","pathSegment","newPath","rootType","unshift","useCallback","A11y","ContactUs","popoverRef","buttonText","pushParamsToHistory","current","close","contactus","getSignedUrl","PDFS","APCLASSROOM_FOLDER","teacherGuidesKey","studentGuidesKey","apKey","defaultKey","preApKey","FAQ","isPreAPCoord","isPreApSubject","isPreAPTeacher","subjectProgram","PreAP","isAPTeacher","AP","isPreAPStudent","isAPStudent","isAPAdmin","isPreAPAdmin","storePdfItems","toArray","_len","someArguments","_key","getPdfItems","section","itemsFound","sectionPath","envPath","returnObj","PDFSbyPath","_len2","levelArguments","_key2","level","PDF_ENV","pdfRender","pdfItems","pilot","baseDir","l","webLink","target","rel","linkRef","createRef","bucket","signedURL","teacherGuides","studentGuides","userType","object","regularSubjects","baseClickHelp","preapBaseClickHelp","preapTeacherGuide","apTeacherGuide","apAdminCoordGuide","apStudentGuide","preapStudentGuide","preap","admin","coordinator","teacher","ap","calculus","world_history","behavioral","appendText","FocusLock","ImpersonateFocusWrapper","isPlayerRoute","isBluebookUi","autoFocus","AccessibilityWrapper","StudentsSearch","isImpersonatingLC","isImpersonatingStudent","withUnitsConnectLean","getSectionAndStudentName","getLDBImpersonatingHeaderDetailLC","setStudentId","setSectionId","setIsReadOnly","setEducationPeriod","setCurrentSubject","setTeacherClasses","useDoImpersonate","useDoLogout","useTeacherData","isTeacherTeachingClass","getImpersonatedStudentClass","ResponsiveView","impersonatorFymClient","ImpersonateHeader","wasRedirected","setWasRedirected","isImpersonatingFlagPreap","resetUnitsInternalStore","areFeatureFlagsLoaded","canImpersonate","isReadOnly","studentId","sectionId","teacherClasses","setIsImpersonating","assignmentId","doImpersonate","getTeacherData","doLogout","onStudentSelected","onLogoutClick","impersonatingSubject","ISUBJECT","sectionIdLC","SECTION_ID","subjectIdLC","currentSubjectIdLC","ICURRENTSUBJECT","EDUCATION_PERIOD","querySelector","classList","STUDENT_ID","selectedSubject","educationPeriodLC","classes","isTeacherTeaching","studentIdLC","impersonatedStudentClass","sectionIdFound","screens","renderLDBHeaderDetails","studentName","sectionName","selectedSectionId","selectedStudentId","preap_teacher_impersonates_student","bluebook_ui","ConfirmDialog","ImpersonateModal","onClose","selectedStudent","setSelectedStudent","currentClasses","setCurrentClasses","filteredClasses","onViewStudentExperience","studentWithSection","onSuccess","isPrimaryBtnDisabled","content","btnPrimary","containerClassName","func","useSubjectRestrictions","useImpersonateModal","UnableToViewModal","isImpersonatingSubjectAvailable","getUnableToViewContent","ImpersonateSubjectSelector","preapImpersonatingFlag","isImpersonatingReady","setIsImpersonatingReady","externalLinkModal","openExternalLinkModal","modal","setSubjectRestrictions","onRestrictedSubject","messageType","contentData","program","cloneElement","onSubjectClick","sortBy","AutocompleteSelect","sections","setSections","selectedSection","setSelectedSection","setStudents","allStudents","setAllStudents","allStudentsFound","allSections","sectionStudents","studentsMap","defaultSelectedSection","foundStudents","_ref8","onSectionChange","onStudentChange","onStudentCustomReset","isSearchingMode","portalContainerClassName","listClassName","onChange","placeholder","customReset","clearable","description","otherDescription","bindActionCreators","setIsWelcomeVideoFirstTime","doImpersonateAction","logoutImpersonate","logoutImpersonateAction","refreshImpersonatorAccessToken","refreshImpersonatorAccessTokenAction","saveLocalStorageData","getImpersonatorTokens","updateImpersonatorAccessToken","getStudentTokens","getImpersonatedStudentId","emptyImpersonaterLocalStorage","unitsClient","fymClient","reportsClient","wizardsClient","IMPERSONATING_TELEMETRY_TYPES","postImpersonatingTelemetryData","sagaDispatch","pageReloadingFulfill","loginSuccess","setItemsAction","getSubjectPath","impersonatedStudentId","stopImpersonatedTelData","eventType","STOP","onReady","refreshResponse","newExpires","http_status_code","resetStore","currentSubject","routerSubject","startImpersonatedTelData","START","fetchPolicy","studentAccessToken","studentRefreshToken","studentExpires","remove","IMPERSONATOR_REDIRECT_SUBJECT_ID","logoutDispatchers","isOpen","setIsOpen","otherProps","setOtherProps","onOpenModal","p","isSubjectAvailable","SUBJECT_RESTRICTION_TYPES","stopSubjectSelection","studentSubject","PROGRAM_AP","PROGRAM_PREAP","NOT_TEACHING","getTeacherInfo","setTeacherSubjects","setClasses","mePromise","teacherInfoPromise","variables","String","ACTIONS","SET_READ_ONLY","SET_STUDENT_ID","SET_SECTION_ID","SET_IMPERSONATOR_EDUCATION_PERIOD","SET_IMPERSONATOR_TEACHER_CLASSES","SET_IMPERSONATOR_TEACHER_SUBJECTS","SET_IMPERSONATOR_SUBJECT","SET_IMPERSONATOR_CURRENT_SUBJECT","SET_IS_WELCOME_VIDEO_FIRST_TIME","isWelcomeVideoFirstTime","sagaInitialState","loadingImpersonating","sagaReducer","impersonateSaga","logoutImpersonateSaga","refreshImpersonatorAccessTokenSaga","teacherImpersonateSaga","RO","IS_WELCOME_VIDEO_FIRST_TIME","STUDENT_NAME","SECTION_NAME","foundStudent","classEp","connectLean","backupImpersonatorLC","impersonatorAccessToken","valueOf","removeItem","scope","setState","units","contructParamsForLDBImpersonating","is_impersonating","impersonator_subject","impersonating_student_id","impersonating_section_id","impersonator_education_period","impersonating_student_name","impersonating_section_name","sectionInfo","t","actualSectionId","ep","classesForThisEP","studentFoundInClass","foundClass","sendImpersonatingDetailsToTelemetry","amUserId","app","impersonated_student_id","am_user_id","cb_user_id","subject_id","class_id","timestamp","assign","MCQ_WIDGET_JSON","stimulus","ui_style","validation","scoring_type","valid_response","SHARED_PASSAGE_JSON","feature_id","heading","MCQ_WIDGET_TEMPLATE","FRQ_WIDGET_JSON","formatting_options","FILE_UPLOAD_WIDGET_JSON","max_files","allow_jpg","allow_png","allow_gif","allow_pdf","allow_ms_word","allow_ms_excel","allow_ms_powerpoint","AUDIO_WIDGET_JSON","FRQ_WIDGET_TEMPLATE","FILE_UPLOAD_WIDGET_TEMPLATE","AUDIO_WIDGET_TEMPLATE","MATHEMATICS_CHARACTER_MAP_ICON","MATHEMATICS_CHARACTER_MAPS","MATHEMATICS_FORMATTING_OPTIONS","DEFAULT_FORMATTING_OPTIONS","COMPUTER_SCIENCE_FORMATTING_OPTIONS","FOREIGN_LANGUAGE_FORMATTING_OPTIONS","FRENCH_CHARACTER_MAPS","GERMAN_CHARACTER_MAPS","ITALIAN_CHARACTER_MAPS","SPANISH_CHARACTER_MAPS","ASSIGNMENT_STATUS_CRITERIA","isObject","omit","isFunction","transform","ATTESTATION_PREFERENCE","SUBJECT_TYPE_VIEW","MathematicsSubjects","ALPHABET","findResponseIndex","option","validateQuestion","question","validate","showCorrectAnswers","removeCriteriaFromRubricResponse","rubricResponses","allResponses","resultsForStudent","score","rubric","hasAllRubricsFilled","scoringRubricItemsApp","responses","getResponses","rubricItems","getItems","hasAllResponses","isAllResponsesScored","every","getFinishedPercent","progress","notStarted","not_started","started","submitted","scoring","scored","studentScored","student_scored","teacherAndStudentScored","teacher_and_student_scored","complete","readyToScore","ready_to_score","scoredSubmissions","totalSubmissions","isAssignmentInProgress","flattenTags","tagsToFlatten","tagToFlatten","tag","tags","curr","mapTagsToCategories","mappedTags","tagId","category","categoryId","createResponseAnalysis","learnosityReportsResponseAnalysisData","reference","responseId","reportData","getQuestionResponseReference","questionId","internalResponseId","separatorIndex","questionMatchesReference","question_id","questionMatchesResponseId","referenceQuestions","questions","referenceQuestionIds","Set","referenceItems","has","sessions","getStudentResponseForItem","learnosityQuestion","processedOptions","getProcessedOptions","responsesPerItem","PROVIDER_MODES","preview","switchMode","containerId","mode","isPreviewMode","selectorSuffix","sharedPassageButton","editorQuestionButton","click","goToQuestionWidget","itemQuestion","navigate","getPassageFromItem","passage","goToPassageWidget","setWidgetFields","editorApp","fields","fieldValue","attr","attribute","setValue","findSubject","subjectType","findQBSubject","currentTeacherSubjects","QUESTION_BANK","findPREAPSubject","PREAP","acceptedAttestation","qbSubject","attestationPreference","findAttestationPreference","shouldShowAttestationDialog","showAttestationFeatureFlag","isAlreadyShown","containsSecureQuestions","attestationPreferenceForSubject","attestationState","hasContent","html","DOMParser","parseFromString","documentElement","textContent","hasLearnosityQuestionAllAnswersCorrect","container","querySelectorAll","customCbRubricsConfSetter","mainLabel","assignment","progressPerStudent","customCbRubricsConf","showStudentResults","showTeacherResults","showCriteriaLabel","getMathematicsSubjectsConfig","questions_api_init_options","labelBundle","characterMathMapTitle","characterMapMathIcon","characterMapMathCharacters","getTeacherRubricReferenceAlias","itemId","legacyRubricReference","itemReference","categoryIndex","buildCustomCbRubricQuestion","deserialiseScoringRubricResponses","scoringRubricResponses","responsesByQuestion","teacherRubricReferenceAlias","downloadGeneratedAnswerSheetAction","DownloadNowLink","loadingGeneratedAnswersheet","mapDispatchToProps","takeEvery","initiateDownloadForUserAction","toastify","generatePaperscorerAnswerSheet","assignmentPaperscorerAnswerSheet","frqPrintSettings","assignmentName","subjectName","formValues","assignmentJsonData","JSON","jsonData","assignment_json_data","text","is_preview","config_json","body","stringify","FYM_BACKEND_PAPERSCORER_API_URL","answer_sheet_url","download_url","downloadUrl","answerSheetUrl","formUrl","generatePaperscorerAnswerSheetPreview","identifier","downloadAllPaperscorerAnswerSheets","assignment_id","paperscorerForms","downloadIndividualPaperscorerAnswerSheet","paperscorerForm","fetch","blob","Blob","createObjectURL","download","appendChild","paperscorerSaga","SUCCESS","graphql","snakeCase","getQuizQuestionInfo","getAssessmentSecurityInfo","savePreference","withCourseOutline","hasNonSecureQn","withQuizQuestionInfo","alias","notifyOnNetworkStatusChange","assessmentId","questionTypes","skip","assessmentDataCache","quizHasNonSecureQns","isFinalExam","isAdminOrCoordinator","cache","withSavePreference","withAssessmentSecurityInfo","assessment","isAssessmentSecurityInfoLoading","isPracticeExam","isExamModeAvailable","totalMaxTime","hasSecureQuestions","isSecure","quizHasAnySecureQnsPE","assessmentWithQuestionsData","convertKeysToSnakeCase","k","escapeHTML","charCodeAt","decodeHTML","encodedText","doc","ASSIGNMENT_STATUSES","cellClassName","locked","unlock","largeFontSubjects","TEI_TYPES","QUESTION_TYPES","multipleChoice","freeResponse","mcq","frq","BOOKMARKED_QUESTIONS","STAFF","DEMO","PARENT_PREVIEW","REDUX_LOGGING_ENABLED","SITE_CODE","APP_ID","STUDENT_DOMAIN_CHECK_LIST","FYM_WIZARDS_BACKEND_URL","FYM_UNITS_BACKEND_URL","TEACHER_SSO_LOGIN_URL","UNIT_ASSESSMENTS","ASSESSMENTS","LDB_HOW_TO_GUIDE","LDB_FAQ_WEB_PAGE","TROUBLESHOOTING_LINK_STUDENTS","GENERIC_LDB_DOWNLOAD_LINK","TROUBLESHOOTING_LINK_TEACHERS","SIGNUP_SUCCESS","SIGNUP_ERROR","LOGOUT","LOGOUT_ERROR","WIZARDS_FLAGS_INIT","WIZARDS_DISABLE","WIZARDS_EXAM_CLOSE","WIZARDS_EXAM_CLOSE_READY","WIZARDS_INFO_FETCH","WIZARDS_INFO_FULLFILLED","SET_ADMIN_SUBJECTS","ADMIN_START_LOADING","ADMIN_END_LOADING","SAVE_PERFORMANCE_TIERS","PERFORMANCE_TIERS_START_LOADING","PERFORMANCE_TIERS_END_LOADING","QUESTION_PREVIEW_TOGGLE","QUESTION_ITEM_ID","LOCATION_CHANGE","UNIT_FILTERS_DATA","UNIT_COURSE_OUTLINE_CONFIG","QuestionBank","SET_QUESTION_BY_STIMULUS","UPDATE_ASSESSMENT_CACHE","HIDE_DIGITAL_ASSESSMENT_INFO_MODAL","ATTESTATION_SUBJECT","UNIT_FILTER_PREFERENCE","JSTOR_TERMS_AND_CONDITIONS","STANDARDS_REPORTS_FILTER_STATE","SET_USER_EDUCATION_PERIODS","SET_SKILL_SUMMARY_UPDATED_AT","FETCH_SHARED_RESOURCE_START","FETCH_SHARED_RESOURCE_SUCCESS","FETCH_SHARED_RESOURCE_FAILED","UPDATE_SHARED_RESOURCE_STATUS","SET_APD_CAROUSEL_DATA","UPDATE_APD_CAROUSEL_DATA","LEARNING_CHECKPOINT","PERFORMANCE_TASK","FETCH_RESOURCE_FILTERS_START","FETCH_RESOURCE_FILTERS_SUCCESS","FETCH_RESOURCE_FILTERS_FAILED","SEARCH_RESOURCES_START","SEARCH_RESOURCES_SUCCESS","SEARCH_RESOURCES_FAILED","SEARCH_RESOURCES_RESET","FETCH_ASSIGNMENT_DATA_SUCCESS","FETCH_ASSIGNMENT_DATA_FAILED","FETCH_ASSIGNMENT_DATA_START","FETCH_ASSIGNMENT_STUDENTS_STATUS_START","FETCH_ASSIGNMENT_STUDENTS_STATUS_SUCCESS","FETCH_ASSIGNMENT_STUDENTS_STATUS_FAILED","REMOVE_ASSIGNMENT_STUDENTS","SET_BOOKMARKS","REMOVE_BOOKMARK","ADD_BOOKMARK","SET_SECURE_ASSIGNMENT_IDS","PREVIOUS_STUDENT","NEXT_STUDENT","SET_TEACHER_VIEW_SCORING_RUBRIC","gql","getUserEducationPeriods","getAdminInfo","getStudentInfo","getAdminPlCourses","getAssessmentGroupByAssignmentInfo","getAssignmentRestrictions","getPerformanceTiers","saveFeedback","saveSessions","assessmentPreviewSignedRequest","assessmentPreviewData","assignmentPreviewDataOnly","assignmentReviewScoringRubric","assignmentProgress","assignmentPreviewData","studentAssignmentReviewData","assignmentQuestionData","assignmentPlayerData","assignmentReview","startAssignmentMutation","bluebookStartAssignmentMutation","assignmentSubmitMutation","assignmentScoringByRubric","assignmentScoringByRubricPreap","updateScoresMutation","assignmentWithScoring","assignmentScrambledOrder","assignmentWithAssessment","scoringGridAssignment","assignmentSessionTemplate","teacherAssignments","assignmentProgressWithTagPairs","relatedQuestions","getEditQuestion","getCopyQuestion","saveQuestionMutation","getQuestionsPreview","getSampleExam","getQuestionsTypesOnAssignment","annotationDataQuery","createAnnotationMutation","updateAnnotationMutation","deleteAnnotationMutation","assessmentTestPreviewQuery","assignmentScoringGuideQuery","assessmentScoringGuideQuery","assessmentTestBookletQuery","logSubjectVisitMutation","trackResultsVisit","trackItemResultsVisit","proctoringQuery","extendTimeMutation","assignmentSession","getQuestionRubrics","getStimulusQuestions","getAssessmentInfo","getQBCreateAddInfo","getQBCreateAssessmentInfo","deleteAssessmentMutation","submitSessions","unsubmitSessions","createQuiz","updateQuiz","copyAssessment","getAggregatedVideoStats","getAdminCoordAggregatedVideoStats","getSharedResources","videoStatusesQuery","getVideoWatchedPercentage","getSearchedResources","itemRelatedVideos","pauseSessionMutation","resumeSessionMutation","videoMarkComplete","deleteApVideoAssignment","itemShareInviteCopyLink","checkShareInviteEmail","itemShares","getItemShareInvitesQuery","assignmentTimer","deleteQuestionMutation","getAggregatedSppStats","GeneratePracticeQuiz","AutoGenerateQuiz","CreateDynamicAssessment","AssessmentAssignedInfoQuery","AssignmentSessionsStartedAt","GetFRQResponsesPerQuestionQuery","GetFRQResponsesPerUserQuery","SavePlayerSessionAuditLog","PlayerSessionAuditLogs","adminData","apdCarouselData","videoId","providerVideoId","playTimePercentage","watchedPercentage","updateAssessmentDataCache","bookmarks","isLoadingSubjectCourseOutline","FULFILL","show_attestation_confirmation_dialog","ProgressDashboard_GroupParticipation","secure_browser","secure_browser_preap","course_summary_points_possible","course_summary_export_button","live_status_report","edit_existing_question","show_usage_tab_for_admins_coords","enable_stimulus_filter_on_qb_create","qb_elastic_search_items_create","qb_elastic_search_items_full_text","remove_action_column","questions_list_skill_column","qb_print_preview","remove_question_from_preview","enable_quiz_auto_save","cb_session_expiration_time","cb_session_expiration_check_before_take_assignment","ppc_custom_name","show_frq_responses","show_frq_responses_student","cb_session_expiration_logout_check","qb_create_add_all","copy_assignment_details","show_student_practice_icon","multisubjectschool_export","paperscorer_answer_sheets","show_assessment_practice_icon","student_practice_blank_message_and_order","student_reference_banner","enable_audio_playback_complete","scoring_rubric_cumulative_score","show_education_period_filter","scoring_rubric_disable_auto_save_on_review","AP_AY_dropdown_at_top","show_global_nav","fy_13178_show_new_exam_alignment_text","icon_preview_update","show_gray_top_right_preview_player","edit_cb_provided_question","double_arrow","pacing","review_mode","results_distractors","show_lab_edition_downloads","show_related_videos_carousel","secure_firewall_check_interval_duration_hours","secure_firewall_check_enable","show_related_videos","student_coursesummary_detail","edit_existing_question_frq","ap_daily_videos_admin_usage","show_0pct_watched","copy_assessments","individual_student_assignment","preap_outline_use_resources_route","outline_search_instructional_resource_search_text","reorder_questions","edit_question_assessment","iPad_LDB_message","progress_actions_dropdown","preap_quick_tips","assign_to_popover_default_opened","PS_links_in_actions_dropdown","PS_download_AS_link","PS_show_tips","paperscorer_allow_unsubmit","show_paperscorer_progress","reshape_two_column_questions","reshape_two_column_questions_preap","copy_question_assessment","copy_question_preview","websocket","show_ap_stories_in_user_menu","show_video_mark_complete","export_all_assignments","results_other_tag_columns","limit_report_years","admin_report_csp_group_csv_export","show_my_assignments_date_picker","qb_filter_include_options","show_qb_build_quiz_most_recent_unassigned","poc_qb_preview_approach_gama","hometq_preview_approach_gama","cr_show_practice_exams","mastery_report","ap_qb_preview_load_more","student_practice_problems","results_assignment_actions","qb_list_column_popover","ps_multipage_frq_responses","my_assignment_page_size","qb_list_sort_priority","disable_ppc_auto_assign","spp_filter_by_school","spp_filter_by_subject","question_bank_tabs","shared_assessments","dab_for_pe_p1","dab_for_micro","dab_for_macro","internal_dab_ui","save_report_dab","retire_qb_questions","scramble_questions_per_student","preap_sso_professional_learning","hide_pl_links_for_preap","qb_cached_lrn_questions_limit","ap_sources","hierachical_qb_filters","my_assignments_pdf","labels_dnd","no_reload_remove_label","qb_question_set_support","show_maintenance_page","no_reload_update_label","individual_student_assignment_settings","threeplay_plugin","set_student_app_cues","assignments_overview_info_panel","immediate_feedback","generate_practice_quiz","use_new_grouped_actions","disable_lazy_load","enter_scores_expansion","allow_late_submission","show_assessment_audit","show_responses_by_question_part_pdf_action","bluebook_ui_highlight_enabled","new_assign_modal_cas_button","updated_timer_controls","student_player_defer_render","bluebook_ui_highlight_acknowledgement_enabled","refactored_qb_inclusion_filters","bluebook_ui_keyboard_shortcuts","bluebook_ui_calculator","bluebook_ui_shortcuts_calculator_rs_ack_enabled","scoring_improvements","wbl_print_mode","enable_allow_save_exit_option","admin_report","use_last_wistia_player","bulk_delete_my_quizzes","attestations_25_26","attestations_26_27","preap_disable_assign_action","contact_us_AP_Video","security_attestation_25_26","security_attestation_26_27","enable_print_mode_for_mcq_pcs_and_lc","redis_cache_course_outliine","preap_advanced_settings_modal","score_frq_authoring_cards","character_toggle","use_assignment_scores","FIGSS_language_toggle","allow_audio_record_with_ldb","bluebook_ui_rs_available_new_subjects_enabled","bluebook_project_qa","bluebook_project_presentation","stacked_questions_report","assignment_status_polling_interval","timed_assignment_status_polling_interval","is_subject_restricted","is_professional_learning_suppressed","consolidated_assignment_overview_page","consolidated_assignment_overview_refetch_interval_in_seconds","is_duplicate_quiz_suppressed","is_generate_practice_suppressed","dynamically_correct_progress_vector","keyboard_audio_button","ldb_swipe_away_guard_enabled","debug_ldb","telemetry_use_ecs_backend","learning_checkpoint_summary_tab","restrict_topic_questions_for_course","bb_lightbox","enter_scores_form_v2","flagListWithConfig","student_cb_alert","teacher_authoring_cb_rubric_templates","maintenance_banner","assign_modal_wl_mt","assign_modal_remove_immediate_feedback","sort_object_by_keys","new_obj","createStore","leanReducer","createLogger","thunk","routinePromiseWatcherSaga","createSagaMiddleware","persistReducer","storage","hardSet","wizards","formReducer","apstudent","assignItem","filters","itemTags","submissionData","impersonatingSaga","filterControls","authReducer","impersonatingSagaReducer","visitedSubunits","visitedUnits","questionPreview","itemShareInvites","assessmentSummary","dashboardAssignments","itemTagsSaga","submissionDataSaga","paperscorer","teacherAssignment","assignmentStudentsStatus","searchedResources","resourceFilters","sharedResources","skillSummary","questionBySharedStimulus","questionPreviewToggle","nav","entrypointSaga","studentsBySection","secureAssignmentIds","sagaMiddleware","createRootReducer","rootSaga","middleware","setGlobalScope","reducers","apollo","form","lean","impersonatingUser","version","stateReconciler","__REDUX_DEVTOOLS_EXTENSION__","maxAge","f","run","isAfterEducationPeriodExpires","isCurrentEducationPeriod","checkIfAuthenticated","setImpersonatingMeOverrides","isAuthenticated","isStaff","isDemo","isContentExpiring","isExpiring","edCode","nextEdCode","periods","nextCode","isNewContentAvailable","isAvailable","previousCode","hasAccessToNextYear","nextEducationPeriodCode","isNewTeacher","currentEducationPeriodCode","isContentExpired","userEducationPeriods","meReducer","prevLocation","allAnswerSheetUrls","answerSheetsPreviewUrl","answerSheetsUrl","individualAnswerSheetUrl","loadingIndividualAnswerSheet","loadingAllAnswerSheets","loadingAnswerSheetsPreview","generatedAnswersheetUrl","_ref9","toggle","expanded","isFetching","resources","isDefault","isFetchingTopicQuestions","removeSharedResource","resource","updateSharedResources","watchStatus","isComplete","updatedResources","date","getActiveSubject","activeSubject","currentClass","subjectsThatUseBluebook","subjectUsesBlueBookDigitalExam","useBluebookDigitalExam","subjectReducer","teacherAssignmentInitialState","associatedResources","teacherViewScoringRubricStatus","assignmentStudentsStatusInitialState","assignmentStudentsStatusData","assignmentIds"],"sourceRoot":""}