@clickview/lite 0.50.1-rc.2 → 0.50.1-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/{2004-4e2d98041c-lite.chunk.js → 2004-ea94849ed1-lite.chunk.js} +3 -3
  3. package/dist/scripts/{2004-4e2d98041c-lite.chunk.js.map → 2004-ea94849ed1-lite.chunk.js.map} +1 -1
  4. package/dist/scripts/2120-f811a932c9-lite.chunk.js +2 -0
  5. package/dist/scripts/2120-f811a932c9-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{6587-08d5d85b71-lite.chunk.js → 6587-c9af2d4a7e-lite.chunk.js} +2 -2
  7. package/dist/scripts/6587-c9af2d4a7e-lite.chunk.js.map +1 -0
  8. package/dist/scripts/9139-2e7265c593-lite.chunk.js +2 -0
  9. package/dist/scripts/9139-2e7265c593-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{9211-0381d3e715-lite.chunk.js → 9211-10bda850c6-lite.chunk.js} +2 -2
  11. package/dist/scripts/9211-10bda850c6-lite.chunk.js.map +1 -0
  12. package/dist/scripts/986-c797fed10a-lite.chunk.js +3 -0
  13. package/dist/scripts/986-c797fed10a-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{bundle-815f926b0f.min.js → bundle-9179e47aef.min.js} +3 -3
  15. package/dist/scripts/{bundle-815f926b0f.min.js.map → bundle-9179e47aef.min.js.map} +1 -1
  16. package/package.json +1 -1
  17. package/dist/scripts/2120-82a7b90997-lite.chunk.js +0 -2
  18. package/dist/scripts/2120-82a7b90997-lite.chunk.js.map +0 -1
  19. package/dist/scripts/6587-08d5d85b71-lite.chunk.js.map +0 -1
  20. package/dist/scripts/9139-91fe2783ce-lite.chunk.js +0 -2
  21. package/dist/scripts/9139-91fe2783ce-lite.chunk.js.map +0 -1
  22. package/dist/scripts/9211-0381d3e715-lite.chunk.js.map +0 -1
  23. package/dist/scripts/986-ea6d103647-lite.chunk.js +0 -3
  24. package/dist/scripts/986-ea6d103647-lite.chunk.js.map +0 -1
  25. /package/dist/scripts/{2004-4e2d98041c-lite.chunk.js.LICENSE.txt → 2004-ea94849ed1-lite.chunk.js.LICENSE.txt} +0 -0
  26. /package/dist/scripts/{986-ea6d103647-lite.chunk.js.LICENSE.txt → 986-c797fed10a-lite.chunk.js.LICENSE.txt} +0 -0
  27. /package/dist/scripts/{bundle-815f926b0f.min.js.LICENSE.txt → bundle-9179e47aef.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9139],{72553:(e,t,n)=>{n.d(t,{j:()=>m});var r=n(32735),a=n(42029),l=n(83345),i=n(49439);const c={copyrightDisclaimer:"z8YoI",overlayContainer:"eJDbJ"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var o="shared.copyrightDisclaimer",s=150;function m(e){var t,n,m,d=(n=(0,i.L)({}),m=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],u=!0,o=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){o=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw a}}return c}}(n,m)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(n,m)||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=d[0],v=d[1];return r.createElement("div",{ref:p,className:e.className},r.createElement("p",{className:"".concat(c.copyrightDisclaimer," mb-1")},r.createElement(l.x,{namespace:o,phrase:"copyrightDisclaimer"})),r.createElement(a.Z,{target:p.current,show:v,placement:e.overflowPlacement&&document.documentElement.clientHeight-(null===(t=p.current)||void 0===t?void 0:t.getBoundingClientRect().bottom)<s?e.overflowPlacement:e.placement},r.createElement("div",{className:"".concat(c.overlayContainer," mw-100 bg-white border rounded-3 p-2")},r.createElement("p",null,r.createElement(l.x,{namespace:o,phrase:"warning"})),r.createElement("p",{className:"fw-semibold mb-0"},r.createElement(l.x,{namespace:o,phrase:"sharing"})))))}},93439:(e,t,n)=>{n.d(t,{h:()=>b});var r=n(32735),a=n(44599),l=n(83345),i=n(85597),c=n(54610),u=n(67453),o=n(38496),s=n(22161);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=m(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],u=!0,o=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){o=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=/(.*)\s\((.*)?\)/i,h="shared.curriculumLinks",y="text-nowrap font-size-normal rounded-pill py-1 px-2 my-0 d-inline-block";function g(e){function t(){var t=y+" bg-white border";return!e.leaf.name&&e.uiContainsCodes?t+" border-secondary text-secondary":t+" border-dark"}var n=r.useRef();return r.useEffect((function(){if(n.current){var t=n.current.getBoundingClientRect().width;e.trySetMaxCodeWidth(t)}}),[n.current]),r.createElement("div",{className:"d-flex"},e.leaf.description?!e.leaf.name&&e.uiContainsCodes?r.createElement(r.Fragment,null,r.createElement("div",{className:"me-1 align-self-start",style:{minWidth:e.codeWidth?"".concat(e.codeWidth,"px"):"auto"}},r.createElement("h5",{ref:n,className:t()},r.createElement(l.x,{namespace:h,phrase:"noCode"}))),r.createElement("p",{className:"m-0 align-self-center",dangerouslySetInnerHTML:{__html:e.leaf.description}})):e.leaf.name||e.uiContainsCodes?r.createElement(r.Fragment,null,r.createElement("div",{className:"me-1 align-self-start",style:{minWidth:e.codeWidth?"".concat(e.codeWidth,"px"):"auto"}},r.createElement("h5",{ref:n,className:t()},e.leaf.name)),r.createElement("p",{className:"m-0 align-self-center",dangerouslySetInnerHTML:{__html:e.leaf.description}})):r.createElement("p",{className:"m-0",dangerouslySetInnerHTML:{__html:e.leaf.description}}):r.createElement("p",{className:"m-0",dangerouslySetInnerHTML:{__html:e.leaf.name}}))}function E(e){var t,n,a,l={},c=!1;function u(e){var t="mb-2";return e.name||c?t:t+" ms-4 "+s.Z.leafDescriptionOnly}return e.linkSet.areasAndLeaves.forEach((function(e){var t=e[i.k.Area].map((function(e){return e.name})).join(" - ");l[t]?e[i.k.Leaf].forEach((function(e){l[t].push(e),e.name&&(c=!0)})):l[t]=e[i.k.Leaf]})),r.createElement(r.Fragment,null,r.createElement("h3",{className:"".concat(y," text-white bg-dark-blue fw-normal me-1 mb-2")},(t=e.linkSet[i.k.Audience].name,n=e.linkSet[i.k.Subject].name,(a=t.match(f))?"".concat(a[1]," • ").concat(a[2]," • ").concat(n):"".concat(t," • ").concat(n))),r.createElement("div",{className:"me-2 ".concat(s.Z.curriculumSubject)},Object.keys(l).map((function(t,n){return r.createElement("div",{key:n,className:s.Z.areaLeafSet},t&&r.createElement("h4",{className:"mb-1 font-size-normal"},t),r.createElement("ul",{className:"list-unstyled"},l[t].map((function(t){return r.createElement("li",{key:t.id,className:u(t)},r.createElement(g,{leaf:t,codeWidth:e.codeWidth,trySetMaxCodeWidth:e.trySetMaxCodeWidth,uiContainsCodes:c}))}))))}))))}function b(e){var t,n,m=p(r.useState(0),2),v=m[0],f=m[1],y=p(r.useState(!1),2),g=y[0],b=y[1],C=p(r.useState(!1),2),k=C[0],S=C[1],A=p(r.useState([]),2),I=A[0],N=A[1];function L(e){f((function(t){return t>=e?t:e}))}r.useEffect((function(){var t,n;e.checkAllCurriculums&&e.curriculumLinks&&!(null===(t=e.curriculumLinks)||void 0===t?void 0:t.length)&&(S(!0),e.checkAllCurriculums().then((function(e){e.length&&b(!0),N(e)})).finally((function(){return S(!1)}))),(null===(n=e.curriculumLinks)||void 0===n?void 0:n.length)&&g&&b(!1)}),[null===(t=e.curriculumLinks)||void 0===t?void 0:t.length]);var w=r.useMemo((function(){var t,n={};return null===(t=e.curriculumLinks)||void 0===t||t.forEach((function(e){var t=null,r=null,a=[],l=[];e.forEach((function(e){switch(e.type){case i.k.Subject:t=e;break;case i.k.Audience:r=e;break;case i.k.Area:a.push(e);break;case i.k.Leaf:l.push(e)}}));var c="".concat(t.id,":").concat(r.id);n[c]?n[c].areasAndLeaves.push(d(d({},i.k.Area,a),i.k.Leaf,l)):n[c]=d(d(d({},i.k.Subject,t),i.k.Audience,r),"areasAndLeaves",[d(d({},i.k.Area,a),i.k.Leaf,l)])})),n}),[e.curriculumLinks]);return k?r.createElement(a.Z,null):(null===(n=e.curriculumLinks)||void 0===n?void 0:n.length)||e.hasNonEmptyCurriculums||!e.emptyStateUrl||g||k?g?r.createElement("div",null,r.createElement("div",{className:"mb-3"},r.createElement(l.x,{namespace:h,phrase:"currentEmpty"})),r.createElement("div",{className:"mb-3"},r.createElement(l.x,{namespace:h,phrase:"currentEmptyInfo"})),r.createElement("ul",{className:"list-unstyled mb-0"},I.map((function(t){return r.createElement("li",{key:t.id,className:"p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ".concat(s.Z.tag," me-2"),onClick:function(){return e.onChangeCurriculum(t.id.toString())}},r.createElement("div",{className:"bg-white ".concat(s.Z.cover," rounded-circle")},r.createElement("img",{src:u.j.createUrl(t.cover.url,{size:c.h2.Small}),alt:t.name,className:"rounded-circle"})),t.name)})))):r.createElement("ul",{className:"list-unstyled m-0"},Object.keys(w).map((function(e,t){return r.createElement("li",{key:"linkset-".concat(t),className:s.Z.curriculumSet},r.createElement(E,{linkSet:w[e],trySetMaxCodeWidth:L,codeWidth:v}))}))):r.createElement(o.p,{emptyStateUrl:e.emptyStateUrl})}},38496:(e,t,n)=>{n.d(t,{p:()=>o});var r=n(32735),a=n(23481),l=n(23232),i=n(83345),c="shared.curriculumLinks",u=a.T.encloseNamespace(c);function o(e){return r.createElement(l.u,{className:"pt-3"},r.createElement(l.u.Image,{src:e.emptyStateUrl,altText:u("emptyInfo"),size:"small"}),r.createElement(l.u.Heading,null,r.createElement(i.x,{namespace:c,phrase:"emptyHeading"})),r.createElement(l.u.Info,null,r.createElement(i.x,{namespace:c,phrase:"emptyInfo"})))}},44599:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(32735);var a=function(){return r.createElement(r.Fragment,null,r.createElement("div",{className:"partial-loading-background rounded-pill py-1 px-2 d-inline-block me-1 mb-2 ".concat("vDcrq")}),r.createElement("div",null,r.createElement("div",{className:"partial-loading-background mb-1 ".concat("GXhoW")}),r.createElement("div",{className:"mb-2 d-flex"},r.createElement("div",{className:"me-1 align-self-start ".concat("goKaS")},r.createElement("div",{className:"partial-loading-background rounded-pill py-1 px-2 d-inline-block w-100 h-100"})),r.createElement("div",{className:"partial-loading-background ".concat("vFew6")}))))};function l(){return r.createElement("div",null,r.createElement("div",{className:"mb-3"},r.createElement(a,null)),r.createElement("div",{className:"mb-3"},r.createElement(a,null)),r.createElement("div",null,r.createElement(a,null)))}},85597:(e,t,n)=>{var r;n.d(t,{k:()=>r}),function(e){e.Subject="CurriculumSubject",e.Audience="CurriculumAudience",e.Area="CurriculumArea",e.Leaf="CurriculumLeaf"}(r||(r={}))},5988:(e,t,n)=>{n.d(t,{j:()=>ee});var r=n(32735),a=n(23481),l=n(28400),i=n(65858),c=n(72553),u=n(42648),o=n(75896),s=n(83345),m=n(69883),d=n(44599),p=2;function v(e){var t;return(null===(t=e.availableCurriculums)||void 0===t?void 0:t.length)<p||!e.selectedCurriculum?r.createElement(r.Fragment,null):r.createElement("select",{className:"mb-3 form-select ".concat(e.className),onChange:function(t){return e.onChangeCurriculum(t.target.value)},value:e.selectedCurriculum.id},e.availableCurriculums.map((function(e){return r.createElement("option",{key:e.id,id:e.id,value:e.id},e.name)})))}var f=n(93439),h=n(22161);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],u=!0,o=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){o=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var E="shared.curriculumLinks",b=a.T.encloseNamespace(E);function C(e){var t=e.curriculums,n=t.hasLoaded,a=t.activeCurriculum,l=t.availableCurriculums,i=t.curriculumLinks,c=t.updateCurriculum,p=t.nonEmptyCurriculums,g=y(r.useState(!n),2),C=g[0],k=g[1],S=y(r.useState(),2),A=S[0],I=S[1],N=(0,m.Z)();function L(e){var t,n,r=l.find((function(t){return t.id.toString()===e}));(null==r?void 0:r.id)&&(null===(t=null==A?void 0:A.id)||void 0===t?void 0:t.toString())!==(null===(n=null==r?void 0:r.id)||void 0===n?void 0:n.toString())&&(I(r),k(!0),c(r,null,(function(){I(A),k(!1),N.error(b("updateFailed"))})))}r.useEffect((function(){n&&(A||I(null!=a?a:o.m.first(l)),a&&k(!1))}),[null==a?void 0:a.id,n]);var w="function"==typeof e.onClickClose;return r.createElement("div",{className:"rounded border mb-3 position-relative"},r.createElement(u.$B,{autoHeight:!0,autoHeightMax:e.height},r.createElement("div",{className:"p-3"},r.createElement("h2",{className:"h6 me-2 h-100"},r.createElement(s.x,{namespace:E,phrase:"heading"})),r.createElement(v,{availableCurriculums:l,onChangeCurriculum:L,selectedCurriculum:A,className:h.Z.dropdown}),C?r.createElement(d.Z,null):r.createElement(f.h,{curriculumLinks:i,emptyStateUrl:e.emptyStateUrl,checkAllCurriculums:e.checkAllCurriculums,onChangeCurriculum:L,hasNonEmptyCurriculums:!!p.length}))),w&&r.createElement("button",{type:"button",className:"btn-close ".concat(h.Z.closeButton),"aria-label":"Close",onClick:e.onClickClose}))}var k=n(19670),S=n(80385),A=n(73804),I=n(92805),N=n(11518),L=n(15446),w=n(47862),x=n(26733),T=n(40178),j=n(71063),R=n(10439),U=n(35429),O=n(4594),P=n(16714),M=n(58704),V=n(22902),_=n(76196),W=n(59598),D=n(31908),G=n(26492),Z=n(91479),F=n(47938),H=n(81024),B=n(78166),z=n(99742),K=n(14070),Y=n(97291),$=n(22490),q=n(99092);function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var J="shared.playPage",Q=a.T.encloseNamespace(J);function ee(e){var t,n,a,u,o,m,d,p,v,f,h,y=(0,U.g)(),g=(0,V.T)().hasPermissions,E=D.M.getCanBeConsumed(e.video).canConsume,b=e.imageCdnUrl,ee=D.M.isVideoTypeArchived(e.video),te=g(P.C.StudentExperience),ne=r.useRef(null),re=r.useRef(null);(0,_.P)([ne.current,re.current],e.tableOfContentsId);var ae,le,ie=r.useRef(!1),ce=(0,S.Wp)(e.video,e.glanceTheme)&&e.featureAccess.canViewGlance,ue=(ae=r.useState({view:"loading",referrer:null}),le=2,function(e){if(Array.isArray(e))return e}(ae)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],u=!0,o=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){o=!0,a=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw a}}return c}}(ae,le)||function(e,t){if(e){if("string"==typeof e)return X(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X(e,t):void 0}}(ae,le)||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.")}()),oe=ue[0],se=ue[1];r.useEffect((function(){e.glanceLoaded&&se({view:e.glanceTheme?"v@g":"details",referrer:null})}),[e.glanceLoaded,e.glanceTheme]);var me=(0,q.lU)(),de=(0,q.jh)(e.video,te),pe="picture-in-picture"===y.mode||e.featureAccess.canViewPublicLayout,ve=!(!e.featureAccess.canViewCurriculumLinks||!e.curriculums.customerHasCurriculumLinks);return r.createElement(s.D.Provider,{value:J},r.createElement(F.W,{restrictions:e.video._restrictions,yearGroups:e.yearGroups,objectId:e.video.id,objectTypeId:O.E.Video,canManageVideoAccess:e.canManageVideoAccess}),ee&&r.createElement(G.T,{typeId:e.video.typeId,hasStudentExperience:te}),r.createElement("section",{className:"mb-2 ".concat(j.M.GLOBAL_PLAYER_SELECTOR)},E&&r.createElement(R.r,{key:e.video.id,objectId:e.video.id,objectTypeId:e.video.typeId,shareId:e.shareId,context:null===(t=e.params)||void 0===t?void 0:t.context,contextId:null===(n=e.params)||void 0===n?void 0:n.contextId,playNext:null===(a=e.params)||void 0===a?void 0:a.playNext,moviesAndTv:null===(u=e.params)||void 0===u?void 0:u.mtv,startTime:null!==(m=null===(o=e.params)||void 0===o?void 0:o.t)&&void 0!==m?m:null===(d=e.params)||void 0===d?void 0:d.startTime,endTime:null===(p=e.params)||void 0===p?void 0:p.endTime,mode:"default",location:"play-page"}),r.createElement("div",{className:pe?"":"d-none"},r.createElement(H.S,{video:e.video,appLink:{application:Y.O.SIGN_UP,action:K.e.SignUp.SIGN_UP},type:"picture-in-picture"===y.mode?"pip":"public"}))),r.createElement(Z.v,{media:e.video,yearGroups:e.yearGroups,audiences:e.audiences,getSeriesAppLink:function(t){return me.getSeriesAppLink(t,e.params.mtv)},featureAccess:e.featureAccess,shareId:e.shareId}),r.createElement("section",{className:"".concat("v@g"===oe.view?"d-block":"d-none")},r.createElement(k.o,{theme:e.glanceTheme,video:e.video,pointsOfInterest:e.pointsOfInterest,onClickShowDescription:function(){return se({view:"details",referrer:"v@g"})},onClickShowCurriculumLinks:ve&&function(){return se({view:"curriculumLinks",referrer:"v@g"})},setStartTime:function(e){var t;return null===(t=y.playerRef.current)||void 0===t?void 0:t.currentTime(e)},getTagAppLink:me.getTagAppLink,suppressInteractivity:e.featureAccess.canViewPublicLayout})),r.createElement("section",{className:"".concat("details"===oe.view?"d-block":"d-none")},r.createElement(A.X,{video:e.video,onLaunchImmersiveReader:function(){var e,t,n,r;ie.current=!(null===(t=null===(e=null==y?void 0:y.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.isPaused()),null===(r=null===(n=null==y?void 0:y.playerRef)||void 0===n?void 0:n.current)||void 0===r||r.pause()},onExitImmersiveReader:function(){var e,t;ie.current&&(null===(t=null===(e=null==y?void 0:y.playerRef)||void 0===e?void 0:e.current)||void 0===t||t.play())},hideTags:ce,onClickClose:ce&&function(){return se({view:"v@g",referrer:"details"})},onClickShowCurriculumLinks:ve&&function(){return se({view:"curriculumLinks",referrer:"details"})},getTagAppLink:me.getTagAppLink,suppressInteractivity:e.featureAccess.canViewPublicLayout})),"curriculumLinks"===oe.view&&r.createElement("section",null,r.createElement(C,{height:T.x,curriculums:e.curriculums,onClickClose:function(){return se({view:oe.referrer,referrer:"curriculumLinks"})},emptyStateUrl:z.W.EmptyStates.CURRICULUM_LINKS,checkAllCurriculums:e.checkAllCurriculum})),r.createElement("section",{className:"".concat("loading"===oe.view?"d-block":"d-none")},r.createElement(I.H,null)),D.M.isBroadcast(e.video)&&r.createElement(c.j,{placement:"bottom-end",className:"d-flex justify-content-end mt-n2"}),!!(null==de?void 0:de.length)&&r.createElement("section",{className:"pb-3",id:W.K.Resources,ref:ne},r.createElement(N.kM,{name:Q("resources",{count:de.length}),contents:M.z.PlayPageResources,collection:de,prefetched:!0,childComponent:x.R,extraChildComponentProps:{imageCdnUrl:b,imageErrorFallbackUrl:z.W.Fallbacks.RESOURCE_THUMBNAIL,actionBehaviour:e.featureAccess.canViewResourceItems?"normal":"public",location:"play-page",titlePosition:"above",hideTypeBadge:!0},getChildAppLink:me.getResourceAppLink(null===(v=e.video)||void 0===v?void 0:v.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsOptions:e.featureAccess.canViewResourceItems?{}:{workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:{widgetId:"resources"}})),e.featureAccess.canViewInteractives&&!!(null===(f=e.interactives)||void 0===f?void 0:f.length)&&r.createElement("section",{className:"pb-3",id:W.K.Interactives,ref:re},r.createElement(N.kM,{name:Q("interactives",{count:e.interactives.length}),contents:M.z.Interactives,collection:e.interactives,prefetched:!0,getChildAppLink:function(e){return{application:Y.O.INTERACTIVES,action:K.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:w.K,extraChildComponentProps:{video:e.video,questionsAppLink:{application:Y.O.INTERACTIVES,action:K.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),e.featureAccess.canViewClips&&!!(null===(h=e.clips)||void 0===h?void 0:h.length)&&r.createElement("section",{className:"pb-3"},r.createElement(N.kM,{name:Q("clips",{count:e.clips.length}),contents:M.z.Clips,collection:e.clips,prefetched:!0,getChildAppLink:function(e){return{application:Y.O.CLIPS,action:K.e.Clips.PLAY_CLIP,args:[e.id,l.m.slugify(e.name)]}},childComponent:L.C,extraChildComponentProps:{video:e.video,imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"clips"}})),r.createElement("section",null,r.createElement(B.Z,{currentVideo:e.video,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,currentUser:e.currentUser,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(t,n){return $.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.params.context,contextId:e.params.contextId,playNext:e.params.playNext,shareId:e.shareId,moviesAndTv:e.params.mtv}))},audiences:e.audiences,moviesAndTv:e.params.mtv,isPlugin:e.isPlugin})))}},22161:(e,t,n)=>{n.d(t,{Z:()=>r});const r={curriculumSubject:"GvGYH",curriculumSet:"d7RK0",areaLeafSet:"XRTAe",closeButton:"N3l5Q",heading:"hAxR4",leafDescriptionOnly:"h66ke",dropdown:"CsG6G",tag:"rdLqY",cover:"etwaD",active:"aDLMe",selected:"BMrSd"}}}]);
2
+ //# sourceMappingURL=9139-2e7265c593-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/9139-2e7265c593-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/copyright-disclaimer/copyright-disclaimer.scss","file:///app/packages/libs/shared/src/components/copyright-disclaimer/CopyrightDisclaimer.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinks.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinksEmptyState.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/PartialCurriculumLinks.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/partial-curriculum-links.scss","file:///app/packages/libs/shared/src/enums/CurriculumType.ts","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumDropdown.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinksWithScrollbar.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/PlayPage.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"copyrightDisclaimer\":\"z8YoI\",\"overlayContainer\":\"eJDbJ\"};","import React from 'react';\nimport { Overlay } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\n\nimport styles from './copyright-disclaimer.scss';\n\nconst namespace = 'shared.copyrightDisclaimer';\n\nconst CONTAINER_HEIGHT = 150; // px\n\ninterface CopyrightDisclaimerProps {\n placement: Placement;\n overflowPlacement?: Placement;\n className?: string;\n}\n\nexport function CopyrightDisclaimer(props: CopyrightDisclaimerProps) {\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>({});\n\n function preventOverflow() {\n const spaceBelow = document.documentElement.clientHeight - ref.current?.getBoundingClientRect().bottom;\n\n return spaceBelow < CONTAINER_HEIGHT;\n }\n\n return (\n <div ref={ref} className={props.className}>\n <p className={`${styles.copyrightDisclaimer} mb-1`}><Text namespace={namespace} phrase='copyrightDisclaimer' /></p>\n <Overlay\n target={ref.current}\n show={isHovering}\n placement={props.overflowPlacement && preventOverflow() ? props.overflowPlacement : props.placement}\n >\n <div className={`${styles.overlayContainer} mw-100 bg-white border rounded-3 p-2`}>\n <p><Text namespace={namespace} phrase='warning' /></p>\n <p className='fw-semibold mb-0'><Text namespace={namespace} phrase='sharing' /></p>\n </div>\n </Overlay>\n </div>\n );\n}","import React from 'react';\n\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CurriculumType } from 'libs/shared/enums/CurriculumType';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Curriculum, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { CurriculumLinksEmptyState } from './CurriculumLinksEmptyState';\n\nimport styles from './curriculum-links.scss';\n\nconst BRACKET_SEGMENT_REGEX = /(.*)\\s\\((.*)?\\)/i;\n\nconst namespace = 'shared.curriculumLinks';\n\nconst BASE_PILL_CLASS = 'text-nowrap font-size-normal rounded-pill py-1 px-2 my-0 d-inline-block';\n\ninterface CurriculumStructure {\n [CurriculumType.Subject]: Curriculum<CurriculumType.Subject>;\n [CurriculumType.Audience]: Curriculum<CurriculumType.Audience>;\n areasAndLeaves: Array<{\n [CurriculumType.Area]: Curriculum<CurriculumType.Area>[];\n [CurriculumType.Leaf]: Curriculum<CurriculumType.Leaf>[];\n }>;\n}\n\ninterface CurriculumLeafProps {\n leaf: Curriculum<CurriculumType.Leaf>;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n uiContainsCodes: boolean;\n}\n\nfunction CurriculumLeaf(props: CurriculumLeafProps): JSX.Element {\n function getCurriculumCodeClass(): string {\n const baseClass = BASE_PILL_CLASS + ' bg-white border';\n\n // If a leaf has no code but the rest of the UI has leaf nodes w/ codes, we show a special \"No code\" pill\n if (!props.leaf.name && props.uiContainsCodes)\n return baseClass + ' border-secondary text-secondary';\n\n return baseClass + ' border-dark';\n }\n\n const codeRef = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!codeRef.current)\n return;\n\n const { width } = codeRef.current.getBoundingClientRect();\n\n props.trySetMaxCodeWidth(width);\n }, [codeRef.current]);\n\n return (\n <div className='d-flex'>\n {(() => {\n if (!props.leaf.description)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.name }} />;\n\n /**\n * If a leaf has no code but the rest of the UI has leaf nodes\n * with codes, we show a special \"No code\" pill. Example: https://imgur.com/3L1Ela3\n */\n if (!props.leaf.name && props.uiContainsCodes) {\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>\n <Text namespace={namespace} phrase='noCode' />\n </h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n }\n\n /**\n * If a leaf has no code and the rest of the UI leaf nodes have no code, we just\n * display the description with a bullet point. Example: https://imgur.com/jzJvmWs\n */\n if (!props.leaf.name && !props.uiContainsCodes)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />;\n\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>{props.leaf.name}</h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n })()}\n </div>\n );\n}\n\ninterface CurriculumSubjectProps {\n linkSet: CurriculumStructure;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n}\n\nfunction CurriculumSubject(props: CurriculumSubjectProps): JSX.Element {\n const areaAndLeafSets: { [areaText: string]: Curriculum<CurriculumType.Leaf>[]; } = {};\n\n let uiContainsCodes = false;\n\n props.linkSet.areasAndLeaves.forEach(areaAndLeafSet => {\n const areaText = areaAndLeafSet[CurriculumType.Area].map(ca => ca.name).join(' - ');\n\n if (areaAndLeafSets[areaText]) {\n areaAndLeafSet[CurriculumType.Leaf].forEach(leaf => {\n areaAndLeafSets[areaText].push(leaf);\n\n // We need the info on if _any_ leaf node has a code in it. See why in the comments in `<CurriculumLeaf />`\n if (leaf.name)\n uiContainsCodes = true;\n });\n\n return;\n }\n\n areaAndLeafSets[areaText] = areaAndLeafSet[CurriculumType.Leaf];\n });\n\n function getAudienceText(): string {\n const audienceSegment = props.linkSet[CurriculumType.Audience].name;\n const subjectSegment = props.linkSet[CurriculumType.Subject].name;\n\n /**\n * In some curriculums, such as the UK curriculum, the audience string may contain a year group\n * in brackets. For example, it may be \"Lower Key Stage 2 (Year 4)\".\n * This regex will pull that segment out if it exists.\n */\n const audienceBracketSegments = audienceSegment.match(BRACKET_SEGMENT_REGEX);\n\n if (audienceBracketSegments)\n return `${audienceBracketSegments[1]} • ${audienceBracketSegments[2]} • ${subjectSegment}`;\n\n return `${audienceSegment} • ${subjectSegment}`;\n }\n\n function getLeafStyleClass(leaf: Curriculum<CurriculumType.Leaf>): string {\n const className = 'mb-2';\n\n if (!leaf.name && !uiContainsCodes)\n return className + ' ms-4 ' + styles.leafDescriptionOnly;\n\n return className;\n }\n\n return (\n <>\n <h3 className={`${BASE_PILL_CLASS} text-white bg-dark-blue fw-normal me-1 mb-2`}>\n {getAudienceText()}\n </h3>\n\n <div className={`me-2 ${styles.curriculumSubject}`}>\n {Object.keys(areaAndLeafSets).map((areaText, i) => {\n return (\n <div key={i} className={styles.areaLeafSet} >\n {areaText && <h4 className='mb-1 font-size-normal'>{areaText}</h4>}\n <ul className='list-unstyled'>\n {areaAndLeafSets[areaText].map(leaf => (\n <li key={leaf.id} className={getLeafStyleClass(leaf)}>\n <CurriculumLeaf\n leaf={leaf}\n codeWidth={props.codeWidth}\n trySetMaxCodeWidth={props.trySetMaxCodeWidth}\n uiContainsCodes={uiContainsCodes}\n />\n </li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n </>\n );\n}\n\ninterface CurriculumLinksSet {\n [subjectAndAudienceIdKey: string]: CurriculumStructure\n}\n\ninterface CurriculumLinksProps {\n curriculumLinks: Curriculum[][];\n emptyStateUrl?: string;\n checkAllCurriculums?: () => Promise<Presentation[]>;\n onChangeCurriculum?: (id: string) => void;\n hasNonEmptyCurriculums: boolean;\n}\n\nexport function CurriculumLinks(props: CurriculumLinksProps): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n const [ showOtherCurriculums, setShowOtherCurriculums ] = React.useState(false);\n const [ loadingOther, setLoadingOther ] = React.useState(false);\n const [ curriculumTags, setCurriculumTags ] = React.useState<Presentation[]>([]);\n\n React.useEffect(() => {\n if (props.checkAllCurriculums && props.curriculumLinks && !props.curriculumLinks?.length) {\n setLoadingOther(true);\n // only fetch other curriculums when this curriculum is displayed\n props.checkAllCurriculums().then(data => {\n if (data.length) {\n setShowOtherCurriculums(true);\n }\n\n setCurriculumTags(data);\n }).finally(() => setLoadingOther(false));\n }\n\n if (props.curriculumLinks?.length && showOtherCurriculums) {\n setShowOtherCurriculums(false);\n }\n }, [props.curriculumLinks?.length]);\n\n function trySetMaxCodeWidth(width: number): void {\n /**\n * The width of the curriculum code column should be identical for each leaf node, meaning\n * the leaf description text will be perfectly vertically aligned all the way down.\n * See here for example: https://imgur.com/MbganZf\n * \n * This is achieved by us setting the state for the maximum code width, and forcing all\n * smaller codes to abide by that max width.\n * \n * This value is used in the `<CurriculumLeaf />` component.\n */\n setCodeWidth(currentVal => {\n if (currentVal >= width)\n return currentVal;\n\n return width;\n });\n }\n\n /**\n * Here, we're taking the structure of links from the backend, and restructuring it in a way\n * that resembles the structure of our UI more closely. The general idea is:\n * \n * CurriculumAudience - CurriculumSubject\n * CurriculumAreas\n * CurriculumLeaves\n */\n const curriculumLinkSets = React.useMemo(() => {\n const newSet: CurriculumLinksSet = {};\n\n props.curriculumLinks?.forEach(linkSet => {\n let subject: Curriculum<CurriculumType.Subject> = null;\n let audience: Curriculum<CurriculumType.Audience> = null;\n const areas: Curriculum<CurriculumType.Area>[] = [];\n const leaves: Curriculum<CurriculumType.Leaf>[] = [];\n \n linkSet.forEach(curriculumObj => {\n switch (curriculumObj.type) {\n case CurriculumType.Subject:\n subject = curriculumObj as Curriculum<CurriculumType.Subject>;\n break;\n case CurriculumType.Audience:\n audience = curriculumObj as Curriculum<CurriculumType.Audience>;\n break;\n case CurriculumType.Area:\n areas.push(curriculumObj as Curriculum<CurriculumType.Area>);\n break;\n case CurriculumType.Leaf:\n leaves.push(curriculumObj as Curriculum<CurriculumType.Leaf>);\n break;\n default:\n break;\n }\n });\n \n const key = `${subject.id}:${audience.id}`;\n \n if (newSet[key]) {\n newSet[key].areasAndLeaves.push({\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n });\n \n return;\n }\n \n newSet[key] = {\n [CurriculumType.Subject]: subject,\n [CurriculumType.Audience]: audience,\n areasAndLeaves: [{\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n }]\n };\n });\n\n return newSet;\n }, [props.curriculumLinks]);\n\n if (loadingOther) {\n return <PartialCurriculumLinks />;\n }\n \n if (!props.curriculumLinks?.length && !props.hasNonEmptyCurriculums) {\n // only if all other curriculums don't have links we render the empty state\n if (props.emptyStateUrl && !showOtherCurriculums && !loadingOther)\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n if (showOtherCurriculums) {\n return (\n <div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmpty' />\n </div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmptyInfo' />\n </div>\n <ul className='list-unstyled mb-0'>\n {curriculumTags.map(t => (\n <li\n key={t.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} me-2`}\n onClick={() => props.onChangeCurriculum(t.id.toString())}\n >\n <div className={`bg-white ${styles.cover} rounded-circle`}>\n <img\n src={ImageHelper.createUrl(t.cover.url, { size: ImageSize.Small })}\n alt={t.name}\n className='rounded-circle'\n />\n </div>\n {t.name}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n\n return (\n <ul className='list-unstyled m-0'>\n {Object.keys(curriculumLinkSets).map((linkSetKey, i) => (\n <li key={`linkset-${i}`} className={styles.curriculumSet}>\n <CurriculumSubject\n linkSet={curriculumLinkSets[linkSetKey]}\n trySetMaxCodeWidth={trySetMaxCodeWidth}\n codeWidth={codeWidth}\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinksEmptyStateProps {\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksEmptyState(props: CurriculumLinksEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='pt-3'>\n <EmptyState.Image src={props.emptyStateUrl} altText={getPhrase('emptyInfo')} size='small'/>\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='emptyHeading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='emptyInfo' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport styles from './partial-curriculum-links.scss';\n\nconst PartialCurriculumLinkSection = () => (\n <>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block me-1 mb-2 ${styles.audience}`} />\n <div>\n <div className={`partial-loading-background mb-1 ${styles.area}`} />\n\n <div className='mb-2 d-flex'>\n <div className={`me-1 align-self-start ${styles.code}`}>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block w-100 h-100`} />\n </div>\n \n <div className={`partial-loading-background ${styles.description}`} />\n </div>\n </div>\n </>\n);\n\nexport function PartialCurriculumLinks(): JSX.Element {\n return (\n <div>\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div>\n <PartialCurriculumLinkSection />\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"audience\":\"vDcrq\",\"area\":\"GXhoW\",\"code\":\"goKaS\",\"description\":\"vFew6\"};","export enum CurriculumType {\n Subject = 'CurriculumSubject',\n Audience = 'CurriculumAudience',\n Area = 'CurriculumArea',\n Leaf = 'CurriculumLeaf'\n}","import React from 'react';\n\nimport { Presentation } from 'libs/shared/interfaces';\n\nconst MIN_CURRICULUMS = 2;\n\ninterface CurriculumDropdownProps {\n availableCurriculums: Presentation[];\n onChangeCurriculum: (id: string) => void;\n selectedCurriculum?: Presentation;\n className?: string;\n}\n\nexport function CurriculumDropdown(props: CurriculumDropdownProps): JSX.Element {\n // No need to show a dropdown if they don't have enough curriculums\n if (props.availableCurriculums?.length < MIN_CURRICULUMS || !props.selectedCurriculum)\n return <></>;\n\n return (\n <select\n className={`mb-3 form-select ${props.className}`}\n onChange={e => props.onChangeCurriculum(e.target.value)}\n value={props.selectedCurriculum.id}\n >\n {props.availableCurriculums.map(curriculum => {\n return (\n <option\n key={curriculum.id}\n id={curriculum.id}\n value={curriculum.id}\n >\n {curriculum.name}\n </option>\n );\n })}\n </select>\n );\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurriculumData, Presentation } from 'libs/shared/interfaces';\n\nimport { PartialCurriculumLinks } from './partial-loading/PartialCurriculumLinks';\nimport { CurriculumDropdown } from './CurriculumDropdown';\nimport { CurriculumLinks } from './CurriculumLinks';\n\nimport styles from './curriculum-links.scss';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinksWithScrollbarProps {\n curriculums: CurriculumData;\n emptyStateUrl: string;\n height?: number;\n onClickClose?: () => void;\n checkAllCurriculums?: () => Promise<Presentation[]>;\n}\n\nexport function CurriculumLinksWithScrollbar(props: CurriculumLinksWithScrollbarProps): JSX.Element {\n const {\n hasLoaded,\n activeCurriculum: currentCurriculum,\n availableCurriculums,\n curriculumLinks,\n updateCurriculum,\n nonEmptyCurriculums\n } = props.curriculums;\n\n const [ showPartialLoading, setShowPartialLoading ] = React.useState(!hasLoaded);\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const alerts = useAlerts();\n\n React.useEffect(() => {\n if (!hasLoaded)\n return;\n\n if (!selectedCurriculum)\n setSelectedCurriculum(currentCurriculum ?? ArrayHelper.first(availableCurriculums));\n \n if (currentCurriculum)\n setShowPartialLoading(false);\n }, [ currentCurriculum?.id, hasLoaded ]);\n\n function onChangeCurriculum(curriculumId: string): void {\n const newCurriculum = availableCurriculums.find(c => c.id.toString() === curriculumId);\n if (!newCurriculum?.id)\n return;\n\n if (selectedCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return;\n\n setSelectedCurriculum(newCurriculum);\n setShowPartialLoading(true);\n\n const onError = () => {\n // If the request to change curriculum fails, we reset the select state and alert the user\n setSelectedCurriculum(selectedCurriculum);\n setShowPartialLoading(false);\n alerts.error(getPhrase('updateFailed'));\n };\n\n updateCurriculum(newCurriculum, null, onError);\n }\n\n const canClose = typeof props.onClickClose === 'function';\n\n return (\n <div className='rounded border mb-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={props.height}>\n <div className='p-3'>\n <h2 className='h6 me-2 h-100'>\n <Text namespace={namespace} phrase='heading' />\n </h2>\n\n <CurriculumDropdown\n availableCurriculums={availableCurriculums}\n onChangeCurriculum={onChangeCurriculum}\n selectedCurriculum={selectedCurriculum}\n className={styles.dropdown}\n />\n\n {showPartialLoading\n ? <PartialCurriculumLinks />\n : (\n <CurriculumLinks\n curriculumLinks={curriculumLinks}\n emptyStateUrl={props.emptyStateUrl}\n checkAllCurriculums={props.checkAllCurriculums}\n onChangeCurriculum={onChangeCurriculum}\n hasNonEmptyCurriculums={!!nonEmptyCurriculums.length}\n />\n )}\n </div>\n </Scrollbars>\n\n {canClose && (\n <button\n type='button'\n className={`btn-close ${styles.closeButton}`}\n aria-label='Close'\n onClick={props.onClickClose}\n />\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SignUpDescriptors, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CopyrightDisclaimer } from 'libs/shared/components/copyright-disclaimer/CopyrightDisclaimer';\nimport { CurriculumLinksWithScrollbar } from 'libs/shared/components/curriculum-links/CurriculumLinksWithScrollbar';\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\nimport { VideoAtAGlance } from 'libs/shared/components/video-at-a-glance/VideoAtAGlance';\nimport { hasGlanceData } from 'libs/shared/components/video-at-a-glance/VideoAtAGlanceUtils';\nimport { VideoDetailsWithScrollbar } from 'libs/shared/components/video-details/VideoDetails';\nimport { VideoDetailsPartial } from 'libs/shared/components/video-details/VideoDetailsPartial';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { ClipWidgetItem, ClipWidgetItemProps } from 'libs/shared/components/widgets/items/clip-widget-item/ClipWidgetItem';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { ResourceWidgetItem, ResourceWidgetItemProps } from 'libs/shared/components/widgets/items/resource-widget-item/ResourceWidgetItem';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, CurriculumData, FavouriteFunc, Interactive, InteractiveMetadata, PointOfInterest, Presentation, PresentationAudience, Theme, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getAppLinks, getResources } from './PlayPageUtils';\n\nconst namespace = 'shared.playPage';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype DetailsViewType = {\n view: 'v@g' | 'details' | 'curriculumLinks' | 'loading';\n referrer: 'v@g' | 'details' | 'curriculumLinks';\n};\n\ninterface PlayPageProps {\n video: Video;\n interactives: InteractiveMetadata[];\n clips: Clip[];\n yearGroups: YearGroup[];\n imageCdnUrl: string;\n relatedVideos: RelatedVideosHash;\n audiences: PresentationAudience[];\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n glanceTheme?: Theme;\n glanceLoaded: boolean;\n currentUser: CurrentUser;\n pointsOfInterest?: PointOfInterest[];\n playNext: boolean;\n shareId?: string;\n curriculums: CurriculumData;\n featureAccess: VideoFeaturesHash;\n params?: PlayViewQueryParams;\n canManageVideoAccess: boolean;\n tableOfContentsId: string;\n checkAllCurriculum?: () => Promise<Presentation[]>\n isPlugin: boolean;\n}\n\nexport function PlayPage(props: PlayPageProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n const { imageCdnUrl } = props;\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.video);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const resourcesRef = React.useRef<HTMLDivElement>(null);\n const interactivesRef = React.useRef<HTMLDivElement>(null);\n\n useTableOfContentsScroll([\n resourcesRef.current,\n interactivesRef.current\n ], props.tableOfContentsId);\n\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n const hasGlance = hasGlanceData(props.video, props.glanceTheme) && props.featureAccess.canViewGlance;\n\n const [ detailsView, setDetailsView ] = React.useState<DetailsViewType>({\n view: 'loading',\n referrer: null\n });\n\n React.useEffect(() => {\n if (!props.glanceLoaded)\n return;\n\n setDetailsView({\n view: props.glanceTheme ? 'v@g' : 'details',\n referrer: null\n });\n }, [ props.glanceLoaded, props.glanceTheme ]);\n\n const appLinkFns = getAppLinks();\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n const resourcesWidget = getResources(props.video, hasStudentExperience);\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const hasCurriculumLinks = !!(props.featureAccess.canViewCurriculumLinks &&\n props.curriculums.customerHasCurriculumLinks);\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n\n <RestrictionBanner\n restrictions={props.video._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.video.id}\n objectTypeId={MasterType.Video}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n \n {isArchived && <ArchivedBanner typeId={props.video.typeId} hasStudentExperience={hasStudentExperience}/>}\n \n <section className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n shareId={props.shareId}\n context={props.params?.context}\n contextId={props.params?.contextId}\n playNext={props.params?.playNext}\n moviesAndTv={props.params?.mtv}\n startTime={props.params?.t ?? props.params?.startTime}\n endTime={props.params?.endTime}\n mode='default'\n location='play-page'\n />\n }\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.video}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n type={playerContext.mode === 'picture-in-picture' ? 'pip' : 'public'}\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.video}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n getSeriesAppLink={series => appLinkFns.getSeriesAppLink(series, props.params.mtv)}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* \n * Toggling between display 'block' and 'none' is *deliberate* done here to facilitate exposure of our content to bots for SEO.\n * The markup of all 3 components should be available in the DOM from the first render. If you're going to refactor,\n * please don't neglect this usecase - Mike\n */}\n <section className={`${detailsView.view === 'v@g' ? 'd-block' : 'd-none'}`}>\n <VideoAtAGlance\n theme={props.glanceTheme}\n video={props.video}\n pointsOfInterest={props.pointsOfInterest}\n onClickShowDescription={() => setDetailsView({ view: 'details', referrer: 'v@g' })}\n onClickShowCurriculumLinks={hasCurriculumLinks && (() => setDetailsView({ view: 'curriculumLinks', referrer: 'v@g' }))}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={appLinkFns.getTagAppLink}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n </section>\n\n <section className={`${detailsView.view === 'details' ? 'd-block' : 'd-none'}`}>\n <VideoDetailsWithScrollbar\n video={props.video}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n hideTags={hasGlance}\n onClickClose={hasGlance && (() => setDetailsView({ view: 'v@g', referrer: 'details' }))}\n onClickShowCurriculumLinks={hasCurriculumLinks && (() => setDetailsView({ view: 'curriculumLinks', referrer: 'details' }))}\n getTagAppLink={appLinkFns.getTagAppLink}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n </section>\n\n {detailsView.view === 'curriculumLinks' && (\n <section >\n <CurriculumLinksWithScrollbar\n height={MINIMUM_GLANCE_HEIGHT}\n curriculums={props.curriculums}\n onClickClose={(() => setDetailsView({ view: detailsView.referrer, referrer: 'curriculumLinks' }))}\n emptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n checkAllCurriculums={props.checkAllCurriculum}\n />\n </section>\n )}\n\n <section className={`${detailsView.view === 'loading' ? 'd-block' : 'd-none'}`}>\n <VideoDetailsPartial />\n </section>\n\n {VideoHelper.isBroadcast(props.video) && <CopyrightDisclaimer placement='bottom-end' className='d-flex justify-content-end mt-n2' />}\n\n {!!resourcesWidget?.length && (\n <section className='pb-3' id={PlayPageAnchor.Resources} ref={resourcesRef}>\n <FixedWidget<ResourceWidgetItemProps>\n name={getPhrase('resources', { count: resourcesWidget.length })}\n contents={WidgetContents.PlayPageResources}\n collection={resourcesWidget}\n prefetched\n childComponent={ResourceWidgetItem}\n extraChildComponentProps={{\n imageCdnUrl,\n imageErrorFallbackUrl: ImageUrls.Fallbacks.RESOURCE_THUMBNAIL,\n actionBehaviour: props.featureAccess.canViewResourceItems ? 'normal' : 'public',\n location: 'play-page',\n titlePosition: 'above',\n hideTypeBadge: true\n }}\n getChildAppLink={appLinkFns.getResourceAppLink(\n props.video?.id,\n props.shareId,\n props.featureAccess.canViewResourceItems\n )}\n analyticsOptions={(() => {\n if (props.featureAccess.canViewResourceItems)\n return {};\n\n return {\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n };\n })()}\n analyticsData={{ widgetId: 'resources' }}\n />\n </section>\n )}\n\n {props.featureAccess.canViewInteractives && !!props.interactives?.length && (\n <section className='pb-3' id={PlayPageAnchor.Interactives} ref={interactivesRef}>\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('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 childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: props.video,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </section>\n )}\n\n {props.featureAccess.canViewClips && !!props.clips?.length && (\n <section className='pb-3'>\n <FixedWidget<ClipWidgetItemProps>\n name={getPhrase('clips', { count: props.clips.length })}\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 childComponent={ClipWidgetItem}\n extraChildComponentProps={{ video: props.video, imageCdnUrl: props.imageCdnUrl }}\n analyticsData={{ widgetId: 'clips' }}\n />\n </section>\n )}\n\n <section>\n <RelatedVideos\n currentVideo={props.video}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n currentUser={props.currentUser}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.params.context,\n contextId: props.params.contextId,\n playNext: props.params.playNext,\n shareId: props.shareId,\n moviesAndTv: props.params.mtv\n })}\n audiences={props.audiences}\n moviesAndTv={props.params.mtv}\n isPlugin={props.isPlugin}\n />\n </section>\n </LanguageNamespaceContext.Provider>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"GvGYH\",\"curriculumSet\":\"d7RK0\",\"areaLeafSet\":\"XRTAe\",\"closeButton\":\"N3l5Q\",\"heading\":\"hAxR4\",\"leafDescriptionOnly\":\"h66ke\",\"dropdown\":\"CsG6G\",\"tag\":\"rdLqY\",\"cover\":\"etwaD\",\"active\":\"aDLMe\",\"selected\":\"BMrSd\"};"],"names":["namespace","CONTAINER_HEIGHT","CopyrightDisclaimer","props","ref","isHovering","className","Text","phrase","Overlay","target","current","show","placement","overflowPlacement","document","documentElement","clientHeight","getBoundingClientRect","bottom","BRACKET_SEGMENT_REGEX","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","name","uiContainsCodes","codeRef","width","trySetMaxCodeWidth","description","style","minWidth","codeWidth","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","forEach","areaAndLeafSet","areaText","map","ca","join","push","match","Object","keys","i","key","id","CurriculumLinks","setCodeWidth","showOtherCurriculums","setShowOtherCurriculums","loadingOther","setLoadingOther","curriculumTags","setCurriculumTags","currentVal","checkAllCurriculums","curriculumLinks","length","then","data","curriculumLinkSets","newSet","subject","audience","areas","leaves","curriculumObj","type","hasNonEmptyCurriculums","emptyStateUrl","t","onClick","onChangeCurriculum","toString","src","cover","url","size","alt","linkSetKey","getPhrase","CurriculumLinksEmptyState","altText","PartialCurriculumLinkSection","PartialCurriculumLinks","CurriculumType","MIN_CURRICULUMS","CurriculumDropdown","availableCurriculums","selectedCurriculum","onChange","e","value","curriculum","LanguageService","CurriculumLinksWithScrollbar","curriculums","hasLoaded","currentCurriculum","activeCurriculum","updateCurriculum","nonEmptyCurriculums","showPartialLoading","setShowPartialLoading","setSelectedCurriculum","alerts","curriculumId","newCurriculum","find","c","error","ArrayHelper","canClose","onClickClose","autoHeight","autoHeightMax","height","PlayPage","playerContext","hasPermissions","usePermissions","canConsume","VideoHelper","video","imageCdnUrl","isArchived","hasStudentExperience","PermissionName","resourcesRef","interactivesRef","useTableOfContentsScroll","tableOfContentsId","shouldPlayOnExitImmersiveReader","hasGlance","glanceTheme","featureAccess","canViewGlance","view","referrer","detailsView","setDetailsView","glanceLoaded","appLinkFns","resourcesWidget","showPlayerPlaceholder","mode","canViewPublicLayout","hasCurriculumLinks","canViewCurriculumLinks","customerHasCurriculumLinks","RestrictionBanner","restrictions","_restrictions","yearGroups","objectId","objectTypeId","MasterType","canManageVideoAccess","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","shareId","context","params","contextId","playNext","moviesAndTv","mtv","startTime","endTime","location","PlayerPlaceholder","appLink","application","action","PlayPageTitleAndActions","media","audiences","getSeriesAppLink","series","VideoAtAGlance","theme","pointsOfInterest","onClickShowDescription","onClickShowCurriculumLinks","setStartTime","time","playerRef","currentTime","getTagAppLink","suppressInteractivity","VideoDetails","onLaunchImmersiveReader","isPaused","pause","onExitImmersiveReader","play","hideTags","ImageUrls","checkAllCurriculum","VideoDetailsPartial","PlayPageAnchor","count","contents","WidgetContents","collection","prefetched","childComponent","ResourceWidgetItem","R","extraChildComponentProps","imageErrorFallbackUrl","actionBehaviour","canViewResourceItems","titlePosition","hideTypeBadge","getChildAppLink","getResourceAppLink","analyticsOptions","workflowPhase","descriptor","SignUp","analyticsData","widgetId","canViewInteractives","interactives","interactive","args","TextHelper","InteractiveWidgetItem","questionsAppLink","canViewClips","clips","clip","ClipWidgetItem","C","RelatedVideos","currentVideo","relatedVideos","currentUser","setFavourite","canFavourite","getVideoAppLink","v","opts","VideoAppLinkHelper","isPlugin"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9211],{94644:(e,t,a)=>{a.d(t,{r:()=>d});var i=a(50242),n=a(81886),r=a(67058),o=a(14553),c=a(49267),s=a(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&n.Q.Ry.isStatusCodeError(r)&&(r!==i.o.NotFound?r!==i.o.Forbidden?a.badRequest||n.Q.Ry.throw(new o.badRequest):a.forbidden||n.Q.Ry.throw(new o.forbidden.privacy):a.notFound||n.Q.Ry.throw(new o.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>o});var i=a(32735),n=a(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,a){var o=Array.isArray(e)?e:[e];(0,i.useEffect)((function(){o.forEach((function(e){(0,n.r)(e.statusCode,t,a)}))}),[r(o),t,a])}},56871:(e,t,a)=>{a.d(t,{N:()=>D});var i=a(32735),n=a(23481),r=a(28400),o=a(65858),c=a(83345),s=a(19670),l=a(80385),d=a(73804),u=a(92805),p=a(13231),v=a(11518),m=a(15446),g=a(47862),f=a(26733),y=a(10439),h=a(35429),I=a(51365),C=a(4594),P=a(16714),E=a(12754),A=a(58704),b=a(22902),V=a(76196),w=a(59598),k=a(31908),O=a(26492),T=a(91479),F=a(99092),L=a(47938),R=a(81024),x=a(78166),S=a(99742),N=a(14070),q=a(97291),G=a(10671),U=a(10741),_=a(22490);function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=Array(t);a<t;a++)i[a]=e[a];return i}var M=function(e,t,a){return function(i){return a?{application:q.O.VIDEOS,action:N.e.Videos.PREVIEW_PDF,args:[i.id],params:{videoId:e,shareId:t}}:{application:q.O.SIGN_UP,action:N.e.SignUp.SIGN_UP}}},B="shared.playClip",W=n.T.encloseNamespace(B);function D(e){var t,a,n,D,H,Q,z,K,Y,Z,X,$,J=(0,h.g)(),ee=(0,b.T)().hasPermissions,te=k.M.getCanBeConsumed(e.clip).canConsume,ae=(0,G._)({location:G.i.VideoItem}),ie=i.useRef(null),ne=i.useRef(null);(0,V.P)([ie.current,ne.current],e.tableOfContentsId);var re,oe,ce=k.M.isVideoTypeArchived(e.clip),se=ee(P.C.StudentExperience),le=i.useRef(!1),de=(0,l.Wp)(e.clip,e.glanceTheme)&&e.featureAccess.canViewGlance,ue=(re=i.useState({view:"loading",referrer:null}),oe=2,function(e){if(Array.isArray(e))return e}(re)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var i,n,r,o,c=[],s=!0,l=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(i=r.call(a)).done)&&(c.push(i.value),c.length!==t);s=!0);}catch(e){l=!0,n=e}finally{try{if(!s&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(l)throw n}}return c}}(re,oe)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var a={}.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)?j(e,t):void 0}}(re,oe)||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.")}()),pe=ue[0],ve=ue[1];function me(){var t;return!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated)||!e.hasProduct(E.x.Primary)||!!se}i.useEffect((function(){e.glanceLoaded&&ve({view:e.glanceTheme?"v@g":"details",referrer:null})}),[e.glanceLoaded,e.glanceTheme]);var ge=e.originalVideo&&!me()&&!!(null===(t=e.clip._canBeConsumed)||void 0===t?void 0:t.value),fe="picture-in-picture"===J.mode||e.featureAccess.canViewPublicLayout,ye=(0,F.jh)(e.clip,se),he=null!==(n=null===(a=e.clips)||void 0===a?void 0:a.filter((function(t){return t.id.toString()!==e.clip.id.toString()})))&&void 0!==n?n:[];return i.createElement("div",{className:"px-4"},i.createElement(L.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:C.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),ce&&i.createElement(O.T,{typeId:e.clip.typeId,hasStudentExperience:se}),i.createElement("section",{className:"mb-2"},te&&i.createElement(y.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(D=e.queryParams)||void 0===D?void 0:D.context,contextId:null===(H=e.queryParams)||void 0===H?void 0:H.contextId,moviesAndTv:null===(Q=e.queryParams)||void 0===Q?void 0:Q.mtv,playNext:null===(z=e.queryParams)||void 0===z?void 0:z.playNext,startTime:null!==(Y=null===(K=e.queryParams)||void 0===K?void 0:K.t)&&void 0!==Y?Y:null===(Z=e.queryParams)||void 0===Z?void 0:Z.startTime,mode:"default",location:"play-page"}),i.createElement("div",{className:fe?"":"d-none"},i.createElement(R.S,{video:e.clip,type:"pip"}))),i.createElement(T.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:ge?{application:q.O.VIDEOS,action:N.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,r.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),i.createElement("section",{className:"".concat("v@g"===pe.view?"d-block":"d-none")},i.createElement(s.o,{theme:e.glanceTheme,video:e.clip,pointsOfInterest:e.pointsOfInterest,onClickShowDescription:function(){return ve({view:"details",referrer:"v@g"})},setStartTime:function(e){var t;return null===(t=J.playerRef.current)||void 0===t?void 0:t.currentTime(e)},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("details"===pe.view?"d-block":"d-none")},i.createElement(d.X,{video:e.clip,onLaunchImmersiveReader:function(){var e,t,a,i;le.current=!(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.isPaused()),null===(i=null===(a=null==J?void 0:J.playerRef)||void 0===a?void 0:a.current)||void 0===i||i.pause()},onExitImmersiveReader:function(){var e,t;le.current&&(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t||t.play())},onClickClose:de&&function(){return ve({view:"v@g",referrer:"details"})},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},hideTags:de,suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("loading"===pe.view?"d-block":"d-none")},i.createElement(u.H,null)),!!(null==ye?void 0:ye.length)&&i.createElement("section",{className:"pb-3",id:w.K.Resources,ref:ie},i.createElement(v.kM,{name:W("resources",{count:ye.length}),contents:A.z.PlayPageResources,collection:ye,prefetched:!0,childComponent:f.R,extraChildComponentProps:{imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:S.W.Fallbacks.RESOURCE_THUMBNAIL,actionBehaviour:e.featureAccess.canViewResourceItems?"normal":"public",location:"play-page",titlePosition:"above",hideTypeBadge:!0},getChildAppLink:M(null===(X=e.clip)||void 0===X?void 0:X.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsOptions:e.featureAccess.canViewResourceItems?{}:{workflowPhase:o.eu.Start,descriptor:o.Yu.SignUp},analyticsData:{widgetId:"resources"}})),!(!(null==he?void 0:he.length)||me())&&i.createElement("div",{className:"pb-3"},i.createElement(v.kM,{name:W("otherClips",{count:he.length}),contents:A.z.Clips,collection:he,prefetched:!0,getChildAppLink:function(e){return{application:q.O.CLIPS,action:N.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}},childComponent:m.C,extraChildComponentProps:{video:e.originalVideo,imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"clips"}})),!(!(null===($=e.interactives)||void 0===$?void 0:$.length)||me())&&i.createElement("div",{className:"pb-3",id:w.K.Interactives,ref:ne},i.createElement(v.kM,{name:W("interactives",{count:e.interactives.length}),contents:A.z.Interactives,collection:e.interactives,prefetched:!0,getChildAppLink:function(e){return{application:q.O.INTERACTIVES,action:N.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}},childComponent:g.K,extraChildComponentProps:{video:e.clip,questionsAppLink:{application:q.O.INTERACTIVES,action:N.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),!!ge&&i.createElement("section",{className:"pb-2 pt-1"},i.createElement("h2",{className:"h4 mb-0"},i.createElement(c.x,{namespace:B,phrase:"clippedFrom"})),i.createElement(I.M.Provider,{value:ae},i.createElement(p.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:ee,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return U.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:_.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:_.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:_.W.getResourceGuidanceAppLink}))),i.createElement("section",null,i.createElement(x.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},44110:(e,t,a)=>{a.d(t,{i:()=>o});var i=a(20354),n=a(89454),r=a(86698),o=function(){var e=(0,r.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,o=t||a();return i.a.useBasicFetch(!!o&&n.O.presentationAudiences(o.id))}},27478:(e,t,a)=>{a.r(t),a.d(t,{PlayClipView:()=>q});var i=a(32735),n=a(50242),r=a(23481),o=a(20354),c=a(65858),s=a(78417),l=a(16714),d=a(67058),u=a(33803),p=a(43012),v=a(39151),m=a(1666),g=a(20768),f=a(28907),y=a(31949),h=a(1575),I=a(26304),C=a(91286),P=a(22902),E=a(15311),A=a(79612),b=a(76753),V=a(56871),w=a(51855),k=a(7179),O=a(49948),T=a(36873),F=a(27638),L=a(44110),R=a(35014),x=a(97816),S=r.T.encloseNamespace("shared.playClip"),N={notFound:d.d,forbidden:{privacy:u.G}};function q(e){var t,a,r,d,u,q,G,U=e.queryParams,_=U.context,j=U.contextId,M=U.mtv,B=(0,E.r)().hasProduct,W=(0,F.u)(c.LZ.PlayClip),D=W.setFavourite,H=W.canFavourite,Q=(0,w.G)().isPlugin,z=(0,P.T)().hasPermissions,K=(0,R.I)(),Y=o.a.useBasicFetch(y.N.currentUser()),Z=o.a.useBasicFetch(v.L.config()),X=o.a.useBasicFetch(K.canViewClips&&p.e.clip(e.id)),$=o.a.useBasicFetch(K.canViewInteractives&&g.b.videoInteractives(e.id)),J=o.a.useBasicFetch(!!(null===(t=X.data)||void 0===t?void 0:t._parentVideo)&&h.R.video(X.data._parentVideo.id));(0,x.V)([J.data]);var ee=o.a.useBasicFetch(!!(null===(a=X.data)||void 0===a?void 0:a._parentVideo)&&K.canViewClips&&p.e.videoClips(X.data._parentVideo.id)),te=o.a.useBasicFetch(X.statusCode===n.o.Forbidden&&p.e.clip(e.id,s.r.StripMetadata)),ae=(0,T.k)({video:J.data,context:_,contextId:j,moviesAndTv:M,currentUser:Y.data}),ie=(0,L.i)(),ne=o.a.useBasicFetch((null===(r=Y.data)||void 0===r?void 0:r.isAuthenticated)&&m.h.yearGroups(Y.data.customerId)),re=z(l.C.ViewVideoGlance)&&(null===(u=null===(d=X.data)||void 0===d?void 0:d.glance)||void 0===u?void 0:u.theme),oe=o.a.useBasicFetch(re&&f.r.themeImages(X.data.glance.theme,X.data.glance.type)),ce=(0,O.l)(e.id,!0);return(0,A.M)(b.CG.getClipMetadata({content:X.data,phraseContext:{phraseHandler:S,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"}})),(0,C.v)(X,N,{forbidden:!0}),(0,x.V)(null!==(q=ae.videos)&&void 0!==q?q:[]),(0,I.b)(te),(0,k.P)({id:e.id,app:"clips"}),X.data&&Y.hasCompleted&&Z.hasCompleted&&ce.hasCompleted?i.createElement(V.N,{clip:X.data,interactives:$.data,clips:ee.data,originalVideo:J.data,currentUser:Y.data,yearGroups:ne.data,relatedVideos:"playlist"===_?ae:Object.assign(Object.assign({},ae),{videos:[]}),canFavourite:H,setFavourite:D,hasProduct:B,queryParams:e.queryParams,audiences:ie.data,imageCdnUrl:Z.data.imageCdnUrl,canManageVideoAccess:z(l.C.ManageVideoAccess),pointsOfInterest:ce.items,glanceTheme:oe.data,glanceLoaded:!re||oe.hasCompleted,featureAccess:K,tableOfContentsId:null===(G=e.queryParams)||void 0===G?void 0:G.tocId,isPlugin:Q}):i.createElement(i.Fragment,null)}q.defaultProps={queryParams:{}}}}]);
2
- //# sourceMappingURL=9211-0381d3e715-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9211],{94644:(e,t,a)=>{a.d(t,{r:()=>d});var i=a(50242),n=a(81886),r=a(67058),o=a(14553),c=a(49267),s=a(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&n.Q.Ry.isStatusCodeError(r)&&(r!==i.o.NotFound?r!==i.o.Forbidden?a.badRequest||n.Q.Ry.throw(new o.badRequest):a.forbidden||n.Q.Ry.throw(new o.forbidden.privacy):a.notFound||n.Q.Ry.throw(new o.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>o});var i=a(32735),n=a(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,a){var o=Array.isArray(e)?e:[e];(0,i.useEffect)((function(){o.forEach((function(e){(0,n.r)(e.statusCode,t,a)}))}),[r(o),t,a])}},56871:(e,t,a)=>{a.d(t,{N:()=>D});var i=a(32735),n=a(23481),r=a(28400),o=a(65858),c=a(83345),s=a(19670),l=a(80385),d=a(73804),u=a(92805),p=a(13231),v=a(11518),m=a(15446),g=a(47862),f=a(26733),y=a(10439),h=a(35429),I=a(51365),C=a(4594),P=a(16714),E=a(12754),A=a(58704),b=a(22902),V=a(76196),k=a(59598),w=a(31908),O=a(26492),T=a(91479),F=a(99092),L=a(47938),R=a(81024),x=a(78166),S=a(99742),N=a(14070),q=a(97291),G=a(10671),U=a(10741),_=a(22490);function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=Array(t);a<t;a++)i[a]=e[a];return i}var M=function(e,t,a){return function(i){return a?{application:q.O.VIDEOS,action:N.e.Videos.PREVIEW_PDF,args:[i.id],params:{videoId:e,shareId:t}}:{application:q.O.SIGN_UP,action:N.e.SignUp.SIGN_UP}}},B="shared.playClip",W=n.T.encloseNamespace(B);function D(e){var t,a,n,D,H,Q,z,K,Y,Z,X,$,J=(0,h.g)(),ee=(0,b.T)().hasPermissions,te=w.M.getCanBeConsumed(e.clip).canConsume,ae=(0,G._)({location:G.i.VideoItem}),ie=i.useRef(null),ne=i.useRef(null);(0,V.P)([ie.current,ne.current],e.tableOfContentsId);var re,oe,ce=w.M.isVideoTypeArchived(e.clip),se=ee(P.C.StudentExperience),le=i.useRef(!1),de=(0,l.Wp)(e.clip,e.glanceTheme)&&e.featureAccess.canViewGlance,ue=(re=i.useState({view:"loading",referrer:null}),oe=2,function(e){if(Array.isArray(e))return e}(re)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var i,n,r,o,c=[],s=!0,l=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(i=r.call(a)).done)&&(c.push(i.value),c.length!==t);s=!0);}catch(e){l=!0,n=e}finally{try{if(!s&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(l)throw n}}return c}}(re,oe)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var a={}.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)?j(e,t):void 0}}(re,oe)||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.")}()),pe=ue[0],ve=ue[1];function me(){var t;return!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated)||!e.hasProduct(E.x.Primary)||!!se}i.useEffect((function(){e.glanceLoaded&&ve({view:e.glanceTheme?"v@g":"details",referrer:null})}),[e.glanceLoaded,e.glanceTheme]);var ge=e.originalVideo&&!me()&&!!(null===(t=e.clip._canBeConsumed)||void 0===t?void 0:t.value),fe="picture-in-picture"===J.mode||e.featureAccess.canViewPublicLayout,ye=(0,F.jh)(e.clip,se),he=null!==(n=null===(a=e.clips)||void 0===a?void 0:a.filter((function(t){return t.id.toString()!==e.clip.id.toString()})))&&void 0!==n?n:[];return i.createElement("div",{className:"px-4"},i.createElement(L.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:C.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),ce&&i.createElement(O.T,{typeId:e.clip.typeId,hasStudentExperience:se}),i.createElement("section",{className:"mb-2"},te&&i.createElement(y.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(D=e.queryParams)||void 0===D?void 0:D.context,contextId:null===(H=e.queryParams)||void 0===H?void 0:H.contextId,moviesAndTv:null===(Q=e.queryParams)||void 0===Q?void 0:Q.mtv,playNext:null===(z=e.queryParams)||void 0===z?void 0:z.playNext,startTime:null!==(Y=null===(K=e.queryParams)||void 0===K?void 0:K.t)&&void 0!==Y?Y:null===(Z=e.queryParams)||void 0===Z?void 0:Z.startTime,mode:"default",location:"play-page"}),i.createElement("div",{className:fe?"":"d-none"},i.createElement(R.S,{video:e.clip,type:"pip"}))),i.createElement(T.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:ge?{application:q.O.VIDEOS,action:N.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,r.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),i.createElement("section",{className:"".concat("v@g"===pe.view?"d-block":"d-none")},i.createElement(s.o,{theme:e.glanceTheme,video:e.clip,pointsOfInterest:e.pointsOfInterest,onClickShowDescription:function(){return ve({view:"details",referrer:"v@g"})},setStartTime:function(e){var t;return null===(t=J.playerRef.current)||void 0===t?void 0:t.currentTime(e)},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("details"===pe.view?"d-block":"d-none")},i.createElement(d.X,{video:e.clip,onLaunchImmersiveReader:function(){var e,t,a,i;le.current=!(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.isPaused()),null===(i=null===(a=null==J?void 0:J.playerRef)||void 0===a?void 0:a.current)||void 0===i||i.pause()},onExitImmersiveReader:function(){var e,t;le.current&&(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t||t.play())},onClickClose:de&&function(){return ve({view:"v@g",referrer:"details"})},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},hideTags:de,suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("loading"===pe.view?"d-block":"d-none")},i.createElement(u.H,null)),!!(null==ye?void 0:ye.length)&&i.createElement("section",{className:"pb-3",id:k.K.Resources,ref:ie},i.createElement(v.kM,{name:W("resources",{count:ye.length}),contents:A.z.PlayPageResources,collection:ye,prefetched:!0,childComponent:f.R,extraChildComponentProps:{imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:S.W.Fallbacks.RESOURCE_THUMBNAIL,actionBehaviour:e.featureAccess.canViewResourceItems?"normal":"public",location:"play-page",titlePosition:"above",hideTypeBadge:!0},getChildAppLink:M(null===(X=e.clip)||void 0===X?void 0:X.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsOptions:e.featureAccess.canViewResourceItems?{}:{workflowPhase:o.eu.Start,descriptor:o.Yu.SignUp},analyticsData:{widgetId:"resources"}})),!(!(null==he?void 0:he.length)||me())&&i.createElement("div",{className:"pb-3"},i.createElement(v.kM,{name:W("otherClips",{count:he.length}),contents:A.z.Clips,collection:he,prefetched:!0,getChildAppLink:function(e){return{application:q.O.CLIPS,action:N.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}},childComponent:m.C,extraChildComponentProps:{video:e.originalVideo,imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"clips"}})),!(!(null===($=e.interactives)||void 0===$?void 0:$.length)||me())&&i.createElement("div",{className:"pb-3",id:k.K.Interactives,ref:ne},i.createElement(v.kM,{name:W("interactives",{count:e.interactives.length}),contents:A.z.Interactives,collection:e.interactives,prefetched:!0,getChildAppLink:function(e){return{application:q.O.INTERACTIVES,action:N.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}},childComponent:g.K,extraChildComponentProps:{video:e.clip,questionsAppLink:{application:q.O.INTERACTIVES,action:N.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),!!ge&&i.createElement("section",{className:"pb-2 pt-1"},i.createElement("h2",{className:"h4 mb-0"},i.createElement(c.x,{namespace:B,phrase:"clippedFrom"})),i.createElement(I.M.Provider,{value:ae},i.createElement(p.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:ee,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return U.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:_.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:_.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:_.W.getResourceGuidanceAppLink}))),i.createElement("section",null,i.createElement(x.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},44110:(e,t,a)=>{a.d(t,{i:()=>o});var i=a(20354),n=a(89454),r=a(86698),o=function(){var e=(0,r.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,o=t||a();return i.a.useBasicFetch(!!o&&n.O.presentationAudiences(o.id))}},27478:(e,t,a)=>{a.r(t),a.d(t,{PlayClipView:()=>q});var i=a(32735),n=a(50242),r=a(23481),o=a(20354),c=a(65858),s=a(78417),l=a(16714),d=a(67058),u=a(33803),p=a(43012),v=a(39151),m=a(1666),g=a(20768),f=a(28907),y=a(31949),h=a(1575),I=a(26304),C=a(91286),P=a(22902),E=a(15311),A=a(79612),b=a(76753),V=a(56871),k=a(51855),w=a(7179),O=a(49948),T=a(36873),F=a(27638),L=a(44110),R=a(35014),x=a(97816),S=r.T.encloseNamespace("shared.playClip"),N={notFound:d.d,forbidden:{privacy:u.G}};function q(e){var t,a,r,d,u,q,G,U=e.queryParams,_=U.context,j=U.contextId,M=U.mtv,B=(0,E.r)().hasProduct,W=(0,F.u)(c.LZ.PlayClip),D=W.setFavourite,H=W.canFavourite,Q=(0,k.G)().isPlugin,z=(0,P.T)().hasPermissions,K=(0,R.I)(),Y=o.a.useBasicFetch(y.N.currentUser()),Z=o.a.useBasicFetch(v.L.config()),X=o.a.useBasicFetch(p.e.clip(e.id)),$=o.a.useBasicFetch(K.canViewInteractives&&g.b.videoInteractives(e.id)),J=o.a.useBasicFetch(!!(null===(t=X.data)||void 0===t?void 0:t._parentVideo)&&h.R.video(X.data._parentVideo.id));(0,x.V)([J.data]);var ee=o.a.useBasicFetch(!!(null===(a=X.data)||void 0===a?void 0:a._parentVideo)&&K.canViewClips&&p.e.videoClips(X.data._parentVideo.id)),te=o.a.useBasicFetch(X.statusCode===n.o.Forbidden&&p.e.clip(e.id,s.r.StripMetadata)),ae=(0,T.k)({video:J.data,context:_,contextId:j,moviesAndTv:M,currentUser:Y.data}),ie=(0,L.i)(),ne=o.a.useBasicFetch((null===(r=Y.data)||void 0===r?void 0:r.isAuthenticated)&&m.h.yearGroups(Y.data.customerId)),re=z(l.C.ViewVideoGlance)&&(null===(u=null===(d=X.data)||void 0===d?void 0:d.glance)||void 0===u?void 0:u.theme),oe=o.a.useBasicFetch(re&&f.r.themeImages(X.data.glance.theme,X.data.glance.type)),ce=(0,O.l)(e.id,!0);return(0,A.M)(b.CG.getClipMetadata({content:X.data,phraseContext:{phraseHandler:S,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"}})),(0,C.v)(X,N,{forbidden:!0}),(0,x.V)(null!==(q=ae.videos)&&void 0!==q?q:[]),(0,I.b)(te),(0,w.P)({id:e.id,app:"clips"}),X.data&&Y.hasCompleted&&Z.hasCompleted&&ce.hasCompleted?i.createElement(V.N,{clip:X.data,interactives:$.data,clips:ee.data,originalVideo:J.data,currentUser:Y.data,yearGroups:ne.data,relatedVideos:"playlist"===_?ae:Object.assign(Object.assign({},ae),{videos:[]}),canFavourite:H,setFavourite:D,hasProduct:B,queryParams:e.queryParams,audiences:ie.data,imageCdnUrl:Z.data.imageCdnUrl,canManageVideoAccess:z(l.C.ManageVideoAccess),pointsOfInterest:ce.items,glanceTheme:oe.data,glanceLoaded:!re||oe.hasCompleted,featureAccess:K,tableOfContentsId:null===(G=e.queryParams)||void 0===G?void 0:G.tocId,isPlugin:Q}):i.createElement(i.Fragment,null)}q.defaultProps={queryParams:{}}}}]);
2
+ //# sourceMappingURL=9211-10bda850c6-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/9211-10bda850c6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/shared/components/play-clip/PlayClip.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/PlayClipView.tsx"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SignUpDescriptors, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoAtAGlance } from 'libs/shared/components/video-at-a-glance/VideoAtAGlance';\nimport { hasGlanceData } from 'libs/shared/components/video-at-a-glance/VideoAtAGlanceUtils';\nimport { VideoDetailsWithScrollbar } from 'libs/shared/components/video-details/VideoDetails';\nimport { VideoDetailsPartial } from 'libs/shared/components/video-details/VideoDetailsPartial';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { ClipWidgetItem, ClipWidgetItemProps } from 'libs/shared/components/widgets/items/clip-widget-item/ClipWidgetItem';\nimport { InteractiveWidgetItem, InteractiveWidgetItemProps } from 'libs/shared/components/widgets/items/interactive-widget-item/InteractiveWidgetItem';\nimport { ResourceWidgetItem, ResourceWidgetItemProps } from 'libs/shared/components/widgets/items/resource-widget-item/ResourceWidgetItem';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, Interactive, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Theme, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { getResources } from 'shared/components/play-page/PlayPageUtils';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\nconst namespace = 'shared.playClip';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype DetailsViewType = {\n view: 'v@g' | 'details' | 'loading';\n referrer: 'v@g' | 'details';\n};\n\ninterface PlayClipProps {\n clip: Clip;\n interactives: InteractiveMetadata[];\n clips: Clip[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n glanceTheme?: Theme;\n glanceLoaded: boolean;\n tableOfContentsId: string;\n isPlugin: boolean;\n}\n\nexport function PlayClip(props: PlayClipProps): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n const resourcesRef = React.useRef<HTMLDivElement>(null);\n const interactivesRef = React.useRef<HTMLDivElement>(null);\n\n useTableOfContentsScroll([\n resourcesRef.current,\n interactivesRef.current\n ], props.tableOfContentsId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n const hasGlance = hasGlanceData(props.clip, props.glanceTheme) && props.featureAccess.canViewGlance;\n\n const [ detailsView, setDetailsView ] = React.useState<DetailsViewType>({\n view: 'loading',\n referrer: null\n });\n\n React.useEffect(() => {\n if (!props.glanceLoaded)\n return;\n\n setDetailsView({\n view: props.glanceTheme ? 'v@g' : 'details',\n referrer: null\n });\n }, [ props.glanceLoaded, props.glanceTheme ]);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function limitAccess(): boolean {\n if (!props.currentUser?.isAuthenticated)\n return true;\n\n if (!props.hasProduct(ProductId.Primary))\n return true;\n\n if (hasStudentExperience)\n return true;\n\n return false;\n }\n\n const canAccessOriginal = props.originalVideo && !limitAccess() && !!props.clip._canBeConsumed?.value;\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal)\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const resourcesWidget = getResources(props.clip, hasStudentExperience);\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n return (\n <div className='px-4'>\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section className={`mb-2`}>\n {canConsume &&\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n }\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* \n * Toggling between display 'block' and 'none' is *deliberate* done here to facilitate exposure of our content to bots for SEO.\n * The markup of all 3 components should be available in the DOM from the first render. If you're going to refactor,\n * please don't neglect this usecase - Mike\n */}\n <section className={`${detailsView.view === 'v@g' ? 'd-block' : 'd-none'}`}>\n <VideoAtAGlance\n theme={props.glanceTheme}\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n onClickShowDescription={() => setDetailsView({ view: 'details', referrer: 'v@g' })}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n </section>\n\n <section className={`${detailsView.view === 'details' ? 'd-block' : 'd-none'}`}>\n <VideoDetailsWithScrollbar\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n onClickClose={hasGlance && (() => setDetailsView({ view: 'v@g', referrer: 'details' }))}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n hideTags={hasGlance}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n </section>\n\n <section className={`${detailsView.view === 'loading' ? 'd-block' : 'd-none'}`}>\n <VideoDetailsPartial />\n </section>\n\n {!!resourcesWidget?.length && (\n <section className='pb-3' id={PlayPageAnchor.Resources} ref={resourcesRef}>\n <FixedWidget<ResourceWidgetItemProps>\n name={getPhrase('resources', { count: resourcesWidget.length })}\n contents={WidgetContents.PlayPageResources}\n collection={resourcesWidget}\n prefetched\n childComponent={ResourceWidgetItem}\n extraChildComponentProps={{\n imageCdnUrl: props.imageCdnUrl,\n imageErrorFallbackUrl: ImageUrls.Fallbacks.RESOURCE_THUMBNAIL,\n actionBehaviour: props.featureAccess.canViewResourceItems ? 'normal' : 'public',\n location: 'play-page',\n titlePosition: 'above',\n hideTypeBadge: true\n }}\n getChildAppLink={getResourceAppLink(\n props.clip?.id,\n props.shareId,\n props.featureAccess.canViewResourceItems\n )}\n analyticsOptions={(() => {\n if (props.featureAccess.canViewResourceItems)\n return {};\n\n return {\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n };\n })()}\n analyticsData={{ widgetId: 'resources' }}\n />\n </section>\n )}\n\n {!!(otherClips?.length && !limitAccess()) && (\n <div className='pb-3'>\n <FixedWidget<ClipWidgetItemProps>\n name={getPhrase('otherClips', { count: otherClips.length })}\n contents={WidgetContents.Clips}\n collection={otherClips}\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 childComponent={ClipWidgetItem}\n extraChildComponentProps={{ video: props.originalVideo, imageCdnUrl: props.imageCdnUrl }}\n analyticsData={{ widgetId: 'clips' }}\n />\n </div>\n )}\n\n {!!(props.interactives?.length && !limitAccess()) && (\n <div className='pb-3' id={PlayPageAnchor.Interactives} ref={interactivesRef}>\n <FixedWidget<InteractiveWidgetItemProps>\n name={getPhrase('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 childComponent={InteractiveWidgetItem}\n extraChildComponentProps={{\n video: props.clip,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n imageCdnUrl: props.imageCdnUrl\n }}\n analyticsData={{ widgetId: 'interactives' }}\n />\n </div>\n )}\n\n {!!canAccessOriginal && (\n <section className='pb-2 pt-1'>\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n )}\n\n <section>\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n </section>\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { ThemeRequests } from 'libs/shared/flight-requests/ThemeRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, Theme, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { PlayClip } from 'shared/components/play-clip/PlayClip';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { PlayViewProps } from './PlayClipViewContainer';\n\nconst namespace = 'shared.playClip';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst clipErrors = {\n notFound: NotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayClipView.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayClipView(props: PlayViewProps): JSX.Element {\n const { context, contextId, mtv } = props.queryParams;\n\n const { hasProduct } = useProducts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.PlayClip);\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n\n const featureAccess = useVideoFeatureAccess();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(props.id));\n\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.id)\n );\n const video = Flight.useBasicFetch<Video>(\n !!clip.data?._parentVideo && VideoRequests.video(clip.data._parentVideo.id)\n );\n useVideoMixin([video.data]);\n\n const childClips = Flight.useBasicFetch<Clip[]>(\n !!clip.data?._parentVideo && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n\n const strippedClip = Flight.useBasicFetch<Clip>(clip.statusCode === HttpStatus.Forbidden &&\n ClipRequests.clip(props.id, PermissionFilterOption.StripMetadata));\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const shouldFetchTheme = hasPermissions(PermissionName.ViewVideoGlance) &&\n clip.data?.glance?.theme;\n \n const glanceTheme = Flight.useBasicFetch<Theme>(\n shouldFetchTheme &&\n ThemeRequests.themeImages(clip.data.glance.theme, clip.data.glance.type)\n );\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({\n content: clip.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n }\n }));\n\n useHandleObjectError(clip, clipErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(strippedClip);\n useDeepLinks({ id: props.id, app: 'clips' });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClip\n clip={clip.data}\n interactives={interactives.data}\n clips={childClips.data}\n originalVideo={video.data}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n // we only show up next videos for clips in a playlist\n relatedVideos={context === 'playlist' ? relatedVideos : { ...relatedVideos, videos: []}}\n canFavourite={canFavourite}\n setFavourite={setFavourite}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n imageCdnUrl={config.data.imageCdnUrl}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest.items}\n glanceTheme={glanceTheme.data}\n glanceLoaded={!shouldFetchTheme || glanceTheme.hasCompleted}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n isPlugin={isPlugin}\n />\n );\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","getResourceAppLink","videoId","shareId","canViewResource","resource","application","action","args","id","params","namespace","getPhrase","PlayClip","props","playerContext","hasPermissions","canConsume","clip","videoActions","location","resourcesRef","interactivesRef","current","tableOfContentsId","isArchived","hasStudentExperience","shouldPlayOnExitImmersiveReader","hasGlance","glanceTheme","featureAccess","canViewGlance","view","referrer","detailsView","setDetailsView","limitAccess","currentUser","isAuthenticated","hasProduct","glanceLoaded","canAccessOriginal","originalVideo","_canBeConsumed","value","showPlayerPlaceholder","mode","canViewPublicLayout","resourcesWidget","otherClips","clips","filter","c","toString","className","restrictions","_restrictions","yearGroups","objectId","objectTypeId","canManageVideoAccess","typeId","key","context","queryParams","contextId","moviesAndTv","mtv","playNext","startTime","t","video","type","media","audiences","originalVideoAppLink","name","theme","pointsOfInterest","onClickShowDescription","setStartTime","time","playerRef","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","onLaunchImmersiveReader","isPaused","pause","onExitImmersiveReader","play","onClickClose","hideTags","length","ref","count","contents","collection","prefetched","childComponent","R","extraChildComponentProps","imageCdnUrl","imageErrorFallbackUrl","actionBehaviour","canViewResourceItems","titlePosition","hideTypeBadge","getChildAppLink","analyticsOptions","workflowPhase","descriptor","SignUp","analyticsData","widgetId","C","interactives","interactive","questionsAppLink","phrase","videos","setFavourite","canFavourite","getVideoAppLink","v","opts","presentationAudiences","getPreviewQuestionsAppLink","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","currentVideo","relatedVideos","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","clipErrors","PlayClipView","u","config","canViewInteractives","data","_parentVideo","childClips","canViewClips","strippedClip","customerId","shouldFetchTheme","glance","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","app","hasCompleted","items","tocId","defaultProps"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 986-c797fed10a-lite.chunk.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[986],{50690:(e,t,n)=>{n.d(t,{b:()=>i});var a=n(12788),i={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},7870:(e,t,n)=>{n.d(t,{N:()=>c});var a=n(97395),i=n(75896),r=n(110),o=n(40424),c={calendarEvents:function(e,t,n){return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/content",{from:e,to:t,presentationId:n}),publicUrl:a._.urlBuilder("/api/discover/special-events/content",{from:e,to:t,presentationId:n}),key:"presentation:".concat(n,":events:from:").concat(e,":to").concat(t)}},nextTopicSpecialEvent:function(e,t){var n={presentationId:t,limit:1,from:r.O.format(new Date,"YYYY-MM-DD"),objectType:o.VH.Classification};return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/object/".concat(e,"/next-events"),n),publicUrl:a._.urlBuilder("/api/discover/special-events/object/".concat(e,"/next-events"),n),key:"presentation:".concat(t,":events:classification:").concat(e),formatData:function(e){return i.m.first(e)}}}}},69395:(e,t,n)=>{n.d(t,{e:()=>o});var a=n(32735),i=n(91967);const r={disabled:"pERi4",disabledHighlighted:"AxyWm"};function o(e){var t=e.audience,n=e.highlight,o=e.setAudience,c=e.isDisabled,s=e.extraClasses,l=function(e,t){return e?t?"".concat(r.disabledHighlighted," text-light"):"bg-gray-900 text-white":t?"".concat(r.disabled," text-secondary"):"bg-light"}(n,c),u="rounded-pill d-inline-block me-1 user-select-none ".concat(c?"cursor-default":"cursor-pointer"," ").concat(l," ").concat(s);return a.createElement("span",{className:u,onClick:function(){!c&&i.q.isFunction(o)&&o(t,!n)},role:"checkbox","aria-checked":n},t.name.split(" ").map((function(e){return e.charAt(0).toUpperCase()+e.substring(1)})).join(" "))}o.defaultProps={extraClasses:""}},14875:(e,t,n)=>{n.d(t,{a:()=>y});var a=n(32735),i=n(23481),r=n(75902),o=n(35223);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=s(s(s({},r.GL.Archived,{svgName:o.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),r.GL.Draft,{svgName:o.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),r.GL.Published,{svgName:o.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),u=n(83914),d=n(40424);const m={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function p(e){var t="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(m.badge);switch(e.status){case d.GL.Published:t+=" ".concat(m.published);break;case d.GL.Archived:t+=" ".concat(m.archived);break;case d.GL.Draft:t+=" ".concat(e.darkMode?m.draftDark:m.draftLight)}return e.wrapperClassName&&(t+=" ".concat(e.wrapperClassName)),t}function f(e){var t=l[e.status],n=t.statusName,i=t.svgName;return a.createElement("div",{className:p(e)},a.createElement(u.x,{svgName:i}),a.createElement("div",null,n))}var v=n(98364);const g={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var b=i.T.encloseNamespace("shared.classificationPreviewBanner");function y(e){return a.createElement("div",{className:"".concat(g.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},a.createElement("div",{className:"position-absolute d-flex ".concat(g.badgeWrapper)},a.createElement(f,{status:e.status,wrapperClassName:"".concat(g.badge),darkMode:!0})),a.createElement("div",{className:"flex-grow-1"},a.createElement("h1",{className:"text-center my-3 h5"},a.createElement(v.V,{emoji:"👀"}),b("topic"===e.type?"topicTitle":"companyTitle"))))}},28046:(e,t,n)=>{n.d(t,{l:()=>p,v:()=>f});var a=n(39479),i=["pdf"],r=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],m=["srt"],p={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(r,c,d,i,o,s,u).join(",.")),SUBTITLES:".".concat(m.join(",."))},f={getResourceType:function(e){var t=e.toLowerCase();return a.contains(r,t)?"document":a.contains(c,t)?"excel":a.contains(d,t)?"powerpoint":a.contains(i,t)?"pdf":a.contains(o,t)?"text":a.contains(s,t)?"image":a.contains(u,t)?"archive":a.contains(m,t)?"subtitle":""}}},44522:(e,t,n)=>{n.d(t,{p:()=>I,v:()=>C});var a=n(32735),i=n(110),r=n(50690),o=n(84963),c=n(73679),s=n(83657),l=n(23481),u=n(36848),d=n(83914),m=n(35223),p="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,i=t.appLink,r=t.color,o=t.extraClasses,c=t.textShadow,s=n?l.T.getPhrase(p,"backTo",{backToName:n}):l.T.getPhrase(p,"back"),f="black"===r?"":"text-white",v=c?"text-shadow":"";return a.createElement(u.F,{appLink:i,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(f," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},s))}f.defaultProps={color:"black",extraClasses:""};var v=n(36518),g=n(83345),b=n(10587),y=n(94232),h=n(54610),w=n(79967),E=n(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var T="".concat(b.y[h.__.Banners].width,":").concat(b.y[h.__.Banners].height);function S(e){return e.length<160?"h1":k.headingLarge}var I=a.memo((function(e){var t,n,l,u,d=e.heading,m=e.banner,p=e.imageCdnUrl,b=e.actions,I=e.sortComponent,C=e.blockColourClass,L=e.specialEvent,x=a.useContext(y.n),N=(0,w.k)().xxl?1920:1200,O=a.useMemo((function(){if(!L||e.showComingSoon)return!1;var t=i.O.format(new Date,"YYYY-MM-DD");return L.endDate?L.startDate<=t&&L.endDate>=t:L.startDate===t}),[L]),A=e.imageOptions||{width:N,ratio:T,resizeType:h.Nq.Cover},P=!!m&&!!p&&E.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:d,type:h.__.Banners},A),j={className:"banner banner-header ".concat(e.bannerClassName),style:P?{backgroundImage:"url('".concat(P,"')")}:{}};!m&&C&&(delete j.style,j.className+=" ".concat(C));var D=e.detailsComponent;return r.b.renderInPortalIfExists(a.createElement("header",Object.assign({},j),a.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!L&&a.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},a.createElement(c.s,{body:{type:L.endDate?"range":"day",text:L.endDate?"".concat(i.O.format(L.startDate,"DD"),"-").concat(i.O.format(L.endDate,"DD")):i.O.format(L.startDate,"DD")},month:i.O.format(L.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,O&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(g.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(o.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(v.w,{src:E.j.createUrl(null===(l=e.logo)||void 0===l?void 0:l.url,{size:h.h2.Medium})})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(S(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,D&&a.createElement(D,null)))),!!b&&a.createElement("div",{className:k.actionsContainer},a.createElement(s.e,{actions:b,sortComponent:I,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:k.logoContainer},a.createElement("img",{src:E.j.createUrl(e.logo.url,{size:h.h2.Small}),className:"rounded-circle"})))),null==x?void 0:x.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function C(){var e=a.useContext(y.n);return r.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>m});var a=n(32735),i=n(36848),r=n(86764),o=n(3747),c=n(5859),s=n(35223),l=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,r=t.appLink,o=t.active,c=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?a.createElement("strong",null,n):a.createElement(i.F,{appLink:r},c&&a.createElement(l.x,{svgName:s.vn.ChevronLeft,size:l.S.Small}),a.createElement("span",{className:c?"ms-2":""},n)))},d=function(e){var t=e.breadcrumbs,n=(0,o.a)(r.r.XS),i=null==t?void 0:t.length;return!i||n&&i<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[i-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},m=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(r.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),i=n(49985),r=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(r.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&i.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},75838:(e,t,n)=>{n.d(t,{w:()=>l});var a=n(32735),i=n(92869),r=n(65858),o=n(36848),c=n(11607);const s={itemsWrapper:"m6mGm",anchorWrapper:"QptZj",default:"_AZa8",selectedItem:"Nuiel",disabled:"WIzWJ",floatIcon:"ARudn",arrowIcon:"tEF5Q",listIcon:"Ql2wi"};function l(e){var t={actionType:r.Vw.Click,entity:r.py.Widget,location:r.LZ.TableOfContents};return a.createElement("div",{className:"".concat(s.itemsWrapper)},e.items.map((function(n,r){return e.localState?a.createElement(c.L,{key:n.id,className:"".concat(s.anchorWrapper," ").concat(e.activeId===n.id?s.selectedItem:""),onClick:function(){var t;i.t.preventScrollTop(),e.setControlledId(n.id),null===(t=e.onItemClick)||void 0===t||t.call(e,n)}},a.createElement("div",{className:"".concat(e.activeId||0!==r?"":s.default," ")},n.name)):a.createElement(o.F,{key:n.id,appLink:e.getAppLink(n),appLinkOptions:{replace:!0},className:"".concat(s.anchorWrapper," ").concat(e.activeId===n.id?s.selectedItem:""),onClick:function(){var t;i.t.preventScrollTop(),e.setControlledId(n.id),null===(t=e.onItemClick)||void 0===t||t.call(e,n)},analyticsData:Object.assign(Object.assign({},e.analyticsData),{id:n.id,name:n.name}),analyticsOptions:t},a.createElement("div",{className:"".concat(e.activeId||0!==r?"":s.default," ")},n.name))})))}},17101:(e,t,n)=>{var a;n.d(t,{n:()=>a}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(a||(a={}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),i=n(81886),r=n(67058),o=n(14553),c=n(49267),s=n(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&i.Q.Ry.isStatusCodeError(r)&&(r!==a.o.NotFound?r!==a.o.Forbidden?n.badRequest||i.Q.Ry.throw(new o.badRequest):n.forbidden||i.Q.Ry.throw(new o.forbidden.privacy):n.notFound||i.Q.Ry.throw(new o.notFound))}}},7198:(e,t,n)=>{n.d(t,{f:()=>i});var a=n(99940),i={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:a.k.POST,data:Object.assign(Object.assign({},e),t)}}}},25665:(e,t,n)=>{n.d(t,{k:()=>s});var a=n(99940),i=n(97395);function r(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var c=function(e){return i._.urlBuilder("/api/domain/v1/subjects/classifications/following",{id:e})},s={follow:function(e,t,n,i){return{url:"/api/domain/v1/subjects/classifications/following",key:"follow:".concat(e.join(",")),type:a.k.POST,data:e,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[t]}}}))},success:n,error:i,invalidationKeys:[].concat(r(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}},unfollow:function(e,t,n,i){return{url:c(e),key:"unfollow:".concat(e.join(",")),type:a.k.DELETE,formatData:function(){return e.map((function(e){return{id:e,followers:{data:[]}}}))},success:n,error:i,invalidationKeys:[].concat(r(e.map((function(e){return"classification:".concat(e)}))),["my:subject:preferences","classifications"])}}}},91286:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(32735),i=n(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,n){var o=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){o.forEach((function(e){(0,i.r)(e.statusCode,t,n)}))}),[r(o),t,n])}},94631:(e,t,n)=>{n.d(t,{D:()=>i});var a=n(32735);function i(e){var t=a.useRef();return a.useEffect((function(){t.current=e})),t.current}},65332:(e,t,n)=>{n.d(t,{D:()=>r});var a,i=n(32735),r=function(e){var t=e.setActiveId,n=e.headingElements,r=e.controlledId,o=e.setControlledId,c=i.useRef(0);i.useEffect((function(){var e=new IntersectionObserver((function(e){e.forEach((function(e){if(r)return t(r),void(a=window.setTimeout((function(){o("")}),800));if(e.isIntersecting)t(e.target.id),c.current=window.scrollY;else{var i=c.current-window.scrollY>0,s=n.findIndex((function(t){return t.id===e.target.id})),l=n[s-1];i&&(null==l?void 0:l.id)&&t(null==l?void 0:l.id)}}))}),{rootMargin:"-67px 0px -80% 0px"});return n.forEach((function(t){return e.observe(t)})),function(){a&&window.clearTimeout(a),e.disconnect()}}),[t,n.length,r])}},76196:(e,t,n)=>{n.d(t,{P:()=>o});var a=n(32735),i=n(94631);function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var o=function(e,t){var n,o,c=(n=a.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(n,o)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],l=c[1],u=(0,i.D)(t),d=t;a.useLayoutEffect((function(){if(!s||u!==d){var t=e.find((function(e){return e&&(null==e?void 0:e.id)===d}));if(t){var n=t.getBoundingClientRect();window.scrollBy({top:n.top-80,behavior:"smooth"}),s||l(!0)}}}),[e,u,d,s])}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var a=n(53301),i=n.n(a),r=n(28046),o=n(19808),c=n(86613);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,a){var i,r=[t].concat(function(e){if(Array.isArray(e))return s(e)}(i=a)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(i)||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.")}());r.push(n?"student":"staff"),e.role===c.i.Admin&&r.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&r.push(o),r},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return i().isValidFile(t.get("file"),r.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},4399:(e,t,n)=>{n.d(t,{$7:()=>o,Dp:()=>c});var a=n(28400),i=n(14070),r=n(97291),o=function(e){return function(t){return{application:r.O.SUBJECT,action:i.e.Subjects.CLASSIFICATION,args:t?[t.id,a.m.slugify(t.name)]:[],params:e||{}}}},c=function(e){return{application:r.O.SUBJECT,action:i.e.Subjects.CLASSIFICATION_ALL,params:e?{presentationId:e}:{}}}},70986:(e,t,n)=>{n.r(t),n.d(t,{CuratedClassificationView:()=>Et});var a=n(32735),i=n(23481),r=n(20354),o=n(28400),c=n(49985),s=n(65858),l=n(7870),u=n(23232),d=n(83345),m=n(76177),p=n(40424),f=n(35223),v="subjects.curatedClassificationEmptyState",g=i.T.encloseNamespace(v);function b(e){var t,n,r=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===p.GL.Archived;return a.createElement(d.D.Provider,{value:v},a.createElement(u.u,null,a.createElement(u.u.Image,{src:e.imageUrl,altText:g("headingForNP")}),e.isReadonly?a.createElement(a.Fragment,null,a.createElement(u.u.Heading,null,a.createElement(d.x,{namespace:v,phrase:"headingForCurator"})),a.createElement(u.u.Info,null,a.createElement(d.x,{namespace:v,phrase:"info"})),a.createElement(m.u,{title:r?i.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},a.createElement(u.u.Cta,{text:i.T.getPhrase(v,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:f.vn.Plus,disabled:r}))):a.createElement(u.u.Heading,null,a.createElement(d.x,{phrase:"headingForNP"}))))}var y=n(75838),h=n(75795);const w={container:"k1iOO"};function E(e){return a.createElement("div",{className:"".concat(w.container," ps-3")},a.createElement("h2",{className:"h5"},e.title),a.createElement(y.w,{items:e.widgets,activeId:e.activeId,appLink:e.appLink,analyticsData:e.analyticsData,setControlledId:e.setControlledId,getAppLink:function(e){var t=h.O.getCurrentRoute().appLink,n=t.params?Object.assign({},t.params):{};return n.tocId=e.id,Object.assign(Object.assign({},t),{params:n})}}))}var k="subjects.teacherOnlyEmptyState",T=i.T.encloseNamespace(k);function S(e){var t;return a.createElement(d.D.Provider,{value:k},a.createElement(u.u,null,a.createElement(u.u.Image,{src:e.imageUrl,altText:T("heading")}),a.createElement(u.u.Heading,null,a.createElement(d.x,{phrase:"heading"})),a.createElement(u.u.Info,null,a.createElement(d.x,{phrase:"info"})),a.createElement(u.u.Cta,{text:T("cta"),appLink:null===(t=e.ctaAppLink)||void 0===t?void 0:t.call(e),className:"btn btn-dark"})))}var I=n(75896),C=n(42308),L=n(80889),x=n(21366),N=n(44522),O=n(13231),A=n(88513),P=n(32624),j=n(86764),D=n(78479),F=n(3747),R=n(65332),B=n(76196),U=n(42735),_="subjects.classificationComingSoon",G=i.T.encloseNamespace(_);function W(e){var t,n,i=!!(null===(n=null===(t=e.data.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);return a.createElement(d.D.Provider,{value:_},a.createElement(u.u,{className:"pt-0"},a.createElement(u.u.Image,{src:e.imageUrl,altText:G("comingSoon")}),a.createElement(u.u.Heading,null,a.createElement(d.x,{phrase:"comingSoon"})),a.createElement(u.u.Info,null,a.createElement(d.x,{phrase:"info"})),e.canFollowSubjects&&a.createElement(U.K,{svgName:i?f.vn.Check:f.vn.Bell,onClick:function(){var t;null===(t=e.onToggleFollow)||void 0===t||t.call(e)},showSpinner:e.showFollowButtonSpinner,className:"btn follow-btn me-2 ".concat(i?"btn-outline-dark":"btn-dark")},a.createElement(d.x,{phrase:i?"unfollow":"follow"}))))}var M=n(49935),V=n(79967),H=n(69454),q=n(87114),Z=n(57900),z=n(81886),Q=n(2948),Y=n(1048),J=n(69395),$=n(11607),X=n(38143),K=n(5859);function ee(e,t){if(e){if("string"==typeof e)return te(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?te(e,t):void 0}}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ne="subjects.audienceFilter";function ae(e){var t,n,i=e.audiences,r=e.activeAudiences,o=e.disabled,c=e.appLink,s=(t=(0,Q.D)(X.g.AUDIENCE_FILTER,void 0,{storage:Z.Z1.SessionStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||ee(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.")}())[1];function l(e,t){var n,a,i=t?[].concat(function(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ee(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.")}()}(null!==(n=null==r?void 0:r.map((function(e){return e.name})))&&void 0!==n?n:[]),[e.name]):r.map((function(e){return e.name})).filter((function(t){return t!==e.name}));z.Q.C$.trigger(Object.assign(Object.assign({},c),{params:(a=Y.t.omit(c.params,["a"]),i.length?Object.assign({},a,{a:i}):a)}),{replace:!0})}return a.useEffect((function(){e.disablePersist||s(r)}),[r]),i&&i.length?a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},i.map((function(e){return a.createElement(J.e,{key:e.masterId,audience:e,highlight:!!(null==r?void 0:r.find((function(t){return t.masterId===e.masterId}))),setAudience:l,isDisabled:o})})),!!r&&!!Object.keys(r).length&&a.createElement($.L,{className:"info-link d-inline-block ms-1",onClick:function(){var e=Y.t.omit(c.params,["a"]);z.Q.C$.trigger(Object.assign(Object.assign({},c),{params:e}),{replace:!0})}},a.createElement(d.x,{namespace:ne,phrase:"clear"}))):a.createElement(a.Fragment,null)}var ie=K.u.getPartialLoadingItems({numItems:6}),re=function(){return a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},ie.map((function(e,t){var n=e.width;return a.createElement("span",{key:t,className:"rounded-pill partial-loading-background me-1",dangerouslySetInnerHTML:{__html:"&nbsp"},style:{width:n}})})))};function oe(e){return a.createElement(ae,{audiences:e.audiences,activeAudiences:e.activeAudiences,disabled:e.isReadonly,appLink:e.appLink,disablePersist:e.disablePersist})}var ce=n(38502),se=n(10253),le=n(30064);const ue={curatedTopicTab:"CmVlO",tabTransition:"rX31t"};var de="shared.classificationDashboard";function me(e,t,n,a){var r,o,c,l,u,d,m,p,v,g,b,y,h,w,E,k,T,S=t.lg||t.xl||t.xxl||t.xs;return q.i.isTopLevelTopic(e.classification)?[{name:S?i.T.getPhrase(de,"newReleases"):"",appLink:e.isReadonly?null:null===(o=null===(r=e.appLinks)||void 0===r?void 0:r.classification)||void 0===o?void 0:o.call(r,e.classification),active:"new-releases"===n,svgName:f.vn.Sparkle,analyticsData:{id:"new-releases",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:i.T.getPhrase(de,"newReleases"),url:z.Q.C$.getHref(null===(l=null===(c=e.appLinks)||void 0===c?void 0:c.classification)||void 0===l?void 0:l.call(c,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?ue.tabTransition:"")},{name:S?i.T.getPhrase(de,"allTopics"):"",appLink:e.isReadonly?null:null===(d=null===(u=e.appLinks)||void 0===u?void 0:u.classificationDirectory)||void 0===d?void 0:d.call(u,e.classification),active:"all-topics"===n,svgName:f.vn.Grid,analyticsData:{id:"all-topics",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:i.T.getPhrase(de,"allTopics"),url:z.Q.C$.getHref(null===(p=null===(m=e.appLinks)||void 0===m?void 0:m.classificationDirectory)||void 0===p?void 0:p.call(m,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?ue.tabTransition:"")}]:[{name:S?i.T.getPhrase(de,"topic"):"",appLink:e.isReadonly?null:null===(g=null===(v=e.appLinks)||void 0===v?void 0:v.classification)||void 0===g?void 0:g.call(v,e.classification),active:"curated-topic"===n,svgName:f.vn.Rectangles,analyticsData:{id:"curated-topic",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:i.T.getPhrase(de,"topic"),url:z.Q.C$.getHref(null===(y=null===(b=e.appLinks)||void 0===b?void 0:b.classification)||void 0===y?void 0:y.call(b,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:(T=a?ue.tabTransition:"",t.xs?T+" w-100":S?" ".concat(ue.curatedTopicTab):T)},{name:S?i.T.getPhrase(de,"videoList"):"",appLink:e.isReadonly?null:null===(w=null===(h=e.appLinks)||void 0===h?void 0:h.classificationDirectory)||void 0===w?void 0:w.call(h,e.classification),active:"video-list"===n,svgName:f.vn.Video,analyticsData:{id:"video-list",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:i.T.getPhrase(de,"videoList"),url:z.Q.C$.getHref(null===(k=null===(E=e.appLinks)||void 0===E?void 0:E.classificationDirectory)||void 0===k?void 0:k.call(E,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?ue.tabTransition:"")}]}function pe(e){var t=(0,V.k)(),n=(0,le.d)(e.activeTab),i=n.tab,r=n.isHighlighting,o=(0,se.c)("topics-directory-tab").setProductTipRef;return a.createElement(ce.r,{borderRadius:"sm",containerRef:function(e){return o(e)},className:t.xs?"w-100":"",listClassName:"d-flex flex-nowrap",tabs:me(e,t,i,r)})}function fe(e){var t,n,i,r,o,c,s,l=(0,V.k)(),u=(r=e.audiences,o=e.activeAudiences,c=e.isEmpty,!!e.isComingSoon||!(!c||(null==o?void 0:o.length))||!H.T.shouldShowAudiences(r));function d(){return!(!e.classification||!e.dashboard)&&!x.S.isSystemGeneratedDashboard(e.dashboard.widgets)&&!!e.canViewTopicTabs&&(q.i.isTopLevelTopic(e.classification)?e.hasTopicDirectoryDashboard:!!x.S.hasCuratedMediaWidgets(e.dashboard.widgets))}return a.createElement("div",{className:(s="d-flex flex-column py-3 mb-3",e.isComingSoon||(s+=" border-bottom"),!d()&&!u||l.xs?s+" row-gap-3":s)},a.createElement("div",{className:function(){if(u)return l.xs?"d-flex flex-column justify-content-between row-gap-3":"d-flex align-items-center justify-content-between";var e="";return e+="d-flex align-items-center justify-content-between",l.xs&&(e+=" row-gap-3"),e}()},a.createElement(M.Oo,{breadcrumbs:null===(t=e.getBreadcrumbs)||void 0===t?void 0:t.call(e)}),d()&&u&&a.createElement(pe,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation,isReadonly:e.isReadonly})),a.createElement("div",{className:function(){var e="d-flex align-items-end justify-content-between";return l.xs&&(e+=" row-gap-3 flex-wrap"),e}()},!u&&a.createElement(oe,{audiences:e.audiences,activeAudiences:e.activeAudiences,appLink:null===(i=(n=e.appLinks).audience)||void 0===i?void 0:i.call(n),isReadonly:e.isReadonly,disablePersist:!e.isViewingCurrentPresentation}),d()&&!u&&a.createElement(pe,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation,isReadonly:e.isReadonly})))}function ve(e){return ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ve(e)}function ge(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return be(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?be(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function be(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ye="shared.classificationDashboard";function he(e){return e.widgetId===C.z.Blurb&&e.templateId===D.f.Heading}function we(e){var t,n=function(e,t){var n,i,o,c,s=a.useMemo((function(){return e?{isSystemGeneratedDashboard:x.S.isSystemGeneratedDashboard(e.widgets),systemGeneratedVideoWidget:e.widgets.find((function(e){return e.widgetId===C.z.ClassificationPinnedVideos}))}:{isSystemGeneratedDashboard:!1,systemGeneratedVideoWidget:null}}),[null==e?void 0:e.id]),l=s.isSystemGeneratedDashboard,u=s.systemGeneratedVideoWidget,d=r.a.useBasicFetch(!!u&&L._.dashboardWidgetContent(null==u?void 0:u.id,x.S.getWidgetParams(u.widgetId,u.templateId,x.S.getDashboardTargetType(e),null==t?void 0:t.map((function(e){return e.masterId}))),null==u?void 0:u.templateId));return l?{widgets:null!==(i=null===(n=null==e?void 0:e.widgets)||void 0===n?void 0:n.filter((function(e){return e.widgetId!==C.z.ClassificationPinnedVideos})))&&void 0!==i?i:[],videoList:null!==(c=null===(o=d.data)||void 0===o?void 0:o.content)&&void 0!==c?c:[],videoListWidgetId:null==u?void 0:u.id}:{widgets:I.m.sortBy(null==e?void 0:e.widgets,"index")}}(e.dashboard,e.activeAudiences),o=n.widgets,c=n.videoList,l=n.videoListWidgetId,u=(0,F.a)(j.r.LGDown),d=a.useRef(new Set),m=a.useMemo((function(){return o.reduce((function(e,t){return e[t.id]=!1,e}),{})}),[null==o?void 0:o.length]),f=ge(a.useState(m),2),v=f[0],g=f[1],y=ge(a.useState(window.location.hash.slice(1)||""),2),h=y[0],w=y[1],k=ge(a.useState(""),2),T=k[0],D=k[1],U=Array.from(d.current);function _(t,n,a){var i,r=x.S.getWidgetParams(n,a,x.S.getDashboardTargetType(e.dashboard),null===(i=e.activeAudiences)||void 0===i?void 0:i.map((function(e){return e.masterId})));return e.getWidgetContentRequest(t,r,a)}(0,B.P)(U,e.tableOfContentsId),(0,R.D)({setActiveId:D,headingElements:U,controlledId:h,setControlledId:w});var G=!e.isComingSoon&&!e.isTeacherOnly&&(!e.dashboard||e.dashboard.status===p.GL.Archived&&!e.isReadonly||e.dashboard.status===p.GL.Draft&&!e.isPreviewing||!(null==o?void 0:o.length)||(!c||!c.length)&&Object.values(v).every((function(e){return!!e})));a.useEffect((function(){G&&g(m)}),[null==o?void 0:o.length]);var M=a.useCallback((function(e,t){if(v[e]!==t){for(var n,a=(Object.assign(Object.assign({},v),(u={},m=t,(d=function(e){var t=function(e,t){if("object"!=ve(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=ve(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ve(t)?t:t+""}(d=e))in u?Object.defineProperty(u,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):u[d]=m,u))),i=0;i<o.length;){var r=o[i];if(he(r)){for(var c=!0,s=i+1;c&&s<o.length;){var l=o[s];if(he(l))break;a[l.id]||(n=l).widgetId===C.z.CuratedClassifications||n.widgetId===C.z.Classifications||(c=!1),s++}i=s,a[r.id]=c}else i++}g(a)}var u,d,m}),[v,o]);function V(e){return he(e)&&v[e.id]}var H=o.filter((function(e){var t;return!V(e)&&!!(null===(t=e.metadata)||void 0===t?void 0:t.showInTableOfContents)})),q=H.length>=2&&!u;return a.createElement("div",{className:"bg-white px-4 ".concat(e.moviesAndTv?"":"topic-dashboard")},a.createElement(N.p,{heading:e.classification.name,banner:e.classification.banner,imageCdnUrl:e.imageCdnUrl,actions:null===(t=e.getBannerActions)||void 0===t?void 0:t.call(e),actionsDropdownClassName:"btn btn-outline-dark",specialEvent:e.specialEvent,calendarTheme:{background:"bg-light-blue",border:"border-light-blue"},showComingSoon:e.isComingSoon}),a.createElement(fe,{dashboard:e.dashboard,classification:e.classification,presentation:e.presentation,appLinks:e.appLinks,activeTab:e.tab,audiences:e.audiences,activeAudiences:e.activeAudiences,getBreadcrumbs:e.getBreadcrumbs,hasTopicDirectoryDashboard:e.hasTopicDirectoryDashboard,canViewTopicTabs:e.canViewTopicTabs,isComingSoon:e.isComingSoon,isEmpty:G,isViewingCurrentPresentation:e.isViewCurrentPresentation,isReadonly:e.isReadonly}),e.isComingSoon&&a.createElement(W,{imageUrl:e.comingSoonImageUrl,data:e.classification,canFollowSubjects:e.canFollowSubjects,showFollowButtonSpinner:e.showFollowButtonSpinner,onToggleFollow:function(){return e.onToggleFollow(e.classification,s.LZ.ClassificationComingSoon)}}),!e.isComingSoon&&a.createElement("div",{className:"".concat(q?"row no-wrap":"")},a.createElement("div",{className:q?"col-9":""},o.map((function(t,n){return V(t)?a.createElement(a.Fragment,{key:t.id}):a.createElement(P.L,{headingElementRef:d,key:t.id,id:t.id,name:t.name,description:t.description,templateId:t.templateId,widgetTypeId:t.widgetId,audiences:e.audiences,getContentRequest:_,setIsEmpty:M,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.appLinks,yearGroups:e.yearGroups,presentation:e.presentation,analyticsData:e.analyticsData,isScrollToTargetWidget:e.scrollToWidgetId===t.id,imageCdnUrl:e.imageCdnUrl,onSubmitFeedback:e.onSubmitFeedback,metadata:t.metadata,isBot:e.isBot,hasTableOfContents:q,lazyLoad:e.lazyLoad,dashboardTarget:x.S.getDashboardTargetType(e.dashboard),widgetIndex:n,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,contentType:e.contentType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,onToggleFollowClassification:e.onToggleFollow,isPlugin:e.isPlugin})}))),q&&a.createElement("aside",{className:"col-3"},a.createElement(E,{widgets:H,title:e.classification.name,activeId:T,clickable:!e.isReadonly,analyticsData:e.analyticsData,setControlledId:w})),!!(null==c?void 0:c.length)&&a.createElement(a.Fragment,null,a.createElement(A.B,{name:i.T.getPhrase(ye,"videos"),description:""}),a.createElement(O.E4,{videos:c,yearGroups:e.yearGroups,getVideoAppLink:function(t,n){return e.appLinks.videoType(t,Object.assign(Object.assign({},n),{contextId:l}))},getSubTextAppLink:e.appLinks.subText,hasPermissions:e.hasPermissions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,getPreviewQuestionsAppLink:e.appLinks.previewQuestions,isPlugin:e.isPlugin,getClassroomGuideAppLink:e.appLinks.classroomGuide,getInteractiveGuidanceAppLink:e.appLinks.interactiveGuidance,getResourceGuidanceAppLink:e.appLinks.resourceGuidance}))),G&&a.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.appLinks.widgetWizard}),e.isTeacherOnly&&a.createElement(S,{imageUrl:e.emptyImageUrl,ctaAppLink:function(){return e.appLinks.allTopics(e.classification.presentationId)}}))}function Ee(){return a.createElement("div",{className:"bg-white px-4"},a.createElement(N.v,null),a.createElement("div",{className:"d-flex flex-column row-gap-3 py-3 mb-3 border-bottom"},a.createElement(M.b2,null),a.createElement(re,null)))}we.defaultProps={appLinks:{}};var ke=n(14875),Te=n(51365),Se=n(2284),Ie=n(17101),Ce=n(4594),Le=n(16714),xe=n(12754),Ne=n(89454),Oe=n(21750),Ae=n(39151),Pe=n(1666),je=n(7198),De=n(25665),Fe=n(31949),Re=n(69883),Be=n(56520),Ue=n(91286),_e=n(22902),Ge=n(79612),We=n(52167),Me=n(76753),Ve=n(99742),He=n(14070),qe=n(97291),Ze=n(51855),ze=n(10671),Qe=n(7179),Ye=n(27638),Je=n(86698),$e=n(33192),Xe=n(64364);function Ke(e){return Ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ke(e)}function et(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,tt(a.key),a)}}function tt(e){var t=function(e,t){if("object"!=Ke(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=Ke(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ke(t)?t:t+""}function nt(e,t,n){return t=it(t),function(e,t){if(t&&("object"==Ke(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,at()?Reflect.construct(t,n||[],it(e).constructor):t.apply(e,n))}function at(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(at=function(){return!!e})()}function it(e){return it=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},it(e)}function rt(e,t){return rt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},rt(e,t)}var ot="subjects.topicNotFoundError",ct=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),nt(this,t,["Topic doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&rt(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"TopicNotFoundError"}},{key:"heading",get:function(){return i.T.getPhrase(ot,"heading")}},{key:"description",get:function(){return i.T.getPhrase(ot,"description")}},{key:"cta",get:function(){return{text:i.T.getPhrase(ot,"cta"),appLink:{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION_ALL}}}}])&&et(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}(Xe.H),st=n(37802),lt=n(23737),ut=n(183),dt=n(22490),mt=n(82431),pt=n(4399),ft=i.T.encloseNamespace("subjects.classification");const vt={followButton:"HlRXj"};function gt(e){return gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gt(e)}function bt(){bt=function(){return t};var e,t={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",c=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,a){var r=t&&t.prototype instanceof b?t:b,o=Object.create(r.prototype),c=new O(a||[]);return i(o,"_invoke",{value:C(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var m="suspendedStart",p="suspendedYield",f="executing",v="completed",g={};function b(){}function y(){}function h(){}var w={};l(w,o,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(A([])));k&&k!==n&&a.call(k,o)&&(w=k);var T=h.prototype=b.prototype=Object.create(w);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(i,r,o,c){var s=d(e[i],e,r);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==gt(u)&&a.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var r;i(this,"_invoke",{value:function(e,a){function i(){return new t((function(t,i){n(e,a,t,i)}))}return r=r?r.then(i,i):i()}})}function C(t,n,a){var i=m;return function(r,o){if(i===f)throw Error("Generator is already running");if(i===v){if("throw"===r)throw o;return{value:e,done:!0}}for(a.method=r,a.arg=o;;){var c=a.delegate;if(c){var s=L(c,a);if(s){if(s===g)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===m)throw i=v,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=f;var l=d(t,n,a);if("normal"===l.type){if(i=a.done?v:p,l.arg===g)continue;return{value:l.arg,done:a.done}}"throw"===l.type&&(i=v,a.method="throw",a.arg=l.arg)}}}function L(t,n){var a=n.method,i=t.iterator[a];if(i===e)return n.delegate=null,"throw"===a&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),g;var r=d(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,g;var o=r.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,r=function n(){for(;++i<t.length;)if(a.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return r.next=r}}throw new TypeError(gt(t)+" is not iterable")}return y.prototype=h,i(T,"constructor",{value:h,configurable:!0}),i(h,"constructor",{value:y,configurable:!0}),y.displayName=l(h,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,l(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},t.awrap=function(e){return{__await:e}},S(I.prototype),l(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,a,i,r){void 0===r&&(r=Promise);var o=new I(u(e,n,a,i),r);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(T),l(T,s,"Generator"),l(T,o,(function(){return this})),l(T,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var a in t)n.push(a);return n.reverse(),function e(){for(;n.length;){var a=n.pop();if(a in t)return e.value=a,e.done=!1,e}return e.done=!0,e}},t.values=A,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(N),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(a,i){return c.type="throw",c.arg=t,n.next=a,i&&(n.method="next",n.arg=e),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],c=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),l=a.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=t&&t<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=e,o.arg=t,r?(this.method="next",this.next=r.finallyLoc,g):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var i=a.arg;N(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,a){return this.delegate={iterator:A(t),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=e),g}},t}function yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ht=function(e,t,n,a){return new(n||(n=Promise))((function(i,r){function o(e){try{s(a.next(e))}catch(e){r(e)}}function c(e){try{s(a.throw(e))}catch(e){r(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((a=a.apply(e,t||[])).next())}))};Et.defaultProps={queryParams:{}};var wt=i.T.encloseNamespace("subjects.classification");function Et(e){var t,n,i,u,d,m,v,g,b,y,h,w,E,k,T=(E=a.useState(!1),k=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,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(E,k)||function(e,t){if(e){if("string"==typeof e)return yt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yt(e,t):void 0}}(E,k)||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.")}()),S=T[0],I=T[1],C=(0,Re.Z)(),x=r.a.useGetFetchAsync(),N=(0,_e.T)(),O=N.hasPermissions,A=N.hasLocalPermissions,P=(0,Ze.G)().isPlugin,D=r.a.useBasicFetch(Ae.L.config()),R=r.a.useBasicFetch(Fe.N.currentUser()),B=(0,Be.R0)(),U=B.openInCurationStudioLabel,_=B.isUserCurator,G=B.getOpenInCurationStudioLink,W=r.a.useBasicFetch(O(Le.C.CanSubmitFeedback)&&R.data&&Pe.h.customer(R.data.customerId)),M=r.a.useBasicFetch(Oe.x.classification(e.id,null===(t=R.data)||void 0===t?void 0:t.id)),V=r.a.useBasicFetch(M.data&&Oe.x.presentationById(M.data.presentationId)),Z=r.a.useBasicFetch(M.data&&Ne.O.audiencesByPresentationId(M.data.presentationId)),z=r.a.useBasicFetch(M.data&&l.N.nextTopicSpecialEvent(e.id,M.data.presentationId)),Q=(0,Je.y)(),J=Q.activePresentation,$=Q.availablePresentations,X=Q.canAccessPresentation,K=r.a.useBasicFetch((null===(n=R.data)||void 0===n?void 0:n.isAuthenticated)&&Pe.h.yearGroups(R.data.customerId)),ee=r.a.useBasicFetch(Oe.x.path(e.id)),te=function(e,t,n){var a=(0,st.r)(null).hasTopicDirectories,i=(0,lt.y)({classificationId:e,queryParams:t,targetType:p.ku.Classification}),r=i.dashboard,o=i.isPreviewing,c=i.isTeacherOnly,s=(0,lt.y)({classificationId:e,queryParams:t,targetType:p.ku.ClassificationDirectory}).dashboard;return{dashboard:n===p.ku.Classification?r:s,canViewTopicTabs:a,hasTopicDirectoryDashboard:!!s.data,isTeacherOnly:c,isPreviewing:o}}(e.id,e.queryParams,e.targetType),ne=te.dashboard,ae=te.hasTopicDirectoryDashboard,ie=te.canViewTopicTabs,re=te.isPreviewing,oe=te.isTeacherOnly,ce=r.a.useBasicFetch(Oe.x.regionAlternatives(e.id));(0,Ge.M)(Me.CG.getClassificationMetadata({content:M.data,phraseContext:{phraseHandler:wt,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:$e.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:$e.f.allowIndexing(),hrefLang:$e.f.getContentHrefLang(ce.data,(function(e,t){return{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION,args:[e,o.m.slugify(t)]}}))})),(0,Ue.v)(M,{notFound:ct}),(0,Qe.P)({id:e.id,app:"topics"});var se=(null==J?void 0:J.id)===(null===(i=V.data)||void 0===i?void 0:i.id),le=(0,F.a)(j.r.MDDown),ue=(0,F.a)(j.r.SMDown),de=(0,Ye.u)(s.LZ.ExpandableVideoThumbnail),me=de.setFavourite,pe=de.canFavourite,fe=(0,ze._)({location:ze.i.VideoItem}),ve=O(Le.C.FollowSubjects),ge=(null===(u=M.data)||void 0===u?void 0:u.status)===Se.W.ComingSoon&&!re,be=H.T.getActiveAudiencesFromParams(Z.data,e.queryParams),ye=null!==(d=null==be?void 0:be.map((function(e){return e.masterId})))&&void 0!==d?d:[];function he(e,t){var n,a,i;if(ve&&M){var r=e.id.toString()===(null===(a=null===(n=M.data)||void 0===n?void 0:n.id)||void 0===a?void 0:a.toString());r&&I(!0);var o=q.i.isFollowing(e),l=o?De.k.unfollow:De.k.follow;x(l([e.id],null===(i=R.data)||void 0===i?void 0:i.id)).then((function(){c.k.logUserAction(tt,{location:t,actionType:s.Vw.Follow,workflowPhase:s.eu.Complete,descriptor:o?s.DL.Off:s.DL.On,entity:s.py.Classification}),r||C.success(wt(o?"unfollowed":"followed",{name:e.name}))})).finally((function(){r&&I(!1)}))}}var Xe,Ke,et=(Xe=M.data,Ke=e.queryParams,{audience:function(){return{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION,args:[Xe.id,o.m.slugify(Xe.name)],params:Ke}},classification:function(e){var t=e||Xe;return{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION,args:[t.id,o.m.slugify(t.name)],params:Y.t.omit(Ke,["preview","dashboardId","skipPrompt"])}},classificationDirectory:function(e){var t=e||Xe;return{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION_DIRECTORY,args:[t.id,o.m.slugify(t.name)],params:Y.t.omit(Ke,["preview","dashboardId","skipPrompt"])}},videoType:function(e,t){return dt.W.getAppLink(e,Object.assign(Object.assign({},t),{context:ut.Q.Widget,moviesAndTv:Ke.mtv}))},allTopics:function(e){return{application:qe.O.SUBJECT,action:He.e.Subjects.CLASSIFICATION_ALL,params:{presentationId:e}}},series:function(e){return mt.j.getSeriesAppLink(e,{classificationId:Xe.id,mtv:!!Ke.mtv||void 0})},subText:function(e){return mt.j.getSeriesAppLink(e.series,{classificationId:Xe.id,mtv:!!Ke.mtv||void 0})},playlist:function(e){return{application:qe.O.PLAYLISTS,action:He.e.Playlists.PLAYLIST,args:[e.id,o.m.slugify(e.name)],params:{classificationId:Xe.id,mtv:!!Ke.mtv||void 0}}},resource:function(e,t,n){return n?{application:qe.O.VIDEOS,action:He.e.Videos.PREVIEW_PDF,args:[e.id],params:{videoId:t}}:{application:qe.O.SIGN_UP,action:He.e.SignUp.SIGN_UP}},classroomGuide:dt.W.getClassroomGuideAppLink,interactiveGuidance:dt.W.getInteractiveGuidanceAppLink,resourceGuidance:dt.W.getResourceGuidanceAppLink}),tt={presentationId:null===(m=V.data)||void 0===m?void 0:m.id,presentationName:null===(v=V.data)||void 0===v?void 0:v.name,currentClassificationId:null===(g=M.data)||void 0===g?void 0:g.id,currentClassificationName:null===(b=M.data)||void 0===b?void 0:b.name,followingCurrentClassification:!!(null===(w=null===(h=null===(y=M.data)||void 0===y?void 0:y.followers)||void 0===h?void 0:h.data)||void 0===w?void 0:w.length),activeAudienceNames:(null==be?void 0:be.length)?be.map((function(e){return e.name})):null,activeAudienceIds:ye.length?ye:null};return D.data&&ne.hasCompleted&&M.data&&V.data&&ee.data&&$&&Z.data&&z.hasCompleted?a.createElement(Te.M.Provider,{value:fe},a.createElement("div",{className:"position-relative"},!(!re||!ne.data)&&a.createElement(ke.a,{status:ne.data.status,type:"topic"}),a.createElement(we,{dashboard:ne.data,classification:M.data,getWidgetContentRequest:L._.dashboardWidgetContent,getBreadcrumbs:function(){var t;if(X(null===(t=V.data)||void 0===t?void 0:t.id))return function(){return function(e){var t=e.classification,n=e.path,a=e.presentation,i=e.availablePresentations,r=e.appLinks;if(e.queryParams.mtv){var o=[{name:ft("moviesAndTv"),appLink:{application:qe.O.MOVIES_AND_TV,action:He.e.MoviesAndTv.HOME}}];return n.slice(1,n.length).forEach((function(e){o.push({name:e.name,appLink:r.classification(e),active:e.name===t.name})})),o}var c=[{name:q.i.getExploreAllTopicsTitle(null==a?void 0:a.name,null==i?void 0:i.length),appLink:(0,pt.Dp)(null==a?void 0:a.id)}];return n.forEach((function(e){c.push({name:e.name,appLink:r.classification(e),active:e.name===t.name})})),c}({appLinks:et,availablePresentations:$,classification:M.data,path:ee.data,presentation:V.data,queryParams:e.queryParams})}}(),hasPermissions:O,hasLocalPermissions:A,presentation:V.data,onToggleFollow:he,getBannerActions:function(){var e,t,n,a,i,r=!!(null===(n=null===(t=null===(e=M.data)||void 0===e?void 0:e.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);if(!ve||ge)return[];var o=[{label:ue?"":wt(r?"unfollow":"follow"),onClick:function(){return he(M.data,s.LZ.Banner)},svgName:r?f.vn.Check:f.vn.Bell,className:"btn follow-btn me-2 ".concat(r?"btn-outline-dark":"btn-dark"," ").concat(vt.followButton),button:!0,tooltip:r||le?void 0:wt("followBtnTooltip"),showSpinner:S}];return _&&o.push({label:U,href:G(Ce.E.Subject,null===(a=M.data)||void 0===a?void 0:a.id,null===(i=V.data)||void 0===i?void 0:i.id),openInNewTab:!0}),o},audiences:e.queryParams.mtv?null:Z.data,activeAudiences:be,analyticsData:tt,imageCdnUrl:D.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:Ve.W.Fallbacks.RESOURCE_THUMBNAIL,emptyImageUrl:oe?Ve.W.EmptyStates.Topics.TEACHER_ONLY:Ve.W.EmptyStates.Topics.TOPIC,isComingSoon:ge,showFollowButtonSpinner:S,comingSoonImageUrl:Ve.W.EmptyStates.Topics.COMING_SOON,appLinks:et,isPreviewing:re,setFavourite:me,canFavourite:pe,isViewCurrentPresentation:se,canFollowSubjects:ve,onSubmitFeedback:O(Le.C.CanSubmitFeedback)&&function(e){return ht(this,void 0,void 0,bt().mark((function t(){var n;return bt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,x(je.f.submitFeedback({type:Ie.n.Footer,user:We.m.getUserInfo(R.data,W.data),tags:We.m.getTags(R.data,xe.x.Primary,O(Le.C.StudentExperience),["topics","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Topic Footer",presentationName:V.data.description,presentationId:V.data.id,dashboardName:ne.data.name,dashboardId:ne.data.id,classificationName:M.data.name,classificationId:M.data.id}));case 2:return n=t.sent,c.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:V.data.id,classificationId:M.data.id,dashboardId:ne.data.id},{actionType:s.Vw.Submit,location:s.LZ.ClassificationFooter,entity:s.py.Feedback,workflowPhase:s.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},tableOfContentsId:e.queryParams.tocId,yearGroups:K.data,lazyLoad:!$e.f.isBot(),moviesAndTv:e.queryParams.mtv,isTeacherOnly:oe,specialEvent:z.data,isBot:$e.f.isBot(),canViewTopicTabs:ie,hasTopicDirectoryDashboard:ae,tab:q.i.getActiveTopicTab(M.data,e.targetType),isPlugin:P}))):a.createElement(Ee,null)}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
3
+ //# sourceMappingURL=986-c797fed10a-lite.chunk.js.map