@clickview/lite 0.74.0-rc.2 → 0.74.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/scripts/3677-43784effdf-lite.chunk.js +2 -0
- package/dist/scripts/3677-43784effdf-lite.chunk.js.map +1 -0
- package/dist/scripts/3978-84811f1db1-lite.chunk.js +2 -0
- package/dist/scripts/3978-84811f1db1-lite.chunk.js.map +1 -0
- package/dist/scripts/4400-e6d6e73b2c-lite.chunk.js +2 -0
- package/dist/scripts/4400-e6d6e73b2c-lite.chunk.js.map +1 -0
- package/dist/scripts/5135-c6eae4df36-lite.chunk.js +2 -0
- package/dist/scripts/5135-c6eae4df36-lite.chunk.js.map +1 -0
- package/dist/scripts/618-d8d8f7d8c1-lite.chunk.js +2 -0
- package/dist/scripts/618-d8d8f7d8c1-lite.chunk.js.map +1 -0
- package/dist/scripts/6379-4b78ae2469-lite.chunk.js +2 -0
- package/dist/scripts/6379-4b78ae2469-lite.chunk.js.map +1 -0
- package/dist/scripts/647-ad2e2f0add-lite.chunk.js +2 -0
- package/dist/scripts/647-ad2e2f0add-lite.chunk.js.map +1 -0
- package/dist/scripts/6909-7a8ac9f30a-lite.chunk.js +2 -0
- package/dist/scripts/6909-7a8ac9f30a-lite.chunk.js.map +1 -0
- package/dist/scripts/7234-5ccd8259d1-lite.chunk.js +2 -0
- package/dist/scripts/7234-5ccd8259d1-lite.chunk.js.map +1 -0
- package/dist/scripts/7577-12a01937f0-lite.chunk.js +2 -0
- package/dist/scripts/7577-12a01937f0-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-c9755a67d4-lite.chunk.js +2 -0
- package/dist/scripts/7742-c9755a67d4-lite.chunk.js.map +1 -0
- package/dist/scripts/8451-2ef1dfce61-lite.chunk.js +2 -0
- package/dist/scripts/8451-2ef1dfce61-lite.chunk.js.map +1 -0
- package/dist/scripts/9241-238326bcb2-lite.chunk.js +2 -0
- package/dist/scripts/9241-238326bcb2-lite.chunk.js.map +1 -0
- package/dist/scripts/9345-a373f08fe5-lite.chunk.js +3 -0
- package/dist/scripts/9345-a373f08fe5-lite.chunk.js.map +1 -0
- package/dist/scripts/9630-9ca1798eee-lite.chunk.js +2 -0
- package/dist/scripts/9630-9ca1798eee-lite.chunk.js.map +1 -0
- package/dist/scripts/{9767-a23d603cc5-lite.chunk.js → 9767-281d5e0883-lite.chunk.js} +2 -2
- package/dist/scripts/9767-281d5e0883-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-6a0c1aecd5.min.js → bundle-0260bfcbaa.min.js} +3 -3
- package/dist/scripts/{bundle-6a0c1aecd5.min.js.map → bundle-0260bfcbaa.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js +0 -2
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js.map +0 -1
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js +0 -2
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js.map +0 -1
- package/dist/scripts/4400-7381394a2e-lite.chunk.js +0 -2
- package/dist/scripts/4400-7381394a2e-lite.chunk.js.map +0 -1
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js +0 -2
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js.map +0 -1
- package/dist/scripts/618-33ead82bb3-lite.chunk.js +0 -2
- package/dist/scripts/618-33ead82bb3-lite.chunk.js.map +0 -1
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js +0 -2
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js.map +0 -1
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js +0 -2
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js +0 -2
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js.map +0 -1
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js +0 -2
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js.map +0 -1
- package/dist/scripts/7577-a930db95e5-lite.chunk.js +0 -2
- package/dist/scripts/7577-a930db95e5-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-8a303defe5-lite.chunk.js +0 -2
- package/dist/scripts/7742-8a303defe5-lite.chunk.js.map +0 -1
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js +0 -2
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js.map +0 -1
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js +0 -2
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js.map +0 -1
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js +0 -3
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js.map +0 -1
- package/dist/scripts/9630-6bcd453382-lite.chunk.js +0 -2
- package/dist/scripts/9630-6bcd453382-lite.chunk.js.map +0 -1
- package/dist/scripts/9767-a23d603cc5-lite.chunk.js.map +0 -1
- /package/dist/scripts/{9345-df0cbb196f-lite.chunk.js.LICENSE.txt → 9345-a373f08fe5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-6a0c1aecd5.min.js.LICENSE.txt → bundle-0260bfcbaa.min.js.LICENSE.txt} +0 -0
package/dist/bundles.json
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3677],{39902:(e,t,n)=>{n.d(t,{FN:()=>f,SW:()=>v,fh:()=>m});var r=n(32735),i=n(20354),a=n(75896);function o(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n},p=50;function m(e,t){var n=a.m.chunk(e,p).map((function(e){return t(a.m.uniq(e))})),r=i.a.useBasicFetchAll(n),o=a.m.flatten(r.data),c=r.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:o,items:c,isFetching:r.isFetching}}function f(e,t,n){var i=v({getRequest:t,_getKey:n}),a=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect((function(){(null==e?void 0:e.length)&&a(e)}),[null==e?void 0:e.length]),o}function v(e){var t,n,s,d,m,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===l(e)?e.id:e},v=r.useRef(new Set),h=(d=r.useState([]),m=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],s=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(c.push(r.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}}(d,m)||c(d,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.")}()),y=h[0],g=h[1],b=i.a.useBasicFetchAll(y),I=a.m.flatten(b.data),A=b.data.length?I.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},f(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(s=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===s?void 0:s.hasCompleted),itemsArr:I,items:A,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=f(e);v.current.has(t)||(n.push(e),v.current.add(t))})),n.length&&g((function(t){return[].concat(o(t),o(a.m.chunk(n,p).map(e.getRequest)))}))}}}}},63719:(e,t,n)=>{n.d(t,{h:()=>c});var r=n(32735),i=n(77316);function a(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c(e){var t,n,c=(t=r.useMemo((function(){return i.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],s=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(c.push(r.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)||a(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.")}()),s=c[0],l=(0,c[1])(s);return l&&e?[].concat(function(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)||a(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.")}()}(l),[Object.assign(Object.assign({},e),{active:!0})]):l}},58321:(e,t,n)=>{n.d(t,{U:()=>f});var r=n(20354),i=n(16714),a=n(39151),o=n(1666),c=n(31949),s=n(22902),l=n(37802),u=n(22490),d=n(82431),p=n(46390),m=n(27638);function f(e){var t,n,f,v=e||{},h=v.locationContext,y=v.mtv,g=v.flightNamespace,b=v.sharedPlaylist,I=(0,p.G)(),A=I.isPlugin,P=I.params,E=(0,m.u)(h,g),V=E.setFavourite,C=E.canFavourite,S=(0,l.r)(null),O=S.hasTopicDirectories,w=S.isLoadingSettings,T=(0,s.T)(),x=T.hasPermissions,R=T.isLoaded,L=x(i.C.StudentExperience),M=r.a.useBasicFetch(a.L.config()),j=r.a.useBasicFetch(c.N.currentUser()),N=r.a.useBasicFetch((null===(t=j.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(j.data.customerId));return{hasCommonVideoPropsCompleted:!w&&R&&M.hasCompleted&&j.hasCompleted&&(!(null===(n=j.data)||void 0===n?void 0:n.isAuthenticated)||N.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?b&&!(null===(t=j.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:y}):null},isPlugin:A,isPluginPopup:!!(null==P?void 0:P.popup),canFavourite:C,setFavourite:V,imageCdnUrl:null===(f=M.data)||void 0===f?void 0:f.imageCdnUrl,yearGroups:N.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:O,companyLogoFallbackUrl:null,hasStudentExperience:L}}}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var r=n(20354),i=n(89454),a=n(86698),o=function(){var e=(0,a.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return r.a.useBasicFetch(!!o&&i.O.presentationAudiences(o.id))}},35014:(e,t,n)=>{n.d(t,{I:()=>p});var r=n(20354),i=n(55171),a=n(16714),o=n(12754),c=n(31949),s=n(22902),l=n(15311),u=n(37802),d=n(11387);function p(e){var t=(0,s.T)(),n=t.hasPermissions,p=t.hasLocalPermissions,m=(0,l.r)().hasProduct,f=r.a.useBasicFetch(c.N.currentUser()),v=(0,u.r)(null).hasPlayPageTranscript,h=m(o.x.Primary);return{canViewGlance:n(a.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:h&&n(a.C.ViewVideoInteractives),canViewClips:h&&n(a.C.ViewVideoClips),canViewCurriculumLinks:n(a.C.ViewCurriculums),canUseActions:p(a.E.UseVideoActions),canViewPublicLayout:!p(a.E.WatchVideos)&&d.C.hasRegionPrefix(),canViewResourceItems:p(a.E.ViewVideoResourceItems),canNavigate:h,canViewTranscript:function(e){var t;return(null===(t=f.data)||void 0===t?void 0:t.isAuthenticated)?v:!!e&&i.e.PublicTranscriptVideoIds.includes(e)}(e)}}},97816:(e,t,n)=>{n.d(t,{V:()=>c,l:()=>s});var r=n(1575),i=n(39902),a=n(31908);function o(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):[]:[]}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e).map((function(e){return e.id}));(0,i.FN)(n,(function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,i.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(o(e).map((function(e){return e.id})))}}}},80053:(e,t,n)=>{n.d(t,{N:()=>J});var r=n(32735),i=n(2948),a=n(28400),o=n(49935),c=n(93850),s=n(61499),l=n(38165),u=n(89456),d=n(71063),p=n(80128),m=n(35429),f=n(4594),v=n(16714),h=n(12754),y=n(22902),g=n(65332),b=n(9907),I=n(59598),A=n(31908),P=n(26492),E=n(22103),V=n(84459),C=n(87851),S=n(11256),O=n(47938),w=n(4171),T=n(78166),x=n(99742),R=n(14070),L=n(97291),M=n(86702),j=n(22490),N=n(29978),k=n(15731),U=n(75861),F=n(28389),G=n(31887),q=n(83345),_=n(75100),W=n(51365),D=n(10671),B=n(10741),H="shared.playClip";function K(e){var t=(0,y.T)().hasPermissions,n=(0,D._)({location:D.i.VideoItem});return r.createElement("section",{className:"play-page-section",id:I.K.ClippedFrom,ref:function(t){var n;t&&(null===(n=e.headingRef)||void 0===n?void 0:n.current)&&e.headingRef.current.set(I.K.ClippedFrom,t)}},r.createElement("h2",{className:"h4 mb-0"},r.createElement(q.x,{namespace:H,phrase:"clippedFrom"})),r.createElement(W.M.Provider,{value:n},r.createElement(_.E4,{videos:[e.originalVideo],getVideoAppLink:function(t,n){var r;return j.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:null===(r=e.currentUser)||void 0===r?void 0:r.isAuthenticated}))},hasPermissions:t,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return B.j.getPreviewQuestionsAppLink(e)},commonVideoProps:e.commonVideoProps})))}const Q={main:"ULvZW",expandedToc:"W3k9M",theatreMode:"KOUGv",theatreModeContent:"fWNAc",theatreModePlayPageContainer:"RJ5nP",theatreModeLeftContent:"dllgG"};function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var $=function(e,t,n){return function(r){return n?{application:L.O.VIDEOS,action:R.e.Videos.PREVIEW_PDF,args:[r.id],params:{videoId:e,shareId:t}}:{application:L.O.SIGN_UP,action:R.e.SignUp.SIGN_UP}}};function J(e){var t,n,q,_,W,D,B,H,J,Z,z=(0,m.g)(),X=(0,y.T)().hasPermissions,ee=A.M.getCanBeConsumed(e.clip).canConsume,te=e.hasTheatreMode&&"theatre"===z.mode,ne=(0,F.V)(e.hasTheatreMode,te),re=(0,k.Q)(e.tableOfContentsId,e.hasTheatreMode,te),ie=re.tableOfContentsActiveId,ae=re.setTableOfContentsActiveId,oe=re.controlledId,ce=re.setControlledId,se=re.tableOfContentsExpanded,le=re.onToggleTableOfContents,ue=(0,s.Wp)(e.clip)&&e.featureAccess.canViewGlance,de=(0,U.i)(ue),pe=de.headingRef,me=de.headingElements,fe=me.map((function(t){var n;return{id:t.id,name:G.d.getSectionHeading(t.id,{clips:e.clips,interactives:e.interactives,resources:null===(n=e.clip.resources)||void 0===n?void 0:n.data,isPlayClipPage:!0})}}));(0,g.D)({setActiveId:ae,headingElements:me,controlledId:oe,setControlledId:ce}),(0,b.P)(me,oe);var ve=A.M.isVideoTypeArchived(e.clip),he=X(v.C.StudentExperience),ye=r.useRef(!1);function ge(){var e,t,n,r;ye.current=!(null===(t=null===(e=null==z?void 0:z.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.isPaused()),null===(r=null===(n=null==z?void 0:z.playerRef)||void 0===n?void 0:n.current)||void 0===r||r.pause()}function be(){var e,t;ye.current&&(null===(t=null===(e=null==z?void 0:z.playerRef)||void 0===e?void 0:e.current)||void 0===t||t.play())}function Ie(){var t,n;return!(!e.originalVideo||!(null===(t=e.clip._canBeConsumed)||void 0===t?void 0:t.value)||!(null===(n=e.currentUser)||void 0===n?void 0:n.isAuthenticated)||!e.hasProduct(h.x.Primary)||he)}var Ae,Pe,Ee="picture-in-picture"===z.mode||e.featureAccess.canViewPublicLayout,Ve=null!==(n=null===(t=e.clips)||void 0===t?void 0:t.filter((function(t){return t.id.toString()!==e.clip.id.toString()})))&&void 0!==n?n:[],Ce={hasTheatreMode:e.hasTheatreMode,shouldShowSideTableOfContents:e.shouldShowSideTableOfContents,tableOfContentsExpanded:se,theatreMode:te},Se=(0,N.l)(Ce),Oe=(0,N.D)(Ce),we=(Ae=(0,i.D)(M.y.PLAY_PAGE_CONTAINER_CLASS_NAME),Pe=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,i,a,o,c=[],s=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(c.push(r.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}}(Ae,Pe)||function(e,t){if(e){if("string"==typeof e)return Y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}(Ae,Pe)||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];return r.useEffect((function(){we(te?Q.theatreModePlayPageContainer:"")}),[te]),r.useEffect((function(){return function(){return we("")}}),[]),r.createElement("div",{className:"px-4 play-page-sections-container ".concat(e.shouldShowSideTableOfContents?"row g-0":"")},r.createElement("main",{className:"".concat(Q.main," ").concat(Se)},!!(null===(q=e.breadcrumbs)||void 0===q?void 0:q.length)&&r.createElement("div",{className:"mb-2"},r.createElement(o.Oo,{breadcrumbs:e.breadcrumbs})),r.createElement(O.W,{restrictions:e.clip._restrictions,yearGroups:e.commonVideoProps.yearGroups,objectId:e.clip.id,objectTypeId:f.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),ve&&r.createElement(P.T,{typeId:e.clip.typeId,hasStudentExperience:he}),r.createElement("section",{id:I.K.Video,className:"mb-2 ".concat(d.M.GLOBAL_PLAYER_SELECTOR),ref:function(e){e&&(null==pe?void 0:pe.current)&&pe.current.set(I.K.Video,e)}},ee&&r.createElement(p.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(_=e.queryParams)||void 0===_?void 0:_.context,contextId:null===(W=e.queryParams)||void 0===W?void 0:W.contextId,moviesAndTv:null===(D=e.queryParams)||void 0===D?void 0:D.mtv,playNext:null===(B=e.queryParams)||void 0===B?void 0:B.playNext,startTime:null!==(J=null===(H=e.queryParams)||void 0===H?void 0:H.t)&&void 0!==J?J:null===(Z=e.queryParams)||void 0===Z?void 0:Z.startTime,mode:z.mode||"default",location:"play-page"}),r.createElement("div",{className:Ee?"":"d-none"},r.createElement(w.S,{video:e.clip,type:"pip"}))),r.createElement("div",{className:Oe},r.createElement("div",{className:ne?"".concat(Q.theatreModeLeftContent):"w-100"},r.createElement(S.v,{media:e.clip,yearGroups:e.commonVideoProps.yearGroups,audiences:e.audiences,originalVideoAppLink:Ie()?{application:L.O.VIDEOS,action:R.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,a.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId,showTitlePadlock:!e.commonVideoProps.hasStudentExperience}),ue?r.createElement(l.j,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:function(e){var t;return null===(t=z.playerRef.current)||void 0===t?void 0:t.currentTime(e)},getTagAppLink:function(e){return{application:L.O.SEARCH,action:R.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:ue}):r.createElement(c.a,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:ge,onExitImmersiveReader:be,getTagAppLink:function(e){return{application:L.O.SEARCH,action:R.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:pe,suppressInteractivity:e.featureAccess.canViewPublicLayout}),r.createElement(u.M,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.commonVideoProps.imageCdnUrl,getAppLink:$(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:x.W.Fallbacks.RESOURCE_THUMBNAIL,headingRef:pe}),r.createElement(V.J,{video:e.clip,interactives:e.interactives,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:pe,commonVideoProps:e.commonVideoProps}),r.createElement(E.O,{clips:Ve||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,audiences:e.audiences,headingRef:pe,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},commonVideoProps:e.commonVideoProps}),ue&&r.createElement(c.a,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:ge,onExitImmersiveReader:be,getTagAppLink:function(e){return{application:L.O.SEARCH,action:R.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:pe,suppressInteractivity:e.featureAccess.canViewPublicLayout,showHeading:!0}),!!Ie()&&r.createElement(K,{originalVideo:e.originalVideo,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:pe,currentUser:e.currentUser,commonVideoProps:e.commonVideoProps}),r.createElement(T.Z,{currentVideo:e.clip,relatedVideos:e.relatedVideos,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(t,n){var r;return j.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv,includeContext:null===(r=e.currentUser)||void 0===r?void 0:r.isAuthenticated}))},moviesAndTv:e.queryParams.mtv,commonVideoProps:e.commonVideoProps})),te&&r.createElement(C.h,{isExpanded:se,setIsExpanded:le,toggleTheatreMode:null,items:fe,activeId:ie,setControlledId:ce,analyticsData:{videoId:e.clip.id,videoName:e.clip.name},showInSide:e.shouldShowSideTableOfContents,isTheatreMode:!0,hasTranscription:e.hasTheatreMode}))),!te&&r.createElement(C.h,{isExpanded:se,setIsExpanded:le,toggleTheatreMode:e.hasTheatreMode?function(e){var t,n,r;null===(r=null===(n=null===(t=z.playerRef)||void 0===t?void 0:t.current)||void 0===n?void 0:n.toggleTheatreMode)||void 0===r||r.call(n,e)}:null,items:fe,activeId:ie,setControlledId:ce,analyticsData:{videoId:e.clip.id,videoName:e.clip.name},showInSide:e.shouldShowSideTableOfContents,isTheatreMode:!1,hasTranscription:e.hasTheatreMode}))}}}]);
|
|
2
|
+
//# sourceMappingURL=3677-43784effdf-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3677-43784effdf-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/components/play-clip/play-clip.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/components/play-clip/PlayClip.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const { fetchItems, ...data } = useGrowingBatchFetchFunc({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.length]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<T> {\n getRequest: (items: T[]) => Flight.Request;\n _getKey?: (obj: T) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<T>(options: UseGrowingBatchFetchFuncOptions<T>) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: T[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/react/index';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canViewTranscript: boolean;\n}\n\nexport function useVideoFeatureAccess(videoId?: string) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { hasPlayPageTranscript } = useSettings(null);\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n function shouldShowTranscript(videoId: string): boolean {\n if (currentUser.data?.isAuthenticated)\n return hasPlayPageTranscript;\n\n if (!videoId)\n return false;\n\n return HardCoded.PublicTranscriptVideoIds.includes(videoId);\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP,\n canViewTranscript: shouldShowTranscript(videoId)\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, PresentationAudience, VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClip';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n currentUser: CurrentUser;\n commonVideoProps: CommonVideoProps;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\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 includeContext: props.currentUser?.isAuthenticated\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={props.commonVideoProps}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"ULvZW\",\"expandedToc\":\"W3k9M\",\"theatreMode\":\"KOUGv\",\"theatreModeContent\":\"fWNAc\",\"theatreModePlayPageContainer\":\"RJ5nP\",\"theatreModeLeftContent\":\"dllgG\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page/glance/VideoAtAGlanceV2';\nimport { PlayPageResources } from 'libs/shared/components/play-page/resources-widget/PlayPageResources';\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 { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { Clip, CurrentUser, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\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 { PlayPageClips } from 'shared/components/play-page/components/play-page-clips/PlayPageClips';\nimport { PlayPageInteractives } from 'shared/components/play-page/components/play-page-interactives/PlayPageInteractives';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\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 { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { getContentClassName, getMainClassName } from 'shared/views/play/components/play-page/PlayPageUtils';\nimport { usePlayPageTableOfContent } from 'shared/views/play/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/hooks/useSectionHeadings';\nimport { useTheatreStyle } from 'shared/views/play/hooks/useTheatreStyle';\nimport { PlayPageUtils } from 'shared/views/play/PlayPageUtil';\nimport { ClippedFrom } from 'shared/views/play-clip/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip.scss';\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\n\ninterface PlayClipProps {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n relatedVideos: RelatedVideosHash;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n hasTopicDirectories: boolean;\n hasTheatreMode: boolean;\n breadcrumbs?: Breadcrumb[];\n commonVideoProps: CommonVideoProps;\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 theatreMode = props.hasTheatreMode && playerContext.mode === 'theatre';\n const shouldUseTheareModeStyle = useTheatreStyle(props.hasTheatreMode, theatreMode);\n\n function toggleTheatreMode(value: boolean) {\n playerContext.playerRef?.current?.toggleTheatreMode?.(value);\n }\n\n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId, props.hasTheatreMode, theatreMode);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, controlledId);\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 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 canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\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 otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n const calcClassNameProps = {\n hasTheatreMode: props.hasTheatreMode,\n shouldShowSideTableOfContents: props.shouldShowSideTableOfContents,\n tableOfContentsExpanded,\n theatreMode\n };\n const mainClassName = getMainClassName(calcClassNameProps);\n const contentClassName = getContentClassName(calcClassNameProps);\n\n const [ , setContainerClassName ] = useViewModel(ViewModelKeys.PLAY_PAGE_CONTAINER_CLASS_NAME);\n \n React.useEffect(() => {\n if (!theatreMode) {\n setContainerClassName('');\n } else {\n setContainerClassName(styles.theatreModePlayPageContainer);\n }\n }, [theatreMode]);\n\n React.useEffect(() => {\n return () => setContainerClassName('');\n }, []);\n\n return (\n <div className={`px-4 play-page-sections-container ${props.shouldShowSideTableOfContents ? 'row g-0' : ''}`}>\n <main className={`${styles.main} ${mainClassName}`}>\n {!!props.breadcrumbs?.length && (\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n )}\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.commonVideoProps.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\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\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={playerContext.mode || 'default'}\n location='play-page'\n />\n )}\n\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <div className={contentClassName}>\n <div className={shouldUseTheareModeStyle ? `${styles.theatreModeLeftContent}` : 'w-100'}>\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.commonVideoProps.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n showTitlePadlock={!props.commonVideoProps.hasStudentExperience}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\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 canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n commonVideoProps={props.commonVideoProps}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n audiences={props.audiences}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n commonVideoProps={props.commonVideoProps}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n currentUser={props.currentUser}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n showHeading\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n currentUser={props.currentUser}\n commonVideoProps={props.commonVideoProps}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n relatedVideos={props.relatedVideos}\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 includeContext: props.currentUser?.isAuthenticated\n })}\n moviesAndTv={props.queryParams.mtv}\n commonVideoProps={props.commonVideoProps}\n />\n </div>\n {theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={ null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={true}\n hasTranscription={props.hasTheatreMode}\n />\n )}\n </div>\n </main>\n\n {!theatreMode && (\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n toggleTheatreMode={props.hasTheatreMode ? toggleTheatreMode : null}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ videoId: props.clip.id, videoName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n isTheatreMode={false}\n hasTranscription={props.hasTheatreMode}\n />\n )}\n </div>\n );\n}\n"],"names":["CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","length","reduce","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","useGrowingBatchFetchFunc","fetchItems","options","getKey","obj","fetchedItems","Set","setRequests","hasFirstRequestCompleted","hasCompleted","unfetchedItems","forEach","key","current","has","push","add","r","useBreadcrumbs","match","breadcrumbs","useBuilder","active","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","params","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","config","currentUser","yearGroups","isAuthenticated","customerId","hasCommonVideoPropsCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","useVideoFeatureAccess","videoId","hasLocalPermissions","hasProduct","hasPlayPageTranscript","hasNP","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","canViewTranscript","shouldShowTranscript","getValidObjects","objects","Array","isArray","filter","o","useVideoMixin","videoIds","v","ids","useVideoMixinFunc","fetchObjects","namespace","ClippedFrom","props","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","set","Text","phrase","VideoActionsContext","value","VideoList","videos","originalVideo","getVideoAppLink","opts","VideoAppLinkHelper","context","queryParams","contextId","playNext","shareId","moviesAndTv","includeContext","presentationAudiences","audiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getResourceAppLink","canViewResource","resource","application","action","args","PlayClip","playerContext","canConsume","VideoHelper","clip","theatreMode","hasTheatreMode","mode","shouldUseTheareModeStyle","useTheatreStyle","usePlayPageTableOfContent","tableOfContentsId","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","featureAccess","useSectionHeadings","headingElements","ele","name","PlayPageUtil","clips","interactives","resources","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","ProductId","showPlayerPlaceholder","otherClips","c","toString","calcClassNameProps","shouldShowSideTableOfContents","mainClassName","contentClassName","setContainerClassName","Breadcrumbs","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","canManageVideoAccess","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","startTime","t","PlayerPlaceholder","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","showTitlePadlock","VideoAtAGlanceV2","pointsOfInterest","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","PlayPageClips","showHeading","RelatedVideos","currentVideo","relatedVideos","TableOfContents","isExpanded","setIsExpanded","toggleTheatreMode","activeId","videoName","showInSide","isTheatreMode","hasTranscription"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3978],{39902:(e,t,n)=>{n.d(t,{FN:()=>v,SW:()=>m,fh:()=>p});var r=n(32735),i=n(20354),a=n(75896);function o(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(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 u(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n},f=50;function p(e,t){var n=a.m.chunk(e,f).map((function(e){return t(a.m.uniq(e))})),r=i.a.useBasicFetchAll(n),o=a.m.flatten(r.data),u=r.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},t.id,t))}),{}):null;return{itemsArr:o,items:u,isFetching:r.isFetching}}function v(e,t,n){var i=m({getRequest:t,_getKey:n}),a=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect((function(){(null==e?void 0:e.length)&&a(e)}),[null==e?void 0:e.length]),o}function m(e){var t,n,c,d,p,v=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},m=r.useRef(new Set),h=(d=r.useState([]),p=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,u=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return u}}(d,p)||u(d,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],b=h[1],g=i.a.useBasicFetchAll(y),I=a.m.flatten(g.data),A=g.data.length?I.reduce((function(e,t){return Object.assign(Object.assign({},e),l({},v(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(n=g.responses)||void 0===n?void 0:n[0])||void 0===c?void 0:c.hasCompleted),itemsArr:I,items:A,isFetching:g.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=v(e);m.current.has(t)||(n.push(e),m.current.add(t))})),n.length&&b((function(t){return[].concat(o(t),o(a.m.chunk(n,f).map(e.getRequest)))}))}}}}},63719:(e,t,n)=>{n.d(t,{h:()=>u});var r=n(32735),i=n(77316);function a(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t,n,u=(t=r.useMemo((function(){return i.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,u=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return u}}(t,n)||a(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.")}()),c=u[0],s=(0,u[1])(c);return s&&e?[].concat(function(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)||a(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.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}},93978:(e,t,n)=>{n.r(t),n.d(t,{PlaySharedVideoView:()=>B});var r=n(32735),i=n(20354),a=n(65858),o=n(16714),u=n(89454),c=n(43012),s=n(39151),l=n(20768),d=n(31949),f=n(1575),p=n(63719),v=n(26304),m=n(22902),h=n(79612),y=n(37802),b=n(76753),g=n(10094),I=n(58321),A=n(82817),w=n(7179),S=n(49948),V=n(36873),C=n(86698),P=n(35014),j=n(97816),F=n(33192),O=n(87026),k=n(91442),x=n(54301),T=n(16857);function B(e){var t,n,B,L,R,U,M,E,N,q=(0,I.U)({locationContext:a.LZ.VideoThumbnail}),G=q.commonVideoProps,_=q.hasCommonVideoPropsCompleted,W=(0,m.T)().hasPermissions,D=(0,P.I)(),K=(0,k.a)(),$=(0,C.y)().activePresentation,Z=(0,y.r)(null),z=Z.hasPlayPageTranscript,H=Z.hasNewSearch,J=i.a.useBasicFetch(d.N.currentUser()),Q=i.a.useBasicFetch(f.R.sharedVideo(e.objectId,e.shareId)),X=i.a.useBasicFetch(D.canViewClips&&c.e.videoClips(e.objectId)),Y=i.a.useBasicFetch(D.canViewInteractives&&l.b.videoInteractives(e.objectId)),ee=(0,V.k)({video:Q.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:J.data}),te=(0,S.l)(e.objectId),ne=i.a.useBasicFetch(!!$&&u.O.audiencesByPresentationId($.id)),re=(0,x.l)(e.objectId,e.shareId),ie=i.a.useBasicFetch(re&&(null===(t=J.data)||void 0===t?void 0:t.contentRegion)&&g.F.chaptersAndSubtitles(e.objectId,J.data.contentRegion)),ae=(null==ie?void 0:ie.data)||{},oe=ae.subtitles,ue=ae.chapters,ce=null==oe?void 0:oe.filter((function(e){return!e.customer})),se=ce&&ce.length>0?ce.map((function(e){return g.F.subtitleVtt(e.url,e)})):[],le=i.a.useBasicFetchAll(se),de=(null==ce?void 0:ce.filter((function(e){return le.data.find((function(t){return t.id===e.id}))})))||[],fe=i.a.useBasicFetch(s.L.config());(0,h.M)(b.CG.getVideoMetadata({content:Q.data,canonicalLink:F.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.V)(null!==(n=ee.videos)&&void 0!==n?n:[]),(0,v.b)(Q,{private:T.m}),(0,w.P)({id:e.objectId,app:"videos",shareId:e.shareId});var pe=(0,p.h)({name:null===(B=Q.data)||void 0===B?void 0:B.name}),ve=(0,A.M)(e.objectId);return Q.data&&J.hasCompleted&&te.hasCompleted&&_?r.createElement("div",{className:"px-3"},r.createElement(O.j,{video:Q.data,clips:null===(L=X.data)||void 0===L?void 0:L.data,interactives:null===(R=Y.data)||void 0===R?void 0:R.data,curriculums:ve,relatedVideos:ee,currentUser:J.data,pointsOfInterest:null==te?void 0:te.items,playNext:null===(U=e.queryParams)||void 0===U?void 0:U.playNext,shareId:e.shareId,featureAccess:D,audiences:ne.data,params:e.queryParams,canManageVideoAccess:W(o.C.ManageVideoAccess),tableOfContentsId:null===(M=e.queryParams)||void 0===M?void 0:M.tocId,shouldShowSideTableOfContents:K,breadcrumbs:pe,commonVideoProps:G,hasTheatreMode:z,shouldShowTranscript:re&&(null===(E=le.data)||void 0===E?void 0:E.length)>0,vttSubtitles:le.data||[],subtitles:de,chapters:ue,isBot:F.f.isBot(),playerApiUrl:null===(N=fe.data)||void 0===N?void 0:N.playerApiUrl,hasNewSearch:H})):r.createElement(r.Fragment,null)}},10094:(e,t,n)=>{n.d(t,{F:()=>a});var r=n(97395),i=n(78417),a={chaptersAndSubtitles:function(e,t){var n={query:"subtitles[customer],chapters",permissionFilterOption:i.r.StripMetadata,contentRegion:t};return{url:r._.urlBuilder("{gateway}/v1/objects/".concat(e),n),publicUrl:r._.urlBuilder("/api/objects/".concat(e,"/subtitles"),n),key:"videos:".concat(e,":subtitles:chapters:").concat(i.r.StripMetadata),formatData:function(e){return{subtitles:e.subtitles.data,chapters:e.chapters.data}}}},subtitleVtt:function(e,t){return{url:"{player}/srt-to-vtt?url=".concat(e),publicUrl:"/api/player/srt-to-vtt?url=".concat(e),key:"subtitle:".concat(e),formatData:function(e){return Object.assign(Object.assign({},t),{vtt:e})}}}}},58321:(e,t,n)=>{n.d(t,{U:()=>v});var r=n(20354),i=n(16714),a=n(39151),o=n(1666),u=n(31949),c=n(22902),s=n(37802),l=n(22490),d=n(82431),f=n(46390),p=n(27638);function v(e){var t,n,v,m=e||{},h=m.locationContext,y=m.mtv,b=m.flightNamespace,g=m.sharedPlaylist,I=(0,f.G)(),A=I.isPlugin,w=I.params,S=(0,p.u)(h,b),V=S.setFavourite,C=S.canFavourite,P=(0,s.r)(null),j=P.hasTopicDirectories,F=P.isLoadingSettings,O=(0,c.T)(),k=O.hasPermissions,x=O.isLoaded,T=k(i.C.StudentExperience),B=r.a.useBasicFetch(a.L.config()),L=r.a.useBasicFetch(u.N.currentUser()),R=r.a.useBasicFetch((null===(t=L.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(L.data.customerId));return{hasCommonVideoPropsCompleted:!F&&x&&B.hasCompleted&&L.hasCompleted&&(!(null===(n=L.data)||void 0===n?void 0:n.isAuthenticated)||R.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=L.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:y}):null},isPlugin:A,isPluginPopup:!!(null==w?void 0:w.popup),canFavourite:C,setFavourite:V,imageCdnUrl:null===(v=B.data)||void 0===v?void 0:v.imageCdnUrl,yearGroups:R.data,getClassroomGuideAppLink:l.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:l.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:l.W.getResourceGuidanceAppLink,showNewVideoIndicator:j,companyLogoFallbackUrl:null,hasStudentExperience:T}}}},35014:(e,t,n)=>{n.d(t,{I:()=>f});var r=n(20354),i=n(55171),a=n(16714),o=n(12754),u=n(31949),c=n(22902),s=n(15311),l=n(37802),d=n(11387);function f(e){var t=(0,c.T)(),n=t.hasPermissions,f=t.hasLocalPermissions,p=(0,s.r)().hasProduct,v=r.a.useBasicFetch(u.N.currentUser()),m=(0,l.r)(null).hasPlayPageTranscript,h=p(o.x.Primary);return{canViewGlance:n(a.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:h&&n(a.C.ViewVideoInteractives),canViewClips:h&&n(a.C.ViewVideoClips),canViewCurriculumLinks:n(a.C.ViewCurriculums),canUseActions:f(a.E.UseVideoActions),canViewPublicLayout:!f(a.E.WatchVideos)&&d.C.hasRegionPrefix(),canViewResourceItems:f(a.E.ViewVideoResourceItems),canNavigate:h,canViewTranscript:function(e){var t;return(null===(t=v.data)||void 0===t?void 0:t.isAuthenticated)?m:!!e&&i.e.PublicTranscriptVideoIds.includes(e)}(e)}}},97816:(e,t,n)=>{n.d(t,{V:()=>u,l:()=>c});var r=n(1575),i=n(39902),a=n(31908);function o(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):[]:[]}function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e).map((function(e){return e.id}));(0,i.FN)(n,(function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,i.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(o(e).map((function(e){return e.id})))}}}},54301:(e,t,n)=>{n.d(t,{l:()=>o});var r=n(20354),i=n(1575),a=n(35014);function o(e,t){var n,o,u=(0,a.I)(e).canViewTranscript,c=r.a.useBasicFetch(t?i.R.sharedVideo(e,t):i.R.video(e));return u&&!!(null===(o=null===(n=c.data)||void 0===n?void 0:n._isClickViewCurated)||void 0===o?void 0:o.value)}}}]);
|
|
2
|
+
//# sourceMappingURL=3978-84811f1db1-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3978-84811f1db1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/share/views/play-shared-video/PlaySharedVideoView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/TranscriptRequests.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/play/hooks/useShowVideoTranscript.ts"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const { fetchItems, ...data } = useGrowingBatchFetchFunc({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.length]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<T> {\n getRequest: (items: T[]) => Flight.Request;\n _getKey?: (obj: T) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<T>(options: UseGrowingBatchFetchFuncOptions<T>) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: T[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import * as React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { ClipCollection, Config, CurrentUser, InteractiveCollection, PresentationAudience, Video, VttSubtitleResponse } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { TranscriptRequests, TranscriptResponse } from 'shared/flight-requests/TranscriptRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { PlayPage } from 'shared/views/play/components/play-page/PlayPage';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\nimport { useShowTranscriptForVideo } from 'shared/views/play/hooks/useShowVideoTranscript';\n\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedVideoView(props: ShareLinkViewProps): React.ReactElement {\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n\n const { hasPermissions } = usePermissions();\n\n const featureAccess = useVideoFeatureAccess();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const { activePresentation } = usePresentation();\n const { hasPlayPageTranscript, hasNewSearch } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(\n VideoRequests.sharedVideo(props.objectId, props.shareId)\n );\n const clips = Flight.useBasicFetch<ClipCollection>(\n featureAccess.canViewClips && ClipRequests.videoClips(props.objectId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n \n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!activePresentation &&\n AudienceRequests.audiencesByPresentationId(activePresentation.id)\n );\n\n const shouldFetchTranscript = useShowTranscriptForVideo(props.objectId, props.shareId);\n const transcript = Flight.useBasicFetch<TranscriptResponse>(\n shouldFetchTranscript && currentUser.data?.contentRegion &&\n TranscriptRequests.chaptersAndSubtitles(props.objectId, currentUser.data.contentRegion)\n );\n const { subtitles: allSubtitles, chapters } = transcript?.data || {};\n // only show transcript for ClickView produced subtitle \n const subtitles = allSubtitles?.filter(subtitle => !subtitle.customer);\n \n const captionsRequests = (subtitles && subtitles.length > 0)\n ? subtitles.map(subtitle => TranscriptRequests.subtitleVtt(subtitle.url, subtitle))\n : [];\n const captions = Flight.useBasicFetchAll<VttSubtitleResponse>(captionsRequests);\n const filteredSubtitles = subtitles?.filter(\n subtitle => captions.data.find(caption => caption.id === subtitle.id)\n ) || [];\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(video, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'videos', shareId: props.shareId });\n\n const breadcrumbs = useBreadcrumbs({ name: video.data?.name });\n\n const curriculums = useCurriculums(props.objectId);\n\n const dataLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div className='px-3'>\n <PlayPage\n video={video.data}\n clips={clips.data?.data}\n interactives={interactives.data?.data}\n curriculums={curriculums}\n relatedVideos={relatedVideos}\n currentUser={currentUser.data}\n pointsOfInterest={pointsOfInterest?.items}\n playNext={props.queryParams?.playNext}\n shareId={props.shareId}\n featureAccess={featureAccess}\n audiences={audiences.data}\n params={props.queryParams}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTheatreMode={hasPlayPageTranscript}\n shouldShowTranscript={shouldFetchTranscript && captions.data?.length > 0}\n vttSubtitles={captions.data || []}\n subtitles={filteredSubtitles}\n chapters={chapters}\n isBot={SeoHelper.isBot()}\n playerApiUrl={config.data?.playerApiUrl}\n hasNewSearch={hasNewSearch}\n />\n </div>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { Chapter, Subtitle } from 'libs/shared/interfaces';\n\nexport interface TranscriptResponse {\n subtitles: Subtitle[];\n chapters: Chapter[];\n}\n\nexport const TranscriptRequests = {\n chaptersAndSubtitles(videoId: string, contentRegion?: string): Flight.PublicRequest {\n const queryStringObj = {\n query: 'subtitles[customer],chapters',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n contentRegion\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/subtitles`, queryStringObj),\n key: `videos:${videoId}:subtitles:chapters:${PermissionFilterOption.StripMetadata}`,\n formatData: (data: any) => {\n return { subtitles: data.subtitles.data, chapters: data.chapters.data };\n }\n };\n },\n\n subtitleVtt(url: string, subtitleObj: Subtitle): Flight.PublicRequest {\n return {\n url: `{player}/srt-to-vtt?url=${url}`,\n publicUrl: `/api/player/srt-to-vtt?url=${url}`,\n key: `subtitle:${url}`,\n formatData: (data: any) => {\n return {\n ...subtitleObj,\n vtt: data\n };\n }\n };\n }\n};","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canViewTranscript: boolean;\n}\n\nexport function useVideoFeatureAccess(videoId?: string) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { hasPlayPageTranscript } = useSettings(null);\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n function shouldShowTranscript(videoId: string): boolean {\n if (currentUser.data?.isAuthenticated)\n return hasPlayPageTranscript;\n\n if (!videoId)\n return false;\n\n return HardCoded.PublicTranscriptVideoIds.includes(videoId);\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP,\n canViewTranscript: shouldShowTranscript(videoId)\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\n\nexport function useShowTranscriptForVideo(videoId: string, shareId?: string) {\n const { canViewTranscript } = useVideoFeatureAccess(videoId);\n\n const video = Flight.useBasicFetch<Video>(\n shareId ? VideoRequests.sharedVideo(videoId, shareId) : VideoRequests.video(videoId)\n );\n\n return canViewTranscript && !!video.data?._isClickViewCurated?.value;\n}"],"names":["CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","length","reduce","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","useGrowingBatchFetchFunc","fetchItems","options","getKey","obj","fetchedItems","Set","setRequests","hasFirstRequestCompleted","hasCompleted","unfetchedItems","forEach","key","current","has","push","add","r","useBreadcrumbs","match","breadcrumbs","useBuilder","active","PlaySharedVideoView","props","locationContext","commonVideoProps","hasCommonVideoPropsCompleted","hasPermissions","featureAccess","shouldShowSideTableOfContents","activePresentation","hasPlayPageTranscript","hasNewSearch","currentUser","video","objectId","shareId","clips","canViewClips","interactives","canViewInteractives","relatedVideos","context","queryParams","contextId","moviesAndTv","mtv","pointsOfInterest","audiences","shouldFetchTranscript","transcript","contentRegion","allSubtitles","subtitles","chapters","filter","subtitle","customer","captionsRequests","url","captions","filteredSubtitles","find","caption","config","content","canonicalLink","stripPresentationSlug","allowIndexing","videos","private","app","name","curriculums","className","playNext","params","canManageVideoAccess","tableOfContentsId","tocId","hasTheatreMode","shouldShowTranscript","vttSubtitles","isBot","playerApiUrl","TranscriptRequests","chaptersAndSubtitles","videoId","queryStringObj","query","permissionFilterOption","publicUrl","formatData","subtitleVtt","subtitleObj","vtt","useCommonVideoProps","flightNamespace","sharedPlaylist","isPlugin","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasLoadedPermissions","isLoaded","hasStudentExperience","yearGroups","isAuthenticated","customerId","subTextType","getSubTextAppLink","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","useVideoFeatureAccess","hasLocalPermissions","hasProduct","hasNP","canViewGlance","canViewResources","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","canViewTranscript","getValidObjects","objects","Array","isArray","o","useVideoMixin","videoIds","v","ids","useVideoMixinFunc","fetchObjects","useShowTranscriptForVideo","_isClickViewCurated","value"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4400],{22406:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),i=n(83914),o=n(36532),l=n(35223);const s={tag:"XRj8d",tooltip:"X6mLk"};var c="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(o.u,{title:r.T.getPhrase(c,"tooltip"),spanHackClassName:"d-block ".concat(s.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(s.tag," ").concat(e.className)},a.createElement(i.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(c,"comingSoon")))}},78408:(e,t,n)=>{n.d(t,{s:()=>o});var a=n(32735),r=n(15611);const i={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function o(e){var t,n,o;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(i.dateItem)},a.createElement("div",{className:"".concat(null===(o=e.theme)||void 0===o?void 0:o.background," py-1 ").concat(i.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return i.bodyRange;case"day":return i.bodyDay;case"month":return i.bodyMonth}}()," ").concat(i.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(i.month)},e.month)))}},67814:(e,t,n)=>{n.d(t,{p:()=>k,v:()=>L});var a=n(32735),r=n(110),i=n(50690),o=n(22406),l=n(78408),s=n(83657),c=n(23481),u=n(15611),d=n(83914),m=n(35223),f="shared.backButton";function p(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,i=t.color,o=t.extraClasses,l=t.textShadow,s=n?c.T.getPhrase(f,"backTo",{backToName:n}):c.T.getPhrase(f,"back"),p="black"===i?"":"text-white",v=l?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(p," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},s))}p.defaultProps={color:"black",extraClasses:""};var v=n(4527),y=n(83345),g=n(7733),h=n(10587),b=n(94232),w=n(54610),C=n(79967),S=n(9085),E=n(67453);const I={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var A="".concat(h.y[w.__.Banners].width,":").concat(h.y[w.__.Banners].height);function O(e){return e.length<160?"h1":I.headingLarge}var k=a.memo((function(e){var t,n,c,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,h=e.actions,k=e.sortComponent,L=e.blockColourClass,P=e.specialEvent,N=a.useContext(b.n),x=(0,C.k)().xxl?1920:1200,j=a.useMemo((function(){if(!P||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return P.endDate?P.startDate<=t&&P.endDate>=t:P.startDate===t}),[P]),F=e.imageOptions||{width:x,ratio:A,resizeType:w.Nq.Cover},T=!!m&&!!f&&E.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:w.__.Banners},F),D={className:"banner banner-header ".concat(e.bannerClassName),style:T?{backgroundImage:"url('".concat(T,"')")}:{}};!m&&L&&(delete D.style,D.className+=" ".concat(L));var V=e.detailsComponent,M=(0,S.x)(e.heading,g.o);return i.b.renderInPortalIfExists(a.createElement("header",Object.assign({},D),a.createElement("div",{className:"container ".concat(I.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(p,{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(I.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?I.bannerContentWithLogo:""))},!!P&&a.createElement("div",{className:"position-relative ".concat(I.specialEventContainer)},a.createElement(l.s,{body:{type:P.endDate?"range":"day",text:P.endDate?"".concat(r.O.format(P.startDate,"DD"),"-").concat(r.O.format(P.endDate,"DD")):r.O.format(P.startDate,"DD")},month:function(e){return e.endDate?r.O.isSame(e.startDate,e.endDate,"month")?r.O.format(e.startDate,"MMMM"):"".concat(r.O.format(e.startDate,"MMM")," - ").concat(r.O.format(e.endDate,"MMM")):r.O.format(e.startDate,"MMMM")}(P),theme:e.calendarTheme})),a.createElement("div",null,j&&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(y.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&&(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement("div",{className:"".concat(I.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(M)},a.createElement(v.w,{src:E.j.createUrl(null===(c=e.logo)||void 0===c?void 0:c.url,{size:w.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(I.heading," ").concat(O(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,V&&a.createElement(V,null)))),!!h&&a.createElement("div",{className:I.actionsContainer},a.createElement(s.e,{actions:h,sortComponent:k,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:I.logoContainer},a.createElement("img",{src:E.j.createUrl(e.logo.url,{size:w.h2.Medium}),className:"rounded-circle"})))),null==N?void 0:N.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 L(){var e=a.useContext(b.n);return i.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(I.banner)}),null==e?void 0:e.container)}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),i=n(67058),o=n(14553),l=n(49267),s=n(49075),c={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:l.a,privacy:o.q},badRequest:s._,internalServerError: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 i;i="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==a.o.InternalServer?i!==a.o.NotFound?i!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new o.badRequest):n.forbidden||r.Q.Ry.throw(new o.forbidden.privacy):n.notFound||r.Q.Ry.throw(new o.notFound):n.internalServerError||r.Q.Ry.throw(new s._))}}},39902:(e,t,n)=>{n.d(t,{FN:()=>p,SW:()=>v,fh:()=>f});var a=n(32735),r=n(20354),i=n(75896);function o(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}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 u(e,t,n){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=c(n))return n;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 d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},m=50;function f(e,t){var n=i.m.chunk(e,m).map((function(e){return t(i.m.uniq(e))})),a=r.a.useBasicFetchAll(n),o=i.m.flatten(a.data),l=a.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:o,items:l,isFetching:a.isFetching}}function p(e,t,n){var r=v({getRequest:t,_getKey:n}),i=r.fetchItems,o=d(r,["fetchItems"]);return a.useEffect((function(){(null==e?void 0:e.length)&&i(e)}),[null==e?void 0:e.length]),o}function v(e){var t,n,s,d,f,p=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===c(e)?e.id:e},v=a.useRef(new Set),y=(d=a.useState([]),f=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(d,f)||l(d,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=y[0],h=y[1],b=r.a.useBasicFetchAll(g),w=i.m.flatten(b.data),C=b.data.length?w.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},p(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(s=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===s?void 0:s.hasCompleted),itemsArr:w,items:C,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=p(e);v.current.has(t)||(n.push(e),v.current.add(t))})),n.length&&h((function(t){return[].concat(o(t),o(i.m.chunk(n,m).map(e.getRequest)))}))}}}}},91286:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(32735),r=n(94644);function i(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,r.r)(e.statusCode,t,n)}))}),[i(o),t,n])}},60115:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),r=n(50242),i=n(91967),o=400,l=n(45719);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}function c(e,t,n,c,u,d){var m,f,p,v,y=(m=(0,a.useState)(0),f=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(m,f)||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}}(m,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=y[0],h=y[1],b=t,w=(0,l.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return p={fetchNextPage:function(){if(t&&e&&w)return h((function(e){return e+1})),b(w.nextCursor)},hasMore:!!(null==w?void 0:w.nextCursor),isFetching:null==w?void 0:w.isFetching,scrollContainer:d},v=function(){if(!p.isFetching){if(p.scrollContainer){var e=p.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-o)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-o)return;p.fetchNextPage()}},(0,a.useEffect)((function(){var e=i.q.throttle(v,200),t=p.scrollContainer||window;return p.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[p.hasMore,p.fetchNextPage,p.scrollContainer]),(0,a.useEffect)((function(){w&&w.shouldInitialFetch&&t&&(b(),h((function(e){return e+1})))}),[null==w?void 0:w.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==w?void 0:w.statusCode)&&i.q.isFunction(n)){var a=+(null===(t=null===(e=w.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(g,w.statusCode)}}),[null==w?void 0:w.statusCode]),{items:null==w?void 0:w.items,hasMore:!!(null==w?void 0:w.nextCursor),nextCursor:null==w?void 0:w.nextCursor,isFetching:null==w?void 0:w.isFetching,totalItems:null==w?void 0:w.totalItems,hasFirstPageCompleted:null==w?void 0:w.hasFirstPageCompleted}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var a=n(32735),r=n(77316);function i(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(e){var t,n,l=(t=a.useMemo((function(){return r.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(t,n)||i(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.")}()),s=l[0],c=(0,l[1])(s);return c&&e?[].concat(function(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)||i(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},34400:(e,t,n)=>{n.r(t),n.d(t,{PlaylistView:()=>je});var a=n(32735),r=n(70680),i=n(23481),o=n(81886),l=n(20354),s=n(65858),c=n(1048),u=n(4594),d={isPlaylist:function(e){return(null==e?void 0:e.typeId)===u.E.Playlist},isOwner:function(e,t){var n;return!(!t||!e||c.t.isEmpty(e._liteOwner))&&e._liteOwner.id.toString()===(null===(n=t.id)||void 0===n?void 0:n.toString())},getVideoCount:function(e){var t,n,a;if(e){var r=0;return(null===(t=e.videos)||void 0===t?void 0:t.count)&&(r+=e.videos.count),(null===(n=e.clips)||void 0===n?void 0:n.count)&&(r+=e.clips.count),(null===(a=e.interactives)||void 0===a?void 0:a.count)&&(r+=e.interactives.count),r}}},m=n(87801),f=n(51365),p=n(183),v=n(89454),y=n(21750),g=n(39151),h=n(1666),b=n(5112),w=n(31949),C=n(69883),S=n(63719),E=n(56520),I=n(91286),A=n(60115),O=n(22902);function k(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=n(79612),P=n(76753),N=n(54569),x=n(31908),j=n(14070),F=n(97291),T=n(58321),D=n(7179),V=n(97816),M=n(10741),B=n(33192),U=n(22490),R=n(110),_=n(28400),H=n(97392),q=n(83345),Y="playlists.playlistHeaderDetails",G=function(e){var t=e.className;return a.createElement("span",{className:t},"•")};function Q(e){var t=e._liteOwner;if(t)return t.name&&t.surname?_.m.toTitleCase(t.name+" "+t.surname.substring(0,1)):t.name?t.name.split(" ")[0]:void 0}function W(e){var t,n,r=d.isOwner(e.playlist,e.currentUser),i=null===(t=e.playlist.followers)||void 0===t?void 0:t.count,o=function(e){if(!e.contentModifiedDate)return"";var t=new Date,n=R.O.convertUTCToLocal(e.contentModifiedDate);return R.O.isBefore(n,R.O.subtract(t,1,"month"))?"":R.O.fromNow(n)}(e.playlist);return a.createElement("div",{className:e.detailsClassName},!e.hideOwnerName&&!r&&a.createElement(a.Fragment,null,(null===(n=e.playlist._isClickViewCurated)||void 0===n?void 0:n.value)?a.createElement(a.Fragment,null,a.createElement("div",{className:e.clickViewAvatarClassName},a.createElement(H.F,null)),a.createElement("span",null,"ClickView")):a.createElement(q.x,{namespace:Y,phrase:"createdBy",options:{user:Q(e.playlist)}}),a.createElement(G,{className:e.separatorClassName})),"number"==typeof e.totalVideos&&a.createElement(q.x,{namespace:Y,phrase:"videos",options:{smartCount:e.totalVideos}}),i>0&&a.createElement(a.Fragment,null,a.createElement(G,{className:e.separatorClassName}),a.createElement(q.x,{namespace:Y,phrase:"followers",options:{smartCount:i}})),!!o&&a.createElement(a.Fragment,null,a.createElement(G,{className:e.separatorClassName}),a.createElement(q.x,{namespace:Y,phrase:"lastUpdated",options:{timeAgo:o}})))}var $=n(67814),X=n(49935),Z=n(7733),z=n(86764),J=n(3747),K=n(9085),ee=n(46390);const te={partialDescription:"vDX0m"};function ne(){return a.createElement(a.Fragment,null,a.createElement($.v,null),a.createElement("div",{className:"mb-2"},a.createElement("div",{className:"partial-loading-background my-2 border-bottom ".concat(te.partialDescription)})))}var ae=n(49985),re=n(35223),ie=i.T.encloseNamespace("playlists.playlistHeader"),oe={getPlaylistActions:function(e,t){var n,a,r,i,o,l,c=t.isAuthenticated,u=t.isPlugin,m=t.isMobile,f=t.setIsFollowing,p=t.isFollowing,v=t.setShowFollowSpinner,y=t.showFollowSpinner,g=t.isUserCurator,h=t.openInCuratorLink,b={id:e.playlist.id,name:e.playlist.name,followerCount:null===(n=e.playlist.followers)||void 0===n?void 0:n.count,videoCount:null===(a=e.playlist.videos)||void 0===a?void 0:a.count,interactiveCount:null===(r=e.playlist.interactives)||void 0===r?void 0:r.count,clipCount:null===(i=e.playlist.clips)||void 0===i?void 0:i.count,isClickViewPlaylist:null===(o=e.playlist._isClickViewCurated)||void 0===o?void 0:o.value},w={location:s.LZ.Banner,entity:s.py.Playlist,workflowPhase:s.eu.Start},C=[];if(!c)return C;var S=d.isOwner(e.playlist,e.currentUser);return u||(e.playAllAppLink&&C.push({label:ie("playAll"),appLink:e.playAllAppLink,svgName:re.vn.Play,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},w),{actionType:s.Vw.Play})}),g&&C.push({label:(0,E.eR)(),href:h,openInNewTab:!0}),C.push({label:ie("share"),appLink:{application:F.O.DEFAULT,action:j.e.Default.SHARE,args:[e.playlist.id],params:{entityType:"playlist"}},svgName:re.vn.Share,className:m?"":"btn btn-outline-dark me-2",button:!m,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},w),{actionType:s.Vw.Share,eventVersion:s.eq.V3})})),S||C.push({label:ie(p?"following":"follow"),onClick:function(){f(!p),v(!0),e.follow(!p,(function(){v(!1),ae.k.logUserAction(b,Object.assign(Object.assign({},w),{actionType:s.Vw.Follow,descriptor:p?s.DL.Off:s.DL.On,workflowPhase:s.eu.Complete}))}),(function(){v(!1),f(p)}))},svgName:p?re.vn.BellFilled:re.vn.Bell,className:m?"":"btn follow-btn btn-".concat(p?"outline-dark":"dark"," me-2"),button:!m,showSpinner:y}),S&&(C.push({label:ie("edit"),appLink:{application:F.O.PLAYLISTS,action:j.e.Playlists.EDIT_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Edit,button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},w),{actionType:s.Vw.Edit})}),C.push({label:ie("delete"),appLink:{application:F.O.PLAYLISTS,action:j.e.Playlists.DELETE_PLAYLIST,args:[e.playlist.id]},svgName:re.vn.Delete,className:"text-danger",button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},w),{actionType:s.Vw.Delete})})),(null===(l=e.playlist._isClickViewCurated)||void 0===l?void 0:l.value)&&C.push({label:ie("copy"),appLink:{application:F.O.PLAYLISTS,action:j.e.Playlists.COPY_PLAYLIST,args:[e.playlist.id]},button:!1,analyticsData:b,analyticsOptions:Object.assign(Object.assign({},w),{actionType:s.Vw.Copy})}),C}};const le={clickViewAvatar:"PHe9c"};function se(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,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ce(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)?ce(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 ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ue(e){var t=(0,ee.G)().isPlugin,n=se(a.useState(e.isFollowing),2),r=n[0],i=n[1],o=se(a.useState(!1),2),l=o[0],s=o[1];a.useEffect((function(){return i(e.isFollowing)}),[e.isFollowing]);var c=(0,J.a)(z.r.XS);if(e.showPartialLoading)return a.createElement(ne,null);var u=e.playlist.description,d=oe.getPlaylistActions(e,{isAuthenticated:e.currentUser.isAuthenticated,isPlugin:t,isMobile:c,setIsFollowing:i,isFollowing:r,setShowFollowSpinner:s,showFollowSpinner:l,isUserCurator:e.isUserCurator,openInCuratorLink:e.openInCuratorLink}),m=e.getBreadcrumbs();return a.createElement(a.Fragment,null,a.createElement($.p,{heading:e.playlist.name,banner:e.playlist.banner,imageCdnUrl:e.imageCdnUrl,actions:d.length&&d,actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:(0,K.x)(e.playlist.name,Z.o),detailsComponent:function(){return a.createElement(W,{playlist:e.playlist,currentUser:e.currentUser,detailsClassName:"mb-n1 font-size-normal fw-normal mt-1",clickViewAvatarClassName:le.clickViewAvatar,separatorClassName:"mx-1",totalVideos:e.totalVideos})}}),(!!u||!!(null==m?void 0:m.length))&&a.createElement("div",{className:"border-bottom py-3"},!e.playlist||e.classificationId&&!e.topicPath?a.createElement(X.b2,null):a.createElement("div",{className:"pb-2"},a.createElement(X.Oo,{breadcrumbs:m})),!!u&&a.createElement("p",{className:"mb-0"},u)))}var de=n(56050),me=n(91967),fe=n(83914),pe=n(1860),ve=n(75100);function ye(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 ge=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function he(e){var t,n,r=e.onSortComplete,i=e.onSortStart,l=e.showPartialLoading,s=ge(e,["onSortComplete","onSortStart","showPartialLoading"]),c=(t=a.useState(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return ye(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)?ye(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],d=c[1];return l?a.createElement(pe.S,{withReordering:e.canEdit||e.showIndexes}):e.canEdit?a.createElement(ve.NB,Object.assign({},s,{currentSortingIndex:u,onSortStart:function(t){var n=e.videos.findIndex((function(e){return e.id.toString()===t.active.id.toString()}));d(n),me.q.isFunction(i)&&i(n)},onSortEnd:function(t){d(null);var n=t.active,a=t.over,i=e.videos.findIndex((function(e){return e.id.toString()===n.id.toString()})),l=e.videos.findIndex((function(e){return e.id.toString()===a.id.toString()}));me.q.isFunction(r)?r(i,l):o.Q.Ry.throw(new de.H("An onSortComplete callback function must be passed to SortableVideoListComponent"))},dragHandleIcon:re.vn.Hamburger,dragHandleIconSize:fe.S.XXL,presentationAudiences:e.presentationAudiences})):a.createElement(ve.E4,Object.assign({},s))}var be=n(97958),we=n(99742),Ce="playlists.playlistEmptyState";function Se(){return a.createElement(q.D.Provider,{value:Ce},a.createElement(be.u,null,a.createElement(be.u.Image,{src:we.W.EmptyStates.Playlists.PLAYLIST_VIDEOS}),a.createElement(be.u.Heading,null,a.createElement(q.x,{phrase:"heading"})),a.createElement(be.u.Info,null,a.createElement(q.x,{phrase:"info"}))))}n(75896);var Ee=n(81493),Ie=n(9680),Ae=n(10671);function Oe(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 ke=i.T.encloseNamespace("playlists.playlist");function Le(e,t,n){ae.k.logUserAction({id:t,playlistId:e},{location:s.LZ.VideoList,entity:s.py.Video,actionType:s.Vw.Move,workflowPhase:n})}var Pe={notFound:Ee.N,forbidden:{privacy:Ie.J}};function Ne(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 xe=i.T.encloseNamespace("playlists.playlist");function je(e){var t,n,i,c,u,R,_,H,q,Y,G,Q,W,$,X,Z=(0,r.I0)(),z=(0,C.Z)(),J=l.a.useBasicFetch(g.L.config()),K=l.a.useBasicFetch(w.N.currentUser()),ee=(0,E.R0)(),te=ee.isUserCurator,ne=ee.getOpenInCurationStudioLink,ae=(0,O.T)().hasPermissions,ie=l.a.useBasicFetch((null===(t=K.data)||void 0===t?void 0:t.isAuthenticated)&&h.h.yearGroups(K.data.customerId)),oe=l.a.useBasicFetch(e.classificationId&&y.x.path(e.classificationId)),le=l.a.useBasicFetch(e.classificationId&&y.x.classification(e.classificationId,null===(n=K.data)||void 0===n?void 0:n.id)),se=l.a.useBasicFetch(le.hasCompleted&&y.x.presentationById(null===(i=le.data)||void 0===i?void 0:i.presentationId)),ce=(null===(c=K.data)||void 0===c?void 0:c.isAuthenticated)?!e.classificationId||se.hasCompleted:!!(null===(u=se.data)||void 0===u?void 0:u.id),de=l.a.useBasicFetch(ce&&v.O.presentationAudiences(null===(R=se.data)||void 0===R?void 0:R.id)),me=(0,T.U)({locationContext:s.LZ.VideoThumbnail,mtv:e.moviesAndTv,sharedPlaylist:!!e.shareId}).commonVideoProps,fe=e.shareId?b.C.getSharedPlaylist(e.playlistId,e.shareId):b.C.getPlaylist(e.playlistId),pe=e.shareId?b.C.getSharedPlaylistVideosCount(e.playlistId,e.shareId):b.C.getPlaylistVideosCount(e.playlistId),ve=l.a.useBasicFetch(fe),ye=l.a.useBasicFetch(pe),ge=function(e,t,n){var a=(0,Ae._)({location:Ae.i.VideoItem,shareId:n});return d.isOwner(e,t)?Object.assign(Object.assign({},a),{getVideoActions:function(t,n){var r,i=x.M.getCanBeConsumed(t).canConsume,o={label:ke("removeFromPlaylist"),button:!1,svgName:re.vn.Delete,appLink:{application:F.O.PLAYLISTS,action:j.e.Playlists.REMOVE_VIDEO_FROM_PLAYLIST,args:[t.id,e.id],params:{typeId:t.typeId}},className:"text-danger",analyticsOptions:{entity:s.py.Video,actionType:s.Vw.Dissociate,location:s.LZ.VideoListItem,workflowPhase:s.eu.Start,descriptor:s.iF.Playlist},analyticsData:{id:t.id,playlistId:e.id},group:"delete"};return i?[].concat(function(e){if(Array.isArray(e))return Oe(e)}(r=a.getVideoActions(t,n))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(r)||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.")}(),[o]):[o]}}):a}(ve.data,K.data,e.shareId);(0,I.v)(ve,Pe);var be=function(t){return e.shareId?b.C.getSharedPlaylistVideos(e.playlistId,e.shareId,t):b.C.getPlaylistVideos(e.playlistId,t)},we=l.a.useBasicFetch((null===(_=K.data)||void 0===_?void 0:_.id)&&b.C.getIsFollowingPlaylist(e.playlistId,null===(H=K.data)||void 0===H?void 0:H.id)),Ce=function(e){l.a.getFetch(Z)(be(e))},Ee=(0,A.K)(be,Ce),Ie=Ee.items,je=Ee.hasMore,Fe=Ee.isFetching;(0,V.V)(Ie);var Te,De,Ve,Me,Be,Ue,Re=function(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,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ne(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)?Ne(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.")}()}((Te=Ie,Be=(0,a.useState)(),Ue=2,De=function(e){if(Array.isArray(e))return e}(Be)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(Be,Ue)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(Be,Ue)||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.")}(),Ve=De[0],Me=De[1],(0,a.useEffect)((function(){Ve&&(Te.length!==Ve.length||function(e,t){var n=!0;if(e.length!==t.length)return!1;for(var a=0;a<e.length;a++)if(e[a].id!==t[a].id){n=!1;break}return n}(Te,Ve))&&Me(null)}),[Te]),[Ve,Me]),2),_e=Re[0],He=Re[1];(0,D.P)({id:e.playlistId,app:"playlists",shareId:e.shareId}),(0,L.M)(P.CG.getPlaylistMetadata({content:ve.data,phraseContext:{phraseHandler:xe,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:B.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1}));var qe=!!Ie&&0===Ie.length,Ye=function(t,n){var a,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return U.W.getAppLink(t,Object.assign(Object.assign({},r),{contextId:e.playlistId,context:p.Q.Playlist,shareId:e.shareId,moviesAndTv:e.moviesAndTv,playNext:n,includeContext:(null===(a=K.data)||void 0===a?void 0:a.isAuthenticated)||!!e.shareId}))},Ge=!(null===(q=K.data)||void 0===q?void 0:q.isAuthenticated)||!!we.hasCompleted,Qe=null==Ie?void 0:Ie.find((function(e){var t;return null===(t=x.M.getCanBeConsumed(e))||void 0===t?void 0:t.canConsume})),We=d.isOwner(ve.data,K.data),$e=Ie&&K.data&&J.data,Xe=(0,S.h)({name:null===(Y=ve.data)||void 0===Y?void 0:Y.name});return a.createElement(f.M.Provider,{value:(null===(G=K.data)||void 0===G?void 0:G.isAuthenticated)&&ge},a.createElement("div",{className:"bg-white px-3"},a.createElement(ue,{playlist:ve.data,currentUser:K.data,isFollowing:null===(Q=we.data)||void 0===Q?void 0:Q.isFollowing,follow:function(t,n,a){var r,i=t?b.C.followPlaylist:b.C.unfollowPlaylist;l.a.fetch(Z,i(e.playlistId,null===(r=K.data)||void 0===r?void 0:r.id,n,(function(){a(),z.error(xe(t?"followError":"unfollowError"))})))},playAllAppLink:Qe&&Ye(Qe,!0),showPartialLoading:!ve.data||!$e||!Ge,imageCdnUrl:!!J.data&&J.data.imageCdnUrl,getBreadcrumbs:function(){return e.hideBreadCrumbs?null:Xe},topicPath:oe.data,moviesAndTv:e.moviesAndTv,classificationId:e.classificationId,isUserCurator:te,openInCuratorLink:ne(null===(W=ve.data)||void 0===W?void 0:W.typeId,null===($=ve.data)||void 0===$?void 0:$.id),totalVideos:d.getVideoCount(ye.data)}),a.createElement("div",{className:"mt-2"},qe?a.createElement(Se,null):a.createElement(he,{videos:_e||Ie,yearGroups:ie.data,playlistId:!!ve.data&&ve.data.id,onSortStart:function(t){var n=Ie[t];n&&Le(e.playlistId,n.id,s.eu.Start)},onSortComplete:function(t,n){if(t!==n){var a=Ie[t];if(a){var r=N.l.reorder(Ie,t,n),i=r.reorderedItems,o=r.reorderRequest;He(i),Le(e.playlistId,a.id,s.eu.Complete),l.a.fetch(Z,b.C.reorderVideos(e.playlistId,o,null,(function(){He(null)})))}}},canEdit:We,showPartialLoading:!$e,getVideoAppLink:function(e,t){return Ye(e,!1,t)},showSignIn:!(null===(X=K.data)||void 0===X?void 0:X.isAuthenticated),getSignInAppLink:function(e){var t=o.Q.C$.getHref(e),n="/"!==t?{redirectUrl:t}:{};return{application:F.O.DEFAULT,action:j.e.Default.CHALLENGE,params:n}},canRemovePrivateVideos:We,presentationAudiences:e.moviesAndTv?null:de.data,showIndexes:!0,hasPermissions:ae,getPreviewQuestionsAppLink:function(e){return M.j.getPreviewQuestionsAppLink(e)},commonVideoProps:me})),(je||Fe)&&a.createElement(m._,{isFetching:Fe,fetchNext:Ce})))}},58321:(e,t,n)=>{n.d(t,{U:()=>p});var a=n(20354),r=n(16714),i=n(39151),o=n(1666),l=n(31949),s=n(22902),c=n(37802),u=n(22490),d=n(82431),m=n(46390),f=n(27638);function p(e){var t,n,p,v=e||{},y=v.locationContext,g=v.mtv,h=v.flightNamespace,b=v.sharedPlaylist,w=(0,m.G)(),C=w.isPlugin,S=w.params,E=(0,f.u)(y,h),I=E.setFavourite,A=E.canFavourite,O=(0,c.r)(null),k=O.hasTopicDirectories,L=O.isLoadingSettings,P=(0,s.T)(),N=P.hasPermissions,x=P.isLoaded,j=N(r.C.StudentExperience),F=a.a.useBasicFetch(i.L.config()),T=a.a.useBasicFetch(l.N.currentUser()),D=a.a.useBasicFetch((null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(T.data.customerId));return{hasCommonVideoPropsCompleted:!L&&x&&F.hasCompleted&&T.hasCompleted&&(!(null===(n=T.data)||void 0===n?void 0:n.isAuthenticated)||D.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?b&&!(null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:g}):null},isPlugin:C,isPluginPopup:!!(null==S?void 0:S.popup),canFavourite:A,setFavourite:I,imageCdnUrl:null===(p=F.data)||void 0===p?void 0:p.imageCdnUrl,yearGroups:D.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:k,companyLogoFallbackUrl:null,hasStudentExperience:j}}}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>s});var a=n(1575),r=n(39902),i=n(31908);function o(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e).map((function(e){return e.id}));(0,r.FN)(n,(function(e){return a.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,r.SW)({getRequest:function(t){return a.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(o(e).map((function(e){return e.id})))}}}}}]);
|
|
2
|
+
//# sourceMappingURL=4400-e6d6e73b2c-lite.chunk.js.map
|