@clickview/lite 0.49.0-rc.4 → 0.49.0-rc.5
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.
- package/dist/bundles.json +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1539-10d3590409-lite.chunk.js +2 -0
- package/dist/scripts/1539-10d3590409-lite.chunk.js.map +1 -0
- package/dist/scripts/194-d192c1e455-lite.chunk.js +2 -0
- package/dist/scripts/194-d192c1e455-lite.chunk.js.map +1 -0
- package/dist/scripts/2265-b6e093cf57-lite.chunk.js +2 -0
- package/dist/scripts/2265-b6e093cf57-lite.chunk.js.map +1 -0
- package/dist/scripts/{3042-32e303014a-lite.chunk.js → 3042-f9d67ac0a3-lite.chunk.js} +2 -2
- package/dist/scripts/3042-f9d67ac0a3-lite.chunk.js.map +1 -0
- package/dist/scripts/32-2abdd88255-lite.chunk.js +2 -0
- package/dist/scripts/32-2abdd88255-lite.chunk.js.map +1 -0
- package/dist/scripts/{3854-9e1422da99-lite.chunk.js → 3854-49852130b4-lite.chunk.js} +2 -2
- package/dist/scripts/3854-49852130b4-lite.chunk.js.map +1 -0
- package/dist/scripts/{4060-77244f1012-lite.chunk.js → 4060-4ab06f9f5e-lite.chunk.js} +2 -2
- package/dist/scripts/4060-4ab06f9f5e-lite.chunk.js.map +1 -0
- package/dist/scripts/4113-81b4e4a350-lite.chunk.js +2 -0
- package/dist/scripts/4113-81b4e4a350-lite.chunk.js.map +1 -0
- package/dist/scripts/{4291-4ea61b3610-lite.chunk.js → 4291-72cf3ca37d-lite.chunk.js} +2 -2
- package/dist/scripts/4291-72cf3ca37d-lite.chunk.js.map +1 -0
- package/dist/scripts/{1539-df427c5b98-lite.chunk.js → 6723-b34bba9ac1-lite.chunk.js} +2 -2
- package/dist/scripts/6723-b34bba9ac1-lite.chunk.js.map +1 -0
- package/dist/scripts/7268-42c8c2cdb5-lite.chunk.js +2 -0
- package/dist/scripts/7268-42c8c2cdb5-lite.chunk.js.map +1 -0
- package/dist/scripts/{9437-d9c671743c-lite.chunk.js → 9437-2bb4c632ca-lite.chunk.js} +2 -2
- package/dist/scripts/9437-2bb4c632ca-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-0f5cfcd378.min.js → bundle-854cdefb2d.min.js} +3 -3
- package/dist/scripts/bundle-854cdefb2d.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1539-df427c5b98-lite.chunk.js.map +0 -1
- package/dist/scripts/194-918a27a783-lite.chunk.js +0 -2
- package/dist/scripts/194-918a27a783-lite.chunk.js.map +0 -1
- package/dist/scripts/2265-0174bf9c8c-lite.chunk.js +0 -2
- package/dist/scripts/2265-0174bf9c8c-lite.chunk.js.map +0 -1
- package/dist/scripts/3042-32e303014a-lite.chunk.js.map +0 -1
- package/dist/scripts/32-cf9b8ba599-lite.chunk.js +0 -2
- package/dist/scripts/32-cf9b8ba599-lite.chunk.js.map +0 -1
- package/dist/scripts/3854-9e1422da99-lite.chunk.js.map +0 -1
- package/dist/scripts/4060-77244f1012-lite.chunk.js.map +0 -1
- package/dist/scripts/4113-c75e9be23a-lite.chunk.js +0 -2
- package/dist/scripts/4113-c75e9be23a-lite.chunk.js.map +0 -1
- package/dist/scripts/4291-4ea61b3610-lite.chunk.js.map +0 -1
- package/dist/scripts/6723-ece2125bab-lite.chunk.js +0 -2
- package/dist/scripts/6723-ece2125bab-lite.chunk.js.map +0 -1
- package/dist/scripts/7268-a8484f7697-lite.chunk.js +0 -2
- package/dist/scripts/7268-a8484f7697-lite.chunk.js.map +0 -1
- package/dist/scripts/9437-d9c671743c-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-0f5cfcd378.min.js.map +0 -1
- /package/dist/scripts/{bundle-0f5cfcd378.min.js.LICENSE.txt → bundle-854cdefb2d.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3854],{71020:(e,t,a)=>{a.d(t,{_:()=>d});var n=a(32735),r=a(80247),i=a(34152),l=a(83914),o=a(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function d(e){var t,a,d=(t=(0,i.YD)(),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(t,a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(t,a)||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.")}()),u=d[0],m=d[1];return n.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),n.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:u},e.isFetching?n.createElement(r.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):n.createElement(l.x,{svgName:o.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)}}))}d.defaultProps={fetchOnScroll:!1}},21473:(e,t,a)=>{a.d(t,{M:()=>f});var n=a(32735),r=a(23481),i=a(65858),l=a(11518),o=a(9098),c=a(16714),s=a(58704),d=a(22902),u=a(59598),m=a(74237);function p(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?v(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var g="shared.playPageResources";function f(e){var t=(0,d.T)().hasPermissions,a=function(e,t){var a,n,r,i,l=null!==(n=null===(a=e.resources)||void 0===a?void 0:a.data)&&void 0!==n?n:[],o=null!==(i=null===(r=e.links)||void 0===r?void 0:r.data)&&void 0!==i?i:[];if(!t)return[].concat(p(l),p(o));var c=l.filter((function(e){var t;return["additional-materials","student-activity"].includes(null===(t=e.metadata)||void 0===t?void 0:t.resourceType)}));return[].concat(p(c),p(o))}(e.video,t(c.C.StudentExperience));return a.length?n.createElement("section",{id:u.K.Resources,className:"pb-4",ref:e.containerRef},n.createElement(l.kM,{name:r.T.getPhrase(g,"resources",{count:a.length}),contents:s.z.PlayPageResources,collection:a,prefetched:!0,childComponent:o.R,extraChildComponentProps:{imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.resourceThumbnailFallbackUrl,actionBehaviour:e.canViewResources?"normal":"public",location:"play-page",titlePosition:"below",onClickDownload:e.canViewResources?function(t){m.T.downloadResource(t,e.analyticsData,{location:i.LZ.PlayPage,actionType:i.Vw.Download,entity:i.py.Resource})}:null},getChildAppLink:e.getAppLink,analyticsOptions:e.canViewResources?{}:{workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:e.analyticsData})):n.createElement(n.Fragment,null)}},18913:(e,t,a)=>{a.d(t,{o:()=>b});var n=a(32735),r=a(42648),i=a(11607),l=a(83345),o=a(93264);const c={poiEntry:"Nmm9o",poiText:"c75aW",public:"R689i",poiTimeStamp:"Wad94"};var s="shared.pointsOfInterestList";function d(e){return n.createElement("div",null,n.createElement("h2",{className:"h6 my-2"},n.createElement(l.x,{namespace:s,phrase:"heading"})),n.createElement("div",null,e.pointsOfInterest.map((function(t){var a=o.T.ToDisplayDuration(1e3*t.startTime);return e.suppressInteractivity?n.createElement("div",{key:t.startTime,className:"d-flex ".concat(c.poiEntry," mb-2")},n.createElement("span",{className:"d-flex rounded-pill justify-content-center align-items-center fw-semibold ".concat(c.poiTimeStamp)},a),n.createElement("div",{className:"".concat(c.public)},t.description)):n.createElement(i.L,{key:t.startTime,className:"d-flex ".concat(c.poiEntry," mb-2 cursor-pointer"),onClick:function(){return e.onClickPoiItem(t.startTime)}},n.createElement("div",{className:"d-flex rounded-pill justify-content-center align-items-center fw-semibold ".concat(c.poiTimeStamp)},a),n.createElement("div",{className:"ms-2 ".concat(c.poiText)},t.description))}))))}var u=a(87311),m=a(91743),p=a(44829),v=a(31908),g=a(39347);const f={learningIntention:"T2LIU"};var h="shared.videoAtAGlance",y=350;function b(e){var t,a=(0,g.W)(e.video),i=(0,g.N)(e.video,a),o=function(){var t,a,n,r;return v.M.isInteractive(e.video)||!(null===(a=null===(t=e.video.tags)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)?null:null===(r=null===(n=e.video.tags)||void 0===n?void 0:n.data)||void 0===r?void 0:r.filter((function(e){return e.tagType===p.Q.Pedagogy||e.tagType===p.Q.Skill}))}();return a?n.createElement("div",{className:"rounded border mb-4 bg-white"},n.createElement(r.ZP,{autoHeight:!0,autoHeightMax:null!==(t=e.height)&&void 0!==t?t:y},n.createElement("div",{className:"px-3 px-3 pt-3 pb-2"},n.createElement("h2",{className:"h6 mb-2"},n.createElement(l.x,{namespace:h,phrase:"learningIntention"})),n.createElement("div",{className:"".concat(f.learningIntention," mb-3")},n.createElement("div",{dangerouslySetInnerHTML:{__html:i}})),!!(null==o?void 0:o.length)&&n.createElement("div",{className:"mb-1"},n.createElement(m.P,Object.assign({tags:o},u.G.getTagActionProps(e.getTagAppLink,e.suppressInteractivity),{className:"mt-2"}))),!!e.pointsOfInterest.length&&n.createElement(d,{pointsOfInterest:e.pointsOfInterest,suppressInteractivity:e.suppressInteractivity,onClickPoiItem:function(t){e.setStartTime(t)}})))):n.createElement(n.Fragment,null)}},39347:(e,t,a)=>{a.d(t,{N:()=>o,W:()=>c});var n=a(32735),r=a(16367);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var l=/\[\]\(cv:\/\/poi\?id=\d+\)\n*/g;function o(e,t){var a,o,c,s=(o=(0,n.useState)(""),c=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(o,c)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}(o,c)||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=s[0],u=s[1];return(0,n.useEffect)((function(){if(t){var a=(n=e.glance,i=n.content.replace(l,""),r(i));u(a)}var n,i}),[null===(a=e.glance)||void 0===a?void 0:a.content,t]),d}function c(e){var t,a;return(null===(t=e.glance)||void 0===t?void 0:t.content)&&"text/markdown"===(null===(a=e.glance)||void 0===a?void 0:a.format)}},92805:(e,t,a)=>{a.d(t,{H:()=>r});var n=a(32735);function r(){return n.createElement("div",{className:"p-3 mb-3 border rounded"},n.createElement("div",{className:"row"},n.createElement("div",{className:"pe-3 col-md-7 border-right"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"4.5rem"}}),n.createElement("div",{className:"partial-loading-background",style:{height:"1.5rem",width:"15rem"}})),n.createElement("div",{className:"col-md-5 ps-md-3 pt-3 pt-md-0"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"7rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"10rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3.5rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4.5rem"}}))))}},74696:(e,t,a)=>{a.d(t,{S:()=>s});var n=a(32735),r=a(68050),i=a(69111),l=a(9977),o=a(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,a){return n.createElement("div",{className:"d-flex",key:a},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(d,Object.assign({},e)))})))}function d(e){var t=(0,o.k)(),a="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return n.createElement(r.Z,{className:"".concat(a?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(a?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(r.Z,null,!!s&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},n.createElement("div",{className:"partial-loading-background ".concat(a?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:a?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},47862:(e,t,a)=>{a.d(t,{K:()=>s});var n=a(32735),r=a(36848),i=a(83345),l=a(22843),o=a(3332),c=a(68626);var s=n.memo((function(e){var t,a,s=e.data,d=e.thumbnailSize,u=e.preloadImage,m=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),p=null===(a=null===(t=s._timepoints)||void 0===t?void 0:t.value)||void 0===a?void 0:a.length;return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},n.createElement(o.u,{type:"cosmetic",textPosition:c.z.Independent,video:s,appLink:e.getAppLink(s),imageOptions:{size:d},preload:u,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl}),n.createElement("div",{className:"mt-2"},n.createElement(l.h,Object.assign({},e,{video:s,appLink:e.getAppLink(s)}))),n.createElement("div",{className:"mt-1"},n.createElement(r.F,{appLink:m,className:"cursor-pointer"},n.createElement(i.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions",options:{count:p,smartCount:p}}))))}))},9098:(e,t,a)=>{a.d(t,{s:()=>P,R:()=>S});var n=a(32735),r=a(39202),i=a(49985),l=a(65858),o=a(36848),c=a(11607),s=a(86073),d=a(54610),u=a(1164),m=a(67453),p=a(45778),v=a(75163);const g={imageStyle:"FFgf3",imageTypeResource:"z4O5p",fallBackImage:"Xy4zX"};var f={width:200,resizeType:d.Nq.Cover};function h(e){var t;return p.G.isResource(e)?e.metadata.type===u.L.Pdf||(null===(t=e.pdf)||void 0===t?void 0:t.url)?d.__.Pdf:d.__.Thumbnails:d.__.Link}function y(e){var t,a,r,i=null,l=0;p.G.isResource(e.resource)&&(i=e.resource.metadata,l=null!==(r=null===(a=null===(t=e.resource.thumbnail)||void 0===t?void 0:t.metadata)||void 0===a?void 0:a.rotation)&&void 0!==r?r:0);var o=function(e,t){var a,n,r,i=h(t);if("thumbnail"in t&&(null===(a=t.thumbnail)||void 0===a?void 0:a.url))return m.j.createUrl(null===(n=t.thumbnail)||void 0===n?void 0:n.url,Object.assign({},f));var l=s._.safeUrlConcat(e,"/v1/previews");return p.G.isResource(t)?i===d.__.Pdf?t.metadata.type===u.L.Pdf?m.j.createResourceImage(l,t.url,Object.assign({},f)):m.j.createResourceImage(l,null===(r=t.pdf)||void 0===r?void 0:r.url,Object.assign({},f)):t.metadata.type!==u.L.Zip?m.j.createUrl(t.url,{size:d.h2.Medium,resizeType:d.Nq.Cover}):"/images/zip-resource.png":m.j.createResourceImage(l,t.url,Object.assign({},f))}(e.imageCdnUrl,e.resource);return n.createElement(v.Z,{data:o,imageType:h(e.resource),imageStyle:{transform:"rotate(".concat(l,"deg)")},alt:e.resource.name,errorFallbackImageSrc:e.imageErrorFallbackUrl,errorFallbackImageClassName:g.fallBackImage,imageClassName:(null==i?void 0:i.type)===u.L.Image?"".concat(g.imageTypeResource," ").concat(g.imageStyle):"",preload:e.preloadImage,preventLoad:!e.preloadImage})}var b=a(83914),E=a(60995),k=a(76177),N=a(61150),C=a(71063),w=a(4594),I=a(79967),A={getResourceTypeName:function(e){switch(e){case"additional-materials":return"Additional Materials";case"atom-guide":return"ATOM Guide";case"teacher-pack":return"Teacher Pack";case"student-activity":return"Student Activity";default:return"N/A"}}},T=a(35223);const O={imageStyle:"I9E5O",item:"tqUFn",dashboard:"o7j7p",playPage:"V2RwX",aspectRatio:"OnJDH",outerContainer:"CIFy7",innerContainer:"oUZPD",actions:"jzGAm",titleBelow:"Cpjs3",thumbnailContainer:"EDiGi",titleAbove:"e9ejn",teacherPack:"_tdVE",text:"g5NWS",hoverState:"xRYhX",atomGuide:"X39wU",studentActivity:"X9pMl",additionalMaterials:"qRVUo",userUploaded:"_18JaV",imageTypeResource:"KYtZL",download:"fbb_e"};function P(e){var t,a,r,i,l=null;"metadata"in e.data&&(l=e.data.metadata);var o=p.G.isType(e.data,w.E.Resource);return n.createElement(n.Fragment,null,n.createElement("div",{className:O.aspectRatio},n.createElement("div",{className:O.outerContainer},n.createElement("div",{className:function(t){var a,n="\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ".concat(function(e){switch(e){case"atom-guide":return O.atomGuide;case"student-activity":return O.studentActivity;case"teacher-pack":return O.teacherPack;case"additional-materials":return O.additionalMaterials;default:return O.userUploaded}}(t)," ").concat(O.innerContainer);return(null===(a=e.theme)||void 0===a?void 0:a.containerClass)?n+=" ".concat(e.theme.containerClass):n+=" pt-3 px-3",e.applyHoverState&&(n+=" ".concat(O.hoverState)),n}(null==l?void 0:l.resourceType)},"above"===e.titlePosition&&n.createElement(k.u,{title:e.data.name},n.createElement("h3",{className:"text-center text-break h5 mb-3 ".concat(O.text)},n.createElement("span",{className:"clamp-1"},e.data.name))),n.createElement("div",{className:"\n ".concat(null!==(a=null===(t=e.theme)||void 0===t?void 0:t.thumbnailContainerClass)&&void 0!==a?a:""," w-75 overflow-hidden \n ").concat(O.thumbnailContainer," ").concat("above"===e.titlePosition?O.titleAbove:""," \n ").concat(O.imageStyle,"\n ")},n.createElement(y,{resource:e.data,imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.imageErrorFallbackUrl,preloadImage:e.preloadImage})),o&&e.onClickDownload&&"normal"===e.actionBehaviour&&n.createElement("div",{className:O.actions},n.createElement(c.L,{onClick:function(t){t.preventDefault(),t.stopPropagation(),p.G.isResource(e.data)&&"function"==typeof e.onClickDownload&&e.onClickDownload(e.data)},className:"".concat(O.download," d-flex align-items-center justify-content-center")},n.createElement(b.x,{svgName:T.vn.Download}))),!e.hideTypeBadge&&o&&n.createElement(N.y,{typeId:w.E.Resource})))),"below"===e.titlePosition&&p.G.isType(e.data,w.E.Resource)&&n.createElement("div",{className:"mt-1 ".concat(O.titleBelow)},!!(null===(i=null===(r=e.data)||void 0===r?void 0:r.metadata)||void 0===i?void 0:i.resourceType)&&n.createElement(E.m,null,A.getResourceTypeName(e.data.metadata.resourceType)),n.createElement("h3",{className:"h6 clamp-2"},e.data.name)))}P.defaultProps={preloadImage:!0,actionBehaviour:"normal"};var S=n.memo((function(e){var t,a,c,s,d=(t=e.data,a=e.actionBehaviour,s=(0,I.k)(),"public"===a||!s.xs&&!s.sm&&"resource"===t.type&&"metadata"in t&&(t.metadata.type===u.L.Image||(t.metadata.type===u.L.Pdf?!!t.url:!!(null===(c=t.pdf)||void 0===c?void 0:c.url)))),m=Object.assign(Object.assign({},e.analyticsData),e.data),p=Object.assign(Object.assign({},e.analyticsOptions),{actionType:l.Vw.Click,entity:e.data.typeId===w.E.Resource?l.py.Resource:l.py.Link});function v(){i.k.logUserAction(m,p)}var g,f=Object.assign(Object.assign({},e),{applyHoverState:d||!!e.data.url});return n.createElement("div",{className:"px-1 flex-shrink-0 ".concat(O.item," ").concat("play-page"===e.location?O.playPage:O.dashboard," ").concat(C.M.RESOURCE_ITEM_SELECTOR)},(g="d-block ".concat("above"===e.titlePosition?"no-decoration":""),"link"===e.data.type?n.createElement("a",{href:e.data.url,target:"_blank",className:g,onClick:v},n.createElement(P,Object.assign({},f))):d?"public"===e.actionBehaviour?n.createElement("div",{className:"".concat(g," cursor-pointer d-inline"),onClick:function(){v(),r.C$.trigger(e.getAppLink(e.data))}},n.createElement(P,Object.assign({},f))):n.createElement(o.F,{appLink:e.getAppLink(e.data),className:g,analyticsData:m,analyticsOptions:p},n.createElement(P,Object.assign({},f))):e.data.url?n.createElement("a",{href:e.data.url,className:g,onClick:v},n.createElement(P,Object.assign({},f))):n.createElement("div",{className:g},n.createElement(P,Object.assign({},f)))))}))},28907:(e,t,a)=>{a.d(t,{r:()=>i});var n=a(99940),r=a(97395),i={theme:function(e){return{url:"/api/domain/v1/themes/".concat(e),key:"themes:".concat(e)}},themeImages:function(e,t){return{url:r._.urlBuilder("/api/domain/v1/themes",{name:e,type:t}),key:"themes:".concat(e,":").concat(t)}},themes:function(e){var t="/api/domain/v1/themes",a="themes";return e&&(t+="?type=".concat(e),a+=":type:".concat(e)),{url:t,key:a,formatData:function(e){return e.sort((function(e,t){return e.name.localeCompare(t.name)}))}}},createTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes",key:"theme",data:e,type:n.k.POST,invalidationKeys:"themes",success:t,error:a,always:r}},updateTheme:function(e,t,a,r,i){return{url:"/api/domain/v1/themes/".concat(e),key:"update:theme:".concat(e),data:t,type:n.k.PUT,success:a,error:r,always:i}},deleteTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes/".concat(e),key:"delete:theme:".concat(e),type:n.k.DELETE,invalidationKeys:"themes",success:t,error:a,always:r}}}},94631:(e,t,a)=>{a.d(t,{D:()=>r});var n=a(32735);function r(e){var t=n.useRef();return n.useEffect((function(){t.current=e})),t.current}},9907:(e,t,a)=>{a.d(t,{P:()=>l});var n=a(32735),r=a(94631);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var l=function(e,t){var a,l,o=(a=n.useState(!1),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(a,l)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}(a,l)||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.")}()),c=o[0],s=o[1],d=(0,r.D)(t),u=t;n.useLayoutEffect((function(){if(!c||d!==u){var t=e.find((function(e){return e&&(null==e?void 0:e.id)===u}));if(t){var a=t.getBoundingClientRect();window.scrollBy({top:a.top-80,behavior:"smooth"}),c||s(!0)}}}),[e,d,u,c])}},74237:(e,t,a)=>{a.d(t,{T:()=>o});var n=a(97395),r=a(49985),i=a(65858),l=null,o={getVideoDownloadUrl:function(e,t){return n._.safeUrlConcat(n._.makeHttps(e),"/download?token=".concat(t))},downloadResource:function(e,t,a){var n,o=l;l||(o=l=document.createElement("iframe"),document.body.appendChild(o),o.style.display="none"),o.src=e.url,r.k.logUserAction(Object.assign({id:null==e?void 0:e.id,name:null==e?void 0:e.name,resourceType:null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.resourceType},t),Object.assign({actionType:i.Vw.Download,entity:i.py.Resource,workflowPhase:i.eu.Complete},a))}}},26492:(e,t,a)=>{a.d(t,{T:()=>d});var n=a(32735),r=a(23481),i=a(65858),l=a(83914),o=a(4594),c=a(35223),s="shared.playPage";function d(e){var t=r.T.encloseNamespace(s),a=function(e){switch(e){case o.E.Video:return"video";case o.E.Clip:return"clip";case o.E.Interactive:return"interactive";default:return""}}(e.typeId);return n.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},n.createElement(l.x,{svgName:c.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:a})),(!e.hasStudentExperience||a===i.py.Video)&&n.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(a,"s")}))))}},47938:(e,t,a)=>{a.d(t,{W:()=>m});var n=a(32735),r=a(36848),i=a(83914),l=a(83345),o=a(5345),c=a(26361),s=a(14070),d=a(97291),u="shared.playPage";function m(e){var t,a;if(!(null===(a=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===a?void 0:a.length)||!e.yearGroups||!e.canManageVideoAccess)return n.createElement(n.Fragment,null);if(c.l.getWeightedRestriction(e.restrictions.value).type!==o.c.Custom)return n.createElement(n.Fragment,null);var m=c.l.mapRestrictionToClass(e.restrictions),p="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return n.createElement("div",{className:p},n.createElement("div",{className:"d-flex align-items-center"},n.createElement(i.x,{svgName:c.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),n.createElement("span",{className:"ps-1"},c.l.mapRestrictionToText(e.restrictions,e.yearGroups))),n.createElement(r.F,{appLink:{application:d.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},n.createElement(l.x,{namespace:u,phrase:"approve"})))}},76162:(e,t,a)=>{a.d(t,{O:()=>f});var n=a(32735),r=a(23481),i=a(28400),l=a(11518),o=a(22843),c=a(3332),s=a(68626);var d=n.memo((function(e){var t=e.data,a=e.thumbnailSize,r=e.preloadImage,i=e.getAppLink;return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("hzP5u")},n.createElement(c.u,{type:"cosmetic",textPosition:s.z.Independent,video:t,appLink:i(t),imageOptions:{size:a},preload:r,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,imageCdnUrl:e.imageCdnUrl,hideDuration:!1}),n.createElement("div",{className:"mt-2"},n.createElement(o.h,Object.assign({},e,{video:t,appLink:e.getAppLink(t)}))))})),u=a(58704),m=a(31908),p=a(14070),v=a(97291),g="shared.playPageClips";function f(e){var t;if(!e.canViewClips||!(null===(t=e.clips)||void 0===t?void 0:t.length))return n.createElement(n.Fragment,null);var a=m.M.isVideo(e.video);return n.createElement("section",{className:"pb-4"},n.createElement(l.kM,{name:r.T.getPhrase(g,a?"clips":"otherClips",{count:e.clips.length}),contents:u.z.Clips,collection:e.clips,prefetched:!0,getChildAppLink:function(e){return{application:v.O.CLIPS,action:p.e.Clips.PLAY_CLIP,args:[e.id,i.m.slugify(e.name)]}},appLink:m.M.isVideo(e.video)?{action:p.e.Videos.VIDEO_CLIPS,application:v.O.VIDEOS,args:[e.video.id]}:{action:p.e.Clips.CLIP_CLIPS,application:v.O.CLIPS,args:[e.video.id]},childComponent:d,extraChildComponentProps:{yearGroups:e.yearGroups,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite},analyticsData:e.analyticsData}))}},31261:(e,t,a)=>{a.d(t,{J:()=>v});var n=a(32735),r=a(23481),i=a(28400),l=a(11518),o=a(47862),c=a(58704),s=a(59598),d=a(31908),u=a(14070),m=a(97291),p="shared.playPageInteractives";function v(e){var t,a;return e.canViewInteractives&&(null===(a=null===(t=e.video.interactives)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)?n.createElement("section",{className:"pb-4",ref:e.containerRef,id:s.K.Interactives},n.createElement(l.kM,{name:r.T.getPhrase(p,"interactives",{count:e.video.interactives.data.length}),contents:c.z.Interactives,collection:e.video.interactives.data,prefetched:!0,getChildAppLink:function(e){return{application:m.O.INTERACTIVES,action:u.e.Interactives.VIEW_INTERACTIVE,args:[e.id,i.m.slugify(e.name)]}},appLink:d.M.isVideo(e.video)?{action:u.e.Videos.VIDEO_INTERACTIVES,application:m.O.VIDEOS,args:[e.video.id]}:{action:u.e.Clips.CLIP_INTERACTIVES,application:m.O.CLIPS,args:[e.video.id]},childComponent:o.K,extraChildComponentProps:{yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,imageCdnUrl:e.imageCdnUrl,questionsAppLink:{application:m.O.INTERACTIVES,action:u.e.Interactives.PREVIEW_QUESTIONS}},analyticsData:e.analyticsData})):n.createElement(n.Fragment,null)}},91479:(e,t,a)=>{a.d(t,{v:()=>y});var n=a(32735),r=a(65858),i=a(83657),l=a(36848),o=a(40955),c=a(18559),s=a(17464),d=a(83345),u=a(38647),m=a(11882),p=a(80143),v=a(31908),g=a(10671);const f={series:"wTlJJ",badgeListContainer:"Vaout"};var h="shared.playPage";function y(e){var t,a,y,b,E,k,N=(0,p.n)(null===(t=e.media.subjectPresentationAudiences)||void 0===t?void 0:t.data,e.audiences),C=n.useRef(null),w=n.useRef(null),I=v.M.isVideo(e.media)&&!!(null===(a=e.media.rating)||void 0===a?void 0:a.value)||v.M.isVideo(e.media)&&!!e.media.productionYear||!!(null===(b=null===(y=e.media.subjectPresentationAudiences)||void 0===y?void 0:y.data)||void 0===b?void 0:b.length),A=(0,g._)({location:g.i.PlayPage,shareId:e.shareId}),T=!!e.originalVideoAppLink&&v.M.isClip(e.media)&&v.M.canViewOriginalVideo(e.media);return n.createElement("section",{className:"mb-3 position-relative",ref:C},n.createElement("div",{className:"d-inline-block w-100",ref:w},e.featureAccess.canNavigate&&n.createElement("div",{className:"ms-2 float-end"},n.createElement(i.e,{actions:A.getVideoActions(e.media),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return A.fetchMoreActions(e.media)}})),!!v.M.isVideo(e.media)&&n.createElement(m.$,{type:"series",video:e.media,appLink:null===(E=e.getSeriesAppLink)||void 0===E?void 0:E.call(e,e.media.series),className:"".concat(f.series," text-truncate mw-100"),analyticsOptions:{location:r.LZ.PlayPage}}),n.createElement("h1",{className:"h4 mb-2 mw-100"},n.createElement("span",{className:"align-self-center"},e.media.name),n.createElement(u.m,{tooltipPlacement:"right",className:"d-inline-block ps-1",video:e.media,yearGroups:e.yearGroups})),I&&n.createElement(s.c,{className:f.badgeListContainer},n.createElement(o.P,{audience:N,className:"bg-white text-dark",border:"dark"}),v.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.Rating,data:e.media.rating}),v.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.ProductionYear,data:e.media.productionYear}))),v.M.isClip(e.media)&&T&&n.createElement("p",{className:"clamp-1"},n.createElement(d.x,{namespace:h,phrase:"viewOriginal"})," ",n.createElement(l.F,{className:"info-link",appLink:e.originalVideoAppLink},null===(k=e.media._parentVideo)||void 0===k?void 0:k.name)))}},81024:(e,t,a)=>{a.d(t,{S:()=>g});var n=a(32735),r=a(23481),i=a(65858),l=a(36848),o=a(83914),c=a(54610),s=a(67453),d=a(35223),u=a(31908);const m="LL7My",p="QoLgZ";var v=r.T.encloseNamespace("shared.playerPlaceholder");function g(e){switch(e.type){case"pip":return n.createElement(f,Object.assign({},e));case"public":return n.createElement(h,Object.assign({},e));default:return n.createElement(n.Fragment,null)}}var f=function(e){var t,a;return n.createElement("div",{className:"position-relative responsive-img ".concat(p),style:{backgroundImage:"url('".concat(null!==(a=null===(t=u.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==a?a:"","')")}},n.createElement("p",{className:"m-0 text-white h3 ".concat("BcnSH")},v("playingPiP")),n.createElement("div",{className:m}))},h=function(e){var t,a,r=s.j.createUrl(null!==(a=null===(t=u.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==a?a:"",{size:c.h2.Large});return n.createElement("div",{className:"position-relative responsive-img ".concat(p),style:{backgroundImage:"url('".concat(r,"')")}},n.createElement(l.F,{appLink:e.appLink,analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlayPage,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:{}},n.createElement(o.x,{svgName:d.vn.PlayCircle,className:"x_1f6"}),n.createElement("div",{className:m})))}},78166:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(32735),r=a(71020),i=a(83345),l=a(74696),o=a(13231),c=a(51365),s=a(22902),d=a(31908),u=a(10671),m=a(10741),p=a(82431),v="shared.relatedVideos";function g(e){var t,a,g=(0,u._)({location:u.i.VideoItem}),f=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return n.createElement(n.Fragment,null);if(e.relatedVideos.hasError)return n.createElement(n.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(a=e.relatedVideos.videos)||void 0===a?void 0:a.length))return n.createElement(n.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return n.createElement(n.Fragment,null);var h=!d.M.isInteractive(e.currentVideo);return n.createElement(c.M.Provider,{value:g},n.createElement("h2",{className:"h4 mb-0"},n.createElement(i.x,{namespace:v,phrase:h?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?n.createElement(o.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return p.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:f,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return m.j.getPreviewQuestionsAppLink(e)}}):n.createElement(l.S,null),e.relatedVideos.hasMore&&n.createElement(r._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext}))}},35014:(e,t,a)=>{a.d(t,{I:()=>d});var n=a(20354),r=a(16714),i=a(12754),l=a(39151),o=a(22902),c=a(15311),s=a(11387);function d(){var e=(0,o.T)(),t=e.hasPermissions,a=e.hasLocalPermissions,d=(0,c.r)().hasProduct,u=n.a.useBasicFetch(l.L.config()),m=d(i.x.Primary);return{canWatchPublicly:function(e){var t,a;return!!e&&!!(null===(a=null===(t=u.data)||void 0===t?void 0:t.allowedPublicVideos)||void 0===a?void 0:a[e])},canViewGlance:t(r.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:m&&t(r.C.ViewVideoInteractives),canViewClips:m&&t(r.C.ViewVideoClips),canViewCurriculumLinks:t(r.C.ViewCurriculums),canUseActions:a(r.E.UseVideoActions),canViewPublicLayout:!a(r.E.WatchVideos)&&s.C.hasRegionPrefix(),canViewResourceItems:a(r.E.ViewVideoResourceItems),canNavigate:m}}},97816:(e,t,a)=>{a.d(t,{V:()=>d});var n=a(32735),r=a(20354),i=a(21750),l=a(31949),o=a(1575);function c(e,t){if(e){if("string"==typeof e)return s(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function d(e){var t,a,d,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(l.N.currentUser()),p=n.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}))),g=(a=n.useState([]),d=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(a,d)||c(a,d)||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=g[0],h=g[1];n.useEffect((function(){var e;if((null==v?void 0:v.length)&&(null===(e=m.data)||void 0===e?void 0:e.isAuthenticated)){var t=[];v.forEach((function(e){p.current.has(e)||(t.push(e),p.current.add(e))})),t.length&&h((function(e){return[].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)||c(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.")}()}(e),[i.x.hasCurriculumLinks(t,null,u.flightNamespace),o.R.videoMixinAssocs(t,u.flightNamespace)])}))}}),[null==v?void 0:v.length,null===(t=m.data)||void 0===t?void 0:t.isAuthenticated]),r.a.useBasicFetchAll(f)}}}]);
|
|
2
|
-
//# sourceMappingURL=3854-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3854],{71020:(e,t,a)=>{a.d(t,{_:()=>d});var n=a(32735),r=a(80247),i=a(34152),l=a(83914),o=a(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function d(e){var t,a,d=(t=(0,i.YD)(),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(t,a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(t,a)||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.")}()),u=d[0],m=d[1];return n.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),n.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:u},e.isFetching?n.createElement(r.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):n.createElement(l.x,{svgName:o.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)}}))}d.defaultProps={fetchOnScroll:!1}},21473:(e,t,a)=>{a.d(t,{M:()=>f});var n=a(32735),r=a(23481),i=a(65858),l=a(11518),o=a(9098),c=a(16714),s=a(58704),d=a(22902),u=a(59598),m=a(74237);function p(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?v(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var g="shared.playPageResources";function f(e){var t=(0,d.T)().hasPermissions,a=function(e,t){var a,n,r,i,l=null!==(n=null===(a=e.resources)||void 0===a?void 0:a.data)&&void 0!==n?n:[],o=null!==(i=null===(r=e.links)||void 0===r?void 0:r.data)&&void 0!==i?i:[];if(!t)return[].concat(p(l),p(o));var c=l.filter((function(e){var t;return["additional-materials","student-activity"].includes(null===(t=e.metadata)||void 0===t?void 0:t.resourceType)}));return[].concat(p(c),p(o))}(e.video,t(c.C.StudentExperience));return a.length?n.createElement("section",{id:u.K.Resources,className:"pb-4",ref:e.containerRef},n.createElement(l.kM,{name:r.T.getPhrase(g,"resources",{count:a.length}),contents:s.z.PlayPageResources,collection:a,prefetched:!0,childComponent:o.R,extraChildComponentProps:{imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.resourceThumbnailFallbackUrl,actionBehaviour:e.canViewResources?"normal":"public",location:"play-page",titlePosition:"below",onClickDownload:e.canViewResources?function(t){m.T.downloadResource(t,e.analyticsData,{location:i.LZ.PlayPage,actionType:i.Vw.Download,entity:i.py.Resource})}:null},getChildAppLink:e.getAppLink,analyticsOptions:e.canViewResources?{}:{workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:e.analyticsData})):n.createElement(n.Fragment,null)}},18913:(e,t,a)=>{a.d(t,{o:()=>b});var n=a(32735),r=a(42648),i=a(11607),l=a(83345),o=a(93264);const c={poiEntry:"Nmm9o",poiText:"c75aW",public:"R689i",poiTimeStamp:"Wad94"};var s="shared.pointsOfInterestList";function d(e){return n.createElement("div",null,n.createElement("h2",{className:"h6 my-2"},n.createElement(l.x,{namespace:s,phrase:"heading"})),n.createElement("div",null,e.pointsOfInterest.map((function(t){var a=o.T.ToDisplayDuration(1e3*t.startTime);return e.suppressInteractivity?n.createElement("div",{key:t.startTime,className:"d-flex ".concat(c.poiEntry," mb-2")},n.createElement("span",{className:"d-flex rounded-pill justify-content-center align-items-center fw-semibold ".concat(c.poiTimeStamp)},a),n.createElement("div",{className:"".concat(c.public)},t.description)):n.createElement(i.L,{key:t.startTime,className:"d-flex ".concat(c.poiEntry," mb-2 cursor-pointer"),onClick:function(){return e.onClickPoiItem(t.startTime)}},n.createElement("div",{className:"d-flex rounded-pill justify-content-center align-items-center fw-semibold ".concat(c.poiTimeStamp)},a),n.createElement("div",{className:"ms-2 ".concat(c.poiText)},t.description))}))))}var u=a(87311),m=a(91743),p=a(44829),v=a(31908),g=a(39347);const f={learningIntention:"T2LIU"};var h="shared.videoAtAGlance",y=350;function b(e){var t,a=(0,g.W)(e.video),i=(0,g.N)(e.video,a),o=function(){var t,a,n,r;return v.M.isInteractive(e.video)||!(null===(a=null===(t=e.video.tags)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)?null:null===(r=null===(n=e.video.tags)||void 0===n?void 0:n.data)||void 0===r?void 0:r.filter((function(e){return e.tagType===p.Q.Pedagogy||e.tagType===p.Q.Skill}))}();return a?n.createElement("div",{className:"rounded border mb-4 bg-white"},n.createElement(r.ZP,{autoHeight:!0,autoHeightMax:null!==(t=e.height)&&void 0!==t?t:y},n.createElement("div",{className:"px-3 px-3 pt-3 pb-2"},n.createElement("h2",{className:"h6 mb-2"},n.createElement(l.x,{namespace:h,phrase:"learningIntention"})),n.createElement("div",{className:"".concat(f.learningIntention," mb-3")},n.createElement("div",{dangerouslySetInnerHTML:{__html:i}})),!!(null==o?void 0:o.length)&&n.createElement("div",{className:"mb-1"},n.createElement(m.P,Object.assign({tags:o},u.G.getTagActionProps(e.getTagAppLink,e.suppressInteractivity),{className:"mt-2"}))),!!e.pointsOfInterest.length&&n.createElement(d,{pointsOfInterest:e.pointsOfInterest,suppressInteractivity:e.suppressInteractivity,onClickPoiItem:function(t){e.setStartTime(t)}})))):n.createElement(n.Fragment,null)}},39347:(e,t,a)=>{a.d(t,{N:()=>o,W:()=>c});var n=a(32735),r=a(16367);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var l=/\[\]\(cv:\/\/poi\?id=\d+\)\n*/g;function o(e,t){var a,o,c,s=(o=(0,n.useState)(""),c=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(o,c)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}(o,c)||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=s[0],u=s[1];return(0,n.useEffect)((function(){if(t){var a=(n=e.glance,i=n.content.replace(l,""),r(i));u(a)}var n,i}),[null===(a=e.glance)||void 0===a?void 0:a.content,t]),d}function c(e){var t,a;return(null===(t=e.glance)||void 0===t?void 0:t.content)&&"text/markdown"===(null===(a=e.glance)||void 0===a?void 0:a.format)}},92805:(e,t,a)=>{a.d(t,{H:()=>r});var n=a(32735);function r(){return n.createElement("div",{className:"p-3 mb-3 border rounded"},n.createElement("div",{className:"row"},n.createElement("div",{className:"pe-3 col-md-7 border-right"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"4.5rem"}}),n.createElement("div",{className:"partial-loading-background",style:{height:"1.5rem",width:"15rem"}})),n.createElement("div",{className:"col-md-5 ps-md-3 pt-3 pt-md-0"},n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"7rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"10rem"}}),n.createElement("div",{className:"partial-loading-background mb-2",style:{height:"1.5rem",width:"12rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"3.5rem"}}),n.createElement("div",{className:"partial-loading-background mb-2 me-2 d-inline-block",style:{height:"1.5rem",width:"4.5rem"}}))))}},74696:(e,t,a)=>{a.d(t,{S:()=>s});var n=a(32735),r=a(68050),i=a(69111),l=a(9977),o=a(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,a){return n.createElement("div",{className:"d-flex",key:a},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(d,Object.assign({},e)))})))}function d(e){var t=(0,o.k)(),a="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return n.createElement(r.Z,{className:"".concat(a?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(a?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(r.Z,null,!!s&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},n.createElement("div",{className:"partial-loading-background ".concat(a?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:a?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},47862:(e,t,a)=>{a.d(t,{K:()=>s});var n=a(32735),r=a(36848),i=a(83345),l=a(22843),o=a(3332),c=a(68626);var s=n.memo((function(e){var t,a,s=e.data,d=e.thumbnailSize,u=e.preloadImage,m=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),p=null===(a=null===(t=s._timepoints)||void 0===t?void 0:t.value)||void 0===a?void 0:a.length;return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},n.createElement(o.u,{type:"cosmetic",textPosition:c.z.Independent,video:s,appLink:e.getAppLink(s),imageOptions:{size:d},preload:u,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl}),n.createElement("div",{className:"mt-2"},n.createElement(l.h,Object.assign({},e,{video:s,appLink:e.getAppLink(s)}))),n.createElement("div",{className:"mt-1"},n.createElement(r.F,{appLink:m,className:"cursor-pointer"},n.createElement(i.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions",options:{count:p,smartCount:p}}))))}))},9098:(e,t,a)=>{a.d(t,{s:()=>O,R:()=>S});var n=a(32735),r=a(39202),i=a(49985),l=a(65858),o=a(36848),c=a(11607),s=a(86073),d=a(54610),u=a(1164),m=a(67453),p=a(45778),v=a(75163);const g={imageStyle:"FFgf3",imageTypeResource:"z4O5p",fallBackImage:"Xy4zX"};var f={width:200,resizeType:d.Nq.Cover};function h(e){var t;return p.G.isResource(e)?e.metadata.type===u.L.Pdf||(null===(t=e.pdf)||void 0===t?void 0:t.url)?d.__.Pdf:d.__.Thumbnails:d.__.Link}function y(e){var t,a,r,i=null,l=0;p.G.isResource(e.resource)&&(i=e.resource.metadata,l=null!==(r=null===(a=null===(t=e.resource.thumbnail)||void 0===t?void 0:t.metadata)||void 0===a?void 0:a.rotation)&&void 0!==r?r:0);var o=function(e,t){var a,n,r,i=h(t);if("thumbnail"in t&&(null===(a=t.thumbnail)||void 0===a?void 0:a.url))return m.j.createUrl(null===(n=t.thumbnail)||void 0===n?void 0:n.url,Object.assign({},f));var l=s._.safeUrlConcat(e,"/v1/previews");return p.G.isResource(t)?i===d.__.Pdf?t.metadata.type===u.L.Pdf?m.j.createResourceImage(l,t.url,Object.assign({},f)):m.j.createResourceImage(l,null===(r=t.pdf)||void 0===r?void 0:r.url,Object.assign({},f)):t.metadata.type!==u.L.Zip?m.j.createUrl(t.url,{size:d.h2.Medium,resizeType:d.Nq.Cover}):"/images/zip-resource.png":m.j.createResourceImage(l,t.url,Object.assign({},f))}(e.imageCdnUrl,e.resource);return n.createElement(v.Z,{data:o,imageType:h(e.resource),imageStyle:{transform:"rotate(".concat(l,"deg)")},alt:e.resource.name,errorFallbackImageSrc:e.imageErrorFallbackUrl,errorFallbackImageClassName:g.fallBackImage,imageClassName:(null==i?void 0:i.type)===u.L.Image?"".concat(g.imageTypeResource," ").concat(g.imageStyle):"",preload:e.preloadImage,preventLoad:!e.preloadImage})}var b=a(83914),E=a(60995),k=a(76177),N=a(61150),C=a(71063),w=a(4594),I=a(79967),A={getResourceTypeName:function(e){switch(e){case"additional-materials":return"Additional Materials";case"atom-guide":return"ATOM Guide";case"teacher-pack":return"Teacher Pack";case"student-activity":return"Student Activity";default:return"N/A"}}},T=a(35223);const P={imageStyle:"I9E5O",item:"tqUFn",dashboard:"o7j7p",playPage:"V2RwX",aspectRatio:"OnJDH",outerContainer:"CIFy7",innerContainer:"oUZPD",actions:"jzGAm",titleBelow:"Cpjs3",thumbnailContainer:"EDiGi",titleAbove:"e9ejn",teacherPack:"_tdVE",text:"g5NWS",hoverState:"xRYhX",atomGuide:"X39wU",studentActivity:"X9pMl",additionalMaterials:"qRVUo",userUploaded:"_18JaV",imageTypeResource:"KYtZL",download:"fbb_e"};function O(e){var t,a,r,i,l=null;"metadata"in e.data&&(l=e.data.metadata);var o=p.G.isType(e.data,w.E.Resource);return n.createElement(n.Fragment,null,n.createElement("div",{className:P.aspectRatio},n.createElement("div",{className:P.outerContainer},n.createElement("div",{className:function(t){var a,n="\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ".concat(function(e){switch(e){case"atom-guide":return P.atomGuide;case"student-activity":return P.studentActivity;case"teacher-pack":return P.teacherPack;case"additional-materials":return P.additionalMaterials;default:return P.userUploaded}}(t)," ").concat(P.innerContainer);return(null===(a=e.theme)||void 0===a?void 0:a.containerClass)?n+=" ".concat(e.theme.containerClass):n+=" pt-3 px-3",e.applyHoverState&&(n+=" ".concat(P.hoverState)),n}(null==l?void 0:l.resourceType)},"above"===e.titlePosition&&n.createElement(k.u,{title:e.data.name},n.createElement("h3",{className:"text-center text-break h5 mb-3 ".concat(P.text)},n.createElement("span",{className:"clamp-1"},e.data.name))),n.createElement("div",{className:"\n ".concat(null!==(a=null===(t=e.theme)||void 0===t?void 0:t.thumbnailContainerClass)&&void 0!==a?a:""," w-75 overflow-hidden \n ").concat(P.thumbnailContainer," ").concat("above"===e.titlePosition?P.titleAbove:""," \n ").concat(P.imageStyle,"\n ")},n.createElement(y,{resource:e.data,imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:e.imageErrorFallbackUrl,preloadImage:e.preloadImage})),o&&e.onClickDownload&&"normal"===e.actionBehaviour&&n.createElement("div",{className:P.actions},n.createElement(c.L,{onClick:function(t){t.preventDefault(),t.stopPropagation(),p.G.isResource(e.data)&&"function"==typeof e.onClickDownload&&e.onClickDownload(e.data)},className:"".concat(P.download," d-flex align-items-center justify-content-center")},n.createElement(b.x,{svgName:T.vn.Download}))),!e.hideTypeBadge&&o&&n.createElement(N.y,{typeId:w.E.Resource})))),"below"===e.titlePosition&&p.G.isType(e.data,w.E.Resource)&&n.createElement("div",{className:"mt-1 ".concat(P.titleBelow)},!!(null===(i=null===(r=e.data)||void 0===r?void 0:r.metadata)||void 0===i?void 0:i.resourceType)&&n.createElement(E.m,null,A.getResourceTypeName(e.data.metadata.resourceType)),n.createElement("h3",{className:"h6 clamp-2"},e.data.name)))}O.defaultProps={preloadImage:!0,actionBehaviour:"normal"};var S=n.memo((function(e){var t,a,c,s,d=(t=e.data,a=e.actionBehaviour,s=(0,I.k)(),"public"===a||!s.xs&&!s.sm&&"resource"===t.type&&"metadata"in t&&(t.metadata.type===u.L.Image||(t.metadata.type===u.L.Pdf?!!t.url:!!(null===(c=t.pdf)||void 0===c?void 0:c.url)))),m=Object.assign(Object.assign({},e.analyticsData),e.data),p=Object.assign(Object.assign({},e.analyticsOptions),{actionType:l.Vw.Click,entity:e.data.typeId===w.E.Resource?l.py.Resource:l.py.Link});function v(){i.k.logUserAction(m,p)}var g,f=Object.assign(Object.assign({},e),{applyHoverState:d||!!e.data.url});return n.createElement("div",{className:"px-1 flex-shrink-0 ".concat(P.item," ").concat("play-page"===e.location?P.playPage:P.dashboard," ").concat(C.M.RESOURCE_ITEM_SELECTOR)},(g="d-block ".concat("above"===e.titlePosition?"no-decoration":""),"link"===e.data.type?n.createElement("a",{href:e.data.url,target:"_blank",className:g,onClick:v},n.createElement(O,Object.assign({},f))):d?"public"===e.actionBehaviour?n.createElement("div",{className:"".concat(g," cursor-pointer d-inline"),onClick:function(){v(),r.C$.trigger(e.getAppLink(e.data))}},n.createElement(O,Object.assign({},f))):n.createElement(o.F,{appLink:e.getAppLink(e.data),className:g,analyticsData:m,analyticsOptions:p},n.createElement(O,Object.assign({},f))):e.data.url?n.createElement("a",{href:e.data.url,className:g,onClick:v},n.createElement(O,Object.assign({},f))):n.createElement("div",{className:g},n.createElement(O,Object.assign({},f)))))}))},28907:(e,t,a)=>{a.d(t,{r:()=>i});var n=a(99940),r=a(97395),i={theme:function(e){return{url:"/api/domain/v1/themes/".concat(e),key:"themes:".concat(e)}},themeImages:function(e,t){return{url:r._.urlBuilder("/api/domain/v1/themes",{name:e,type:t}),key:"themes:".concat(e,":").concat(t)}},themes:function(e){var t="/api/domain/v1/themes",a="themes";return e&&(t+="?type=".concat(e),a+=":type:".concat(e)),{url:t,key:a,formatData:function(e){return e.sort((function(e,t){return e.name.localeCompare(t.name)}))}}},createTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes",key:"theme",data:e,type:n.k.POST,invalidationKeys:"themes",success:t,error:a,always:r}},updateTheme:function(e,t,a,r,i){return{url:"/api/domain/v1/themes/".concat(e),key:"update:theme:".concat(e),data:t,type:n.k.PUT,success:a,error:r,always:i}},deleteTheme:function(e,t,a,r){return{url:"/api/domain/v1/themes/".concat(e),key:"delete:theme:".concat(e),type:n.k.DELETE,invalidationKeys:"themes",success:t,error:a,always:r}}}},94631:(e,t,a)=>{a.d(t,{D:()=>r});var n=a(32735);function r(e){var t=n.useRef();return n.useEffect((function(){t.current=e})),t.current}},9907:(e,t,a)=>{a.d(t,{P:()=>l});var n=a(32735),r=a(94631);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var l=function(e,t){var a,l,o=(a=n.useState(!1),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(a,l)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}(a,l)||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.")}()),c=o[0],s=o[1],d=(0,r.D)(t),u=t;n.useLayoutEffect((function(){if(!c||d!==u){var t=e.find((function(e){return e&&(null==e?void 0:e.id)===u}));if(t){var a=t.getBoundingClientRect();window.scrollBy({top:a.top-80,behavior:"smooth"}),c||s(!0)}}}),[e,d,u,c])}},74237:(e,t,a)=>{a.d(t,{T:()=>o});var n=a(97395),r=a(49985),i=a(65858),l=null,o={getVideoDownloadUrl:function(e,t){return n._.safeUrlConcat(n._.makeHttps(e),"/download?token=".concat(t))},downloadResource:function(e,t,a){var n,o=l;l||(o=l=document.createElement("iframe"),document.body.appendChild(o),o.style.display="none"),o.src=e.url,r.k.logUserAction(Object.assign({id:null==e?void 0:e.id,name:null==e?void 0:e.name,resourceType:null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.resourceType},t),Object.assign({actionType:i.Vw.Download,entity:i.py.Resource,workflowPhase:i.eu.Complete},a))}}},26492:(e,t,a)=>{a.d(t,{T:()=>d});var n=a(32735),r=a(23481),i=a(65858),l=a(83914),o=a(4594),c=a(35223),s="shared.playPage";function d(e){var t=r.T.encloseNamespace(s),a=function(e){switch(e){case o.E.Video:return"video";case o.E.Clip:return"clip";case o.E.Interactive:return"interactive";default:return""}}(e.typeId);return n.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},n.createElement(l.x,{svgName:c.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:a})),(!e.hasStudentExperience||a===i.py.Video)&&n.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(a,"s")}))))}},47938:(e,t,a)=>{a.d(t,{W:()=>m});var n=a(32735),r=a(36848),i=a(83914),l=a(83345),o=a(5345),c=a(26361),s=a(14070),d=a(97291),u="shared.playPage";function m(e){var t,a;if(!(null===(a=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===a?void 0:a.length)||!e.yearGroups||!e.canManageVideoAccess)return n.createElement(n.Fragment,null);if(c.l.getWeightedRestriction(e.restrictions.value).type!==o.c.Custom)return n.createElement(n.Fragment,null);var m=c.l.mapRestrictionToClass(e.restrictions),p="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return n.createElement("div",{className:p},n.createElement("div",{className:"d-flex align-items-center"},n.createElement(i.x,{svgName:c.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),n.createElement("span",{className:"ps-1"},c.l.mapRestrictionToText(e.restrictions,e.yearGroups))),n.createElement(r.F,{appLink:{application:d.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},n.createElement(l.x,{namespace:u,phrase:"approve"})))}},76162:(e,t,a)=>{a.d(t,{O:()=>h});var n=a(32735),r=a(23481),i=a(28400),l=a(11518),o=a(22843),c=a(3332),s=a(68626),d=a(80143);var u=n.memo((function(e){var t,a=e.data,r=e.thumbnailSize,i=e.preloadImage,l=e.getAppLink,u=(0,d.n)(null===(t=a.subjectPresentationAudiences)||void 0===t?void 0:t.data,e.audiences);return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("hzP5u")},n.createElement(c.u,{type:"cosmetic",textPosition:s.z.Independent,video:a,appLink:l(a),imageOptions:{size:r},preload:i,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,imageCdnUrl:e.imageCdnUrl,audience:u,hideDuration:!1}),n.createElement("div",{className:"mt-2"},n.createElement(o.h,Object.assign({},e,{video:a,appLink:e.getAppLink(a)}))))})),m=a(58704),p=a(31908),v=a(14070),g=a(97291),f="shared.playPageClips";function h(e){var t;if(!e.canViewClips||!(null===(t=e.clips)||void 0===t?void 0:t.length))return n.createElement(n.Fragment,null);var a=p.M.isVideo(e.video);return n.createElement("section",{className:"pb-4"},n.createElement(l.kM,{name:r.T.getPhrase(f,a?"clips":"otherClips",{count:e.clips.length}),contents:m.z.Clips,collection:e.clips,prefetched:!0,getChildAppLink:function(e){return{application:g.O.CLIPS,action:v.e.Clips.PLAY_CLIP,args:[e.id,i.m.slugify(e.name)]}},appLink:p.M.isVideo(e.video)?{action:v.e.Videos.VIDEO_CLIPS,application:g.O.VIDEOS,args:[e.video.id]}:{action:v.e.Clips.CLIP_CLIPS,application:g.O.CLIPS,args:[e.video.id]},childComponent:u,extraChildComponentProps:{yearGroups:e.yearGroups,audiences:e.audiences,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite},analyticsData:e.analyticsData}))}},31261:(e,t,a)=>{a.d(t,{J:()=>v});var n=a(32735),r=a(23481),i=a(28400),l=a(11518),o=a(47862),c=a(58704),s=a(59598),d=a(31908),u=a(14070),m=a(97291),p="shared.playPageInteractives";function v(e){var t;return e.canViewInteractives&&(null===(t=e.interactives)||void 0===t?void 0:t.length)?n.createElement("section",{className:"pb-4",ref:e.containerRef,id:s.K.Interactives},n.createElement(l.kM,{name:r.T.getPhrase(p,"interactives",{count:e.interactives.length}),contents:c.z.Interactives,collection:e.interactives,prefetched:!0,getChildAppLink:function(e){return{application:m.O.INTERACTIVES,action:u.e.Interactives.VIEW_INTERACTIVE,args:[e.id,i.m.slugify(e.name)]}},appLink:d.M.isVideo(e.video)?{action:u.e.Videos.VIDEO_INTERACTIVES,application:m.O.VIDEOS,args:[e.video.id]}:{action:u.e.Clips.CLIP_INTERACTIVES,application:m.O.CLIPS,args:[e.video.id]},childComponent:o.K,extraChildComponentProps:{yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,imageCdnUrl:e.imageCdnUrl,questionsAppLink:{application:m.O.INTERACTIVES,action:u.e.Interactives.PREVIEW_QUESTIONS}},analyticsData:e.analyticsData})):n.createElement(n.Fragment,null)}},91479:(e,t,a)=>{a.d(t,{v:()=>y});var n=a(32735),r=a(65858),i=a(83657),l=a(36848),o=a(40955),c=a(18559),s=a(17464),d=a(83345),u=a(38647),m=a(11882),p=a(80143),v=a(31908),g=a(10671);const f={series:"wTlJJ",badgeListContainer:"Vaout"};var h="shared.playPage";function y(e){var t,a,y,b,E,k,N=(0,p.n)(null===(t=e.media.subjectPresentationAudiences)||void 0===t?void 0:t.data,e.audiences),C=n.useRef(null),w=n.useRef(null),I=v.M.isVideo(e.media)&&!!(null===(a=e.media.rating)||void 0===a?void 0:a.value)||v.M.isVideo(e.media)&&!!e.media.productionYear||!!(null===(b=null===(y=e.media.subjectPresentationAudiences)||void 0===y?void 0:y.data)||void 0===b?void 0:b.length),A=(0,g._)({location:g.i.PlayPage,shareId:e.shareId}),T=!!e.originalVideoAppLink&&v.M.isClip(e.media)&&v.M.canViewOriginalVideo(e.media);return n.createElement("section",{className:"mb-3 position-relative",ref:C},n.createElement("div",{className:"d-inline-block w-100",ref:w},e.featureAccess.canNavigate&&n.createElement("div",{className:"ms-2 float-end"},n.createElement(i.e,{actions:A.getVideoActions(e.media),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return A.fetchMoreActions(e.media)}})),!!v.M.isVideo(e.media)&&n.createElement(m.$,{type:"series",video:e.media,appLink:null===(E=e.getSeriesAppLink)||void 0===E?void 0:E.call(e,e.media.series),className:"".concat(f.series," text-truncate mw-100"),analyticsOptions:{location:r.LZ.PlayPage}}),n.createElement("h1",{className:"h4 mb-2 mw-100"},n.createElement("span",{className:"align-self-center"},e.media.name),n.createElement(u.m,{tooltipPlacement:"right",className:"d-inline-block ps-1",video:e.media,yearGroups:e.yearGroups})),I&&n.createElement(s.c,{className:f.badgeListContainer},n.createElement(o.P,{audience:N,className:"bg-white text-dark",border:"dark"}),v.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.Rating,data:e.media.rating}),v.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.ProductionYear,data:e.media.productionYear}))),v.M.isClip(e.media)&&T&&n.createElement("p",{className:"clamp-1"},n.createElement(d.x,{namespace:h,phrase:"viewOriginal"})," ",n.createElement(l.F,{className:"info-link",appLink:e.originalVideoAppLink},null===(k=e.media._parentVideo)||void 0===k?void 0:k.name)))}},81024:(e,t,a)=>{a.d(t,{S:()=>g});var n=a(32735),r=a(23481),i=a(65858),l=a(36848),o=a(83914),c=a(54610),s=a(67453),d=a(35223),u=a(31908);const m="LL7My",p="QoLgZ";var v=r.T.encloseNamespace("shared.playerPlaceholder");function g(e){switch(e.type){case"pip":return n.createElement(f,Object.assign({},e));case"public":return n.createElement(h,Object.assign({},e));default:return n.createElement(n.Fragment,null)}}var f=function(e){var t,a;return n.createElement("div",{className:"position-relative responsive-img ".concat(p),style:{backgroundImage:"url('".concat(null!==(a=null===(t=u.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==a?a:"","')")}},n.createElement("p",{className:"m-0 text-white h3 ".concat("BcnSH")},v("playingPiP")),n.createElement("div",{className:m}))},h=function(e){var t,a,r=s.j.createUrl(null!==(a=null===(t=u.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==a?a:"",{size:c.h2.Large});return n.createElement("div",{className:"position-relative responsive-img ".concat(p),style:{backgroundImage:"url('".concat(r,"')")}},n.createElement(l.F,{appLink:e.appLink,analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlayPage,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:{}},n.createElement(o.x,{svgName:d.vn.PlayCircle,className:"x_1f6"}),n.createElement("div",{className:m})))}},78166:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(32735),r=a(71020),i=a(83345),l=a(74696),o=a(13231),c=a(51365),s=a(22902),d=a(31908),u=a(10671),m=a(10741),p=a(82431),v="shared.relatedVideos";function g(e){var t,a,g=(0,u._)({location:u.i.VideoItem}),f=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return n.createElement(n.Fragment,null);if(e.relatedVideos.hasError)return n.createElement(n.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(a=e.relatedVideos.videos)||void 0===a?void 0:a.length))return n.createElement(n.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return n.createElement(n.Fragment,null);var h=!d.M.isInteractive(e.currentVideo);return n.createElement(c.M.Provider,{value:g},n.createElement("h2",{className:"h4 mb-0"},n.createElement(i.x,{namespace:v,phrase:h?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?n.createElement(o.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return p.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:f,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return m.j.getPreviewQuestionsAppLink(e)}}):n.createElement(l.S,null),e.relatedVideos.hasMore&&n.createElement(r._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext}))}},35014:(e,t,a)=>{a.d(t,{I:()=>d});var n=a(20354),r=a(16714),i=a(12754),l=a(39151),o=a(22902),c=a(15311),s=a(11387);function d(){var e=(0,o.T)(),t=e.hasPermissions,a=e.hasLocalPermissions,d=(0,c.r)().hasProduct,u=n.a.useBasicFetch(l.L.config()),m=d(i.x.Primary);return{canWatchPublicly:function(e){var t,a;return!!e&&!!(null===(a=null===(t=u.data)||void 0===t?void 0:t.allowedPublicVideos)||void 0===a?void 0:a[e])},canViewGlance:t(r.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:m&&t(r.C.ViewVideoInteractives),canViewClips:m&&t(r.C.ViewVideoClips),canViewCurriculumLinks:t(r.C.ViewCurriculums),canUseActions:a(r.E.UseVideoActions),canViewPublicLayout:!a(r.E.WatchVideos)&&s.C.hasRegionPrefix(),canViewResourceItems:a(r.E.ViewVideoResourceItems),canNavigate:m}}},97816:(e,t,a)=>{a.d(t,{V:()=>d});var n=a(32735),r=a(20354),i=a(21750),l=a(31949),o=a(1575);function c(e,t){if(e){if("string"==typeof e)return s(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function d(e){var t,a,d,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(l.N.currentUser()),p=n.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}))),g=(a=n.useState([]),d=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(a,d)||c(a,d)||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=g[0],h=g[1];n.useEffect((function(){var e;if((null==v?void 0:v.length)&&(null===(e=m.data)||void 0===e?void 0:e.isAuthenticated)){var t=[];v.forEach((function(e){p.current.has(e)||(t.push(e),p.current.add(e))})),t.length&&h((function(e){return[].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)||c(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.")}()}(e),[i.x.hasCurriculumLinks(t,null,u.flightNamespace),o.R.videoMixinAssocs(t,u.flightNamespace)])}))}}),[null==v?void 0:v.length,null===(t=m.data)||void 0===t?void 0:t.isAuthenticated]),r.a.useBasicFetchAll(f)}}}]);
|
|
2
|
+
//# sourceMappingURL=3854-49852130b4-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3854-49852130b4-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/resources/PlayPageResources.tsx","file:///app/packages/libs/shared/src/components/points-of-interest-list/points-of-interest-list.scss","file:///app/packages/libs/shared/src/components/points-of-interest-list/PointsOfInterestList.tsx","file:///app/packages/libs/shared/src/components/video-at-a-glance/video-at-a-glance.scss","file:///app/packages/libs/shared/src/components/video-at-a-glance/VideoAtAGlance.tsx","file:///app/packages/libs/shared/src/components/video-at-a-glance/VideoAtAGlanceUtils.ts","file:///app/packages/libs/shared/src/components/video-details/VideoDetailsPartial.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/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/components/resource-thumbnail/resource-thumbnail.scss","file:///app/packages/libs/shared/src/components/resource-thumbnail/ResourceThumbnail.tsx","file:///app/packages/libs/shared/src/utils/ResourceHelper.ts","file:///app/packages/libs/shared/src/components/widgets/items/resource-widget-item/resource-widget-item.scss","file:///app/packages/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.tsx","file:///app/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file:///app/packages/libs/shared/src/hooks/usePrevious.ts","file:///app/packages/libs/shared/src/hooks/useTableOfContentsScroll.tsx","file:///app/packages/libs/shared/src/utils/DownloadHelper.ts","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/libs/shared/src/components/widgets/items/clip-widget-item/ClipWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/clip-widget-item/clip-widget-item.scss","file:///app/packages/projects/lite/src/shared/components/play-page/components/clips/PlayPageClips.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/components/interactives/PlayPageInteractives.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/components/title-and-actions/title-and-actions.scss","file:///app/packages/projects/lite/src/shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions.tsx","file:///app/packages/projects/lite/src/shared/components/player-placeholder/player-placeholder.scss","file:///app/packages/projects/lite/src/shared/components/player-placeholder/PlayerPlaceholder.tsx","file:///app/packages/projects/lite/src/shared/components/related-videos/RelatedVideos.tsx","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.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';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { ResourceWidgetItem, ResourceWidgetItemProps } from 'libs/shared/components/widgets/items/resource-widget-item/ResourceWidgetItem';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Clip, Link, Resource, Video } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { DownloadHelper } from 'libs/shared/utils/DownloadHelper';\n\nconst namespace = 'shared.playPageResources';\n\nfunction getResources(\n video: Video,\n isLearner: boolean\n): Array<Resource | Link> {\n const resources = video.resources?.data ?? [];\n const links = video.links?.data ?? [];\n\n if (!isLearner)\n return [ ...resources, ...links ];\n\n const filteredResources = resources.filter(r => {\n return [ 'additional-materials', 'student-activity' ].includes(r.metadata?.resourceType);\n });\n\n return [ ...filteredResources, ...links ];\n}\n\ninterface PlayPageResourcesProps {\n video: Video | Clip;\n imageCdnUrl: string;\n canViewResources: boolean;\n getAppLink: (resource: Resource) => Core.AppLink;\n analyticsData: HashObject;\n resourceThumbnailFallbackUrl: string;\n containerRef?: React.RefObject<HTMLDivElement>;\n}\n\nexport function PlayPageResources(props: PlayPageResourcesProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n function onClickDownload(resource: Resource): void {\n DownloadHelper.downloadResource(\n resource,\n props.analyticsData,\n { location: LocationContext.PlayPage, actionType: UserAction.Download, entity: EntityType.Resource }\n );\n }\n\n const resources = getResources(props.video, hasPermissions(PermissionName.StudentExperience));\n\n if (!resources.length)\n return <></>;\n\n return (\n <section id={PlayPageAnchor.Resources} className='pb-4' ref={props.containerRef}>\n <FixedWidget<ResourceWidgetItemProps>\n name={LanguageService.getPhrase(namespace, 'resources', { count: resources.length })}\n contents={WidgetContents.PlayPageResources}\n collection={resources}\n prefetched\n childComponent={ResourceWidgetItem}\n extraChildComponentProps={{\n imageCdnUrl: props.imageCdnUrl,\n imageErrorFallbackUrl: props.resourceThumbnailFallbackUrl,\n actionBehaviour: props.canViewResources ? 'normal' : 'public',\n location: 'play-page',\n titlePosition: 'below',\n onClickDownload: props.canViewResources ? onClickDownload : null\n }}\n getChildAppLink={props.getAppLink}\n analyticsOptions={(() => {\n if (props.canViewResources)\n return {};\n \n return {\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n };\n })()}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"poiEntry\":\"Nmm9o\",\"poiText\":\"c75aW\",\"public\":\"R689i\",\"poiTimeStamp\":\"Wad94\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PointOfInterest } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport styles from './points-of-interest-list.scss';\n\ninterface PointOfInterestListProps{\n pointsOfInterest: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void\n}\n\nconst namespace = 'shared.pointsOfInterestList';\n\nexport function PointOfInterestList(props: PointOfInterestListProps) {\n return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {props.pointsOfInterest.map(poi => {\n const timeStamp = DurationHelper.ToDisplayDuration(poi.startTime * 1000);\n if (props.suppressInteractivity)\n return (\n <div key={poi.startTime} className={`d-flex ${styles.poiEntry} mb-2`}>\n <span className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold ${styles.poiTimeStamp}`}>{timeStamp}</span>\n <div className={`${styles.public}`}>{poi.description}</div>\n </div>\n );\n\n return (\n <DivButton\n key={poi.startTime}\n className={`d-flex ${styles.poiEntry} mb-2 cursor-pointer`}\n onClick={() => props.onClickPoiItem(poi.startTime)}\n >\n <div className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold ${styles.poiTimeStamp}`}>{timeStamp}</div>\n <div className={`ms-2 ${styles.poiText}`}>{poi.description}</div>\n </DivButton>\n );\n })}\n\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"T2LIU\"};","import * as React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/core';\n\nimport { PointOfInterestList } from 'libs/shared/components/points-of-interest-list/PointsOfInterestList';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { PointOfInterest, Tag, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { hasGlanceData, useLearningIntentionMarkdown } from './VideoAtAGlanceUtils';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlance';\n\nconst SCROLL_HEIGHT_MAX = 350; // in px\n\ninterface VideoAtAGlanceProps {\n video: Video;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n height?: number;\n}\n\nexport function VideoAtAGlance(props: VideoAtAGlanceProps): JSX.Element {\n const canViewGlance = hasGlanceData(props.video);\n\n const learningIntentionMarkdownHTML = useLearningIntentionMarkdown(props.video, canViewGlance);\n \n function getTags(): Tag[] {\n if (VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Pedagogy || tag.tagType === TagType.Skill);\n }\n const tags = getTags();\n\n if (!canViewGlance)\n return <></>;\n\n function onClickPoiItem(time: number) {\n props.setStartTime(time);\n }\n\n return (\n <div className='rounded border mb-4 bg-white'>\n <Scrollbars autoHeight autoHeightMax={props.height ?? SCROLL_HEIGHT_MAX} >\n <div className='px-3 px-3 pt-3 pb-2'>\n\n <h2 className='h6 mb-2'><Text namespace={namespace} phrase='learningIntention' /></h2>\n <div className={`${styles.learningIntention} mb-3`}>\n <div dangerouslySetInnerHTML={{ __html: learningIntentionMarkdownHTML }}/>\n </div>\n\n {!!tags?.length && (\n <div className='mb-1'>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, props.suppressInteractivity)}\n className='mt-2'\n />\n </div>\n )}\n\n {!!props.pointsOfInterest.length && (\n <PointOfInterestList\n pointsOfInterest={props.pointsOfInterest}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={onClickPoiItem}\n />\n )}\n </div>\n </Scrollbars>\n </div>\n );\n}","import { useEffect, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { Clip, Glance, Video } from 'libs/shared/interfaces';\n\nconst POI_LINK_LINE = /\\[\\]\\(cv:\\/\\/poi\\?id=\\d+\\)\\n*/g;\n\nfunction stripPoisFromGlanceContent(glanceContent: string): string {\n return glanceContent.replace(POI_LINK_LINE, '');\n}\n\nfunction getLearningIntentionHTML(glance: Glance): string {\n const learningIntention = stripPoisFromGlanceContent(glance.content);\n\n return marked(learningIntention);\n}\n\nexport function useLearningIntentionMarkdown(\n video: Video,\n hasGlanceData?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getLearningIntentionHTML(video.glance);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function hasGlanceData(video: Video | Clip): boolean {\n return video.glance?.content && video.glance?.format === 'text/markdown';\n}","import React from 'react';\n\nexport function VideoDetailsPartial(): JSX.Element {\n return (\n <div className='p-3 mb-3 border rounded'>\n <div className='row'>\n <div className='pe-3 col-md-7 border-right'>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '12rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '4.5rem' }}></div>\n <div className='partial-loading-background' style={{ height: '1.5rem', width: '15rem' }}></div>\n </div>\n <div className='col-md-5 ps-md-3 pt-3 pt-md-0'>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '7rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '10rem' }}></div>\n <div className='partial-loading-background mb-2' style={{ height: '1.5rem', width: '12rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '3rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '4rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '3.5rem' }}></div>\n <div className='partial-loading-background mb-2 me-2 d-inline-block' style={{ height: '1.5rem', width: '4.5rem' }}></div>\n </div>\n </div>\n </div>\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","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\nimport styles from './interactive-widget-item.scss';\n\nconst namespace = 'shared.interactiveWidgetItem';\n\nexport interface InteractiveWidgetItemProps extends FixedWidgetItemProps<InteractiveMetadata> {\n imageCdnUrl: string;\n questionsAppLink: Core.AppLink;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n yearGroups: YearGroup[];\n}\n\nexport const InteractiveWidgetItem = React.memo(function(props: InteractiveWidgetItemProps): 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 ${styles.item}`}>\n <VideoThumbnail\n type='cosmetic'\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 />\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 {\"item\":\"rXatl\",\"thumbnail\":\"WHqSi\",\"smallItemIconWidth\":\"Pq45z\",\"smallItemInfoWidth\":\"rjvTM\",\"smallProgressBarContainer\":\"W_aym\"};","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"FFgf3\",\"imageTypeResource\":\"z4O5p\",\"fallBackImage\":\"Xy4zX\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Link, Resource } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { BaseImage } from '../image/BaseImage';\n\nimport styles from './resource-thumbnail.scss';\n\n// Used for both PDFs and Links where we don't know the image ratio\nconst DYNAMIC_RATIO_IMAGE_OPTIONS: ImageOptions = {\n width: 200,\n resizeType: ResizeType.Cover\n};\n\nfunction getThumbnailUrl(imageCdnUrl: string, resource: Resource | Link): string {\n const imageType = getImageType(resource);\n\n // Use the thumbnail if defined\n if ('thumbnail' in resource && resource.thumbnail?.url)\n return ImageHelper.createUrl(resource.thumbnail?.url, { ...DYNAMIC_RATIO_IMAGE_OPTIONS });\n \n const previewUrl = UrlHelper.safeUrlConcat(imageCdnUrl, '/v1/previews');\n\n if (!MasterTypeHelper.isResource(resource))\n return ImageHelper.createResourceImage(previewUrl, resource.url, { ...DYNAMIC_RATIO_IMAGE_OPTIONS });\n\n if (imageType === ImageType.Pdf) {\n return resource.metadata.type === ResourceFileType.Pdf\n ? ImageHelper.createResourceImage(previewUrl, resource.url, { ...DYNAMIC_RATIO_IMAGE_OPTIONS })\n : ImageHelper.createResourceImage(previewUrl, resource.pdf?.url, { ...DYNAMIC_RATIO_IMAGE_OPTIONS });\n }\n\n if (resource.metadata.type !== ResourceFileType.Zip)\n return ImageHelper.createUrl(resource.url, { size: ImageSize.Medium, resizeType: ResizeType.Cover });\n\n return '/images/zip-resource.png';\n}\n\nfunction getImageType(resource: Resource | Link): ImageType {\n if (!MasterTypeHelper.isResource(resource))\n return ImageType.Link;\n\n if (resource.metadata.type === ResourceFileType.Pdf || resource.pdf?.url)\n return ImageType.Pdf;\n\n return ImageType.Thumbnails;\n}\n\ninterface ResourceThumbnailProps {\n imageCdnUrl: string;\n resource: Resource | Link;\n imageErrorFallbackUrl: string;\n preloadImage: boolean;\n}\n\nexport function ResourceThumbnail(props: ResourceThumbnailProps): JSX.Element {\n let metadata = null;\n let rotation = 0;\n\n if (MasterTypeHelper.isResource(props.resource)) {\n metadata = props.resource.metadata;\n rotation = props.resource.thumbnail?.metadata?.rotation ?? 0;\n }\n\n const thumbnailUrl = getThumbnailUrl(props.imageCdnUrl, props.resource);\n\n return (\n <BaseImage\n data={thumbnailUrl}\n imageType={getImageType(props.resource)}\n imageStyle={{ transform: `rotate(${rotation}deg)` }}\n alt={props.resource.name}\n errorFallbackImageSrc={props.imageErrorFallbackUrl}\n errorFallbackImageClassName={styles.fallBackImage}\n imageClassName={metadata?.type === ResourceFileType.Image ? `${styles.imageTypeResource} ${styles.imageStyle}` : ''}\n preload={props.preloadImage}\n preventLoad={!props.preloadImage}\n >\n </BaseImage>\n );\n}","import { ResourceType } from 'libs/shared/interfaces';\n\nexport const ResourceHelper = {\n getResourceTypeName(resourceType: ResourceType): string {\n switch (resourceType) {\n case 'additional-materials':\n return 'Additional Materials';\n\n case 'atom-guide':\n return 'ATOM Guide';\n\n case 'teacher-pack':\n return 'Teacher Pack';\n\n case 'student-activity':\n return 'Student Activity';\n\n default:\n return 'N/A';\n }\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"I9E5O\",\"item\":\"tqUFn\",\"dashboard\":\"o7j7p\",\"playPage\":\"V2RwX\",\"aspectRatio\":\"OnJDH\",\"outerContainer\":\"CIFy7\",\"innerContainer\":\"oUZPD\",\"actions\":\"jzGAm\",\"titleBelow\":\"Cpjs3\",\"thumbnailContainer\":\"EDiGi\",\"titleAbove\":\"e9ejn\",\"teacherPack\":\"_tdVE\",\"text\":\"g5NWS\",\"hoverState\":\"xRYhX\",\"atomGuide\":\"X39wU\",\"studentActivity\":\"X9pMl\",\"additionalMaterials\":\"qRVUo\",\"userUploaded\":\"_18JaV\",\"imageTypeResource\":\"KYtZL\",\"download\":\"fbb_e\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ResourceThumbnail } from 'libs/shared/components/resource-thumbnail/ResourceThumbnail';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TypeBadge } from 'libs/shared/components/type-badge/TypeBadge';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Link, Resource, ResourceType } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './resource-widget-item.scss';\n\nfunction getColour(resourceType?: ResourceType): string {\n switch (resourceType) {\n case 'atom-guide':\n return styles.atomGuide;\n case 'student-activity':\n return styles.studentActivity;\n case 'teacher-pack':\n return styles.teacherPack;\n case 'additional-materials':\n return styles.additionalMaterials;\n default:\n return styles.userUploaded;\n }\n}\n\nfunction useCanPreview(data: Resource | Link, actionBehaviour: 'normal' | 'public'): boolean {\n const breakpoints = useBreakpoints();\n\n /**\n * When viewing publicly, the resource applink will\n * prompt the user to sign-up (not preview the underlying resource)\n */\n if (actionBehaviour === 'public')\n return true;\n\n if (breakpoints.xs || breakpoints.sm)\n return false;\n\n if (data.type !== 'resource')\n return false;\n \n // Require metadata\n if (!('metadata' in data))\n return false;\n\n // We can preview images\n if (data.metadata.type === ResourceFileType.Image)\n return true;\n\n // If we are a pdf and have a url\n if (data.metadata.type === ResourceFileType.Pdf)\n return !!data.url;\n\n // If we have a pdf assoc\n return !!data.pdf?.url;\n}\n\ninterface ResourceTheme {\n containerClass?: string;\n thumbnailContainerClass?: string;\n}\n\nexport interface ResourceTileProps {\n data: Resource | Link;\n imageCdnUrl: string;\n imageErrorFallbackUrl?: string;\n theme?: ResourceTheme;\n\n titlePosition: 'above' | 'below' | 'none';\n hideTypeBadge?: boolean;\n onClickDownload?: (resource: Resource) => void;\n applyHoverState?: boolean;\n preloadImage: boolean;\n actionBehaviour?: 'normal' | 'public';\n}\n\nResourceTile.defaultProps = {\n preloadImage: true,\n actionBehaviour: 'normal'\n};\n\n/**\n * This component intentionally doesn't contain an appLink/download link\n * so that the resource download behaviour can be handled differently depending\n * on where this is rendered (e.g. primary play page vs embedded player)\n */\nexport function ResourceTile(props: ResourceTileProps): JSX.Element {\n let metadata = null;\n\n if ('metadata' in props.data) {\n metadata = props.data.metadata;\n }\n\n const isResource = MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource);\n\n function getInnerContainerClass(resourceType: ResourceType): string {\n let baseClass = `\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ${getColour(resourceType)} ${styles.innerContainer}`;\n\n if (props.theme?.containerClass) {\n baseClass += ` ${props.theme.containerClass}`;\n } else {\n baseClass += ` pt-3 px-3`;\n }\n\n if (props.applyHoverState) {\n baseClass += ` ${styles.hoverState}`;\n }\n\n return baseClass;\n }\n\n function onDownload() {\n if (!MasterTypeHelper.isResource(props.data))\n return;\n\n if (typeof props.onClickDownload === 'function') {\n props.onClickDownload(props.data);\n }\n }\n\n return (\n <>\n <div className={styles.aspectRatio}>\n <div className={styles.outerContainer}>\n <div className={getInnerContainerClass(metadata?.resourceType)}>\n {props.titlePosition === 'above' && (\n <Tooltip title={props.data.name}>\n <h3 className={`text-center text-break h5 mb-3 ${styles.text}`}>\n <span className='clamp-1'>{props.data.name}</span>\n </h3>\n </Tooltip>\n )}\n\n <div className={`\n ${props.theme?.thumbnailContainerClass ?? ''} w-75 overflow-hidden \n ${styles.thumbnailContainer} ${props.titlePosition === 'above' ? styles.titleAbove : ''} \n ${styles.imageStyle}\n `}>\n <ResourceThumbnail\n resource={props.data}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n />\n </div>\n\n {isResource && props.onClickDownload && props.actionBehaviour === 'normal' && (\n <div className={styles.actions}>\n <DivButton\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n onDownload();\n }}\n className={`${styles.download} d-flex align-items-center justify-content-center`}\n >\n <SvgContainer svgName={cvSvgLibrary.Download} />\n </DivButton>\n </div>\n )}\n\n {!props.hideTypeBadge && isResource && (\n <TypeBadge typeId={MasterType.Resource} />\n )}\n </div>\n </div>\n </div>\n {props.titlePosition === 'below' && MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource) && (\n <div className={`mt-1 ${styles.titleBelow}`}>\n {!!props.data?.metadata?.resourceType && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.data.metadata.resourceType)}\n </TitleSubText>\n )}\n <h3 className='h6 clamp-2'>\n {props.data.name}\n </h3>\n </div>\n )}\n </>\n );\n}\n\nexport interface ResourceWidgetItemProps extends ResourceTileProps, FixedWidgetItemProps<Resource | Link> {\n location: 'play-page' | 'dashboard';\n}\n\nexport const ResourceWidgetItem = React.memo(function(props: ResourceWidgetItemProps): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreview(props.data, props.actionBehaviour);\n\n function getLocationClass(): string {\n if (props.location === 'play-page')\n return styles.playPage;\n\n return styles.dashboard;\n }\n\n const analyticsData = { ...props.analyticsData, ...props.data };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: props.data.typeId === MasterType.Resource ? EntityType.Resource : EntityType.Link\n };\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n const tileProps: ResourceTileProps = {\n ...props,\n // Apply the hover state if we have a url or the resource can be previewed\n applyHoverState: canPreview || !!props.data.url\n };\n\n return (\n <div className={`px-1 flex-shrink-0 ${styles.item} ${getLocationClass()} ${SeoConstants.RESOURCE_ITEM_SELECTOR}`}>\n {(() => {\n const className = `d-block ${props.titlePosition === 'above' ? 'no-decoration' : ''}`;\n\n // Handle resource links\n if (props.data.type === 'link') {\n return (\n <a href={props.data.url} target='_blank' className={className} onClick={logAction}>\n <ResourceTile {...tileProps} />\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a span over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div className={`${className} cursor-pointer d-inline`} onClick={() => {\n logAction();\n AppLinkHelper.trigger(props.getAppLink(props.data));\n }}>\n <ResourceTile {...tileProps} />\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.getAppLink(props.data)}\n className={className}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ResourceTile {...tileProps} />\n </AppLink>\n );\n }\n\n // URLs cannot be previewed\n if (props.data.url) {\n return (\n <a href={props.data.url} className={className} onClick={logAction}>\n <ResourceTile {...tileProps} />\n </a>\n );\n }\n\n // Theres no url, so don't render an <a>\n return (\n <div className={className}>\n <ResourceTile {...tileProps} />\n </div>\n );\n })()}\n </div>\n );\n});","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { Theme } from 'libs/shared/interfaces';\n\nimport { ThemeType } from '../enums/ThemeType';\n\nexport const ThemeRequests = {\n theme(id: string): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `themes:${id}`\n };\n },\n\n themeImages(name: string, type: ThemeType): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/domain/v1/themes', { name, type }),\n key: `themes:${name}:${type}`\n };\n },\n\n themes(type?: string): Flight.Request {\n let url = '/api/domain/v1/themes';\n let key = 'themes';\n\n if (type) {\n url += `?type=${type}`;\n key += `:type:${type}`;\n }\n\n return {\n url,\n key,\n formatData: (themes: Theme[]) => {\n return themes.sort((a, b) => a.name.localeCompare(b.name));\n }\n };\n },\n\n createTheme(\n data: Theme,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/domain/v1/themes',\n key: 'theme',\n data,\n type: HttpVerbs.POST,\n invalidationKeys: 'themes',\n success,\n error,\n always\n };\n },\n\n updateTheme(\n id: string,\n data: Theme,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `update:theme:${id}`,\n data,\n type: HttpVerbs.PUT,\n success,\n error,\n always\n };\n },\n\n deleteTheme(\n id: string,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/themes/${id}`,\n key: `delete:theme:${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: 'themes',\n success,\n error,\n always\n };\n }\n};","import React from 'react';\n\n// https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\nexport function usePrevious<T>(value: T): T {\n const ref = React.useRef<T>();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import React from 'react';\n\nimport { usePrevious } from './usePrevious';\n\nconst HEADER_OFFSET = 80; // Size of header + some extra spacing\n\nexport const useTableOfContentsScroll = (elements: Element[], activeId: string) => {\n const [ hasDoneInitialScroll, setHasDoneInitialScroll ] = React.useState(false);\n\n const previousId = usePrevious(activeId);\n const currentId = activeId;\n\n React.useLayoutEffect(() => {\n if (!hasDoneInitialScroll || previousId !== currentId) {\n const target = elements.find(heading => heading && (heading?.id === currentId));\n\n if (target) {\n const rec = target.getBoundingClientRect();\n\n window.scrollBy({\n top: rec.top - HEADER_OFFSET,\n behavior: 'smooth'\n });\n \n if (!hasDoneInitialScroll)\n setHasDoneInitialScroll(true);\n }\n }\n }, [ elements, previousId, currentId, hasDoneInitialScroll ]);\n};","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Resource } from '../interfaces';\n\nlet downloadRef: HTMLIFrameElement = null;\n\nexport const DownloadHelper = {\n getVideoDownloadUrl(downloadProxyUrl: string, token: string): string {\n return UrlHelper.safeUrlConcat(UrlHelper.makeHttps(downloadProxyUrl), `/download?token=${token}`);\n },\n\n downloadResource(\n resource: Resource,\n analyticsData: HashObject,\n analyticsOptions: AnalyticsOptions\n ): void {\n let iframe = downloadRef;\n\n if (!downloadRef) {\n iframe = downloadRef = document.createElement('iframe');\n document.body.appendChild(iframe);\n\n iframe.style.display = 'none';\n }\n\n iframe.src = resource.url;\n\n AnalyticsHelper.logUserAction({\n id: resource?.id,\n name: resource?.name,\n resourceType: resource?.metadata?.resourceType,\n ...analyticsData\n }, {\n actionType: UserAction.Download,\n entity: EntityType.Resource,\n workflowPhase: WorkflowPhase.Complete,\n ...analyticsOptions\n });\n }\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 { 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 { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\n\nimport styles from './clip-widget-item.scss';\n\nexport interface ClipWidgetItemProps extends FixedWidgetItemProps<Clip> {\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n yearGroups: YearGroup[];\n}\n\nexport const ClipWidgetItem = React.memo(function(props: ClipWidgetItemProps): JSX.Element {\n const { data: clip, thumbnailSize, preloadImage, getAppLink } = props;\n const mergedAudience = useMergeAudiences(clip.subjectPresentationAudiences?.data, props.audiences);\n\n return (\n <div className={`flex-shrink-0 px-1 ${styles.item}`}>\n <VideoThumbnail\n type='cosmetic'\n textPosition={ThumbnailTextPosition.Independent}\n video={clip}\n appLink={getAppLink(clip)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n imageCdnUrl={props.imageCdnUrl}\n audience={mergedAudience}\n hideDuration={false}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={clip}\n appLink={props.getAppLink(clip)}\n />\n </div>\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"hzP5u\",\"thumbnail\":\"z2JjL\",\"smallItemIconWidth\":\"PfCrs\",\"smallItemInfoWidth\":\"AHFZu\",\"smallProgressBarContainer\":\"WfOtB\",\"smallItemNameWidth\":\"Rq6Cd\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { ClipWidgetItem, ClipWidgetItemProps } from 'libs/shared/components/widgets/items/clip-widget-item/ClipWidgetItem';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.playPageClips';\n\ninterface PlayPageClipsProps {\n video: Video | Clip;\n clips: Clip[];\n canViewClips: boolean;\n yearGroups: YearGroup[];\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n analyticsData: HashObject;\n}\n\nexport function PlayPageClips(props: PlayPageClipsProps): JSX.Element {\n if (!props.canViewClips || !props.clips?.length)\n return <></>;\n\n const parentIsVideo = VideoHelper.isVideo(props.video);\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video)) {\n return {\n action: Actions.Videos.VIDEO_CLIPS,\n application: AppChannels.VIDEOS,\n args: [props.video.id]\n };\n }\n return {\n action: Actions.Clips.CLIP_CLIPS,\n application: AppChannels.CLIPS,\n args: [props.video.id]\n };\n }\n\n return (\n <section className='pb-4'>\n <FixedWidget<ClipWidgetItemProps>\n name={LanguageService.getPhrase(\n namespace,\n parentIsVideo ? 'clips' : 'otherClips',\n { count: props.clips.length }\n )}\n contents={WidgetContents.Clips}\n collection={props.clips}\n prefetched\n getChildAppLink={(clip: Clip) => {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ clip.id, TextHelper.slugify(clip.name) ]\n };\n }}\n appLink={getAppLink()}\n childComponent={ClipWidgetItem}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n audiences: props.audiences,\n imageCdnUrl: props.imageCdnUrl,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, Interactive, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.playPageInteractives';\n\ninterface PlayPageInteractivesProps {\n canViewInteractives: boolean;\n video: Video | Clip;\n interactives: InteractiveMetadata[];\n imageCdnUrl: string;\n analyticsData: HashObject;\n containerRef: React.RefObject<HTMLDivElement>;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n}\n\nexport function PlayPageInteractives(props: PlayPageInteractivesProps): JSX.Element {\n if (!props.canViewInteractives || !props.interactives?.length)\n return <></>;\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video))\n return {\n action: Actions.Videos.VIDEO_INTERACTIVES,\n application: AppChannels.VIDEOS,\n args: [props.video.id]\n };\n\n return {\n action: Actions.Clips.CLIP_INTERACTIVES,\n application: AppChannels.CLIPS,\n args: [props.video.id]\n };\n }\n\n return (\n <section className='pb-4' ref={props.containerRef} id={PlayPageAnchor.Interactives}>\n <FixedWidget<InteractiveWidgetItemProps>\n name={LanguageService.getPhrase(namespace, 'interactives', { count: props.interactives.length })}\n contents={WidgetContents.Interactives}\n collection={props.interactives}\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 appLink={getAppLink()}\n childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite,\n imageCdnUrl: props.imageCdnUrl,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n }\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"series\":\"wTlJJ\",\"badgeListContainer\":\"Vaout\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { Clip, PresentationAudience, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\n\nimport styles from './title-and-actions.scss';\n\nconst namespace = 'shared.playPage';\n\ninterface PlayPageTitleAndActionsProps {\n media: Clip | Video;\n yearGroups: YearGroup[];\n audiences: PresentationAudience[];\n featureAccess: VideoFeaturesHash;\n getSeriesAppLink?: (series: Series) => Core.AppLink;\n originalVideoAppLink?: Core.AppLink;\n shareId: string;\n}\n\nexport function PlayPageTitleAndActions(props: PlayPageTitleAndActionsProps): JSX.Element {\n const mergedAudience = useMergeAudiences(props.media.subjectPresentationAudiences?.data, props.audiences);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const titleContainerRef = React.useRef<HTMLDivElement>(null);\n\n const hasBadges = (\n (VideoHelper.isVideo(props.media) && !!props.media.rating?.value) ||\n (VideoHelper.isVideo(props.media) && !!props.media.productionYear) ||\n !!props.media.subjectPresentationAudiences?.data?.length\n );\n\n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const canViewOriginal = !!props.originalVideoAppLink &&\n VideoHelper.isClip(props.media) &&\n VideoHelper.canViewOriginalVideo(props.media);\n\n return (\n <section className='mb-3 position-relative' ref={containerRef}>\n <div className='d-inline-block w-100' ref={titleContainerRef}>\n {props.featureAccess.canNavigate &&\n <div className='ms-2 float-end'>\n <Actions\n actions={videoActions.getVideoActions(props.media)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.media)}\n />\n </div>\n }\n\n {!!VideoHelper.isVideo(props.media) && (\n <VideoSubText\n type='series'\n video={props.media}\n appLink={props.getSeriesAppLink?.(props.media.series)}\n className={`${styles.series} text-truncate mw-100`}\n analyticsOptions={{ location: LocationContext.PlayPage }}\n />\n )}\n <h1 className='h4 mb-2 mw-100'>\n <span className='align-self-center'>{props.media.name}</span>\n <RestrictionPadlock\n tooltipPlacement='right'\n className='d-inline-block ps-1'\n video={props.media}\n yearGroups={props.yearGroups}\n />\n </h1>\n\n {hasBadges && (\n <BadgeListContainer className={styles.badgeListContainer}>\n <AudienceLabel\n audience={mergedAudience}\n className='bg-white text-dark'\n border='dark'\n />\n {VideoHelper.isVideo(props.media) && (\n <Badge type={BadgeType.Rating} data={props.media.rating} />\n )}\n {VideoHelper.isVideo(props.media) && (\n <Badge type={BadgeType.ProductionYear} data={props.media.productionYear} />\n )}\n </BadgeListContainer>\n )}\n </div>\n\n {VideoHelper.isClip(props.media) && canViewOriginal && (\n <p className='clamp-1'>\n <Text namespace={namespace} phrase='viewOriginal' />\n \n <AppLink className='info-link' appLink={props.originalVideoAppLink}>\n {props.media._parentVideo?.name}\n </AppLink>\n </p>\n )}\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mask\":\"LL7My\",\"centeredIcon\":\"x_1f6\",\"bgImage\":\"QoLgZ\",\"centeredOverlay\":\"BcnSH\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './player-placeholder.scss';\n\nconst namespace = 'shared.playerPlaceholder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PlayerPlaceholderProps {\n video: VideoTypes;\n type: 'pip' | 'public';\n appLink?: Core.AppLink;\n}\n\nexport function PlayerPlaceholder(props: PlayerPlaceholderProps): JSX.Element {\n switch (props.type) {\n case 'pip':\n return <PipPlaceholder {...props} />;\n case 'public':\n return <PublicPlaceholder {...props} />;\n default:\n return <></>;\n }\n}\n\nconst PipPlaceholder = (props: PlayerPlaceholderProps) => (\n <div\n className={`position-relative responsive-img ${styles.bgImage}`}\n style={{ backgroundImage: `url('${VideoHelper.getThumbnail(props.video)?.url ?? ''}')` }}\n >\n <p className={`m-0 text-white h3 ${styles.centeredOverlay}`}>{getPhrase('playingPiP')}</p>\n <div className={styles.mask} />\n </div>\n);\n\nconst PublicPlaceholder = (props: PlayerPlaceholderProps) => {\n const thumbnailUrl = ImageHelper.createUrl(VideoHelper.getThumbnail(props.video)?.url ?? '', {\n size: ImageSize.Large\n });\n\n return (\n <div\n className={`position-relative responsive-img ${styles.bgImage}`}\n style={{ backgroundImage: `url('${thumbnailUrl}')` }}\n >\n <AppLink\n appLink={props.appLink}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.PlayPage,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n analyticsData={{}}\n >\n <SvgContainer\n svgName={cvSvgLibrary.PlayCircle}\n className={styles.centeredIcon}\n />\n <div className={styles.mask} />\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 { 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';\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}\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 <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 ? (\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 />\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 );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { Config } from 'libs/shared/interfaces/models/Config';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canWatchPublicly: (videoId: string) => boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n /**\n * Publicly available video ids are maintained on the backend config. \n */\n function canWatchPublicly(videoId: string): boolean {\n if (!videoId)\n return false;\n\n return !!config.data?.allowedPublicVideos?.[videoId];\n }\n\n return {\n canWatchPublicly,\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\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 { CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\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(videos: VideoCollection | Video[], 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 videoIds = videos && (Array.isArray(videos)\n ? videos.filter(Boolean).map(v => v.id)\n : videos.data.filter(Boolean).map(v => v.id));\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.data?.isAuthenticated)\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 ...r,\n ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace),\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ]);\n }, [ videoIds?.length, currentUser.data?.isAuthenticated ]);\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","namespace","PlayPageResources","hasPermissions","resources","video","isLearner","data","links","filteredResources","filter","r","includes","metadata","resourceType","getResources","length","id","containerRef","name","count","contents","collection","prefetched","childComponent","R","extraChildComponentProps","imageCdnUrl","imageErrorFallbackUrl","resourceThumbnailFallbackUrl","actionBehaviour","canViewResources","location","titlePosition","onClickDownload","resource","analyticsData","actionType","entity","getChildAppLink","getAppLink","analyticsOptions","workflowPhase","descriptor","SignUp","PointOfInterestList","Text","phrase","pointsOfInterest","map","poi","timeStamp","DurationHelper","startTime","suppressInteractivity","key","description","DivButton","onClickPoiItem","SCROLL_HEIGHT_MAX","VideoAtAGlance","canViewGlance","learningIntentionMarkdownHTML","tags","VideoHelper","tag","tagType","TagType","getTags","autoHeight","autoHeightMax","height","dangerouslySetInnerHTML","__html","TagList","TagHelper","getTagAppLink","time","setStartTime","POI_LINK_LINE","useLearningIntentionMarkdown","hasGlanceData","useState","markdownHTML","setMarkdownHTML","useEffect","content","glance","learningIntention","replace","format","VideoDetailsPartial","style","width","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","InteractiveWidgetItem","interactive","thumbnailSize","preloadImage","questionsAppLink","args","questionsNumber","_timepoints","value","VideoThumbnail","type","textPosition","ThumbnailTextPosition","appLink","imageOptions","preload","setFavourite","canFavourite","hideDuration","ThumbnailText","AppLink","options","smartCount","DYNAMIC_RATIO_IMAGE_OPTIONS","resizeType","getImageType","MasterTypeHelper","ResourceFileType","pdf","url","ResourceThumbnail","rotation","thumbnail","thumbnailUrl","imageType","ImageHelper","previewUrl","UrlHelper","getThumbnailUrl","BaseImage","imageStyle","transform","alt","errorFallbackImageSrc","errorFallbackImageClassName","imageClassName","preventLoad","ResourceHelper","getResourceTypeName","ResourceTile","isResource","MasterType","baseClass","getColour","theme","containerClass","applyHoverState","getInnerContainerClass","Tooltip","title","thumbnailContainerClass","e","preventDefault","stopPropagation","hideTypeBadge","TypeBadge","typeId","TitleSubText","ResourceWidgetItem","canPreview","sm","logAction","AnalyticsHelper","tileProps","SeoConstants","href","target","ThemeRequests","themeImages","themes","formatData","sort","a","b","localeCompare","createTheme","success","error","always","invalidationKeys","updateTheme","deleteTheme","usePrevious","current","useTableOfContentsScroll","elements","activeId","hasDoneInitialScroll","setHasDoneInitialScroll","previousId","currentId","find","heading","rec","getBoundingClientRect","window","scrollBy","top","behavior","downloadRef","DownloadHelper","getVideoDownloadUrl","downloadProxyUrl","token","downloadResource","iframe","document","createElement","body","appendChild","display","src","ArchivedBanner","getPhrase","mapTypeId","hasStudentExperience","RestrictionBanner","restrictions","yearGroups","canManageVideoAccess","baseClassName","application","action","params","objectId","objectTypeId","ClipWidgetItem","clip","mergedAudience","subjectPresentationAudiences","audiences","audience","PlayPageClips","canViewClips","clips","parentIsVideo","LanguageService","WidgetContents","TextHelper","PlayPageInteractives","canViewInteractives","interactives","PlayPageTitleAndActions","media","titleContainerRef","hasBadges","rating","productionYear","videoActions","useVideoActions","shareId","canViewOriginal","originalVideoAppLink","featureAccess","canNavigate","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","VideoSubText","getSeriesAppLink","series","RestrictionPadlock","tooltipPlacement","BadgeListContainer","AudienceLabel","border","Badge","_parentVideo","PlayerPlaceholder","PipPlaceholder","PublicPlaceholder","backgroundImage","RelatedVideos","currentUser","isAuthenticated","relatedVideos","hasError","hasCompleted","videos","canAutoplay","currentVideo","getSubTextAppLink","moviesAndTv","mtv","getVideoAppLink","presentationAudiences","getPreviewQuestionsAppLink","hasMore","useVideoFeatureAccess","hasLocalPermissions","hasProduct","config","hasNP","canWatchPublicly","videoId","allowedPublicVideos","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","useVideoMixin","hydratedVideos","Set","videoIds","isArray","Boolean","v","request","setRequest","unhydratedVideos","forEach","has","push","add","flightNamespace"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4060],{38365:(e,t,n)=>{n.d(t,{n:()=>w,W:()=>N});var a=n(32735),r=n(80247),i=n(80130),o=n(92802),l=n(91967),c=n(1048),s=n(36848),m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function u(e){var t=e.label,n=e.checkboxLabelClassName,r=e.checkboxLabelFontWeight,o=e.className,l=m(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return a.createElement(i.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check ".concat(o||"")},a.createElement(w,Object.assign({className:"form-check-input"},l)),a.createElement(i.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===r?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&a.createElement(a.Fragment,null,a.createElement("span",null," "),a.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),b=n(35223);function v(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var y=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},E="shared.formField";function w(e){var t,n,i=e.children,s=e.showLoadingSpinner,m=y(e,["children","showLoadingSpinner"]),u=(t=a.useState(e.type),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,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.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)?h(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.")}()),p=u[0],f=u[1],v=l.q.isFunction(i)?function(e){return i(e)}:a.Children.count(i)?i:null;if("password"!==m.type)return s?a.createElement("div",{className:"position-relative"},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v),a.createElement("div",{className:g.spinner},a.createElement(r.Z,{animation:"border",size:"sm"}))):a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v);var E="position-relative ".concat(g.passwordContainer);return m.className&&(E+=" ".concat(m.className)),m.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),a.createElement("div",{className:E},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),v),"password"===m.type&&a.createElement(d.x,{svgName:"password"===p?b.vn.VisibleOn:b.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function N(e){var t=e.label,n=e.className,r=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,m=e.infoTooltipPlacement,h=e.infoText,N=e.formSize,S=e.showOptionalLabel,C=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),k=(0,o.u6)(),O=k.errors,x=k.touched,I=function(){};if("checkbox"===C.type){var R=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(R.onChange=I),a.createElement(u,Object.assign({},R))}var j=Object.assign(Object.assign({},C),{className:f.w.getCustomFormControlClassName(O,x,C.name,N,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),a.createElement(i.Z.Group,{className:"form-group"},!!t&&a.createElement(i.Z.Label,{htmlFor:C.id,className:"d-flex align-items-center"},t,l&&a.createElement("span",{className:"text-danger"},"*"),s&&a.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:b.vn.Info,title:s,tooltipPlacement:m,tooltipSpanHack:!0}),S&&a.createElement("span",{className:"text-secondary"}," ",a.createElement(p.x,{namespace:E,phrase:"optional"})),!!r&&!!C.maxLength&&a.createElement("div",{className:"ms-auto"},a.createElement(v,{fieldName:C.name,limit:C.maxLength}))),a.createElement(w,Object.assign({},j)),!!h&&a.createElement(i.Z.Text,{className:"text-secondary"},h),a.createElement(o.Bc,{name:C.name},(function(e){return a.createElement(i.Z.Control.Feedback,{type:"invalid"},e)})))}w.defaultProps={autoComplete:"off"},N.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>m,n:()=>s});var a=n(32735),r=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,m=e.onSubmit,u=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(a){t.hasOwnProperty(a)&&(o.t.isObject(n[a])?e(n[a]):null===t[a]&&delete t[a])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.J9,Object.assign({enableReinitialize:!0},u,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=a.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;m(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var a=0,c=Object.entries(n.errors);a<c.length;a++){var s=(e=c[a],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.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)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=s[0],u=s[1];o(m,u)}r(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function m(){return(0,r.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},73814:(e,t,n)=>{n.d(t,{w:()=>r});var a=n(92802),r={getCustomFormControlClassName:function(e,t,n,r,i,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,r),(0,a.u9)(t,n)&&(0,a.u9)(e,n)&&(l+=" is-invalid"),i&&(l+=" ".concat(i)),l}}},9064:(e,t,n)=>{function a(e){var t,n,a,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return null;var o=Object.assign(Object.assign({},i),{id:e.id,interactiveId:e.interactiveId,name:e.name,status:e.status,originType:e.originType});return(null===(t=null==e?void 0:e._parentClip)||void 0===t?void 0:t.id)&&(o.clip={id:null===(n=null==e?void 0:e._parentClip)||void 0===n?void 0:n.id}),(null===(a=null==e?void 0:e._parentVideo)||void 0===a?void 0:a.id)&&(o.video={id:null===(r=null==e?void 0:e._parentVideo)||void 0===r?void 0:r.id}),o}n.d(t,{T:()=>a})},25050:(e,t,n)=>{n.r(t),n.d(t,{EditInteractiveDetailsView:()=>G});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),c=n(28400),s=n(49985),m=n(65858),u=n(80130),d=n(68050),p=n(69111),f=n(92802),b=n(5173),v=n(38365),g=n(82644),h=n(13876),y=n(34509),E=n(89965),w=n(27022);const N={dropdownMenu:"eDHti"};function S(e){function t(t){return e.selectedContentRegions.some((function(e){return e.id.toString()===t.id.toString()}))}var n,r=e.options.find((function(e){return e.systemName===w.t.GLOBAL})),i=t(r),o=e.options.filter((function(e){return e.systemName!==w.t.GLOBAL}));return a.createElement(y.Z,null,a.createElement(y.Z.Toggle,{id:e.id,variant:"outline-dark"},(null===(n=e.selectedContentRegions)||void 0===n?void 0:n.length)?e.selectedContentRegions.length>1?"".concat(e.selectedContentRegions.length," content regions"):e.selectedContentRegions[0].name:"None"),a.createElement(y.Z.Menu,{className:"".concat(N.dropdownMenu," px-2")},a.createElement(E.X,{key:r.id,label:r.name,name:r.id,id:r.id,onChange:function(){return function(t,n){n?e.onUpdateContentRegions([]):e.onUpdateContentRegions([t])}(r,i)},checked:i,className:"my-1"}),a.createElement(y.Z.Divider,null),o.map((function(n){return a.createElement(E.X,{key:n.id,label:n.name,name:n.id,id:n.id,onChange:function(){return a=n,void(t(n)?e.onUpdateContentRegions(e.selectedContentRegions.filter((function(e){return e.id.toString()!==a.id.toString()}))):e.onUpdateContentRegions(e.selectedContentRegions.concat(a)));var a},checked:t(n),className:"my-1 ".concat(i?"disabled":""),disabled:i})}))))}var C=n(83345),k=n(3332),O=n(54610),x=n(68626),I="interactives.editInteractiveDetails",R=i.T.encloseNamespace(I);function j(e){var t,n=e.interactiveMetadata,r=e.onClickCancel,i=(0,g.b)();return a.createElement(f.l0,null,a.createElement("div",{className:"row form-group"},a.createElement("div",{className:"col-5"},a.createElement(k.u,{video:n,type:"cosmetic",imageOptions:{size:O.h2.Small},textPosition:x.z.Independent,preload:!0})),a.createElement("div",{className:"col-7"},a.createElement("h2",{className:"h6"},i.values.name))),a.createElement(v.W,{label:R("nameLabel"),type:"text",name:"name",id:"name",placeholder:R("namePlaceholder"),autoFocus:!0,value:i.values.name}),a.createElement(v.W,{label:R("descriptionLabel"),component:"textarea",name:"description",id:"description",placeholder:R("descriptionPlaceholder"),value:i.values.description}),!!(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&a.createElement("div",{className:"pb-2"},a.createElement(v.W,{label:R("contentRegions"),name:"contentRegions",id:"contentRegions",value:i.values.contentRegions},(function(){return a.createElement("div",{className:"w-50"},a.createElement(S,{id:e.interactiveMetadata.id,options:e.contentRegions,selectedContentRegions:i.values.contentRegions,onUpdateContentRegions:function(e){return i.setFieldValue("contentRegions",e)}}))})),a.createElement(u.Z.Control.Feedback,{className:"d-block mt-n2",type:"invalid"},i.errors.contentRegions)),a.createElement(u.Z.Label,null,a.createElement(C.x,{namespace:I,phrase:"interactiveFeatures"})),a.createElement(d.Z,null,a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("preventScrubbingLabel"),name:"preventScrubbing",id:"preventScrubbing",type:"checkbox",checked:i.values.preventScrubbing}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"preventScrubbing"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"preventScrubbingExplain"}))))),a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("immediateFeedbackLabel"),name:"immediateFeedback",id:"immediateFeedback",type:"checkbox",checked:i.values.immediateFeedback}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"immediateFeedback"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(C.x,{namespace:I,phrase:"immediateFeedbackExplain"})))))),a.createElement(h.u,null,a.createElement(h.u.Cancel,{onClick:r}),a.createElement(h.u.Submit,{variant:"dark",text:e.publish?R("publish"):R("save")})))}function T(e){var t,n,r,i,o=e.interactive,l=e.interactiveMetadata,c=e.onSubmit,s=e.onClickCancel,m=e.publish,u={name:l.name||"",description:l.description,immediateFeedback:o.immediateFeedback,preventScrubbing:o.preventScrubbing};return(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&(u.contentRegions=Array.isArray(l.contentRegions)?l.contentRegions:l.contentRegions.data),a.createElement(g.n,{initialValues:u,validationSchema:(r=!!(null===(n=e.contentRegions)||void 0===n?void 0:n.length),i={name:b.Z_().trim().max(255,(function(){return R("titleTooLong")})).required((function(){return R("titleRequired")})).default(""),description:b.Z_().max(16e3,(function(){return R("descriptionTooLong")})).default("")},r&&(i.contentRegions=b.IX().min(1,"Resources must have a content region").default([])),b.Ry().shape(i)),allowInitialSubmit:!0,onSubmit:c},a.createElement(j,{interactiveMetadata:l,onClickCancel:s,publish:m,contentRegions:e.contentRegions}))}var F=n(9111),L=n(5960),P=n(16714),V=n(20768),A=n(69883),Z=n(22902),M=n(31908),z=n(14070),_=n(97291),D=n(9064),U=i.T.encloseNamespace("interactives.editInteractiveDetailsView");function G(e){var t=e.interactiveMetadataId,n=e.publish,i=e.closePopup,u=(0,r.I0)(),d=(0,A.Z)(),p=(0,Z.T)().hasPermissions,f=l.a.useBasicFetch(V.b.interactiveMetadata(t)),b=l.a.useBasicFetch(f.data?V.b.interactive(f.data.interactiveId):null);function v(){d.error(U("error")),i()}function g(){var e=(0,D.T)(f.data);s.k.logUserAction(e,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:m.eu.Discard,descriptor:n?m.Iq.Publish:void 0}),i()}var h=!!f.data&&!!b.data;return a.createElement(F.G,{title:U(n?"publishHeader":"editHeader"),closePopup:g,showLoadingSpinner:!h},a.createElement(T,{interactive:b.data,interactiveMetadata:f.data,onClickCancel:g,onSubmit:function(a){var r={id:b.data.id,name:a.name,duration:M.M.getDuration(f.data),immediateFeedback:!!a.immediateFeedback,preventScrubbing:!!a.preventScrubbing},g={name:a.name,description:a.description,status:n?L.X.Published:f.data.status},h=0,y=function(){h<1?h++:function(a){i(),d.success(U("success",{name:a,escapeText:!0}));var r=(0,D.T)(f.data);s.k.logUserAction(r,{actionType:n?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:n?m.eu.Complete:m.eu.Save,descriptor:n?m.Iq.Publish:void 0}),n&&(p(P.C.StudentExperience)?o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.VIEW_INTERACTIVE,args:[e.interactiveMetadataId,c.m.slugify(f.data.name)]}):o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.CONTRIBUTE_INTERACTIVE,args:[t]}))}(a.name)};l.a.fetch(u,V.b.updateInteractive(b.data.id,r,y,v)),l.a.fetch(u,V.b.updateInteractiveMetadata(f.data.id,g,y,v))},publish:n}))}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),m=(0,o.zG)(),u=`${c}-cols`,d=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==m?`-${e}`:"";null!=n&&d.push(`${u}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...d)})}));c.displayName="Row";const s=c}}]);
|
|
2
|
-
//# sourceMappingURL=4060-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4060],{38365:(e,t,n)=>{n.d(t,{n:()=>C,W:()=>w});var a=n(32735),r=n(80247),i=n(80130),o=n(92802),l=n(91967),c=n(1048),s=n(36848),m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function u(e){var t=e.label,n=e.checkboxLabelClassName,r=e.checkboxLabelFontWeight,o=e.className,l=m(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return a.createElement(i.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check ".concat(o||"")},a.createElement(C,Object.assign({className:"form-check-input"},l)),a.createElement(i.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===r?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&a.createElement(a.Fragment,null,a.createElement("span",null," "),a.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),b=n(35223);function v(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var y=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},E="shared.formField";function C(e){var t,n,i=e.children,s=e.showLoadingSpinner,m=y(e,["children","showLoadingSpinner"]),u=(t=a.useState(e.type),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,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.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)?h(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.")}()),p=u[0],f=u[1],v=l.q.isFunction(i)?function(e){return i(e)}:a.Children.count(i)?i:null;if("password"!==m.type)return s?a.createElement("div",{className:"position-relative"},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v),a.createElement("div",{className:g.spinner},a.createElement(r.Z,{animation:"border",size:"sm"}))):a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize"])),v);var E="position-relative ".concat(g.passwordContainer);return m.className&&(E+=" ".concat(m.className)),m.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),a.createElement("div",{className:E},a.createElement(o.gN,Object.assign({},c.t.omit(m,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),v),"password"===m.type&&a.createElement(d.x,{svgName:"password"===p?b.vn.VisibleOn:b.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function w(e){var t=e.label,n=e.className,r=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,m=e.infoTooltipPlacement,h=e.infoText,w=e.formSize,N=e.showOptionalLabel,S=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),k=(0,o.u6)(),O=k.errors,x=k.touched,I=function(){};if("checkbox"===S.type){var R=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(R.onChange=I),a.createElement(u,Object.assign({},R))}var j=Object.assign(Object.assign({},S),{className:f.w.getCustomFormControlClassName(O,x,S.name,w,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),a.createElement(i.Z.Group,{className:"form-group"},!!t&&a.createElement(i.Z.Label,{htmlFor:S.id,className:"d-flex align-items-center"},t,l&&a.createElement("span",{className:"text-danger"},"*"),s&&a.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:b.vn.Info,title:s,tooltipPlacement:m,tooltipSpanHack:!0}),N&&a.createElement("span",{className:"text-secondary"}," ",a.createElement(p.x,{namespace:E,phrase:"optional"})),!!r&&!!S.maxLength&&a.createElement("div",{className:"ms-auto"},a.createElement(v,{fieldName:S.name,limit:S.maxLength}))),a.createElement(C,Object.assign({},j)),!!h&&a.createElement(i.Z.Text,{className:"text-secondary"},h),a.createElement(o.Bc,{name:S.name},(function(e){return a.createElement(i.Z.Control.Feedback,{type:"invalid"},e)})))}C.defaultProps={autoComplete:"off"},w.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>m,n:()=>s});var a=n(32735),r=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var c=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,m=e.onSubmit,u=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(a){t.hasOwnProperty(a)&&(o.t.isObject(n[a])?e(n[a]):null===t[a]&&delete t[a])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(r.J9,Object.assign({enableReinitialize:!0},u,{initialValues:d,onSubmit:function(t,a){var r=a.setSubmitting,i=a.resetForm,o=a.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;m(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var a=0,c=Object.entries(n.errors);a<c.length;a++){var s=(e=c[a],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.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)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=s[0],u=s[1];o(m,u)}r(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:a.Children.count(e.children)?e.children:null)}function m(){return(0,r.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},73814:(e,t,n)=>{n.d(t,{w:()=>r});var a=n(92802),r={getCustomFormControlClassName:function(e,t,n,r,i,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,r),(0,a.u9)(t,n)&&(0,a.u9)(e,n)&&(l+=" is-invalid"),i&&(l+=" ".concat(i)),l}}},9064:(e,t,n)=>{function a(e){var t,n,a,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return null;var o=Object.assign(Object.assign({},i),{id:e.id,interactiveId:e.interactiveId,name:e.name,status:e.status,originType:e.originType});return(null===(t=null==e?void 0:e._parentClip)||void 0===t?void 0:t.id)&&(o.clip={id:null===(n=null==e?void 0:e._parentClip)||void 0===n?void 0:n.id}),(null===(a=null==e?void 0:e._parentVideo)||void 0===a?void 0:a.id)&&(o.video={id:null===(r=null==e?void 0:e._parentVideo)||void 0===r?void 0:r.id}),o}n.d(t,{T:()=>a})},25050:(e,t,n)=>{n.r(t),n.d(t,{EditInteractiveDetailsView:()=>$});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),c=n(28400),s=n(49985),m=n(65858),u=n(80130),d=n(68050),p=n(69111),f=n(92802),b=n(5173),v=n(38365),g=n(82644),h=n(13876),y=n(34509),E=n(89965),C=n(27022);const w={dropdownMenu:"eDHti"};function N(e){function t(t){return e.selectedContentRegions.some((function(e){return e.id.toString()===t.id.toString()}))}var n,r=e.options.find((function(e){return e.systemName===C.t.GLOBAL})),i=t(r),o=e.options.filter((function(e){return e.systemName!==C.t.GLOBAL}));return a.createElement(y.Z,null,a.createElement(y.Z.Toggle,{id:e.id,variant:"outline-dark"},(null===(n=e.selectedContentRegions)||void 0===n?void 0:n.length)?e.selectedContentRegions.length>1?"".concat(e.selectedContentRegions.length," content regions"):e.selectedContentRegions[0].name:"None"),a.createElement(y.Z.Menu,{className:"".concat(w.dropdownMenu," px-2")},a.createElement(E.X,{key:r.id,label:r.name,name:r.id,id:r.id,onChange:function(){return function(t,n){n?e.onUpdateContentRegions([]):e.onUpdateContentRegions([t])}(r,i)},checked:i,className:"my-1"}),a.createElement(y.Z.Divider,null),o.map((function(n){return a.createElement(E.X,{key:n.id,label:n.name,name:n.id,id:n.id,onChange:function(){return a=n,void(t(n)?e.onUpdateContentRegions(e.selectedContentRegions.filter((function(e){return e.id.toString()!==a.id.toString()}))):e.onUpdateContentRegions(e.selectedContentRegions.concat(a)));var a},checked:t(n),className:"my-1 ".concat(i?"disabled":""),disabled:i})}))))}var S=n(83345),k=n(3332),O=n(54610),x=n(68626),I="interactives.editInteractiveDetails",R=i.T.encloseNamespace(I);function j(e){var t,n=e.interactiveMetadata,r=e.onClickCancel,i=e.imageCdnUrl,o=(0,g.b)();return a.createElement(f.l0,null,a.createElement("div",{className:"row form-group"},a.createElement("div",{className:"col-5"},a.createElement(k.u,{video:n,type:"cosmetic",imageOptions:{size:O.h2.Small},textPosition:x.z.Independent,imageCdnUrl:i,preload:!0})),a.createElement("div",{className:"col-7"},a.createElement("h2",{className:"h6"},o.values.name))),a.createElement(v.W,{label:R("nameLabel"),type:"text",name:"name",id:"name",placeholder:R("namePlaceholder"),autoFocus:!0,value:o.values.name}),a.createElement(v.W,{label:R("descriptionLabel"),component:"textarea",name:"description",id:"description",placeholder:R("descriptionPlaceholder"),value:o.values.description}),!!(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&a.createElement("div",{className:"pb-2"},a.createElement(v.W,{label:R("contentRegions"),name:"contentRegions",id:"contentRegions",value:o.values.contentRegions},(function(){return a.createElement("div",{className:"w-50"},a.createElement(N,{id:e.interactiveMetadata.id,options:e.contentRegions,selectedContentRegions:o.values.contentRegions,onUpdateContentRegions:function(e){return o.setFieldValue("contentRegions",e)}}))})),a.createElement(u.Z.Control.Feedback,{className:"d-block mt-n2",type:"invalid"},o.errors.contentRegions)),a.createElement(u.Z.Label,null,a.createElement(S.x,{namespace:I,phrase:"interactiveFeatures"})),a.createElement(d.Z,null,a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("preventScrubbingLabel"),name:"preventScrubbing",id:"preventScrubbing",type:"checkbox",checked:o.values.preventScrubbing}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"preventScrubbing"},a.createElement(S.x,{namespace:I,phrase:"preventScrubbingLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(S.x,{namespace:I,phrase:"preventScrubbingExplain"}))))),a.createElement(p.Z,null,a.createElement(u.Z.Group,{className:"form-group"},a.createElement("div",{className:"form-check"},a.createElement(v.n,{className:"form-check-input",label:R("immediateFeedbackLabel"),name:"immediateFeedback",id:"immediateFeedback",type:"checkbox",checked:o.values.immediateFeedback}),a.createElement(u.Z.Label,{className:"form-check-label",htmlFor:"immediateFeedback"},a.createElement(S.x,{namespace:I,phrase:"immediateFeedbackLabel"})," "),a.createElement("div",{className:"text-secondary"},a.createElement(S.x,{namespace:I,phrase:"immediateFeedbackExplain"})))))),a.createElement(h.u,null,a.createElement(h.u.Cancel,{onClick:r}),a.createElement(h.u.Submit,{variant:"dark",text:e.publish?R("publish"):R("save")})))}function T(e){var t,n,r,i,o=e.interactive,l=e.interactiveMetadata,c=e.onSubmit,s=e.onClickCancel,m=e.publish,u=e.imageCdnUrl,d={name:l.name||"",description:l.description,immediateFeedback:o.immediateFeedback,preventScrubbing:o.preventScrubbing};return(null===(t=e.contentRegions)||void 0===t?void 0:t.length)&&(d.contentRegions=Array.isArray(l.contentRegions)?l.contentRegions:l.contentRegions.data),a.createElement(g.n,{initialValues:d,validationSchema:(r=!!(null===(n=e.contentRegions)||void 0===n?void 0:n.length),i={name:b.Z_().trim().max(255,(function(){return R("titleTooLong")})).required((function(){return R("titleRequired")})).default(""),description:b.Z_().max(16e3,(function(){return R("descriptionTooLong")})).default("")},r&&(i.contentRegions=b.IX().min(1,"Resources must have a content region").default([])),b.Ry().shape(i)),allowInitialSubmit:!0,onSubmit:c},a.createElement(j,{interactiveMetadata:l,onClickCancel:s,publish:m,imageCdnUrl:u,contentRegions:e.contentRegions}))}var F=n(9111),L=n(5960),P=n(16714),V=n(39151),A=n(20768),Z=n(69883),U=n(22902),M=n(31908),z=n(14070),_=n(97291),D=n(9064),G=i.T.encloseNamespace("interactives.editInteractiveDetailsView");function $(e){var t,n=e.interactiveMetadataId,i=e.publish,u=e.closePopup,d=(0,r.I0)(),p=(0,Z.Z)(),f=(0,U.T)().hasPermissions,b=l.a.useBasicFetch(A.b.interactiveMetadata(n)),v=l.a.useBasicFetch(b.data?A.b.interactive(b.data.interactiveId):null),g=l.a.useBasicFetch(V.L.config());function h(){p.error(G("error")),u()}function y(){var e=(0,D.T)(b.data);s.k.logUserAction(e,{actionType:i?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:m.eu.Discard,descriptor:i?m.Iq.Publish:void 0}),u()}var E=!!b.data&&!!v.data&&!!g.data;return a.createElement(F.G,{title:G(i?"publishHeader":"editHeader"),closePopup:y,showLoadingSpinner:!E},a.createElement(T,{interactive:v.data,interactiveMetadata:b.data,onClickCancel:y,onSubmit:function(t){var a={id:v.data.id,name:t.name,duration:M.M.getDuration(b.data),immediateFeedback:!!t.immediateFeedback,preventScrubbing:!!t.preventScrubbing},r={name:t.name,description:t.description,status:i?L.X.Published:b.data.status},g=0,y=function(){g<1?g++:function(t){u(),p.success(G("success",{name:t,escapeText:!0}));var a=(0,D.T)(b.data);s.k.logUserAction(a,{actionType:i?m.Vw.Publish:m.Vw.Edit,entity:m.py.Interactive,location:m.LZ.EditInteractiveDetails,workflowPhase:i?m.eu.Complete:m.eu.Save,descriptor:i?m.Iq.Publish:void 0}),i&&(f(P.C.StudentExperience)?o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.VIEW_INTERACTIVE,args:[e.interactiveMetadataId,c.m.slugify(b.data.name)]}):o.Q.C$.trigger({application:_.O.INTERACTIVES,action:z.e.Interactives.CONTRIBUTE_INTERACTIVE,args:[n]}))}(t.name)};l.a.fetch(d,A.b.updateInteractive(v.data.id,a,y,h)),l.a.fetch(d,A.b.updateInteractiveMetadata(b.data.id,r,y,h))},publish:i,imageCdnUrl:null===(t=g.data)||void 0===t?void 0:t.imageCdnUrl}))}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),m=(0,o.zG)(),u=`${c}-cols`,d=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==m?`-${e}`:"";null!=n&&d.push(`${u}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...d)})}));c.displayName="Row";const s=c}}]);
|
|
2
|
+
//# sourceMappingURL=4060-4ab06f9f5e-lite.chunk.js.map
|