@clickview/lite 0.50.0-rc.5 → 0.50.0-rc.7

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 (47) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{1402-d327ed0365-lite.chunk.js → 1402-8c3babb6af-lite.chunk.js} +2 -2
  3. package/dist/scripts/1402-8c3babb6af-lite.chunk.js.map +1 -0
  4. package/dist/scripts/{1518-9961f6d99b-lite.chunk.js → 1518-e6c8ab0c89-lite.chunk.js} +2 -2
  5. package/dist/scripts/1518-e6c8ab0c89-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{2703-430c5a5fc1-lite.chunk.js → 2703-6ae830c2e6-lite.chunk.js} +2 -2
  7. package/dist/scripts/2703-6ae830c2e6-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{3070-4e82411f0c-lite.chunk.js → 3070-07721de8f8-lite.chunk.js} +2 -2
  9. package/dist/scripts/3070-07721de8f8-lite.chunk.js.map +1 -0
  10. package/dist/scripts/5242-057f004278-lite.chunk.js +2 -0
  11. package/dist/scripts/5242-057f004278-lite.chunk.js.map +1 -0
  12. package/dist/scripts/{5936-59acb26157-lite.chunk.js → 5936-7ad136f2a3-lite.chunk.js} +2 -2
  13. package/dist/scripts/5936-7ad136f2a3-lite.chunk.js.map +1 -0
  14. package/dist/scripts/6181-7a4fc8e1e1-lite.chunk.js +2 -0
  15. package/dist/scripts/6181-7a4fc8e1e1-lite.chunk.js.map +1 -0
  16. package/dist/scripts/{6263-736bbd8641-lite.chunk.js → 6263-a60b811d93-lite.chunk.js} +2 -2
  17. package/dist/scripts/6263-a60b811d93-lite.chunk.js.map +1 -0
  18. package/dist/scripts/6531-835c743f1b-lite.chunk.js +2 -0
  19. package/dist/scripts/6531-835c743f1b-lite.chunk.js.map +1 -0
  20. package/dist/scripts/{8085-ed82fb07da-lite.chunk.js → 8085-cde67e66df-lite.chunk.js} +2 -2
  21. package/dist/scripts/8085-cde67e66df-lite.chunk.js.map +1 -0
  22. package/dist/scripts/{8354-a104955138-lite.chunk.js → 8354-411c0c4a3a-lite.chunk.js} +2 -2
  23. package/dist/scripts/8354-411c0c4a3a-lite.chunk.js.map +1 -0
  24. package/dist/scripts/{8987-649a6a16f4-lite.chunk.js → 8987-9fb9a632e7-lite.chunk.js} +2 -2
  25. package/dist/scripts/8987-9fb9a632e7-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{9068-1c0aece2e1-lite.chunk.js → 9068-562c30f718-lite.chunk.js} +2 -2
  27. package/dist/scripts/9068-562c30f718-lite.chunk.js.map +1 -0
  28. package/dist/scripts/{bundle-7cf309c41a.min.js → bundle-d748020305.min.js} +3 -3
  29. package/dist/scripts/{bundle-7cf309c41a.min.js.map → bundle-d748020305.min.js.map} +1 -1
  30. package/package.json +1 -1
  31. package/dist/scripts/1402-d327ed0365-lite.chunk.js.map +0 -1
  32. package/dist/scripts/1518-9961f6d99b-lite.chunk.js.map +0 -1
  33. package/dist/scripts/2703-430c5a5fc1-lite.chunk.js.map +0 -1
  34. package/dist/scripts/3070-4e82411f0c-lite.chunk.js.map +0 -1
  35. package/dist/scripts/5242-a2a5d89eee-lite.chunk.js +0 -2
  36. package/dist/scripts/5242-a2a5d89eee-lite.chunk.js.map +0 -1
  37. package/dist/scripts/5936-59acb26157-lite.chunk.js.map +0 -1
  38. package/dist/scripts/6181-4944b5c6a2-lite.chunk.js +0 -2
  39. package/dist/scripts/6181-4944b5c6a2-lite.chunk.js.map +0 -1
  40. package/dist/scripts/6263-736bbd8641-lite.chunk.js.map +0 -1
  41. package/dist/scripts/6531-d77ba2c5ce-lite.chunk.js +0 -2
  42. package/dist/scripts/6531-d77ba2c5ce-lite.chunk.js.map +0 -1
  43. package/dist/scripts/8085-ed82fb07da-lite.chunk.js.map +0 -1
  44. package/dist/scripts/8354-a104955138-lite.chunk.js.map +0 -1
  45. package/dist/scripts/8987-649a6a16f4-lite.chunk.js.map +0 -1
  46. package/dist/scripts/9068-1c0aece2e1-lite.chunk.js.map +0 -1
  47. /package/dist/scripts/{bundle-7cf309c41a.min.js.LICENSE.txt → bundle-d748020305.min.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5936],{71020:(e,t,n)=>{n.d(t,{_:()=>u});var r=n(32735),a=n(80247),i=n(34152),l=n(83914),c=n(35223);const o={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t,n,u=(t=(0,i.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],m=u[1];return r.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),r.createElement("div",{className:"p-3 text-center ".concat(o.container),ref:d},e.isFetching?r.createElement(a.Z,{as:"span",animation:"border",role:"status",className:o.spinner}):r.createElement(l.x,{svgName:c.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},17997:(e,t,n)=>{n.d(t,{H:()=>s});var r=n(32735),a=n(36848),i=n(83345),l=n(22843),c=n(89118),o=n(68626),s=r.memo((function(e){var t,n,s=e.data,u=e.thumbnailSize,d=e.preloadImage,m=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),v=null===(n=null===(t=s._timepoints)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length;return r.createElement("div",{className:"flex-shrink-0 px-1 col-6 col-sm-4"},r.createElement(c.u,{type:"static",textPosition:o.z.Independent,video:s,appLink:e.getAppLink(s),imageOptions:{size:u},preload:d,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin}),r.createElement("div",{className:"mt-2"},r.createElement(l.h,Object.assign({},e,{video:s,appLink:e.getAppLink(s)}))),r.createElement("div",{className:"mt-1"},r.createElement(a.F,{appLink:m,className:"cursor-pointer"},r.createElement(i.x,{namespace:"shared.interactiveWidgetItemV2",phrase:"previewQuestions",options:{count:v,smartCount:v}}))))}))},74696:(e,t,n)=>{n.d(t,{S:()=>s});var r=n(32735),a=n(68050),i=n(69111),l=n(9977),c=n(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return r.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return r.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&r.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,c.k)(),n="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return r.createElement(a.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},r.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),r.createElement(a.Z,null,!!s&&r.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),r.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},r.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),r.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),r.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),r.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}s.defaultProps={numVideos:15}},3133:(e,t,n)=>{n.d(t,{R:()=>s});var r=n(32735),a=n(20789),i=n(86794),l=n(2786),c=n(64818);const o={avatarContainer:"kd18L",cvIcon:"smUBc"};function s(e){var t;if(!e.owner&&!e.isClickViewCurated)return r.createElement(r.Fragment,null);if(e.isClickViewCurated)return r.createElement("div",{className:"clamp-1 d-flex align-items-center"},r.createElement("div",{className:"".concat(o.avatarContainer," me-1 border rounded-circle position-relative")},r.createElement(i.b,{className:"me-1 ".concat(o.cvIcon)},r.createElement(l.Sd,null))),"ClickView");var n=c.l.getCommunityName(e.owner);return n?r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(o.avatarContainer," me-1")},r.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:c.l.getInitials(e.owner.name,e.owner.surname),imageUrl:null===(t=e.owner.avatar)||void 0===t?void 0:t.url})),r.createElement("div",{className:"clamp-1"},n)):r.createElement(r.Fragment,null)}},47862:(e,t,n)=>{n.d(t,{K:()=>d});var r=n(32735),a=n(65858),i=n(36848),l=n(83345),c=n(89118),o=n(3133),s=n(54610),u=n(68626);var d=r.memo((function(e){var t,n=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]});return r.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},r.createElement("div",{className:"row m-0 border rounded p-2 h-100"},r.createElement("div",{className:"col-6 p-0"},r.createElement(c.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:s.h2.Small},textPosition:u.z.Independent,preload:!0,analyticsOptions:{location:a.LZ.SlidingListItem}})),r.createElement("div",{className:"col-6 p-0"},r.createElement("div",{className:"ps-2"},r.createElement(i.F,{appLink:e.getAppLink(e.data)},r.createElement("h3",{className:"h6 mb-1"},r.createElement("span",{className:"clamp-2"},e.data.name))),r.createElement(o.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl}),r.createElement(i.F,{className:"info-link",appLink:n},r.createElement(l.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions"}))))))}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),i=n(67058),l=n(14553),c=n(49267),o=n(49075),s={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:c.a,privacy:l.q},badRequest:o._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new l.badRequest):n.forbidden||a.Q.Ry.throw(new l.forbidden.privacy):n.notFound||a.Q.Ry.throw(new l.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>l});var r=n(32735),a=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,n){var l=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,n)}))}),[i(l),t,n])}},59598:(e,t,n)=>{var r;n.d(t,{K:()=>r}),function(e){e.Resources="resources",e.Interactives="interactives",e.Video="video",e.Clips="clips",e.CurriculumLinks="curriculum-links",e.VideoDetails="video-details",e.RelatedVideos="related-videos",e.ClippedFrom="clipped-from"}(r||(r={}))},84062:(e,t,n)=>{n.d(t,{M:()=>g});var r=n(32735),a=n(17082),i=n(65858),l=n(38647),c=n(16714),o=n(22902),s=n(31908),u=n(26492),d=n(78166),m=n(27638),v=n(22490),p=n(57245);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e){var t,n,g=e.shareLink?i.LZ.PlaySharedInteractive:i.LZ.PlayInteractive,h=(t=r.useState(!0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return f(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)?f(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],E=h[1],b=s.M.isVideoTypeArchived(e.interactive),N=r.useMemo((function(){return(0,a.oD)()}),[]),I=(0,m.u)(g),A=I.setFavourite,x=I.canFavourite,C=(0,o.T)().hasPermissions;return r.createElement("div",{className:"px-3"},b&&r.createElement(u.T,{typeId:e.interactive.typeId,hasStudentExperience:!0}),r.createElement("div",{className:"mb-3"},r.createElement(p._,{config:e.config,video:e.interactive,currentUser:e.currentUser,shareLink:e.shareLink,viewKey:e.viewKey,startTime:e.startTime,onShowSummary:function(e){E(!e)},summaryPortalNode:N})),r.createElement("div",null,y&&r.createElement("h1",{className:"h3 d-flex"},e.interactive.name,r.createElement(l.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups}))),r.createElement(a.t0,{node:N}),!C(c.C.StudentExperience)&&r.createElement(d.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,currentUser:e.currentUser,setFavourite:A,canFavourite:x,relatedVideos:e.relatedVideos,audiences:e.audiences,getVideoAppLink:function(t,n){var r;return v.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:null===(r=e.shareLink)||void 0===r?void 0:r.id,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin}))}},25758:(e,t,n)=>{n.d(t,{x:()=>q});var r=n(32735),a=n(17082),i=n(23481),l=n(28400),c=n(65858),o=n(83657),s=n(36848),u=n(17997),d=n(83345),m=n(38647),v=n(11518),p=n(47862),f=n(10439),g=n(35429),h=n(5960),y=n(4594),E=n(58704),b=n(37802),N=n(31908),I=n(47938),A=n(78166),x=n(14070),C=n(97291),S=n(10671),w=n(27638),k=n(22490),P=n(83914),V=n(83523),L=n(76177),O=n(35223),T=i.T.encloseNamespace("interactives.previewInteractive");function j(e){return r.createElement("div",{className:"alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center",role:"alert"},e.isArchived?r.createElement("div",{className:"d-flex align-items-center"},r.createElement(P.x,{svgName:O.vn.Archive,size:P.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},T("archivedInfoTitle")),r.createElement("p",{className:"mb-1"},T("archivedInfo")))):r.createElement(d.x,{phrase:"alert"}),e.isPreviewPreventScrubbingEnabled&&r.createElement(L.u,{title:T("previewPreventScrubbingExplain"),trigger:"hover",spanHack:!0},r.createElement("div",{className:"d-flex mt-1 mt-lg-0"},r.createElement("div",{className:"me-2"},r.createElement(d.x,{phrase:"previewPreventScrubbing"})),r.createElement(V.Z,{on:e.isPreviewingPreventScrubbing,onClick:e.toggleStudentMode}))))}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var R="interactives.previewInteractive",U=i.T.encloseNamespace(R);function q(e){var t,n,i,P,V,L,O,T,q,M=e.shareId?c.LZ.PreviewSharedInteractive:c.LZ.PreviewInteractive,D=(0,g.g)(),G=(T=r.useState(!1),q=2,function(e){if(Array.isArray(e))return e}(T)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(T,q)||function(e,t){if(e){if("string"==typeof e)return F(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)?F(e,t):void 0}}(T,q)||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.")}()),_=G[0],Z=G[1],W=N.M.getCanBeConsumed(e.interactive).canConsume,z=r.useMemo((function(){return(0,a.oD)()}),[]),Q=(0,S._)({location:S.i.PlayPage,shareId:e.shareId}),B=(0,w.u)(M),K=B.setFavourite,H=B.canFavourite,$=(0,b.r)(null).hasPlayPageV2;L=_,O=function(){var e,t,n;null===(n=null===(t=null===(e=D.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.togglePreviewPreventScrubbing)||void 0===n||n.call(t)},r.useEffect((function(){O()}),[L]);var Y,X,J,ee,te=(Y=e.interactive)._parentClip||Y._parentVideo;N.M.isClip(te)?(X=null===(n=null===(t=te.interactives)||void 0===t?void 0:t.data)||void 0===n?void 0:n.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),J=te.name,ee={application:C.O.CLIPS,action:x.e.Clips.PLAY_CLIP,args:[te.id,l.m.slugify(te.name)]}):(X=null===(P=null===(i=te.interactives)||void 0===i?void 0:i.data)||void 0===P?void 0:P.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),J=te.name,ee={application:C.O.VIDEOS,action:x.e.Videos.PLAY_VIDEO,args:[te.id,l.m.slugify(te.name)]});var ne=e.interactive.status===h.X.Draft;return r.createElement(d.D.Provider,{value:R},r.createElement("div",{className:"px-4"},r.createElement(I.W,{restrictions:e.interactive._restrictions,yearGroups:e.yearGroups,objectId:e.interactive.id,objectTypeId:y.E.Interactive,canManageVideoAccess:e.canManageVideoAccess}),r.createElement(j,{isPreviewPreventScrubbingEnabled:e.isPreviewPreventScrubbingEnabled,isPreviewingPreventScrubbing:_,toggleStudentMode:function(){Z(!_)},isArchived:N.M.isVideoTypeArchived(e.interactive)}),r.createElement("div",{className:"mb-3"},W&&r.createElement(f.r,{key:e.interactive.id,objectId:e.interactive.id,objectTypeId:e.interactive.typeId,shareId:e.shareId,startTime:null!==(V=e.queryParams.t)&&void 0!==V?V:e.queryParams.startTime,mode:"default",location:"play-page"})),r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",{className:"inline-block w-100"},r.createElement("div",{className:"ms-2 float-end"},r.createElement(o.e,{actions:Q.getVideoActions(e.interactive),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return Q.fetchMoreActions(e.interactive)}})),r.createElement("h1",{className:"h3 mb-2"},ne&&r.createElement("div",{className:"badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base"},r.createElement(d.x,{phrase:"draft"})),e.interactive.name,r.createElement(m.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups})),N.M.canViewOriginalVideo(e.interactive)&&r.createElement("div",{className:"mb-1 me-3 clamp-1"},r.createElement(d.x,{phrase:"viewOriginal"})," ",r.createElement(s.F,{appLink:ee,className:"text-info"},J)))),e.interactive.description&&r.createElement("p",null,e.interactive.description),r.createElement("div",{className:"mb-3"},r.createElement(a.t0,{node:z})),!!(null==X?void 0:X.length)&&r.createElement("div",{className:"pb-3"},$?r.createElement(v.kM,{name:U("otherInteractives",{count:X.length}),contents:E.z.Interactives,collection:X,prefetched:!0,getChildAppLink:function(e){return{application:C.O.INTERACTIVES,action:x.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:u.H,extraChildComponentProps:{yearGroups:e.yearGroups,questionsAppLink:{application:C.O.INTERACTIVES,action:x.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl,isPlugin:e.isPlugin},analyticsData:{widgetId:"interactives"}}):r.createElement(v.kM,{name:U("otherInteractives",{count:X.length}),contents:E.z.Interactives,collection:X,prefetched:!0,getChildAppLink:function(e){return{application:C.O.INTERACTIVES,action:x.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:p.K,extraChildComponentProps:{video:te,questionsAppLink:{application:C.O.INTERACTIVES,action:x.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),r.createElement(A.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,setFavourite:K,canFavourite:H,currentUser:e.currentUser,audiences:e.audiences,relatedVideos:e.relatedVideos,getVideoAppLink:function(t,n){return k.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},26492:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(23481),i=n(65858),l=n(83914),c=n(4594),o=n(35223),s="shared.playPage";function u(e){var t=a.T.encloseNamespace(s),n=function(e){switch(e){case c.E.Video:return"video";case c.E.Clip:return"clip";case c.E.Interactive:return"interactive";default:return""}}(e.typeId);return r.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},r.createElement(l.x,{svgName:o.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:n})),(!e.hasStudentExperience||n===i.py.Video)&&r.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(n,"s")}))))}},47938:(e,t,n)=>{n.d(t,{W:()=>m});var r=n(32735),a=n(36848),i=n(83914),l=n(83345),c=n(5345),o=n(26361),s=n(14070),u=n(97291),d="shared.playPage";function m(e){var t,n;if(!(null===(n=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length)||!e.yearGroups||!e.canManageVideoAccess)return r.createElement(r.Fragment,null);if(o.l.getWeightedRestriction(e.restrictions.value).type!==c.c.Custom)return r.createElement(r.Fragment,null);var m=o.l.mapRestrictionToClass(e.restrictions),v="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return r.createElement("div",{className:v},r.createElement("div",{className:"d-flex align-items-center"},r.createElement(i.x,{svgName:o.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),r.createElement("span",{className:"ps-1"},o.l.mapRestrictionToText(e.restrictions,e.yearGroups))),r.createElement(a.F,{appLink:{application:u.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},r.createElement(l.x,{namespace:d,phrase:"approve"})))}},78166:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(32735),a=n(71020),i=n(83345),l=n(74696),c=n(13231),o=n(51365),s=n(22902),u=n(59598),d=n(31908),m=n(10671),v=n(10741),p=n(22490),f=n(82431),g="shared.relatedVideos";function h(e){var t,n,h=(0,m._)({location:m.i.VideoItem}),y=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return r.createElement(r.Fragment,null);if(e.relatedVideos.hasError)return r.createElement(r.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(n=e.relatedVideos.videos)||void 0===n?void 0:n.length))return r.createElement(r.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return r.createElement(r.Fragment,null);var E=!d.M.isInteractive(e.currentVideo);return r.createElement("section",{id:u.K.RelatedVideos,ref:function(t){var n,r;t&&(null===(n=e.headingRef)||void 0===n?void 0:n.current)&&(null===(r=e.relatedVideos.videos)||void 0===r?void 0:r.length)&&e.headingRef.current.set(u.K.RelatedVideos,t)}},r.createElement(o.M.Provider,{value:h},r.createElement("h2",{className:"h4 mb-0"},r.createElement(i.x,{namespace:g,phrase:E?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?r.createElement(c.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return f.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:y,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return v.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:p.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:p.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:p.W.getResourceGuidanceAppLink}):r.createElement(l.S,null),e.relatedVideos.hasMore&&r.createElement(a._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext})))}},44110:(e,t,n)=>{n.d(t,{i:()=>l});var r=n(20354),a=n(89454),i=n(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,l=t||n();return r.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},53073:(e,t,n)=>{n.d(t,{f:()=>s});var r=n(20354),a=n(16714),i=n(12754),l=n(31949),c=n(22902),o=n(15311);function s(){var e=(0,c.T)().hasPermissions,t=(0,o.r)().hasProduct,n=r.a.useBasicFetch(l.N.currentUser());return!e(a.C.StudentExperience)&&t(i.x.Primary)&&n.data.isAuthenticated}},97816:(e,t,n)=>{n.d(t,{V:()=>u});var r=n(32735),a=n(20354),i=n(21750),l=n(31949),c=n(1575);function o(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t,n,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=a.a.useBasicFetch(l.N.currentUser()),m=r.useRef(new Set),v=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),p=(t=r.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||o(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=p[0],g=p[1];r.useEffect((function(){if((null==v?void 0:v.length)&&d.hasCompleted){var e=[];v.forEach((function(t){m.current.has(t)||(e.push(t),m.current.add(t))})),e.length&&g((function(t){var n,r=[].concat(function(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(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.")}()}(t),[c.R.videoMixinAssocs(e,u.flightNamespace)]);return(null===(n=d.data)||void 0===n?void 0:n.isAuthenticated)&&r.push(i.x.hasCurriculumLinks(e,null,u.flightNamespace)),r}))}}),[null==v?void 0:v.length,d.hasCompleted]),a.a.useBasicFetchAll(f)}}}]);
