@clickview/lite 0.75.0-rc.7 → 0.75.0-rc.9

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 (31) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1199-dc45a88be8-lite.chunk.js +2 -0
  3. package/dist/scripts/1199-dc45a88be8-lite.chunk.js.map +1 -0
  4. package/dist/scripts/4208-f22ed7a148-lite.chunk.js +2 -0
  5. package/dist/scripts/4208-f22ed7a148-lite.chunk.js.map +1 -0
  6. package/dist/scripts/6550-1d60d863e8-lite.chunk.js +2 -0
  7. package/dist/scripts/6550-1d60d863e8-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{7148-50ccb48a44-lite.chunk.js → 7148-e314dd9a4e-lite.chunk.js} +2 -2
  9. package/dist/scripts/7148-e314dd9a4e-lite.chunk.js.map +1 -0
  10. package/dist/scripts/8856-361fe76b7a-lite.chunk.js +2 -0
  11. package/dist/scripts/8856-361fe76b7a-lite.chunk.js.map +1 -0
  12. package/dist/scripts/9042-544d97a05d-lite.chunk.js +2 -0
  13. package/dist/scripts/9042-544d97a05d-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{9634-f10e5980bd-lite.chunk.js → 9634-0a07635b99-lite.chunk.js} +2 -2
  15. package/dist/scripts/9634-0a07635b99-lite.chunk.js.map +1 -0
  16. package/dist/scripts/{bundle-67a8b81035.min.js → bundle-cf4c360278.min.js} +3 -3
  17. package/dist/scripts/{bundle-67a8b81035.min.js.map → bundle-cf4c360278.min.js.map} +1 -1
  18. package/package.json +1 -1
  19. package/dist/scripts/1199-1cddf4e0e0-lite.chunk.js +0 -2
  20. package/dist/scripts/1199-1cddf4e0e0-lite.chunk.js.map +0 -1
  21. package/dist/scripts/4208-3ba21abb7c-lite.chunk.js +0 -2
  22. package/dist/scripts/4208-3ba21abb7c-lite.chunk.js.map +0 -1
  23. package/dist/scripts/6550-c621babbcb-lite.chunk.js +0 -2
  24. package/dist/scripts/6550-c621babbcb-lite.chunk.js.map +0 -1
  25. package/dist/scripts/7148-50ccb48a44-lite.chunk.js.map +0 -1
  26. package/dist/scripts/8856-8ac95bf4e0-lite.chunk.js +0 -2
  27. package/dist/scripts/8856-8ac95bf4e0-lite.chunk.js.map +0 -1
  28. package/dist/scripts/9042-3092af11d5-lite.chunk.js +0 -2
  29. package/dist/scripts/9042-3092af11d5-lite.chunk.js.map +0 -1
  30. package/dist/scripts/9634-f10e5980bd-lite.chunk.js.map +0 -1
  31. /package/dist/scripts/{bundle-67a8b81035.min.js.LICENSE.txt → bundle-cf4c360278.min.js.LICENSE.txt} +0 -0
package/dist/bundles.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "appBundle": "bundle-67a8b81035.min.js",
2
+ "appBundle": "bundle-cf4c360278.min.js",
3
3
  "cssBundle": "lite-app-8296f294ac.css",
4
4
  "polyfillBundle": "polyfills-909f9fc0c1.min.js"
