@clickview/lite 0.72.0 → 0.72.1

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 (21) 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/7601-c1b07b72c6-lite.chunk.js +2 -0
  9. package/dist/scripts/7601-c1b07b72c6-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{bundle-6e723fdeb1.min.js → bundle-dfca00e3d3.min.js} +3 -3
  11. package/dist/scripts/{bundle-6e723fdeb1.min.js.map → bundle-dfca00e3d3.min.js.map} +1 -1
  12. package/package.json +1 -1
  13. package/dist/scripts/1109-98508a03fe-lite.chunk.js +0 -2
  14. package/dist/scripts/1109-98508a03fe-lite.chunk.js.map +0 -1
  15. package/dist/scripts/1667-ac162f04d0-lite.chunk.js +0 -3
  16. package/dist/scripts/1667-ac162f04d0-lite.chunk.js.map +0 -1
  17. package/dist/scripts/7601-b439c82e82-lite.chunk.js +0 -2
  18. package/dist/scripts/7601-b439c82e82-lite.chunk.js.map +0 -1
  19. /package/dist/scripts/{1667-ac162f04d0-lite.chunk.js.LICENSE.txt → 1667-fcdff22585-lite.chunk.js.LICENSE.txt} +0 -0
  20. /package/dist/scripts/{3596-d760a67a58-lite.chunk.js.LICENSE.txt → 3596-89a39d3781-lite.chunk.js.LICENSE.txt} +0 -0
  21. /package/dist/scripts/{bundle-6e723fdeb1.min.js.LICENSE.txt → bundle-dfca00e3d3.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7601],{5798:(e,t,n)=>{n.d(t,{b:()=>l});var a=n(32735);const r={globalIdpButton:"tAlj0",globalIdpImage:"O94yo"};function i(e){var t=e.idp,n=e.onClick,i=e.backgroundColour,c=void 0===i?"F8981D":i,l=e.foregroundColour,o=void 0===l?"FFF":l,u=e.last,s=e.isGlobalIdp,d=u?"":"mb-3",m={backgroundColor:"#".concat(t.backgroundColour||c),color:"#".concat(t.foregroundColour||o)},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 c={divider:"FfyN0"};function l(e){var t;if(!(null===(t=e.idps)||void 0===t?void 0:t.length))return a.createElement(a.Fragment,null);function n(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(c.divider)}),e.idps.map((function(t,r){return a.createElement(i,{key:r,idp:t,onClick:"onClick"in e?e.onClick:n,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:()=>l});var a=n(39202),r=n(20354),i=n(39151),c={countryCode:"us",isFallback:!0};function l(){var e,t,n=r.a.useBasicFetch(i.L.geoLocation()),l=null===(t=null===(e=a.Ab.GetQuery())||void 0===e?void 0:e.countryCode)||void 0===t?void 0:t.toLowerCase();return l?{countryCode:l}:n.hasCompleted&&!n.data?c:n.data}},19623:(e,t,n)=>{n.d(t,{P:()=>g});var a=n(32735),r=n(81886),i=n(23481),c=n(5798),l=n(98027),o=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(o.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(o.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(o.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(c.b,{idps:e.globalIdps,attribution:(0,l.w)()})))}},77601:(e,t,n)=>{n.r(t),n.d(t,{ShareLinkSignInView:()=>E});var a=n(32735),r=n(23481),i=n(20354),c=n(65858),l=n(64249),o=n(2786),u=n(26339),s=n(4594),d=n(12754),m=n(53475),p=n(48015),g=n(97027),b=n(7179),f=n(19623),h=n(75608),v=n(408);const y={logo:"Nbzoq",container:"hKyDn"};var C="launchpad.shareLinkSignIn";function E(e){var t=e.shareId,n=e.redirectUrl,E=e.customerId,I=(0,h.a)(t),k=(0,b.P)(function(e,t){return{id:null==t?void 0:t.id,app:(0,b.e)(null==t?void 0:t.typeId),shareId:e}}(t,I),c.LZ.Launchpad),U=k.deepLink,P=k.showDeepLink,L=k.onClickDeepLink,w=(0,v.B)().trialAppLinkString,N=(0,p.M)(),S=i.a.useBasicFetch((null==N?void 0:N.countryCode)&&m.N.globalIdps(N.countryCode,d.x.Primary));return I&&S.hasCompleted?a.createElement(g.Zf,{title:I.name,imageUrl:l.I.getImageUrl(I),objectType:I.typeId,links:[{text:r.T.getPhrase(C,"openInApp"),url:U,hide:!P,onClick:L}]},a.createElement("div",{className:"".concat(y.container," m-auto")},a.createElement("div",{className:"".concat(y.logo," mb-4 mx-auto")},a.createElement(o.$S,null)),!!I.name&&a.createElement("h1",{className:"h3"},I.typeId===s.E.Video&&a.createElement(u.$,{type:"series",video:I,analyticsOptions:{},size:"sm"}),I.name),"description"in I&&a.createElement("p",{className:"mb-0 clamp-3"},I.description),a.createElement(f.P,{globalIdps:S.data,customerId:E,redirectUrl:n,skipPrompt:!1,showJoinCode:!1,pageAppLinkString:w,showSignUp:!0}))):a.createElement(a.Fragment,null)}},75608:(e,t,n)=>{n.d(t,{a:()=>p});var a=n(20354),r=n(30439),i=n(4594),c=n(21750),l=n(43012),o=n(20768),u=n(5112),s=n(60011),d=n(31949),m=n(1575);function p(e){var t=a.a.useBasicFetch(d.N.currentUser()),n=a.a.useBasicFetch(r.o.getShareObject(e)),p=function(){if(!n.data||!t.data)return null;switch(n.data.objectTypeId){case i.E.Video:return m.R.publicVideo(n.data.objectId,e);case i.E.Clip:return l.e.publicClip(n.data.objectId,e);case i.E.Interactive:return o.b.publicInteractiveMetadata(n.data.objectId,e);case i.E.Playlist:return u.C.getSharedPlaylist(n.data.objectId,e);case i.E.Subject:return c.x.classification(n.data.objectId,t.data.id);case i.E.Series:return s.J.sharedSeries(n.data.objectId,e)}}();return a.a.useBasicFetch(p).data}},408:(e,t,n)=>{n.d(t,{B:()=>c});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 c(){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,c,l=[],o=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw r}}return l}}(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),c=n(67453),l=n(99742);const o={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,c,l=[],o=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw r}}return l}}(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:l.W.LaunchPad.BG_1},{bgUrl:l.W.LaunchPad.BG_2},{bgUrl:l.W.LaunchPad.BG_3},{bgUrl:l.W.LaunchPad.BG_4},{bgUrl:l.W.LaunchPad.BG_5}],m=[{bgUrl:l.W.LaunchPad.PRODUCT.BG_1},{bgUrl:l.W.LaunchPad.PRODUCT.BG_2},{bgUrl:l.W.LaunchPad.PRODUCT.BG_3},{bgUrl:l.W.LaunchPad.PRODUCT.BG_4},{bgUrl:l.W.LaunchPad.PRODUCT.BG_5},{bgUrl:l.W.LaunchPad.PRODUCT.BG_6},{bgUrl:l.W.LaunchPad.PRODUCT.BG_7},{bgUrl:l.W.LaunchPad.PRODUCT.BG_8},{bgUrl:l.W.LaunchPad.PRODUCT.BG_9}];function p(e){switch(e){case i.E.Video:case i.E.Interactive:case i.E.Clip:return o.thumbnail;case i.E.Subject:case i.E.Playlist:return o.cover;case i.E.Series:return o.tallposter;default:return""}}function g(e){var t,n=u(a.useState(!1),2),i=n[0],l=n[1],s=u(a.useState(""),2),d=s[0],g=s[1],b=c.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 l(!0)},e.src=b,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(o.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:o.blur,style:{backgroundImage:"url('".concat(b,"')")}}),a.createElement("div",{className:"".concat(o.imageContainer," ").concat(p(e.objectType))},a.createElement("div",{className:o.imagePosition},a.createElement("img",{className:o.image,src:b,alt:e.title}))))),a.createElement("div",{className:"".concat(o.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(o.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=7601-c1b07b72c6-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7601-c1b07b72c6-lite.chunk.js","mappings":"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","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/share-link-sign-in/share-link-sign-in.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/share-link-sign-in/ShareLinkSignInView.tsx","file:///app/packages/projects/lite/src/apps/share/hooks/useFetchSharedResource.ts","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\":\"Nbzoq\",\"container\":\"hKyDn\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\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 { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { DeepLinkViewModel, mapMasterTypeToDeepLinkApp, useDeepLinks } from 'shared/hooks/useDeepLinks';\n\nimport { SignInButtons } from 'apps/launchpad/components/sign-in-buttons/SignInButtons';\nimport { useFetchSharedResource } from 'apps/share/hooks/useFetchSharedResource';\nimport { useTrialAppLink } from 'apps/sign-up/hooks/useTrialAppLink';\n\nimport styles from './share-link-sign-in.scss';\n\nconst namespace = 'launchpad.shareLinkSignIn';\n\ninterface ShareLinkSignInProps {\n shareId: string;\n redirectUrl: string;\n customerId?: string;\n}\n\nfunction getInitialDeepLink(shareId: string, sharedResource?: SharableEntity): DeepLinkViewModel {\n return {\n id: sharedResource?.id,\n app: mapMasterTypeToDeepLinkApp(sharedResource?.typeId),\n shareId\n };\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareLinkSignInView(props: ShareLinkSignInProps): React.ReactElement {\n const { shareId, redirectUrl, customerId } = props;\n const sharedResource = useFetchSharedResource<SharableEntity>(shareId);\n const {\n deepLink,\n showDeepLink,\n onClickDeepLink\n } = useDeepLinks(getInitialDeepLink(shareId, sharedResource), LocationContext.Launchpad);\n const { trialAppLinkString } = useTrialAppLink();\n\n const geoLocation = useGeoLocation();\n const globalIdps = Flight.useBasicFetch<IdentityProvider[]>(\n geoLocation?.countryCode && AuthRequests.globalIdps(geoLocation.countryCode, ProductId.Primary)\n );\n\n if (!sharedResource || !globalIdps.hasCompleted)\n return <></>;\n\n return (\n <Launchpad\n title={sharedResource.name}\n imageUrl={ShareViewHelper.getImageUrl(sharedResource)}\n objectType={sharedResource.typeId}\n links={[{\n text: LanguageService.getPhrase(namespace, 'openInApp'),\n url: deepLink,\n hide: !showDeepLink,\n onClick: onClickDeepLink\n }]}\n >\n <div className={`${styles.container} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!!sharedResource.name &&\n <h1 className='h3'>\n {sharedResource.typeId === MasterType.Video &&\n <VideoSubText type='series' video={sharedResource as Video} analyticsOptions={{}} size='sm' />}\n {sharedResource.name}\n </h1>\n }\n {'description' in sharedResource &&\n <p className='mb-0 clamp-3'>{sharedResource.description}</p>\n }\n <SignInButtons\n globalIdps={globalIdps.data}\n customerId={customerId}\n redirectUrl={redirectUrl}\n skipPrompt={false}\n showJoinCode={false}\n pageAppLinkString={trialAppLinkString}\n showSignUp={true}\n />\n </div>\n </Launchpad>\n );\n}","import { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { CurrentUser, ShareLink } from 'libs/shared/interfaces';\n\nexport function useFetchSharedResource<T>(shareId: string): T {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(shareId));\n\n function getResourceRequest(): Flight.Request {\n if (!shareLink.data || !currentUser.data)\n return null;\n\n switch (shareLink.data.objectTypeId) {\n case MasterType.Video:\n return VideoRequests.publicVideo(shareLink.data.objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.publicClip(shareLink.data.objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.publicInteractiveMetadata(shareLink.data.objectId, shareId);\n case MasterType.Playlist:\n return PlaylistRequests.getSharedPlaylist(shareLink.data.objectId, shareId);\n case MasterType.Subject:\n return ClassificationRequests.classification(shareLink.data.objectId, currentUser.data.id);\n case MasterType.Series:\n return SeriesRequests.sharedSeries(shareLink.data.objectId, shareId);\n }\n }\n\n const resourceRequest = getResourceRequest();\n const resource = Flight.useBasicFetch<T>(resourceRequest);\n\n return resource.data;\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","ShareLinkSignInView","shareId","sharedResource","useFetchSharedResource","useDeepLinks","app","typeId","getInitialDeepLink","deepLink","showDeepLink","onClickDeepLink","trialAppLinkString","useTrialAppLink","ProductId","Launchpad","title","imageUrl","ShareViewHelper","objectType","links","text","LanguageService","hide","ClickViewLogo","MasterType","VideoSubText","type","video","analyticsOptions","size","description","currentUser","shareLink","resourceRequest","objectTypeId","objectId","getResourceRequest","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":""}