2
- //# sourceMappingURL=5936-59acb26157-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5936],{71020:(e,t,n)=>{n.d(t,{_:()=>u});var r=n(32735),a=n(80247),i=n(34152),l=n(83914),c=n(35223);const o={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t,n,u=(t=(0,i.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return s(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)?s(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],m=u[1];return r.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),r.createElement("div",{className:"p-3 text-center ".concat(o.container),ref:d},e.isFetching?r.createElement(a.Z,{as:"span",animation:"border",role:"status",className:o.spinner}):r.createElement(l.x,{svgName:c.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},17997:(e,t,n)=>{n.d(t,{H:()=>s});var r=n(32735),a=n(36848),i=n(83345),l=n(22843),c=n(89118),o=n(68626),s=r.memo((function(e){var t,n,s=e.data,u=e.thumbnailSize,d=e.preloadImage,m=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),v=null===(n=null===(t=s._timepoints)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length;return r.createElement("div",{className:"flex-shrink-0 px-1 col-6 col-sm-4"},r.createElement(c.u,{type:"static",textPosition:o.z.Independent,video:s,appLink:e.getAppLink(s),imageOptions:{size:u},preload:d,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin}),r.createElement("div",{className:"mt-2"},r.createElement(l.h,Object.assign({},e,{video:s,appLink:e.getAppLink(s)}))),r.createElement("div",{className:"mt-1"},r.createElement(a.F,{appLink:m,className:"cursor-pointer"},r.createElement(i.x,{namespace:"shared.interactiveWidgetItemV2",phrase:"previewQuestions",options:{count:v,smartCount:v}}))))}))},74696:(e,t,n)=>{n.d(t,{S:()=>s});var r=n(32735),a=n(68050),i=n(69111),l=n(9977),c=n(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return r.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return r.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&r.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,c.k)(),n="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return r.createElement(a.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},r.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),r.createElement(a.Z,null,!!s&&r.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),r.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},r.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),r.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),r.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),r.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}s.defaultProps={numVideos:15}},3133:(e,t,n)=>{n.d(t,{R:()=>s});var r=n(32735),a=n(20789),i=n(86794),l=n(2786),c=n(64818);const o={avatarContainer:"kd18L",cvIcon:"smUBc"};function s(e){var t;if(!e.owner&&!e.isClickViewCurated)return r.createElement(r.Fragment,null);if(e.isClickViewCurated)return r.createElement("div",{className:"clamp-1 d-flex align-items-center"},r.createElement("div",{className:"".concat(o.avatarContainer," me-1 border rounded-circle position-relative")},r.createElement(i.b,{className:"me-1 ".concat(o.cvIcon)},r.createElement(l.Sd,null))),"ClickView");var n=c.l.getCommunityName(e.owner);return n?r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(o.avatarContainer," me-1")},r.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:c.l.getInitials(e.owner.name,e.owner.surname),imageUrl:null===(t=e.owner.avatar)||void 0===t?void 0:t.url})),r.createElement("div",{className:"clamp-1"},n)):r.createElement(r.Fragment,null)}},47862:(e,t,n)=>{n.d(t,{K:()=>d});var r=n(32735),a=n(65858),i=n(36848),l=n(83345),c=n(89118),o=n(3133),s=n(54610),u=n(68626);var d=r.memo((function(e){var t,n=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]});return r.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},r.createElement("div",{className:"row m-0 border rounded p-2 h-100"},r.createElement("div",{className:"col-6 p-0"},r.createElement(c.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:s.h2.Small},textPosition:u.z.Independent,preload:!0,analyticsOptions:{location:a.LZ.SlidingListItem}})),r.createElement("div",{className:"col-6 p-0"},r.createElement("div",{className:"ps-2"},r.createElement(i.F,{appLink:e.getAppLink(e.data)},r.createElement("h3",{className:"h6 mb-1"},r.createElement("span",{className:"clamp-2"},e.data.name))),r.createElement(o.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl}),r.createElement(i.F,{className:"info-link",appLink:n},r.createElement(l.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions"}))))))}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),i=n(67058),l=n(14553),c=n(49267),o=n(49075),s={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:c.a,privacy:l.q},badRequest:o._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new l.badRequest):n.forbidden||a.Q.Ry.throw(new l.forbidden.privacy):n.notFound||a.Q.Ry.throw(new l.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>l});var r=n(32735),a=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,n){var l=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,n)}))}),[i(l),t,n])}},59598:(e,t,n)=>{var r;n.d(t,{K:()=>r}),function(e){e.Resources="resources",e.Interactives="interactives",e.Video="video",e.Clips="clips",e.CurriculumLinks="curriculum-links",e.VideoDetails="video-details",e.RelatedVideos="related-videos",e.ClippedFrom="clipped-from"}(r||(r={}))},84062:(e,t,n)=>{n.d(t,{M:()=>g});var r=n(32735),a=n(17082),i=n(65858),l=n(38647),c=n(16714),o=n(22902),s=n(31908),u=n(26492),d=n(78166),m=n(27638),v=n(22490),p=n(57245);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e){var t,n,g=e.shareLink?i.LZ.PlaySharedInteractive:i.LZ.PlayInteractive,h=(t=r.useState(!0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return f(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)?f(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],E=h[1],b=s.M.isVideoTypeArchived(e.interactive),N=r.useMemo((function(){return(0,a.oD)()}),[]),I=(0,m.u)(g),A=I.setFavourite,x=I.canFavourite,C=(0,o.T)().hasPermissions;return r.createElement("div",{className:"px-3"},b&&r.createElement(u.T,{typeId:e.interactive.typeId,hasStudentExperience:!0}),r.createElement("div",{className:"mb-3"},r.createElement(p._,{config:e.config,video:e.interactive,currentUser:e.currentUser,shareLink:e.shareLink,viewKey:e.viewKey,startTime:e.startTime,onShowSummary:function(e){E(!e)},summaryPortalNode:N})),r.createElement("div",null,y&&r.createElement("h1",{className:"h3 d-flex"},e.interactive.name,r.createElement(l.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups}))),r.createElement(a.t0,{node:N}),!C(c.C.StudentExperience)&&r.createElement(d.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,currentUser:e.currentUser,setFavourite:A,canFavourite:x,relatedVideos:e.relatedVideos,audiences:e.audiences,getVideoAppLink:function(t,n){var r;return v.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:null===(r=e.shareLink)||void 0===r?void 0:r.id,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin}))}},25758:(e,t,n)=>{n.d(t,{x:()=>U});var r=n(32735),a=n(17082),i=n(23481),l=n(28400),c=n(65858),o=n(83657),s=n(36848),u=n(17997),d=n(83345),m=n(38647),v=n(11518),p=n(47862),f=n(10439),g=n(35429),h=n(5960),y=n(4594),E=n(58704),b=n(37802),N=n(31908),I=n(47938),A=n(78166),x=n(14070),C=n(97291),S=n(10671),w=n(27638),k=n(22490),P=n(83914),V=n(83523),L=n(76177),O=n(35223),T=i.T.encloseNamespace("interactives.previewInteractive");function j(e){return r.createElement("div",{className:"alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center",role:"alert"},e.isArchived?r.createElement("div",{className:"d-flex align-items-center"},r.createElement(P.x,{svgName:O.vn.Archive,size:P.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},T("archivedInfoTitle")),r.createElement("p",{className:"mb-1"},T("archivedInfo")))):r.createElement(d.x,{phrase:"alert"}),e.isPreviewPreventScrubbingEnabled&&r.createElement(L.u,{title:T("previewPreventScrubbingExplain"),trigger:"hover",spanHack:!0},r.createElement("div",{className:"d-flex mt-1 mt-lg-0"},r.createElement("div",{className:"me-2"},r.createElement(d.x,{phrase:"previewPreventScrubbing"})),r.createElement(V.Z,{on:e.isPreviewingPreventScrubbing,onClick:e.toggleStudentMode}))))}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var R="interactives.previewInteractive",M=i.T.encloseNamespace(R);function U(e){var t,n,i,P,V,L,O,T,U,q=e.shareId?c.LZ.PreviewSharedInteractive:c.LZ.PreviewInteractive,D=(0,g.g)(),G=(T=r.useState(!1),U=2,function(e){if(Array.isArray(e))return e}(T)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(T,U)||function(e,t){if(e){if("string"==typeof e)return F(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)?F(e,t):void 0}}(T,U)||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.")}()),_=G[0],Z=G[1],W=N.M.getCanBeConsumed(e.interactive).canConsume,z=r.useMemo((function(){return(0,a.oD)()}),[]),Q=(0,S._)({location:S.i.PlayPage,shareId:e.shareId}),B=(0,w.u)(q),K=B.setFavourite,H=B.canFavourite,$=(0,b.r)(null).hasPlayPageV2;L=_,O=function(){var e,t,n;null===(n=null===(t=null===(e=D.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.togglePreviewPreventScrubbing)||void 0===n||n.call(t)},r.useEffect((function(){O()}),[L]);var Y,X,J,ee,te=(Y=e.interactive)._parentClip||Y._parentVideo;N.M.isClip(te)?(X=null===(n=null===(t=te.interactives)||void 0===t?void 0:t.data)||void 0===n?void 0:n.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),J=te.name,ee={application:C.O.CLIPS,action:x.e.Clips.PLAY_CLIP,args:[te.id,l.m.slugify(te.name)]}):(X=null===(P=null===(i=te.interactives)||void 0===i?void 0:i.data)||void 0===P?void 0:P.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),J=te.name,ee={application:C.O.VIDEOS,action:x.e.Videos.PLAY_VIDEO,args:[te.id,l.m.slugify(te.name)]});var ne=e.interactive.status===h.X.Draft;return r.createElement(d.D.Provider,{value:R},r.createElement("div",{className:"px-4"},r.createElement(I.W,{restrictions:e.interactive._restrictions,yearGroups:e.yearGroups,objectId:e.interactive.id,objectTypeId:y.E.Interactive,canManageVideoAccess:e.canManageVideoAccess}),r.createElement(j,{isPreviewPreventScrubbingEnabled:e.isPreviewPreventScrubbingEnabled,isPreviewingPreventScrubbing:_,toggleStudentMode:function(){Z(!_)},isArchived:N.M.isVideoTypeArchived(e.interactive)}),r.createElement("div",{className:"mb-3"},W&&r.createElement(f.r,{key:e.interactive.id,objectId:e.interactive.id,objectTypeId:e.interactive.typeId,shareId:e.shareId,startTime:null!==(V=e.queryParams.t)&&void 0!==V?V:e.queryParams.startTime,mode:"default",location:"play-page"})),r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",{className:"inline-block w-100"},r.createElement("div",{className:"ms-2 float-end"},r.createElement(o.e,{actions:Q.getVideoActions(e.interactive),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return Q.fetchMoreActions(e.interactive)}})),r.createElement("h1",{className:"h3 mb-2"},ne&&r.createElement("div",{className:"badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base"},r.createElement(d.x,{phrase:"draft"})),e.interactive.name,r.createElement(m.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups})),N.M.canViewOriginalVideo(e.interactive)&&r.createElement("div",{className:"mb-1 me-3 clamp-1"},r.createElement(d.x,{phrase:"viewOriginal"})," ",r.createElement(s.F,{appLink:ee,className:"text-info"},J)))),e.interactive.description&&r.createElement("p",null,e.interactive.description),r.createElement("div",{className:"mb-3"},r.createElement(a.t0,{node:z})),!!(null==X?void 0:X.length)&&r.createElement("div",{className:"pb-3"},$?r.createElement(v.kM,{name:M("otherInteractives",{count:X.length}),contents:E.z.Interactives,collection:X,prefetched:!0,getChildAppLink:function(e){return{application:C.O.INTERACTIVES,action:x.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:u.H,extraChildComponentProps:{yearGroups:e.yearGroups,questionsAppLink:{application:C.O.INTERACTIVES,action:x.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl,isPlugin:e.isPlugin},analyticsData:{widgetId:"interactives"}}):r.createElement(v.kM,{name:M("otherInteractives",{count:X.length}),contents:E.z.Interactives,collection:X,prefetched:!0,getChildAppLink:function(e){return{application:C.O.INTERACTIVES,action:x.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:p.K,extraChildComponentProps:{video:te,questionsAppLink:{application:C.O.INTERACTIVES,action:x.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),r.createElement(A.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,setFavourite:K,canFavourite:H,currentUser:e.currentUser,audiences:e.audiences,relatedVideos:e.relatedVideos,getVideoAppLink:function(t,n){return k.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},26492:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(23481),i=n(65858),l=n(83914),c=n(4594),o=n(35223),s="shared.playPage";function u(e){var t=a.T.encloseNamespace(s),n=function(e){switch(e){case c.E.Video:return"video";case c.E.Clip:return"clip";case c.E.Interactive:return"interactive";default:return""}}(e.typeId);return r.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},r.createElement(l.x,{svgName:o.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:n})),(!e.hasStudentExperience||n===i.py.Video)&&r.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(n,"s")}))))}},47938:(e,t,n)=>{n.d(t,{W:()=>m});var r=n(32735),a=n(36848),i=n(83914),l=n(83345),c=n(5345),o=n(26361),s=n(14070),u=n(97291),d="shared.playPage";function m(e){var t,n;if(!(null===(n=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length)||!e.yearGroups||!e.canManageVideoAccess)return r.createElement(r.Fragment,null);if(o.l.getWeightedRestriction(e.restrictions.value).type!==c.c.Custom)return r.createElement(r.Fragment,null);var m=o.l.mapRestrictionToClass(e.restrictions),v="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return r.createElement("div",{className:v},r.createElement("div",{className:"d-flex align-items-center"},r.createElement(i.x,{svgName:o.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),r.createElement("span",{className:"ps-1"},o.l.mapRestrictionToText(e.restrictions,e.yearGroups))),r.createElement(a.F,{appLink:{application:u.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},r.createElement(l.x,{namespace:d,phrase:"approve"})))}},78166:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(32735),a=n(71020),i=n(83345),l=n(74696),c=n(13231),o=n(51365),s=n(22902),u=n(59598),d=n(31908),m=n(10671),v=n(10741),p=n(22490),f=n(82431),g="shared.relatedVideos";function h(e){var t,n,h=(0,m._)({location:m.i.VideoItem}),y=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return r.createElement(r.Fragment,null);if(e.relatedVideos.hasError)return r.createElement(r.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(n=e.relatedVideos.videos)||void 0===n?void 0:n.length))return r.createElement(r.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return r.createElement(r.Fragment,null);var E=!d.M.isInteractive(e.currentVideo);return r.createElement("section",{id:u.K.RelatedVideos,ref:function(t){var n,r;t&&(null===(n=e.headingRef)||void 0===n?void 0:n.current)&&(null===(r=e.relatedVideos.videos)||void 0===r?void 0:r.length)&&e.headingRef.current.set(u.K.RelatedVideos,t)}},r.createElement(o.M.Provider,{value:h},r.createElement("h2",{className:"h4 mb-0"},r.createElement(i.x,{namespace:g,phrase:E?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?r.createElement(c.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return f.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:y,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return v.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:p.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:p.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:p.W.getResourceGuidanceAppLink}):r.createElement(l.S,null),e.relatedVideos.hasMore&&r.createElement(a._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext})))}},44110:(e,t,n)=>{n.d(t,{i:()=>l});var r=n(20354),a=n(89454),i=n(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,l=t||n();return r.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},53073:(e,t,n)=>{n.d(t,{f:()=>s});var r=n(20354),a=n(16714),i=n(12754),l=n(31949),c=n(22902),o=n(15311);function s(){var e=(0,c.T)().hasPermissions,t=(0,o.r)().hasProduct,n=r.a.useBasicFetch(l.N.currentUser());return!e(a.C.StudentExperience)&&t(i.x.Primary)&&n.data.isAuthenticated}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var r=n(32735),a=n(20354),i=n(21750),l=n(31949),c=n(1575),o=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=a.a.useBasicFetch(l.N.currentUser()),v=r.useRef(new Set),p=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):[]:[]}(e),f=p.map((function(e){return e.id})),g=(t=r.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,l,c=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],y=g[1];r.useEffect((function(){if((null==f?void 0:f.length)&&m.hasCompleted){var e=[];f.forEach((function(t){v.current.has(t)||(e.push(t),v.current.add(t))})),e.length&&y((function(t){var n,r=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[c.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&r.push(i.x.hasCurriculumLinks(e,null,d.flightNamespace)),r}))}}),[null==f?void 0:f.length,m.hasCompleted]),a.a.useBasicFetchAll(h)}}}]);
2
+ //# sourceMappingURL=5936-7ad136f2a3-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/5936-7ad136f2a3-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/interactives-widget/InteractiveWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/components/video-owner-text/video-owner-text.scss","file:///app/packages/libs/shared/src/components/video-owner-text/VideoOwnerText.tsx","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/InteractiveWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/interactive-widget-item/interactive-widget-item.scss","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/interfaces/PlayPageAnchor.ts","file:///app/packages/projects/lite/src/apps/interactives/components/play-interactive/PlayInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/InteractiveAlertBanner.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/preview-interactive/PreviewInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/hooks/interactiveHooks.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/ArchivedBanner.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/RestrictionBanner.tsx","file:///app/packages/projects/lite/src/shared/components/related-videos/RelatedVideos.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useShouldPreviewInteractive.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { CanFavouriteFunc, FavouriteFunc, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveWidgetItemV2';\n\nexport interface InteractiveWidgetItemV2Props extends FixedWidgetItemProps<InteractiveMetadata> {\n imageCdnUrl: string;\n questionsAppLink: Core.AppLink;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n yearGroups: YearGroup[];\n isPlugin: boolean;\n}\n\nexport const InteractiveWidgetItemV2 = React.memo(function(props: InteractiveWidgetItemV2Props): JSX.Element {\n const { data: interactive, thumbnailSize, preloadImage } = props;\n\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n const questionsNumber = interactive._timepoints?.value?.length;\n\n return (\n <div className={`flex-shrink-0 px-1 col-6 col-sm-4`}>\n <VideoThumbnail\n type='static'\n textPosition={ThumbnailTextPosition.Independent}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n hideDuration={false}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n />\n </div>\n\n <div className='mt-1'>\n <AppLink appLink={questionsAppLink} className='cursor-pointer'>\n <Text namespace={namespace} phrase='previewQuestions' options={{ count: questionsNumber, smartCount: questionsNumber }}/>\n </AppLink>\n </div>\n\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"kd18L\",\"cvIcon\":\"smUBc\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './video-owner-text.scss';\n\ninterface VideoOwnerTextProps {\n owner: User;\n isClickViewCurated: boolean;\n imageCdnUrl: string;\n}\n\nexport function VideoOwnerText(props: VideoOwnerTextProps): JSX.Element {\n if (!props.owner && !props.isClickViewCurated)\n return <></>;\n\n if (props.isClickViewCurated) {\n return (\n <div className='clamp-1 d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1 border rounded-circle position-relative`}>\n <SvgContainer2 className={`me-1 ${styles.cvIcon}`}>\n <ClickViewPlayLogo />\n </SvgContainer2>\n </div>\n ClickView\n </div>\n );\n }\n\n const name = UserHelper.getCommunityName(props.owner);\n\n if (!name)\n return <></>;\n\n return (\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-1`}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.owner.name, props.owner.surname)}\n imageUrl={props.owner.avatar?.url}\n />\n </div>\n <div className='clamp-1'>\n {name}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoOwnerText } from 'libs/shared/components/video-owner-text/VideoOwnerText';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Clip, InteractiveMetadata, Video } from 'libs/shared/interfaces';\n\nimport styles from './interactive-widget-item.scss';\n\nconst namespace = 'shared.interactiveWidgetItem';\n\nexport interface InteractiveWidgetItemProps extends FixedWidgetItemProps<InteractiveMetadata> {\n video: Video | Clip;\n questionsAppLink: Core.AppLink;\n imageCdnUrl: string;\n}\n\nexport const InteractiveWidgetItem = React.memo(function(props: InteractiveWidgetItemProps): JSX.Element {\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n return (\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\n <div className='row m-0 border rounded p-2 h-100'>\n <div className='col-6 p-0'>\n <VideoThumbnail\n video={props.data}\n appLink={props.getAppLink(props.data)}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n analyticsOptions={{ location: LocationContext.SlidingListItem }}\n />\n </div>\n\n <div className='col-6 p-0'>\n <div className='ps-2'>\n <AppLink appLink={props.getAppLink(props.data)}>\n <h3 className='h6 mb-1'><span className='clamp-2'>{props.data.name}</span></h3>\n </AppLink>\n\n <VideoOwnerText\n owner={props.data.owner}\n isClickViewCurated={props.data._isClickViewCurated?.value}\n imageCdnUrl={props.imageCdnUrl}\n />\n\n <AppLink className='info-link' appLink={questionsAppLink}>\n <Text namespace={namespace} phrase='previewQuestions' />\n </AppLink>\n </div>\n </div>\n </div>\n </div>\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"rXatl\"};","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","export enum PlayPageAnchor {\n Resources = 'resources',\n Interactives = 'interactives',\n Video = 'video',\n Clips = 'clips',\n CurriculumLinks = 'curriculum-links',\n VideoDetails = 'video-details',\n RelatedVideos = 'related-videos',\n ClippedFrom='clipped-from'\n}","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey, PresentationAudience, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { LitePlayerView } from 'shared/views/lite-player/LitePlayerView';\n\ninterface PlayInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n currentUser: CurrentUser;\n config: Config;\n audiences: PresentationAudience[];\n queryParams: PlayViewQueryParams;\n viewKey: PlayerViewKey;\n startTime?: number;\n endTime?: number;\n\n // Share view only\n shareLink?: UnionShareObject;\n sharerInstanceRegion?: string;\n checkMarkStatus?: CheckMarkStatus;\n relatedVideos: RelatedVideosHash;\n isPlugin: boolean;\n}\n\nexport function PlayInteractive(props: PlayInteractiveProps): JSX.Element {\n const locationContext = props.shareLink ?\n LocationContext.PlaySharedInteractive :\n LocationContext.PlayInteractive;\n\n const [ showHeading, setShowHeading ] = React.useState(true);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.interactive);\n\n const summaryPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPermissions } = usePermissions();\n\n function onShowSummary(showing: boolean): void {\n setShowHeading(!showing);\n }\n\n return (\n <div className='px-3'>\n {isArchived && <ArchivedBanner typeId={props.interactive.typeId} hasStudentExperience />}\n\n <div className='mb-3'>\n <LitePlayerView\n config={props.config}\n video={props.interactive}\n currentUser={props.currentUser}\n shareLink={props.shareLink}\n viewKey={props.viewKey}\n startTime={props.startTime}\n onShowSummary={onShowSummary}\n summaryPortalNode={summaryPortalNode}\n />\n </div>\n {/* This wrapping div is here because react seems to not want to play nice\n with adding or removing a node just ahead of an OutPortal */}\n <div>\n {showHeading &&\n <h1 className='h3 d-flex'>\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n }\n </div>\n <OutPortal node={summaryPortalNode}></OutPortal>\n\n {!hasPermissions(PermissionName.StudentExperience) && (\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n currentUser={props.currentUser}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n relatedVideos={props.relatedVideos}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareLink?.id,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveAlertBannerProps {\n isPreviewPreventScrubbingEnabled: boolean;\n isPreviewingPreventScrubbing: boolean;\n toggleStudentMode: () => void;\n isArchived: boolean;\n}\n\nexport function InteractiveAlertBanner(props: InteractiveAlertBannerProps): JSX.Element {\n return (\n <div className='alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center' role='alert'>\n {!props.isArchived ? <Text phrase='alert' /> : (\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle')}</p>\n <p className='mb-1'>{getPhrase('archivedInfo')}</p>\n </div>\n </div>\n )}\n {props.isPreviewPreventScrubbingEnabled && (\n <Tooltip\n title={getPhrase('previewPreventScrubbingExplain')}\n trigger='hover'\n spanHack\n >\n <div className='d-flex mt-1 mt-lg-0'>\n <div className='me-2'><Text phrase='previewPreventScrubbing'/></div>\n <ToggleSwitch on={props.isPreviewingPreventScrubbing} onClick={props.toggleStudentMode} />\n </div>\n </Tooltip>\n )}\n </div>\n );\n}","import * as React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { InteractiveWidgetItemV2, InteractiveWidgetItemV2Props } from 'libs/shared/components/play-page-v2/interactives-widget/InteractiveWidgetItemV2';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveMetadata, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InteractiveAlertBanner } from 'apps/interactives/components/preview-interactive/InteractiveAlertBanner';\nimport { usePreviewPreventInteractive } from 'apps/interactives/hooks/interactiveHooks';\n\nconst namespace = 'interactives.previewInteractive';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive._parentClip || interactive._parentVideo;\n}\n\ninterface PreviewInteractiveProps {\n interactive: InteractiveMetadata;\n yearGroups: YearGroup[];\n config: Config;\n currentUser: CurrentUser;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n isPreviewPreventScrubbingEnabled: boolean;\n relatedVideos: RelatedVideosHash;\n canManageVideoAccess: boolean;\n isPlugin: boolean;\n\n // Share view only\n shareId?: string;\n}\n\nexport function PreviewInteractive(props: PreviewInteractiveProps): JSX.Element {\n const locationContext = props.shareId ? LocationContext.PreviewSharedInteractive : LocationContext.PreviewInteractive;\n\n const playerContext = usePlayerContext();\n\n const [ isPreviewingPreventScrubbing, setIsPreviewingPreventScrubbing ] = React.useState(false);\n\n const { canConsume } = VideoHelper.getCanBeConsumed(props.interactive);\n\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n \n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext);\n const { hasPlayPageV2 } = useSettings(null);\n\n usePreviewPreventInteractive(isPreviewingPreventScrubbing, togglePreviewPreventScrubbing);\n\n function togglePreviewPreventScrubbing() {\n playerContext.playerRef?.current?.togglePreviewPreventScrubbing?.();\n }\n\n function toggleStudentMode() {\n setIsPreviewingPreventScrubbing(!isPreviewingPreventScrubbing);\n }\n\n const sourceVideo = getSourceVideo(props.interactive);\n\n let otherInteractives: InteractiveMetadata[];\n let backToName: string;\n let backAppLink: Core.AppLink;\n\n if (VideoHelper.isClip(sourceVideo)) {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n } else {\n otherInteractives = sourceVideo.interactives?.data?.filter(i => {\n return i.id.toString() !== props.interactive.id.toString();\n });\n backToName = sourceVideo.name;\n backAppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ sourceVideo.id, TextHelper.slugify(sourceVideo.name) ]\n };\n }\n\n const isDraft = props.interactive.status === CurationStatus.Draft;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='px-4'>\n\n <RestrictionBanner\n restrictions={props.interactive._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.interactive.id}\n objectTypeId={MasterType.Interactive}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n <InteractiveAlertBanner\n isPreviewPreventScrubbingEnabled={props.isPreviewPreventScrubbingEnabled}\n isPreviewingPreventScrubbing={isPreviewingPreventScrubbing}\n toggleStudentMode={toggleStudentMode}\n isArchived={VideoHelper.isVideoTypeArchived(props.interactive)}\n />\n\n <div className='mb-3'>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.interactive.id}\n objectId={props.interactive.id}\n objectTypeId={props.interactive.typeId}\n shareId={props.shareId}\n startTime={props.queryParams.t ?? props.queryParams.startTime}\n mode='default'\n location='play-page'\n />\n }\n </div>\n <div className='d-flex justify-content-between align-items-center'>\n <div className='inline-block w-100'>\n <div className='ms-2 float-end'>\n <ActionsComponent\n actions={videoActions.getVideoActions(props.interactive)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.interactive)}\n />\n </div>\n\n <h1 className='h3 mb-2'>\n {isDraft && (\n <div className={`badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base`}>\n <Text phrase='draft' />\n </div>\n )}\n {props.interactive.name}\n <RestrictionPadlock\n tooltipPlacement='right'\n className='ps-1'\n video={props.interactive}\n yearGroups={props.yearGroups}\n />\n </h1>\n {VideoHelper.canViewOriginalVideo(props.interactive) &&\n <div className='mb-1 me-3 clamp-1'>\n <Text phrase='viewOriginal' />&nbsp;<AppLink appLink={backAppLink} className='text-info'>{backToName}</AppLink>\n </div>\n }\n </div>\n </div>\n\n {props.interactive.description &&\n <p>{props.interactive.description}</p>\n }\n\n <div className='mb-3'>\n <OutPortal node={questionListPortalNode}></OutPortal>\n </div>\n\n {!!otherInteractives?.length && (\n <div className='pb-3'>\n {!hasPlayPageV2 ? (\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: sourceVideo,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n ) : (\n <FixedWidget<InteractiveWidgetItemV2Props>\n name={getPhrase('otherInteractives', { count: otherInteractives.length })}\n contents={WidgetContents.Interactives}\n collection={otherInteractives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n childComponent={InteractiveWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.config.imageCdnUrl,\n isPlugin: props.isPlugin\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n )}\n </div>\n )}\n\n <RelatedVideos\n currentVideo={props.interactive}\n yearGroups={props.yearGroups}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n relatedVideos={props.relatedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nexport function usePreviewPreventInteractive(\n previewPreventInteractive: boolean,\n togglePreviewPreventInteractive: () => void\n): void {\n React.useEffect(() => {\n togglePreviewPreventInteractive();\n }, [previewPreventInteractive]);\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.playPage';\n\ninterface ArchivedBannerProps {\n typeId: MasterType;\n hasStudentExperience: boolean;\n}\n\nfunction mapTypeId(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Video:\n return 'video';\n case MasterType.Clip:\n return 'clip';\n case MasterType.Interactive:\n return 'interactive';\n default:\n return '';\n }\n}\n\nexport function ArchivedBanner(props: ArchivedBannerProps): JSX.Element {\n const getPhrase = LanguageService.encloseNamespace(namespace);\n const type = mapTypeId(props.typeId);\n\n return (\n <div className='alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle', { type })}</p>\n {(!props.hasStudentExperience || type === EntityType.Video) && (\n <p className='mb-1'>{getPhrase('archivedInfo', { type: `${type}s` })}</p>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\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 { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { Restrictions, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.playPage';\n\ninterface RestrictionBannerProps {\n restrictions: Restrictions;\n yearGroups: YearGroup[];\n objectId: string;\n objectTypeId: MasterType;\n canManageVideoAccess: boolean;\n}\n\nexport function RestrictionBanner(props: RestrictionBannerProps): JSX.Element {\n if (!props.restrictions?.value?.length || !props.yearGroups || !props.canManageVideoAccess)\n return <></>;\n\n const restriction = RestrictionHelper.getWeightedRestriction(props.restrictions.value);\n\n if (restriction.type !== RestrictionType.Custom)\n return <></>;\n\n const baseClassName = RestrictionHelper.mapRestrictionToClass(props.restrictions);\n const className = `${baseClassName} fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center`;\n\n return (\n <div className={className}>\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={RestrictionHelper.mapRestrictionToSvg(props.restrictions)}\n size={SvgContainerSize.Large}\n />\n <span className='ps-1'>\n {RestrictionHelper.mapRestrictionToText(props.restrictions, props.yearGroups)}\n </span>\n </div>\n \n <AppLink\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: {\n objectId: props.objectId,\n objectTypeId: props.objectTypeId\n }\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='approve' />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, CurrentUser, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.relatedVideos';\n\ninterface RelatedVideosProps {\n currentVideo: VideoTypes;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n currentUser: CurrentUser;\n audiences: PresentationAudience[];\n getVideoAppLink: (video: VideoTypes, opts: GetVideoAppLinkOptions) => Core.AppLink;\n moviesAndTv: boolean;\n isPlugin: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function RelatedVideos(props: RelatedVideosProps): JSX.Element {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { hasPermissions } = usePermissions();\n\n if (!props.currentUser?.isAuthenticated) // Don't render if user is unauthenticated\n return <></>;\n\n if (props.relatedVideos.hasError) // Don't render if request has errored\n return <></>;\n\n if (props.relatedVideos.hasCompleted && !props.relatedVideos.videos?.length) // Don't render if response is empty\n return <></>;\n\n if (!props.relatedVideos.isFetching && !props.relatedVideos.hasCompleted) // Don't render if request is never made\n return <></>;\n\n // We don't support autoplaying from interactives. This means the related videos heading won't say \"Up next\"\n const canAutoplay = !VideoHelper.isInteractive(props.currentVideo);\n\n return (\n <section\n id={PlayPageAnchor.RelatedVideos}\n ref={el => {\n (el && props.headingRef?.current\n && !!props.relatedVideos.videos?.length)\n && props.headingRef.current.set(PlayPageAnchor.RelatedVideos, el);\n }}\n >\n <VideoActionsContext.Provider value={videoActions}>\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase={canAutoplay ? 'upNext' : 'relatedVideos'} />\n </h2>\n {props.relatedVideos.hasCompleted ? (\n <VideoList\n videos={props.relatedVideos.videos}\n yearGroups={props.yearGroups}\n getSubTextAppLink={video => {\n return SeriesAppLinkHelper.getSeriesAppLink(video.series, props.moviesAndTv ? { mtv: true } : null);\n }}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n ) : <PartialVideoList />\n }\n {props.relatedVideos.hasMore && (\n <InfiniteScrollFooter\n isFetching={props.relatedVideos.isFetching}\n fetchNext={props.relatedVideos.fetchNext}\n />\n )}\n </VideoActionsContext.Provider>\n </section>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nexport function useShouldPreviewInteractive() {\n const { hasPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n return !hasPermissions(PermissionName.StudentExperience) &&\n hasProduct(ProductId.Primary) &&\n currentUser.data.isAuthenticated;\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}"],"names":["InfiniteScrollFooter","props","ref","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","className","Spinner","as","animation","role","SvgContainer","svgName","size","S","onClick","defaultProps","InteractiveWidgetItemV2","interactive","data","thumbnailSize","preloadImage","questionsAppLink","args","id","questionsNumber","_timepoints","value","length","type","textPosition","video","appLink","getAppLink","imageOptions","preload","analyticsData","analyticsOptions","setFavourite","canFavourite","hideDuration","imageCdnUrl","isPlugin","namespace","phrase","options","count","smartCount","PartialVideoList","Array","numVideos","fill","map","_","i","key","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","VideoOwnerText","owner","isClickViewCurated","SvgContainer2","name","UserHelper","Avatar","initials","surname","imageUrl","avatar","url","InteractiveWidgetItem","VideoThumbnail","ThumbnailTextPosition","location","AppLink","_isClickViewCurated","Text","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","isArray","useEffect","forEach","PlayPageAnchor","PlayInteractive","locationContext","shareLink","showHeading","setShowHeading","isArchived","summaryPortalNode","u","hasPermissions","typeId","hasStudentExperience","config","currentUser","viewKey","startTime","onShowSummary","showing","tooltipPlacement","yearGroups","node","currentVideo","relatedVideos","audiences","getVideoAppLink","v","opts","context","queryParams","contextId","playNext","shareId","moviesAndTv","mtv","getPhrase","LanguageService","InteractiveAlertBanner","isPreviewPreventScrubbingEnabled","Tooltip","title","trigger","spanHack","ToggleSwitch","on","isPreviewingPreventScrubbing","toggleStudentMode","PreviewInteractive","previewPreventInteractive","togglePreviewPreventInteractive","playerContext","setIsPreviewingPreventScrubbing","canConsume","VideoHelper","questionListPortalNode","videoActions","useVideoActions","useLiteFavourites","hasPlayPageV2","useSettings","playerRef","current","togglePreviewPreventScrubbing","otherInteractives","backToName","backAppLink","sourceVideo","_parentClip","_parentVideo","interactives","filter","toString","application","action","TextHelper","isDraft","CurationStatus","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","GlobalPlayerConsumer","t","mode","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","RestrictionPadlock","description","contents","WidgetContents","collection","prefetched","getChildAppLink","childComponent","extraChildComponentProps","widgetId","RelatedVideos","VideoAppLinkHelper","ArchivedBanner","mapTypeId","baseClassName","params","isAuthenticated","hasError","hasCompleted","videos","canAutoplay","el","headingRef","set","getSubTextAppLink","series","presentationAudiences","getPreviewQuestionsAppLink","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hasMore","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","useShouldPreviewInteractive","hasProduct","useVideoMixin","objects","hydratedVideos","Set","o","getValidObjects","videoIds","request","setRequest","unhydratedVideos","has","push","add","r","newRequests","flightNamespace"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6181],{26512:(e,t,n)=>{n.r(t),n.d(t,{MyVideosView:()=>K});var a=n(32735),i=n(70680),r=n(23481),l=n(20354),o=n(28400),c=n(65858),s=n(43500),u=n(73518),d=n(83834),p=n(65403),m=n(10874),v=n(37395),f=n(4201),h=n(83345),g=n(74696),y=n(30254),E=n(13231),k=n(51365),A=n(16714),b=n(39151),V=n(1666),w=n(31949),L=n(299),F=n(91286),C=n(22902),M=n(79612),S=n(35223),x=n(35949),N=n(73417),B=n(14070),O=n(97291),I=n(51855),D=n(27638),T=n(44110),P=n(97816),_=n(10741),R=n(22490),j=n(98860),G=n(12617),U=n(45967),H=n(65202),W=n(74796),Y=n(14305),Q=n(61970),X=n(82431),Z=n(26859),$=n(18097);const q={uploadingList:"wg7hV"};var J="default.myVideos";function K(e){var t,n,K,z,ee,te,ne,ae,ie,re;(0,M.M)({title:r.T.getPhrase(J,"pageTitle")});var le=(0,i.I0)(),oe=(0,D.u)(c.LZ.VideoThumbnail),ce=oe.setFavourite,se=oe.canFavourite,ue=(0,C.T)(),de=ue.hasPermissions,pe=ue.hasLocalPermissions,me=(0,U.q)().handleDragEnd,ve=(0,I.G)().isPlugin,fe=(0,f.of)().focusSearchBar,he=l.a.useBasicFetch(w.N.currentUser()),ge=l.a.useBasicFetch((null===(t=he.data)||void 0===t?void 0:t.isAuthenticated)&&V.h.yearGroups(he.data.customerId)),ye=l.a.useBasicFetch(b.L.config()),Ee=l.a.useBasicFetch((null===(n=he.data)||void 0===n?void 0:n.isAuthenticated)&&w.N.workspace()),ke=null===(z=null===(K=Ee.data)||void 0===K?void 0:K.categoryTree)||void 0===z?void 0:z.id,Ae=(0,j.P)(ke),be=(0,Q.y)(),Ve=(0,Q.W)(null===(ee=Ee.data)||void 0===ee?void 0:ee.id,null===(te=Ee.data)||void 0===te?void 0:te.categoryTree.id),we=(0,T.i)(),Le=(0,W.f)(),Fe=function(e,t){return Ee.data?G.E.videos(ke,e,t):null},Ce=!pe(A.E.ViewMyVideosLanding)&&he.hasCompleted,Me=l.a.useBasicFetch(Ce&&Fe(e.cursor,e.typeFilter));(0,F.v)(Me);var Se=(0,H.J)({onRemove:function(e,t){return l.a.getFetch(le)(Fe(e,t))}}),xe=Se.uploadingVideos,Ne=Se.onClickAlternate,Be=Se.onClickDelete,Oe=Se.processingIds,Ie=null===(ae=null===(ne=Me.data)||void 0===ne?void 0:ne.data)||void 0===ae?void 0:ae.filter((function(e){return!Oe[e.id]}));(0,P.V)(Ie);var De=(0,L.X)(Ie);if(pe(A.E.ViewMyVideosLanding))return a.createElement(Y.V,null);function Te(){return{action:B.e.MyVideos.MY_VIDEOS,application:O.O.MY_VIDEOS,params:{cursor:e.cursor,previous:e.previous,type:e.typeFilter}}}return a.createElement(k.M.Provider,{value:be},a.createElement("div",{className:"px-3"},a.createElement(N.T,null),a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("h1",{className:"h2 mb-0"},a.createElement(h.x,{namespace:J,phrase:"header"})),a.createElement("div",null,a.createElement("div",{className:"d-sm-none"},a.createElement(Z.c,{canUpload:de(A.C.UploadVideo)})),a.createElement("div",{className:"ms-2 d-sm-inline-block d-none"},a.createElement(m.h,{svgName:S.vn.Search,appLink:{application:O.O.SEARCH,action:B.e.Search.HOME,params:{source:s.fi.MyVideos}},className:"btn btn-outline-dark me-2",onClick:fe,analyticsData:{},analyticsOptions:{entity:c.py.SearchResults,location:c.LZ.MyVideos,actionType:c.Vw.Click,descriptor:c.Bk.MyVideos}},a.createElement(h.x,{namespace:J,phrase:"searchMyVideos"})),a.createElement(m.h,{svgName:S.vn.Plus,appLink:{application:O.O.MY_VIDEOS,action:B.e.MyVideos.ADD_FOLDER,args:[null===(ie=Ee.data)||void 0===ie?void 0:ie.id]},className:"btn btn-outline-dark"},a.createElement(h.x,{namespace:J,phrase:"addFolder"}))))),a.createElement("hr",null),a.createElement(u.p,{handleDragEnd:me,dragOverlayComponent:x.U,source:Ee.data},a.createElement("div",null,!(null==Ae?void 0:Ae.hasCompleted)&&a.createElement(p.i,null),!!(null===(re=null==Ae?void 0:Ae.items)||void 0===re?void 0:re.length)&&a.createElement("div",{className:"mx-n2"},a.createElement(d.$,{folders:Ae.items,getAppLink:function(e){return{application:O.O.MY_VIDEOS,action:B.e.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,o.m.slugify(e.name)]}},expandFolders:!1,getFolderActions:function(e){return Le("folder",e)},drag:!0,drop:!0})),a.createElement(y.X,{allowBulkAction:!0,allowFilter:!0,checkboxHelper:De,getVideosBulkAction:Ve,locationContext:c.LZ.MyVideos,typeFilter:e.typeFilter,getAppLink:function(){return Te()}}),!!(null==xe?void 0:xe.length)&&a.createElement("div",{className:"position-relative ".concat(q.uploadingList)},xe.map((function(e){return a.createElement($.X,{item:e,onClickAlternate:Ne,onClickDelete:Be,key:e.id,allowBulkAction:!0})}))),function(){var t,n,i;return he.data&&Me.data?Ie.length||xe.length?a.createElement(a.Fragment,null,a.createElement(E.E4,{videos:Ie,yearGroups:ge.data,getVideoAppLink:R.W.getAppLink,getSubTextAppLink:function(e){return X.j.getSeriesAppLink(e.series)},setFavourite:ce,canFavourite:se,presentationAudiences:we.data,canRemovePrivateVideos:!0,allowBulkAction:!0,getVideosBulkAction:Ve,typeFilter:e.typeFilter,checkboxHelper:De,hasPermissions:de,drag:!0,imageCdnUrl:null===(t=ye.data)||void 0===t?void 0:t.imageCdnUrl,getPreviewQuestionsAppLink:function(e){return _.j.getPreviewQuestionsAppLink(e)},isPlugin:ve,getClassroomGuideAppLink:R.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:R.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:R.W.getResourceGuidanceAppLink}),!!(null===(i=null===(n=Me.data)||void 0===n?void 0:n.pagination)||void 0===i?void 0:i.cursors)&&a.createElement(v.t,{appLink:Te(),cursors:{next:Me.data.pagination.cursors.next,previous:e.cursor},buttonVariant:"outline-dark",className:"py-2 float-end",scrollTop:!0,prevHack:!0})):a.createElement(Y.K,null):a.createElement("div",{className:"mx-n2"},a.createElement(g.S,{allowBulkActions:!0}))}()))))}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var a=n(32735),i=n(11607),r=n(83914),l=n(83345),o=n(87348),c=n(35223),s="shared.upgradeFeedbackBanner";function u(){var e=(0,o.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?a.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},a.createElement(l.x,{namespace:s,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),a.createElement(i.L,{onClick:n},a.createElement(r.x,{svgName:c.vn.Close,className:"ms-2 svg-container"}))):a.createElement(a.Fragment,null)}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),i=n(20354),r=n(21750),l=n(31949),o=n(1575),c=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}function u(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 d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=i.a.useBasicFetch(l.N.currentUser()),m=a.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),f=v.map((function(e){return e.id})),h=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,l,o=[],c=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw i}}return o}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=h[0],y=h[1];a.useEffect((function(){if((null==f?void 0:f.length)&&p.hasCompleted){var e=[];f.forEach((function(t){m.current.has(t)||(e.push(t),m.current.add(t))})),e.length&&y((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[o.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=p.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(r.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==f?void 0:f.length,p.hasCompleted]),i.a.useBasicFetchAll(g)}}}]);
2
+ //# sourceMappingURL=6181-7a4fc8e1e1-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/6181-7a4fc8e1e1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/my-videos.scss","file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/MyVideosView.tsx","file:///app/packages/projects/lite/src/shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"uploadingList\":\"wg7hV\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SearchIndices, SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { DragDropMoveContext } from 'libs/shared/components/drag-drop-move/DragDropMoveContext';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoListActions } from 'libs/shared/components/video-list/video-list-actions/VideoListActions';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\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 { BulkCheckboxManager, useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BasePaginatedCollection, Config, CurrentUser, Folder, Library, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DragDropOverlay } from 'shared/components/drag-drop-overlay/DragDropOverlay';\nimport { UpgradeFeedbackBanner } from 'shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useDragDropMove } from 'apps/my-videos/hooks/useDragDropMove';\nimport { useUploadItems } from 'apps/my-videos/hooks/useUploadItems';\nimport { useGetFolderActions } from 'apps/my-videos/utils/getFolderActions';\nimport { MyVideosEmptyState, MyVideosPublicEmptyState } from 'apps/my-videos/views/my-videos/empty-state/MyVideosEmptyState';\nimport { useMyVideosViewActions, useMyVideosViewBulkActions } from 'apps/my-videos/views/my-videos/MyVideosViewUtils';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\nimport { UploadFileSelect } from 'apps/upload/components/upload-file-select/UploadFileSelect';\nimport { UploadingItem } from 'apps/upload/components/uploading-item/UploadingItem';\n\nimport styles from './my-videos.scss';\n\nconst namespace = 'default.myVideos';\n\ninterface MyVideosViewProps {\n cursor?: string;\n previous?: string;\n typeFilter?: SearchIndices[];\n}\n\nexport function MyVideosView(props: MyVideosViewProps): JSX.Element {\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { handleDragEnd } = useDragDropMove();\n const { isPlugin } = usePluginHelper();\n\n const { focusSearchBar } = useFocusSearchBar();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const workspace = Flight.useBasicFetch<Library>(\n currentUser.data?.isAuthenticated && UserRequests.workspace()\n );\n const folderId = workspace.data?.categoryTree?.id;\n const folders = useFetchAllChildFolders(folderId);\n \n const videoActions = useMyVideosViewActions();\n const getVideosAction = useMyVideosViewBulkActions(workspace.data?.id, workspace.data?.categoryTree.id);\n\n const audiences = usePresentationAudiences();\n const getFolderActions = useGetFolderActions();\n\n const getMyVideosRequest = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n if (!workspace.data)\n return null;\n\n // Delete the above when master supports the new assoc types.\n return MyVideosRequests.videos(folderId, cursor, typeFilter);\n };\n\n const fetchNext = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n return Flight.getFetch(dispatch)(getMyVideosRequest(cursor, typeFilter));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding) && currentUser.hasCompleted;\n\n const videos = Flight.useBasicFetch<BasePaginatedCollection<VideoTypes>>(\n shouldFetch && getMyVideosRequest(props.cursor, props.typeFilter)\n );\n\n useHandleObjectError(videos);\n\n const {\n uploadingVideos,\n onClickAlternate,\n onClickDelete,\n processingIds\n } = useUploadItems({ onRemove: fetchNext });\n\n const omittedVideos = videos.data?.data?.filter(v => !processingIds[v.id]);\n \n useVideoMixin(omittedVideos);\n\n const CheckboxHelper: BulkCheckboxManager = useBulkCheckboxManager(omittedVideos);\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding))\n return <MyVideosPublicEmptyState />;\n\n function getMyVideosAppLink(): Core.AppLink {\n return {\n action: Actions.MyVideos.MY_VIDEOS,\n application: AppChannels.MY_VIDEOS,\n params: { cursor: props.cursor, previous: props.previous, type: props.typeFilter }\n };\n }\n\n function getCursors(): Cursors {\n return { next: videos.data.pagination.cursors.next, previous: props.cursor };\n }\n \n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <UpgradeFeedbackBanner />\n <div className='d-flex justify-content-between'>\n <h1 className='h2 mb-0'><Text namespace={namespace} phrase='header' /></h1>\n <div>\n <div className='d-sm-none'>\n <UploadFileSelect canUpload={hasPermissions(PermissionName.UploadVideo)} />\n </div>\n <div className='ms-2 d-sm-inline-block d-none'>\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.MyVideos\n }\n }}\n className='btn btn-outline-dark me-2'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.MyVideos,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.MyVideos\n }}\n >\n <Text namespace={namespace} phrase='searchMyVideos' />\n </IconButton>\n <IconButton\n svgName={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.ADD_FOLDER,\n args: [workspace.data?.id]\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='addFolder' />\n </IconButton>\n </div>\n </div>\n </div>\n <hr />\n <DragDropMoveContext\n handleDragEnd={handleDragEnd}\n dragOverlayComponent={DragDropOverlay}\n source={workspace.data}>\n <div>\n {!folders?.hasCompleted && <PartialFolderList />}\n {!!folders?.items?.length &&\n <div className='mx-n2'>\n <FolderList\n folders={folders.items}\n getAppLink={(f: Folder) => ({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MY_VIDEOS_FOLDER,\n args: [ f.id, TextHelper.slugify(f.name) ]\n })}\n expandFolders={false}\n getFolderActions={f => getFolderActions('folder', f)}\n drag\n drop\n />\n </div>\n }\n <VideoListActions\n allowBulkAction\n allowFilter\n checkboxHelper={CheckboxHelper}\n getVideosBulkAction={getVideosAction}\n locationContext={LocationContext.MyVideos}\n typeFilter={props.typeFilter}\n getAppLink={() => getMyVideosAppLink()}\n />\n {!!uploadingVideos?.length && (\n <div className={`position-relative ${styles.uploadingList}`}>\n {uploadingVideos.map(uploadingVideo => (\n <UploadingItem\n item={uploadingVideo}\n onClickAlternate={onClickAlternate}\n onClickDelete={onClickDelete}\n key={uploadingVideo.id}\n allowBulkAction\n />\n ))}\n </div>\n )}\n {(() => {\n if (!currentUser.data || !videos.data)\n return <div className='mx-n2'><PartialVideoList allowBulkActions /></div>;\n\n if (!omittedVideos.length && !uploadingVideos.length)\n return <MyVideosEmptyState />;\n\n return (\n <>\n <VideoList\n videos={omittedVideos}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n canRemovePrivateVideos\n allowBulkAction\n getVideosBulkAction={getVideosAction}\n typeFilter={props.typeFilter}\n checkboxHelper={CheckboxHelper}\n hasPermissions={hasPermissions}\n drag\n imageCdnUrl={config.data?.imageCdnUrl}\n getPreviewQuestionsAppLink={interactive =>\n InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {!!videos.data?.pagination?.cursors && (\n <Pagination\n appLink={getMyVideosAppLink()}\n cursors={getCursors()}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n scrollTop\n prevHack\n />\n )}\n </>\n );\n })()}\n </div>\n </DragDropMoveContext>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.upgradeFeedbackBanner';\n\nexport function UpgradeFeedbackBanner(): JSX.Element {\n const { showFeedbackBanner, dismissFeedbackBanner } = useLiteUpgrade();\n\n if (!showFeedbackBanner)\n return <></>;\n\n return (\n <div className='alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center'>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ url: 'https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look' }}\n />\n <DivButton\n onClick={dismissFeedbackBanner}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n className='ms-2 svg-container'\n />\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}"],"names":["namespace","MyVideosView","props","useSetPageMetadata","title","LanguageService","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","handleDragEnd","useDragDropMove","isPlugin","usePluginHelper","focusSearchBar","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","config","ConfigRequests","workspace","folderId","categoryTree","id","folders","videoActions","getVideosAction","audiences","usePresentationAudiences","getMyVideosRequest","cursor","typeFilter","MyVideosRequests","shouldFetch","hasCompleted","videos","useUploadItems","onRemove","uploadingVideos","onClickAlternate","onClickDelete","processingIds","omittedVideos","filter","v","useVideoMixin","CheckboxHelper","useBulkCheckboxManager","getMyVideosAppLink","action","application","params","previous","type","VideoActionsContext","value","className","UpgradeFeedbackBanner","Text","phrase","UploadFileSelect","canUpload","PermissionName","IconButton","svgName","appLink","source","onClick","analyticsData","analyticsOptions","entity","location","actionType","descriptor","args","DragDropMoveContext","dragOverlayComponent","DragDropOverlay","PartialFolderList","items","length","FolderList","getAppLink","f","TextHelper","name","expandFolders","getFolderActions","drag","drop","VideoListActions","allowBulkAction","allowFilter","checkboxHelper","getVideosBulkAction","locationContext","map","uploadingVideo","UploadingItem","item","key","VideoList","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","video","SeriesAppLinkHelper","series","presentationAudiences","canRemovePrivateVideos","imageCdnUrl","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","next","buttonVariant","scrollTop","prevHack","MyVideosEmptyState","PartialVideoList","allowBulkActions","showFeedbackBanner","dismissFeedbackBanner","options","url","objects","hydratedVideos","Set","Array","isArray","o","getValidObjects","videoIds","request","setRequest","unhydratedVideos","forEach","current","has","push","add","r","newRequests","flightNamespace"],"sourceRoot":""}