@clickview/lite 0.52.5-rc.1 → 0.52.5-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/{1329-9abd7031af-lite.chunk.js → 1329-d48379c043-lite.chunk.js} +3 -3
- package/dist/scripts/1329-d48379c043-lite.chunk.js.map +1 -0
- package/dist/scripts/{2676-05aaf9a93a-lite.chunk.js → 2676-a4c770b74a-lite.chunk.js} +3 -3
- package/dist/scripts/2676-a4c770b74a-lite.chunk.js.map +1 -0
- package/dist/scripts/4273-072e2e829c-lite.chunk.js +3 -0
- package/dist/scripts/4273-072e2e829c-lite.chunk.js.map +1 -0
- package/dist/scripts/4591-379f0fe588-lite.chunk.js +2 -0
- package/dist/scripts/4591-379f0fe588-lite.chunk.js.map +1 -0
- package/dist/scripts/{6102-01c59f900c-lite.chunk.js → 6102-ca7a024369-lite.chunk.js} +3 -3
- package/dist/scripts/{6102-01c59f900c-lite.chunk.js.map → 6102-ca7a024369-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6480-2ee0d11dc5-lite.chunk.js → 6480-02d62e92b1-lite.chunk.js} +2 -2
- package/dist/scripts/6480-02d62e92b1-lite.chunk.js.map +1 -0
- package/dist/scripts/6741-1c125dbc6c-lite.chunk.js +3 -0
- package/dist/scripts/6741-1c125dbc6c-lite.chunk.js.map +1 -0
- package/dist/scripts/8055-5fb5a4011b-lite.chunk.js +3 -0
- package/dist/scripts/8055-5fb5a4011b-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-3d06481af8.min.js → bundle-7a646a4066.min.js} +3 -3
- package/dist/scripts/bundle-7a646a4066.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1329-9abd7031af-lite.chunk.js.map +0 -1
- package/dist/scripts/2676-05aaf9a93a-lite.chunk.js.map +0 -1
- package/dist/scripts/4273-be7af72b2a-lite.chunk.js +0 -3
- package/dist/scripts/4273-be7af72b2a-lite.chunk.js.map +0 -1
- package/dist/scripts/4591-6ac8b2c443-lite.chunk.js +0 -2
- package/dist/scripts/4591-6ac8b2c443-lite.chunk.js.map +0 -1
- package/dist/scripts/6480-2ee0d11dc5-lite.chunk.js.map +0 -1
- package/dist/scripts/6741-b2ea5b1492-lite.chunk.js +0 -3
- package/dist/scripts/6741-b2ea5b1492-lite.chunk.js.map +0 -1
- package/dist/scripts/8055-3449680f69-lite.chunk.js +0 -3
- package/dist/scripts/8055-3449680f69-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-3d06481af8.min.js.map +0 -1
- /package/dist/scripts/{1329-9abd7031af-lite.chunk.js.LICENSE.txt → 1329-d48379c043-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2676-05aaf9a93a-lite.chunk.js.LICENSE.txt → 2676-a4c770b74a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4273-be7af72b2a-lite.chunk.js.LICENSE.txt → 4273-072e2e829c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6102-01c59f900c-lite.chunk.js.LICENSE.txt → 6102-ca7a024369-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-b2ea5b1492-lite.chunk.js.LICENSE.txt → 6741-1c125dbc6c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8055-3449680f69-lite.chunk.js.LICENSE.txt → 8055-5fb5a4011b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-3d06481af8.min.js.LICENSE.txt → bundle-7a646a4066.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4591],{40955:(e,t,a)=>{a.d(t,{P:()=>i});var n=a(32735);function i(e){return e.audience?n.createElement("div",{className:"audience-label border rounded-pill d-inline-block px-2 text-nowrap \n ".concat("border-"+e.border," ").concat(e.className?e.className:"")},e.audience.name):n.createElement(n.Fragment,null)}},17464:(e,t,a)=>{a.d(t,{c:()=>r});var n=a(32735),i=a(7121);function r(e){var t="d-flex align-items-center badge-list ".concat(i.Z.minHeight);return e.className&&(t+=" ".concat(e.className)),n.createElement("div",{className:t},e.children)}},89682:(e,t,a)=>{a.d(t,{I:()=>u,h:()=>d});var n=a(32735),i=a(91967),r=a(83914),o=a(35223),c=a(11607);const l={unchecked:"bup9I",outline:"ealw_",checked:"A1Ov0",checkMark:"c14lI"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d;function u(e){var t,a,u=(t=n.useState(e.status===d.Complete),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,r,o,c=[],l=!0,s=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=r.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=u[0],v=u[1];n.useEffect((function(){v(e.status===d.Complete)}),[e.status]);var p="cursor-pointer rounded-circle ".concat(m?l.checked:l.unchecked);return e.className&&(p+=" ".concat(e.className)),"outline"===e.style&&(p+=" ".concat(l.outline)),e.status&&e.status!==d.None&&i.q.isFunction(e.setStatus)?n.createElement(c.L,{className:p,onClick:function(){var t=!m;v(t);var a=t?d.Complete:d.Incomplete;e.setStatus(a).catch((function(){v(!t)}))},disabled:e.disabled},n.createElement(r.x,{svgName:o.vn.Tick,className:"svg-container ".concat(l.checkMark)})):n.createElement(n.Fragment,null)}!function(e){e.None="None",e.Complete="Complete",e.Incomplete="Incomplete"}(d||(d={})),u.defaultProps={style:"filled"}},24900:(e,t,a)=>{a.d(t,{z:()=>l,O:()=>c});var n=a(32735),i=a(83914),r=a(35223);const o={mask:"qpc7L",small:"L8Oxs",video:"b8kJW",playlist:"eo2p2",maskContainer:"lpwag"};var c;function l(e){var t=e.type,a=e.size,l=function(e){return e===c.Video?o.video:e===c.Playlist?o.playlist:""}(t),s=function(e){return e===c.Video?r.vn.PlayCircle:""}(t);return n.createElement("div",{className:"".concat(o.maskContainer," ").concat("sm"===a?o.small:"")},n.createElement("div",{className:o.mask}),n.createElement(i.x,{svgName:s,className:l}))}!function(e){e[e.Video=0]="Video",e[e.Playlist=1]="Playlist",e[e.Series=2]="Series"}(c||(c={})),l.defaults={size:"md"}},22843:(e,t,a)=>{a.d(t,{h:()=>d});var n=a(32735),i=a(65858),r=a(36848),o=a(38647),c=a(11882),l=a(31908);const s={container:"r70GR",titleContainer:"rULXI",seriesTitleBox:"h9k1p",badgeContainer:"QaDDX",audienceBadge:"hvsne"};function d(e){var t=e.video,a=e.appLink,d=e.subTextAppLink,u=l.M.getCanBeConsumed(t).canNavigate;return n.createElement("div",{className:"mt-2 ".concat(s.container)},n.createElement("div",{className:"d-flex flex-column ".concat(s.titleContainer)},l.M.isVideo(t)&&n.createElement(c.$,{type:e.subTextType,className:"text-truncate ".concat(s.seriesTitleBox),video:t,appLink:d,analyticsOptions:{location:i.LZ.VideoThumbnail}}),n.createElement("h2",{className:"h6"},n.createElement(r.F,{className:"text-reset clamp-2 align-middle",appLink:u?a:null},t.name,n.createElement(o.m,{video:e.video,yearGroups:e.yearGroups,size:"sm"})))))}},84591:(e,t,a)=>{a.d(t,{u:()=>he});var n=a(32735),i=a(1048),r=a(65858),o=a(18559),c=a(17464),l=a(23481),s=a(91967),d=a(11607),u=a(83914),m=a(69883),v=a(1643),p=a(35223),g=a(31908);const y={favourited:"t0svX",favouriteButton:"CFRo3",heart:"ZMMQu",heartOutline:"truFo"};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var E=l.T.encloseNamespace("shared.favouriteButton");function h(e){var t,a,i=(0,m.Z)(),r=v.h.isFavouritedByCurrentUser(e.video),o=(t=n.useState(r),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,r,o,c=[],l=!0,s=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=r.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?f(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=o[0],l=o[1];n.useEffect((function(){l(r)}),[r]);var h="".concat("d-flex align-items-center justify-content-center"," cursor-pointer ").concat(y.favouriteButton," ").concat(c?y.favourited:"");return e.className&&(h+=" ".concat(e.className)),s.q.isFunction(e.setFavourite)&&s.q.isFunction(e.canFavourite)&&e.canFavourite(e.video)?n.createElement(d.L,{className:h,onClick:function(){var t=!c;l(t),e.setFavourite(e.video,t,null,(function(){i.error(E(g.M.isClip(e.video)?t?"favouriteClipError":"unfavouriteClipError":g.M.isInteractive(e.video)?t?"favouriteInteractiveError":"unfavouriteInteractiveError":t?"favouriteVideoError":"unfavouriteVideoError")),l(!t)}),e.analyticsData,e.analyticsOptions)},tabIndex:e.preventFocus?-1:void 0},n.createElement(u.x,{svgName:p.vn.Heart,className:"svg-container ".concat(y.heart)}),n.createElement(u.x,{svgName:p.vn.HeartOutline,className:"svg-container ".concat(y.heartOutline)})):n.createElement(n.Fragment,null)}var b=a(75163),k=a(5465);function C(e){var t=g.M.getVideoProgress(e.video),a=t&&e.video.duration&&t/e.video.duration*1e5;return a?n.createElement("div",{className:"bg-primary h-100",style:{width:"".concat(a,"%")}}):n.createElement(n.Fragment,null)}const N={bottomBar:"YnXtZ"};function O(e){return g.M.isVideo(e.video)?n.createElement("div",{className:N.bottomBar},n.createElement(C,{video:e.video})):n.createElement(n.Fragment,null)}var w=a(20789),x=a(86794),I=a(2786),F=a(64818);const L={std:"ct8Ht",sm:"dvCes",stdIcon:"iy0pu",smIcon:"Z_mZf"};function j(e){var t,a,i;return(g.M.isInteractive(e.video)||g.M.isClip(e.video))&&(e.video._liteOwner||(null===(t=e.video._isClickViewCurated)||void 0===t?void 0:t.value))?(null===(a=e.video._isClickViewCurated)||void 0===a?void 0:a.value)?n.createElement("div",{className:"".concat("sm"===e.size?L.sm:L.std," me-1 rounded-circle position-relative bg-white")},n.createElement(x.b,{className:"me-1 ".concat("sm"===e.size?L.smIcon:L.stdIcon)},n.createElement(I.Sd,null))):n.createElement("div",{className:"".concat("sm"===e.size?L.sm:L.std," me-1")},n.createElement(w.q,{imageCdnUrl:e.imageCdnUrl,initials:F.l.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:null===(i=e.video._liteOwner.avatar)||void 0===i?void 0:i.url})):n.createElement(n.Fragment,null)}var T=a(36848),M=a(83345);const S={pluginHover:"h4RQa"};var A="shared.pluginHover";function D(e){return e.isPlugin?n.createElement(T.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:"\n position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer\n ".concat(S.pluginHover,"\n ").concat(e.className?e.className:"","\n ")},n.createElement("span",{className:"position-absolute top-50 start-50 translate-middle text-nowrap h4 text-white"},n.createElement(M.x,{namespace:A,phrase:"embed"}))):n.createElement(n.Fragment,null)}const z={padlock:"w4cg8",sm:"JpIYd"};function P(e){var t="sm"===e.size?u.S.Small:u.S.Standard;return n.createElement("div",{className:"".concat(z.padlock," ").concat("sm"===e.size?z.sm:""," bg-white cursor-default d-flex align-items-center justify-content-center")},n.createElement(u.x,{svgName:p.vn.Lock,size:t}))}var R=a(54610),V=a(67453),B=a(76177);const G={logo:"OA9ft",sm:"fyo2J"};function U(e){var t,a,i,r;if(!g.M.isVideo(e.video)||!e.companyLogoFallbackUrl)return n.createElement(n.Fragment,null);var o=null===(a=null===(t=e.video.productionCompanies)||void 0===t?void 0:t.data)||void 0===a?void 0:a[0],c=V.j.createUrl(null!==(r=null===(i=null==o?void 0:o.logo)||void 0===i?void 0:i.url)&&void 0!==r?r:e.companyLogoFallbackUrl,{size:R.h2.Small});return c?n.createElement("div",null,n.createElement(B.u,{title:null==o?void 0:o.name,spanHack:!0},n.createElement("div",{className:"".concat(G.logo," ").concat("sm"===e.size?G.sm:""),style:{backgroundImage:"url(".concat(c,")")}}))):n.createElement(n.Fragment,null)}U.defaultProps={size:"md"};var H=a(11882),_=a(4594),Z=a(61150);function W(e){return g.M.isClip(e.video)?n.createElement(Z.y,{typeId:_.E.Clip,size:e.size,inContainer:!0}):g.M.isInteractive(e.video)?n.createElement(Z.y,{typeId:_.E.Interactive,status:e.video.status,size:e.size,inContainer:!0}):n.createElement(n.Fragment,null)}W.default={size:"md"};var q=a(10439),Q=a(49439);const X={overlayContainer:"qu3A3",topLeftContainer:"gjhMe",topRightContainer:"XAfZW",overlay:"NTrtm",downScale:"puKcM",title:"_6FukN",gradient:"rXzR8",playIcon:"dndOA",videoProgress:"yhWf4",badgeContainer:"AtgmC",clipProgress:"E2egN",interactiveProgress:"WycwR"};function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function J(e){var t="mb-1";return e&&(t+=X.downScale),t}function K(e){var t,a,l,s=e.video,d=e.appLink,m=e.imageOptions,y=e.setFavourite,f=e.canFavourite,E=e.preload,C=e.hovering,N=e.hoverToPlay,w=e.companyLogoFallbackUrl,x=g.M.getCanBeConsumed(e.video),I=x.canNavigate,F=x.canConsume,L=i.t.isObject(null==d?void 0:d.params)?null==d?void 0:d.params:{},T=Object.assign(Object.assign({},e.analyticsOptions),{entity:g.M.getAnalyticsEntity(s)}),M=v.h.showFavouriteButton(e.video,C),S=g.M.isVideo(s),A=g.M.getRating(e.video),z=(a=(0,Q.L)({delay:100}),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,r,o,c=[],l=!0,s=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=r.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(a,l)||function(e,t){if(e){if("string"==typeof e)return $(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?$(e,t):void 0}}(a,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),V=z[0],G=z[1]&&F&&N,_=Object.assign(Object.assign({},e.analyticsData),{id:s.id,name:s.name}),Z=Object.assign(Object.assign({},T),{actionType:r.Vw.Click,descriptor:r._S.Thumbnail});return n.createElement(B.u,{title:g.M.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:""},n.createElement("div",{className:"position-relative rounded-3 overflow-hidden",ref:V},n.createElement(D,{isPlugin:e.isPlugin,className:"rounded-3",appLink:I?d:null,analyticsData:_,analyticsOptions:Z}),M&&n.createElement("div",{className:X.topRightContainer},n.createElement(h,{setFavourite:y,canFavourite:f,video:s,analyticsData:e.analyticsData,analyticsOptions:T})),!I&&n.createElement("div",{className:X.topRightContainer},n.createElement(P,null)),n.createElement("div",{className:"".concat(X.topLeftContainer," d-flex flex-no-wrap")},e.showOwner&&n.createElement(j,{video:s,imageCdnUrl:e.imageCdnUrl}),n.createElement(W,{video:s}),n.createElement(U,{video:s,companyLogoFallbackUrl:w})),n.createElement(b.Z,{data:g.M.getThumbnail(s),appLink:I?d:null,imageType:R.__.Thumbnails,imageOptions:m,preload:E,className:X.gradient,alt:("series"in s&&(null===(t=s.series)||void 0===t?void 0:t.name)?"".concat(s.series.name,": "):"")+s.name,analyticsData:_,analyticsOptions:Z,preventFocus:!0},!(!C||!I)&&n.createElement(u.x,{className:X.playIcon,svgName:p.vn.PlayCircle}),n.createElement(k.oy,{type:k.mS.Video}),n.createElement("div",{className:X.overlayContainer},n.createElement("div",{className:X.overlay},n.createElement("div",{className:"".concat(J(C)," ").concat(X.title)},S&&n.createElement(H.$,{type:e.subTextType,className:"text-shadow clamp-1",video:s,appLink:null,analyticsOptions:null}),n.createElement("span",{className:"h6 text-reset text-shadow clamp-1"},g.M.getTitle(s))),n.createElement(O,{video:s}),C&&n.createElement(c.c,{className:"mt-1"},g.M.isVideo(s)&&n.createElement(n.Fragment,null,n.createElement(o.C,{type:o.g.Rating,data:A}),s.hasSubtitle&&n.createElement("span",{className:"badge p-0"},n.createElement(u.x,{svgName:p.vn.CloseCaptionBadge})),n.createElement(o.C,{type:o.g.Interactive,data:s.hasInteractives}),n.createElement(o.C,{type:o.g.DurationExact,data:g.M.getDuration(e.video)})))))),G&&n.createElement(q.r,{key:e.video.id,objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:L.context,contextId:L.contextId,moviesAndTv:L.mtv})))}var Y=a(64446),ee=a(40955);const te={badgeContainer:"fy9Un",sm:"Rb0TL"};function ae(e){var t=g.M.getRating(e.video),a=!!e.audience&&"sm"!==e.size,i=!a&&!e.hideRating&&!!t&&"sm"!==e.size;return!e.hideDuration||a||i?n.createElement(c.c,{className:"".concat(te.badgeContainer," ").concat("sm"===e.size?te.sm:"")},a&&n.createElement(ee.P,{audience:e.audience,className:"bg-white text-dark",border:"dark"}),i&&n.createElement(o.C,{type:o.g.Rating,data:t}),!e.hideDuration&&n.createElement(o.C,{type:e.newDurationStyle?o.g.DurationApproximate:o.g.DurationExact,data:e.duration||g.M.getDuration(e.video)})):n.createElement(n.Fragment,null)}ae.defaultProps={newDurationStyle:!0,size:"md"};var ne=a(22843),ie=a(60318);const re="FAuzc";var oe=function(e){var t,a=e.video,o=e.appLink,c=e.imageOptions,l=e.preload,s=e.setFavourite,d=e.canFavourite,u=e.isHovering,m=e.hoverToPlay,p=e.companyLogoFallbackUrl,y=i.t.isObject(null==o?void 0:o.params)?null==o?void 0:o.params:{},f=g.M.getCanBeConsumed(a),E=f.canNavigate,C=f.canConsume;n.useEffect((function(){return function(){var t;null===(t=e.cleanPortalNode)||void 0===t||t.call(e)}}),[]);var N="position-relative bg-white";e.extraClasses&&(N+=" ".concat(e.extraClasses)),u&&(N+=" rounded-3 shadow-lg");var w=Object.assign(Object.assign({},e.analyticsOptions),{entity:g.M.getAnalyticsEntity(a)}),x=e.isHovering&&C&&m,I=v.h.showFavouriteButton(e.video,u),F=Object.assign(Object.assign({},e.analyticsData),{id:a.id,name:a.name}),L=Object.assign(Object.assign({},w),{actionType:r.Vw.Click,descriptor:r._S.Thumbnail});return n.createElement("div",{className:N},I&&!e.isFocusing&&n.createElement("div",{className:re},n.createElement(h,{setFavourite:s,canFavourite:d,video:a,analyticsData:e.analyticsData,analyticsOptions:w,preventFocus:!0})),!E&&n.createElement("div",{className:re},n.createElement(B.u,{title:g.M.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:""},n.createElement(P,null))),n.createElement("div",{className:"position-relative"},n.createElement(D,{isPlugin:e.isPlugin,className:u?"rounded-top-3":"rounded-3",onClick:function(){var t;return null===(t=e.cleanPortalNode)||void 0===t?void 0:t.call(e)},appLink:E?o:null,analyticsData:F,analyticsOptions:L}),n.createElement(b.Z,{onClick:function(){var t;return null===(t=e.cleanPortalNode)||void 0===t?void 0:t.call(e)},data:g.M.getThumbnail(a),appLink:E?o:null,imageType:R.__.Thumbnails,imageOptions:c,preload:l,alt:("series"in a&&(null===(t=a.series)||void 0===t?void 0:t.name)?"".concat(a.series.name,": "):"")+a.name,analyticsData:F,analyticsOptions:L,preventFocus:!e.hideTitle,appLinkClassName:"position-absolute top-0 start-0 h-100 w-100",imageClassName:u?"rounded-top-3":"rounded-3"},n.createElement(k.oy,{type:k.mS.Video}),n.createElement("div",{className:"p-absolute w-100 h-100 text-white"},n.createElement("div",{className:"".concat("wHY80"," d-flex flex-no-wrap")},e.showOwner&&n.createElement(j,{video:a,imageCdnUrl:e.imageCdnUrl}),n.createElement(W,{video:a}),n.createElement(U,{video:a,companyLogoFallbackUrl:p})),n.createElement(ae,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration}),n.createElement(O,{video:a}))),x&&n.createElement(q.r,{key:e.video.id,objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:y.context,contextId:y.contextId,moviesAndTv:y.mtv,location:"popout-video"})),!u&&!e.hideTitle&&n.createElement(ne.h,Object.assign({},e)),n.createElement("div",{className:"".concat("vMaXP"," ").concat(u?"".concat("tR1jA"," box-shadow"):"")},u&&n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(u?"KJrT1":"")},n.createElement(ne.h,Object.assign({},e)),e.showVideoGuidance&&u&&n.createElement(ie.u,{getClassroomGuideAppLink:e.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,responsiveClassName:"OixHb",containerClassName:"d-flex justify-content-start align-items-center pt-2"})))))};function ce(e){return n.createElement(n.Fragment,null,n.createElement(Y.K,{hoverableComponent:oe,componentProps:e,fixedHoverWidth:400,minHoverWidth:400,analyticsData:Object.assign(Object.assign({},e.analyticsData),{id:e.video.id,name:e.video.name}),analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{entity:g.M.getAnalyticsEntity(e.video)})}))}var le=a(24900),se=a(89682);const de={container:"efxnE",cvIcon:"OJ_ZQ",action:"vWvGn"};function ue(e){return g.M.getCanBeConsumed(e.video).canNavigate?function(e){var t;return!(null===(t=g.M.getCanBeConsumed(e.video))||void 0===t?void 0:t.canConsume)||!(!s.q.isFunction(e.setFavourite)||!s.q.isFunction(e.canFavourite))||!!s.q.isFunction(e.setCheckMarkStatus)}(e)?n.createElement("div",{className:"".concat(de.container," d-flex align-items-center")},n.createElement(h,{setFavourite:e.setFavourite,canFavourite:e.canFavourite,video:e.video,className:de.action,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,preventFocus:!0}),n.createElement(se.I,{status:e.checkMarkStatus,setStatus:e.setCheckMarkStatus,className:de.action})):n.createElement(n.Fragment,null):n.createElement("div",{className:de.container},n.createElement(P,{size:e.size}))}var me=a(68626);const ve={titleOverlay:"krg9f",clip:"MPRU6",large:"g5_ww",interactive:"Zzo3e",titleBelow:"tZjPt",overlayContainer:"EElm1",topLeftContainer:"hrw3I",gradient:"LS_EH"};function pe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,r,o,c=[],l=!0,s=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=r.call(a)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ge(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?ge(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 ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var ye="shared.staticVideoThumbnail";function fe(e){var t,a=e.video,i=e.subTextAppLink,o=e.textPosition,c=e.appLink,s=o===me.z.Overlay,d=g.M.getCanBeConsumed(e.video).canNavigate,u="";return s?(u=ve.titleOverlay,d&&(g.M.isClip(a)&&(u+=" "+ve.clip),g.M.isInteractive(a)&&(u+=" "+ve.interactive))):u=ve.titleBelow,n.createElement("div",{className:u},g.M.isVideo(a)&&n.createElement(H.$,{type:e.subTextType,className:s?"text-shadow clamp-1":"clamp-2",video:a,appLink:s?null:i,analyticsOptions:{location:r.LZ.VideoThumbnail}}),s||!d?n.createElement("span",{className:"h6 text-reset clamp-1"},null!==(t=a.name)&&void 0!==t?t:l.T.getPhrase(ye,"videoUnavailable")):n.createElement(T.F,{className:"h6 text-reset clamp-2",appLink:c},a.name))}function Ee(e){var t,a,o=e.video,c=e.appLink,l=e.textPosition,s=e.imageOptions,d=e.setFavourite,u=e.preload,m=e.hoverToPlay,p=i.t.isObject(null==c?void 0:c.params)?null==c?void 0:c.params:{},y=pe((0,Q.X)(),2),f=y[0],E=y[1],h=pe((0,Q.L)({delay:100}),2),C=h[0],N=h[1],w=g.M.getCanBeConsumed(o),x=w.canNavigate,I=w.canConsume,F=N&&I&&m,L=Object.assign(Object.assign({},e.analyticsOptions),{entity:g.M.getAnalyticsEntity(o)}),T=!!c&&!e.hideMask&&x,M=g.M.getPrivacyReasoning(e.video,e.showSignIn),S=Object.assign(Object.assign({},e.analyticsData),{id:o.id,name:o.name}),A=Object.assign(Object.assign({},L),{actionType:r.Vw.Click,descriptor:r._S.Thumbnail});return n.createElement(B.u,{title:M,spanHack:!0,spanHackClassName:""},n.createElement("div",{className:(a="position-relative",a+=c&&x?" cursor-pointer":"",e.extraClasses&&(a+=" ".concat(e.extraClasses)),l===me.z.Overlay&&(a+=" rounded overflow-hidden"),a),ref:function(e){f.current=e,C.current=e}},n.createElement(D,{isPlugin:e.isPlugin,className:"sm"===e.size?"rounded":"rounded-3",appLink:x?c:null,analyticsData:S,analyticsOptions:A}),n.createElement(ue,{video:o,checkMarkStatus:e.checkMarkStatus,setCheckMarkStatus:e.setCheckMarkStatus,setFavourite:d,canFavourite:function(){var t;return(null===(t=e.canFavourite)||void 0===t?void 0:t.call(e,e.video))&&v.h.showFavouriteButton(o,E)},analyticsData:e.analyticsData,analyticsOptions:L,size:e.size}),n.createElement(b.Z,{data:g.M.getThumbnail(o),appLink:x?c:null,onClick:x?e.onClick:void 0,imageType:R.__.Thumbnails,imageOptions:s,preload:u,className:function(){var t="overflow-hidden ".concat("sm"===e.size?"rounded":"rounded-3");return e.imageClassName&&(t+=" ".concat(e.imageClassName)),l===me.z.Overlay&&(t+=" ".concat(ve.gradient)),t}(),alt:("series"in o&&(null===(t=o.series)||void 0===t?void 0:t.name)?"".concat(o.series.name,": "):"")+o.name,analyticsData:S,analyticsOptions:A,preventFocus:!0},T&&n.createElement(le.z,{type:le.O.Video,size:e.size}),n.createElement(k.oy,{type:k.mS.Video}),n.createElement("div",{className:ve.overlayContainer},l===me.z.Overlay&&n.createElement(fe,Object.assign({},e)),n.createElement("div",{className:"".concat(ve.topLeftContainer," d-flex flex-no-wrap")},e.showOwner&&n.createElement(j,{video:o,imageCdnUrl:e.imageCdnUrl}),n.createElement(W,{video:o,size:e.size}),n.createElement(U,{video:o,companyLogoFallbackUrl:e.companyLogoFallbackUrl,size:e.size})),n.createElement(O,{video:o}),n.createElement(ae,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration,newDurationStyle:e.newDurationStyle,size:e.size}))),F&&n.createElement(q.r,{key:e.video.id,objectId:e.video.id,objectTypeId:e.video.typeId,mode:"hover",context:p.context,contextId:p.contextId,moviesAndTv:p.mtv}),l===me.z.Below&&n.createElement(fe,Object.assign({},e))))}function he(e){switch(e.type){case"static":return n.createElement(Ee,Object.assign({},e));case"cosmetic":return n.createElement(Ee,Object.assign({},e,{hoverToPlay:!1}));case"expandable":return n.createElement(K,Object.assign({},e));case"popout":return n.createElement(ce,Object.assign({},e));default:return}}he.defaultProps={hideRating:!0,size:"md",hoverToPlay:!0}},61150:(e,t,a)=>{a.d(t,{y:()=>v});var n=a(32735),i=a(23481),r=a(83914),o=a(5960),c=a(4594),l=a(35223);const s={topLeftContainer:"iwBld",draft:"QBpxh",badge:"KcvGx",svg:"gW733",text:"QiH5Q",sm:"tn2BH"};var d=i.T.encloseNamespace("shared.typeBadge");function u(e){switch(e){case c.E.Clip:return l.vn.Clip;case c.E.Interactive:return l.vn.Interactive;case c.E.Resource:return l.vn.Resources;default:return""}}function m(e,t){switch(e){case c.E.Clip:return"bg-dark-blue";case c.E.Interactive:return t===o.X.Draft?s.draft:"bg-green";case c.E.Resource:return"bg-indigo";default:return""}}function v(e){var t="".concat(s.badge," rounded-pill text-white ps-0 ").concat("sm"===e.size?s.sm:"");return n.createElement("div",{className:e.inContainer?"":s.topLeftContainer},n.createElement("div",{className:"".concat(t," ").concat(m(e.typeId,e.status))},n.createElement(r.x,{className:"svg-container d-block ".concat(s.svg),size:"sm"===e.size?r.S.Small:r.S.Standard,svgName:u(e.typeId)}),n.createElement("span",{className:s.text},function(e){switch(e){case c.E.Clip:return d("clip");case c.E.Interactive:return d("interactive");case c.E.Resource:return d("resource");default:return""}}(e.typeId))))}v.default={size:"md"}},38647:(e,t,a)=>{a.d(t,{m:()=>s});var n=a(32735),i=a(83914),r=a(76177),o=a(26361),c=a(35223),l=a(31908);function s(e){if(!e.yearGroups)return n.createElement(n.Fragment,null);var t=o.l.mapRestrictionToText(e.video._restrictions,e.yearGroups);return l.M.getCanBeConsumed(e.video).canConsume&&t?n.createElement(r.u,{spanHack:!0,spanHackClassName:e.className||"d-inline-block ps-1",title:t,placement:e.tooltipPlacement||"top"},n.createElement(i.x,{svgName:c.vn.Lock,size:"sm"===e.size?i.S.Small:i.S.Standard})):n.createElement(n.Fragment,null)}},60318:(e,t,a)=>{a.d(t,{u:()=>h});var n=a(32735),i=a(23481),r=a(65858),o=a(83914),c=a(36848);const l={tag:"OjHQZ",icon:"SS2zL",disabled:"eGiNR",active:"kD1xM"};function s(e){var t,a;return e.appLink?n.createElement(c.F,{appLink:e.appLink,analyticsData:e.appLinkAnalyticsData,analyticsOptions:e.appLinkAnalyticsOptions,className:"\n p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer\n text-decoration-none ".concat(null===(t=e.theme)||void 0===t?void 0:t.container," ").concat(l.tag," ").concat(e.active?l.active:"","\n ")},n.createElement(d,Object.assign({},e))):n.createElement("div",{className:"p-1 pe-2 rounded-pill d-inline-flex align-items-center ".concat(null===(a=e.theme)||void 0===a?void 0:a.container," ").concat(l.tag," ").concat(l.disabled)},n.createElement(d,Object.assign({},e)))}function d(e){var t;return n.createElement(n.Fragment,null,n.createElement(o.x,{className:"".concat(l.icon," rounded-circle bg-").concat(e.iconVariant," text-white"),svgName:e.svgName}),n.createElement("span",{className:"ps-1 text-nowrap user-select-none ".concat(null===(t=e.theme)||void 0===t?void 0:t.tabLabel)},e.text))}var u=a(35223),m=a(31908),v="shared.classroomGuideTag";function p(e){var t,a,o;return!e.video||m.M.isInteractive(e.video)?n.createElement(n.Fragment,null):e.video.glance?n.createElement(s,{theme:{container:"classroom-guide-tag",tabLabel:"classroom-guide-tag-label"},svgName:u.vn.GraduationCap,iconVariant:"navy",text:i.T.getPhrase(v,"classroomGuide"),appLink:e.appLink,appLinkAnalyticsData:Object.assign({glanceId:null===(t=e.video.glance)||void 0===t?void 0:t.id,totalPointsOfInterest:null===(o=null===(a=e.video.pointsOfInterest)||void 0===a?void 0:a.data)||void 0===o?void 0:o.length,videoGuidanceType:"classroom-guide"},e.analyticsData),appLinkAnalyticsOptions:Object.assign({actionType:r.Vw.Click,entity:m.M.getAnalyticsEntity(e.video)},e.analyticsOptions)}):n.createElement(n.Fragment,null)}var g="shared.interactivesTag";function y(e){var t;if(!m.M.showInteractivesGuidance(e.video))return n.createElement(n.Fragment,null);var a=!m.M.isInteractive(e.video)&&((null===(t=e.video.interactives)||void 0===t?void 0:t.data.length)||0);return n.createElement(s,{svgName:u.vn.Interactive,iconVariant:"green",text:i.T.getPhrase(g,"interactives",{smartCount:a}),appLink:e.appLink,appLinkAnalyticsData:Object.assign({videoGuidanceType:"interactive",videoGuidanceTotalItems:a},e.analyticsData),appLinkAnalyticsOptions:Object.assign({actionType:r.Vw.Click,entity:m.M.getAnalyticsEntity(e.video)},e.analyticsOptions)})}var f="shared.resourcesTag";function E(e){if(!m.M.showResourcesGuidance(e.video))return n.createElement(n.Fragment,null);var t,a,o,c=(t=e.video,m.M.isInteractive(t)?0:((null===(a=t.resources)||void 0===a?void 0:a.data.length)||0)+((null===(o=t.links)||void 0===o?void 0:o.data.length)||0));return n.createElement(s,{svgName:u.vn.Resources,iconVariant:"indigo",text:i.T.getPhrase(f,"resources",{smartCount:c}),appLink:e.appLink,appLinkAnalyticsData:Object.assign({videoGuidanceType:"resource",videoGuidanceTotalItems:c},e.analyticsData),appLinkAnalyticsOptions:Object.assign({actionType:r.Vw.Click,entity:m.M.getAnalyticsEntity(e.video)},e.analyticsOptions)})}function h(e){var t,a,i,r=m.M.showInteractivesGuidance(e.video)&&m.M.showResourcesGuidance(e.video);return n.createElement("div",{className:"".concat(e.containerClassName," ").concat(r?e.responsiveClassName:"")},n.createElement(p,{appLink:null===(t=e.getClassroomGuideAppLink)||void 0===t?void 0:t.call(e,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),n.createElement(E,{appLink:null===(a=e.getResourceGuidanceAppLink)||void 0===a?void 0:a.call(e,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),n.createElement(y,{appLink:null===(i=e.getInteractiveGuidanceAppLink)||void 0===i?void 0:i.call(e,e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}))}},10439:(e,t,a)=>{a.d(t,{r:()=>c});var n=a(32735),i=a(17082),r=a(35429);const o={hoverContainer:"TzWQw",hovering:"gdTcW"};function c(e){var t,a=(0,r.g)();if(null===(t=a.useInitialize)||void 0===t||t.call(a,e),!a.hasProvider)return n.createElement(n.Fragment,null);if("picture-in-picture"===a.mode)return n.createElement(n.Fragment,null);if("hover"===e.mode&&a.isOnPlayPage)return n.createElement(n.Fragment,null);if("default"===a.mode||"play-page"===e.location)return n.createElement(i.t0,{node:a.portalNode});var c=a.started,l="rounded-3";"popout-video"===e.location&&(l="rounded-top-3");var s="".concat(o.hoverContainer," ").concat(c?o.hovering:""," ").concat(l," overflow-hidden");return n.createElement("div",{className:s},n.createElement(i.t0,{node:a.portalNode}))}},68626:(e,t,a)=>{var n;a.d(t,{z:()=>n}),function(e){e[e.Below=1]="Below",e[e.Overlay=2]="Overlay",e[e.Independent=3]="Independent"}(n||(n={}))}}]);
|
|
2
|
-
//# sourceMappingURL=4591-6ac8b2c443-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/4591-6ac8b2c443-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx","file:///app/packages/libs/shared/src/components/badges/BadgeListContainer.tsx","file:///app/packages/libs/shared/src/components/check-mark-button/check-mark-button.scss","file:///app/packages/libs/shared/src/components/check-mark-button/CheckMarkButton.tsx","file:///app/packages/libs/shared/src/components/mask/mask.scss","file:///app/packages/libs/shared/src/components/mask/Mask.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-text/thumbnail-text.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-text/ThumbnailText.tsx","file:///app/packages/libs/shared/src/components/favourite-button/favourite-button.scss","file:///app/packages/libs/shared/src/components/favourite-button/FavouriteButton.tsx","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/videos/VideoWatchProgressBar.tsx","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/video-thumbnail-bottom-bar.scss","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/VideoThumbnailBottomBar.tsx","file:///app/packages/libs/shared/src/components/thumbnails/lite-owner-avatar/lite-owner-avatar.scss","file:///app/packages/libs/shared/src/components/thumbnails/lite-owner-avatar/LiteOwnerAvatar.tsx","file:///app/packages/libs/shared/src/components/thumbnails/plugin-hover/plugin-hover.scss","file:///app/packages/libs/shared/src/components/thumbnails/plugin-hover/PluginHover.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/padlock/thumbnail-padlock.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-company/thumbnail-company-logo.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo.tsx","file:///app/packages/libs/shared/src/components/video-type-badge/VideoTypeBadge.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/expandable/expandable-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/expandable/ExpandableVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-badges/video-thumbnail-badges.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-badges/VideoThumbnailBadges.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/popout/popout-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/popout/PopoutVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/video-thumbnail-actions.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/VideoThumbnailActions.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/static/static-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/static/StaticVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/VideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/type-badge/type-badge.scss","file:///app/packages/libs/shared/src/components/type-badge/TypeBadge.tsx","file:///app/packages/libs/shared/src/components/video-list/components/restriction-padlock/RestrictionPadlock.tsx","file:///app/packages/libs/shared/src/components/video-guidance/tag/video-guidance-tag.scss","file:///app/packages/libs/shared/src/components/video-guidance/tag/VideoGuidanceTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/classroom-guide/ClassroomGuideTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/interactives/InteractivesTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/resources/ResourcesTag.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-guidance/VideoItemGuidance.tsx","file:///app/packages/libs/shared/src/context/player-context/components/global-player-consumer.scss","file:///app/packages/libs/shared/src/context/player-context/components/GlobalPlayerConsumer.tsx","file:///app/packages/libs/shared/src/enums/ThumbnailTextPosition.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Audience } from 'libs/shared/interfaces';\n\nimport styles from './audience-label.scss';\n\ntype AudienceBorderColour = 'dark' | 'white';\n\ninterface AudienceLabelProps {\n audience: Audience;\n border: AudienceBorderColour;\n className?: string;\n}\n\nexport function AudienceLabel(props: AudienceLabelProps): JSX.Element {\n if (!props.audience)\n return <></>;\n\n // Note: the audience-label class is applied so that parent components can override styling, and Online can style this component\n return (\n <div\n className={`audience-label border rounded-pill d-inline-block px-2 text-nowrap \n ${'border-' + props.border} ${props.className ? props.className : ''}`}\n >\n {props.audience.name}\n </div>\n );\n}\n\ninterface AudienceLabelListProps {\n audiences: Audience[];\n border: AudienceBorderColour;\n}\n\nexport function AudienceLabelList(props: AudienceLabelListProps): JSX.Element {\n if (!props.audiences || !props.audiences.length)\n return <></>;\n\n return (\n <>\n {props.audiences.map((a, idx) => (\n <span key={idx} className={styles.audienceLabelListItem}>\n <AudienceLabel audience={a} border={props.border} />\n </span>\n ))}\n </>\n );\n}","import * as React from 'react';\n\nimport styles from './badge.scss';\n\ninterface BadgeListContainerProps {\n className?: string;\n}\n\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\n let className = `d-flex align-items-center badge-list ${styles.minHeight}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return (\n <div className={className}>\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"unchecked\":\"bup9I\",\"outline\":\"ealw_\",\"checked\":\"A1Ov0\",\"checkMark\":\"c14lI\"};","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DivButton } from '../div-button/DivButton';\n\nimport styles from './check-mark-button.scss';\n\nexport enum CheckMarkStatus {\n None = 'None',\n Complete = 'Complete',\n Incomplete = 'Incomplete'\n}\n\nexport type SetCheckMarkStatusFunc = (status: CheckMarkStatus) => Promise<void>;\n\ninterface CheckMarkButtonProps {\n setStatus: SetCheckMarkStatusFunc;\n status: CheckMarkStatus;\n style?: 'outline' | 'filled';\n className?: string;\n disabled?: boolean;\n}\n\nCheckMarkButton.defaultProps = {\n style: 'filled'\n};\n\nexport function CheckMarkButton(props: CheckMarkButtonProps): JSX.Element {\n // Use local state so that changes are reflected immediately.\n const [ isComplete, setIsComplete ] = React.useState(props.status === CheckMarkStatus.Complete);\n\n React.useEffect(() => {\n setIsComplete(props.status === CheckMarkStatus.Complete);\n }, [props.status]);\n\n let className = `cursor-pointer rounded-circle ${isComplete ? styles.checked : styles.unchecked}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (props.style === 'outline')\n className += ` ${styles.outline}`;\n\n function shouldRender(): boolean {\n return (\n !!props.status &&\n props.status !== CheckMarkStatus.None &&\n FunctionHelper.isFunction(props.setStatus)\n );\n }\n\n function onClick(): void {\n const shouldComplete = !isComplete;\n\n setIsComplete(shouldComplete);\n\n const newStatus = shouldComplete ? CheckMarkStatus.Complete : CheckMarkStatus.Incomplete;\n\n props.setStatus(newStatus).catch(() => {\n setIsComplete(!shouldComplete);\n });\n }\n\n if (!shouldRender())\n return <></>;\n\n return (\n <DivButton className={className} onClick={onClick} disabled={props.disabled}>\n <SvgContainer\n svgName={cvSvgLibrary.Tick}\n className={`svg-container ${styles.checkMark}`}\n />\n </DivButton>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mask\":\"qpc7L\",\"small\":\"L8Oxs\",\"video\":\"b8kJW\",\"playlist\":\"eo2p2\",\"maskContainer\":\"lpwag\"};","import * as React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './mask.scss';\n\nexport enum MaskType {\n Video,\n Playlist,\n Series\n}\n\nfunction getClassByType(type: MaskType): string {\n if (type === MaskType.Video)\n return styles.video;\n\n if (type === MaskType.Playlist)\n return styles.playlist;\n\n return '';\n}\n\nfunction getSvgType(type: MaskType): string {\n if (type === MaskType.Video)\n return cvSvgLibrary.PlayCircle;\n\n return '';\n}\n\ntype MaskSize = 'sm' | 'md';\n\ninterface MaskProps {\n type: MaskType;\n size?: MaskSize;\n}\n\nMask.defaults = {\n size: 'md'\n};\n\nexport function Mask(props: MaskProps): JSX.Element {\n const { type, size } = props;\n\n const typeClass = getClassByType(type);\n const svgType = getSvgType(type);\n\n return (\n <div className={`${styles.maskContainer} ${size === 'sm' ? styles.small : ''}`}>\n <div className={ styles.mask }></div>\n <SvgContainer svgName={svgType} className={ typeClass } />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"r70GR\",\"titleContainer\":\"rULXI\",\"seriesTitleBox\":\"h9k1p\",\"badgeContainer\":\"QaDDX\",\"audienceBadge\":\"hvsne\"};","import React from 'react';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PopoutVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './thumbnail-text.scss';\n\ntype VideoThumbnailTextProps = Pick<PopoutVideoThumbnailProps, 'video'|'appLink'|'subTextAppLink'|'yearGroups'|'subTextType'>\n\nexport function ThumbnailText(props: VideoThumbnailTextProps): JSX.Element {\n const { video, appLink, subTextAppLink } = props;\n const { canNavigate } = VideoHelper.getCanBeConsumed(video);\n\n return (\n <div className={`mt-2 ${styles.container}`}>\n <div className={`d-flex flex-column ${styles.titleContainer}`}>\n {VideoHelper.isVideo(video) && (\n <VideoSubText\n type={props.subTextType}\n className={`text-truncate ${styles.seriesTitleBox}`}\n video={video}\n appLink={subTextAppLink}\n analyticsOptions={{ location: LocationContext.VideoThumbnail }}\n />\n )}\n \n <h2 className='h6'>\n <AppLink className='text-reset clamp-2 align-middle' appLink={canNavigate ? appLink : null}>\n {video.name}\n <RestrictionPadlock\n video={props.video}\n yearGroups={props.yearGroups}\n size='sm'\n />\n </AppLink>\n </h2>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"favourited\":\"t0svX\",\"favouriteButton\":\"CFRo3\",\"heart\":\"ZMMQu\",\"heartOutline\":\"truFo\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CanFavouriteFunc, FavouriteFunc, VideoTypes } from 'libs/shared/interfaces';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './favourite-button.scss';\n\nconst namespace = 'shared.favouriteButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FavouriteButtonProps {\n video: VideoTypes;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n className?: string;\n analyticsData?: HashObject,\n analyticsOptions?: AnalyticsOptions\n preventFocus?: boolean;\n}\n\nexport function FavouriteButton(props: FavouriteButtonProps): JSX.Element {\n const alerts = useAlerts();\n\n const initialState = FavouriteHelper.isFavouritedByCurrentUser(props.video);\n\n // Use local state so that changes are reflected immediately.\n const [ isFavourite, setIsFavourite ] = React.useState(initialState);\n\n React.useEffect(() => {\n setIsFavourite(initialState);\n }, [initialState]);\n\n const flexClasses = 'd-flex align-items-center justify-content-center';\n let className = `${flexClasses} cursor-pointer ${styles.favouriteButton} ${isFavourite ? styles.favourited : ''}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n function onClick(): void {\n const shouldFavourite = !isFavourite;\n\n function onError(): void {\n function getErrorPhraseKey(): string {\n if (VideoHelper.isClip(props.video))\n return shouldFavourite ? 'favouriteClipError' : 'unfavouriteClipError';\n\n if (VideoHelper.isInteractive(props.video))\n return shouldFavourite ? 'favouriteInteractiveError' : 'unfavouriteInteractiveError';\n\n return shouldFavourite ? 'favouriteVideoError' : 'unfavouriteVideoError';\n }\n\n alerts.error(getPhrase(getErrorPhraseKey()));\n setIsFavourite(!shouldFavourite);\n }\n\n setIsFavourite(shouldFavourite);\n props.setFavourite(props.video, shouldFavourite, null, onError, props.analyticsData, props.analyticsOptions);\n }\n\n if (!FunctionHelper.isFunction(props.setFavourite) || !FunctionHelper.isFunction(props.canFavourite))\n return <></>;\n\n // Don't render until we know the state of isFavourite\n if (!props.canFavourite(props.video))\n return <></>;\n\n return (\n <DivButton className={className} onClick={onClick} tabIndex={props.preventFocus ? -1 : undefined}>\n {/* We have the two svgs because they get swapped out on hover by the styles */}\n <SvgContainer\n svgName={cvSvgLibrary.Heart}\n className={`svg-container ${styles.heart}`}\n />\n <SvgContainer\n svgName={cvSvgLibrary.HeartOutline}\n className={`svg-container ${styles.heartOutline}`}\n />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoWatchProgressBarProps {\n video: Video;\n}\n\nexport function VideoWatchProgressBar(props: VideoWatchProgressBarProps): JSX.Element {\n const progress = VideoHelper.getVideoProgress(props.video);\n\n const watchPercentage = progress && props.video.duration\n && progress / props.video.duration * 100000;\n\n if (!watchPercentage)\n return <></>;\n\n return <div className='bg-primary h-100' style={{ width: `${watchPercentage}%` }} />;\n}","// extracted by mini-css-extract-plugin\nexport default {\"bottomBar\":\"YnXtZ\"};","import React from 'react';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { VideoWatchProgressBar } from './videos/VideoWatchProgressBar';\n\nimport styles from './video-thumbnail-bottom-bar.scss';\n\ninterface VideoThumbnailBottomBarProps {\n video: VideoTypes;\n}\n\nexport function VideoThumbnailBottomBar(props: VideoThumbnailBottomBarProps): JSX.Element {\n if (!VideoHelper.isVideo(props.video)) {\n return <></>;\n }\n\n return (\n <div className={styles.bottomBar}>\n <VideoWatchProgressBar video={props.video} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"std\":\"ct8Ht\",\"sm\":\"dvCes\",\"stdIcon\":\"iy0pu\",\"smIcon\":\"Z_mZf\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { ClickViewPlayLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './lite-owner-avatar.scss';\n\ninterface LiteOwnerAvatarProps {\n video: VideoTypes;\n imageCdnUrl: string;\n size?: VideoItemSize;\n}\n\nexport function LiteOwnerAvatar(props: LiteOwnerAvatarProps): JSX.Element {\n if (!VideoHelper.isInteractive(props.video) && !VideoHelper.isClip(props.video))\n return <></>;\n\n if (!props.video._liteOwner && !props.video._isClickViewCurated?.value)\n return <></>;\n\n if (props.video._isClickViewCurated?.value) {\n return (\n <div className={`${props.size === 'sm' ? styles.sm : styles.std} me-1 rounded-circle position-relative bg-white`}>\n <SvgContainer2 className={`me-1 ${props.size === 'sm' ? styles.smIcon : styles.stdIcon}`}>\n <ClickViewPlayLogo />\n </SvgContainer2>\n </div>\n );\n }\n\n return (\n <div className={`${props.size === 'sm' ? styles.sm : styles.std} me-1`}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.video._liteOwner.name, props.video._liteOwner.surname)}\n imageUrl={props.video._liteOwner.avatar?.url}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pluginHover\":\"h4RQa\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './plugin-hover.scss';\n\nconst namespace = 'shared.pluginHover';\n\ninterface PluginHoverProps {\n isPlugin: boolean;\n className?: string;\n onClick?: () => void;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport function PluginHover(props: PluginHoverProps): JSX.Element {\n if (!props.isPlugin)\n return <></>;\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n onClick={props.onClick}\n className={`\n position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer\n ${styles.pluginHover}\n ${props.className ? props.className : ''}\n `}\n >\n <span className='position-absolute top-50 start-50 translate-middle text-nowrap h4 text-white'>\n <Text namespace={namespace} phrase='embed' />\n </span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"padlock\":\"w4cg8\",\"sm\":\"JpIYd\"};","import React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './thumbnail-padlock.scss';\n\ninterface ThumbnailPadlockProps {\n size?: VideoItemSize;\n}\n\nexport function ThumbnailPadlock(props: ThumbnailPadlockProps): JSX.Element {\n const svgSize = props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard;\n\n return (\n <div className={`${styles.padlock} ${props.size === 'sm' ? styles.sm : ''} bg-white cursor-default d-flex align-items-center justify-content-center`}>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={svgSize} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"OA9ft\",\"sm\":\"fyo2J\"};","import React from 'react';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Tooltip } from '../../tooltip/Tooltip';\n\nimport styles from './thumbnail-company-logo.scss';\n\ninterface ThumbnailCompanyLogoProps {\n companyLogoFallbackUrl: string;\n video: VideoTypes;\n size?: VideoItemSize;\n}\n\nThumbnailCompanyLogo.defaultProps = {\n size: 'md'\n};\n\nexport function ThumbnailCompanyLogo(props: ThumbnailCompanyLogoProps): JSX.Element {\n if (!VideoHelper.isVideo(props.video) || !props.companyLogoFallbackUrl)\n return <></>;\n\n const company = props.video.productionCompanies?.data?.[0];\n const url = ImageHelper.createUrl(company?.logo?.url ?? props.companyLogoFallbackUrl, { size: ImageSize.Small });\n \n if (!url)\n return <></>;\n\n return (\n <div>\n <Tooltip\n title={company?.name}\n spanHack\n >\n <div\n className={`${styles.logo} ${props.size === 'sm' ? styles.sm : ''}`}\n style={{\n backgroundImage: `url(${url})`\n }}\n />\n </Tooltip>\n </div>\n );\n}","import React from 'react';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces/VideoTypes';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { TypeBadge } from '../type-badge/TypeBadge';\n\ninterface VideoTypeBadgeProps {\n video: VideoTypes;\n size?: VideoItemSize;\n}\n\nVideoTypeBadge.default = {\n size: 'md'\n};\n\nexport function VideoTypeBadge(props: VideoTypeBadgeProps): JSX.Element {\n if (VideoHelper.isClip(props.video))\n return <TypeBadge typeId={MasterType.Clip} size={props.size} inContainer />;\n\n if (VideoHelper.isInteractive(props.video))\n return (\n <TypeBadge\n typeId={MasterType.Interactive}\n status={props.video.status}\n size={props.size}\n inContainer\n />\n );\n\n return <></>;\n}","// extracted by mini-css-extract-plugin\nexport default {\"overlayContainer\":\"qu3A3\",\"topLeftContainer\":\"gjhMe\",\"topRightContainer\":\"XAfZW\",\"overlay\":\"NTrtm\",\"downScale\":\"puKcM\",\"title\":\"_6FukN\",\"gradient\":\"rXzR8\",\"playIcon\":\"dndOA\",\"videoProgress\":\"yhWf4\",\"badgeContainer\":\"AtgmC\",\"clipProgress\":\"E2egN\",\"interactiveProgress\":\"WycwR\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { LiteOwnerAvatar } from 'libs/shared/components/thumbnails/lite-owner-avatar/LiteOwnerAvatar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { ThumbnailPadlock } from 'libs/shared/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock';\nimport { ThumbnailCompanyLogo } from 'libs/shared/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo';\nimport { ExpandableVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './expandable-video-thumbnail.scss';\n\nfunction getTitleClass(hovering: boolean): string {\n let className = 'mb-1';\n\n if (hovering) {\n className += styles.downScale;\n }\n \n return className;\n}\n\nexport function ExpandableVideoThumbnail(props: ExpandableVideoThumbnailProps): JSX.Element {\n const {\n video, appLink, imageOptions, setFavourite, canFavourite,\n preload, hovering, hoverToPlay, companyLogoFallbackUrl\n } = props;\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n\n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showFavouriteButton = FavouriteHelper.showFavouriteButton(props.video, hovering);\n const isVideo = VideoHelper.isVideo(video);\n\n const rating = VideoHelper.getRating(props.video);\n\n const [ thumbnailHoverRef, isThumbnailHovering ] = useHoverIntent<HTMLDivElement>({ delay: 100 });\n\n const showThumbnailPreviewVideo = isThumbnailHovering && canConsume && hoverToPlay;\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <Tooltip title={VideoHelper.getPrivacyReasoning(props.video)} spanHack spanHackClassName=''>\n <div className='position-relative rounded-3 overflow-hidden' ref={thumbnailHoverRef}>\n <PluginHover\n isPlugin={props.isPlugin}\n className='rounded-3'\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n\n {showFavouriteButton &&\n <div className={styles.topRightContainer}>\n <FavouriteButton\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n />\n </div>\n }\n {/* top right */}\n {!canNavigate && (\n <div className={styles.topRightContainer}>\n <ThumbnailPadlock />\n </div>\n )}\n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {props.showOwner && <LiteOwnerAvatar video={video} imageCdnUrl={props.imageCdnUrl} />}\n\n <VideoTypeBadge video={video} />\n\n <ThumbnailCompanyLogo video={video} companyLogoFallbackUrl={companyLogoFallbackUrl} />\n </div>\n\n <BaseImage\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n className={styles.gradient}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {!!(hovering && canNavigate) && (\n <SvgContainer className={styles.playIcon} svgName={cvSvgLibrary.PlayCircle} />\n )}\n\n <ImageFallback type={ImageFallbackType.Video} />\n <div className={styles.overlayContainer}>\n <div className={styles.overlay}>\n <div className={`${getTitleClass(hovering)} ${styles.title}`}>\n {isVideo && (\n <VideoSubText\n type={props.subTextType}\n className='text-shadow clamp-1'\n video={video}\n appLink={null}\n analyticsOptions={null}\n />\n )}\n\n <span className='h6 text-reset text-shadow clamp-1'>\n {VideoHelper.getTitle(video)}\n </span>\n </div>\n\n <VideoThumbnailBottomBar video={video} />\n\n {hovering && (\n <BadgeListContainer className='mt-1'>\n {VideoHelper.isVideo(video) && (\n <>\n <Badge\n type={BadgeType.Rating}\n data={rating}\n />\n {video.hasSubtitle && (\n <span className='badge p-0'>\n <SvgContainer svgName={cvSvgLibrary.CloseCaptionBadge} />\n </span>\n )}\n <Badge\n type={BadgeType.Interactive}\n data={video.hasInteractives}\n />\n <Badge\n type={BadgeType.DurationExact}\n data={VideoHelper.getDuration(props.video)}\n />\n </>\n )}\n </BadgeListContainer>\n )}\n </div>\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n />\n }\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"badgeContainer\":\"fy9Un\",\"sm\":\"Rb0TL\"};","import React from 'react';\n\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Audience, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './video-thumbnail-badges.scss';\n\ninterface VideoThumbnailBadgesProps {\n video?: Video;\n audience?: Audience;\n hideRating?: boolean;\n hideDuration?: boolean;\n newDurationStyle?: boolean;\n size?: VideoItemSize;\n duration?: number;\n}\n\nVideoThumbnailBadges.defaultProps = {\n newDurationStyle: true,\n size: 'md'\n};\n\nexport function VideoThumbnailBadges(props: VideoThumbnailBadgesProps): JSX.Element {\n const rating = VideoHelper.getRating(props.video);\n\n const showAudience = !!props.audience && props.size !== 'sm';\n const showRating = !showAudience && !props.hideRating && !!rating && props.size !== 'sm';\n\n if (props.hideDuration && !showAudience && !showRating)\n return <></>;\n\n return (\n <BadgeListContainer className={`${styles.badgeContainer} ${props.size === 'sm' ? styles.sm : ''}`}>\n {showAudience && (\n <AudienceLabel\n audience={props.audience}\n className='bg-white text-dark'\n border='dark'\n />\n )}\n {showRating && (\n <Badge\n type={BadgeType.Rating}\n data={rating}\n />\n )}\n {!props.hideDuration && (\n <Badge\n type={props.newDurationStyle ? BadgeType.DurationApproximate : BadgeType.DurationExact}\n data={props.duration || VideoHelper.getDuration(props.video)}\n />\n )}\n </BadgeListContainer>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"topLeftContainer\":\"wHY80\",\"details\":\"vMaXP\",\"isHovering\":\"tR1jA\",\"videoGuidanceTags\":\"KJrT1\",\"responsiveGuidance\":\"OixHb\",\"dropdown\":\"oZXV7\",\"show\":\"EiQ04\",\"topRightContainer\":\"FAuzc\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { HoverableProps, HoverToPortalContainer } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { LiteOwnerAvatar } from 'libs/shared/components/thumbnails/lite-owner-avatar/LiteOwnerAvatar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { ThumbnailPadlock } from 'libs/shared/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock';\nimport { VideoThumbnailBadges } from 'libs/shared/components/thumbnails/thumbnail-badges/VideoThumbnailBadges';\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { PopoutVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ThumbnailCompanyLogo } from '../../thumbnail-company/ThumbnailCompanyLogo';\n\nimport styles from './popout-video-thumbnail.scss';\n\ntype PopoutVideoProps = HoverableProps & PopoutVideoThumbnailProps;\n\nconst PopoutVideo = (props: PopoutVideoProps): JSX.Element => {\n const {\n video, appLink, imageOptions, preload, setFavourite, canFavourite,\n isHovering, hoverToPlay, companyLogoFallbackUrl\n } = props;\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(video);\n\n React.useEffect(() => {\n return () => {\n props.cleanPortalNode?.();\n };\n }, []);\n\n let className = 'position-relative bg-white';\n\n if (props.extraClasses)\n className += ` ${props.extraClasses}`;\n if (isHovering)\n className += ` rounded-3 shadow-lg`;\n \n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showThumbnailPreviewVideo = props.isHovering && canConsume && hoverToPlay;\n const showFavouriteButton = FavouriteHelper.showFavouriteButton(props.video, isHovering);\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <div className={className}>\n {showFavouriteButton && !props.isFocusing && (\n <div className={styles.topRightContainer}>\n <FavouriteButton\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n preventFocus\n />\n </div>\n )}\n\n {!canNavigate && (\n <div className={styles.topRightContainer}>\n <Tooltip title={VideoHelper.getPrivacyReasoning(props.video)} spanHack spanHackClassName=''>\n <ThumbnailPadlock />\n </Tooltip>\n </div>\n )}\n\n <div className='position-relative'>\n <PluginHover\n isPlugin={props.isPlugin}\n className={isHovering ? 'rounded-top-3' : 'rounded-3'}\n onClick={() => props.cleanPortalNode?.()}\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n <BaseImage\n onClick={() => props.cleanPortalNode?.()}\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus={!props.hideTitle}\n appLinkClassName='position-absolute top-0 start-0 h-100 w-100'\n imageClassName={isHovering ? 'rounded-top-3' : 'rounded-3'}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n <div className='p-absolute w-100 h-100 text-white'>\n\n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {props.showOwner && <LiteOwnerAvatar video={video} imageCdnUrl={props.imageCdnUrl} />}\n \n <VideoTypeBadge video={video} />\n \n <ThumbnailCompanyLogo video={video} companyLogoFallbackUrl={companyLogoFallbackUrl} />\n </div>\n\n {/* bottom right */}\n <VideoThumbnailBadges\n video={props.video}\n audience={props.audience}\n hideRating={props.hideRating}\n hideDuration={props.hideDuration}\n />\n\n {/* bottom */}\n <VideoThumbnailBottomBar video={video} />\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n location='popout-video'\n />\n }\n </div>\n\n {!isHovering && !props.hideTitle && (\n <ThumbnailText {...props}/>\n )}\n \n <div className={`${styles.details} ${isHovering ? `${styles.isHovering} box-shadow` : ''}`}>\n {isHovering && (\n <>\n <div className={`${isHovering ? styles.videoGuidanceTags : ''}`}>\n <ThumbnailText {...props}/>\n\n {(props.showVideoGuidance && isHovering) && (\n <VideoItemGuidance\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n responsiveClassName={styles.responsiveGuidance}\n containerClassName={`d-flex justify-content-start align-items-center pt-2`}\n />\n )}\n </div>\n </>\n )}\n </div>\n </div>\n );\n};\n\n\nexport function PopoutVideoThumbnail(props: PopoutVideoThumbnailProps): JSX.Element {\n return (\n <>\n <HoverToPortalContainer<PopoutVideoThumbnailProps>\n hoverableComponent={PopoutVideo}\n componentProps={props}\n fixedHoverWidth={400}\n minHoverWidth={400}\n analyticsData={{\n ...props.analyticsData,\n id: props.video.id,\n name: props.video.name\n }}\n analyticsOptions={{\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(props.video)\n }}\n />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"efxnE\",\"cvIcon\":\"OJ_ZQ\",\"action\":\"vWvGn\"};","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { CheckMarkButton, CheckMarkStatus, SetCheckMarkStatusFunc } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { CanFavouriteFunc, FavouriteFunc, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ThumbnailPadlock } from './padlock/ThumbnailPadlock';\n\nimport styles from './video-thumbnail-actions.scss';\n\nfunction hasActions(props: VideoThumbnailActionsProps): boolean {\n if (!VideoHelper.getCanBeConsumed(props.video)?.canConsume)\n return true;\n\n if (FunctionHelper.isFunction(props.setFavourite) && FunctionHelper.isFunction(props.canFavourite))\n return true;\n\n if (FunctionHelper.isFunction(props.setCheckMarkStatus))\n return true;\n\n return false;\n}\n\ninterface VideoThumbnailActionsProps {\n video: VideoTypes;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n checkMarkStatus?: CheckMarkStatus;\n setCheckMarkStatus?: SetCheckMarkStatusFunc;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n size?: VideoItemSize;\n}\n\nexport function VideoThumbnailActions(props: VideoThumbnailActionsProps): JSX.Element {\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n if (!canNavigate) {\n return (\n <div className={styles.container}>\n <ThumbnailPadlock size={props.size} />\n </div>\n );\n }\n \n if (!hasActions(props))\n return <></>;\n\n return (\n <div className={`${styles.container} d-flex align-items-center`}>\n <FavouriteButton\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n video={props.video}\n className={styles.action}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n preventFocus\n />\n\n <CheckMarkButton\n status={props.checkMarkStatus}\n setStatus={props.setCheckMarkStatus}\n className={styles.action}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"titleOverlay\":\"krg9f\",\"clip\":\"MPRU6\",\"large\":\"g5_ww\",\"interactive\":\"Zzo3e\",\"titleBelow\":\"tZjPt\",\"overlayContainer\":\"EElm1\",\"topLeftContainer\":\"hrw3I\",\"gradient\":\"LS_EH\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Mask, MaskType } from 'libs/shared/components/mask/Mask';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { LiteOwnerAvatar } from 'libs/shared/components/thumbnails/lite-owner-avatar/LiteOwnerAvatar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { VideoThumbnailActions } from 'libs/shared/components/thumbnails/thumbnail-actions/VideoThumbnailActions';\nimport { VideoThumbnailBadges } from 'libs/shared/components/thumbnails/thumbnail-badges/VideoThumbnailBadges';\nimport { ThumbnailCompanyLogo } from 'libs/shared/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo';\nimport { StaticVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useHover, useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './static-video-thumbnail.scss';\n\nconst namespace = 'shared.staticVideoThumbnail';\n\nfunction ThumbnailText(props: StaticVideoThumbnailProps): JSX.Element {\n const { video, subTextAppLink, textPosition, appLink } = props;\n\n const textIsOverlayed = textPosition === ThumbnailTextPosition.Overlay;\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n let className = '';\n\n if (textIsOverlayed) {\n className = styles.titleOverlay;\n\n if (canNavigate) {\n if (VideoHelper.isClip(video))\n className += ' ' + styles.clip;\n if (VideoHelper.isInteractive(video))\n className += ' ' + styles.interactive;\n }\n } else {\n className = styles.titleBelow;\n }\n\n return (\n <div className={className}>\n {VideoHelper.isVideo(video) &&\n <VideoSubText\n type={props.subTextType}\n className={textIsOverlayed ? 'text-shadow clamp-1' : 'clamp-2'}\n video={video}\n appLink={!textIsOverlayed ? subTextAppLink : null}\n analyticsOptions={{ location: LocationContext.VideoThumbnail }}\n />\n }\n\n {(textIsOverlayed || !canNavigate)\n ? (\n <span className={`h6 text-reset clamp-1`}>\n {video.name ?? LanguageService.getPhrase(namespace, 'videoUnavailable')}\n </span>\n ) : (\n <AppLink className='h6 text-reset clamp-2' appLink={appLink}>\n {video.name}\n </AppLink>\n )\n }\n </div>\n );\n}\n\nexport function StaticVideoThumbnail(props: StaticVideoThumbnailProps): JSX.Element {\n const { video, appLink, textPosition, imageOptions, setFavourite, preload, hoverToPlay } = props;\n\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n\n const [ hoverRef, isHovering ] = useHover<HTMLDivElement>();\n const [ hoverIntentRef, isHoveringIntentionally ] = useHoverIntent<HTMLDivElement>({ delay: 100 });\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(video);\n\n function setHoverRefs(r: HTMLDivElement) {\n hoverRef.current = r;\n hoverIntentRef.current = r;\n }\n\n const showThumbnailPreviewVideo = isHoveringIntentionally && canConsume && hoverToPlay;\n\n function canFavourite(): boolean {\n return props.canFavourite?.(props.video) && FavouriteHelper.showFavouriteButton(video, isHovering);\n }\n\n function getContainerClass(): string {\n let className = 'position-relative';\n\n className += (appLink && canNavigate) ? ' cursor-pointer' : '';\n\n if (props.extraClasses)\n className += ` ${props.extraClasses}`;\n\n if (textPosition === ThumbnailTextPosition.Overlay)\n className += ` rounded overflow-hidden`;\n\n return className;\n }\n\n function getThumbnailClass(): string {\n let className = `overflow-hidden ${props.size === 'sm' ? 'rounded' : 'rounded-3'}`;\n\n if (props.imageClassName)\n className += ` ${props.imageClassName}`;\n\n if (textPosition === ThumbnailTextPosition.Overlay)\n className += ` ${styles.gradient}`;\n \n return className;\n }\n\n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showMask = !!appLink && !props.hideMask && canNavigate;\n const tooltip = VideoHelper.getPrivacyReasoning(props.video, props.showSignIn);\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <Tooltip title={tooltip} spanHack spanHackClassName=''>\n <div className={getContainerClass()} ref={setHoverRefs}>\n <PluginHover\n isPlugin={props.isPlugin}\n className={props.size === 'sm' ? 'rounded' : 'rounded-3'}\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n\n <VideoThumbnailActions\n video={video}\n checkMarkStatus={props.checkMarkStatus}\n setCheckMarkStatus={props.setCheckMarkStatus}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n size={props.size}\n />\n\n <BaseImage\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n onClick={canNavigate ? props.onClick : undefined}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n className={getThumbnailClass()}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {showMask && (\n <Mask type={MaskType.Video} size={props.size} />\n )}\n <ImageFallback type={ImageFallbackType.Video} />\n <div className={styles.overlayContainer}>\n {/* overlay */}\n {textPosition === ThumbnailTextPosition.Overlay && <ThumbnailText {...props} />}\n \n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {props.showOwner && <LiteOwnerAvatar video={video} imageCdnUrl={props.imageCdnUrl} />}\n \n <VideoTypeBadge video={video} size={props.size} />\n\n <ThumbnailCompanyLogo\n video={video}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n size={props.size}\n />\n </div>\n\n {/* bottom */}\n <VideoThumbnailBottomBar video={video} />\n \n {/* bottom right */}\n <VideoThumbnailBadges\n video={props.video}\n audience={props.audience}\n hideRating={props.hideRating}\n hideDuration={props.hideDuration}\n newDurationStyle={props.newDurationStyle}\n size={props.size}\n />\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n />\n }\n\n {textPosition === ThumbnailTextPosition.Below && <ThumbnailText {...props} />}\n </div>\n </Tooltip>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus, SetCheckMarkStatusFunc } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Audience, CanFavouriteFunc, FavouriteFunc, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport { ExpandableVideoThumbnail } from './expandable/ExpandableVideoThumbnail';\nimport { PopoutVideoThumbnail } from './popout/PopoutVideoThumbnail';\nimport { StaticVideoThumbnail } from './static/StaticVideoThumbnail';\n\ninterface BaseVideoThumbnailProps {\n video: VideoTypes;\n imageOptions: ImageOptions;\n appLink: Core.AppLink;\n onClick?: () => void;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n preload?: boolean;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions; // Location context required\n hoverToPlay?: boolean;\n companyLogoFallbackUrl?: string;\n imageCdnUrl?: string;\n isPlugin: boolean;\n showOwner?: boolean;\n isFocusing?: boolean;\n \n /**\n * TODO: Fix whatever this used to do in playlists\n */\n canRemovePrivateVideos?: boolean;\n subTextType?: VideoSubTextType;\n subTextAppLink?: Core.AppLink;\n}\n\nexport interface ExpandableVideoThumbnailProps extends BaseVideoThumbnailProps {\n type: 'expandable';\n newDurationStyle?: boolean;\n hovering: boolean;\n}\n\nexport interface PopoutVideoThumbnailProps extends BaseVideoThumbnailProps {\n type: 'popout';\n hideDuration: boolean;\n extraClasses?: string;\n audience: Audience;\n imageCdnUrl: string;\n hideRating?: boolean;\n yearGroups: YearGroup[];\n hideTitle?: boolean;\n showVideoGuidance: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\ninterface BaseStaticVideoThumbnailProps extends BaseVideoThumbnailProps {\n textPosition: ThumbnailTextPosition;\n extraClasses?: string;\n imageClassName?: string;\n size: 'sm' | 'md';\n hideMask?: boolean;\n showSignIn?: boolean;\n setCheckMarkStatus?: SetCheckMarkStatusFunc;\n checkMarkStatus?: CheckMarkStatus;\n videoTypeBadgeSize?: 'sm' | 'std';\n hideDuration?: boolean;\n audience?: Audience;\n newDurationStyle?: boolean;\n hideRating?: boolean;\n}\n\ninterface PureStaticVideoThumbnailProps extends BaseStaticVideoThumbnailProps {\n type: 'static';\n}\n\n/**\n * Allows us to have loose types when we only want to display a thumbnail\n * without any of the functionality - Sha\n */\ninterface CosmeticVideoThumbnailProps extends Partial<BaseStaticVideoThumbnailProps> {\n type: 'cosmetic';\n}\n\nexport type StaticVideoThumbnailProps = PureStaticVideoThumbnailProps | CosmeticVideoThumbnailProps;\n\nexport type VideoThumbnailProps = ExpandableVideoThumbnailProps |\n StaticVideoThumbnailProps |\n PopoutVideoThumbnailProps |\n CosmeticVideoThumbnailProps;\n\nVideoThumbnail.defaultProps = {\n hideRating: true,\n size: 'md',\n hoverToPlay: true\n};\n\nexport function VideoThumbnail(props: VideoThumbnailProps): JSX.Element {\n switch (props.type) {\n case 'static':\n return <StaticVideoThumbnail {...props} />;\n case 'cosmetic':\n // No hover to play for cosmetic use of VideoThumbnail\n return <StaticVideoThumbnail {...props} hoverToPlay={false} />;\n case 'expandable':\n // Expandable thumbnails show metadata on hover. Static display the duration and don't expand on hover\n return <ExpandableVideoThumbnail {...props} />;\n case 'popout':\n return <PopoutVideoThumbnail {...props} />;\n default:\n return;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"topLeftContainer\":\"iwBld\",\"draft\":\"QBpxh\",\"badge\":\"KcvGx\",\"svg\":\"gW733\",\"text\":\"QiH5Q\",\"sm\":\"tn2BH\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './type-badge.scss';\n\nconst namespace = 'shared.typeBadge';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getText(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Clip:\n return getPhrase('clip');\n case MasterType.Interactive:\n return getPhrase('interactive');\n case MasterType.Resource:\n return getPhrase('resource');\n default:\n return '';\n }\n}\n\nfunction getIcon(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Clip:\n return cvSvgLibrary.Clip;\n case MasterType.Interactive:\n return cvSvgLibrary.Interactive;\n case MasterType.Resource:\n return cvSvgLibrary.Resources;\n default:\n return '';\n }\n}\n\nfunction getColourClass(typeId: MasterType, status: CurationStatus): string {\n switch (typeId) {\n case MasterType.Clip:\n return 'bg-dark-blue';\n case MasterType.Interactive:\n return status === CurationStatus.Draft ? styles.draft : 'bg-green';\n case MasterType.Resource:\n return 'bg-indigo';\n default:\n return '';\n }\n}\n\ninterface TypeBadgeProps {\n typeId: MasterType;\n status?: CurationStatus;\n size?: 'sm' | 'md';\n inContainer?: boolean;\n}\n\nTypeBadge.default = {\n size: 'md'\n};\n\nexport function TypeBadge(props: TypeBadgeProps): JSX.Element {\n const baseClasses = `${styles.badge} rounded-pill text-white ps-0 ${props.size === 'sm' ? styles.sm : ''}`;\n\n return (\n <div className={props.inContainer ? '' : styles.topLeftContainer}>\n <div className={`${baseClasses} ${getColourClass(props.typeId, props.status)}`}>\n <SvgContainer\n className={`svg-container d-block ${styles.svg}`}\n size={props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard}\n svgName={getIcon(props.typeId)}\n />\n <span className={styles.text}>\n {getText(props.typeId)}\n </span>\n </div>\n </div>\n );\n}","import React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface RestrictionPadlockProps {\n tooltip?: string;\n className?: string;\n tooltipPlacement?: Placement\n size?: VideoItemSize;\n video: VideoTypes;\n yearGroups: YearGroup[];\n}\n\nexport function RestrictionPadlock(props: RestrictionPadlockProps): JSX.Element {\n if (!props.yearGroups)\n return <></>;\n\n const title = RestrictionHelper.mapRestrictionToText(props.video._restrictions, props.yearGroups);\n const { canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n if (!canConsume || !title)\n return <></>;\n\n return (\n <Tooltip\n spanHack\n spanHackClassName={props.className || 'd-inline-block ps-1'}\n title={title}\n placement={props.tooltipPlacement || 'top'}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Lock}\n size={props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard}\n />\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"OjHQZ\",\"icon\":\"SS2zL\",\"disabled\":\"eGiNR\",\"active\":\"kD1xM\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport { AppLink } from '../../app-link/AppLink';\n\nimport styles from './video-guidance-tag.scss';\n\ninterface VideoGuidanceTagProps {\n text: string;\n svgName: string;\n iconVariant: string;\n active?: boolean;\n appLink?: Core.AppLink;\n appLinkAnalyticsData?: HashObject;\n appLinkAnalyticsOptions?: AnalyticsOptions;\n theme?: {\n tabLabel?: string;\n container?: string;\n }\n}\n\nfunction ContainerWrapper(props: VideoGuidanceTagProps): JSX.Element {\n if (props.appLink) {\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.appLinkAnalyticsData}\n analyticsOptions={props.appLinkAnalyticsOptions}\n className={`\n p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer\n text-decoration-none ${props.theme?.container} ${styles.tag} ${props.active ? styles.active : ''}\n `}\n >\n <VideoGuidanceTag {...props} />\n </AppLink>\n );\n }\n\n return (\n <div\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center ${props.theme?.container} ${styles.tag} ${styles.disabled}`}\n >\n <VideoGuidanceTag {...props} />\n </div>\n );\n}\n\nfunction VideoGuidanceTag(props: VideoGuidanceTagProps): JSX.Element {\n return (\n <>\n <SvgContainer\n className={`${styles.icon} rounded-circle bg-${props.iconVariant} text-white`}\n svgName={props.svgName}\n />\n\n <span className={`ps-1 text-nowrap user-select-none ${props.theme?.tabLabel}`}>\n {props.text}\n </span>\n </>\n );\n}\n\nexport { ContainerWrapper as VideoGuidanceTag };","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.classroomGuideTag';\n\ninterface ClassroomGuideTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function ClassroomGuideTag(props: ClassroomGuideTagProps): JSX.Element {\n if (!props.video || VideoHelper.isInteractive(props.video))\n return <></>;\n\n if (!props.video.glance)\n return <></>;\n\n return (\n <VideoGuidanceTag\n theme={{\n container: 'classroom-guide-tag',\n tabLabel: 'classroom-guide-tag-label'\n }}\n svgName={cvSvgLibrary.GraduationCap}\n iconVariant='navy'\n text={LanguageService.getPhrase(namespace, 'classroomGuide')}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n glanceId: props.video.glance?.id,\n totalPointsOfInterest: props.video.pointsOfInterest?.data?.length,\n videoGuidanceType: 'classroom-guide',\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.interactivesTag';\n\ninterface InteractivesTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function InteractivesTag(props: InteractivesTagProps): JSX.Element {\n if (!VideoHelper.showInteractivesGuidance(props.video))\n return <></>;\n \n const interactiveCount = !VideoHelper.isInteractive(props.video) && (props.video.interactives?.data.length || 0);\n\n return (\n <VideoGuidanceTag\n svgName={cvSvgLibrary.Interactive}\n iconVariant='green'\n text={LanguageService.getPhrase(namespace, 'interactives', { smartCount: interactiveCount })}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n videoGuidanceType: 'interactive',\n videoGuidanceTotalItems: interactiveCount,\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.resourcesTag';\n\nfunction getResourceCount(video: VideoTypes): number {\n if (VideoHelper.isInteractive(video))\n return 0;\n\n return (\n (video.resources?.data.length || 0) +\n (video.links?.data.length || 0)\n );\n}\n\ninterface ResourcesTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function ResourcesTag(props: ResourcesTagProps): JSX.Element {\n if (!VideoHelper.showResourcesGuidance(props.video))\n return <></>;\n\n const resourceCount = getResourceCount(props.video);\n\n return (\n <VideoGuidanceTag\n svgName={cvSvgLibrary.Resources}\n iconVariant='indigo'\n text={LanguageService.getPhrase(namespace, 'resources', { smartCount: resourceCount })}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n videoGuidanceType: 'resource',\n videoGuidanceTotalItems: resourceCount,\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { ClassroomGuideTag } from 'libs/shared/components/video-guidance/classroom-guide/ClassroomGuideTag';\nimport { InteractivesTag } from 'libs/shared/components/video-guidance/interactives/InteractivesTag';\nimport { ResourcesTag } from 'libs/shared/components/video-guidance/resources/ResourcesTag';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemGuidanceProps {\n video: VideoTypes;\n getVideoAppLink?: (video: VideoTypes, opts: GetVideoAppLinkOptions) => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n containerClassName: string;\n responsiveClassName?: string;\n}\n\nexport function VideoItemGuidance(props: VideoItemGuidanceProps): JSX.Element {\n const showingResourcesAndInteractives = (\n VideoHelper.showInteractivesGuidance(props.video) &&\n VideoHelper.showResourcesGuidance(props.video)\n );\n\n return (\n <div className={`${props.containerClassName} ${showingResourcesAndInteractives ? props.responsiveClassName : ''}`}>\n <ClassroomGuideTag\n appLink={props.getClassroomGuideAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n <ResourcesTag\n appLink={props.getResourceGuidanceAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n <InteractivesTag\n appLink={props.getInteractiveGuidanceAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverContainer\":\"TzWQw\",\"hovering\":\"gdTcW\"};","import React from 'react';\nimport { OutPortal } from 'react-reverse-portal';\n\nimport { PlayerInitializationData } from 'libs/shared/context/player-context/interfaces/PlayerContextAction';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\n\nimport styles from './global-player-consumer.scss';\n\ninterface GlobalPlayerConsumerOptions extends PlayerInitializationData {\n location?: 'popout-video' | 'play-page';\n}\n\nexport function GlobalPlayerConsumer(props: GlobalPlayerConsumerOptions): JSX.Element {\n const playerContext = usePlayerContext();\n\n playerContext.useInitialize?.(props);\n\n if (!playerContext.hasProvider)\n return <></>;\n\n if (playerContext.mode === 'picture-in-picture')\n return <></>;\n\n if (props.mode === 'hover' && playerContext.isOnPlayPage)\n return <></>;\n\n if (playerContext.mode === 'default' || props.location === 'play-page')\n return <OutPortal node={playerContext.portalNode} />;\n\n /**\n * When hovering, we don't want to show the player until the video has started playing.\n */\n const shouldShow = playerContext.started;\n\n let rounding = 'rounded-3';\n if (props.location === 'popout-video')\n rounding = 'rounded-top-3';\n\n const className = `${styles.hoverContainer} ${shouldShow ? styles.hovering : ''} ${rounding} overflow-hidden`;\n\n return (\n <div className={className}>\n <OutPortal node={playerContext.portalNode} />\n </div>\n );\n}","export enum ThumbnailTextPosition {\n Below = 1,\n Overlay = 2,\n Independent = 3\n}"],"names":["AudienceLabel","props","audience","className","border","name","BadgeListContainer","children","CheckMarkStatus","CheckMarkButton","status","Complete","isComplete","setIsComplete","style","None","FunctionHelper","setStatus","DivButton","onClick","shouldComplete","newStatus","Incomplete","disabled","SvgContainer","svgName","defaultProps","MaskType","Mask","type","size","typeClass","Video","Playlist","getClassByType","svgType","getSvgType","defaults","ThumbnailText","video","appLink","subTextAppLink","canNavigate","VideoHelper","VideoSubText","subTextType","analyticsOptions","location","AppLink","RestrictionPadlock","yearGroups","getPhrase","LanguageService","FavouriteButton","alerts","initialState","isFavourite","setIsFavourite","setFavourite","canFavourite","shouldFavourite","error","analyticsData","tabIndex","preventFocus","undefined","VideoWatchProgressBar","progress","watchPercentage","duration","width","VideoThumbnailBottomBar","LiteOwnerAvatar","_liteOwner","_isClickViewCurated","value","SvgContainer2","Avatar","imageCdnUrl","initials","UserHelper","surname","imageUrl","avatar","url","PluginHover","isPlugin","Text","namespace","phrase","ThumbnailPadlock","svgSize","S","ThumbnailCompanyLogo","companyLogoFallbackUrl","company","productionCompanies","data","ImageHelper","logo","Tooltip","title","spanHack","backgroundImage","VideoTypeBadge","TypeBadge","typeId","MasterType","inContainer","getTitleClass","hovering","ExpandableVideoThumbnail","imageOptions","preload","hoverToPlay","canConsume","appLinkParams","ObjectHelper","params","eventAnalyticsOptions","entity","showFavouriteButton","isVideo","rating","delay","thumbnailHoverRef","showThumbnailPreviewVideo","id","actionType","descriptor","spanHackClassName","ref","showOwner","BaseImage","imageType","alt","series","ImageFallback","Badge","hasSubtitle","hasInteractives","GlobalPlayerConsumer","key","objectId","objectTypeId","mode","context","contextId","moviesAndTv","mtv","VideoThumbnailBadges","showAudience","showRating","hideRating","hideDuration","newDurationStyle","PopoutVideo","isHovering","cleanPortalNode","extraClasses","isFocusing","hideTitle","appLinkClassName","imageClassName","showVideoGuidance","VideoItemGuidance","getClassroomGuideAppLink","getResourceGuidanceAppLink","getInteractiveGuidanceAppLink","responsiveClassName","containerClassName","PopoutVideoThumbnail","HoverToPortalContainer","hoverableComponent","componentProps","fixedHoverWidth","minHoverWidth","VideoThumbnailActions","setCheckMarkStatus","hasActions","checkMarkStatus","textPosition","textIsOverlayed","ThumbnailTextPosition","StaticVideoThumbnail","hoverRef","hoverIntentRef","isHoveringIntentionally","showMask","hideMask","tooltip","showSignIn","r","current","getThumbnailClass","VideoThumbnail","getIcon","getColourClass","CurationStatus","baseClasses","getText","_restrictions","placement","tooltipPlacement","ContainerWrapper","appLinkAnalyticsData","appLinkAnalyticsOptions","theme","container","active","VideoGuidanceTag","iconVariant","tabLabel","text","ClassroomGuideTag","glance","glanceId","totalPointsOfInterest","pointsOfInterest","length","videoGuidanceType","InteractivesTag","interactiveCount","interactives","smartCount","videoGuidanceTotalItems","ResourcesTag","resourceCount","resources","links","showingResourcesAndInteractives","playerContext","useInitialize","hasProvider","isOnPlayPage","node","portalNode","shouldShow","started","rounding"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/6480-2ee0d11dc5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/general/existing-account-sign-in/ExistingAccountSignIn.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/onboarding-footer.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/OnboardingFooter.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-grid/SubjectPreferenceGrid.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-item/SubjectPreferenceItem.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx","file:///app/packages/libs/shared/src/apps/subjects/contexts/TopicPreferencesContext.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/views/welcome-popup/welcome-popup.scss","file:///app/packages/projects/lite/src/shared/views/welcome-popup/WelcomePopupView.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/topic-preferences/subject-preference-grid/subject-preference-grid.scss"],"sourcesContent":["import React from 'react';\n\ninterface ExistingAccountSignInProps {\n onClick: (e: React.MouseEvent<Element, MouseEvent>) => void;\n link: string;\n}\n\nexport function ExistingAccountSignIn(props: ExistingAccountSignInProps): JSX.Element {\n return (\n <>\n Have a ClickView account already?\n <a href={props.link} className='info-link ms-1' onClick={props.onClick}>\n Sign in\n </a>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyFooter\":\"rIUL4\",\"nonStickyFooter\":\"PuC_F\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nimport styles from './onboarding-footer.scss';\n\nconst SCROLL_TOLERANCE = 50; // value in px\n\ninterface OnboardingFooterProps extends React.PropsWithChildren<unknown> {\n justify?: 'end' | 'center' | 'between';\n}\n\nOnboardingFooter.defaultProps = {\n justify: 'between'\n};\n\nfunction StickyFooter(props: OnboardingFooterProps): JSX.Element {\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`py-3 bg-white ${styles.stickyFooter}`}>\n <div className={`w-75 mx-auto d-flex ${justifyClass}`}>\n {props.children}\n </div>\n </div>\n );\n}\n\nfunction NonStickyFooter(props: OnboardingFooterProps): JSX.Element {\n const mediaQuery = useGetMediaQueryString();\n const widthClass = (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS) ? 'w-100' : 'w-75';\n\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`${widthClass} ${justifyClass} ${styles.nonStickyFooter} d-flex px-3`}>\n {props.children}\n </div>\n );\n}\n\nexport function OnboardingFooter(props: OnboardingFooterProps): JSX.Element {\n const isScrolledToBottom = () => {\n return (window.innerHeight + window.scrollY) >= (document.body.offsetHeight - SCROLL_TOLERANCE);\n };\n\n const [ isSticky, setIsSticky ] = React.useState(false);\n\n React.useEffect(() => setIsSticky(!isScrolledToBottom()), []);\n\n function onViewportChange(): void {\n const shouldSetToSticky = !isScrolledToBottom();\n\n if (isSticky && !shouldSetToSticky) {\n setIsSticky(false);\n return;\n }\n\n if (!isSticky && shouldSetToSticky)\n setIsSticky(true);\n }\n\n const throttledOnViewportChange = FunctionHelper.throttle(onViewportChange, 100);\n\n React.useEffect(() => {\n window.addEventListener('scroll', throttledOnViewportChange);\n return () => window.removeEventListener('scroll', throttledOnViewportChange);\n }, [ isSticky, setIsSticky ]);\n\n useResizeListener(throttledOnViewportChange, throttledOnViewportChange, [ isSticky, setIsSticky ]);\n\n return isSticky\n ? <StickyFooter {...props}>{props.children}</StickyFooter>\n : <NonStickyFooter {...props}>{props.children}</NonStickyFooter>;\n}","import * as React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SubjectPreferenceItem } from 'libs/shared/apps/subjects/components/preferences';\nimport { TopicPreferencesContext } from 'libs/shared/apps/subjects/contexts/TopicPreferencesContext';\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport styles from './subject-preference-grid.scss';\n\nfunction useGetRowItemCapacity(): number {\n const viewportWidth = useGetMediaQueryString();\n\n switch (viewportWidth) {\n case MediaQueryStrings.LG:\n default:\n return 5;\n\n case MediaQueryStrings.MD:\n return 4;\n\n case MediaQueryStrings.SM:\n return 3;\n\n case MediaQueryStrings.XS:\n return 2;\n }\n}\n\nfunction isDisabled(subject: ClassificationPreference, expandedSubject: ClassificationPreference): boolean {\n if (!expandedSubject || subject.id === expandedSubject.id)\n return false;\n\n if (expandedSubject.children.find(child => child.id === subject.id))\n return false;\n\n return true;\n}\n\ninterface SubjectPreferenceGridRowProps extends SubjectPreferenceGridProps {}\n\nfunction SubjectPreferenceGridRow(props: SubjectPreferenceGridRowProps): JSX.Element {\n const { expandedSubject, selectedSubjects: selections } = React.useContext(TopicPreferencesContext);\n\n return (\n <>\n {props.subjects.map(subject => {\n const itemDisabled = isDisabled(subject, expandedSubject);\n\n let clickHandler = props.onSelect;\n\n if (subject.isExpandableOption)\n clickHandler = props.onExpand;\n\n if (itemDisabled)\n clickHandler = props.onCollapse;\n\n if (props.hasSelectedBulk)\n clickHandler = () => {};\n\n return (\n <SubjectPreferenceItem\n key={subject.id}\n subject={subject}\n selected={!props.hasSelectedBulk && selections.includes(subject.id)}\n disabled={props.hasSelectedBulk || itemDisabled}\n onClick={() => clickHandler(subject)}\n hasSelectedBulk={props.hasSelectedBulk}\n />\n );\n })}\n </>\n );\n}\n\ninterface SubjectPreferenceGridProps {\n subjects: ClassificationPreference[];\n onSelect: (subject: Classification) => void;\n onExpand: (subject: Classification) => void;\n onCollapse: (subject: Classification) => void;\n hasSelectedBulk?: boolean;\n}\n\nexport function SubjectPreferenceGrid(props: SubjectPreferenceGridProps): JSX.Element {\n const { subjects, hasSelectedBulk, ...eventHandlers } = props;\n const { expandedSubject } = React.useContext(TopicPreferencesContext);\n\n const itemsPerRow = useGetRowItemCapacity();\n\n /**\n * This is an array of arrays, where each sub-array is a row of classifications.\n * We do this to make sure any sub-grid's of child preference options get rendered in the row\n * directly beneath their parent's row.\n */\n const subjectRows = subjects.reduce((\n acc: ClassificationPreference[][],\n subject: ClassificationPreference,\n index: number\n ) => {\n index % itemsPerRow === 0\n ? acc.push([subject]) // Start a new row\n : ArrayHelper.last(acc).push(subject); // Fill up an existing row\n\n return acc;\n }, []);\n\n return (\n <ul className={styles.grid}>\n {subjectRows.map((row, i) => {\n const isExpanded = expandedSubject && !!row.find(subject => {\n return expandedSubject.id === subject.id && subject.isExpandableOption;\n });\n\n return (\n <React.Fragment key={i}>\n <SubjectPreferenceGridRow\n subjects={row}\n hasSelectedBulk={hasSelectedBulk}\n {...eventHandlers}\n />\n\n {isExpanded && (\n <li className={`${styles.subgrid} m-0`}>\n <SubjectPreferenceGrid\n subjects={expandedSubject.children as ClassificationPreference[]}\n hasSelectedBulk={hasSelectedBulk}\n {...eventHandlers}\n />\n </li>\n )}\n </React.Fragment>\n );\n })}\n </ul>\n );\n}","import * as React from 'react';\n\nimport { PreferenceItem } from 'libs/shared/apps/subjects/components/preferences/preference-item/PreferenceItem';\nimport { TopicPreferencesContext } from 'libs/shared/apps/subjects/contexts/TopicPreferencesContext';\nimport { ClassificationPreference } from 'libs/shared/apps/subjects/interfaces/ClassificationPreference';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\ninterface SubjectPreferenceItemProps {\n subject: ClassificationPreference;\n selected: boolean;\n disabled?: boolean;\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n extraClasses?: string;\n hideStatus?: boolean;\n hasSelectedBulk?: boolean;\n}\n\nexport function SubjectPreferenceItem(props: SubjectPreferenceItemProps): JSX.Element {\n const context = React.useContext(TopicPreferencesContext);\n\n const coverUrl = props.subject.cover ? ImageHelper.createUrl(props.subject.cover.url, { size: ImageSize.Small }) : '';\n\n const childIds = props.subject.isExpandableOption ? props.subject.children.map(child => child.id) : [];\n const selectedChildCount = !props.hasSelectedBulk\n ? context?.selectedSubjects?.filter(selection => childIds.includes(selection)).length\n : 0;\n\n const component = (\n <PreferenceItem\n name={props.subject.name}\n imageUrl={coverUrl}\n onClick={props.onClick}\n isSelected={props.selected}\n isDisabled={props.disabled}\n isExpandable={props.subject.isExpandableOption}\n expand={context?.expandedSubject?.id === props.subject.id}\n selectedChildCount={selectedChildCount}\n extraClasses={props.extraClasses}\n hideStatus={props.hideStatus}\n />\n );\n\n return props.disabled\n ? <span>{component}</span>\n : <Tooltip title={props.subject.name}><span>{component}</span></Tooltip>;\n}","// extracted by mini-css-extract-plugin\nexport default {\"preferenceItem\":\"PSWHa\",\"expandCaret\":\"CCsqs\",\"up\":\"w7N1R\",\"down\":\"mO0Kn\",\"disabled\":\"Oyw2x\",\"selected\":\"Czk2N\",\"noBorder\":\"_e7oe\",\"textBox\":\"pfksF\",\"itemStatus\":\"H4u81\",\"unchecked\":\"iYkPv\",\"green\":\"w5g0e\"};","import * as React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './preference-item.scss';\n\ninterface ExpandableItemStatusProps {\n selectedChildrenCount: number;\n}\n\nexport const ExpandableItemStatus = (props: ExpandableItemStatusProps): JSX.Element => {\n if (!props.selectedChildrenCount)\n return <></>;\n\n return (\n <div className={`${styles.itemStatus} ${styles.green}`}>\n {props.selectedChildrenCount}\n </div>\n );\n};\n\ninterface SelectableItemStatusProps {\n selected: boolean;\n radioButton?: boolean;\n}\n\nexport const SelectableItemStatus = (props: SelectableItemStatusProps): JSX.Element => {\n let svg;\n\n if (props.selected)\n svg = <SvgContainer svgName={cvSvgLibrary.Check} />;\n else if (!props.radioButton)\n svg = <SvgContainer svgName={cvSvgLibrary.Plus} />;\n else\n svg = <> </>;\n\n return (\n <div className={`${styles.itemStatus} ${props.selected ? styles.green : styles.unchecked}`}>\n {svg}\n </div>\n );\n};\n","import React from 'react';\n\nimport { ExpandableItemStatus, SelectableItemStatus } from './PreferenceItemStatus';\n\nimport styles from './preference-item.scss';\n\ninterface PreferenceItemProps {\n name: string;\n imageUrl: string;\n\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void;\n isDisabled?: boolean;\n isSelected: boolean;\n hideStatus?: boolean;\n radioButton?: boolean;\n\n isExpandable?: boolean;\n expand?: boolean;\n selectedChildCount?: number;\n\n extraClasses?: string;\n}\n\nexport function PreferenceItem(props: PreferenceItemProps): JSX.Element {\n function getContainerClass(): string {\n let baseClass = `rounded-3 ${styles.preferenceItem}`;\n\n if (props.extraClasses)\n baseClass += ' ' + props.extraClasses;\n\n if (props.isDisabled)\n baseClass += ' ' + styles.disabled;\n\n if (props.isSelected && !props.isExpandable)\n baseClass += ' ' + styles.selected;\n\n if (props.hideStatus)\n baseClass += ' ' + styles.noBorder;\n\n return baseClass;\n }\n\n const caretClass = `${styles.expandCaret} ${props.expand ? styles.up : styles.down}`;\n\n return (\n <li\n className={getContainerClass()}\n onClick={props.onClick}\n aria-checked={props.isSelected}\n aria-haspopup={props.isExpandable}\n role={props.isExpandable ? 'button' : 'checkbox'}\n style={{ backgroundImage: `url(${props.imageUrl})` }}\n tabIndex={0}\n title={props.name}\n >\n <div className={`${styles.textBox} p-2`}>\n <p className='text-truncate mb-0'>\n {props.name}\n <span className={props.isExpandable ? caretClass : ''} />\n </p>\n\n {!props.hideStatus && (\n <>{props.isExpandable\n ? <ExpandableItemStatus selectedChildrenCount={props.selectedChildCount} />\n : <SelectableItemStatus selected={props.isSelected} radioButton={props.radioButton} />\n }</>\n )}\n </div>\n </li>\n );\n}","import { createContext } from 'react';\n\nimport { ClassificationPreference } from '../interfaces/ClassificationPreference';\n\ninterface TopicPreferencesContextFields {\n selectedSubjects: string[];\n expandedSubject: ClassificationPreference;\n}\n\nexport const TopicPreferencesContext = createContext<TopicPreferencesContextFields>(undefined);","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","// extracted by mini-css-extract-plugin\nexport default {\"preferenceList\":\"oHNZN\",\"preferenceItem\":\"olBqT\",\"largePopup\":\"x3Oot\",\"selectPresentation\":\"b2r5s\",\"switchPresentation\":\"NIIWc\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { ClickDescriptor, EntityType, EventVersion, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ExistingAccountSignIn } from 'libs/shared/apps/sign-up/components/general/existing-account-sign-in/ExistingAccountSignIn';\nimport { PreferenceItem } from 'libs/shared/apps/subjects/components/preferences';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { TopicsConstants } from 'libs/shared/constants/TopicsConstants';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nimport styles from './welcome-popup.scss';\n\nconst namespace = 'settings.welcomePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst PRESERVE_APPLINK_REDIRECTION: HashObject = [\n { application: AppChannels.CONTENT_UPDATES, action: Actions.ContentUpdates.CONTENT_UPDATES },\n { application: AppChannels.MOVIES_AND_TV, action: Actions.MoviesAndTv.HOME }\n].reduce((prev: HashObject, currentAppLink: Core.AppLink) => {\n prev[AppLinkHelper.getAppLinkString(currentAppLink)] = true;\n return prev;\n}, {});\n \ninterface WelcomePopupViewProps {\n closePopup: () => void;\n}\n\nexport function WelcomePopupView(props: WelcomePopupViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState<boolean>(false);\n const [ selectedPresentation, setSelectedPresentation ] = React.useState<Presentation>();\n\n const isMobile = useMediaQuery(MediaQueryStrings.SMDown);\n const alerts = useAlerts();\n\n const {\n availablePresentations,\n setPresentation,\n hasPresentationsLoaded\n } = usePresentation();\n\n const canSelectPresentation = availablePresentations?.length >= TopicsConstants.MULTI_PRESENTATION_THRESHOLD;\n\n function onSuccess(): void {\n AnalyticsHelper.logUserAction(\n { id: selectedPresentation.id },\n {\n actionType: UserAction.Click,\n entity: EntityType.Presentation,\n location: LocationContext.WelcomePopup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: ClickDescriptor.Button,\n eventVersion: EventVersion.V3\n }\n );\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n /**\n * When accessing a top-level landing page that can have multiple alternates depending on the school\n * level, we'll redirect the user to the appropriate page once they've nomnated their school-level\n * preference. In all other cases we'll default to redirecting to Discover.\n */\n if (PRESERVE_APPLINK_REDIRECTION[AppLinkHelper.getAppLinkString(currentAppLink)]) {\n Core.AppLinkHelper.trigger(currentAppLink, { replace: true });\n } else {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n });\n }\n\n setShowSpinner(false);\n props.closePopup();\n }\n\n function onError(): void {\n setShowSpinner(false);\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n function onClick(): Promise<void> {\n setShowSpinner(true);\n \n return setPresentation(selectedPresentation, 'activeAndPreferred')\n .then(onSuccess)\n .catch(onError);\n }\n\n function isDisabled(): boolean {\n if (!canSelectPresentation)\n return false;\n\n return !selectedPresentation;\n }\n\n function onClickSignIn(): void {\n AnalyticsHelper.logUserAction(\n {\n url: Core.AppLinkHelper.getHref({\n application: AppChannels.DEFAULT,\n action: Actions.Default.LOG_IN\n })\n },\n {\n actionType: UserAction.Click,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.SignIn,\n location: LocationContext.WelcomePopup\n }\n );\n }\n\n function getPopupSize(): 'md' | 'lg'| 'sm' {\n if (isMobile)\n return 'sm';\n\n if (availablePresentations?.length > 2)\n return 'lg';\n\n return 'md';\n }\n\n /**\n * If there's only one presentation, we still need to set it in\n * LocalStorage for public users. This is to ensure that they're not displayed\n * the popup each and every time.\n */\n React.useEffect(() => {\n if (!hasPresentationsLoaded || canSelectPresentation)\n return;\n\n setSelectedPresentation(ArrayHelper.first(availablePresentations));\n }, [ canSelectPresentation, hasPresentationsLoaded ]);\n\n const Buttons = () => (\n <PopupButtons>\n <PopupButtons.Submit\n variant='dark'\n onClick={onClick}\n text={getPhrase('cta')}\n showSpinner={showSpinner}\n disabled={isDisabled()}\n className='mx-auto'\n />\n </PopupButtons>\n );\n\n const LoginLink = () => (\n <ExistingAccountSignIn\n link={Core.AppLinkHelper.getHref({ application: AppChannels.DEFAULT, action: Actions.Default.LOG_IN })}\n onClick={onClickSignIn}\n />\n );\n\n const SinglePresentationContent = () => (\n <div className={`${styles.selectPresentation}`}>\n <div className='d-block mx-auto p-4'>\n <img\n src={ImageUrls.SignUp.UPGRADE}\n className='img-fluid'\n alt=''\n />\n </div>\n <h2 className='h4 text-center'>\n <Text\n namespace={namespace}\n phrase='infoPrimary'\n />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='infoSecondary' />\n </p>\n <div className='mt-3'>\n <Buttons />\n </div>\n <LoginLink />\n </div>\n );\n\n const MultiPresentationContent = () => (\n <div className={`${styles.selectPresentation}`}>\n <h2 className='h4 text-center'>\n <Text\n namespace={namespace}\n phrase='infoPrimary'\n />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='infoSecondaryMulti' />\n </p>\n <div className='position-relative'>\n <ul className={`list-unstyled d-flex ${styles.preferenceList}`}>\n {availablePresentations?.map((presentation: Presentation) => {\n if (presentation.type !== PresentationType.Subject)\n return <React.Fragment key={presentation.id}></React.Fragment>;\n\n return (\n <PreferenceItem\n key={presentation.id}\n name={presentation.name}\n imageUrl={ImageHelper.createUrl(presentation.cover?.url, { size: ImageSize.Medium }) || ''}\n onClick={() => setSelectedPresentation(presentation)}\n isSelected={selectedPresentation?.id === presentation.id}\n extraClasses={`${styles.preferenceItem} m-2`}\n radioButton\n />\n );\n })}\n </ul>\n </div>\n <Buttons />\n <LoginLink />\n </div>\n );\n\n if (!hasPresentationsLoaded)\n return <></>;\n\n return (\n <Popup\n title={getPhrase('title')}\n size={getPopupSize()}\n closeButton={!canSelectPresentation}\n closePopup={props.closePopup}\n backdrop={canSelectPresentation ? 'static' : true}\n dialogClassName={SeoConstants.WELCOME_POPUP_SELECTOR}\n centered\n >\n {canSelectPresentation\n ? <MultiPresentationContent />\n : <SinglePresentationContent />\n }\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"grid\":\"X9r1Y\",\"subgrid\":\"TgYhp\"};"],"names":["ExistingAccountSignIn","props","href","link","className","onClick","SCROLL_TOLERANCE","StickyFooter","justifyClass","justify","children","NonStickyFooter","mediaQuery","widthClass","OnboardingFooter","isScrolledToBottom","window","innerHeight","scrollY","document","body","offsetHeight","isSticky","setIsSticky","throttledOnViewportChange","FunctionHelper","shouldSetToSticky","addEventListener","removeEventListener","defaultProps","SubjectPreferenceGridRow","TopicPreferencesContext","expandedSubject","selections","selectedSubjects","subjects","map","subject","itemDisabled","id","find","child","isDisabled","clickHandler","onSelect","isExpandableOption","onExpand","onCollapse","hasSelectedBulk","SubjectPreferenceItem","key","selected","includes","disabled","SubjectPreferenceGrid","eventHandlers","itemsPerRow","useGetRowItemCapacity","subjectRows","reduce","acc","index","push","ArrayHelper","row","i","isExpanded","context","coverUrl","cover","ImageHelper","url","size","childIds","selectedChildCount","filter","selection","length","component","PreferenceItem","name","imageUrl","isSelected","isExpandable","expand","extraClasses","hideStatus","Tooltip","title","ExpandableItemStatus","selectedChildrenCount","SelectableItemStatus","svg","SvgContainer","svgName","radioButton","baseClass","caretClass","role","style","backgroundImage","tabIndex","createContext","undefined","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","namespace","getPhrase","LanguageService","PRESERVE_APPLINK_REDIRECTION","application","action","prev","currentAppLink","WelcomePopupView","showSpinner","setShowSpinner","selectedPresentation","setSelectedPresentation","isMobile","alerts","usePresentation","availablePresentations","setPresentation","hasPresentationsLoaded","canSelectPresentation","TopicsConstants","onSuccess","AnalyticsHelper","actionType","entity","location","workflowPhase","descriptor","eventVersion","ContextService","appLink","replace","closePopup","onError","error","then","onClickSignIn","Buttons","PopupButtons","variant","text","LoginLink","Popup","closeButton","backdrop","dialogClassName","SeoConstants","centered","Text","phrase","presentation","type","PresentationType","src","ImageUrls","alt"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 6741-b2ea5b1492-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6741],{3278:(e,t,n)=>{n.d(t,{z:()=>p});var r=n(32735),a=n(39202),i=n(23481),o=n(65858),c=n(38502),s=n(83345),l=n(40424);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,f,m,h;if(!e.type)return r.createElement(r.Fragment,null);if(e.type===l.Yv.Learner||e.hasStudentExperience)return r.createElement("div",{className:"py-3"},r.createElement("h1",{className:"h2 mb-0"},r.createElement(s.x,{namespace:d,phrase:"heading"})));var v=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:a.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:a.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&v.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:a.C$.getHref(null===(h=e.appLinks)||void 0===h?void 0:h.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),r.createElement("div",{className:"py-3 text-center"},r.createElement(c.r,{tabs:v,className:u.pillTab}))}},28046:(e,t,n)=>{n.d(t,{l:()=>f,v:()=>m});var r=n(39479),a=["pdf"],i=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],p=["srt"],f={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(i,c,d,a,o,s,u).join(",.")),SUBTITLES:".".concat(p.join(",."))},m={getResourceType:function(e){var t=e.toLowerCase();return r.contains(i,t)?"document":r.contains(c,t)?"excel":r.contains(d,t)?"powerpoint":r.contains(a,t)?"pdf":r.contains(o,t)?"text":r.contains(s,t)?"image":r.contains(u,t)?"archive":r.contains(p,t)?"subtitle":""}}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),a=n(49985),i=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},17101:(e,t,n)=>{var r;n.d(t,{n:()=>r}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(r||(r={}))},7198:(e,t,n)=>{n.d(t,{f:()=>a});var r=n(99940),a={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:r.k.POST,data:Object.assign(Object.assign({},e),t)}}}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(53301),a=n.n(r),i=n(28046),o=n(19808),c=n(86613);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}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion,firstName:e.givenName,lastName:e.familyName}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,r){var a,i=[t].concat(function(e){if(Array.isArray(e))return s(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||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}}(a)||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.")}());i.push(n?"student":"staff"),e.role===c.i.Admin&&i.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&i.push(o),i},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return a().isValidFile(t.get("file"),i.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},16741:(e,t,n)=>{n.r(t),n.d(t,{CuratedDiscoverView:()=>ne});var r=n(32735),a=n(23481),i=n(57900),o=n(20354),c=n(2948),s=n(49985),l=n(65858),u=n(75896),d=n(3278),p=n(32624),f=n(16714),m=n(40424),h=n(77843),v=n(23232),g=n(83345),y=n(76177),b=n(35223),w="subjects.discoverDashboardEmptyState",L=a.T.encloseNamespace(w);function E(e){var t,n,i=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===m.GL.Archived;return r.createElement(v.u,null,r.createElement(v.u.Image,{src:e.imageUrl,altText:L("info")}),r.createElement(v.u.Heading,null,r.createElement(g.x,{namespace:w,phrase:"heading"})),r.createElement(v.u.Info,null,r.createElement(g.x,{namespace:w,phrase:"info"})),r.createElement(y.u,{title:i?a.T.getPhrase(w,"archivedCtaTooltip"):"",spanHack:!0},r.createElement(v.u.Cta,{text:a.T.getPhrase(w,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:b.vn.Plus,disabled:i})))}function T(e){var t,n,a=u.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,n,r){var a=h.S.getWidgetParams(n,r,h.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,e.presentation)}var o=e.isReadonly&&!(null==a?void 0:a.length);return r.createElement(r.Fragment,null,r.createElement(d.z,{type:null===(n=e.dashboard)||void 0===n?void 0:n.userType,appLinks:e.headerAppLinks,hasStudentExperience:e.hasPermissions(f.C.StudentExperience),showCalendar:e.showCalendar,active:"forYou"}),a.map((function(t,n){return r.createElement(p.L,{key:t.id,id:t.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,onSubmitFeedback:e.onSubmitFeedback,updatePreferences:e.updatePreferences,yearGroups:e.yearGroups,lazyLoad:e.lazyLoad,dashboardTarget:m.ku.Discover,widgetIndex:n,jobTitle:e.jobTitle,isPreviewing:e.isReadonly,imageUrls:e.imageUrls,settings:e.settings,isPlugin:e.isPlugin,availablePresentations:e.availablePresentations})})),o&&r.createElement(E,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var S=n(38143),A=n(17101),k=n(72639),O=n(12754),N=n(39151),C=n(1666),x=n(80889),P=n(7198),I=n(98064),D=n(61699),U=n(31949),F=n(22902),R=n(79612),j=n(37802),_=n(69454),G=n(52167),B=n(76753),M=n(73417),W=n(99742),H=n(51855),V=n(27638),Z=n(86698),Y=n(85369),z=n(23737),q=n(33192),$=n(48688),K=n(27051);function J(e){return J="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},J(e)}function Q(){Q=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new x(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",h="completed",v={};function g(){}function y(){}function b(){}var w={};l(w,o,(function(){return this}));var L=Object.getPrototypeOf,E=L&&L(L(P([])));E&&E!==n&&r.call(E,o)&&(w=E);var T=b.prototype=g.prototype=Object.create(w);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(a,i,o,c){var s=d(e[a],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==J(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=p;return function(i,o){if(a===m)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var s=O(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function O(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,O(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(J(t)+" is not iterable")}return y.prototype=b,a(T,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},t.awrap=function(e){return{__await:e}},S(A.prototype),l(A.prototype,c,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new A(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(T),l(T,s,"Generator"),l(T,o,(function(){return this})),l(T,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ee=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((r=r.apply(e,t||[])).next())}))},te=a.T.encloseNamespace("dashboard.dashboard");function ne(e){var t,n,a,u,d,p,h,v,g=o.a.useBasicFetch(N.L.config()),y=o.a.useBasicFetch(U.N.currentUser()),b=o.a.useBasicFetch((null===(t=y.data)||void 0===t?void 0:t.isAuthenticated)&&U.N.user(y.data.id)),w=(0,F.T)(),L=w.hasLocalPermissions,E=w.hasPermissions,J=(0,H.G)().isPlugin,ne=o.a.useBasicFetch(L(f.E.ManageDiscoverPreferences)&&y.data&&C.h.customer(y.data.customerId)),re=o.a.useBasicFetch((null===(n=y.data)||void 0===n?void 0:n.isAuthenticated)&&C.h.yearGroups(y.data.customerId)),ae=o.a.useBasicFetch((null===(a=y.data)||void 0===a?void 0:a.isAuthenticated)&&I.D.libraries()),ie=(0,Z.y)().availablePresentations,oe=(0,z.y)({targetType:m.ku.Discover,queryParams:e.queryParams,presentationSlug:e.presentationSlug}),ce=oe.dashboard,se=oe.presentation,le=oe.audiences,ue=o.a.useGetFetchAsync(),de=(0,j.r)(null),pe=(0,V.u)(l.LZ.Dashboard),fe=pe.setFavourite,me=pe.canFavourite,he=(h=(0,c.D)(S.g.AUDIENCE_FILTER,void 0,{storage:i.Z1.SessionStorage}),v=1,function(e){if(Array.isArray(e))return e}(h)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(h,v)||function(e,t){if(e){if("string"==typeof e)return X(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X(e,t):void 0}}(h,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],ve=(0,K.E)(_.T.getAudienceParams(he)),ge=function(e){return+k.p[null==e?void 0:e.learningLevel]===k.p.Level_1?"VariantOne":"VariantTwo"}(se);(0,R.M)(B.CG.getDiscoverMetadata({content:se,phraseContext:{phraseHandler:te,titlePhrase:"pageTitle".concat(ge),descriptionPhrase:"pageDescription".concat(ge)},canonicalLink:q.f.getCanonicalLink(),allowIndexing:q.f.allowIndexing(),hrefLang:q.f.getStaticRouteHrefLang(null==se?void 0:se.learningLevel,ve.discover)}));var ye=(0,Y.N)().showCalendar;return r.createElement("div",{className:"bg-white px-4"},r.createElement(M.T,null),r.createElement(T,{currentUser:y.data,dashboard:ce.data,widgetAppLinks:ve,headerAppLinks:(0,K.u)(),presentation:se,imageCdnUrl:g.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:W.W.Fallbacks.RESOURCE_THUMBNAIL,getWidgetContentRequest:function(){for(var e=$.g.hasTwig(ae.data,y.data),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return x._.discoverWidgetContent.apply(x._,[e].concat(n))},setFavourite:fe,audiences:le.data,canFavourite:me,updatePreferences:function(e,t,n,r){return ee(this,void 0,void 0,Q().mark((function t(){var a,i;return Q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r.filter((function(e){return!e.hidden&&n.find((function(t){return t.id===e.id})).hidden})),i=r.filter((function(e){return!!e.hidden&&!n.find((function(t){return t.id===e.id})).hidden})),!(null==a?void 0:a.length)){t.next=5;break}return t.next=5,ue(D.o.followSubjects(a.map((function(e){return e.id}))));case 5:if(!(null==i?void 0:i.length)){t.next=8;break}return t.next=8,ue(D.o.unfollowSubjects(i.map((function(e){return e.id}))));case 8:return t.abrupt("return",ue(x._.updateWidgetPreferences(e,r.map((function(e){return{id:e.id,index:e.index}})),y.data)));case 9:case"end":return t.stop()}}),t)})))},hasPermissions:E,hasLocalPermissions:L,onSubmitFeedback:E(f.C.CanSubmitFeedback)&&function(e){return ee(this,void 0,void 0,Q().mark((function t(){var n;return Q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,ue(P.f.submitFeedback({type:A.n.Footer,user:G.m.getUserInfo(y.data,ne.data),tags:G.m.getTags(y.data,O.x.Primary,E(f.C.StudentExperience),["discover","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Discover Footer",presentationName:se.description,presentationId:se.id,dashboardName:ce.data.name,dashboardId:ce.data.id}));case 2:return n=t.sent,s.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:se.id,dashboardId:ce.data.id},{actionType:l.Vw.Submit,location:l.LZ.DiscoverFooter,entity:l.py.Feedback,workflowPhase:l.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},yearGroups:re.data,lazyLoad:!q.f.isBot(),showCalendar:ye,jobTitle:null===(p=null===(d=null===(u=b.data)||void 0===u?void 0:u.userProfile)||void 0===d?void 0:d.metadata)||void 0===p?void 0:p.jobTitle,imageUrls:{onboardingAdminBackgroundFull:W.W.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,onboardingAdminBackground:W.W.OnboardingV2.Widget.ADMIN_BACKGROUND,onboardingTeacherBackground:W.W.OnboardingV2.Widget.TEACHER_BACKGROUND},settings:de,isPlugin:J,availablePresentations:ie}))}},27051:(e,t,n)=>{n.d(t,{E:()=>m,u:()=>h});var r=n(75896),a=n(28400),i=n(17475),o=n(183),c=n(14070),s=n(97291),l=n(34181),u=n(22490),d=n(67963),p=n(82431),f="classification-latest-releases";function m(e){return{classification:function(t){return l.L.getAppLink(t,e||{})},videoType:function(e,t){return u.W.getAppLink(e,Object.assign(Object.assign({},t),{context:o.Q.Widget}))},series:p.j.getSeriesAppLink,subText:function(e){return p.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:s.O.PLAYLISTS,action:c.e.Playlists.PLAYLIST,args:[e.id,a.m.slugify(e.name)]}},latestReleases:function(){return{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:s.O.SUBJECT,action:c.e.Subjects.CLASSIFICATION_ALL}},classificationLatestReleases:function(e){return e.id===f?{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,a.m.slugify(e.name)]}},widgetVideoList:function(e,t){return{application:s.O.DASHBOARD,action:c.e.Dashboard.DASHBOARD,args:[e,a.m.slugify(t)]}},watchHistory:function(){return{application:s.O.WATCH_HISTORY,action:c.e.WatchHistory.HOME}},rating:function(e,t){return{application:s.O.SEARCH,action:c.e.Search.HOME,params:{moviesAndTv:!0,rating:i.S.getFrontendParamValue([r.m.first(t),e])}}},company:function(e){return{application:s.O.MOVIES_AND_TV,action:c.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,a.m.slugify(e.name)]}},discover:function(){return{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME}},calendar:function(){return{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,d.u)()[e]},onboardingAppLinks:function(){return(0,d.u)()},classroomGuide:u.W.getClassroomGuideAppLink,interactiveGuidance:u.W.getInteractiveGuidanceAppLink,resourceGuidance:u.W.getResourceGuidanceAppLink}}function h(){return{forYou:{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME},whatsNew:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}}}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(11607),i=n(83914),o=n(83345),c=n(87348),s=n(35223),l="shared.upgradeFeedbackBanner";function u(){var e=(0,c.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?r.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},r.createElement(o.x,{namespace:l,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),r.createElement(a.L,{onClick:n},r.createElement(i.x,{svgName:s.vn.Close,className:"ms-2 svg-container"}))):r.createElement(r.Fragment,null)}},85369:(e,t,n)=>{n.d(t,{N:()=>g});var r=n(32735),a=n(35242),i=n(20354),o=n(27022),c=n(72639),s=n(31949),l=n(37802),u=n(87114),d=n(86698);function p(e){return p="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},p(e)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(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 m(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 h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=p(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=h(h(h(h(h(h({},o.t.AU,[c.p.Level_1]),o.t.US,[c.p.Level_1]),o.t.UK,[c.p.Level_1]),o.t.SCOT,[c.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function g(){var e,t=(0,l.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,c=(0,d.y)({redirectOnError:!0}).activePresentation,p=i.a.useBasicFetch(s.N.currentUser()),m=v[null===(e=p.data)||void 0===e?void 0:e.contentRegion],h=u.i.getMappedPresentationLevel(null==c?void 0:c.learningLevel),g=!(null==m?void 0:m.find((function(e){return e.toString()===(null==h?void 0:h.toString())}))),y=!o&&!n,b=f(r.useState(!y&&!g),2),w=b[0],L=b[1],E=f(r.useState(o||!(null==c?void 0:c.id)),2),T=E[0],S=E[1];return r.useEffect((function(){y||g?L(!1):T||L(!0),S(o||!(null==c?void 0:c.id))}),[n,null==c?void 0:c.id,T]),a.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:T}}},87432:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
-
//# sourceMappingURL=6741-b2ea5b1492-lite.chunk.js.map
|