5
5
  }
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1199],{93479:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(99940);function r(e,t,n){if(!t)return e;var a="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,c=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return r&&(a+=":".concat(r)),i&&(a+=":".concat(i)),c&&(a+=":".concat(c)),n&&(a+=":".concat(n)),a}function i(e,t,n){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId,shareId:n}}var c={interactiveResultSet:function(e,t,n,c,l,o,s,u){return{url:l?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:r("interactive:result:set:".concat(e,":").concat(t,":").concat(l),c),data:i(n,c,l),type:a.k.POST,normalize:!1,success:o,error:s,always:u}},mark:function(e,t,n,r,i,c,l){return{url:"/api/domain/v1/analytics/answers/".concat(n),key:"mark:answer:".concat(n,":").concat(r.resultId),type:a.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:c,always:l}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:a.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:a.k.POST,normalize:!1}}}},18488:(e,t,n)=>{n.d(t,{o:()=>c});var a=n(99940),r=n(97395),i={namespace:"share-v2"},c={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:a.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object"]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:a.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e),"get:share-v2:shares:object"]}},deleteShare:function(e){return{type:a.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e),"get:share-v2:shares:object"]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:a.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:r._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:a.k.GET,normalize:!1}},getShareLink:function(e){return{url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:a.k.POST,url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:a.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:a.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},39902:(e,t,n)=>{n.d(t,{FN:()=>p,SW:()=>f,fh:()=>v});var a=n(32735),r=n(20354),i=n(75896);function c(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(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 l(e,t){if(e){if("string"==typeof e)return o(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)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}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 u(e,t,n){return(t=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+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},d=50;function v(e,t){var n=i.m.chunk(e,d).map(function(e){return t(i.m.uniq(e))}),a=r.a.useBasicFetchAll(n),c=i.m.flatten(a.data),l=a.data.length?c.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))},{}):null;return{itemsArr:c,items:l,isFetching:a.isFetching,hasCompleted:a.hasCompleted}}function p(e,t,n){var r=null!=n?n:function(e){return"object"===s(e)?e.id:e},i=f({getRequest:t,_getKey:n}),c=i.fetchItems,l=m(i,["fetchItems"]);return a.useEffect(function(){(null==e?void 0:e.length)&&c(e)},[null==e?void 0:e.map(r).join(",")]),l}function f(e){var t,n,o,m,v,p=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},f=a.useRef(new Set),y=(m=a.useState([]),v=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(m,v)||l(m,v)||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.")}()),h=y[0],b=y[1],g=r.a.useBasicFetchAll(h),E=i.m.flatten(g.data),S=g.data.length?E.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},p(t),t))},{}):null;return{hasFirstRequestCompleted:!!(null===(o=null===(n=g.responses)||void 0===n?void 0:n[0])||void 0===o?void 0:o.hasCompleted),itemsArr:E,items:S,isFetching:g.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach(function(e){var t=p(e);f.current.has(t)||(n.push(e),f.current.add(t))}),n.length&&b(function(t){return[].concat(c(t),c(i.m.chunk(n,d).map(e.getRequest)))})}}}}},84073:(e,t,n)=>{n.d(t,{g:()=>M,F:()=>L});var a=n(32735),r=n(65858),i=n(9806),c=n(64249),l=n(15611),o=n(83345),s=n(62335),u=n(26339),m=n(4594),d=n(31908),v="shared.sharedObjectTitle";function p(e){var t,n,i,p=e.sharedObject,f=e.titleClassName,y=e.subTextClassName,h=function(){switch(p.typeId){case m.E.Series:return"series";case m.E.Playlist:return"playlist"}}(),b=null===(t=e.getObjectAppLink)||void 0===t?void 0:t.call(e,p);return p.name?d.M.isVideoType(p)&&!(null===(n=d.M.getCanBeConsumed(p))||void 0===n?void 0:n.canNavigate)?a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name):a.createElement("div",null,d.M.isVideoType(p)&&a.createElement(u.$,{type:"series",video:p,appLink:"series"in p&&p.series?null===(i=e.getObjectAppLink)||void 0===i?void 0:i.call(e,p.series):null,analyticsOptions:{location:r.LZ.Insights},className:"d-inline clamp-1 ".concat(null!=y?y:"")}),h&&a.createElement(s.m,null,a.createElement(o.x,{namespace:v,phrase:h})),b?a.createElement(l.F,{appLink:b,className:"clamp-1",analyticsData:{id:p.id,name:p.name},analyticsOptions:{entity:c.I.getAnalyticsEntity(p.type),actionType:r.Vw.Click,location:r.LZ.MyShares}},a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name)):a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name)):a.createElement(o.x,{namespace:v,phrase:"videoUnavailable"})}var f=n(23481),y=n(110),h=n(21789),b=n(36532);const g={indicator:"sybF_"};function E(e){return E="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},E(e)}function S(e,t,n){return(t=function(e){var t=function(e){if("object"!=E(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=E(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==E(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N,k=f.T.encloseNamespace("share-v2.shareStatusIndicator");!function(e){e[e.Active=0]="Active",e[e.Expired=1]="Expired",e[e.MarkingRequired=2]="MarkingRequired"}(N||(N={}));var w=S(S(S({},N.Active,function(){return k("activeStatusLabel")}),N.Expired,function(){return k("expiredStatusLabel")}),N.MarkingRequired,function(){return k("markingRequiredStatusLabel")}),j=S(S(S({},N.Active,"bg-success"),N.Expired,"bg-danger"),N.MarkingRequired,"bg-blue"),I=S(S(S({},N.Active,function(){return k("activeStatusTooltip")}),N.Expired,function(){return k("expiredStatusTooltip")}),N.MarkingRequired,function(){return k("markingRequiredStatusTooltip")});function x(e){var t=function(e){return e.markingRequired?N.MarkingRequired:h.x.hasShareExpired(e.share)?N.Expired:N.Active}(e),n=function(e,t){if(e===N.Active&&t){var n=y.O.convertUTCToLocal(t),a=y.O.format(n,"MMMM Do");return k("expiryTooltip",{date:a})}return I[e]()}(t,e.share.expireDate),r=j[t];return a.createElement(b.u,{title:n,spanHack:!0,spanHackClassName:"d-inline-flex"},a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:"".concat(g.indicator," ").concat(r," me-2 flex-shrink-0")}),function(){var n=w[t](),r=e.share.expireDate;if(t===N.Active&&r){var i=h.x.calculateDaysToExpiry(e.share),c=k("expiryHint",{smartCount:i});return a.createElement("p",{className:"mb-0"},n," · ",c)}return a.createElement("p",{className:"mb-0"},n)}()))}var O=n(76306),C=n(83914),A=n(54610),R=n(35223),F=n(86099);const T={thumbnailContainer:"XNQc8",tableRow:"R3dYa",viewCta:"ssCq6"};var P="myShares.tableRow";function M(e){return a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"col-auto ".concat(T.thumbnailContainer)},a.createElement("p",{className:"fw-semibold mb-2"},e.heading)),a.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},a.createElement("div",{className:"col-10 col-md-4"}),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"viewsHeading"}))),a.createElement("div",{className:"col-3"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"viewedByHeading"}))),a.createElement("div",{className:"col-5"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"statusHeading"})))),a.createElement("div",{className:"col-2"})))}function L(e){var t,n=e.shareData,c=n.sharedObject,s=c.typeId===m.E.Playlist||c.typeId===m.E.Series,u=(0,F.pY)(n.share);return a.createElement("div",{className:"position-relative hover-bg-light-blue ".concat(T.tableRow," ").concat(null!==(t=e.className)&&void 0!==t?t:"")},a.createElement(l.F,{appLink:u,className:"p-2 cursor-pointer d-flex text-decoration-none"},a.createElement("div",{className:"col-auto ".concat(T.thumbnailContainer)},a.createElement(i.k,{object:c,showVideoMetadata:!0,locationContext:r.LZ.MyShares,imageOptions:{size:A.h2.Medium},showCollectionMask:!1,showVideoCount:!0,onlyCount:!0})),a.createElement("div",{className:"col d-flex align-items-center"},a.createElement("div",{className:"px-3 col-10 col-md-4"},a.createElement(p,{sharedObject:n.sharedObject})),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},s?a.createElement("p",{className:"mb-0"},"-"):a.createElement("p",{className:"mb-0"},a.createElement(o.x,{namespace:P,phrase:"views",options:{smartCount:n.share.viewCount}}))),a.createElement("div",{className:"col-3"},s?a.createElement("p",{className:"mb-0"},"-"):a.createElement("div",{className:"d-flex align-items-center"},a.createElement(C.x,{svgName:R.vn.User,size:C.S.Standard,className:"me-2 svg-container"}),a.createElement("p",{className:"mb-0"},n.share.accessCount))),a.createElement("div",{className:"col-5"},a.createElement(x,{share:n.share,markingRequired:n.pendingReview>0}))))),a.createElement("div",{className:"position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2"},a.createElement(l.F,{appLink:u,className:"me-4 text-info d-none ".concat(T.viewCta)},a.createElement(o.x,{namespace:P,phrase:"viewCta"})),a.createElement(O.m,{dropdownToggleSvgSize:C.S.Standard,actions:e.getObjectActions(n),dropdownToggleClassName:"btn btn-link"})))}},5056:(e,t,n)=>{n.d(t,{R:()=>f});var a=n(32735),r=n(23481),i=n(75896),c=n(110),l=n(31754),o=n(2510),s=n(4594);function u(e){return u="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},u(e)}function m(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=r.T.encloseNamespace("myShares.mySharesTable");function v(e){var t;if(e.type===o.y.Link||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var n=e.recipients.map(function(e){return e.dateCreated});return n.length?(n.sort(function(e,t){return c.O.isSame(e,t)?0:c.O.isAfter(e,t)?1:-2}),i.m.last(n)):""}var p=n(84073);function f(e){var t,n,r,i,c,u,f,y=(t=e.sentShares,n=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,c=e.interactivesPendingReview,u=[],f=null==c?void 0:c.reduce(function(e,t){return Object.assign(m({},t.interactiveId,t),e)},{}),t.forEach(function(e){var t,a=null==n?void 0:n[e.objectId],i=null;if(e.type===o.y.Classroom&&(i=[],null===(t=e.recipients)||void 0===t||t.forEach(function(e){var t=null==r?void 0:r[e.recipientId];t&&i.push(t)})),a){var c=a.typeId===s.E.Interactive&&(null==f?void 0:f[a.interactiveId]);u.push({share:e,sharedObject:a,shareRecipients:i,dateShared:v(e),pendingReview:null==c?void 0:c.pendingReviewCount,privacy:e.privacy})}}),i?l.x.groupByDateShared(u):m({},d("title"),u));return a.createElement(a.Fragment,null,Object.keys(y).map(function(t,n){return a.createElement("div",{key:n},a.createElement(p.g,{heading:t,isFirst:!e.hasDemoInsights&&0===n}),a.createElement("div",{className:"d-flex flex-column mb-4"},y[t].map(function(t,n){return a.createElement(p.F,{key:n,shareData:t,getObjectActions:e.getObjectActions,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})})))}))}},67467:(e,t,n)=>{n.d(t,{o:()=>u});var a=n(32735),r=n(23481),i=n(97958),c=n(99742),l=n(14070),o=n(97291),s=r.T.encloseNamespace("myShares.mySharesTableEmptyState");function u(){return a.createElement(i.u,null,a.createElement(i.u.Image,{src:c.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),a.createElement(i.u.Heading,null,s("heading")),a.createElement(i.u.Info,null,s("info")),a.createElement(i.u.Cta,{appLink:{application:o.O.DASHBOARD,action:l.e.Dashboard.HOME},text:s("cta")}))}},28001:(e,t,n)=>{n.d(t,{L:()=>l});var a=n(32735);const r={heading:"iWHol",thumbnailContainer:"zrcDh"};function i(e){return a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"col-auto ".concat(r.thumbnailContainer)},a.createElement("div",{className:"partial-loading-background mb-2"}," ")),a.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},a.createElement("div",{className:"col-10 col-md-4"}),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," ")),a.createElement("div",{className:"col-3"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," ")),a.createElement("div",{className:"col-5"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," "))),a.createElement("div",{className:"col-2"})))}function c(){return a.createElement("div",{className:"p-2 d-flex"},a.createElement("div",{className:"col-auto ".concat(r.thumbnailContainer)},a.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9"})),a.createElement("div",{className:"col d-flex align-items-center"},a.createElement("div",{className:"px-3 col-10 col-md-4"},a.createElement("div",{className:"partial-loading-background w-75"}," ")),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("div",{className:"partial-loading-background w-50"}," ")),a.createElement("div",{className:"col-3"},a.createElement("div",{className:"partial-loading-background w-50"}," ")),a.createElement("div",{className:"col-5"},a.createElement("div",{className:"partial-loading-background w-75"}," "))),a.createElement("div",{className:"col-2 d-flex justify-content-end align-items-center"},a.createElement("div",{className:"partial-loading-background w-25"}," "))))}function l(){return a.createElement(a.Fragment,null,a.createElement("div",null,a.createElement(i,{isFirst:!0}),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))),a.createElement("div",null,a.createElement(i,null),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))),a.createElement("div",null,a.createElement(i,null),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))))}},98623:(e,t,n)=>{n.d(t,{a:()=>y});var a=n(20354),r=n(1048),i=n(93479),c=n(30439),l=n(18488),o=n(21789),s=n(39151),u=n(1666),m=n(31949),d=n(39902),v=n(60115),p=n(31908);function f(e){return f="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},f(e)}function y(e){var t,n,y=e.params,h=e.interactiveInsights,b=e.shouldFetch,g=a.a.useGetFetch(),E=a.a.useBasicFetch(m.N.currentUser()),S=a.a.useBasicFetch(s.L.config()),N=a.a.useBasicFetch((null===(t=E.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(E.data.customerId)),k=function(e){return b&&l.o.getSentShares(Object.assign({cursor:e},y))},w=function(e){return g(k(e))},j=(0,v.K)(k,w),I=j.items,x=j.hasMore,O=j.isFetching,C=j.nextCursor,A=j.hasFirstPageCompleted,R=(0,d.FN)(null==I?void 0:I.map(function(e){return e.objectId.toString()}),c.o.sharedObjectsById),F=(0,d.FN)(o.x.getFlattenedRecipients(null!=I?I:[]).map(function(e){return e.recipientId.toString()}),function(e){return c.o.getRecipientsById(e,E.data.customerId)}),T=null==I?void 0:I.reduce(function(e,t){return Object.assign(Object.assign({},e),(n={},a=t.objectId,r=t,(a=function(e){var t=function(e){if("object"!=f(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(a))in n?Object.defineProperty(n,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[a]=r,n));var n,a,r},{}),P=(0,d.FN)(h?r.t.values(R.items||[]):[],function(e){return i.I.pendingReviews({interactives:e.filter(p.M.isInteractive).map(function(e){var t;return{interactiveId:e.interactiveId,metadataId:e.id,shareId:null===(t=T[e.id])||void 0===t?void 0:t.shareId}}),filters:{currentCustomerId:E.data.customerId,currentUserId:E.data.id}})},function(e){return"".concat(e.id,":").concat("interactiveId"in e?e.interactiveId:"")}),M=O||R.isFetching||F.isFetching||P.isFetching||N.isFetching,L=!A||(null==I?void 0:I.length)&&!R.hasFirstRequestCompleted;return{sentShares:I,sharedObjects:R,shareRecipients:F,yearGroups:N.data,interactivesPendingReview:P,isFetching:M,showPartialLoading:L,nextCursor:C,hasMore:x,fetchNext:w,imageCdnUrl:null===(n=S.data)||void 0===n?void 0:n.imageCdnUrl}}}}]);
2
+ //# sourceMappingURL=1199-dc45a88be8-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/1199-dc45a88be8-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/apps/share/components/shared-object-title/SharedObjectTitle.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/my-shares-table-row.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/MySharesTableRow.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTableUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/partial-my-shares-table.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable.tsx","file:///app/packages/projects/lite/src/shared/hooks/useSharesTable.ts"],"sourcesContent":["import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n shareId?: string;\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n shareId?: string\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: filter ? { start: filter.start, end: filter.end } : undefined,\n userIds: filter?.userId,\n classroomsAndGroups: filter?.groupId,\n shareId: shareId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter?: AnalyticsRequestFilter,\n shareId?: string,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: shareId ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}:${shareId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter, shareId),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '/api/domain/v3/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', 'get:share-v2:shares:object' ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.sharedObjectTitle';\n\ninterface SharedObjectTitleProps {\n sharedObject: SharableEntity;\n getObjectAppLink?: (object: BaseObject) => Core.AppLink;\n titleClassName?: string;\n subTextClassName?: string;\n}\n\nexport function SharedObjectTitle(props: SharedObjectTitleProps) {\n const { sharedObject, titleClassName, subTextClassName } = props;\n const subTextPhrase = getSubTextPhrase();\n const titleAppLink = props.getObjectAppLink?.(sharedObject);\n\n if (!sharedObject.name) {\n return <Text namespace={namespace} phrase='videoUnavailable' />;\n }\n\n if (VideoHelper.isVideoType(sharedObject) && !VideoHelper.getCanBeConsumed(sharedObject)?.canNavigate) {\n return (\n <span className={`clamp-2 ${titleClassName ?? ''}`}>\n {sharedObject.name}\n </span>\n );\n }\n\n function getSubTextPhrase(): string {\n switch (sharedObject.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n return (\n <div>\n {VideoHelper.isVideoType(sharedObject) && (\n <VideoSubText\n type='series'\n video={sharedObject}\n appLink={'series' in sharedObject && sharedObject.series ? props.getObjectAppLink?.(sharedObject.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n className={`d-inline clamp-1 ${subTextClassName ?? ''}`}\n />\n )}\n\n { subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n\n { titleAppLink ? (\n <AppLink\n appLink={titleAppLink}\n className='clamp-1'\n analyticsData={{ id: sharedObject.id, name: sharedObject.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(sharedObject.type),\n actionType: UserAction.Click,\n location: LocationContext.MyShares\n }}\n >\n <span className={`clamp-2 ${titleClassName ?? ''}`}>\n {sharedObject.name}\n </span>\n </AppLink>\n ) : (\n <span className={`clamp-2 ${titleClassName ?? ''}`}>\n {sharedObject.name}\n </span>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicator\":\"sybF_\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share-v2.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nenum ShareIndicatorStatus {\n Active,\n Expired,\n MarkingRequired\n}\n\nconst statusIndicatorLabels = {\n [ShareIndicatorStatus.Active]: () => getPhrase('activeStatusLabel'),\n [ShareIndicatorStatus.Expired]: () => getPhrase('expiredStatusLabel'),\n [ShareIndicatorStatus.MarkingRequired]: () => getPhrase('markingRequiredStatusLabel')\n};\n\nconst statusIndicatorColors = {\n [ShareIndicatorStatus.Active]: 'bg-success',\n [ShareIndicatorStatus.Expired]: 'bg-danger',\n [ShareIndicatorStatus.MarkingRequired]: 'bg-blue'\n};\n\nconst statusIndicatorTooltips = {\n [ShareIndicatorStatus.Active]: () => getPhrase('activeStatusTooltip'),\n [ShareIndicatorStatus.Expired]: () => getPhrase('expiredStatusTooltip'),\n [ShareIndicatorStatus.MarkingRequired]: () => getPhrase('markingRequiredStatusTooltip')\n};\n\nfunction determineStatus(props: ShareStatusIndicatorProps): ShareIndicatorStatus {\n if (props.markingRequired)\n return ShareIndicatorStatus.MarkingRequired;\n\n if (ShareHelper.hasShareExpired(props.share))\n return ShareIndicatorStatus.Expired;\n\n return ShareIndicatorStatus.Active;\n}\n\nfunction getTooltip(status: ShareIndicatorStatus, expireDate: string): string {\n if (status === ShareIndicatorStatus.Active && expireDate) {\n const localDate = DateHelper.convertUTCToLocal(expireDate);\n const formattedDate = DateHelper.format(localDate, 'MMMM Do');\n\n return getPhrase('expiryTooltip', { date: formattedDate });\n }\n\n return statusIndicatorTooltips[status]();\n}\n\ninterface ShareStatusIndicatorProps {\n share: Share;\n markingRequired: boolean;\n}\n\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps) {\n const status = determineStatus(props);\n const tooltip = getTooltip(status, props.share.expireDate);\n const color = statusIndicatorColors[status];\n\n function renderDisplayText() {\n const label = statusIndicatorLabels[status]();\n const expireDate = props.share.expireDate;\n \n if (status === ShareIndicatorStatus.Active && expireDate) {\n const remainingDays = ShareHelper.calculateDaysToExpiry(props.share);\n const hint = getPhrase('expiryHint', { smartCount: remainingDays });\n\n return (\n <p className='mb-0'>\n {label} · {hint}\n </p>\n );\n }\n\n return (\n <p className='mb-0'>\n {label}\n </p>\n );\n }\n\n return (\n <Tooltip title={tooltip} spanHack spanHackClassName='d-inline-flex'>\n <div className='d-flex align-items-center'>\n <div className={`${styles.indicator} ${color} me-2 flex-shrink-0`} />\n {renderDisplayText()}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailContainer\":\"XNQc8\",\"tableRow\":\"R3dYa\",\"viewCta\":\"ssCq6\"};","import React from 'react';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharedObjectTitle } from 'libs/shared/apps/share/components/shared-object-title/SharedObjectTitle';\nimport { ShareStatusIndicator } from 'libs/shared/apps/share-v2/components/share-status-indicator/ShareStatusIndicator';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nimport styles from './my-shares-table-row.scss';\n\nconst namespace = 'myShares.tableRow';\n\ninterface MySharesTableHeadingProps {\n heading: string;\n isFirst: boolean;\n}\n\nexport function MySharesTableHeading(props: MySharesTableHeadingProps) {\n return (\n <div className='d-flex'>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <p className='fw-semibold mb-2'>{props.heading}</p>\n </div>\n \n <div className={`${props.isFirst ? 'd-flex' : 'd-none'} col align-items-center`}>\n <div className='col-10 col-md-4' />\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='viewsHeading' /></p>\n </div>\n\n <div className='col-3'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='viewedByHeading' /></p>\n </div>\n\n <div className='col-5'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='statusHeading' /></p>\n </div>\n </div>\n\n <div className='col-2' />\n </div>\n </div>\n );\n}\n\ninterface MySharesTableRowProps extends React.PropsWithChildren {\n shareData: MySharesTableData;\n breakpoints?: Breakpoints;\n getObjectActions: (row: MySharesTableData) => ActionOptions[];\n yearGroups: YearGroup[];\n imageCdnUrl: string;\n className?: string;\n}\n\nexport function MySharesTableRow(props: MySharesTableRowProps) {\n const { shareData } = props;\n const sharedObject = shareData.sharedObject;\n const isCollection = sharedObject.typeId === MasterType.Playlist || sharedObject.typeId === MasterType.Series;\n const appLink = getInsightsOverviewAppLink(shareData.share);\n\n function renderViewCount() {\n if (isCollection)\n return <p className='mb-0'>-</p>;\n\n return (\n <p className='mb-0'>\n <Text namespace={namespace} phrase='views' options={{ smartCount: shareData.share.viewCount }} />\n </p>\n );\n }\n\n function renderViewedBy() {\n if (isCollection)\n return <p className='mb-0'>-</p>;\n\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} size={SvgContainerSize.Standard} className='me-2 svg-container' />\n <p className='mb-0'>{shareData.share.accessCount}</p>\n </div>\n );\n }\n\n return (\n <div className={`position-relative hover-bg-light-blue ${styles.tableRow} ${props.className ?? ''}`}>\n <AppLink appLink={appLink} className={`p-2 cursor-pointer d-flex text-decoration-none`}>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <SharedObjectImage\n object={sharedObject}\n showVideoMetadata\n locationContext={LocationContext.MyShares}\n imageOptions={{ size: ImageSize.Medium }}\n showCollectionMask={false}\n showVideoCount\n onlyCount\n />\n </div>\n \n <div className='col d-flex align-items-center'>\n <div className='px-3 col-10 col-md-4'>\n <SharedObjectTitle sharedObject={shareData.sharedObject} />\n </div>\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n {renderViewCount()}\n </div>\n\n <div className='col-3'>\n {renderViewedBy()}\n </div>\n\n <div className='col-5'>\n <ShareStatusIndicator share={shareData.share} markingRequired={shareData.pendingReview > 0} />\n </div>\n </div>\n </div>\n </AppLink>\n <div className='position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2'>\n <AppLink appLink={appLink} className={`me-4 text-info d-none ${styles.viewCta}`}>\n <Text namespace={namespace} phrase='viewCta' />\n </AppLink>\n <ActionsDropdown\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n actions={props.getObjectActions(shareData)}\n dropdownToggleClassName='btn btn-link'\n />\n </div>\n </div>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.mySharesTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: Share): string {\n if (share.type === ShareType.Link || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesCreated = share.recipients.map(r => r.dateCreated);\n\n if (!datesCreated.length)\n return '';\n\n datesCreated.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n return ArrayHelper.last(datesCreated);\n}\n\nexport interface MySharesTableData {\n share: Share;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: SharableRecipient[];\n pendingReview?: number;\n privacy?: SharePrivacy;\n}\n\ntype TableDataGroupings = { [date: string]: MySharesTableData[] };\n\nexport function useGetMySharesData(\n sentShares: Share[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean,\n interactivesPendingReviews: InteractivesPendingReviews[]\n): TableDataGroupings {\n const tableData: MySharesTableData[] = [];\n\n const interactivesPendingReviewsMap = interactivesPendingReviews\n ?.reduce<Record<string, InteractivesPendingReviews>>(\n (map, obj) => ({ [obj.interactiveId]: obj, ...map }),\n {}\n );\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: SharableRecipient[] | null = null;\n\n if (s.type === ShareType.Classroom) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.recipientId];\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject) {\n const pendingReview = sharedObject.typeId === MasterType.Interactive &&\n interactivesPendingReviewsMap?.[(sharedObject as InteractiveMetadata).interactiveId];\n\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n pendingReview: pendingReview?.pendingReviewCount,\n privacy: s.privacy\n });\n }\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n}","import React from 'react';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableData, useGetMySharesData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\n\ninterface MySharesTableProps {\n sentShares: Share[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n interactivesPendingReview: InteractivesPendingReviews[];\n getObjectActions: (row: MySharesTableData) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: any[];\n breakpoints?: Breakpoints;\n hasDemoInsights?: boolean;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n}\n\nexport function MySharesTable(props: MySharesTableProps): JSX.Element {\n const data = useGetMySharesData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n props.interactivesPendingReview\n );\n\n return (\n <>\n {Object.keys(data).map((heading, headingIdx) => (\n <div key={headingIdx}>\n <MySharesTableHeading heading={heading} isFirst={!props.hasDemoInsights && headingIdx === 0} />\n\n <div className='d-flex flex-column mb-4'>\n {data[heading].map((shareData, index) => (\n <MySharesTableRow\n key={index}\n shareData={shareData}\n getObjectActions={props.getObjectActions}\n breakpoints={props.breakpoints}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n />\n ))}\n </div>\n </div>\n ))}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesTableEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_BY_ME} size='small' />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase('info')}</EmptyState.Info>\n <EmptyState.Cta appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }} text={getPhrase('cta')} />\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"heading\":\"iWHol\",\"thumbnailContainer\":\"zrcDh\"};","import React from 'react';\n\nimport styles from './partial-my-shares-table.scss';\n\ninterface PartialHeadingProps {\n isFirst?: boolean;\n}\n\nexport function PartialHeading(props: PartialHeadingProps) {\n return (\n <div className='d-flex'>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <div className={`partial-loading-background mb-2`}>&nbsp;</div>\n </div>\n \n <div className={`${props.isFirst ? 'd-flex' : 'd-none'} col align-items-center`}>\n <div className='col-10 col-md-4' />\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}>&nbsp;</div>\n </div>\n\n <div className='col-3'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}>&nbsp;</div>\n </div>\n\n <div className='col-5'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}>&nbsp;</div>\n </div>\n </div>\n\n <div className='col-2' />\n </div>\n </div>\n );\n}\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`p-2 d-flex`}>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <div className={`partial-loading-background rounded ratio ratio-16x9`} />\n </div>\n \n <div className='col d-flex align-items-center'>\n <div className='px-3 col-10 col-md-4'>\n <div className={`partial-loading-background w-75`}>&nbsp;</div>\n </div>\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <div className={`partial-loading-background w-50`}>&nbsp;</div>\n </div>\n\n <div className='col-3'>\n <div className={`partial-loading-background w-50`}>&nbsp;</div>\n </div>\n\n <div className='col-5'>\n <div className={`partial-loading-background w-75`}>&nbsp;</div>\n </div>\n </div>\n\n <div className='col-2 d-flex justify-content-end align-items-center'>\n <div className={`partial-loading-background w-25`}>&nbsp;</div>\n </div>\n </div>\n </div>\n );\n}\n\nexport function PartialMySharesTable(): JSX.Element {\n return (\n <>\n <div>\n <PartialHeading isFirst={true} />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div>\n <PartialHeading />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div>\n <PartialHeading />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { ShareRequests as ShareRequestsV1 } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { GetSentSharesParams, ShareRequests as ShareRequestsV2 } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { UseBatchFetchResult, useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { BaseObject, Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\ninterface UseSharesTableOptions {\n params?: GetSentSharesParams;\n interactiveInsights?: boolean;\n shouldFetch: boolean;\n}\n\nexport function useSharesTable({ params, interactiveInsights, shouldFetch }: UseSharesTableOptions) {\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Fetch sent shares\n */\n const getRequest = (cursor?: string) => shouldFetch && ShareRequestsV2.getSentShares({\n cursor,\n ...params\n });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor,\n hasFirstPageCompleted\n } = useInfiniteList<Share>(getRequest, fetchNext);\n\n /**\n * Fetch shared objects\n */\n const sharedObjects = useGrowingBatchFetch<SharableEntity>(\n sentShares?.map(obj => obj.objectId.toString()),\n ShareRequestsV1.sharedObjectsById\n );\n\n /**\n * Fetch recipients\n */\n const shareRecipients = useGrowingBatchFetch<SharableRecipient>(\n ShareHelper.getFlattenedRecipients(sentShares ?? []).map(obj => obj.recipientId.toString()),\n objs => (ShareRequestsV1.getRecipientsById(objs, currentUser.data.customerId))\n );\n\n /**\n * Fetch which interactives required marking\n */\n const shareLookup = sentShares\n ?.reduce<Record<string, Share>>((prev, next: Share) => ({ ...prev, [next.objectId]: next }), {});\n const interactivesPendingReview = useGrowingBatchFetch<InteractivesPendingReviews, SharableEntity>(\n interactiveInsights ? ObjectHelper.values(sharedObjects.items || []) : [],\n objs => InteractiveResultsRequests.pendingReviews({\n interactives: objs\n .filter(VideoHelper.isInteractive)\n .map(obj => ({\n interactiveId: obj.interactiveId,\n metadataId: obj.id,\n shareId: shareLookup[obj.id]?.shareId\n })),\n filters: {\n currentCustomerId: currentUser.data.customerId,\n currentUserId: currentUser.data.id\n }\n }),\n obj => `${obj.id}:${'interactiveId' in obj ? obj.interactiveId : ''}`\n );\n \n const isFetching = isFetchingSentShares\n || sharedObjects.isFetching\n || shareRecipients.isFetching\n || interactivesPendingReview.isFetching\n || yearGroups.isFetching;\n\n const showPartialLoading = !hasFirstPageCompleted || (sentShares?.length && !sharedObjects.hasFirstRequestCompleted);\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n yearGroups: yearGroups.data,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl\n };\n}"],"names":["getAnalyticsRequestKey","baseKey","filter","extra","key","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","customerIdKey","customerId","getInteractiveResultFilters","currentUser","shareId","currentUserId","id","currentCustomerId","dateRange","undefined","userIds","classroomsAndGroups","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","success","error","always","url","data","type","HttpVerbs","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","normalizeOptions","namespace","ShareRequests","createShare","updateShare","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","getShareLink","objectId","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","items","length","reduce","acc","item","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","options","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","current","has","push","add","r","SharedObjectTitle","props","sharedObject","titleClassName","subTextClassName","subTextPhrase","typeId","MasterType","getSubTextPhrase","titleAppLink","getObjectAppLink","name","VideoHelper","canNavigate","className","VideoSubText","video","appLink","series","analyticsOptions","location","TitleSubText","Text","phrase","AppLink","analyticsData","entity","ShareViewHelper","actionType","ShareIndicatorStatus","getPhrase","LanguageService","statusIndicatorLabels","Active","Expired","MarkingRequired","statusIndicatorColors","statusIndicatorTooltips","ShareStatusIndicator","status","markingRequired","ShareHelper","share","determineStatus","tooltip","expireDate","localDate","DateHelper","formattedDate","date","getTooltip","color","Tooltip","title","spanHack","spanHackClassName","label","remainingDays","hint","smartCount","renderDisplayText","MySharesTableHeading","heading","isFirst","MySharesTableRow","shareData","isCollection","SharedObjectImage","object","showVideoMetadata","locationContext","imageOptions","size","showCollectionMask","showVideoCount","onlyCount","viewCount","SvgContainer","svgName","S","accessCount","pendingReview","ActionsDropdown","dropdownToggleSvgSize","actions","getObjectActions","dropdownToggleClassName","getDateShared","ShareType","recipients","dateCreated","datesCreated","date1","date2","ArrayHelper","MySharesTable","sentShares","sharedObjects","shareRecipients","groupByDate","interactivesPendingReviews","tableData","interactivesPendingReviewsMap","groupByDateShared","interactivesPendingReview","s","recipient","recipientId","dateShared","pendingReviewCount","privacy","keys","headingIdx","hasDemoInsights","index","breakpoints","imageCdnUrl","yearGroups","MySharesTableEmptyState","src","application","action","text","PartialHeading","PartialRow","PartialMySharesTable","useSharesTable","interactiveInsights","shouldFetch","fetch","config","isAuthenticated","cursor","fetchNext","hasMore","isFetchingSentShares","nextCursor","hasFirstPageCompleted","toString","shareLookup","prev","next","I","interactives","metadataId","filters","showPartialLoading"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4208],{69087:(e,t,r)=>{r.d(t,{d:()=>C});var n=r(32735),a=r(38129),s=r(23481),i=r(75896),o=r(83914),c=r(8246),u=r(35223);function l(e){var t=e.answer;return n.createElement("div",{key:t.id,className:"".concat(function(e){switch(e){case c.N.Correct:return"bg-light-green";case c.N.Incorrect:return"bg-light-red";case c.N.PendingReview:return"bg-light-blue"}}(t.status)," rounded p-2 mb-2")},n.createElement("div",{className:"d-flex align-items-center gap-2"},t.status===c.N.Correct&&n.createElement(o.x,{svgName:u.vn.Check,className:"svg-container flex-shrink-0 text-success"}),t.status===c.N.Incorrect&&n.createElement(o.x,{svgName:u.vn.Close,className:"svg-container flex-shrink-0 text-danger"}),!e.customAnswer&&n.createElement("span",{className:e.textClassName},t.text)),e.children)}var m=s.T.encloseNamespace("shared.interactionResponses");function d(e){return d="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},d(e)}function v(e,t,r){return(t=function(e){var t=function(e){if("object"!=d(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=function(){return n.createElement(n.Fragment,null)},y=v(v(v(v(v(v(v({},a.Z9.Annotation,f),a.Z9.Image,f),a.Z9.MissingWord,function(e){return e.answers.length?n.createElement("ul",{className:"list-unstyled"},e.answers.map(function(e){return n.createElement("li",{key:e.id},n.createElement(l,{answer:e,textClassName:"bg-white p-1 border border-gray-300 rounded"}))})):n.createElement(n.Fragment,null)}),a.Z9.MultipleChoice,function(e){return e.answers.length?n.createElement("ul",{className:"list-unstyled"},e.answers.map(function(e){return n.createElement("li",{key:e.id},n.createElement(l,{answer:e}))})):n.createElement(n.Fragment,null)}),a.Z9.TrueOrFalse,function(e){var t=i.m.first(e.answers);return t?n.createElement(l,{answer:t}):n.createElement(n.Fragment,null)}),a.Z9.ShortAnswer,function(e){var t=i.m.first(e.answers);return t?n.createElement(l,{answer:t},e.children):n.createElement(n.Fragment,null)}),a.Z9.Illustration,function(e){var t=i.m.first(e.answers);return t?n.createElement(l,{answer:t,customAnswer:!0},n.createElement("div",{className:"ratio ratio-16x9"},n.createElement("img",{className:"img-fluid bg-white border rounded h-100 w-100",src:t.text,alt:"".concat(m("illustrationAlt"),": ").concat(e.interaction.name)})),e.children):n.createElement(n.Fragment,null)}),g=r(97408),p=r(44526),w=r(56151),h=r(3894),b=r(69737),E=r(83140),I=r(80845),S=r(64818);const k={avatarContainer:"O7oaA"};function C(e){var t,r,a,s,i,o,c,u=y[e.interaction.typeId];if(!u)return n.createElement(n.Fragment,null);var l=(0,I.j_)(e.studentResults),m=(0,I.f6)(e.interaction.id,l),d=E.A.isInteractionCorrect(e.interaction,l);return n.createElement("div",{className:"position-relative"},n.createElement("div",{className:"rounded ".concat(null!==(t=e.className)&&void 0!==t?t:"")},n.createElement("div",{className:"d-flex"},!!e.showStudentDetails&&n.createElement("div",{className:"me-2"},n.createElement("div",{className:k.avatarContainer},n.createElement(g.q,{imageCdnUrl:e.imageCdnUrl,initials:e.anonymisedUserName?S.l.getInitialsFromFullName(e.anonymisedUserName):S.l.getInitials(null===(r=e.studentResults.user)||void 0===r?void 0:r.name,null===(a=e.studentResults.user)||void 0===a?void 0:a.surname),imageUrl:e.anonymisedUserName?null:null===(i=null===(s=e.studentResults.user)||void 0===s?void 0:s.avatar)||void 0===i?void 0:i.url,showAnonymousUser:!!(null===(c=null===(o=e.studentResults)||void 0===o?void 0:o.user)||void 0===c?void 0:c.sessionId)}))),n.createElement("div",{className:"flex-grow-1"},!!e.showStudentDetails&&n.createElement(w.U,{studentResults:e.studentResults,correctness:d,anonymisedUserName:e.anonymisedUserName}),n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("div",{className:"flex-grow-1 mb-2 ".concat(e.responseComponentClass?e.responseComponentClass:"")},m?n.createElement(u,{interaction:e.interaction,answers:m.answers,imageCdnUrl:e.imageCdnUrl,user:e.studentResults.user,showFeedback:e.showFeedback,showAvatar:e.showAvatar},n.createElement(h.Z,{studentAttempt:m,correctness:d,markInteraction:e.markInteraction,markedStatus:e.markedStatus})):n.createElement(b.R,null)),!e.showStudentDetails&&n.createElement(p.Y,{correctness:d}))))))}},93479:(e,t,r)=>{r.d(t,{I:()=>i});var n=r(99940);function a(e,t,r){if(!t)return e;var n="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,s=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,i=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return a&&(n+=":".concat(a)),s&&(n+=":".concat(s)),i&&(n+=":".concat(i)),r&&(n+=":".concat(r)),n}function s(e,t,r){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId,shareId:r}}var i={interactiveResultSet:function(e,t,r,i,o,c,u,l){return{url:o?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:a("interactive:result:set:".concat(e,":").concat(t,":").concat(o),i),data:s(r,i,o),type:n.k.POST,normalize:!1,success:c,error:u,always:l}},mark:function(e,t,r,a,s,i,o){return{url:"/api/domain/v1/analytics/answers/".concat(r),key:"mark:answer:".concat(r,":").concat(a.resultId),type:n.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:s,error:i,always:o}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},9193:(e,t,r)=>{r.d(t,{D:()=>v});var n=r(32735),a=r(70680),s=r(23481),i=r(20354),o=r(93479),c=r(39157),u=r(69883);function l(e){return l="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},l(e)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var d=s.T.encloseNamespace("reportsShared.dataHooks"),v=function(e,t,r){var s,v,f=(s=(0,n.useState)({}),v=2,function(e){if(Array.isArray(e))return e}(s)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,s,i,o=[],c=!0,u=!1;try{if(s=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=s.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return o}}(s,v)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(s,v)||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.")}()),y=f[0],g=f[1],p=(0,a.I0)(),w=(0,u.Z)();return{markedAnswers:y,addMarkedAnswers:function(e,t){e.forEach(function(e){g(function(r){return Object.assign(Object.assign({},r),function(e,t,r){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},(0,c.UU)(e),Object.assign(Object.assign({},e),{status:t})))})})},submitMarkedAnswers:function(){var n=Object.keys(y).map(function(e){return y[e]});if(n.length){var a=0,s=0;n.forEach(function(r){var n=r.id,a=r.resultId,s=r.questionId,l=r.status;i.a.fetch(p,o.I.mark(e,t,n,{id:n,resultId:a,questionId:s,status:l},c,null,u))})}function c(){s++}function u(){var e,t;++a===n.length&&(e="",t=!1,0===s&&(e=d("error",{smartCount:n.length}),t=!0),s<a&&(e=d("success",{smartCount:s})+" ".concat(d("partialError",{smartCount:a-s}))),s===a&&(e=d("success",{smartCount:s})),t?w.error(e):w.success(e),g({}),r&&r())}}}}},39157:(e,t,r)=>{r.d(t,{HI:()=>d,R6:()=>u,Rt:()=>f,UU:()=>m,Zs:()=>l,nq:()=>v});var n=r(75896),a=r(94892),s=r(28972),i=r(8246),o=r(83140),c=r(80845);function u(e,t,r){var s={markingRequired:[],lowScore:[],highScore:[],completed:[],notCompleted:[]},i=(0,c.Q)(e),o=new Set(i.map(function(e){return e.id}));t.students.forEach(function(t){var i=Object.assign(Object.assign({},t),{summary:f(e,t)});i.summary.awaitingMarking?s.markingRequired.push(i):n.m.last(t.results).attempts.filter(function(e){var t;return!!o.has(null===(t=null==e?void 0:e.answers[0])||void 0===t?void 0:t.questionId)}).length===o.size?(s.completed.push(i),i.summary.percentCorrect>=((null==r?void 0:r.HIGH)||a.i.HIGH)&&s.highScore.push(i),i.summary.percentCorrect<((null==r?void 0:r.MODERATE)||a.i.MODERATE)&&s.lowScore.push(i)):s.notCompleted.push(i)});var u=n.m.sortBy(s.lowScore,function(e){return e.summary.percentCorrect}),l=n.m.sortBy(s.highScore,function(e){return-e.summary.percentCorrect});return Object.assign(Object.assign({},s),{lowScore:u,highScore:l})}function l(e,t){return(0,c.Wn)(e).find(function(e){return e.id.toString()===t.toString()})}function m(e){return"".concat(e.questionId,":").concat(e.resultId)}function d(e,t,r){var n=(0,c.j_)(t),a=(0,c.f6)(e,n);return(null==a?void 0:a.answers.every(function(e){var t;return(null===(t=r[m(e)])||void 0===t?void 0:t.status)===i.N.Correct}))?i.N.Correct:(null==a?void 0:a.answers.every(function(e){var t;return(null===(t=r[m(e)])||void 0===t?void 0:t.status)===i.N.Incorrect}))?i.N.Incorrect:void 0}function v(e,t){var r=t.students.length,n=0,a=0,i=0,u=0,l=0;return t.students.forEach(function(t){var r=(0,c.j_)(t);if(r){l+=t.results.length;var m=o.A.isInteractionCorrect(e,r);m===s.w.Correct&&n++,m===s.w.UnAnswered&&i++,m===s.w.AwaitingMarking&&u++,m!==s.w.UnAnswered&&a++}}),{percentCorrect:r>0?n/r:0,correct:n,answered:a,unanswered:i,awaitingMarking:u,attempts:l}}function f(e,t){var r=(0,c.j_)(t),n=(0,c.Q)(e),a=n.length,i=0,u=0;n.forEach(function(e){var t=o.A.isInteractionCorrect(e,r);t===s.w.Correct&&i++,t===s.w.AwaitingMarking&&u++});var l=a>0?i/a:0,m=new Set(n.map(function(e){return e.id})),d=r.attempts.filter(function(e){var t;return!!m.has(null===(t=null==e?void 0:e.answers[0])||void 0===t?void 0:t.questionId)}).length;return{answered:d,attempts:t.results.length,unanswered:a-d,percentCorrect:l,correct:i,awaitingMarking:u}}}}]);
2
+ //# sourceMappingURL=4208-f22ed7a148-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4208-f22ed7a148-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/IllustrationResponse.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/MissingWordResponse.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/MultipleChoiceResponse.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/TrueOrFalseResponse.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/components/ShortAnswerResponse.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/interaction-response-item.scss","file:///app/packages/libs/shared/src/apps/analytics/components/questions-list/interaction-response-item/InteractionResponseItem.tsx","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/analytics/hooks/UseMarkAnswers.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/InteractiveUtils.ts"],"sourcesContent":["import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { StudentAnswer } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface AnswerContainerProps extends React.PropsWithChildren {\n answer: StudentAnswer;\n textClassName?: string;\n customAnswer?: boolean;\n}\n\nexport function AnswerContainer(props: AnswerContainerProps) {\n const { answer } = props;\n\n function getBgColour(status: InteractiveAnswerStatus) {\n switch (status) {\n case InteractiveAnswerStatus.Correct: return 'bg-light-green';\n case InteractiveAnswerStatus.Incorrect: return 'bg-light-red';\n case InteractiveAnswerStatus.PendingReview: return 'bg-light-blue';\n }\n }\n\n return (\n <div key={answer.id} className={`${getBgColour(answer.status)} rounded p-2 mb-2`}>\n <div className='d-flex align-items-center gap-2'>\n {answer.status === InteractiveAnswerStatus.Correct && <SvgContainer svgName={cvSvgLibrary.Check} className='svg-container flex-shrink-0 text-success' />}\n {answer.status === InteractiveAnswerStatus.Incorrect && <SvgContainer svgName={cvSvgLibrary.Close} className='svg-container flex-shrink-0 text-danger' />}\n {!props.customAnswer && <span className={props.textClassName}>{answer.text}</span>}\n </div>\n {props.children}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nconst namespace = 'shared.interactionResponses';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function IllustrationResponse(props: ResponseItemComponentProps): JSX.Element {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer} customAnswer>\n <div className='ratio ratio-16x9'>\n <img\n className='img-fluid bg-white border rounded h-100 w-100'\n src={answer.text}\n alt={`${getPhrase('illustrationAlt')}: ${props.interaction.name}`}\n />\n </div>\n {props.children}\n </AnswerContainer>\n );\n}","import React from 'react';\n\nimport { Interaction, InteractionTypeId, StudentAnswer, User } from 'libs/shared/interfaces';\n\nimport { IllustrationResponse } from './components/IllustrationResponse';\nimport { MissingWordResponse } from './components/MissingWordResponse';\nimport { MultipleChoiceResponse } from './components/MultipleChoiceResponse';\nimport { ShortAnswerResponse } from './components/ShortAnswerResponse';\nimport { TrueOrFalseResponse } from './components/TrueOrFalseResponse';\n\nexport interface ResponseItemComponentProps extends React.PropsWithChildren {\n interaction: Interaction;\n answers: StudentAnswer[];\n imageCdnUrl: string;\n user: User;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n}\nconst NoResponseRequired = () => <></>;\n\nexport const ResponseItemComponentLookup: {\n [typeId: number]: (props: ResponseItemComponentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: NoResponseRequired,\n [InteractionTypeId.Image]: NoResponseRequired,\n [InteractionTypeId.MissingWord]: MissingWordResponse,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceResponse,\n [InteractionTypeId.TrueOrFalse]: TrueOrFalseResponse,\n [InteractionTypeId.ShortAnswer]: ShortAnswerResponse,\n [InteractionTypeId.Illustration]: IllustrationResponse\n};","import React from 'react';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\n\nexport function MissingWordResponse(props: ResponseItemComponentProps) {\n if (!props.answers.length) return <></>;\n\n return (\n <ul className='list-unstyled'>\n {props.answers.map(answer => (\n <li key={answer.id}>\n <AnswerContainer\n answer={answer}\n textClassName='bg-white p-1 border border-gray-300 rounded'\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function MultipleChoiceResponse(props: ResponseItemComponentProps) {\n if (!props.answers.length) return <></>;\n\n return (\n <ul className='list-unstyled'>\n {props.answers.map(answer => (\n <li key={answer.id}>\n <AnswerContainer answer={answer} />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function TrueOrFalseResponse(props: ResponseItemComponentProps) {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer} />\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnswerContainer } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/components/AnswerContainer';\nimport { ResponseItemComponentProps } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\n\nexport function ShortAnswerResponse(props: ResponseItemComponentProps): JSX.Element {\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n return (\n <AnswerContainer answer={answer}>\n {props.children}\n </AnswerContainer>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"O7oaA\"};","import React from 'react';\n\nimport { ResponseItemComponentLookup } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/ResponseItemComponentLookup';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { InteractionResponseCorrectness } from 'libs/shared/components/interaction-response/InteractionResponseCorrectness';\nimport { InteractionStudentDetailsHeader } from 'libs/shared/components/interaction-response/InteractionStudentDetailsHeader';\nimport { MarkResponse } from 'libs/shared/components/interaction-response/MarkResponse';\nimport { NoResponse } from 'libs/shared/components/interaction-response/response-types/NoResponse';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getStudentAttempt, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './interaction-response-item.scss';\n\ninterface InteractionResponseProps {\n interaction: Interaction;\n studentResults: StudentResults;\n imageCdnUrl: string;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n showStudentDetails?: boolean;\n className?: string;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n responseComponentClass?: string;\n}\n\nexport function InteractionResponseItem(props: InteractionResponseProps): JSX.Element {\n const ResponseItemComponent = ResponseItemComponentLookup[props.interaction.typeId];\n\n if (!ResponseItemComponent)\n return <></>;\n\n const result = getStudentResult(props.studentResults);\n\n const studentAttempt = getStudentAttempt(props.interaction.id, result);\n\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(props.interaction, result);\n\n return (\n <div className='position-relative'>\n <div className={`rounded ${props.className ?? ''}`}>\n <div className='d-flex'>\n {!!props.showStudentDetails &&\n <div className='me-2'>\n <div className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.studentResults.user?.name, props.studentResults.user?.surname)\n }\n imageUrl={props.anonymisedUserName ? null : props.studentResults.user?.avatar?.url}\n showAnonymousUser={!!props.studentResults?.user?.sessionId}\n />\n </div>\n \n </div>\n }\n <div className='flex-grow-1'>\n {!!props.showStudentDetails &&\n <InteractionStudentDetailsHeader\n studentResults={props.studentResults}\n correctness={correctness}\n anonymisedUserName={props.anonymisedUserName}\n />\n }\n <div className='d-flex justify-content-between'>\n <div className={`flex-grow-1 mb-2 ${props.responseComponentClass ? props.responseComponentClass : ''}`}>\n {studentAttempt\n ? <ResponseItemComponent\n interaction={props.interaction}\n answers={studentAttempt.answers}\n imageCdnUrl={props.imageCdnUrl}\n user={props.studentResults.user}\n showFeedback={props.showFeedback}\n showAvatar={props.showAvatar}\n >\n <MarkResponse\n studentAttempt={studentAttempt}\n correctness={correctness}\n markInteraction={props.markInteraction}\n markedStatus={props.markedStatus}\n />\n </ResponseItemComponent>\n : <NoResponse />\n }\n </div>\n {!props.showStudentDetails &&\n <InteractionResponseCorrectness correctness={correctness} />\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n shareId?: string;\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n shareId?: string\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: filter ? { start: filter.start, end: filter.end } : undefined,\n userIds: filter?.userId,\n classroomsAndGroups: filter?.groupId,\n shareId: shareId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter?: AnalyticsRequestFilter,\n shareId?: string,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: shareId ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}:${shareId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter, shareId),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '/api/domain/v3/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","import { useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { getMarkedAnswerId } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { StudentAnswer } from 'libs/shared/interfaces';\n\nconst getPhrase = LanguageService.encloseNamespace('reportsShared.dataHooks');\n\nexport type MarkedAnswerHash = { [id: string]: StudentAnswer };\n\n/**\n * This hook manages the storing of a marked answer hash in state and then the submitting\n * of those answers via an api call.\n */\nexport const useMarkAnswers = (interactiveId: string, interactiveMetadataId: string, onDone?: () => void) => {\n const [ markedAnswers, setMarkedAnswers ] = useState<MarkedAnswerHash>({});\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n function addMarkedAnswers(answers: StudentAnswer[], status: InteractiveAnswerStatus): void {\n answers.forEach(a => {\n setMarkedAnswers(m => ({ ...m, [getMarkedAnswerId(a)]: { ...a, status } }));\n });\n }\n\n function submitMarkedAnswers(): void {\n const answers = Object.keys(markedAnswers).map(key => markedAnswers[key]);\n\n if (!answers.length)\n return;\n\n let completeCount = 0;\n let successCount = 0;\n\n function onSuccess(): void {\n successCount++;\n }\n\n function onAlways(): void {\n completeCount++;\n\n if (completeCount === answers.length)\n onComplete();\n }\n\n function onComplete(): void {\n let alertMessage = '';\n let useErrorAlert = false;\n\n if (successCount === 0) {\n alertMessage = getPhrase('error', { smartCount: answers.length });\n useErrorAlert = true;\n }\n\n if (successCount < completeCount) {\n alertMessage = getPhrase('success', { smartCount: successCount })\n + ` ${getPhrase('partialError', { smartCount: completeCount - successCount })}`;\n }\n\n if (successCount === completeCount) {\n alertMessage = getPhrase('success', { smartCount: successCount });\n }\n\n useErrorAlert\n ? alerts.error(alertMessage)\n : alerts.success(alertMessage);\n\n setMarkedAnswers({});\n\n onDone && onDone();\n }\n\n answers.forEach(({ id, resultId, questionId, status }) => {\n Flight.fetch(dispatch, InteractiveResultsRequests.mark(\n interactiveId,\n interactiveMetadataId,\n id,\n { id, resultId, questionId, status },\n onSuccess,\n null,\n onAlways\n ));\n });\n }\n\n return {\n markedAnswers,\n addMarkedAnswers,\n submitMarkedAnswers\n };\n};","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { ResultsSummary } from 'libs/shared/apps/analytics/interfaces/ResultsSummary';\nimport { StudentResultsWithSummary } from 'libs/shared/apps/analytics/interfaces/StudentResultsWithSummary';\nimport { ScoreThresholdDefaults, ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { Interactive, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { flattenInteractions, getInteractions, getStudentAttempt, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\n\ninterface StudentGroups {\n markingRequired: StudentResultsWithSummary[];\n lowScore: StudentResultsWithSummary[];\n highScore: StudentResultsWithSummary[];\n completed: StudentResultsWithSummary[];\n notCompleted: StudentResultsWithSummary[];\n}\n\nexport function groupStudents(\n interactive: Interactive,\n results: InteractiveResultSet,\n scoreThreshold?: ScoreThresholds\n): StudentGroups {\n const groups: StudentGroups = {\n markingRequired: [],\n lowScore: [],\n highScore: [],\n completed: [],\n notCompleted: []\n };\n\n const interactions = getInteractions(interactive);\n const interactionIds = new Set(interactions.map(i => i.id));\n \n results.students.forEach(s => {\n const withSummary = {\n ...s,\n summary: getStudentResultsSummary(interactive, s)\n };\n \n if (withSummary.summary.awaitingMarking) {\n groups.markingRequired.push(withSummary);\n return;\n }\n\n const result = ArrayHelper.last(s.results);\n const answeredInteractions = result.attempts.filter(a => !!interactionIds.has(a?.answers[0]?.questionId)).length;\n\n if (answeredInteractions === interactionIds.size) {\n groups.completed.push(withSummary);\n } else {\n groups.notCompleted.push(withSummary);\n return;\n }\n \n if (withSummary.summary.percentCorrect >= (scoreThreshold?.HIGH || ScoreThresholdDefaults.HIGH))\n groups.highScore.push(withSummary);\n \n if (withSummary.summary.percentCorrect < (scoreThreshold?.MODERATE || ScoreThresholdDefaults.MODERATE))\n groups.lowScore.push(withSummary);\n });\n \n const sortedLowScore = ArrayHelper.sortBy(groups.lowScore, s => s.summary.percentCorrect);\n const sortedHighScore = ArrayHelper.sortBy(groups.highScore, s => -s.summary.percentCorrect);\n \n return {\n ...groups,\n lowScore: sortedLowScore,\n highScore: sortedHighScore\n };\n}\n\nexport function getInteractionById(interactive: Interactive, interactionId: string): Interaction {\n const flattenedInteractions = flattenInteractions(interactive);\n return flattenedInteractions.find(i => i.id.toString() === interactionId.toString());\n}\n\n/**\n * We need to use the question and result ids as a list of one student's responses\n * to multiple questions will all have the same result id and a list of multiple\n * students responses to one question will all have the same questionId.\n */\nexport function getMarkedAnswerId(answer: StudentAnswer): string {\n return `${answer.questionId}:${answer.resultId}`;\n}\n\nexport function getMarkedStatus(\n interactionId: string,\n studentResults: StudentResults,\n markedAnswers: MarkedAnswerHash\n): InteractiveAnswerStatus {\n const result = getStudentResult(studentResults);\n const studentResponse = getStudentAttempt(interactionId, result);\n\n const isMarkedCorrect = studentResponse?.answers.every(a => {\n return markedAnswers[getMarkedAnswerId(a)]?.status === InteractiveAnswerStatus.Correct;\n });\n\n if (isMarkedCorrect)\n return InteractiveAnswerStatus.Correct;\n\n const isMarkedIncorrect = studentResponse?.answers.every(a => {\n return markedAnswers[getMarkedAnswerId(a)]?.status === InteractiveAnswerStatus.Incorrect;\n });\n\n if (isMarkedIncorrect)\n return InteractiveAnswerStatus.Incorrect;\n}\n\nexport function getInteractionResultsSummary(\n interaction: Interaction,\n results: InteractiveResultSet\n): ResultsSummary {\n const numStudents = results.students.length;\n let numCorrect = 0;\n let answered = 0;\n let unanswered = 0;\n let awaitingMarking = 0;\n let attempts = 0;\n\n results.students.forEach(s => {\n const result = getStudentResult(s);\n\n if (!result)\n return;\n\n attempts = attempts + s.results.length;\n\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(interaction, result);\n\n if (correctness === InteractionCorrectness.Correct)\n numCorrect++;\n\n if (correctness === InteractionCorrectness.UnAnswered)\n unanswered++;\n\n if (correctness === InteractionCorrectness.AwaitingMarking)\n awaitingMarking++;\n\n if (correctness !== InteractionCorrectness.UnAnswered)\n answered++;\n });\n\n\n const percentCorrect = numStudents > 0\n ? numCorrect / numStudents\n : 0;\n\n return {\n percentCorrect,\n correct: numCorrect,\n answered,\n unanswered,\n awaitingMarking,\n attempts\n };\n}\n\nexport function getStudentResultsSummary(interactive: Interactive, studentResults: StudentResults): ResultsSummary {\n const result = getStudentResult(studentResults);\n\n const interactions = getInteractions(interactive);\n\n const numInteractions = interactions.length;\n\n let numCorrect = 0;\n let awaitingMarking = 0;\n\n interactions.forEach(i => {\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(i, result);\n\n if (correctness === InteractionCorrectness.Correct)\n numCorrect++;\n\n if (correctness === InteractionCorrectness.AwaitingMarking)\n awaitingMarking++;\n });\n\n const percentCorrect = numInteractions > 0 ? numCorrect / numInteractions : 0;\n\n /**\n * Our interactions list has images and annotations filtered out.\n * We built a map of valid questions, so that we can calculate the unswered accurately.\n * We're doing this because of a bug that caused annotations and images to record answers in the player.\n * - Sha\n */\n const interactionIds = new Set(interactions.map(i => i.id));\n const answeredInteractions = result.attempts.filter(a => !!interactionIds.has(a?.answers[0]?.questionId)).length;\n\n return {\n answered: answeredInteractions,\n attempts: studentResults.results.length,\n unanswered: numInteractions - answeredInteractions,\n percentCorrect,\n correct: numCorrect,\n awaitingMarking\n };\n}"],"names":["AnswerContainer","props","answer","key","id","className","status","InteractiveAnswerStatus","getBgColour","SvgContainer","svgName","customAnswer","textClassName","text","children","getPhrase","LanguageService","NoResponseRequired","ResponseItemComponentLookup","answers","length","map","ArrayHelper","src","alt","interaction","name","InteractionResponseItem","ResponseItemComponent","typeId","result","studentResults","studentAttempt","correctness","InteractiveCorrectnessHelper","showStudentDetails","Avatar","imageCdnUrl","initials","anonymisedUserName","UserHelper","user","surname","imageUrl","avatar","url","showAnonymousUser","sessionId","InteractionStudentDetailsHeader","responseComponentClass","showFeedback","showAvatar","MarkResponse","markInteraction","markedStatus","NoResponse","InteractionResponseCorrectness","getAnalyticsRequestKey","baseKey","filter","extra","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","customerIdKey","customerId","getInteractiveResultFilters","currentUser","shareId","currentUserId","currentCustomerId","dateRange","undefined","userIds","classroomsAndGroups","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","success","error","always","data","type","HttpVerbs","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","useMarkAnswers","onDone","useState","markedAnswers","setMarkedAnswers","dispatch","alerts","addMarkedAnswers","forEach","a","m","submitMarkedAnswers","Object","keys","completeCount","successCount","questionId","I","onSuccess","onAlways","alertMessage","useErrorAlert","smartCount","groupStudents","interactive","results","scoreThreshold","groups","markingRequired","lowScore","highScore","completed","notCompleted","interactions","interactionIds","Set","i","students","s","withSummary","summary","getStudentResultsSummary","awaitingMarking","push","attempts","has","size","percentCorrect","HIGH","MODERATE","sortedLowScore","sortedHighScore","getInteractionById","interactionId","find","toString","getMarkedAnswerId","getMarkedStatus","studentResponse","every","getInteractionResultsSummary","numStudents","numCorrect","answered","unanswered","correct","numInteractions","answeredInteractions"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6550],{93479:(e,t,r)=>{r.d(t,{I:()=>i});var n=r(99940);function a(e,t,r){if(!t)return e;var n="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,o=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,i=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return a&&(n+=":".concat(a)),o&&(n+=":".concat(o)),i&&(n+=":".concat(i)),r&&(n+=":".concat(r)),n}function o(e,t,r){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId,shareId:r}}var i={interactiveResultSet:function(e,t,r,i,c,s,u,l){return{url:c?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:a("interactive:result:set:".concat(e,":").concat(t,":").concat(c),i),data:o(r,i,c),type:n.k.POST,normalize:!1,success:s,error:u,always:l}},mark:function(e,t,r,a,o,i,c){return{url:"/api/domain/v1/analytics/answers/".concat(r),key:"mark:answer:".concat(r,":").concat(a.resultId),type:n.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:o,error:i,always:c}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},41196:(e,t,r)=>{r.d(t,{W:()=>c});var n=r(20354),a=r(93479),o=r(20768),i=r(31949);function c(e,t,r){var c,s=n.a.useBasicFetch(i.N.currentUser()),u=n.a.useBasicFetch(!!e&&o.b.interactiveMetadata(e)),l=n.a.useBasicFetch(!!(null===(c=u.data)||void 0===c?void 0:c.interactiveId)&&o.b.interactive(u.data.interactiveId)),d=!!s.data&&!!l.data;return n.a.useBasicFetch(d&&a.I.interactiveResultSet(u.data.interactiveId,u.data.id,s.data,t,r))}},26025:(e,t,r)=>{r.d(t,{B:()=>o});var n=r(1048),a=r(75795),o={getAudienceAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=n.t.isObject(e.params)?e.params:{},r=t.users,o=t.classrooms,i=t.classroomGroups,c=function(e){var r=t[e];if(r)return Array.isArray(r)?r:[r]},s={};return r&&(s.users=c("users")),o&&(s.classrooms=c("classrooms")),i&&(s.classroomGroups=c("classroomGroups")),s},getDateRangeAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=n.t.isObject(e.params)?e.params:{},r=t.from,o=t.to,i=t.rangeName,c={};return r&&(c.from=r),o&&(c.to=o),i&&(c.rangeName=i),c}}},26136:(e,t,r)=>{r.d(t,{B:()=>c});var n=r(76198),a=r(23481),o=r(64818),i=a.T.encloseNamespace("shared.analyticsUtils");function c(e,t){return e?t?(0,n._8)((r=e.id,a=e.sessionId,c=+"".concat(r||function(e){if(!e)return 0;for(var t=0,r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return Math.abs(t)}(a)).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[n.O9,n.yd],separator:" ",length:2,style:"capital",seed:c})):o.l.getFullName(e)||i("anonUser"):i("anonUser");var r,a,c}},39157:(e,t,r)=>{r.d(t,{HI:()=>f,R6:()=>u,Rt:()=>p,UU:()=>d,Zs:()=>l,nq:()=>m});var n=r(75896),a=r(94892),o=r(28972),i=r(8246),c=r(83140),s=r(80845);function u(e,t,r){var o={markingRequired:[],lowScore:[],highScore:[],completed:[],notCompleted:[]},i=(0,s.Q)(e),c=new Set(i.map(function(e){return e.id}));t.students.forEach(function(t){var i=Object.assign(Object.assign({},t),{summary:p(e,t)});i.summary.awaitingMarking?o.markingRequired.push(i):n.m.last(t.results).attempts.filter(function(e){var t;return!!c.has(null===(t=null==e?void 0:e.answers[0])||void 0===t?void 0:t.questionId)}).length===c.size?(o.completed.push(i),i.summary.percentCorrect>=((null==r?void 0:r.HIGH)||a.i.HIGH)&&o.highScore.push(i),i.summary.percentCorrect<((null==r?void 0:r.MODERATE)||a.i.MODERATE)&&o.lowScore.push(i)):o.notCompleted.push(i)});var u=n.m.sortBy(o.lowScore,function(e){return e.summary.percentCorrect}),l=n.m.sortBy(o.highScore,function(e){return-e.summary.percentCorrect});return Object.assign(Object.assign({},o),{lowScore:u,highScore:l})}function l(e,t){return(0,s.Wn)(e).find(function(e){return e.id.toString()===t.toString()})}function d(e){return"".concat(e.questionId,":").concat(e.resultId)}function f(e,t,r){var n=(0,s.j_)(t),a=(0,s.f6)(e,n);return(null==a?void 0:a.answers.every(function(e){var t;return(null===(t=r[d(e)])||void 0===t?void 0:t.status)===i.N.Correct}))?i.N.Correct:(null==a?void 0:a.answers.every(function(e){var t;return(null===(t=r[d(e)])||void 0===t?void 0:t.status)===i.N.Incorrect}))?i.N.Incorrect:void 0}function m(e,t){var r=t.students.length,n=0,a=0,i=0,u=0,l=0;return t.students.forEach(function(t){var r=(0,s.j_)(t);if(r){l+=t.results.length;var d=c.A.isInteractionCorrect(e,r);d===o.w.Correct&&n++,d===o.w.UnAnswered&&i++,d===o.w.AwaitingMarking&&u++,d!==o.w.UnAnswered&&a++}}),{percentCorrect:r>0?n/r:0,correct:n,answered:a,unanswered:i,awaitingMarking:u,attempts:l}}function p(e,t){var r=(0,s.j_)(t),n=(0,s.Q)(e),a=n.length,i=0,u=0;n.forEach(function(e){var t=c.A.isInteractionCorrect(e,r);t===o.w.Correct&&i++,t===o.w.AwaitingMarking&&u++});var l=a>0?i/a:0,d=new Set(n.map(function(e){return e.id})),f=r.attempts.filter(function(e){var t;return!!d.has(null===(t=null==e?void 0:e.answers[0])||void 0===t?void 0:t.questionId)}).length;return{answered:f,attempts:t.results.length,unanswered:a-f,percentCorrect:l,correct:i,awaitingMarking:u}}},56543:(e,t,r)=>{r.r(t),r.d(t,{GenerateInteractiveResultsReportView:()=>x});var n=r(32735),a=r(23481),o=r(2948),i=r(20354),c=r(110),s=r(84806),u=r(93479),l=r(41196),d=r(26025);function f(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(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 m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var p=function(e){var t=[],r=[];return e.users&&t.push.apply(t,f(e.users)),e.classrooms&&r.push.apply(r,f(e.classrooms)),e.classroomGroups&&r.push.apply(r,f(e.classroomGroups)),{userId:t,groupId:r}},v=(r(57266),a.T.encloseNamespace("shared.analyticsUtils"));function y(e){var t=c.O.convertDateToUTC(e);return c.O.format(t,"YYYY-MM-DDTHH:mm:ss")}function g(e){return c.O.format(e,"YYYY-MM-DD")}var b=r(2606),w=r(9111),h=r(13876),I=r(83345),S=r(38143),C=r(28972),A=r(20768),E=r(31949),O=r(69883),D=r(91286),k=r(52921),R=r(83140),j=r(80845),M=r(64818);function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return T(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?T(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 T(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var N="shared.generateReport",L=a.T.encloseNamespace(N);function U(e){var t=c.O.convertUTCToLocal(e).toString();return c.O.format(t,"Do MMMM YYYY")}function x(e){var t,r,a,f,m,T=P((0,o.D)(S.g.ANONYMISE_USERS),1)[0],x=(0,O.Z)(),_=i.a.useGetFetchAsync(),F=d.B.getAudienceAppLinkParams(),Z=d.B.getDateRangeAppLinkParams(),B=function(e,t){var r=function(e){return y(c.O.startOf(e,"day"))},n=function(e){return y(c.O.endOf(e,"day"))},a=function(e,t){if(t)return e.find(function(e){return e.name===t})}(e,t.rangeName);if(a)return{start:r(g(a.startDate)),end:n(g(a.endDate))};if(t.from&&t.to)return{start:r(t.from),end:n(t.to)};var o=e.find(function(e){return!!e.default});return{start:r(g(o.startDate)),end:n(g(o.endDate))}}((a=new Date(2021,0,1),m=(f=(new Date).getFullYear())===a.getFullYear(),[{name:v("today"),startDate:new Date,endDate:new Date},{name:v("thisMonth"),startDate:new Date(f,(new Date).getMonth(),1),endDate:new Date},{name:v("lastThreeMonths"),startDate:new Date(f,(new Date).getMonth()-2,1),endDate:new Date},{name:v("lastSixMonths"),startDate:new Date(f,(new Date).getMonth()-5,1),endDate:new Date},{name:v("thisYear"),startDate:new Date(f,0,1),endDate:new Date},{name:v("lastYear"),startDate:new Date(f-1,0,1),endDate:new Date(f,0,0),disabled:m,tooltip:m?v("lastYearDisabled"):""},{name:v("allTime"),startDate:c.O.subtract(new Date,5,"years"),endDate:new Date,default:!0}]),Z),G=P(n.useState(!1),2),q=G[0],Y=G[1],z=(0,k.b)(),H=z.loading,Q=z.handleGenerateReportError,V=i.a.useBasicFetch(E.N.currentUser()),W=i.a.useBasicFetch(A.b.interactiveMetadata(e.interactiveId)),K=i.a.useBasicFetch((null===(t=W.data)||void 0===t?void 0:t.interactiveId)?A.b.interactive(W.data.interactiveId):null),$=(0,l.W)(e.interactiveId,Object.assign(Object.assign({},B),p(F)));(0,D.v)([K,W,$]);var J=(0,j.Q)(K.data),X=(0,s.Fx)(K.data,$.data,!1,T);return n.createElement(I.D.Provider,{value:N},n.createElement(w.G,{title:L("title"),showLoadingSpinner:!V.hasCompleted||H,closePopup:e.closePopup},n.createElement(n.Fragment,null,n.createElement("p",null,n.createElement(I.x,{phrase:"description"})),n.createElement("p",null,n.createElement(I.x,{phrase:"dateRange",options:{dateFrom:U(B.start),dateTo:U(B.end)}})),n.createElement("p",null,n.createElement(I.x,{phrase:"emailDescription",options:{email:null===(r=V.data)||void 0===r?void 0:r.email}})),n.createElement(h.u,null,n.createElement(h.u.Cancel,{onClick:e.closePopup}),n.createElement(h.u.Submit,{variant:"dark",onClick:function(){Y(!0);var t={interactiveName:W.data.name,userId:V.data.id,customerId:V.data.customerId,questions:J.map(function(e){return e.name}),rows:X.map(function(e){return{name:M.l.getFullName(e.user),unanswered:e.summary.unanswered,percentage:(0,b.DV)((0,b.Ki)(e.summary.percentCorrect)),correct:e.summary.correct,totalQuestions:e.summary.answered+e.summary.unanswered,results:J.map(function(t){switch(R.A.isInteractionCorrect(t,(0,j.j_)(e))){case C.w.Correct:return L("correct");case C.w.Incorrect:return L("incorrect");case C.w.NotApplicable:return"-";case C.w.AwaitingMarking:return L("awaitingMarking");case C.w.UnAnswered:case C.w.Answered:default:return""}})}})};_(u.I.interactiveResultsReport(t)).then(function(){x.success(L("success"))}).catch(function(e){return Q(e,L("error"),L("noEmailError"))}).finally(e.closePopup)},text:L("generateReport"),showSpinner:q})))))}},40782:(e,t,r)=>{r.d(t,{I:()=>n,O:()=>s});var n,a=r(32735),o=r(2606),i=r(362);function c(e){var t=a.useCallback(function(t){if(t){var r=t.r.baseVal.value,n=2*Math.PI*r,a=n-e.percentage*n;t.style.strokeDasharray="".concat(n," ").concat(n),t.style.strokeDashoffset=a.toString()}},[e.percentage]);return a.createElement("svg",null,a.createElement("circle",{r:(0,o.pu)(e.size),className:i.Z.backgroundCircle}),!(0,o.zR)(e.percentage)&&a.createElement("circle",{ref:t,r:(0,o.pu)(e.size),className:(0,o.V4)(e.percentage,e.scoreThresholds)}))}function s(e){var t,r=(0,o.Ki)(e.percentage),s=e.size||(e.layout===n.LabelInside?o.Mk.Large:o.Mk.Small),u=e.customLabel||(0,o.DV)(r);return e.layout===n.LabelOnly?a.createElement("span",{className:(0,o.IA)(r)},u):a.createElement("div",{className:"d-flex align-items-center justify-content-between ".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.layout===n.LabelBefore&&a.createElement("span",{className:"me-2"},u),a.createElement("div",{className:(0,o.tw)(s,r)},a.createElement(c,{percentage:r,size:s,scoreThresholds:e.scoreThresholds}),e.layout===n.LabelInside&&a.createElement("span",{className:i.Z.centredPercentageText},u)))}!function(e){e.CircleOnly="circle_only",e.LabelOnly="label_only",e.LabelBefore="label_before",e.LabelInside="label_inside"}(n||(n={})),s.defaultProps={layout:n.CircleOnly}},2606:(e,t,r)=>{r.d(t,{DV:()=>y,IA:()=>m,Ki:()=>v,Mk:()=>c,V4:()=>f,pu:()=>d,tw:()=>p,zR:()=>g});var n=r(94892),a=r(362);function o(e){return o="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},o(e)}function i(e,t,r){return(t=function(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c,s=.2,u=.36;!function(e){e.Small="small",e.Large="large",e.ExtraSmall="extraSmall"}(c||(c={}));var l=i(i(i({},c.ExtraSmall,{size:2}),c.Small,{size:2}),c.Large,{size:5.8});function d(e){var t=l[e].size,r=e===c.Large?u:s;return"".concat(t/2-2*r,"rem")}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?a.Z.circleSuccess:e>=t.MODERATE?a.Z.circleWarning:a.Z.circleDanger}function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?"text-success":e>=t.MODERATE?"text-warning":"text-danger"}function p(e,t){var r="d-inline-block ".concat(a.Z.circleContainer);return e===c.Large&&(r+=" ".concat(a.Z.lgCircleContainer)),e===c.ExtraSmall&&(r+=" ".concat(a.Z.xsCircleContainer)),g(t)&&(r+=" ".concat(a.Z.pendingCircle)),r}function v(e){if(!g(e))return+e.toFixed(2)}function y(e){return g(e)?"--%":"".concat(Math.round(100*e),"%")}function g(e){return"number"!=typeof e}},94892:(e,t,r)=>{r.d(t,{T:()=>a,i:()=>n});var n={HIGH:.75,MODERATE:.5},a={HIGH:.7,MODERATE:.7}},28972:(e,t,r)=>{var n;r.d(t,{w:()=>n}),function(e){e[e.Correct=0]="Correct",e[e.Incorrect=1]="Incorrect",e[e.AwaitingMarking=2]="AwaitingMarking",e[e.Answered=3]="Answered",e[e.UnAnswered=4]="UnAnswered",e[e.NotApplicable=5]="NotApplicable"}(n||(n={}))},8246:(e,t,r)=>{var n;r.d(t,{N:()=>n}),function(e){e[e.Incorrect=0]="Incorrect",e[e.Correct=1]="Correct",e[e.PendingReview=2]="PendingReview"}(n||(n={}))},94644:(e,t,r)=>{r.d(t,{r:()=>l});var n=r(50242),a=r(81886),o=r(67058),i=r(14553),c=r(49267),s=r(49075),u={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:c.a,privacy:i.q},badRequest:s._,internalServerError:s._};function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},u),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==n.o.InternalServer?o!==n.o.NotFound?o!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new i.badRequest):r.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):r.notFound||a.Q.Ry.throw(new i.notFound):r.internalServerError||a.Q.Ry.throw(new s._))}}},91286:(e,t,r)=>{r.d(t,{v:()=>i});var n=r(32735),a=r(94644);function o(e){return e.map(function(e){return e.statusCode}).join(":")}function i(e,t,r){var i=Array.isArray(e)?e:[e];(0,n.useEffect)(function(){i.forEach(function(e){(0,a.r)(e.statusCode,t,r)})},[o(i),t,r])}},52921:(e,t,r)=>{r.d(t,{b:()=>h});var n=r(81886),a=r(20354),o=r(12754),i=r(23481),c=r(97395),s=r(47663);function u(e){return u="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},u(e)}function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,d(n.key),n)}}function d(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(f=function(){return!!e})()}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}var v="shared.verifiedEmailError",y=function(e){function t(e,r,n){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=function(e,t,r){return t=m(t),function(e,t){if(t&&("object"==u(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,f()?Reflect.construct(t,r||[],m(e).constructor):t.apply(e,r))}(this,t,["VerifiedEmailRequiredError"])).message=e,a.liteUrl=r,a.hasLite=n,a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),r=t,(n=[{key:"name",get:function(){return"VerifiedEmailRequiredError"}},{key:"dialogOptions",get:function(){var e=c._.safeUrlConcat(this.liteUrl,"settings/account");return{title:i.T.getPhrase(v,"heading"),text:this.hasLite?"".concat(this.message," ").concat(i.T.getPhrase(v,"visitSettings",{href:e})):this.message,buttons:[{text:i.T.getPhrase(v,"close"),className:"btn btn-dark",success:!0}]}}}])&&l(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(s.S),g=r(39151),b=r(69883),w=r(15311);function h(){var e=(0,b.Z)(),t=(0,w.r)(),r=t.hasProduct,i=t.isLoadingProducts,c=a.a.useBasicFetch(g.L.config());return{handleGenerateReportError:function(t,a,i){var s;t.responseJSON&&"no-email"===(null===(s=t.responseJSON)||void 0===s?void 0:s.type)?n.Q.Ry.throw(new y(i,c.data.liteUrl,r(o.x.Primary))):e.error(a)},loading:!c.hasCompleted||i}}},57266:(e,t,r)=>{r.d(t,{e:()=>i});var n=r(81886),a=r(1048),o=r(75795),i={updateParams:function(e,t){var r=o.O.getCurrentRoute().appLink,i="string"==typeof r.params?n.Q.Ab.DeserializeQueryParams(r.params):r.params;t.keysToRemove&&(i=a.t.omit(i,t.keysToRemove));var c=(null==t?void 0:t.merge)?Object.assign(Object.assign({},i),e):e,s=Object.assign(Object.assign({},r),{params:c});a.t.isEqual(r,s)||n.Q.C$.trigger(s,a.t.omit(t,["merge","keysToRemove"]))}}},83140:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(28972),a=r(8246),o=r(38129);function i(e){return i="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},i(e)}function c(e,t,r){return(t=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(){return n.w.NotApplicable}function u(e,t){var r=e.actionableItems.filter(function(e){return e.isCorrect});return r.every(function(e){return!t(e.id)})?n.w.UnAnswered:r.every(function(e){var r;return e.name.trim().toLowerCase()===(null===(r=t(e.id))||void 0===r?void 0:r.trim().toLowerCase())})?n.w.Correct:n.w.Incorrect}function l(e,t){return e.actionableItems.every(function(e){return!t(e.id)})?n.w.UnAnswered:e.actionableItems.filter(function(e){return e.isCorrect}).every(function(e){var r,n=t(e.id);return(null==n?void 0:n.toString())===(null===(r=e.id)||void 0===r?void 0:r.toString())||n===e.name})?n.w.Correct:n.w.Incorrect}function d(e,t){return function(r){var n=null==t?void 0:t.attempts.find(function(t){return t.id===e.id});return null==n?void 0:n.answers.find(function(e){return e.id===r})}}function f(e,t){var r=d(e,t);return l(e,function(e){var t=r(e);return null==t?void 0:t.text})}function m(e,t){return function(e,t){var r;return e.actionableItems.forEach(function(e){var o=t(e.id);r=o?o.status!==a.N.Correct?o.status!==a.N.Incorrect?n.w.AwaitingMarking:n.w.Incorrect:n.w.Correct:n.w.UnAnswered}),r}(e,d(e,t))}var p=c(c(c(c(c(c(c({},o.Z9.Annotation,s),o.Z9.Image,s),o.Z9.MissingWord,function(e,t){var r=d(e,t);return u(e,function(e){var t=r(e);return null==t?void 0:t.text})}),o.Z9.MultipleChoice,f),o.Z9.ShortAnswer,m),o.Z9.TrueOrFalse,f),o.Z9.Illustration,m),v={notApplicable:s,awaitingMarking:function(){return n.w.AwaitingMarking},isMissingWordCorrect:u,isMultipleChoiceCorrect:l,isInteractionCorrect:function(e,t){return(0,p[e.typeId])(e,t)}}},362:(e,t,r)=>{r.d(t,{Z:()=>n});const n={circleContainer:"p8Vgz",backgroundCircle:"asGGE",circleSuccess:"PXLNj",circleWarning:"ZckRN",circleDanger:"slBRg",lgCircleContainer:"N8KCI",xsCircleContainer:"RPqZ2",pendingCircle:"DKrcq",centredPercentageText:"tpmLR"}}}]);
2
+ //# sourceMappingURL=6550-1d60d863e8-lite.chunk.js.map