@clickview/lite 0.72.0 → 0.72.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1109-4f5b0dab9b-lite.chunk.js +2 -0
  3. package/dist/scripts/1109-4f5b0dab9b-lite.chunk.js.map +1 -0
  4. package/dist/scripts/1667-fcdff22585-lite.chunk.js +3 -0
  5. package/dist/scripts/1667-fcdff22585-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{3596-d760a67a58-lite.chunk.js → 3596-89a39d3781-lite.chunk.js} +3 -3
  7. package/dist/scripts/{3596-d760a67a58-lite.chunk.js.map → 3596-89a39d3781-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/3816-ca44792dca-lite.chunk.js +2 -0
  9. package/dist/scripts/3816-ca44792dca-lite.chunk.js.map +1 -0
  10. package/dist/scripts/7601-c1b07b72c6-lite.chunk.js +2 -0
  11. package/dist/scripts/7601-c1b07b72c6-lite.chunk.js.map +1 -0
  12. package/dist/scripts/{bundle-6e723fdeb1.min.js → bundle-23f3b64e36.min.js} +3 -3
  13. package/dist/scripts/{bundle-6e723fdeb1.min.js.map → bundle-23f3b64e36.min.js.map} +1 -1
  14. package/package.json +1 -1
  15. package/dist/scripts/1109-98508a03fe-lite.chunk.js +0 -2
  16. package/dist/scripts/1109-98508a03fe-lite.chunk.js.map +0 -1
  17. package/dist/scripts/1667-ac162f04d0-lite.chunk.js +0 -3
  18. package/dist/scripts/1667-ac162f04d0-lite.chunk.js.map +0 -1
  19. package/dist/scripts/3816-abed23a1ce-lite.chunk.js +0 -2
  20. package/dist/scripts/3816-abed23a1ce-lite.chunk.js.map +0 -1
  21. package/dist/scripts/7601-b439c82e82-lite.chunk.js +0 -2
  22. package/dist/scripts/7601-b439c82e82-lite.chunk.js.map +0 -1
  23. /package/dist/scripts/{1667-ac162f04d0-lite.chunk.js.LICENSE.txt → 1667-fcdff22585-lite.chunk.js.LICENSE.txt} +0 -0
  24. /package/dist/scripts/{3596-d760a67a58-lite.chunk.js.LICENSE.txt → 3596-89a39d3781-lite.chunk.js.LICENSE.txt} +0 -0
  25. /package/dist/scripts/{bundle-6e723fdeb1.min.js.LICENSE.txt → bundle-23f3b64e36.min.js.LICENSE.txt} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.72.0",
3
+ "version": "0.72.2",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1109],{5798:(e,t,n)=>{n.d(t,{b:()=>o});var a=n(32735);const r={globalIdpButton:"tAlj0",globalIdpImage:"O94yo"};function i(e){var t=e.idp,n=e.onClick,i=e.backgroundColour,l=void 0===i?"F8981D":i,o=e.foregroundColour,c=void 0===o?"FFF":o,u=e.last,s=e.isGlobalIdp,d=u?"":"mb-3",m={backgroundColor:"#".concat(t.backgroundColour||l),color:"#".concat(t.foregroundColour||c)},p=s?"btn btn-lg btn-outline-dark w-100 ".concat(d," ").concat(r.globalIdpButton):"btn btn-lg w-100 ".concat(d),g=s?{}:m,b=s?"Continue with ".concat(t.name):t.name;return a.createElement("button",{className:p,style:g,onClick:function(){return n(t)}},s&&t.logoUrl&&a.createElement("img",{src:t.logoUrl,className:r.globalIdpImage,alt:"".concat(t.name," logo")}),b)}const l={divider:"FfyN0"};function o(e){if(!e.idps.length)return a.createElement(a.Fragment,null);function t(t){var n=window.location.pathname+window.location.search,a="/challenge?idp=".concat(t.id)+"&redirectUrl="+encodeURIComponent(n);"attribution"in e&&(a+="&attribution="+encodeURIComponent(e.attribution)),window.location.href=a}return a.createElement("div",{className:"".concat(e.className?e.className:"")},a.createElement("div",{className:"my-3 border-bottom position-relative ".concat(l.divider)}),e.idps.map((function(n,r){return a.createElement(i,{key:r,idp:n,onClick:"onClick"in e?e.onClick:t,attribution:"attribution"in e?e.attribution:null,isGlobalIdp:!0})})))}},53475:(e,t,n)=>{n.d(t,{N:()=>a});var a={globalIdps:function(e,t){return{url:"{gateway}/v1/auth/identity-providers?countryCode=".concat(e,"&product=").concat(t),key:"global:idps"}}}},48015:(e,t,n)=>{n.d(t,{M:()=>o});var a=n(39202),r=n(20354),i=n(39151),l={countryCode:"us",isFallback:!0};function o(){var e,t,n=r.a.useBasicFetch(i.L.geoLocation()),o=null===(t=null===(e=a.Ab.GetQuery())||void 0===e?void 0:e.countryCode)||void 0===t?void 0:t.toLowerCase();return o?{countryCode:o}:n.hasCompleted&&!n.data?l:n.data}},19623:(e,t,n)=>{n.d(t,{P:()=>g});var a=n(32735),r=n(81886),i=n(23481),l=n(5798),o=n(98027),c=n(15611),u=n(83345),s=n(14070),d=n(97291),m="launchpad.signInButtons",p=i.T.encloseNamespace(m);function g(e){a.useEffect((function(){e.skipPrompt&&r.Q.Ab.PageLoad(r.Q.C$.getHref(t))}),[]);var t=function(){var t=r.Q.Ab.GetQuery(),n={};if(e.customerId&&(n.customerId=e.customerId,delete t.customerId),e.skipPrompt&&delete t.skipPrompt,e.redirectUrl)n.redirectUrl=e.redirectUrl;else{var a=r.Q.Ab.SerializeQueryParams(t);n.redirectUrl=r.Q.Ab.GetCurrentPath()+(a?"?"+a:"")}return e.showSignUp&&(n.showSignUp=!0),{application:d.O.DEFAULT,action:s.e.Default.CHALLENGE,params:n}}();return a.createElement(a.Fragment,null,a.createElement(c.F,{className:"btn btn-lg btn-dark w-100 mt-4",appLink:t},a.createElement(u.x,{namespace:m,phrase:e.pageAppLinkString?"signInToWatch":"signIn"})),e.showJoinCode?a.createElement(c.F,{className:"btn btn-link info-link btn-lg w-100 mt-2",appLink:{application:d.O.LAUNCHPAD,action:s.e.Launchpad.JOIN_CLASSROOM_PROMPT}},p("enterCode")):a.createElement(a.Fragment,null,a.createElement(c.F,{className:"btn btn-lg btn-outline-dark w-100 mt-3",appLink:{application:d.O.LAUNCHPAD,action:s.e.SignUp.SIGN_UP,params:{pageAppLinkString:e.pageAppLinkString}}},p("signUp")),a.createElement(l.b,{idps:e.globalIdps,attribution:(0,o.w)()})))}},71109:(e,t,n)=>{n.r(t),n.d(t,{LoginLandingView:()=>L});var a=n(32735),r=n(23481),i=n(20354),l=n(65858),o=n(2786),c=n(26339),u=n(4594),s=n(12754),d=n(53475),m=n(43012),p=n(20768),g=n(1575),b=n(48015),f=n(79612),v=n(31908),h=n(97027),y=n(7179),C=n(33192),k=n(19623),E=n(408);const U={logo:"Je2Pi",formContainer:"MfLVl"};var P=r.T.encloseNamespace("classrooms.loginLanding");function L(e){var t,n,r,L,I=(0,b.M)(),w=i.a.useBasicFetch((null==I?void 0:I.countryCode)&&d.N.globalIdps(I.countryCode,s.x.Primary));(0,f.M)(e.isLoginMetadata?{title:P("title"),description:P("description"),allowIndexing:!0,canonicalLink:C.f.getCanonicalLink()}:{title:P("title")});var N,A,S=(0,y.P)({id:e.objectId,app:(0,y.e)(e.objectType)},l.LZ.Launchpad),O=S.deepLink,T=S.showDeepLink,_=S.onClickDeepLink,j=(0,E.B)().trialAppLinkString,B=(N=e.objectId,A=e.objectType,i.a.useBasicFetch(function(){switch(A){case u.E.Video:return g.R.publicVideo(N);case u.E.Interactive:return p.b.publicInteractiveMetadata(N);case u.E.Clip:return m.e.publicClip(N);default:return null}}()));return e.skipPrompt||B.isFetching||!w.hasCompleted?a.createElement(a.Fragment,null):a.createElement(h.Zf,{title:null===(t=B.data)||void 0===t?void 0:t.name,imageUrl:null===(n=v.M.getThumbnail(B.data))||void 0===n?void 0:n.url,objectType:e.objectType,links:[{text:P("openInApp"),url:O,hide:!T,onClick:_}]},a.createElement("div",{className:"".concat(U.formContainer," m-auto")},a.createElement("div",{className:"".concat(U.logo," mb-4 mx-auto")},a.createElement(o.$S,null)),!!(null===(r=B.data)||void 0===r?void 0:r.name)&&a.createElement("h1",{className:"h3"},v.M.isVideo(B.data)&&a.createElement(c.$,{type:"series",video:B.data,analyticsOptions:{},size:"sm"}),B.data.name),(null===(L=B.data)||void 0===L?void 0:L.description)&&a.createElement("p",{className:"mb-0 clamp-3"},B.data.description),a.createElement(k.P,{customerId:e.customerId,skipPrompt:e.skipPrompt,showJoinCode:e.showJoinCode,redirectUrl:e.redirectUrl,pageAppLinkString:j,showSignUp:e.showSignUp,globalIdps:w.data})))}},408:(e,t,n)=>{n.d(t,{B:()=>l});var a=n(2948),r=n(86702);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(){var e,t,n=(e=(0,a.D)(r.y.OPEN_IN_APP_DATA),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],c=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){u=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(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)?i(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.")}())[0];return{trialAppLinkString:function(){if(n&&["videos","clips","series","playlists","topics","interactives"].includes(n.app)){var e=n.id;switch(n.app){case"videos":return"video:".concat(e);case"playlists":return"playlist:".concat(e);case"series":return"series:".concat(e);case"topics":return"topic:".concat(e);case"interactives":return"interactive:".concat(e);case"clips":return"clip:".concat(e)}}}()}}},97027:(e,t,n)=>{n.d(t,{Hq:()=>d,Zf:()=>g});var a=n(32735),r=n(54610),i=n(4594),l=n(67453),o=n(99742);const c={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],c=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){u=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw r}}return o}}(e,t)||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}}(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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d=[{bgUrl:o.W.LaunchPad.BG_1},{bgUrl:o.W.LaunchPad.BG_2},{bgUrl:o.W.LaunchPad.BG_3},{bgUrl:o.W.LaunchPad.BG_4},{bgUrl:o.W.LaunchPad.BG_5}],m=[{bgUrl:o.W.LaunchPad.PRODUCT.BG_1},{bgUrl:o.W.LaunchPad.PRODUCT.BG_2},{bgUrl:o.W.LaunchPad.PRODUCT.BG_3},{bgUrl:o.W.LaunchPad.PRODUCT.BG_4},{bgUrl:o.W.LaunchPad.PRODUCT.BG_5},{bgUrl:o.W.LaunchPad.PRODUCT.BG_6},{bgUrl:o.W.LaunchPad.PRODUCT.BG_7},{bgUrl:o.W.LaunchPad.PRODUCT.BG_8},{bgUrl:o.W.LaunchPad.PRODUCT.BG_9}];function p(e){switch(e){case i.E.Video:case i.E.Interactive:case i.E.Clip:return c.thumbnail;case i.E.Subject:case i.E.Playlist:return c.cover;case i.E.Series:return c.tallposter;default:return""}}function g(e){var t,n=u(a.useState(!1),2),i=n[0],o=n[1],s=u(a.useState(""),2),d=s[0],g=s[1],b=l.j.createUrl(e.imageUrl,{size:r.h2.Large}),f=m;return a.useEffect((function(){if(!b&&f&&0!==f.length){var e,t=(e=f)[Math.floor(Math.random()*e.length)];t.bgUrl&&g(t.bgUrl)}}),[]),a.useEffect((function(){if(b){var e=new Image;return e.onload=function(){return o(!0)},e.src=b,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(c.left," ").concat(d?"bg-blue d-flex align-items-center":"bg-light")},d?a.createElement("img",{className:"img-fluid",src:d,draggable:!1}):i&&a.createElement(a.Fragment,null,a.createElement("div",{className:c.blur,style:{backgroundImage:"url('".concat(b,"')")}}),a.createElement("div",{className:"".concat(c.imageContainer," ").concat(p(e.objectType))},a.createElement("div",{className:c.imagePosition},a.createElement("img",{className:c.image,src:b,alt:e.title}))))),a.createElement("div",{className:"".concat(c.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(c.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?a.createElement(a.Fragment,{key:t}):a.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
- //# sourceMappingURL=1109-98508a03fe-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1109-98508a03fe-lite.chunk.js","mappings":"kJACA,SAAgB,gBAAkB,QAAQ,eAAiB,SCqBrD,SAAUA,EAAUC,GACxB,IACEC,EAMED,EANFC,IACA,EAKED,EALFE,QAAO,EAKLF,EAJFG,iBAAAA,OAAgB,IAAG,WAAQ,IAIzBH,EAHFI,iBAAAA,OAAgB,IAAG,QAAK,EACxBC,EAEEL,EAFFK,KACAC,EACEN,EADFM,YAGIC,EAAsBF,EAAO,GAAK,OAElCG,EAAoC,CACxCC,gBAAiB,IAAF,OAAMR,EAAIE,kBAAoBA,GAC7CO,MAAO,IAAF,OAAMT,EAAIG,kBAAoBA,IAK/BO,EAAcL,EAAW,4CACUC,EAAmB,YAAI,mBAAsB,2BAC9DA,GAElBK,EAAcN,EANqB,CAAC,EAMME,EAE1CK,EAAcP,EAAc,iBAAH,OAAoBL,EAAIa,MAASb,EAAIa,KAEpE,OACE,0BAAQC,UAAWJ,EAAaK,MAAOJ,EAAaV,QAAS,WAAF,OAAQ,EAAQD,EAAI,GAC5EK,GAAeL,EAAIgB,SAClB,uBAAKC,IAAKjB,EAAIgB,QAASF,UAAW,iBAAuBI,IAAG,UAAKlB,EAAIa,KAAI,WAE1ED,EAGP,CCxDA,SAAgB,QAAU,SCoBpB,SAAUO,EAAWpB,GACzB,IAAKA,EAAMqB,KAAKC,OACd,OAAO,iCAET,SAASpB,EAAQD,GACf,IAAMsB,EAAsBC,OAAOC,SAASC,SAAWF,OAAOC,SAASE,OAKnEC,EAAO,yBAAkB3B,EAAI4B,IAC7B,gBAAkBC,mBAAmBP,GAErC,gBAAiBvB,IACnB4B,GAAQ,gBAAkBE,mBAAmB9B,EAAM+B,cAErDP,OAAOC,SAASG,KAAOA,CACzB,CAEA,OACE,uBAAKb,UAAS,UAAKf,EAAMe,UAAYf,EAAMe,UAAY,KACrD,uBAAKA,UAAS,+CAA0C,aACvDf,EAAMqB,KAAKW,KAAI,SAACC,EAAGC,GAAC,OACnB,gBAACnC,EAAS,CACRoC,IAAKD,EACLjC,IAAKgC,EACL/B,QAAS,YAAaF,EAAQA,EAAME,QAAUA,EAC9C6B,YAAa,gBAAiB/B,EAAQA,EAAM+B,YAAc,KAC1DzB,aAAW,GACX,IAIV,C,mCClDO,IAAM8B,EAAe,CAC1BC,WAAU,SAACC,EAAqBC,GAC9B,MAAO,CACLC,IAAK,oDAAF,OAAsDF,EAAW,oBAAYC,GAChFJ,IAAK,cAET,E,wECJIM,EAAgC,CACpCH,YAAa,KACbI,YAAY,GAGR,SAAUC,I,QACRC,EAAc,kBAAkC,mBAEhDN,EAAmD,QAArC,EAAwB,QAAxB,yBAAwB,eAAEA,mBAAW,eAAEO,cAE3D,OAAIP,EACK,CAAEA,YAAAA,GAEPM,EAAYE,eAAiBF,EAAYG,KACpCN,EAEFG,EAAYG,IACrB,C,yICPMC,EAAY,0BACZC,EAAY,qBAAiCD,GAa7C,SAAUE,EAAclD,GAC5B,aAAgB,WACTA,EAAMmD,YAGX,gBAA4B,eAA2BC,GACzD,GAAG,IAqCH,IAAMA,EAnCN,WACE,IAAMC,EAAe,kBACfC,EAAqB,CAAC,EAgB5B,GAXItD,EAAMuD,aACRD,EAAOC,WAAavD,EAAMuD,kBACnBF,EAAaE,YAMlBvD,EAAMmD,mBACDE,EAAaF,WAElBnD,EAAMwD,YACRF,EAAOE,YAAcxD,EAAMwD,gBACtB,CACL,IAAMC,EAAkB,4BAAwCJ,GAChEC,EAAOE,YAAc,yBAAuCC,EAAmB,IAAMA,EAAmB,GACzG,CAKD,OAHIzD,EAAM0D,aACRJ,EAAOI,YAAa,GAEf,CACLC,YAAa,YACbC,OAAQ,sBACRN,OAAAA,EAEJ,CAEgBO,GAEhB,OACE,gCACE,gBAAC,IAAO,CACN9C,UAAU,iCACVqC,QAASA,GAET,gBAAC,IAAI,CAACJ,UAAWA,EAAWc,OAAQ9D,EAAM+D,kBAAoB,gBAAkB,YAEjF/D,EAAMgE,aACL,gBAAC,IAAO,CACNjD,UAAU,2CACVqC,QAAS,CACPO,YAAa,cACbC,OAAQ,sCAGTX,EAAU,cAEb,gCACE,gBAAC,IAAO,CACNlC,UAAU,yCACVqC,QAAS,CACPO,YAAa,cACbC,OAAQ,mBACRN,OAAQ,CAAES,kBAAmB/D,EAAM+D,qBAGpCd,EAAU,WAEb,gBAAC,IAAU,CAAC5B,KAAMrB,EAAMqC,WAAYN,aAAa,YAK3D,C,mRC5GA,SAAgB,KAAO,QAAQ,cAAgB,SC6B/C,IACMkB,EAAYgB,EAAA,mBADA,2BAsCZ,SAAUC,EAAiBlE,G,YAQzB4C,GAAc,EAAAD,EAAA,KACdN,EAAa,mBACjBO,aAAW,EAAXA,EAAaN,cAAeF,EAAA,aAAwBQ,EAAYN,YAAa6B,EAAA,aAG/E,EAAAC,EAAA,GAAmBpE,EAAMqE,gBAAkB,CACzCC,MAAOrB,EAAU,SACjBsB,YAAatB,EAAU,eACvBuB,eAAe,EACfC,cAAeC,EAAA,sBACb,CAAEJ,MAAOrB,EAAU,WAEvB,IAvDsB0B,EAAkBC,EAuDxC,GAII,EAAAC,EAAA,GAtBK,CACLhD,GAAI7B,EAAM2E,SACVG,KAAK,OAA2B9E,EAAM4E,aAoBH,gBAHrCG,EAAQ,EAARA,SACAC,EAAY,EAAZA,aACAC,EAAe,EAAfA,gBAGMC,GAAuB,EAAAC,EAAA,KAAvBD,mBAEFE,GA/DgBT,EA+DK3E,EAAM2E,SA/DOC,EA+DG5E,EAAM4E,WAjD1C,kBAbP,WACE,OAAQA,GACN,KAAKS,EAAA,QACH,OAAOC,EAAA,cAA0BX,GACnC,KAAKU,EAAA,cACH,OAAOE,EAAA,4BAA8CZ,GACvD,KAAKU,EAAA,OACH,OAAOG,EAAA,aAAwBb,GACjC,QACE,OAAO,KAEb,CAE4Bc,KAmD5B,OAAIzF,EAAMmD,YAAciC,EAAIM,aAAerD,EAAWS,aAC7C,iCAGP,gBAAC6C,EAAA,GAAS,CACRrB,MAAe,QAAR,EAAAc,EAAIrC,YAAI,eAAEjC,KACjB8E,SAA4C,QAAlC,EAAAC,EAAA,eAAyBT,EAAIrC,aAAK,eAAEP,IAC9CoC,WAAY5E,EAAM4E,WAClBkB,MAAO,CAAC,CACNC,KAAM9C,EAAU,aAChBT,IAAKuC,EACLiB,MAAOhB,EACP9E,QAAS+E,KAGX,uBAAKlE,UAAS,UAAK,gBAAoB,YACrC,uBAAKA,UAAS,UAAK,OAAW,kBAC5B,gBAACkF,EAAA,GAAa,UAEL,QAAR,EAAAb,EAAIrC,YAAI,eAAEjC,OACX,sBAAIC,UAAU,MACX8E,EAAA,UAAoBT,EAAIrC,OACvB,gBAACmD,EAAA,EAAY,CAACC,KAAK,SAASC,MAAOhB,EAAIrC,KAAMsD,iBAAkB,CAAC,EAAGC,KAAK,OACzElB,EAAIrC,KAAKjC,OAGL,QAAR,EAAAsE,EAAIrC,YAAI,eAAEwB,cACT,qBAAGxD,UAAU,gBAAgBqE,EAAIrC,KAAKwB,aAGxC,gBAACrB,EAAA,EAAa,CACZK,WAAYvD,EAAMuD,WAClBJ,WAAYnD,EAAMmD,WAClBa,aAAchE,EAAMgE,aACpBR,YAAaxD,EAAMwD,YACnBO,kBAAmBmB,EACnBxB,WAAY1D,EAAM0D,WAClBrB,WAAYA,EAAWU,QAKjC,C,gKCvIM,SAAUoC,IACd,I,IAAOoB,G,GAAa,OAAgC,sB,EAA+B,E,o4BAAnE,GA4BhB,MAAO,CACLrB,mBA3BF,WACE,GAAKqB,GAGa,CAAE,SAAU,QAAS,SAAU,YAAa,SAAU,gBACzDC,SAASD,EAAUzB,KAAlC,CAIA,IAAMjD,EAAK0E,EAAU1E,GACrB,OAAQ0E,EAAUzB,KAChB,IAAK,SACH,MAAO,SAAP,OAAgBjD,GAClB,IAAK,YACH,MAAO,YAAP,OAAmBA,GACrB,IAAK,SACH,MAAO,UAAP,OAAiBA,GACnB,IAAK,SACH,MAAO,SAAP,OAAgBA,GAClB,IAAK,eACH,MAAO,eAAP,OAAsBA,GACxB,IAAK,QACH,MAAO,QAAP,OAAeA,GAflB,CAiBH,CAGsB4E,GAExB,C,uGCpCA,SAAgB,KAAO,QAAQ,cAAgB,QAAQ,MAAQ,QAAQ,KAAO,QAAQ,eAAiB,QAAQ,cAAgB,QAAQ,MAAQ,QAAQ,UAAY,QAAQ,WAAa,QAAQ,MAAQ,QAAQ,eAAiB,S,ggCCS1N,IAAMC,EAA4B,CACvC,CAAEC,MAAOC,EAAA,kBACT,CAAED,MAAOC,EAAA,kBACT,CAAED,MAAOC,EAAA,kBACT,CAAED,MAAOC,EAAA,kBACT,CAAED,MAAOC,EAAA,mBAGEC,EAAoC,CAC/C,CAAEF,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,0BACT,CAAED,MAAOC,EAAA,2BAYX,SAASE,EAA0BlC,GACjC,OAAQA,GACN,KAAKS,EAAA,QACL,KAAKA,EAAA,cACL,KAAKA,EAAA,OACH,OAAO,YAET,KAAKA,EAAA,UACL,KAAKA,EAAA,WACH,OAAO,QAET,KAAKA,EAAA,SACH,OAAO,aAET,QACE,MAAO,GAEb,CAyBM,SAAUM,EAAU3F,G,MACiC,IAArB,YAAe,GAAM,GAAjD+G,EAAS,KAAEC,EAAY,KACuB,IAA1B,WAAuB,IAAG,GAA9CC,EAAK,KAAEC,EAAQ,KAEjBtB,EAAWuB,EAAA,YAAsBnH,EAAM4F,SAAU,CAAEU,KAAM,aACzDc,EAAaP,EAuBnB,OArBA,aAAgB,WACd,IAAIjB,GAAawB,GAAoC,IAAtBA,EAAW9F,OAA1C,CAGA,IAfoB+F,EAedJ,GAfcI,EAeSD,GAdfE,KAAKC,MAAMD,KAAKE,SAAWH,EAAS/F,SAgB9C2F,EAAMN,OACRO,EAASD,EAAMN,MALT,CAOV,GAAG,IAEH,aAAgB,WACd,GAAKf,EAAL,CAGA,IAAM6B,EAAM,IAAIC,MAGhB,OAFAD,EAAIE,OAAS,kBAAMX,GAAa,EAAK,EACrCS,EAAIvG,IAAM0E,EACH,kBAAM6B,EAAIE,OAAS,IAAI,CALtB,CAMV,GAAG,IAGD,uBAAK5G,UAAU,UACXf,EAAM4H,cACN5H,EAAM4H,gBAEN,uBACE7G,UAAS,UAAK,OAAW,YAAIkG,EAAQ,oCAAsC,aAE1EA,EACC,uBAAKlG,UAAU,YAAYG,IAAK+F,EAAOY,WAAW,IACjDd,GACC,gCACE,uBAAKhG,UAAW,OAAaC,MAAO,CAAE8G,gBAAiB,QAAF,OAAUlC,EAAQ,SACvE,uBAAK7E,UAAS,UAAK,iBAAqB,YAAI+F,EAA0B9G,EAAM4E,cAC1E,uBAAK7D,UAAW,iBACd,uBAAKA,UAAW,QAAcG,IAAK0E,EAAUzE,IAAKnB,EAAMsE,YAQtE,uBAAKvD,UAAS,UAAK,QAAY,iCAC7B,uBAAKA,UAAS,sDAAiD,mBACjD,QAAX,EAAAf,EAAM8F,aAAK,eAAE9D,KAAI,SAAC+F,EAAM5F,GACvB,OAAI4F,EAAK/B,KACA,gBAAC,WAAc,CAAC7D,IAAKA,IAG5B,qBAAGA,IAAKA,EAAKP,KAAMmG,EAAKvF,IAAKzB,UAAU,wBAAwBb,QAAS6H,EAAK7H,SAC1E6H,EAAKhC,KAGZ,KAGD/F,EAAMgI,UAIf,C","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/general/idp-button/idp-button.scss","file:///app/packages/libs/shared/src/apps/sign-up/components/general/idp-button/IdpButton.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/global-idps.scss","file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/GlobalIdps.tsx","file:///app/packages/libs/shared/src/flight-requests/AuthRequests.ts","file:///app/packages/libs/shared/src/hooks/useGeoLocation.ts","file:///app/packages/projects/lite/src/apps/launchpad/components/sign-in-buttons/SignInButtons.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/login-landing/login-landing.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/login-landing/LoginLandingView.tsx","file:///app/packages/projects/lite/src/apps/sign-up/hooks/useTrialAppLink.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"globalIdpButton\":\"tAlj0\",\"globalIdpImage\":\"O94yo\"};","import * as React from 'react';\n\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\n\nimport styles from './idp-button.scss';\n\ninterface IdpButtonProps {\n idp: IdentityProvider;\n onClick: (provider: IdentityProvider) => void;\n backgroundColour?: string;\n foregroundColour?: string;\n attribution?: string;\n\n isGlobalIdp: boolean;\n\n /**\n * Because rendering globalIdps is conditional. We have a \"Don't have an account\" link at the bottom\n * which uses margin top. So the last item in this view must not have a margin bottom. - Sha\n */\n last?: boolean;\n}\n\nexport function IdpButton(props: IdpButtonProps): React.ReactElement {\n const {\n idp,\n onClick,\n backgroundColour = 'F8981D',\n foregroundColour = 'FFF',\n last,\n isGlobalIdp\n } = props;\n\n const lastButtonClassName = last ? '' : 'mb-3';\n\n const defaultStyle: React.CSSProperties = {\n backgroundColor: `#${idp.backgroundColour || backgroundColour}`,\n color: `#${idp.foregroundColour || foregroundColour}`\n };\n\n const globalStyle: React.CSSProperties = {};\n\n const buttonClass = isGlobalIdp\n ? `btn btn-lg btn-outline-dark w-100 ${lastButtonClassName} ${styles.globalIdpButton}`\n : `btn btn-lg w-100 ${lastButtonClassName}`;\n\n const buttonStyle = isGlobalIdp ? globalStyle : defaultStyle;\n\n const buttonLabel = isGlobalIdp ? `Continue with ${idp.name}` : idp.name;\n\n return (\n <button className={buttonClass} style={buttonStyle} onClick={() => onClick(idp)}>\n {isGlobalIdp && idp.logoUrl && (\n <img src={idp.logoUrl} className={styles.globalIdpImage} alt={`${idp.name} logo`} />\n )}\n {buttonLabel}\n </button>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"FfyN0\"};","import React from 'react';\n\nimport { IdpButton } from 'libs/shared/apps/sign-up/components/general/idp-button/IdpButton';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\n\nimport styles from './global-idps.scss';\n\ninterface AuthIdpProps {\n idps: IdentityProvider[];\n onClick: (idp: IdentityProvider) => void;\n className?: string;\n}\n\ninterface LiteIdpProps {\n idps: IdentityProvider[];\n className?: string;\n attribution: string;\n}\n\ntype GlobalIdpsProps = AuthIdpProps | LiteIdpProps\n\nexport function GlobalIdps(props: GlobalIdpsProps): JSX.Element {\n if (!props.idps.length)\n return <></>;\n\n function onClick(idp: IdentityProvider): void {\n const currentPathAndQuery = window.location.pathname + window.location.search;\n\n /**\n * Intentionally not using LocationUtils as to not bring a large number of dependencies into Auth - Sha\n */\n let href = `/challenge?idp=${idp.id}`\n + '&redirectUrl=' + encodeURIComponent(currentPathAndQuery);\n \n if ('attribution' in props)\n href += '&attribution=' + encodeURIComponent(props.attribution);\n\n window.location.href = href;\n }\n\n return (\n <div className={`${props.className ? props.className : ''}`}>\n <div className={`my-3 border-bottom position-relative ${styles.divider}`}></div>\n {props.idps.map((p, i) => (\n <IdpButton\n key={i}\n idp={p}\n onClick={'onClick' in props ? props.onClick : onClick}\n attribution={'attribution' in props ? props.attribution : null}\n isGlobalIdp\n />\n ))}\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\n\nexport const AuthRequests = {\n globalIdps(countryCode: string, product: ProductId): Flight.Request {\n return {\n url: `{gateway}/v1/auth/identity-providers?countryCode=${countryCode}&product=${product}`,\n key: 'global:idps'\n };\n }\n};","import { LocationUtils } from 'libs/common/backbone/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nconst FALLBACK_COUNTRY: GeoLocation = {\n countryCode: 'us',\n isFallback: true\n};\n\nexport function useGeoLocation(): GeoLocation {\n const geoLocation = Flight.useBasicFetch<GeoLocation>(ConfigRequests.geoLocation());\n\n const countryCode = LocationUtils.GetQuery()?.countryCode?.toLowerCase();\n \n if (countryCode)\n return { countryCode };\n\n if (geoLocation.hasCompleted && !geoLocation.data)\n return FALLBACK_COUNTRY;\n\n return geoLocation.data;\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { GlobalIdps } from 'libs/shared/apps/sign-up/components/general/global-idps/GlobalIdps';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport { getLiteAttributionForAuth } from 'libs/shared/apps/sign-up/utils/getLiteAttributionForAuth';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'launchpad.signInButtons';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface SignInButtonsProps {\n customerId: string;\n skipPrompt: boolean;\n showJoinCode: boolean;\n redirectUrl: string;\n pageAppLinkString: string;\n showSignUp: boolean;\n globalIdps: IdentityProvider[];\n}\n\nexport function SignInButtons(props: SignInButtonsProps): JSX.Element {\n React.useEffect(() => {\n if (!props.skipPrompt)\n return;\n\n Core.LocationUtils.PageLoad(Core.AppLinkHelper.getHref(appLink));\n }, []);\n\n function getAppLink(): Core.AppLink {\n const currentQuery = Core.LocationUtils.GetQuery();\n const params: HashObject = {};\n\n /**\n * Add customerId to the login url and remove it from the redirect url\n */\n if (props.customerId) {\n params.customerId = props.customerId;\n delete currentQuery.customerId;\n }\n\n /**\n * Remove skip prompt from the return url\n */\n if (props.skipPrompt)\n delete currentQuery.skipPrompt;\n\n if (props.redirectUrl) {\n params.redirectUrl = props.redirectUrl;\n } else {\n const serializedQuery = Core.LocationUtils.SerializeQueryParams(currentQuery);\n params.redirectUrl = Core.LocationUtils.GetCurrentPath() + (serializedQuery ? ('?' + serializedQuery) : '');\n }\n\n if (props.showSignUp)\n params.showSignUp = true;\n\n return {\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params\n };\n }\n\n const appLink = getAppLink();\n\n return (\n <>\n <AppLink\n className='btn btn-lg btn-dark w-100 mt-4'\n appLink={appLink}\n >\n <Text namespace={namespace} phrase={props.pageAppLinkString ? 'signInToWatch' : 'signIn'} />\n </AppLink>\n {props.showJoinCode ?\n <AppLink\n className='btn btn-link info-link btn-lg w-100 mt-2'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.Launchpad.JOIN_CLASSROOM_PROMPT\n }}\n >\n {getPhrase('enterCode')}\n </AppLink> :\n <>\n <AppLink\n className='btn btn-lg btn-outline-dark w-100 mt-3'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.SignUp.SIGN_UP,\n params: { pageAppLinkString: props.pageAppLinkString }\n }}\n >\n {getPhrase('signUp')}\n </AppLink>\n <GlobalIdps idps={props.globalIdps} attribution={getLiteAttributionForAuth()} />\n </>\n }\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"Je2Pi\",\"formContainer\":\"MfLVl\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { AuthRequests } from 'libs/shared/flight-requests/AuthRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { DeepLinkViewModel, mapMasterTypeToDeepLinkApp, useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { SignInButtons } from 'apps/launchpad/components/sign-in-buttons/SignInButtons';\nimport { useTrialAppLink } from 'apps/sign-up/hooks/useTrialAppLink';\n\nimport styles from './login-landing.scss';\n\nconst namespace = 'classrooms.loginLanding';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction useFetchObject(objectId: string, objectType: MasterType): Flight.Response<VideoTypes> {\n function getRequest(): Flight.Request {\n switch (objectType) {\n case MasterType.Video:\n return VideoRequests.publicVideo(objectId);\n case MasterType.Interactive:\n return InteractiveRequests.publicInteractiveMetadata(objectId);\n case MasterType.Clip:\n return ClipRequests.publicClip(objectId);\n default:\n return null;\n }\n }\n\n return Flight.useBasicFetch(getRequest());\n}\n\ninterface LoginLandingProps {\n skipPrompt: boolean;\n showJoinCode: boolean;\n customerId: string;\n showSignUp: boolean;\n redirectUrl: string;\n\n objectType?: MasterType;\n objectId?: string;\n\n /**\n * Set to true when we're specicially on the /login route\n * so that we can provide extra metadata for SEO\n * and allow indexing - Sha\n */\n isLoginMetadata?: boolean;\n}\n\nexport function LoginLandingView(props: LoginLandingProps): React.ReactElement {\n function getInitialDeepLink(): DeepLinkViewModel {\n return {\n id: props.objectId,\n app: mapMasterTypeToDeepLinkApp(props.objectType)\n };\n }\n\n const geoLocation = useGeoLocation();\n const globalIdps = Flight.useBasicFetch<IdentityProvider[]>(\n geoLocation?.countryCode && AuthRequests.globalIdps(geoLocation.countryCode, ProductId.Primary)\n );\n\n useSetPageMetadata(props.isLoginMetadata ? {\n title: getPhrase('title'),\n description: getPhrase('description'),\n allowIndexing: true,\n canonicalLink: SeoHelper.getCanonicalLink()\n } : { title: getPhrase('title') });\n\n const {\n deepLink,\n showDeepLink,\n onClickDeepLink\n } = useDeepLinks(getInitialDeepLink(), LocationContext.Launchpad);\n\n const { trialAppLinkString } = useTrialAppLink();\n\n const obj = useFetchObject(props.objectId, props.objectType);\n\n if (props.skipPrompt || obj.isFetching || !globalIdps.hasCompleted)\n return <></>;\n\n return (\n <Launchpad\n title={obj.data?.name}\n imageUrl={VideoHelper.getThumbnail(obj.data)?.url}\n objectType={props.objectType}\n links={[{\n text: getPhrase('openInApp'),\n url: deepLink,\n hide: !showDeepLink,\n onClick: onClickDeepLink\n }]}\n >\n <div className={`${styles.formContainer} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!!obj.data?.name &&\n <h1 className='h3'>\n {VideoHelper.isVideo(obj.data) &&\n <VideoSubText type='series' video={obj.data} analyticsOptions={{}} size='sm' />}\n {obj.data.name}\n </h1>\n }\n {obj.data?.description &&\n <p className='mb-0 clamp-3'>{obj.data.description}</p>\n }\n\n <SignInButtons\n customerId={props.customerId}\n skipPrompt={props.skipPrompt}\n showJoinCode={props.showJoinCode}\n redirectUrl={props.redirectUrl}\n pageAppLinkString={trialAppLinkString}\n showSignUp={props.showSignUp}\n globalIdps={globalIdps.data}\n />\n </div>\n </Launchpad>\n );\n}","import { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { DeepLinkViewModel } from 'shared/hooks/useDeepLinks';\n\nexport function useTrialAppLink() {\n const [viewModel] = useViewModel<DeepLinkViewModel>(ViewModelKeys.OPEN_IN_APP_DATA);\n\n function getTrialAppLinkString() {\n if (!viewModel) {\n return;\n }\n const validApps = [ 'videos', 'clips', 'series', 'playlists', 'topics', 'interactives' ];\n if (!validApps.includes(viewModel.app)) {\n return;\n }\n\n const id = viewModel.id;\n switch (viewModel.app) {\n case 'videos':\n return `video:${id}`;\n case 'playlists':\n return `playlist:${id}`;\n case 'series':\n return `series:${id}`;\n case 'topics':\n return `topic:${id}`;\n case 'interactives':\n return `interactive:${id}`;\n case 'clips':\n return `clip:${id}`;\n }\n }\n\n return {\n trialAppLinkString: getTrialAppLinkString()\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.BG_5 }\n];\n\nexport const LAUNCHPAD_PRODUCT_FALLBACK_IMAGES = [\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_1 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_2 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_3 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_4 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_5 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_6 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_7 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_8 },\n { bgUrl: ImageUrls.LaunchPad.PRODUCT.BG_9 }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n { bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png' },\n { bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png' }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_PRODUCT_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div\n className={`${styles.left} ${image ? 'bg-blue d-flex align-items-center' : 'bg-light'}`}\n >\n {image ?\n <img className='img-fluid' src={image} draggable={false} /> :\n (showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n )\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["IdpButton","props","idp","onClick","backgroundColour","foregroundColour","last","isGlobalIdp","lastButtonClassName","defaultStyle","backgroundColor","color","buttonClass","buttonStyle","buttonLabel","name","className","style","logoUrl","src","alt","GlobalIdps","idps","length","currentPathAndQuery","window","location","pathname","search","href","id","encodeURIComponent","attribution","map","p","i","key","AuthRequests","globalIdps","countryCode","product","url","FALLBACK_COUNTRY","isFallback","useGeoLocation","geoLocation","toLowerCase","hasCompleted","data","namespace","getPhrase","SignInButtons","skipPrompt","appLink","currentQuery","params","customerId","redirectUrl","serializedQuery","showSignUp","application","action","getAppLink","phrase","pageAppLinkString","showJoinCode","LanguageService","LoginLandingView","ProductId","useSetPageMetadata","isLoginMetadata","title","description","allowIndexing","canonicalLink","SeoHelper","objectId","objectType","useDeepLinks","app","deepLink","showDeepLink","onClickDeepLink","trialAppLinkString","useTrialAppLink","obj","MasterType","VideoRequests","InteractiveRequests","ClipRequests","getRequest","isFetching","Launchpad","imageUrl","VideoHelper","links","text","hide","ClickViewLogo","VideoSubText","type","video","analyticsOptions","size","viewModel","includes","getTrialAppLinkString","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","ImageUrls","LAUNCHPAD_PRODUCT_FALLBACK_IMAGES","mapObjectTypeToImageClass","showImage","setShowImage","image","setImage","ImageHelper","IMAGE_URLS","urlLists","Math","floor","random","img","Image","onload","leftComponent","draggable","backgroundImage","link","children"],"sourceRoot":""}