@clickview/lite 0.69.1-dev.0 → 0.69.1-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{2636-lite-f995954232.chunk.css → 6078-lite-4d1b877b3f.chunk.css} +4 -0
  3. package/dist/css/{1239-lite-8152f713c8.chunk.css → 7210-lite-a568e8ec1e.chunk.css} +1 -0
  4. package/dist/scripts/1210-7afb28caac-lite.chunk.js +2 -0
  5. package/dist/scripts/1210-7afb28caac-lite.chunk.js.map +1 -0
  6. package/dist/scripts/232-1522c00252-lite.chunk.js +3 -0
  7. package/dist/scripts/232-1522c00252-lite.chunk.js.map +1 -0
  8. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js +2 -0
  9. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js.map +1 -0
  10. package/dist/scripts/3079-0a333d6805-lite.chunk.js +2 -0
  11. package/dist/scripts/3079-0a333d6805-lite.chunk.js.map +1 -0
  12. package/dist/scripts/3110-eee18143c6-lite.chunk.js +2 -0
  13. package/dist/scripts/3110-eee18143c6-lite.chunk.js.map +1 -0
  14. package/dist/scripts/312-693aa30814-lite.chunk.js +2 -0
  15. package/dist/scripts/312-693aa30814-lite.chunk.js.map +1 -0
  16. package/dist/scripts/4229-477b1858dc-lite.chunk.js +2 -0
  17. package/dist/scripts/4229-477b1858dc-lite.chunk.js.map +1 -0
  18. package/dist/scripts/{4845-f3646fb657-lite.chunk.js → 4845-9b4657e696-lite.chunk.js} +2 -2
  19. package/dist/scripts/4845-9b4657e696-lite.chunk.js.map +1 -0
  20. package/dist/scripts/5679-b40a221c78-lite.chunk.js +2 -0
  21. package/dist/scripts/5679-b40a221c78-lite.chunk.js.map +1 -0
  22. package/dist/scripts/6046-104677f08c-lite.chunk.js +2 -0
  23. package/dist/scripts/6046-104677f08c-lite.chunk.js.map +1 -0
  24. package/dist/scripts/6078-0bc71f8768-lite.chunk.js +2 -0
  25. package/dist/scripts/6078-0bc71f8768-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{6188-e108abca25-lite.chunk.js → 6188-77fc2f3ec5-lite.chunk.js} +2 -2
  27. package/dist/scripts/6188-77fc2f3ec5-lite.chunk.js.map +1 -0
  28. package/dist/scripts/6351-dff9edbb16-lite.chunk.js +3 -0
  29. package/dist/scripts/6351-dff9edbb16-lite.chunk.js.map +1 -0
  30. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js +2 -0
  31. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js.map +1 -0
  32. package/dist/scripts/7210-d8fa7ca624-lite.chunk.js +3 -0
  33. package/dist/scripts/7210-d8fa7ca624-lite.chunk.js.map +1 -0
  34. package/dist/scripts/7482-13e6f78c32-lite.chunk.js +2 -0
  35. package/dist/scripts/7482-13e6f78c32-lite.chunk.js.map +1 -0
  36. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js +2 -0
  37. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js.map +1 -0
  38. package/dist/scripts/{bundle-90d3c7fd15.min.js → bundle-bad2e20859.min.js} +3 -3
  39. package/dist/scripts/{bundle-90d3c7fd15.min.js.map → bundle-bad2e20859.min.js.map} +1 -1
  40. package/package.json +1 -1
  41. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js +0 -2
  42. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js.map +0 -1
  43. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js +0 -3
  44. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js.map +0 -1
  45. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js +0 -2
  46. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js.map +0 -1
  47. package/dist/scripts/3036-d18c598435-lite.chunk.js +0 -2
  48. package/dist/scripts/3036-d18c598435-lite.chunk.js.map +0 -1
  49. package/dist/scripts/4229-75ba28a266-lite.chunk.js +0 -2
  50. package/dist/scripts/4229-75ba28a266-lite.chunk.js.map +0 -1
  51. package/dist/scripts/4266-e856b96643-lite.chunk.js +0 -3
  52. package/dist/scripts/4266-e856b96643-lite.chunk.js.map +0 -1
  53. package/dist/scripts/4598-f326dc1aec-lite.chunk.js +0 -2
  54. package/dist/scripts/4598-f326dc1aec-lite.chunk.js.map +0 -1
  55. package/dist/scripts/4845-f3646fb657-lite.chunk.js.map +0 -1
  56. package/dist/scripts/6046-44c115a89c-lite.chunk.js +0 -2
  57. package/dist/scripts/6046-44c115a89c-lite.chunk.js.map +0 -1
  58. package/dist/scripts/6188-e108abca25-lite.chunk.js.map +0 -1
  59. package/dist/scripts/6317-49be898c73-lite.chunk.js +0 -2
  60. package/dist/scripts/6317-49be898c73-lite.chunk.js.map +0 -1
  61. package/dist/scripts/6973-ede6601614-lite.chunk.js +0 -2
  62. package/dist/scripts/6973-ede6601614-lite.chunk.js.map +0 -1
  63. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js +0 -3
  64. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js.map +0 -1
  65. package/dist/scripts/9040-9393c59004-lite.chunk.js +0 -2
  66. package/dist/scripts/9040-9393c59004-lite.chunk.js.map +0 -1
  67. /package/dist/css/{3036-lite-1b3e9aa905.chunk.css → 3079-lite-1b3e9aa905.chunk.css} +0 -0
  68. /package/dist/css/{7075-lite-a377febbb0.chunk.css → 6351-lite-a377febbb0.chunk.css} +0 -0
  69. /package/dist/scripts/{4266-e856b96643-lite.chunk.js.LICENSE.txt → 232-1522c00252-lite.chunk.js.LICENSE.txt} +0 -0
  70. /package/dist/scripts/{1239-ed9b8aadb4-lite.chunk.js.LICENSE.txt → 6351-dff9edbb16-lite.chunk.js.LICENSE.txt} +0 -0
  71. /package/dist/scripts/{7075-9a76ce47c9-lite.chunk.js.LICENSE.txt → 7210-d8fa7ca624-lite.chunk.js.LICENSE.txt} +0 -0
  72. /package/dist/scripts/{bundle-90d3c7fd15.min.js.LICENSE.txt → bundle-bad2e20859.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6973],{5255:(e,t,n)=>{n.d(t,{Y:()=>i});var r=n(20354),a=n(30439);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function i(e){var t,n=r.a.useBasicFetch(e&&a.o.getAnonSessions(e));return(null===(t=n.data)||void 0===t?void 0:t.length)?n.data.reduce((function(e,t){return Object.assign(Object.assign({},e),(n={},r=t.sessionId,a=t,(r=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(r))in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,n));var n,r,a}),{}):{}}},41196:(e,t,n)=>{n.d(t,{W:()=>o});var r=n(20354),a=n(71553),s=n(20768),i=n(31949);function o(e,t,n){var o,u=r.a.useBasicFetch(i.N.currentUser()),l=r.a.useBasicFetch(!!e&&s.b.interactiveMetadata(e)),c=r.a.useBasicFetch(!!(null===(o=l.data)||void 0===o?void 0:o.interactiveId)&&s.b.interactive(l.data.interactiveId)),d=!!u.data&&!!c.data&&!!t;return r.a.useBasicFetch(d&&a.I.interactiveResultSet(l.data.interactiveId,l.data.id,u.data,t,n))}},26025:(e,t,n)=>{n.d(t,{B:()=>s});var r=n(1048),a=n(75795),s={getAudienceAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=r.t.isObject(e.params)?e.params:{},n=t.users,s=t.classrooms,i=t.classroomGroups,o=function(e){var n=t[e];if(n)return Array.isArray(n)?n:[n]},u={};return n&&(u.users=o("users")),s&&(u.classrooms=o("classrooms")),i&&(u.classroomGroups=o("classroomGroups")),u},getDateRangeAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=r.t.isObject(e.params)?e.params:{},n=t.from,s=t.to,i=t.rangeName,o={};return n&&(o.from=n),s&&(o.to=s),i&&(o.rangeName=i),o}}},40003:(e,t,n)=>{n.d(t,{Hb:()=>m,NG:()=>b,W5:()=>d,eO:()=>v,nG:()=>l,wO:()=>p,zn:()=>u});var r=n(23481),a=n(110),s=n(57266),i=r.T.encloseNamespace("shared.analyticsUtils");function o(e){var t=a.O.convertDateToUTC(e);return a.O.format(t,"YYYY-MM-DDTHH:mm:ss")}function u(){return new Date(2021,0,1)}function l(){return new Date}function c(e){return e.find((function(e){return!!e.default}))}function d(e,t){if(t)return e.find((function(e){return e.name===t}))}function m(){var e=u(),t=(new Date).getFullYear(),n=t===e.getFullYear();return[{name:i("today"),startDate:new Date,endDate:new Date},{name:i("thisMonth"),startDate:new Date(t,(new Date).getMonth(),1),endDate:new Date},{name:i("lastThreeMonths"),startDate:new Date(t,(new Date).getMonth()-2,1),endDate:new Date},{name:i("lastSixMonths"),startDate:new Date(t,(new Date).getMonth()-5,1),endDate:new Date},{name:i("thisYear"),startDate:new Date(t,0,1),endDate:new Date},{name:i("lastYear"),startDate:new Date(t-1,0,1),endDate:new Date(t,0,0),disabled:n,tooltip:n?i("lastYearDisabled"):""},{name:i("allTime"),startDate:a.O.subtract(new Date,5,"years"),endDate:new Date,default:!0}]}function f(e){return a.O.format(e,"YYYY-MM-DD")}function v(e){return e.name?{rangeName:e.name}:{from:f(e.startDate),to:f(e.endDate)}}function b(e,t){var n=t.to,r=t.from,i=t.rangeName,o=d(e,i);if(o)return r||n?void s.e.updateParams(v(o),{replace:!0,merge:!0,keysToRemove:["from","to"]}):o;var m=c(e);if(r&&n&&a.O.isValid(r)&&a.O.isValid(n)){var f=!0,b=a.O.convertDateToUTC(new Date(r)),p=a.O.convertDateToUTC(new Date(n));a.O.isBefore(b,u(),"day")&&(b=u(),f=!1),a.O.isAfter(p,l(),"day")&&(p=l(),f=!1),a.O.isAfter(b,p)&&(b=m.startDate,p=m.endDate,f=!1);var g={startDate:b,endDate:p,name:f?i||"custom":""};if(f)return g;s.e.updateParams(v(g),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}else s.e.updateParams(v(m),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}function p(e,t){var n=function(e){return o(a.O.startOf(e,"day"))},r=function(e){return o(a.O.endOf(e,"day"))},s=d(e,t.rangeName);if(s)return{start:n(f(s.startDate)),end:r(f(s.endDate))};if(t.from&&t.to)return{start:n(t.from),end:r(t.to)};var i=c(e);return{start:n(f(i.startDate)),end:r(f(i.endDate))}}},43503:(e,t,n)=>{n.r(t),n.d(t,{InteractiveStudentResultsView:()=>S});var r=n(32735),a=n(23481),s=n(20354),i=n(2948),o=n(5255),u=n(41196),l=n(9193),c=n(26025),d=n(26136),m=n(40003),f=n(3218),v=n(9111),b=n(38143),p=n(39151),g=n(20768),y=n(26304),w=n(91286),h=n(93322);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var D=a.T.encloseNamespace("shared.interactiveStudentResults");function S(e){var t,n,a,S,A,O,C=(A=(0,i.D)(b.g.ANONYMISE_USERS),O=1,function(e){if(Array.isArray(e))return e}(A)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,s,i,o=[],u=!0,l=!1;try{if(s=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=s.call(n)).done)&&(o.push(r.value),o.length!==t);u=!0);}catch(e){l=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return o}}(A,O)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(A,O)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,h.F)();var E=s.a.useBasicFetch(g.b.interactiveMetadata(e.interactiveId)),R=s.a.useBasicFetch((null===(t=E.data)||void 0===t?void 0:t.interactiveId)&&g.b.interactive(E.data.interactiveId)),I=c.B.getDateRangeAppLinkParams(),N=(0,u.W)(e.interactiveId,(0,m.wO)((0,m.Hb)(),I)),M=s.a.useBasicFetch(p.L.config()),j=(0,o.Y)(e.shareId);(0,w.v)([E,N]),(0,y.b)(E);var T=(0,l.D)(null===(n=R.data)||void 0===n?void 0:n.id,null===(a=E.data)||void 0===a?void 0:a.id,e.closePopup),F=T.markedAnswers,B=T.addMarkedAnswers,U=T.submitMarkedAnswers,Y=null===(S=N.data)||void 0===S?void 0:S.students.find((function(t){var n,r,a,s,i;return e.userId?(null===(r=null===(n=t.user)||void 0===n?void 0:n.id)||void 0===r?void 0:r.toString())===(null===(a=e.userId)||void 0===a?void 0:a.toString()):!!e.sessionId&&(null===(s=t.sessionId)||void 0===s?void 0:s.toString())===(null===(i=e.sessionId)||void 0===i?void 0:i.toString())})),P=Y?D("heading",{studentName:(0,d.B2)((0,d.DV)(Y,j),C)}):"",L=!!R.data&&!!N.data&&!!M.data;return r.createElement(v.G,{title:P,showLoadingSpinner:!L,closePopup:e.closePopup,size:"lg"},L&&r.createElement(f.R,{interactive:R.data,studentResults:Y,markedAnswers:F,addMarkedAnswers:B,submitMarkedAnswers:U,imageCdnUrl:M.data.imageCdnUrl,selectedInteractionId:e.interactionId,onClickClose:e.closePopup,anonymiseUsers:C,reportsStyling:e.reportsStyling,anonSessions:j}))}},3218:(e,t,n)=>{n.d(t,{R:()=>D});var r=n(32735),a=n(69087),s=n(26136),i=n(39157),o=n(69186),u=n(86572),l=n(28972),c=n(83140),d=n(80845),m=n(23481),f=n(2102),v=n(36532),b=m.T.encloseNamespace("interactives.studentResponseList");function p(e){var t=Object.keys(e.markedAnswers).length;return r.createElement("div",{className:"d-flex justify-content-end pt-3"},r.createElement("div",null,!e.showSubmitButtonSpinner&&r.createElement("button",{className:"btn btn-link",onClick:e.onClickClose},b("close")),!!e.interactionsToMark.length&&r.createElement(r.Fragment,null,e.isDemo?r.createElement(v.u,{id:"submitAnswers",title:b("demoOnly"),spanHack:!0,spanHackClassName:"d-inline-flex"},r.createElement("button",{className:"btn btn-outline-dark pointer-events-none",disabled:!t},b("submitAnswers"))):r.createElement(f.m,{variant:"outline-dark",onClick:e.onClickSubmit,disabled:!t,showSpinner:e.showSubmitButtonSpinner},b("submitAnswers")))))}var g=m.T.encloseNamespace("interactives.studentResponseList");function y(e){var t=Object.keys(e.markedAnswers).length;return r.createElement("div",{className:"d-flex justify-content-between pb-3"},r.createElement("div",{className:"d-flex"},!!e.summary.unanswered&&r.createElement("div",{className:"bg-light rounded p-2 me-2"},r.createElement("strong",{className:"me-2"},g("unanswered")),e.summary.unanswered),r.createElement("div",{className:"bg-light rounded p-2 me-2"},r.createElement("strong",{className:"me-2"},g("score")),e.summary.awaitingMarking?r.createElement("em",null,g("pending")):"".concat(Math.round(100*e.summary.percentCorrect),"%"))),!!e.interactionsToMark.length&&r.createElement(r.Fragment,null,e.isDemo?r.createElement(v.u,{id:"submitAnswers",title:g("demoOnly"),spanHack:!0},r.createElement("button",{className:"btn btn-outline-dark pointer-events-none",disabled:!t},g("submitAnswers"))):r.createElement(f.m,{variant:"outline-dark",onClick:e.onClickSubmit,disabled:!t,showSpinner:e.showSubmitButtonSpinner},g("submitAnswers"))))}const w={awaitingMarking:"MvGb5"};function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,s,i,o=[],u=!0,l=!1;try{if(s=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=s.call(n)).done)&&(o.push(r.value),o.length!==t);u=!0);}catch(e){l=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function D(e){var t,n,m,f,v=h(r.useState(!1),2),b=v[0],g=v[1],k=(t=r.useRef(null),n=h(r.useState(!1),2),m=n[0],f=n[1],r.useEffect((function(){t.current&&!m&&(f(!0),requestAnimationFrame((function(){return t.current.scrollIntoView({behavior:"smooth",block:"center"})})))}),[t.current,m]),t),D=(0,i.Rt)(e.interactive,e.studentResults),S=(0,d.Q)(e.interactive),A=function(e,t){return e.filter((function(e){return c.A.isInteractionCorrect(e,(0,d.j_)(t))===l.w.AwaitingMarking}))}(S,e.studentResults);function O(){g(!0),e.submitMarkedAnswers()}return r.createElement(r.Fragment,null,r.createElement(y,{summary:D,interactionsToMark:A,markedAnswers:e.markedAnswers,onClickSubmit:O,showSubmitButtonSpinner:b,isDemo:e.isDemo}),r.createElement("ul",{className:"list-unstyled"},S.map((function(t,n){var l,c=t.id.toString()===(null===(l=e.selectedInteractionId)||void 0===l?void 0:l.toString()),d=A.some((function(e){return e.id===t.id})),m=(0,s.B2)((0,s.DV)(e.studentResults,e.anonSessions),e.anonymiseUsers),f="p-2 mb-3 rounded";return c&&(f+=" border-2 border-info shadow"),f+=d?" ".concat(w.awaitingMarking):" border",r.createElement("li",{key:n,className:f,ref:c?k:null},r.createElement("div",{className:"d-flex mb-2"},r.createElement(u.y,{interaction:t,iconClassName:"flex-shrink-0"})),e.reportsStyling?r.createElement(o.O,{interaction:t,studentResults:e.studentResults,markedStatus:(0,i.HI)(t.id,e.studentResults,e.markedAnswers),markInteraction:e.addMarkedAnswers,imageCdnUrl:e.imageCdnUrl,anonymisedUserName:m,className:"bg-light ps-2",showFeedback:!0,reportsStyling:!0,responseComponentClass:"mx-n2"}):r.createElement(a.d,{interaction:t,studentResults:e.studentResults,markedStatus:(0,i.HI)(t.id,e.studentResults,e.markedAnswers),markInteraction:e.addMarkedAnswers,imageCdnUrl:e.imageCdnUrl,anonymisedUserName:m,showFeedback:!0}))}))),r.createElement(p,{interactionsToMark:A,markedAnswers:e.markedAnswers,onClickSubmit:O,onClickClose:e.onClickClose,showSubmitButtonSpinner:b,isDemo:e.isDemo}))}},94644:(e,t,n)=>{n.d(t,{r:()=>c});var r=n(50242),a=n(81886),s=n(67058),i=n(14553),o=n(49267),u=n(49075),l={notFound:s.d,forbidden:{rating:i.q,yearLevel:i.q,region:o.a,privacy:i.q},badRequest:u._,internalServerError:u._};function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var s;s="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},l),t);s&&a.Q.Ry.isStatusCodeError(s)&&(s!==r.o.InternalServer?s!==r.o.NotFound?s!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new i.badRequest):n.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):n.notFound||a.Q.Ry.throw(new i.notFound):n.internalServerError||a.Q.Ry.throw(new u._))}}},91286:(e,t,n)=>{n.d(t,{v:()=>i});var r=n(32735),a=n(94644);function s(e){return e.map((function(e){return e.statusCode})).join(":")}function i(e,t,n){var i=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){i.forEach((function(e){(0,a.r)(e.statusCode,t,n)}))}),[s(i),t,n])}},57266:(e,t,n)=>{n.d(t,{e:()=>i});var r=n(81886),a=n(1048),s=n(75795),i={updateParams:function(e,t){var n=s.O.getCurrentRoute().appLink,i="string"==typeof n.params?r.Q.Ab.DeserializeQueryParams(n.params):n.params;t.keysToRemove&&(i=a.t.omit(i,t.keysToRemove));var o=(null==t?void 0:t.merge)?Object.assign(Object.assign({},i),e):e,u=Object.assign(Object.assign({},n),{params:o});a.t.isEqual(n,u)||r.Q.C$.trigger(u,a.t.omit(t,["merge","keysToRemove"]))}}}}]);
2
+ //# sourceMappingURL=6973-c4cb114bd7-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/6973-c4cb114bd7-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/hooks/UseAnonSessions.ts","file:///app/packages/libs/shared/src/apps/analytics/hooks/UseFetchInteractiveResults.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/DateRangeUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/views/interactive-student-results/InteractiveStudentResultsView.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListFooter.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListHeader.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/student-response-list.scss","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/utils/AppRouteHelper.ts"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\n\nexport interface AnonSession {\n sessionId: string;\n sessionName: string;\n}\n\nexport interface AnonSessions extends Record<string, AnonSession> {}\n\nexport function useAnonSessions(shareId: string): AnonSessions {\n const anonSessions = Flight.useBasicFetch<AnonSession[]>(shareId && ShareRequests.getAnonSessions(shareId));\n\n if (!anonSessions.data?.length)\n return {};\n\n return anonSessions.data.reduce((prev, current) => ({ ...prev, [current.sessionId]: current }), {});\n}","import { Flight } from 'libs/common/flight';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { AnalyticsRequestFilter, CurrentUser, Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\n\nexport function useFetchInteractiveResults(\n interactiveMetadataId: string,\n requestFilter: AnalyticsRequestFilter,\n includePublicResults?: boolean\n): Flight.Response<InteractiveResultSet> {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!interactiveMetadataId &&\n InteractiveRequests.interactiveMetadata(interactiveMetadataId));\n\n const interactive = Flight.useBasicFetch<Interactive>(!!interactiveMetadata.data?.interactiveId &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId));\n\n const shouldFetchResults = !!currentUser.data && !!interactive.data && (!!requestFilter);\n\n return Flight.useBasicFetch<InteractiveResultSet>(shouldFetchResults &&\n InteractiveResultsRequests.interactiveResultSet(\n interactiveMetadata.data.interactiveId,\n interactiveMetadata.data.id,\n currentUser.data,\n requestFilter,\n includePublicResults\n ));\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { DateRange } from 'libs/shared/interfaces';\nimport { AppRouteHelper } from 'libs/shared/utils/AppRouteHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function convertDateToUtcDateTimeString(date: Date): string {\n const utc = DateHelper.convertDateToUTC(date);\n return DateHelper.format(utc, 'YYYY-MM-DDTHH:mm:ss');\n}\n\nexport function getMinDate(): Date {\n return new Date(2021, 0, 1);\n}\n\nexport function getMaxDate(): Date {\n return new Date();\n}\n\nexport function getDefaultDateRange(dateRangePresets: DateRange[]): DateRange {\n return dateRangePresets.find(range => !!range.default);\n}\n\nexport function getPresetRangeByName(dateRangePresetss: DateRange[], rangeName: string): DateRange | undefined {\n if (!rangeName)\n return;\n\n const presets = dateRangePresetss;\n \n return presets.find(p => p.name === rangeName);\n}\n\nexport function getGenericDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastTwelveMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 11, 1),\n endDate: new Date(),\n default: true\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n }\n ];\n}\n\nexport function getInsightsDateRangePresets(): DateRange[] {\n const minDate = getMinDate();\n const currentYear = (new Date()).getFullYear();\n\n const isMinDateThisYear = currentYear === minDate.getFullYear();\n\n return [\n {\n name: getPhrase('today'),\n startDate: new Date(),\n endDate: new Date()\n },\n {\n name: getPhrase('thisMonth'),\n startDate: new Date(currentYear, new Date().getMonth(), 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastThreeMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 2, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastSixMonths'),\n startDate: new Date(currentYear, new Date().getMonth() - 5, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('thisYear'),\n startDate: new Date(currentYear, 0, 1),\n endDate: new Date()\n },\n {\n name: getPhrase('lastYear'),\n startDate: new Date(currentYear - 1, 0, 1),\n endDate: new Date(currentYear, 0, 0),\n disabled: isMinDateThisYear,\n tooltip: isMinDateThisYear ? getPhrase('lastYearDisabled') : ''\n },\n {\n name: getPhrase('allTime'),\n startDate: DateHelper.subtract(new Date(), 5, 'years'),\n endDate: new Date(),\n default: true\n }\n ];\n}\n\nexport function formatDateQueryParam(date: Date): string {\n return DateHelper.format(date, 'YYYY-MM-DD');\n}\n\nexport function getRouteQueryParams(dateRange: DateRange): DateRangeQueryParams {\n if (dateRange.name)\n return { rangeName: dateRange.name };\n\n return {\n from: formatDateQueryParam(dateRange.startDate),\n to: formatDateQueryParam(dateRange.endDate)\n };\n}\n\nexport function useGetDateRangeFromQueryParams(\n dateRangePresets: DateRange[],\n dateRangeQueryParams: DateRangeQueryParams\n): DateRange | null {\n const { to, from, rangeName } = dateRangeQueryParams;\n \n const presetRange = getPresetRangeByName(dateRangePresets, rangeName);\n\n if (presetRange) {\n if (!from && !to)\n return presetRange;\n\n /**\n * If a rangeName has been set, we don't use to and from so we remove them from the url params.\n */\n AppRouteHelper.updateParams(\n getRouteQueryParams(presetRange),\n { replace: true, merge: true, keysToRemove: [ 'from', 'to' ]}\n );\n return;\n }\n\n const defaultDateRange = getDefaultDateRange(dateRangePresets);\n\n /**\n * If a param is missing, or one of them isn't a valid date, short-circuit the logic below.\n */\n if (!from || !to || !DateHelper.isValid(from) || !DateHelper.isValid(to)) {\n AppRouteHelper.updateParams(\n getRouteQueryParams(defaultDateRange),\n { replace: true, merge: true, keysToRemove: ['rangeName']}\n );\n return;\n }\n\n let initialDateRangeValid = true;\n\n let startDate = DateHelper.convertDateToUTC(new Date(from));\n let endDate = DateHelper.convertDateToUTC(new Date(to));\n\n if (DateHelper.isBefore(startDate, getMinDate(), 'day')) {\n startDate = getMinDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(endDate, getMaxDate(), 'day')) {\n endDate = getMaxDate();\n initialDateRangeValid = false;\n }\n\n if (DateHelper.isAfter(startDate, endDate)) {\n startDate = defaultDateRange.startDate;\n endDate = defaultDateRange.endDate;\n initialDateRangeValid = false;\n }\n\n const dateRange: DateRange = {\n startDate,\n endDate,\n name: initialDateRangeValid\n ? rangeName || 'custom'\n : ''\n };\n\n if (initialDateRangeValid)\n return dateRange;\n\n /**\n * If one or both of the date params were invalid, we trigger a route update.\n */\n AppRouteHelper.updateParams(getRouteQueryParams(dateRange), { replace: true, merge: true, keysToRemove: ['rangeName']});\n}\n\nexport function getStartEndParams(\n dateRangePresetss: DateRange[],\n filterParams: FilterQueryParams\n): { start: string; end: string } {\n const getStartDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.startOf(date, 'day'));\n const getEndDate = (date: string) => convertDateToUtcDateTimeString(DateHelper.endOf(date, 'day'));\n\n const presetRange = getPresetRangeByName(dateRangePresetss, filterParams.rangeName);\n\n /**\n * If the user has chosen a preset range, lookup the start and end dates as they won't be\n * in the query params.\n */\n if (presetRange)\n return {\n start: getStartDate(formatDateQueryParam(presetRange.startDate)),\n end: getEndDate(formatDateQueryParam(presetRange.endDate))\n };\n\n /**\n * If they have chosen a custom date range, use their chosen start and end dates.\n */\n if (filterParams.from && filterParams.to)\n return {\n start: getStartDate(filterParams.from),\n end: getEndDate(filterParams.to)\n };\n\n /**\n * The below should never be hit\n */\n const defaultRange = getDefaultDateRange(dateRangePresetss);\n\n return {\n start: getStartDate(formatDateQueryParam(defaultRange.startDate)),\n end: getEndDate(formatDateQueryParam(defaultRange.endDate))\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { useAnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { useMarkAnswers } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { anonymiseUserName, getUserOrAnonSession } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { StudentResponseList } from 'libs/shared/apps/student-response-list/StudentResponseList';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { Config, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveStudentResults';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveStudentResultsViewProps extends PopupViewProps {\n userId: string;\n interactiveId: string;\n interactionId?: string;\n reportsStyling?: boolean;\n sessionId?: string;\n shareId?: string;\n}\n\nexport function InteractiveStudentResultsView(props: InteractiveStudentResultsViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.interactiveId)\n );\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data?.interactiveId &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId));\n\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const results = useFetchInteractiveResults(\n props.interactiveId,\n getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const anonSessions = useAnonSessions(props.shareId);\n\n useHandleObjectError([ interactiveMetadata, results ]);\n useCannotConsumeError(interactiveMetadata);\n\n const { markedAnswers, addMarkedAnswers, submitMarkedAnswers } = useMarkAnswers(\n interactive.data?.id,\n interactiveMetadata.data?.id,\n props.closePopup\n );\n\n const studentResults = results.data?.students.find(s => {\n if (props.userId)\n return s.user?.id?.toString() === props.userId?.toString();\n\n if (props.sessionId)\n return s.sessionId?.toString() === props.sessionId?.toString();\n\n return false;\n });\n\n const popupTitle = studentResults\n ? getPhrase('heading', { studentName: anonymiseUserName(getUserOrAnonSession(studentResults, anonSessions), anonymiseUsers) })\n : '';\n const dataLoaded = !!interactive.data && !!results.data && !!config.data;\n\n return (\n <Popup\n title={popupTitle}\n showLoadingSpinner={!dataLoaded}\n closePopup={props.closePopup}\n size='lg'\n >\n {dataLoaded &&\n <StudentResponseList\n interactive={interactive.data}\n studentResults={studentResults}\n markedAnswers={markedAnswers}\n addMarkedAnswers={addMarkedAnswers}\n submitMarkedAnswers={submitMarkedAnswers}\n imageCdnUrl={config.data.imageCdnUrl}\n selectedInteractionId={props.interactionId}\n onClickClose={props.closePopup}\n anonymiseUsers={anonymiseUsers}\n reportsStyling={props.reportsStyling}\n anonSessions={anonSessions}\n />\n }\n </Popup>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListFooterProps {\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n onClickClose: () => void;\n showSubmitButtonSpinner: boolean;\n isDemo?: boolean;\n}\n\nexport function StudentResponseListFooter(props: StudentResponseListFooterProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-end pt-3'>\n <div>\n {!props.showSubmitButtonSpinner &&\n <button className='btn btn-link' onClick={props.onClickClose}>\n {getPhrase('close')}\n </button>\n }\n {!!props.interactionsToMark.length && (\n <>\n {props.isDemo ? (\n <Tooltip\n id='submitAnswers'\n title={getPhrase('demoOnly')}\n spanHack\n spanHackClassName='d-inline-flex'\n >\n <button\n className='btn btn-outline-dark pointer-events-none'\n disabled={!numMarkedAnswers}\n >\n {getPhrase('submitAnswers')}\n </button>\n </Tooltip>\n ) : (\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n )}\n </>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { ResultsSummary } from 'libs/shared/apps/analytics/interfaces/ResultsSummary';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListHeaderProps {\n summary: ResultsSummary;\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n showSubmitButtonSpinner: boolean;\n isDemo?: boolean;\n}\n\nexport function StudentResponseListHeader(props: StudentResponseListHeaderProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-between pb-3'>\n <div className='d-flex'>\n {!!props.summary.unanswered &&\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('unanswered')}</strong>\n {props.summary.unanswered}\n </div>\n }\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('score')}</strong>\n {props.summary.awaitingMarking\n ? <em>{getPhrase('pending')}</em>\n : `${Math.round(props.summary.percentCorrect * 100)}%`\n }\n </div>\n </div>\n {!!props.interactionsToMark.length && (\n <>\n {props.isDemo ? (\n <Tooltip id='submitAnswers' title={getPhrase('demoOnly')} spanHack>\n <button\n className='btn btn-outline-dark pointer-events-none'\n disabled={!numMarkedAnswers}\n >\n {getPhrase('submitAnswers')}\n </button>\n </Tooltip>\n ) : (\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n )}\n </>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"awaitingMarking\":\"MvGb5\"};","import React from 'react';\n\nimport { InteractionResponseItem } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/InteractionResponseItem';\nimport { AnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { anonymiseUserName, getUserOrAnonSession } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getMarkedStatus, getStudentResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractionResponse } from 'libs/shared/components/interaction-response/InteractionResponse';\nimport { InteractionLabel } from 'libs/shared/components/interactive-questions/InteractionLabel';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, Interactive, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getInteractions, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\n\nimport { StudentResponseListFooter } from './StudentResponseListFooter';\nimport { StudentResponseListHeader } from './StudentResponseListHeader';\n\nimport styles from './student-response-list.scss';\n\nfunction getInteractionsToMark(\n interactions: Interaction[],\n studentResults: StudentResults\n): Interaction[] {\n return interactions.filter(i => {\n return InteractiveCorrectnessHelper.isInteractionCorrect(\n i,\n getStudentResult(studentResults)\n ) === InteractionCorrectness.AwaitingMarking;\n });\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nfunction useScrollSelectedInteractionIntoView(): React.MutableRefObject<HTMLLIElement> {\n const ref = React.useRef<HTMLLIElement>(null);\n const [ scrolled, setScrolled ] = React.useState(false);\n\n // Only scroll once\n React.useEffect(() => {\n if (!ref.current || scrolled)\n return;\n\n setScrolled(true);\n requestAnimationFrame(() => ref.current.scrollIntoView({ behavior: 'smooth', block: 'center' }));\n }, [ ref.current, scrolled ]);\n\n return ref;\n}\n\ninterface StudentResponseListProps {\n interactive: Interactive;\n markedAnswers: MarkedAnswerHash;\n studentResults: StudentResults;\n addMarkedAnswers: (answer: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n submitMarkedAnswers: () => void;\n onClickClose: () => void;\n imageCdnUrl: string;\n selectedInteractionId?: string;\n anonymiseUsers: boolean;\n reportsStyling?: boolean;\n isDemo?: boolean;\n anonSessions?: AnonSessions;\n}\n\nexport function StudentResponseList(props: StudentResponseListProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n const selectedInteractionRef = useScrollSelectedInteractionIntoView();\n\n const summary = getStudentResultsSummary(props.interactive, props.studentResults);\n const interactions = getInteractions(props.interactive);\n const questionsToMark = getInteractionsToMark(interactions, props.studentResults);\n\n function onClickSubmit(): void {\n setShowSpinner(true);\n props.submitMarkedAnswers();\n }\n\n return (\n <>\n <StudentResponseListHeader\n summary={summary}\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n showSubmitButtonSpinner={showSpinner}\n isDemo={props.isDemo}\n />\n <ul className='list-unstyled'>\n {interactions.map((interaction, idx) => {\n const isSelected = interaction.id.toString() === props.selectedInteractionId?.toString();\n const markingRequired = questionsToMark.some(q => q.id === interaction.id);\n const anonymisedUserName = anonymiseUserName(\n getUserOrAnonSession(props.studentResults, props.anonSessions),\n props.anonymiseUsers\n );\n\n let className = 'p-2 mb-3 rounded';\n\n if (isSelected)\n className += ' border-2 border-info shadow';\n\n if (markingRequired)\n className += ` ${styles.awaitingMarking}`;\n else\n className += ' border';\n\n return (\n <li key={idx} className={className} ref={isSelected ? selectedInteractionRef : null}>\n <div className='d-flex mb-2'>\n <InteractionLabel\n interaction={interaction}\n iconClassName='flex-shrink-0'\n />\n </div>\n {props.reportsStyling ? (\n <InteractionResponse\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n className='bg-light ps-2'\n showFeedback\n reportsStyling\n responseComponentClass='mx-n2'\n />\n ) : (\n <InteractionResponseItem\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n showFeedback\n />\n )}\n </li>\n );\n })}\n </ul>\n <StudentResponseListFooter\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n onClickClose={props.onClickClose}\n showSubmitButtonSpinner={showSpinner}\n isDemo={props.isDemo}\n />\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface UpdateParamsOptions extends Core.AppLinkOptions {\n merge?: boolean;\n keysToRemove?: string[]\n}\n\nexport const AppRouteHelper = {\n /**\n * Utility to update the params on the current appRoute.\n * \n * This is built on top of ContextService rather than build into AppLink\n * as we will generally only want to update params on appRoutes, not appLinks.\n */\n updateParams(params: HashObject, options?: UpdateParamsOptions): void {\n const { appLink } = ContextService.getCurrentRoute();\n\n let currentParams = typeof(appLink.params) === 'string'\n ? Core.LocationUtils.DeserializeQueryParams(appLink.params)\n : appLink.params as HashObject;\n\n if (options.keysToRemove)\n currentParams = ObjectHelper.omit(currentParams, options.keysToRemove);\n\n const updatedParams = options?.merge\n ? { ...currentParams, ...params }\n : params;\n\n const updatedAppLink = {\n ...appLink,\n params: updatedParams\n };\n\n /**\n * This prevents us pointlessly re-triggering if we're already on the right applink.\n */\n if (ObjectHelper.isEqual(appLink, updatedAppLink))\n return;\n \n Core.AppLinkHelper.trigger(updatedAppLink, ObjectHelper.omit(options, [ 'merge', 'keysToRemove' ]));\n }\n};"],"names":["useAnonSessions","shareId","anonSessions","data","length","reduce","prev","current","sessionId","useFetchInteractiveResults","interactiveMetadataId","requestFilter","includePublicResults","currentUser","interactiveMetadata","interactive","interactiveId","shouldFetchResults","I","id","AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","users","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","getPhrase","convertDateToUtcDateTimeString","date","utc","getMinDate","Date","getMaxDate","getDefaultDateRange","dateRangePresets","find","range","getPresetRangeByName","dateRangePresetss","p","name","getInsightsDateRangePresets","minDate","currentYear","getFullYear","isMinDateThisYear","startDate","endDate","getMonth","disabled","tooltip","default","formatDateQueryParam","getRouteQueryParams","dateRange","useGetDateRangeFromQueryParams","dateRangeQueryParams","presetRange","replace","merge","keysToRemove","defaultDateRange","initialDateRangeValid","getStartEndParams","filterParams","getStartDate","getEndDate","start","end","defaultRange","InteractiveStudentResultsView","props","anonymiseUsers","dateRangeAppLinkParams","results","config","closePopup","markedAnswers","addMarkedAnswers","submitMarkedAnswers","studentResults","students","s","userId","user","toString","popupTitle","studentName","dataLoaded","title","showLoadingSpinner","size","imageCdnUrl","selectedInteractionId","interactionId","onClickClose","reportsStyling","LanguageService","StudentResponseListFooter","numMarkedAnswers","Object","keys","className","showSubmitButtonSpinner","onClick","interactionsToMark","isDemo","Tooltip","spanHack","spanHackClassName","SpinnerButton","variant","onClickSubmit","showSpinner","StudentResponseListHeader","summary","unanswered","awaitingMarking","Math","round","percentCorrect","StudentResponseList","ref","scrolled","setScrolled","setShowSpinner","selectedInteractionRef","requestAnimationFrame","scrollIntoView","behavior","block","interactions","questionsToMark","filter","i","InteractiveCorrectnessHelper","InteractionCorrectness","getInteractionsToMark","map","interaction","idx","isSelected","markingRequired","some","q","anonymisedUserName","InteractionLabel","iconClassName","InteractionResponse","markedStatus","markInteraction","showFeedback","responseComponentClass","InteractionResponseItem","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","forEach","AppRouteHelper","updateParams","options","currentParams","updatedParams","updatedAppLink"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 7210-d8fa7ca624-lite.chunk.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7210,2392],{18488:(e,t,n)=>{n.d(t,{o:()=>i});var r=n(99940),a=n(97395),o={namespace:"share-v2"},i={createShare:function(e,t,n,a){return{url:"/api/share/v2/shares",key:"create:share-v2",type:r.k.POST,data:e,normalizeOptions:o,invalidationKeys:["sent:shares-v2"],success:t,error:n,always:a}},updateShare:function(e,t,n,a,i){return{url:"/api/share/v2/shares/".concat(e),key:"update:share-v2:".concat(e),type:r.k.PUT,data:t,normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)],success:n,error:a,always:i}},getShare:function(e,t,n,a){return{url:"/api/share/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=Object.values(e).join(":");return{url:a._.urlBuilder("/api/share/v2/shares/sent",e),key:"sent:shares-v2:".concat(i),formatData:function(t){return{data:t,count:t.length,pagination:{cursors:{next:null,previous:e.cursor}}}},type:r.k.GET,normalize:!1,success:t,error:n,always:o}},getShareLinkByObjectId:function(e){return{url:a._.urlBuilder("/api/share/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),type:r.k.POST,normalizeOptions:o}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}}}},79145:(e,t,n)=>{n.d(t,{I:()=>b});var r,a=n(23481),o=n(20354),i=n(49985),c=n(65858);!function(e){e.InstantFeedback="instant_feedback",e.PreventSkipping="prevent_skipping"}(r||(r={}));var s=n(18488),l=n(21750),u=n(43012),d=n(20768),m=n(5112),f=n(60011),p=n(1575),h=n(40841);function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function g(e,t,n){return(t=function(e){var t=function(e){if("object"!=v(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=v(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==v(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=a.T.encloseNamespace("sharev2.utils"),b={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["video","interactive","clip"].includes(e)},getEnabledIntegrations:function(e,t){return h._.getShareIntegrations(e,t).filter((function(e){return e.enabled})).map((function(e){return e.id}))},getFetchFunctionByType:function(e){switch(e){case"video":return function(e){return o.a.useBasicFetch(p.R.video(e))};case"playlist":return function(e){return o.a.useBasicFetch(m.C.getPlaylist(e))};case"subject":return function(e,t){return o.a.useBasicFetch(l.x.classification(e,t))};case"series":return function(e){return o.a.useBasicFetch(f.J.series(e))};case"interactive":return function(e){return o.a.useBasicFetch(d.b.interactiveMetadata(e))};case"clip":return function(e){return o.a.useBasicFetch(u.e.clip(e))}}},getAnalyticsEntity:function(e){switch(e){case"playlist":return c.py.Playlist;case"subject":return c.py.Classification;case"video":return c.py.Video;case"series":return c.py.Series;case"interactive":return c.py.Interactive;case"clip":return c.py.Clip}},getAnalyticsOptions:function(e){return{entity:b.getAnalyticsEntity(e),location:c.LZ.Popup,workflowPhase:c.eu.Complete}},updateShareLink:function(e,t,n,r,a,l,u,d){o.a.fetch(e,s.o.updateShare(r.shareId,a,(function(e){i.k.logUserAction(Object.assign(Object.assign({},e),{objectName:t.name}),i.k.mergeOptions(b.getAnalyticsOptions(n),{actionType:c.Vw.Edit,entity:c.py.ShareLink,eventVersion:c.eq.V3})),u&&u(e),l.success(y("editSuccess",{name:t.name,escapeText:!0}))}),(function(){d&&d(),l.error(y("editError",{name:t.name,escapeText:!0}))})))},getShareSettingsInitialValues:function(e,t){var n={preventSkipping:(null==t?void 0:t.preventScrubbing)||!1,instantFeedback:(null==t?void 0:t.immediateFeedback)||!1},a=g(g({},r.InstantFeedback,"instantFeedback"),r.PreventSkipping,"preventSkipping");return e.options.reduce((function(e,t){return Object.keys(a).includes(t.option)?("True"===t.value?e[a[t.option]]=!0:"False"===t.value&&(e[a[t.option]]=!1),e):e}),n)}}},9806:(e,t,n)=>{n.d(t,{k:()=>x});var r=n(32735),a=n(65858),o=n(64249),i=n(15611),c=n(7432),s=n(11834),l=n(83345),u=n(56754),d=n(86348),m=n(7733),f=n(54610),p=n(4594),h=n(68626),v=n(9085),g=n(67453),y=n(31908);const b={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",S="rounded overflow-hidden";function w(){return r.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},r.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),r.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},r.createElement("div",{className:"d-flex align-items-end h-50"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.a," rounded shadow")})),r.createElement("div",{className:"d-flex align-items-end h-75"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.b," rounded shadow")})),r.createElement("div",{className:"d-flex align-items-end h-100"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.c," rounded shadow")}))))}function x(e){var t=r.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,y.M.isVideoType(n)?16/9:n.typeId===p.E.Playlist?1:n.typeId===p.E.Series?9/16:void 0),"px"))}),[]),n=y.M.isVideoType(e.object),x=function(e){var t=g.j.getDisplayImageFromObject(e);if(y.M.isVideoType(e))return{image:t,imageType:f.__.Thumbnails,imageClassName:S,imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Video})};switch(e.typeId){case p.E.Series:return{image:t,imageType:f.__.TallPosters,imageClassName:S,imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Series,svgContainerClassName:b.posterFallbackSvg})};case p.E.Playlist:return{image:t,imageType:f.__.Covers,imageClassName:(null==t?void 0:t.url)?S:"".concat(S," ").concat((0,v.x)(e.name,m.o)),imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?b.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),k=x.image,N=x.imageType,C=x.imageClassName,I=x.imageFallbackComponent;return r.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},r.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&r.createElement("div",{className:"".concat(b.thumbnailContainer," position-relative")},e.showInsightsMask&&r.createElement(w,null),r.createElement(i.F,{appLink:e.appLink},r.createElement(d.u,{video:e.object,imageOptions:e.imageOptions,textPosition:h.z.Independent,type:"cosmetic",hideDuration:!0,hideMask:!0})),!!e.requireMarking&&r.createElement("div",{className:"".concat(e.showInsightsMask&&b.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},r.createElement("div",{className:"".concat(b.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},r.createElement(l.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&r.createElement(r.Fragment,null,"videos"in e.object?r.createElement(u.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:o.I.getAnalyticsEntity(e.object.type),actionType:a.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):r.createElement(c.Z,{data:null==k?void 0:k.url,imageType:N,imageOptions:e.imageOptions,appLink:e.appLink,className:C,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:o.I.getAnalyticsEntity(e.object.type),actionType:a.Vw.Click,location:e.locationContext}},I))))}x.defaultProps={imageOptions:{size:f.h2.Small}}},56754:(e,t,n)=>{n.d(t,{I:()=>E});var r=n(32735),a=n(75896),o=n(65858),i=n(15611),c=n(83914),s=n(83345);const l={thumbnailTitle:"OsWjL"};function u(e){return r.createElement("h3",{title:e.title,className:"h6"},e.title)}function d(e){return e.appLink?r.createElement(i.F,{appLink:e.appLink,className:"".concat(l.thumbnailTitle)},r.createElement(u,Object.assign({},e))):r.createElement(u,Object.assign({},e))}var m=n(86348),f=n(62335),p=n(4594),h=n(68626),v=n(45778),g=n(35223);const y={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var b="shared.collectionThumbnail";function E(e){var t,n,l,u,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===p.E.Playlist){var r=e.collection;r.clips.count&&(n=r.clips),r.interactives.count&&(n=r.interactives)}return a.m.first(n.data)}}(),S=function(){var t,n,r=0;if(e.collection.videos&&e.collection.videos.count&&(r+=e.collection.videos.count),e.collection.typeId===p.E.Playlist){var a=e.collection;(null===(t=a.interactives)||void 0===t?void 0:t.count)&&(r+=a.interactives.count),(null===(n=a.clips)||void 0===n?void 0:n.count)&&(r+=a.clips.count)}return r}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),x=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),k=Object.assign({actionType:o.Vw.Click,entity:(u=e.collection,v.G.isType(u,p.E.Playlist)?o.py.Playlist:v.G.isType(u,p.E.Series)?o.py.Series:void 0)},e.analyticsOptions);return r.createElement("div",null,r.createElement("div",{className:"position-relative ".concat(y.thumbnailContainer," z-1")},r.createElement(i.F,{appLink:e.appLink,analyticsData:x,analyticsOptions:k,preventFocus:!0},e.showMask&&r.createElement("div",{className:"".concat(y.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},r.createElement("div",{className:"".concat(y.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},r.createElement(c.x,{svgName:g.vn.Play,className:"svg-container text-white"}),r.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(l=e.hoverText)||void 0===l?void 0:l.length)?r.createElement("span",null,e.hoverText):r.createElement(s.x,{namespace:b,phrase:"playAll"})))),E&&r.createElement(m.u,{video:E,imageOptions:e.imageOptions,textPosition:h.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&r.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},r.createElement("div",{className:"d-flex justify-content-center align-items-center"},r.createElement(c.x,{svgName:g.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&r.createElement("div",{className:"".concat(y.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},r.createElement(c.x,{svgName:g.vn.Series,className:"svg-container text-white me-1"}),r.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},r.createElement(s.x,{namespace:b,phrase:"videos",options:{count:S,smartCount:S}}))))),w&&r.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&r.createElement(f.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&r.createElement(d,{title:e.collection.name,appLink:e.titleAppLink})))}},41661:(e,t,n)=>{var r;n.d(t,{D:()=>r}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(r||(r={}))},40841:(e,t,n)=>{n.d(t,{_:()=>c});var r=n(23481),a=n(41661),o=n(65728),i=r.T.encloseNamespace("shared.shared-utils"),c={getShareIntegrations:function(e,t){return[{id:a.D.GoogleClassroom,name:i("googleClassroom"),enabled:e,settingName:o.E.ShareToGoogleClassroom},{id:a.D.MicrosoftTeams,name:i("msftTeams"),enabled:t,settingName:o.E.ShareToMicrosoftTeams}]}}},58518:(e,t,n)=>{n.d(t,{k:()=>o});var r=n(32735),a=n(83523);function o(e){return r.createElement("div",{className:"d-flex justify-content-between align-items-start"},r.createElement("div",null,r.createElement("label",{className:"m-0",htmlFor:""},e.title),r.createElement("p",{className:"m-0 text-secondary"},e.description)),r.createElement("div",null,r.createElement(a.Z,{onClick:e.onClick,on:e.toggled})))}},42272:(e,t,n)=>{var r;n.d(t,{e:()=>r}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(r||(r={}))},93975:(e,t,n)=>{var r;n.d(t,{y:()=>r}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(r||(r={}))},91574:(e,t,n)=>{n.d(t,{o:()=>i});var r=n(99940),a=n(97395),o={namespace:"share-v2"},i={createShareLink:function(e,t,n,a){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:r.k.POST,data:e,normalizeOptions:o,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:n,always:a}},getShareLink:function(e,t,n,a){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},getSharesByObjectId:function(e,t,n,a){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},c=Object.values(i).join(":");return{url:a._.urlBuilder("/api/share/v2/shares/sent",i),key:"sent:shares-v2:".concat(c),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:i.offset+e.length}}}},type:r.k.GET,normalize:!1,success:t,error:n,always:o}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:r.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},93779:(e,t,n)=>{n.d(t,{t:()=>d});var r=n(20354),a=n(30439),o=n(42272),i=n(93975),c=n(91574);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(){l=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function m(e,t,n,r){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),c=new P(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=m;var p="suspendedStart",h="suspendedYield",v="executing",g="completed",y={};function b(){}function E(){}function S(){}var w={};d(w,i,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(A([])));k&&k!==n&&r.call(k,i)&&(w=k);var N=S.prototype=b.prototype=Object.create(w);function C(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(a,o,i,c){var l=f(e[a],e,o);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==s(d)&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===v)throw Error("Generator is already running");if(a===g){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=j(c,r);if(s){if(s===y)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=v;var l=f(t,n,r);if("normal"===l.type){if(a=r.done?g:h,l.arg===y)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=g,r.method="throw",r.arg=l.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=f(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(s(t)+" is not iterable")}return E.prototype=S,a(N,"constructor",{value:S,configurable:!0}),a(S,"constructor",{value:E,configurable:!0}),E.displayName=d(S,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,d(e,u,"GeneratorFunction")),e.prototype=Object.create(N),e},t.awrap=function(e){return{__await:e}},C(I.prototype),d(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new I(m(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(N),d(N,u,"Generator"),d(N,i,(function(){return this})),d(N,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}var u=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function d(e){var t,n=r.a.useBasicFetch(a.o.getPrivacy(e)),s=r.a.useGetFetchAsync(),d=null===(t=n.data)||void 0===t?void 0:t.canManageAccess;return{createShareLink:function(e){return u(this,void 0,void 0,l().mark((function t(){var r;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Link,privacy:e.privacy,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 4:return r=t.sent,t.abrupt("return",r);case 6:case"end":return t.stop()}}),t)})))},createDirectShare:function(e){return u(this,void 0,void 0,l().mark((function t(){var r,a;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return r=e.requireSignIn?o.e.Direct:o.e.PinCode,t.next=5,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Classroom,privacy:r,optionRequest:{preventSkipping:e.preventShipping,instantFeedback:e.instantFeedback},recipientRequest:e.recipients.map((function(t){return{recipientId:t,message:e.message,scopeId:e.scopeId}}))}));case 5:if(a=t.sent,r!==o.e.PinCode){t.next=9;break}return t.next=9,s(c.o.createPincode(a.shareId));case 9:return t.abrupt("return",a);case 10:case"end":return t.stop()}}),t)})))},createOpenSession:function(e){return u(this,void 0,void 0,l().mark((function t(){var r,a;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return r=o.e.PinCode,e.requireSignIn&&(r=e.respectRatingsAndRestrictions?d?o.e.JustMySchool:o.e.Protected:d?o.e.JustMySchoolOverrideRestriction:o.e.ProtectedOverrideRestriction),t.next=6,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Open,privacy:r,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 6:if(a=t.sent,r!==o.e.PinCode){t.next=10;break}return t.next=10,s(c.o.createPincode(a.shareId));case 10:return t.abrupt("return",a);case 11:case"end":return t.stop()}}),t)})))},canManageAccess:d,hasCompleted:n.hasCompleted}}},72951:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(75896),a=n(4594),o={getFlattenedRecipients:function(e){return r.m.flatten(e.map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))},getClassoomIds:function(e){var t=o.getFlattenedRecipients(e).map((function(e){return e.scopeId?e.scopeId.toString():e.recipientId&&e.recipientTypeId===a.E.Classroom?e.recipientId.toString():void 0}));return r.m.uniq(t.filter((function(e){return!!e})))},getClassroomIdFromShare:function(e){var t,n=null===(t=e.recipients)||void 0===t?void 0:t[0];if(n)return n.scopeId?n.scopeId.toString():n.recipientId&&n.recipientTypeId===a.E.Classroom?n.recipientId.toString():void 0},getClassroomForShare:function(e,t){var n=o.getClassroomIdFromShare(e);if(n)return t.find((function(e){return e.id.toString()===n.toString()}))}}},87210:(e,t,n)=>{n.r(t),n.d(t,{FlowSelectorView:()=>ie});var r=n(32735),a=n(39202),o=n(20354),i=n(75896),c=n(79145),s=n(91693),l=n(9111),u=n(31949),d=n(35223),m=n(99742),f=n(14070),p=n(97291),h=n(88630),v=n(93975),g=n(91574),y=n(72951),b=n(11607);const E={optionImage:"_uLZl"};function S(e){return r.createElement("div",{className:"bg-white rounded-bottom-3 p-3"},r.createElement("div",{className:"d-flex justify-content-center align-items-center gap-3"},e.options.map((function(t){return r.createElement(b.L,{onClick:function(){return e.onClick(t)},className:"text-center cursor-pointer p-3 border rounded-3 user-select-none w-50",key:t.id},r.createElement("img",{src:t.image,className:"img-fluid my-3 w-75 ".concat(E.optionImage),draggable:!1}),r.createElement("h2",{className:"h3"},t.title),r.createElement("p",{className:"mb-0"},t.description))}))))}var w=n(82602),x=n(65858),k=n(9806),N=n(12528),C=n(83914),I=n(54610);const O={previousSharesList:"LZvYG",previousSharesListItem:"LEwrl"};function j(e){return r.createElement("div",{className:"d-flex flex-column mt-3 border rounded overflow-hidden ".concat(O.previousSharesList)},e.data.shares.reverse().map((function(t){var n,a;return r.createElement(b.L,{key:t.shareId,onClick:e.onClick,className:"p-3 ".concat(O.previousSharesListItem)},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-1"},r.createElement(k.k,{locationContext:x.LZ.PlayPage,object:e.data.entity,imageOptions:{size:I.h2.Small}})),r.createElement("div",{className:"col-3 d-flex align-items-center"},r.createElement("span",{className:"clamp-2 align-self-center"},e.data.entity.name)),r.createElement("div",{className:"col-3 d-flex align-items-center"},r.createElement("div",{className:"d-flex flex-row gap-1 align-items-center"},r.createElement("div",null,r.createElement(N.f,{variant:"teal",textVariant:"white",svgName:d.vn.Classrooms,svgSize:C.S.Standard})),r.createElement("span",null,null!==(a=null===(n=y.x.getClassroomForShare(t,e.data.classrooms))||void 0===n?void 0:n.name)&&void 0!==a?a:"Unknown"))),r.createElement("p",{className:"mb-0 col-2 d-flex align-items-center"},t.viewCount||0," views"),r.createElement("p",{className:"mb-0 col-2 d-flex align-items-center"},(0,w.WU)(t.dateCreated)),r.createElement("div",{className:"col-1 d-flex align-items-center"},r.createElement("a",{onClick:function(){return e.onClick(t)},className:"cursor-pointer text-info"},"View"))))})))}var L=n(13876),T=n(39151),P=n(80130);const A={searchInput:"udDMG"};function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(e){return e.classrooms.length?r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h3",{className:"h6 m-0"},"My Classrooms"),r.createElement("div",null,e.classrooms.map((function(t){var n,a,o,i,c=null!==(a=null===(n=t.enrolments)||void 0===n?void 0:n.count)&&void 0!==a?a:0;return r.createElement("div",{className:"d-flex align-items-center",key:t.id,onClick:function(){return e.onClassroomSelected(t)}},r.createElement("div",{className:"d-flex align-items-center bg-light-hover px-2 py-1 w-100 rounded gap-2 cursor-pointer justify-content-between"},r.createElement("div",{className:"w-100 d-flex align-items-center gap-2"},r.createElement(P.Z.Check,{type:"radio",name:"classroom-radio",id:"classroom-radio",value:t.id,onChange:function(){return e.onClassroomSelected(t)},checked:t.id===(null===(o=e.selectedClassroom)||void 0===o?void 0:o.id)}),r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,r.createElement(N.f,{svgName:d.vn.Classrooms,svgSize:C.S.Standard,variant:"teal",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"w-100"},r.createElement("label",{className:"m-0"},null==t?void 0:t.name),r.createElement("p",{className:"m-0 text-muted font-size-sm"},c," ",c>1?"students":"student")))),(null===(i=e.selectedClassroom)||void 0===i?void 0:i.id)===t.id&&r.createElement("div",{className:"d-flex align-items-center justify-content-end w-100"},r.createElement("a",{className:"cursor-pointer text-info",onClick:e.onSelectGroupsOrStudents},"Select specific groups or students"))))})))):r.createElement("div",{className:"d-flex flex-column gap-2 justify-content-center align-items-center"},r.createElement("img",{src:m.W.EmptyStates.Search.RESULTS,width:"30%",alt:"No results found"}),r.createElement("h4",{className:"h6 m-0"},'No results found for "',e.searchQuery,'"'),r.createElement("p",{className:"mb-0"},"Contact your school administrator to assign you to a classroom or ",r.createElement("a",{className:"p-0 text-info cursor-pointer",onClick:e.onClickCreateOpenClassroom},"create an Open classroom.")))}function R(e){var t,n,a=(t=r.useState(""),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return _(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[0],i=a[1],c=o?e.classrooms.filter((function(e){return e.name.toLowerCase().includes(o.toLowerCase())})):e.classrooms;return r.createElement("div",{className:"d-flex flex-column gap-3 ".concat(e.className," mb-3")},r.createElement("div",{className:"position-relative"},r.createElement("div",{className:"position-absolute top-50 start-0 translate-middle-y p-1"},r.createElement(C.x,{svgName:d.vn.Search,size:C.S.Standard})),r.createElement("input",{type:"text",placeholder:"Search for a classroom you teach",value:o,onChange:function(e){return i(e.target.value)},className:"form-control pe-1 py-2 border-dark ".concat(A.searchInput)})),r.createElement(F,{searchQuery:o,classrooms:c,selectedClassroom:e.selectedClassroom,onSelectGroupsOrStudents:e.onSelectGroupsOrStudents,onClassroomSelected:e.onClassroomSelected,onClickCreateOpenClassroom:e.onClickCreateOpenClassroom}))}var G=n(58518);function M(e){var t,n=(null===(t=e.selectedClassroom.enrolments)||void 0===t?void 0:t.count)||0;return r.createElement("div",{className:"d-flex align-items-center w-100 rounded gap-2 justify-content-between"},r.createElement("div",{className:"d-flex align-items-center gap-2 w-100"},r.createElement("div",null,r.createElement(N.f,{svgName:d.vn.Classrooms,svgSize:C.S.Standard,variant:"teal",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"w-100"},r.createElement("label",{className:"m-0"},e.selectedClassroom.name),r.createElement("p",{className:"m-0 text-muted font-size-sm"},n," ",n>1?"students":"student"))),r.createElement("div",{className:"d-flex align-items-center justify-content-end w-100"},r.createElement("a",{className:"cursor-pointer text-info",onClick:e.onChangeClassroom},"Change classroom")))}function V(e){return r.createElement("div",{className:"d-flex flex-column gap-4 ".concat(e.className)},r.createElement(M,{selectedClassroom:e.selectedClassroom,onChangeClassroom:e.onChangeClassroom}),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h4",{className:"h6 m-0"},"Access"),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(G.k,{title:"Classroom students select their name when accessing video",description:"Collect student data without the fuss of signing in.",toggled:!e.requireSignIn,onClick:e.onToggleRequireSignIn}))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h4",{className:"h6 m-0"},"Settings"),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(G.k,{title:"Prevent skipping ahead",description:"Students cannot skip ahead to parts of the video they have not watched",toggled:e.preventSkippingAhead,onClick:e.onTogglePreventSkippingAhead})),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(G.k,{title:"Enable instant feedback",description:"Allow students to see feedback on their answers before continuing",toggled:e.enableInstantFeedback,onClick:e.onToggleEnableInstantFeedback}))),r.createElement("div",null,r.createElement("label",null,"Add a message (optional)"),r.createElement("br",null),r.createElement("textarea",{className:"form-control",placeholder:"Type a message...",value:e.message,onChange:function(t){return e.onChangeMessage(t.target.value)}})))}var z=n(93779),D=n(97408),B=n(89965),q=n(64818);const U={avatarContainer:"CEbd9"};function H(e){return function(e){if(Array.isArray(e))return Y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||$(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||$(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $(e,t){if(e){if("string"==typeof e)return Y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function J(e){return e.entities.length?r.createElement("div",{className:"d-flex flex-column"},e.entities.map((function(t){var n=e.selectedEntities.includes(t);return r.createElement(b.L,{key:t.id,className:"d-flex align-items-center bg-light-hover px-2 py-1 w-100 rounded gap-2 cursor-pointer justify-content-between",onClick:function(){return e.onSelectEntity(t)}},r.createElement("div",{className:"w-100 d-flex align-items-center"},r.createElement(B.X,{name:"classroom-group",id:"classroom-group",onChange:function(){return e.onSelectEntity(t)},checked:n}),r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,e.renderIcon?e.renderIcon(t):r.createElement(N.f,{svgName:d.vn.Group,svgSize:C.S.Standard,variant:"pink",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"w-100"},e.renderTitle?e.renderTitle(t):r.createElement("label",{className:"m-0"},t.name)))))}))):r.createElement(r.Fragment,null,e.emptyState)}function Z(e){var t=W(r.useState("all"),2),n=t[0],a=t[1],o=W(r.useState([]),2),i=o[0],c=o[1],l=W(r.useState([]),2),u=l[0],m=l[1],f=W(r.useState(!1),2),p=f[0],h=f[1],v=W(r.useState(!1),2),g=v[0],y=v[1],b=e.students.length,E="".concat(b," ").concat(b>1?"students":"student");return r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(M,{onChangeClassroom:e.onChangeClassroom,selectedClassroom:e.classroom}),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement("h3",{className:"h6 m-0"},"Share to ",E,":"),r.createElement("div",null,r.createElement(B.X,{id:"all",checked:"all"===n,label:"All ".concat(E),onChange:function(){a("all")}}))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("div",null,r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Groups (",e.groups.length,")"),r.createElement(s.h,{svgName:p?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return h(!p)}})),p&&r.createElement(J,{entities:e.groups,selectedEntities:i,onSelectEntity:function(e){m([]);var t=H(i);i.includes(e)?t=i.filter((function(t){return t!==e})):t.push(e),t.length?a("groups"):a("all"),c(t)},emptyState:r.createElement("div",null,"No groups found.")})),r.createElement("div",null,r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Students (",e.students.length,")"),r.createElement(s.h,{svgName:g?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return y(!g)}})),g&&r.createElement(J,{entities:e.students,selectedEntities:u,onSelectEntity:function(e){c([]);var t=H(u);u.includes(e)?t=u.filter((function(t){return t!==e})):t.push(e),t.length?a("students"):a("all"),m(t)},emptyState:r.createElement("div",null,"No students found."),renderTitle:function(e){return r.createElement("label",{className:"m-0"},q.l.getFullName(e))},renderIcon:function(t){var n;return r.createElement("div",{className:U.avatarContainer},r.createElement(D.q,{imageCdnUrl:e.imageCdnUrl,initials:q.l.getInitials(t.name,t.surname),imageUrl:null===(n=t.avatar)||void 0===n?void 0:n.url}))}}))))}function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function Q(){Q=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),c=new L(r||[]);return a(i,"_invoke",{value:C(e,n,c)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var m="suspendedStart",f="suspendedYield",p="executing",h="completed",v={};function g(){}function y(){}function b(){}var E={};l(E,i,(function(){return this}));var S=Object.getPrototypeOf,w=S&&S(S(T([])));w&&w!==n&&r.call(w,i)&&(E=w);var x=b.prototype=g.prototype=Object.create(E);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function n(a,o,i,c){var s=d(e[a],e,o);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==K(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return n("throw",e,i,c)}))}c(s.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function C(t,n,r){var a=m;return function(o,i){if(a===p)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=I(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===m)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function I(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,I(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(K(t)+" is not iterable")}return y.prototype=b,a(x,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},k(N.prototype),l(N.prototype,c,(function(){return this})),t.AsyncIterator=N,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new N(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(x),l(x,s,"Generator"),l(x,i,(function(){return this})),l(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=T,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(j),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),j(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;j(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ee(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ee(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var te=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function ne(e){var t=X(r.useState("select-classroom"),2),n=t[0],i=t[1],c=X(r.useState(),2),s=c[0],d=c[1],m=X(r.useState(!1),2),v=m[0],g=m[1],y=X(r.useState(!1),2),b=y[0],E=y[1],S=X(r.useState(!0),2),w=S[0],x=S[1],k=X(r.useState(""),2),N=k[0],C=k[1],I=X(r.useState(!1),2),O=I[0],j=I[1],P=(0,z.t)(e.objectId).createDirectShare,A=o.a.useBasicFetch(u.N.currentUser()),_=o.a.useBasicFetch(A.data&&h.F.getPublishedWithStudents(A.data.id)),F=o.a.useBasicFetch(T.L.config()),G=o.a.useBasicFetch("narrow-selection"===n&&s&&h.F.getClassroomStudents(s.id)),M=o.a.useBasicFetch("narrow-selection"===n&&s&&h.F.getClassroomGroups(s.id));function D(){console.log("Selecting groups or students.."),i("narrow-selection")}function B(){a.C$.trigger({application:p.O.SHARE_V2,action:f.e.ShareV2.OPEN_CLASSROOM,args:[e.objectId],params:{objectId:e.objectId,entityType:e.entityType}})}var q=!!A.data&&!!_.data&&!!F.data,U=!!M.data&&!!G.data,H="narrow-selection"===n?q&&U:q;return r.createElement(l.G,Object.assign({title:"Assign to ClickView classroom",showLoadingSpinner:!H,size:"lg",bodyClassName:"d-flex flex-column gap-3"},e),function(){var e,t,a,o,c,l;if(!q)return null;switch(n){case"select-classroom":return r.createElement(R,{classrooms:null!==(t=null===(e=_.data)||void 0===e?void 0:e.data)&&void 0!==t?t:[],selectedClassroom:s,onClassroomSelected:d,onSelectGroupsOrStudents:D,onClickCreateOpenClassroom:B});case"narrow-selection":return r.createElement(Z,{imageCdnUrl:F.data.imageCdnUrl,students:null!==(o=null===(a=null==G?void 0:G.data)||void 0===a?void 0:a.data)&&void 0!==o?o:[],groups:null!==(l=null===(c=null==M?void 0:M.data)||void 0===c?void 0:c.data)&&void 0!==l?l:[],classroom:s,onChangeClassroom:function(){return i("select-classroom")}});case"settings":return r.createElement(V,{selectedClassroom:s,requireSignIn:w,enableInstantFeedback:b,preventSkippingAhead:v,message:N,onToggleRequireSignIn:function(){return x(!w)},onTogglePreventSkippingAhead:function(){return g(!v)},onToggleEnableInstantFeedback:function(){return E(!b)},onChangeClassroom:function(){return i("select-classroom")},onChangeMessage:C})}}(),r.createElement(L.u,{className:"settings"===n?"justify-content-end":"justify-content-between"},"settings"!==n&&r.createElement(L.u.Submit,{variant:"link",onClick:function(){console.log("Creating a new classroom..")},text:"Create a new classroom",className:"text-info p-0"}),r.createElement("div",null,r.createElement(L.u.Cancel,{variant:"link",onClick:function(){"select-classroom"!==n?["narrow-selection","settings"].includes(n)&&i("select-classroom"):e.closePopup()},text:"Back"}),r.createElement(L.u.Submit,{variant:"dark",onClick:function(){s&&(["select-classroom","narrow-selection"].includes(n)?i("settings"):"settings"!==n||function(){te(this,void 0,void 0,Q().mark((function t(){var n,r;return Q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s){t.next=2;break}return t.abrupt("return");case 2:return j(!0),t.next=5,P({objectId:e.objectId,preventShipping:v,instantFeedback:b,requireSignIn:w,message:N,recipients:[null==s?void 0:s.id],scopeId:null==s?void 0:s.id});case 5:n=t.sent,r={video:f.e.Insights.VIDEO_SHARE_OPTIONS,clip:f.e.Insights.CLIP_SHARE_OPTIONS,interactive:f.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:f.e.Insights.SERIES_SHARE_OPTIONS,playlist:f.e.Insights.PLAYLIST_SHARE_OPTIONS},a.C$.trigger({application:p.O.INSIGHTS,action:r[e.entityType],args:[e.objectId],params:{shareId:n.shareId}}),j(!1);case 9:case"end":return t.stop()}}),t)})))}())},text:"settings"===n?"Assign":"Next",disabled:!s,showSpinner:O}))))}var re=n(22392);function ae(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?oe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ie(e){var t,n,b=ae(r.useState(""),2),E=b[0],w=b[1],x=ae(r.useState(!0),2),k=x[0],N=x[1],C=o.a.useBasicFetch(g.o.getSharesByObjectId(e.objectId)),I=(null===(t=C.data)||void 0===t?void 0:t.filter((function(e){return e.type===v.y.Classroom})))||[],O=o.a.useBasicFetch(u.N.currentUser()),L=c.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(n=O.data)||void 0===n?void 0:n.id),T=i.m.uniq(I.map(y.x.getClassroomIdFromShare).filter((function(e){return!!e}))),P=o.a.useBasicFetch(C.hasCompleted&&h.F.getClassroomsByIds(T));if("classroom"===E)return r.createElement(ne,Object.assign({},e,{closePopup:function(){return w("")}}));if("session"===E)return r.createElement(re.SessionFlowView,Object.assign({},e,{closePopup:function(){return w("")}}));var A=[{id:"classroom",title:"ClickView classroom",description:"Only students from your chosen classroom can view the video.",image:m.W.Share.CLASSROOM_SHARE},{id:"session",title:"Open classroom",description:"Allow any students who have the PIN, QR code or link to access the video for 30 days.",image:m.W.Share.OPEN_CLASSROOM}],_=!!(O.data&&L.data&&C.data&&P.data);return r.createElement(l.G,{size:"lg",title:"Assign",showLoadingSpinner:!_,closePopup:e.closePopup,contentClassName:_?"bg-transparent border-0":"",bodyClassName:"p-0 d-flex flex-column gap-3"},_?r.createElement(r.Fragment,null,r.createElement(S,{options:A,onClick:function(e){return w(e.id)}}),I.length?r.createElement("div",{className:"bg-white rounded-3 p-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Previous assignments (",I.length,")"),r.createElement(s.h,{svgName:k?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return N(!k)}})),k&&r.createElement(j,{data:{shares:I,classrooms:P.data,entity:L.data},onClick:function(t){var n={video:f.e.Insights.VIDEO_SHARE_OPTIONS,clip:f.e.Insights.CLIP_SHARE_OPTIONS,interactive:f.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:f.e.Insights.SERIES_SHARE_OPTIONS,playlist:f.e.Insights.PLAYLIST_SHARE_OPTIONS};a.C$.trigger({application:p.O.INSIGHTS,action:n[e.entityType],args:[e.objectId],params:{shareId:t.shareId}})}})):null):null)}},22392:(e,t,n)=>{n.r(t),n.d(t,{SessionFlowView:()=>b});var r=n(32735),a=n(39202),o=n(9111),i=n(13876),c=n(14070),s=n(97291),l=n(12528),u=n(35223),d=n(58518);function m(e){var t=e.requireSignIn,n=e.respectRatingsAndRestrictions,a=e.preventSkippingAhead,o=e.enableInstantFeedback,i=e.className,c=e.message,s=e.onToggleRequireSignIn,m=e.onToggleRespectRatingsAndRestrictions,f=e.onTogglePreventSkippingAhead,p=e.onToggleEnableInstantFeedback,h=e.onChangeMessage;return r.createElement("div",{className:"d-flex flex-column gap-4 ".concat(i)},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"d-flex align-items-center justify-content-center"},r.createElement("div",null,r.createElement(l.f,{svgName:u.vn.VisibleOn,variant:"blue",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"d-flex flex-column ms-2"},r.createElement("label",{className:"m-0"},"Open Session"),r.createElement("span",{className:"text-secondary"},"Anyone can view for 30 days")))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h4",{className:"h6 m-0"},"Access"),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(d.k,{title:"Require students to sign in",description:"Best way to gather student data linked to their ClickView accounts",toggled:t,onClick:s}),r.createElement(d.k,{title:"Respect ratings and restrictions of video",description:"Only students from Year 4 and above can view this video. Will require students to sign in.",toggled:n,onClick:m}))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h4",{className:"h6 m-0"},"Settings"),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(d.k,{title:"Prevent skipping ahead",description:"Students cannot skip ahead to parts of the video they have not watched",toggled:a,onClick:f}),r.createElement(d.k,{title:"Enable instant feedback",description:"Allow students to see feedback on their answers before continuing",toggled:o,onClick:p}))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("label",{className:"m-0"},"Add a message (optional)"),r.createElement("textarea",{value:c,className:"form-control rounded w-100 h-100",placeholder:"Type a message...",onChange:function(e){return h(e.target.value)}})))}var f=n(93779);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function h(){h=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),c=new P(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var m="suspendedStart",f="suspendedYield",v="executing",g="completed",y={};function b(){}function E(){}function S(){}var w={};l(w,i,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(A([])));k&&k!==n&&r.call(k,i)&&(w=k);var N=S.prototype=b.prototype=Object.create(w);function C(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(a,o,i,c){var s=d(e[a],e,o);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==p(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return n("throw",e,i,c)}))}c(s.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=m;return function(o,i){if(a===v)throw Error("Generator is already running");if(a===g){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=j(c,r);if(s){if(s===y)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===m)throw a=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=v;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?g:f,l.arg===y)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=g,r.method="throw",r.arg=l.arg)}}}function j(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(p(t)+" is not iterable")}return E.prototype=S,a(N,"constructor",{value:S,configurable:!0}),a(S,"constructor",{value:E,configurable:!0}),E.displayName=l(S,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,l(e,s,"GeneratorFunction")),e.prototype=Object.create(N),e},t.awrap=function(e){return{__await:e}},C(I.prototype),l(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new I(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(N),l(N,s,"Generator"),l(N,i,(function(){return this})),l(N,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var y=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function b(e){var t=(0,f.t)(e.objectId).createOpenSession,n=v(r.useState(!1),2),l=n[0],u=n[1],d=v(r.useState(!1),2),p=d[0],g=d[1],b=v(r.useState(!1),2),E=b[0],S=b[1],w=v(r.useState(!1),2),x=w[0],k=w[1],N=v(r.useState(""),2),C=N[0],I=N[1],O=v(r.useState(!1),2),j=O[0],L=O[1];return r.createElement(o.G,Object.assign({title:"Assign to an Open classroom",showLoadingSpinner:!1,size:"lg",bodyClassName:"d-flex flex-column gap-3"},e),r.createElement(m,{requireSignIn:E,respectRatingsAndRestrictions:x,enableInstantFeedback:p,preventSkippingAhead:l,message:C,onToggleRequireSignIn:function(){return S(!E)},onToggleRespectRatingsAndRestrictions:function(){return k(!x)},onTogglePreventSkippingAhead:function(){return u(!l)},onToggleEnableInstantFeedback:function(){return g(!p)},onChangeMessage:I}),r.createElement(i.u,null,r.createElement(i.u.Cancel,{variant:"link",onClick:function(){e.closePopup()}}),r.createElement(i.u.Submit,{variant:"dark",onClick:function(){return y(this,void 0,void 0,h().mark((function n(){var r,o;return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return L(!0),n.next=3,t({instantFeedback:p,preventSkipping:l,requireSignIn:E,respectRatingsAndRestrictions:x,objectId:e.objectId});case 3:r=n.sent,o={video:c.e.Insights.VIDEO_SHARE_OPTIONS,clip:c.e.Insights.CLIP_SHARE_OPTIONS,interactive:c.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:c.e.Insights.SERIES_SHARE_OPTIONS,playlist:c.e.Insights.PLAYLIST_SHARE_OPTIONS},a.C$.trigger({application:s.O.INSIGHTS,action:o[e.entityType],args:[e.objectId],params:{shareId:r.shareId}});case 6:case"end":return n.stop()}}),n)})))},showSpinner:j,text:"Assign"})))}},82602:(e,t,n)=>{n.d(t,{WU:()=>l});var r=["second","minute","hour","day","week","month","year"],a=["秒","分钟","小时","天","周","个月","年"],o={},i=function(e,t){o[e]=t},c=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var l=function(e,t,n){var r=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=c[a]&&a<c.length;a++)e/=c[a];return(e=Math.floor(e))>(0==(a*=2)?9:1)&&(a+=1),t(e,a,r)[n].replace("%s",e.toString())}(r,function(e){return o[e]||o.en_US}(t))};i("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=r[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),i("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=a[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
3
+ //# sourceMappingURL=7210-d8fa7ca624-lite.chunk.js.map