@clickview/lite 0.47.1-dev.0 → 0.47.1-dev.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.
- package/dist/bundles.json +1 -1
- package/dist/scripts/6725-660aa786a4-lite.chunk.js +2 -0
- package/dist/scripts/6725-660aa786a4-lite.chunk.js.map +1 -0
- package/dist/scripts/6725-694558e784-lite.chunk.js +2 -0
- package/dist/scripts/6725-694558e784-lite.chunk.js.map +1 -0
- package/dist/scripts/6736-750229acd4-lite.chunk.js +3 -0
- package/dist/scripts/6736-750229acd4-lite.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/6736-750229acd4-lite.chunk.js.map +1 -0
- package/dist/scripts/6736-91b53b9d71-lite.chunk.js +3 -0
- package/dist/scripts/6736-91b53b9d71-lite.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/6736-91b53b9d71-lite.chunk.js.map +1 -0
- package/dist/scripts/6896-2e0f1b3265-lite.chunk.js +2 -0
- package/dist/scripts/6896-2e0f1b3265-lite.chunk.js.map +1 -0
- package/dist/scripts/6896-bede3d864e-lite.chunk.js +2 -0
- package/dist/scripts/6896-bede3d864e-lite.chunk.js.map +1 -0
- package/dist/scripts/7017-579ccbf386-lite.chunk.js +3 -0
- package/dist/scripts/7017-579ccbf386-lite.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/7017-579ccbf386-lite.chunk.js.map +1 -0
- package/dist/scripts/7017-da16c91436-lite.chunk.js +2 -0
- package/dist/scripts/7017-da16c91436-lite.chunk.js.map +1 -0
- package/dist/scripts/8772-3f2241fb6a-lite.chunk.js +2 -0
- package/dist/scripts/8772-3f2241fb6a-lite.chunk.js.map +1 -0
- package/dist/scripts/8772-8579470f46-lite.chunk.js +2 -0
- package/dist/scripts/8772-8579470f46-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-2893a86c20.min.js +3 -0
- package/dist/scripts/bundle-2893a86c20.min.js.LICENSE.txt +97 -0
- package/dist/scripts/bundle-2893a86c20.min.js.map +1 -0
- package/dist/scripts/bundle-693b5d828d.min.js +3 -0
- package/dist/scripts/bundle-693b5d828d.min.js.LICENSE.txt +97 -0
- package/dist/scripts/bundle-693b5d828d.min.js.map +1 -0
- package/package.json +1 -1
package/dist/bundles.json
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6725],{94644:(e,n,a)=>{a.d(n,{r:()=>l});var r=a(50242),t=a(81886),i=a(67058),c=a(14553),o=a(49267),s=a(49075),d={notFound:i.d,forbidden:{rating:c.q,yearLevel:c.q,region:o.a,privacy:c.q},badRequest:s._};function l(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var c=Object.assign(Object.assign({},d),n);i&&t.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?a.badRequest||t.Q.Ry.throw(new c.badRequest):a.forbidden||t.Q.Ry.throw(new c.forbidden.privacy):a.notFound||t.Q.Ry.throw(new c.notFound))}}},91286:(e,n,a)=>{a.d(n,{v:()=>c});var r=a(32735),t=a(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function c(e,n,a){var c=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){c.forEach((function(e){(0,t.r)(e.statusCode,n,a)}))}),[i(c),n,a])}},14919:(e,n,a)=>{a.d(n,{w:()=>v});var r=a(32735),t=a(64249),i=a(11607),c=a(2786),o=a(7733),s=a(9085),d=a(98084),l=a(87984);const u={playButtonCircle:"zima4"};function v(e){var n,a,v,m,b=e.onClick,g=e.video,p="rating"in g&&(null===(n=g.rating)||void 0===n?void 0:n.code),f="rating"in g&&(null===(a=g.rating)||void 0===a?void 0:a.value),h=(0,l.C)(f),E="series"in g&&(null===(v=g.series)||void 0===v?void 0:v.name),y="episodeNumber"in g&&g.episodeNumber,k="season"in g&&(null===(m=g.season)||void 0===m?void 0:m.number),w=t.I.getImageUrl(g),C="";w||(C=(0,s.x)(g.name,o.b));var F={backgroundImage:w?"url('".concat(w,"')"):"",backgroundColor:C};return r.createElement(i.L,{className:"cv-embed-splash ".concat(C||"cv-embed-splash-black"),style:F,onClick:b},!!w&&r.createElement("div",{className:"cv-splash-mask"}),r.createElement("div",{className:"cv-splash-metadata"},r.createElement("h1",null,r.createElement("div",{className:"cv-splash-series"},function(e,n,a){if(!e)return"";if(!a||!n)return e;var r=d.I.padNumber(a,2),t=d.I.padNumber(n,2);return"".concat(e," S").concat(r," • E").concat(t)}(E,y,k)),g.name),r.createElement("div",{className:"cv-splash-rating ".concat(h)},p)),r.createElement("div",{className:u.playButtonCircle},r.createElement("svg",{viewBox:"0 0 1800 1800"},r.createElement("path",{d:"M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z"}))),r.createElement("div",{className:"cv-splash-logo"},r.createElement(c.Yo,null)))}},61995:(e,n,a)=>{a.d(n,{_:()=>c});var r=a(45593),t=a(21938),i=a(76867),c={notFound:t.W,forbidden:{rating:r.F,yearLevel:r.F,region:i.z,privacy:r.F},badRequest:i.z}},66725:(e,n,a)=>{a.r(n),a.d(n,{EmbeddedLcsLoginView:()=>g});var r=a(32735),t=a(23481),i=a(20354),c=a(39151),o=a(1575),s=a(91286),d=a(71158),l=a(14919),u=a(6736),v=a(61995),m="embed.embeddedLcsLogin",b={forbidden:!0};function g(e){var n=i.a.useBasicFetch(c.L.config()),a=i.a.useBasicFetch(o.R.publicVideo(e.videoId));if((0,s.v)(a,v._,b),!n.data||!a.hasCompleted)return r.createElement(r.Fragment,null);var g=a.data;return a.hasError&&(g={name:t.T.getPhrase(m,"privateVideo")}),r.createElement(l.w,{onClick:function(){u.b.renderSignInPopup({customerId:e.customerId,consumerKey:null,shareId:null,onComplete:function(e){return d.P.applyToken(null==e?void 0:e.embedToken)}})},video:g})}},87984:(e,n,a)=>{function r(e){return e?function(e){switch(!0){case e<32:return"cv-rating-purple";case e<48:return"cv-rating-green";case e<80:return"cv-rating-blue";case e<96:return"cv-rating-red";case e<128:return"cv-rating-pink";case e>=128:return"cv-rating-yellow";default:return""}}(e):""}a.d(n,{C:()=>r})}}]);
|
|
2
|
+
//# sourceMappingURL=6725-660aa786a4-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6725-660aa786a4-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file://C:/ClickView Projects/clickview/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/embedded-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/EmbeddedLogin.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/utils/EmbedDefaultErrors.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embedded-lcs-login/EmbeddedLcsLoginView.tsx","file://C:/ClickView Projects/clickview/packages/projects/player/src/utils/PlayerRatingHelper.ts"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\r\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\n\r\nexport interface HttpErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new (video?: VideoTypes) => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nexport type IgnoreHttpErrorMap = {\r\n [key in keyof HttpErrorMap]: boolean;\r\n};\r\n\r\nconst defaultErrors: HttpErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function handleHttpError(\r\n info: HttpStatus | Xhr,\r\n customErrorMap: HttpErrorMap = {},\r\n /**\r\n * Prevent certain errors in the errorMap from being thrown\r\n * so that you may implement your own handler\r\n */\r\n ignoreMap: IgnoreHttpErrorMap = {}\r\n): void {\r\n if (!info)\r\n return;\r\n\r\n let statusCode: HttpStatus;\r\n\r\n if (typeof(info) === 'number') {\r\n statusCode = info;\r\n } else {\r\n statusCode = info.status;\r\n }\r\n\r\n const errorMap = {\r\n ...defaultErrors,\r\n ...customErrorMap\r\n };\r\n\r\n if (!statusCode)\r\n return;\r\n\r\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\r\n return;\r\n\r\n if (statusCode === HttpStatus.NotFound) {\r\n if (!ignoreMap.notFound)\r\n Core.ErrorHelper.throw(new errorMap.notFound());\r\n return;\r\n }\r\n\r\n if (statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n if (!ignoreMap.forbidden)\r\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\r\n return;\r\n }\r\n\r\n if (!ignoreMap.badRequest)\r\n Core.ErrorHelper.throw(new errorMap.badRequest());\r\n}\r\n\r\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\r\n handleHttpError(xhr.status, customErrorMap);\r\n}","import { useEffect } from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\r\n\r\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\r\n return flightObjs.map(obj => obj.statusCode).join(':');\r\n}\r\n\r\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\r\nexport function useHandleObjectError(\r\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\r\n customErrors?: HttpErrorMap,\r\n ignoreErrors?: IgnoreHttpErrorMap\r\n): void {\r\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\r\n\r\n useEffect(() => {\r\n flightObjs.forEach(obj => {\r\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\r\n });\r\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\r\n}","// extracted by mini-css-extract-plugin\nexport default {\"playButtonCircle\":\"zima4\"};","/**\r\n * IMPORTANT!\r\n * Please refer to projects\\player\\src\\components\\poster-image\\poster-image-details.md\r\n * before changing this file\r\n */\r\nimport React from 'react';\r\n\r\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { LOGO_SAFE_BG_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\r\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\r\n\r\nimport { mapRatingValueToColourClass } from 'projects/player/utils/PlayerRatingHelper';\r\n\r\nimport styles from './embedded-login.scss';\r\n\r\nfunction getSeries(seriesName: string, episodeNumber: number, seasonNumber: number): string {\r\n if (!seriesName)\r\n return '';\r\n\r\n if (!seasonNumber || !episodeNumber)\r\n return seriesName;\r\n\r\n const paddedSeason = NumberHelper.padNumber(seasonNumber, 2);\r\n const paddedEpisode = NumberHelper.padNumber(episodeNumber, 2);\r\n\r\n return `${seriesName} S${paddedSeason} • E${paddedEpisode}`;\r\n}\r\n\r\ninterface EmbeddedLoginProps {\r\n onClick: () => void;\r\n video: VideoTypes;\r\n}\r\n\r\nexport function EmbeddedLogin(props: EmbeddedLoginProps): React.ReactElement {\r\n const {\r\n onClick,\r\n video\r\n } = props;\r\n\r\n const ratingCode = 'rating' in video && video.rating?.code;\r\n const ratingValue = 'rating' in video && video.rating?.value;\r\n const ratingColour = mapRatingValueToColourClass(ratingValue);\r\n\r\n const seriesName = 'series' in video && video.series?.name;\r\n const episodeNumber = 'episodeNumber' in video && video.episodeNumber;\r\n const seasonNumber = 'season' in video && video.season?.number;\r\n\r\n const backgroundImage = ShareViewHelper.getImageUrl(video);\r\n let backgroundColor = '';\r\n\r\n if (!backgroundImage)\r\n backgroundColor = getBgColorClass(video.name, LOGO_SAFE_BG_CLASS_NAMES);\r\n\r\n const style: React.CSSProperties = {\r\n backgroundImage: backgroundImage ? `url('${backgroundImage}')` : '',\r\n backgroundColor\r\n };\r\n\r\n // Markup changes here should also be made to components in `landing-splash-plugin.ts`\r\n return (\r\n <DivButton\r\n className={`cv-embed-splash ${backgroundColor || 'cv-embed-splash-black'}`}\r\n style={style}\r\n onClick={onClick}\r\n >\r\n {!!backgroundImage && <div className='cv-splash-mask' />}\r\n\r\n <div className='cv-splash-metadata'>\r\n <h1>\r\n <div className='cv-splash-series'>\r\n {getSeries(seriesName, episodeNumber, seasonNumber)}\r\n </div>\r\n {video.name}\r\n </h1>\r\n\r\n <div className={`cv-splash-rating ${ratingColour}`}>\r\n {ratingCode}\r\n </div>\r\n </div>\r\n\r\n <div className={styles.playButtonCircle}>\r\n <svg viewBox='0 0 1800 1800'>\r\n <path d='M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z'></path>\r\n </svg>\r\n </div>\r\n\r\n <div className='cv-splash-logo'>\r\n <ClickViewLogoInverted />\r\n </div>\r\n </DivButton>\r\n );\r\n}","import { HttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\r\n\r\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\r\nimport { EmbedNotFoundError } from 'apps/embed/errors/not-found/EmbedNotFoundError';\r\nimport { UnspecifiedEmbedError } from 'apps/embed/errors/unspecified/UnspecifiedEmbedError';\r\n\r\nexport const EmbeddedDefaultErrors: HttpErrorMap = {\r\n notFound: EmbedNotFoundError,\r\n forbidden: {\r\n rating: PrivateEmbedError,\r\n yearLevel: PrivateEmbedError,\r\n region: UnspecifiedEmbedError,\r\n privacy: PrivateEmbedError\r\n },\r\n badRequest: UnspecifiedEmbedError\r\n};","import React from 'react';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\r\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\r\nimport { Config, Video } from 'libs/shared/interfaces';\r\nimport { EmbedTokenHelper } from 'libs/shared/utils/EmbedTokenHelper';\r\n\r\nimport { EmbeddedLogin } from 'apps/embed/components/embedded-login/EmbeddedLogin';\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\nimport { EmbeddedDefaultErrors } from 'apps/embed/utils/EmbedDefaultErrors';\r\n\r\nconst namespace = 'embed.embeddedLcsLogin';\r\n\r\nconst IGNORE_ERROR_MAP = {\r\n forbidden: true\r\n};\r\n\r\ninterface EmbeddedLcsLoginViewProps {\r\n videoId: string;\r\n customerId?: number\r\n}\r\n\r\nexport function EmbeddedLcsLoginView(props: EmbeddedLcsLoginViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\r\n\r\n /**\r\n * We're using the sharedVideo request because it's piped through Lite's backend\r\n * in order to get around not being able to use Gateway publicly. Ideally\r\n * we shouldn't need to use the sharedVideo request once Gateway works publicly\r\n * - Sha\r\n */\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.publicVideo(props.videoId));\r\n\r\n function onClick(): void {\r\n EmbedAuthHelper.renderSignInPopup({\r\n customerId: props.customerId,\r\n consumerKey: null,\r\n shareId: null,\r\n onComplete: (data: HashObject) => EmbedTokenHelper.applyToken(data?.embedToken)\r\n });\r\n }\r\n\r\n useHandleObjectError(video, EmbeddedDefaultErrors, IGNORE_ERROR_MAP);\r\n\r\n if (!config.data || !video.hasCompleted)\r\n return <></>;\r\n\r\n let sharedResource = video.data;\r\n if (video.hasError) {\r\n sharedResource = {\r\n name: LanguageService.getPhrase(namespace, 'privateVideo')\r\n };\r\n }\r\n \r\n return (\r\n <EmbeddedLogin\r\n onClick={onClick}\r\n video={sharedResource}\r\n />\r\n );\r\n}","export function mapRatingValueToColourClass(ratingValue: number): string {\r\n if (!ratingValue) return '';\r\n\r\n const ratings = (rating: number): string => {\r\n switch (true) {\r\n case (rating < 32):\r\n return 'cv-rating-purple';\r\n case (rating < 48):\r\n return 'cv-rating-green';\r\n case (rating < 80):\r\n return 'cv-rating-blue';\r\n case (rating < 96):\r\n return 'cv-rating-red';\r\n case (rating < 128):\r\n return 'cv-rating-pink';\r\n case (rating >= 128):\r\n return 'cv-rating-yellow';\r\n default:\r\n return ''; // Handles unrated\r\n }\r\n };\r\n\r\n return ratings(ratingValue);\r\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","EmbeddedLogin","props","onClick","video","ratingCode","code","ratingValue","value","ratingColour","seriesName","series","name","episodeNumber","seasonNumber","season","number","backgroundImage","ShareViewHelper","backgroundColor","getBgColorClass","style","DivButton","className","paddedSeason","NumberHelper","paddedEpisode","getSeries","viewBox","d","ClickViewLogo","EmbeddedDefaultErrors","namespace","IGNORE_ERROR_MAP","EmbeddedLcsLoginView","config","videoId","data","hasCompleted","sharedResource","hasError","customerId","consumerKey","shareId","onComplete","embedToken","mapRatingValueToColourClass","ratings"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6725],{94644:(e,n,r)=>{r.d(n,{r:()=>d});var t=r(50242),a=r(81886),i=r(67058),c=r(14553),o=r(49267),s=r(49075),u={notFound:i.d,forbidden:{rating:c.q,yearLevel:c.q,region:o.a,privacy:c.q},badRequest:s._};function d(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var c=Object.assign(Object.assign({},u),n);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==t.o.NotFound?i!==t.o.Forbidden?r.badRequest||a.Q.Ry.throw(new c.badRequest):r.forbidden||a.Q.Ry.throw(new c.forbidden.privacy):r.notFound||a.Q.Ry.throw(new c.notFound))}}},91286:(e,n,r)=>{r.d(n,{v:()=>c});var t=r(32735),a=r(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function c(e,n,r){var c=Array.isArray(e)?e:[e];(0,t.useEffect)((function(){c.forEach((function(e){(0,a.r)(e.statusCode,n,r)}))}),[i(c),n,r])}},14919:(e,n,r)=>{r.d(n,{w:()=>v});var t=r(32735),a=r(64249),i=r(11607),c=r(2786),o=r(7733),s=r(9085),u=r(98084),d=r(87984);const l={playButtonCircle:"zima4"};function v(e){var n,r,v,m,b=e.onClick,g=e.video,p="rating"in g&&(null===(n=g.rating)||void 0===n?void 0:n.code),f="rating"in g&&(null===(r=g.rating)||void 0===r?void 0:r.value),h=(0,d.C)(f),E="series"in g&&(null===(v=g.series)||void 0===v?void 0:v.name),k="episodeNumber"in g&&g.episodeNumber,w="season"in g&&(null===(m=g.season)||void 0===m?void 0:m.number),y=a.I.getImageUrl(g),C="";y||(C=(0,s.x)(g.name,o.b));var F={backgroundImage:y?"url('".concat(y,"')"):"",backgroundColor:C};return t.createElement(i.L,{className:"cv-embed-splash ".concat(C||"cv-embed-splash-black"),style:F,onClick:b},!!y&&t.createElement("div",{className:"cv-splash-mask"}),t.createElement("div",{className:"cv-splash-metadata"},t.createElement("h1",null,t.createElement("div",{className:"cv-splash-series"},function(e,n,r){if(!e)return"";if(!r||!n)return e;var t=u.I.padNumber(r,2),a=u.I.padNumber(n,2);return"".concat(e," S").concat(t," • E").concat(a)}(E,k,w)),g.name),t.createElement("div",{className:"cv-splash-rating ".concat(h)},p)),t.createElement("div",{className:l.playButtonCircle},t.createElement("svg",{viewBox:"0 0 1800 1800"},t.createElement("path",{d:"M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z"}))),t.createElement("div",{className:"cv-splash-logo"},t.createElement(c.Yo,null)))}},61995:(e,n,r)=>{r.d(n,{_:()=>c});var t=r(45593),a=r(21938),i=r(76867),c={notFound:a.W,forbidden:{rating:t.F,yearLevel:t.F,region:i.z,privacy:t.F},badRequest:i.z}},66725:(e,n,r)=>{r.r(n),r.d(n,{EmbeddedLcsLoginView:()=>f});var t=r(32735),a=r(60810),i=r(39202),c=r(23481),o=r(20354),s=r(39151),u=r(1575),d=r(91286),l=r(71158),v=r(14919),m=r(6736),b=r(61995),g="embed.embeddedLcsLogin",p={forbidden:!0};function f(e){var n=o.a.useBasicFetch(s.L.config()),r=o.a.useBasicFetch(u.R.publicVideo(e.videoId));if((0,d.v)(r,b._,p),!n.data||!r.hasCompleted)return t.createElement(t.Fragment,null);var f=r.data;return r.hasError&&(f={name:c.T.getPhrase(g,"privateVideo")}),t.createElement(v.w,{onClick:function(){var n=null,r=m.b.renderSignInPopup({targetUrl:i.Ab.GetCurrentOrigin(),customerId:e.customerId,onClose:function(){return l.P.applyToken(n)}});r&&new a.CVEventsApi(r).on("cv-token",(function(e,r){return n=r.embedToken}))},video:f})}},87984:(e,n,r)=>{function t(e){return e?function(e){switch(!0){case e<32:return"cv-rating-purple";case e<48:return"cv-rating-green";case e<80:return"cv-rating-blue";case e<96:return"cv-rating-red";case e<128:return"cv-rating-pink";case e>=128:return"cv-rating-yellow";default:return""}}(e):""}r.d(n,{C:()=>t})}}]);
|
|
2
|
+
//# sourceMappingURL=6725-694558e784-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6725-694558e784-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file://C:/ClickView Projects/clickview/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/embedded-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/EmbeddedLogin.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/utils/EmbedDefaultErrors.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embedded-lcs-login/EmbeddedLcsLoginView.tsx","file://C:/ClickView Projects/clickview/packages/projects/player/src/utils/PlayerRatingHelper.ts"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\r\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\n\r\nexport interface HttpErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new (video?: VideoTypes) => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nexport type IgnoreHttpErrorMap = {\r\n [key in keyof HttpErrorMap]: boolean;\r\n};\r\n\r\nconst defaultErrors: HttpErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function handleHttpError(\r\n info: HttpStatus | Xhr,\r\n customErrorMap: HttpErrorMap = {},\r\n /**\r\n * Prevent certain errors in the errorMap from being thrown\r\n * so that you may implement your own handler\r\n */\r\n ignoreMap: IgnoreHttpErrorMap = {}\r\n): void {\r\n if (!info)\r\n return;\r\n\r\n let statusCode: HttpStatus;\r\n\r\n if (typeof(info) === 'number') {\r\n statusCode = info;\r\n } else {\r\n statusCode = info.status;\r\n }\r\n\r\n const errorMap = {\r\n ...defaultErrors,\r\n ...customErrorMap\r\n };\r\n\r\n if (!statusCode)\r\n return;\r\n\r\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\r\n return;\r\n\r\n if (statusCode === HttpStatus.NotFound) {\r\n if (!ignoreMap.notFound)\r\n Core.ErrorHelper.throw(new errorMap.notFound());\r\n return;\r\n }\r\n\r\n if (statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n if (!ignoreMap.forbidden)\r\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\r\n return;\r\n }\r\n\r\n if (!ignoreMap.badRequest)\r\n Core.ErrorHelper.throw(new errorMap.badRequest());\r\n}\r\n\r\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\r\n handleHttpError(xhr.status, customErrorMap);\r\n}","import { useEffect } from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\r\n\r\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\r\n return flightObjs.map(obj => obj.statusCode).join(':');\r\n}\r\n\r\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\r\nexport function useHandleObjectError(\r\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\r\n customErrors?: HttpErrorMap,\r\n ignoreErrors?: IgnoreHttpErrorMap\r\n): void {\r\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\r\n\r\n useEffect(() => {\r\n flightObjs.forEach(obj => {\r\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\r\n });\r\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\r\n}","// extracted by mini-css-extract-plugin\nexport default {\"playButtonCircle\":\"zima4\"};","/**\r\n * IMPORTANT!\r\n * Please refer to projects\\player\\src\\components\\poster-image\\poster-image-details.md\r\n * before changing this file\r\n */\r\nimport React from 'react';\r\n\r\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { LOGO_SAFE_BG_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\r\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\r\n\r\nimport { mapRatingValueToColourClass } from 'projects/player/utils/PlayerRatingHelper';\r\n\r\nimport styles from './embedded-login.scss';\r\n\r\nfunction getSeries(seriesName: string, episodeNumber: number, seasonNumber: number): string {\r\n if (!seriesName)\r\n return '';\r\n\r\n if (!seasonNumber || !episodeNumber)\r\n return seriesName;\r\n\r\n const paddedSeason = NumberHelper.padNumber(seasonNumber, 2);\r\n const paddedEpisode = NumberHelper.padNumber(episodeNumber, 2);\r\n\r\n return `${seriesName} S${paddedSeason} • E${paddedEpisode}`;\r\n}\r\n\r\ninterface EmbeddedLoginProps {\r\n onClick: () => void;\r\n video: VideoTypes;\r\n}\r\n\r\nexport function EmbeddedLogin(props: EmbeddedLoginProps): React.ReactElement {\r\n const {\r\n onClick,\r\n video\r\n } = props;\r\n\r\n const ratingCode = 'rating' in video && video.rating?.code;\r\n const ratingValue = 'rating' in video && video.rating?.value;\r\n const ratingColour = mapRatingValueToColourClass(ratingValue);\r\n\r\n const seriesName = 'series' in video && video.series?.name;\r\n const episodeNumber = 'episodeNumber' in video && video.episodeNumber;\r\n const seasonNumber = 'season' in video && video.season?.number;\r\n\r\n const backgroundImage = ShareViewHelper.getImageUrl(video);\r\n let backgroundColor = '';\r\n\r\n if (!backgroundImage)\r\n backgroundColor = getBgColorClass(video.name, LOGO_SAFE_BG_CLASS_NAMES);\r\n\r\n const style: React.CSSProperties = {\r\n backgroundImage: backgroundImage ? `url('${backgroundImage}')` : '',\r\n backgroundColor\r\n };\r\n\r\n // Markup changes here should also be made to components in `landing-splash-plugin.ts`\r\n return (\r\n <DivButton\r\n className={`cv-embed-splash ${backgroundColor || 'cv-embed-splash-black'}`}\r\n style={style}\r\n onClick={onClick}\r\n >\r\n {!!backgroundImage && <div className='cv-splash-mask' />}\r\n\r\n <div className='cv-splash-metadata'>\r\n <h1>\r\n <div className='cv-splash-series'>\r\n {getSeries(seriesName, episodeNumber, seasonNumber)}\r\n </div>\r\n {video.name}\r\n </h1>\r\n\r\n <div className={`cv-splash-rating ${ratingColour}`}>\r\n {ratingCode}\r\n </div>\r\n </div>\r\n\r\n <div className={styles.playButtonCircle}>\r\n <svg viewBox='0 0 1800 1800'>\r\n <path d='M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z'></path>\r\n </svg>\r\n </div>\r\n\r\n <div className='cv-splash-logo'>\r\n <ClickViewLogoInverted />\r\n </div>\r\n </DivButton>\r\n );\r\n}","import { HttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\r\n\r\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\r\nimport { EmbedNotFoundError } from 'apps/embed/errors/not-found/EmbedNotFoundError';\r\nimport { UnspecifiedEmbedError } from 'apps/embed/errors/unspecified/UnspecifiedEmbedError';\r\n\r\nexport const EmbeddedDefaultErrors: HttpErrorMap = {\r\n notFound: EmbedNotFoundError,\r\n forbidden: {\r\n rating: PrivateEmbedError,\r\n yearLevel: PrivateEmbedError,\r\n region: UnspecifiedEmbedError,\r\n privacy: PrivateEmbedError\r\n },\r\n badRequest: UnspecifiedEmbedError\r\n};","import React from 'react';\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { LocationUtils } from 'libs/common/backbone/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\r\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\r\nimport { Config, Video } from 'libs/shared/interfaces';\r\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\r\nimport { EmbedTokenHelper } from 'libs/shared/utils/EmbedTokenHelper';\r\n\r\nimport { EmbeddedLogin } from 'apps/embed/components/embedded-login/EmbeddedLogin';\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\nimport { EmbeddedDefaultErrors } from 'apps/embed/utils/EmbedDefaultErrors';\r\n\r\nconst namespace = 'embed.embeddedLcsLogin';\r\n\r\nconst IGNORE_ERROR_MAP = {\r\n forbidden: true\r\n};\r\n\r\ninterface EmbeddedLcsLoginViewProps {\r\n videoId: string;\r\n customerId?: number\r\n}\r\n\r\nexport function EmbeddedLcsLoginView(props: EmbeddedLcsLoginViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\r\n\r\n /**\r\n * We're using the sharedVideo request because it's piped through Lite's backend\r\n * in order to get around not being able to use Gateway publicly. Ideally\r\n * we shouldn't need to use the sharedVideo request once Gateway works publicly\r\n * - Sha\r\n */\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.publicVideo(props.videoId));\r\n\r\n function onClick(): void {\r\n let embedToken: AuthToken = null;\r\n \r\n const popup = EmbedAuthHelper.renderSignInPopup({\r\n targetUrl: LocationUtils.GetCurrentOrigin(),\r\n customerId: props.customerId,\r\n onClose: () => EmbedTokenHelper.applyToken(embedToken)\r\n });\r\n\r\n if (popup) {\r\n const cvEventsAPi = new CVEventsApi(popup);\r\n cvEventsAPi.on('cv-token', (_: string, details: any) => embedToken = details.embedToken);\r\n }\r\n }\r\n\r\n useHandleObjectError(video, EmbeddedDefaultErrors, IGNORE_ERROR_MAP);\r\n\r\n if (!config.data || !video.hasCompleted)\r\n return <></>;\r\n\r\n let sharedResource = video.data;\r\n if (video.hasError) {\r\n sharedResource = {\r\n name: LanguageService.getPhrase(namespace, 'privateVideo')\r\n };\r\n }\r\n \r\n return (\r\n <EmbeddedLogin\r\n onClick={onClick}\r\n video={sharedResource}\r\n />\r\n );\r\n}","export function mapRatingValueToColourClass(ratingValue: number): string {\r\n if (!ratingValue) return '';\r\n\r\n const ratings = (rating: number): string => {\r\n switch (true) {\r\n case (rating < 32):\r\n return 'cv-rating-purple';\r\n case (rating < 48):\r\n return 'cv-rating-green';\r\n case (rating < 80):\r\n return 'cv-rating-blue';\r\n case (rating < 96):\r\n return 'cv-rating-red';\r\n case (rating < 128):\r\n return 'cv-rating-pink';\r\n case (rating >= 128):\r\n return 'cv-rating-yellow';\r\n default:\r\n return ''; // Handles unrated\r\n }\r\n };\r\n\r\n return ratings(ratingValue);\r\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","EmbeddedLogin","props","onClick","video","ratingCode","code","ratingValue","value","ratingColour","seriesName","series","name","episodeNumber","seasonNumber","season","number","backgroundImage","ShareViewHelper","backgroundColor","getBgColorClass","style","DivButton","className","paddedSeason","NumberHelper","paddedEpisode","getSeries","viewBox","d","ClickViewLogo","EmbeddedDefaultErrors","namespace","IGNORE_ERROR_MAP","EmbeddedLcsLoginView","config","videoId","data","hasCompleted","sharedResource","hasError","embedToken","popup","targetUrl","customerId","onClose","CVEventsApi","on","_","details","mapRatingValueToColourClass","ratings"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6736-750229acd4-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6736],{6736:(t,e,r)=>{r.d(e,{b:()=>_});var n=r(97395),o=r(81886),i=r(62756),c=r(23481),a=r(47663);function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function s(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,l(n.key),n)}}function l(t){var e=function(t,e){if("object"!=u(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==u(e)?e:e+""}function f(t,e,r){return e=p(e),function(t,e){if(e&&("object"===u(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,h()?Reflect.construct(e,r||[],p(t).constructor):e.apply(t,r))}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}var v="embed.protectiveBrowserSettingsError",d=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),(r=f(this,e,[c.T.getPhrase(v,"title")])).url=t,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&y(t,e)}(e,t),r=e,(n=[{key:"name",get:function(){return"ProtectiveBrowserSettingsError"}},{key:"dialogOptions",get:function(){return{title:c.T.getPhrase(v,"heading"),text:c.T.getPhrase(v,"description",{url:this.url}),buttons:[{text:c.T.getPhrase(v,"okay"),className:"btn btn-dark",success:!0}]}}}])&&s(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(a.S);function m(t){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},m(t)}function g(){g=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof b?e:b,c=Object.create(i.prototype),a=new C(n||[]);return o(c,"_invoke",{value:P(t,r,a)}),c}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",v="completed",d={};function b(){}function w(){}function x(){}var _={};s(_,c,(function(){return this}));var k=Object.getPrototypeOf,E=k&&k(k(N([])));E&&E!==r&&n.call(E,c)&&(_=E);var O=x.prototype=b.prototype=Object.create(_);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function r(o,i,c,a){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==m(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,c,a)}),(function(t){r("throw",t,c,a)})):e.resolve(l).then((function(t){s.value=t,c(s)}),(function(t){return r("throw",t,c,a)}))}a(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function P(e,r,n){var o=h;return function(i,c){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw c;return{value:t,done:!0}}for(n.method=i,n.arg=c;;){var a=n.delegate;if(a){var u=S(a,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:p,s.arg===d)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function S(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,S(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,d;var c=i.arg;return c?c.done?(r[e.resultName]=c.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,d):c:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,d)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function C(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(m(e)+" is not iterable")}return w.prototype=x,o(O,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=s(x,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,u,"GeneratorFunction")),t.prototype=Object.create(O),t},e.awrap=function(t){return{__await:t}},L(j.prototype),s(j.prototype,a,(function(){return this})),e.AsyncIterator=j,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var c=new j(l(t,r,n,o),i);return e.isGeneratorFunction(r)?c:c.next().then((function(t){return t.done?t.value:c.next()}))},L(O),s(O,u,"Generator"),s(O,c,(function(){return this})),s(O,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,C.prototype={constructor:C,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(I),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var c=this.tryEntries[i],a=c.completion;if("root"===c.tryLoc)return o("end");if(c.tryLoc<=this.prev){var u=n.call(c,"catchLoc"),s=n.call(c,"finallyLoc");if(u&&s){if(this.prev<c.catchLoc)return o(c.catchLoc,!0);if(this.prev<c.finallyLoc)return o(c.finallyLoc)}else if(u){if(this.prev<c.catchLoc)return o(c.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return o(c.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var c=i?i.completion:{};return c.type=t,c.arg=e,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(c)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),I(r),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;I(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),d}},e}var b=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function c(t){try{u(n.next(t))}catch(t){i(t)}}function a(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(c,a)}u((n=n.apply(t,e||[])).next())}))},w="_cookieTest";function x(t,e,r,n){var i=window.open(t,"_blank",function(t){var e="sm"===t?550:screen.availWidth,r="sm"===t?750:screen.availWidth,n=parseInt(screen.availWidth/2-e/2+""),o=parseInt(screen.availHeight/2-r/2+"");return["width=".concat(e),"height=".concat(r),"status","resizable","left=".concat(n),"top=".concat(o),"screenX=".concat(n),"screenY=".concat(o),"scrollbars=yes"].join(",")}(n));if(i)return k(i,r),i;o.Q.Ry.throw(new d(e))}var _={renderSignInPopup:function(t){var e=t.targetUrl,o=t.shareId,c=t.consumerKey,a=t.customerId,u=t.onClose,s=t.size,l=void 0===s?"sm":s,f=t.redirectUrl;f||(f=n._.urlBuilder("/embed-login-success",{consumerKey:c}));var h=n._.safeUrlConcat(e,"/login"),p={redirectUrl:f,showSignUp:!0};o&&(p.shareId=o),a&&(p.customerId=a);var y=n._.urlBuilder(h,p);if(c!==i.A.MicrosoftTeams)return x(y,e,u,l);!function(t,e){b(this,void 0,void 0,g().mark((function n(){var o;return g().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,r.e(4777).then(r.t.bind(r,94777,23));case 2:return o=n.sent,n.prev=3,n.next=6,o.app.initialize();case 6:return n.next=8,o.authentication.authenticate({url:t,height:1e3,width:1e3});case 8:n.next=13;break;case 10:n.prev=10,n.t0=n.catch(3),console.log(n.t0);case 13:return n.prev=13,e(),n.finish(13);case 16:case"end":return n.stop()}}),n,null,[[3,10,13,16]])})))}(y,u)},renderSignUpPopup:function(t){var e=t.primaryUrl,r=t.onClose,o=t.size,i=void 0===o?"sm":o;return x(n._.safeUrlConcat(e,"/sign-up"),e,r,i)},setPreloadCookie:function(){docCookies.setItem(w,"1",3600,null,null,!0,"none")},canUseCookies:function(){return docCookies.setItem(w,"1",10,null,null,!0,"none"),!!docCookies.getItem("_cookieTest")||(docCookies.setItem(w,"1",10),!!docCookies.getItem(w))},closePopup:function(t){return b(this,void 0,void 0,g().mark((function e(){var n;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t===i.A.MicrosoftTeams){e.next=3;break}return window.setTimeout((function(){return window.close()}),1e3),e.abrupt("return");case 3:return e.prev=3,e.next=6,r.e(4777).then(r.t.bind(r,94777,23));case 6:return n=e.sent,e.next=9,n.app.initialize();case 9:n.authentication.notifySuccess();case 10:return e.prev=10,window.setTimeout((function(){return window.close()}),1e3),e.finish(10);case 13:case"end":return e.stop()}}),e,null,[[3,,10,13]])})))}};function k(t,e){setTimeout((function(){t&&(!1===t.closed?k(t,e):e())}),500)}}}]);
|
|
3
|
+
//# sourceMappingURL=6736-750229acd4-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6736-750229acd4-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/errors/protected-browser-settings-error/ProtectiveBrowserSettingsError.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/utils/EmbedAuthHelper.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces';\r\n\r\nconst namespace = 'embed.protectiveBrowserSettingsError';\r\n\r\nexport class ProtectiveBrowserSettingsError extends DialogError {\r\n private url: string;\r\n\r\n constructor(url: string) {\r\n super(LanguageService.getPhrase(namespace, 'title'));\r\n\r\n this.url = url;\r\n }\r\n\r\n // @ts-ignore\r\n public get name(): string {\r\n return 'ProtectiveBrowserSettingsError';\r\n }\r\n\r\n // @ts-ignore\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(namespace, 'heading'),\r\n text: LanguageService.getPhrase(namespace, 'description', {\r\n url: this.url\r\n }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(namespace, 'okay'),\r\n className: 'btn btn-dark',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { PluginConsumers } from 'shared/hooks/use-plugin-helper/usePluginHelper';\r\n\r\nimport { ProtectiveBrowserSettingsError } from 'apps/embed/errors/protected-browser-settings-error/ProtectiveBrowserSettingsError';\r\n\r\nconst COOKIE_TEST = '_cookieTest';\r\n\r\ntype PopupSize = 'sm' | 'lg';\r\n\r\nfunction renderPopup(\r\n url: string,\r\n targetUrl: string,\r\n onClose: () => void,\r\n size: PopupSize\r\n): Window {\r\n const popup = window.open(url, '_blank', getPopupAttributes(size));\r\n\r\n if (popup) {\r\n pollWindow(popup, onClose);\r\n } else {\r\n Core.ErrorHelper.throw(new ProtectiveBrowserSettingsError(targetUrl));\r\n return;\r\n }\r\n return popup;\r\n}\r\n\r\nexport const EmbedAuthHelper = {\r\n renderSignInPopup(options: {\r\n targetUrl: string;\r\n onClose: () => void;\r\n redirectUrl?: string;\r\n shareId?: string;\r\n consumerKey?: string;\r\n customerId?: number;\r\n size?: PopupSize\r\n }): Window {\r\n const {\r\n targetUrl,\r\n shareId,\r\n consumerKey,\r\n customerId,\r\n onClose,\r\n size = 'sm'\r\n } = options;\r\n \r\n let { redirectUrl } = options;\r\n\r\n if (!redirectUrl)\r\n redirectUrl = UrlHelper.urlBuilder('/embed-login-success', { consumerKey });\r\n\r\n const baseUrl = UrlHelper.safeUrlConcat(targetUrl, '/login');\r\n \r\n const params: HashObject = {\r\n redirectUrl,\r\n showSignUp: true\r\n };\r\n \r\n if (shareId) params.shareId = shareId;\r\n if (customerId) params.customerId = customerId;\r\n \r\n const url = UrlHelper.urlBuilder(baseUrl, params);\r\n \r\n if (consumerKey === PluginConsumers.MicrosoftTeams) {\r\n microsoftTeamsOpenPopup(url, onClose);\r\n return;\r\n }\r\n \r\n return renderPopup(url, targetUrl, onClose, size);\r\n },\r\n\r\n renderSignUpPopup(options: {\r\n primaryUrl: string;\r\n onClose: () => void;\r\n size?: PopupSize\r\n }): Window {\r\n const { primaryUrl, onClose, size = 'sm' } = options;\r\n const url = UrlHelper.safeUrlConcat(primaryUrl, '/sign-up');\r\n return renderPopup(url, primaryUrl, onClose, size);\r\n },\r\n\r\n setPreloadCookie(): void {\r\n docCookies.setItem(COOKIE_TEST, '1', 3600, null, null, true, 'none');\r\n },\r\n\r\n canUseCookies(): boolean {\r\n docCookies.setItem(COOKIE_TEST, '1', 10, null, null, true, 'none');\r\n\r\n const cookie = docCookies.getItem('_cookieTest');\r\n \r\n if (cookie)\r\n return true;\r\n\r\n /**\r\n * If the above didn't work, perhaps this is an older browser that doesn't\r\n * support SameSite: None. So we try the legacy way.\r\n */\r\n docCookies.setItem(COOKIE_TEST, '1', 10);\r\n return !!docCookies.getItem(COOKIE_TEST);\r\n },\r\n\r\n async closePopup(consumerKey: string): Promise<void> {\r\n if (consumerKey !== PluginConsumers.MicrosoftTeams) {\r\n window.setTimeout(() => window.close(), 1000);\r\n return;\r\n }\r\n\r\n try {\r\n const microsoftTeams = await import('@microsoft/teams-js');\r\n await microsoftTeams.app.initialize();\r\n microsoftTeams.authentication.notifySuccess();\r\n } finally {\r\n window.setTimeout(() => window.close(), 1000);\r\n }\r\n }\r\n};\r\n\r\nfunction getPopupAttributes(size: PopupSize): string {\r\n const width = size === 'sm' ? 550 : screen.availWidth;\r\n const height = size === 'sm' ? 750 : screen.availWidth;\r\n const left = parseInt((screen.availWidth / 2) - (width / 2) + '');\r\n const top = parseInt((screen.availHeight / 2) - (height / 2) + '');\r\n\r\n return [\r\n `width=${width}`,\r\n `height=${height}`,\r\n 'status',\r\n 'resizable',\r\n `left=${left}`,\r\n `top=${top}`,\r\n `screenX=${left}`,\r\n `screenY=${top}`,\r\n `scrollbars=yes`\r\n ].join(',');\r\n}\r\n\r\nfunction pollWindow(popup: Window, onClose: () => void): void {\r\n const pollTime = 500;\r\n\r\n setTimeout(() => {\r\n // If the popup is null, dont keep polling\r\n if (!popup)\r\n return;\r\n\r\n if (popup.closed !== false) {\r\n onClose();\r\n return;\r\n }\r\n\r\n pollWindow(popup, onClose);\r\n }, pollTime);\r\n}\r\n\r\nasync function microsoftTeamsOpenPopup(url: string, onClose: () => void): Promise<void> {\r\n const microsoftTeams = await import('@microsoft/teams-js');\r\n\r\n try {\r\n await microsoftTeams.app.initialize();\r\n await microsoftTeams.authentication.authenticate({\r\n url: url,\r\n height: 1000,\r\n width: 1000\r\n });\r\n } catch (err) {\r\n // Logging this to the console in case we ever need to debug. - Sha\r\n console.log(err);\r\n } finally {\r\n onClose();\r\n }\r\n}"],"names":["namespace","ProtectiveBrowserSettingsError","url","LanguageService","title","text","this","buttons","className","success","DialogError","COOKIE_TEST","renderPopup","targetUrl","onClose","size","popup","window","open","width","screen","availWidth","height","left","parseInt","top","availHeight","join","getPopupAttributes","pollWindow","EmbedAuthHelper","renderSignInPopup","options","shareId","consumerKey","customerId","redirectUrl","UrlHelper","baseUrl","params","showSignUp","microsoftTeams","app","initialize","authentication","authenticate","console","log","microsoftTeamsOpenPopup","renderSignUpPopup","primaryUrl","setPreloadCookie","docCookies","setItem","canUseCookies","getItem","closePopup","setTimeout","close","notifySuccess","closed"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6736-91b53b9d71-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6736],{6736:(t,e,r)=>{r.d(e,{b:()=>E});var n=r(60810),o=r(39202),i=r(97395),c=r(81886),a=r(62756),u=r(23481),s=r(47663);function l(t){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l(t)}function f(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,h(n.key),n)}}function h(t){var e=function(t,e){if("object"!=l(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==l(e)?e:e+""}function p(t,e,r){return e=d(e),function(t,e){if(e&&("object"===l(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,y()?Reflect.construct(e,r||[],d(t).constructor):e.apply(t,r))}function y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(y=function(){return!!t})()}function d(t){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},d(t)}function v(t,e){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},v(t,e)}var m="embed.protectiveBrowserSettingsError",g=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),(r=p(this,e,[u.T.getPhrase(m,"title")])).url=t,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&v(t,e)}(e,t),r=e,(n=[{key:"name",get:function(){return"ProtectiveBrowserSettingsError"}},{key:"dialogOptions",get:function(){return{title:u.T.getPhrase(m,"heading"),text:u.T.getPhrase(m,"description",{url:this.url}),buttons:[{text:u.T.getPhrase(m,"okay"),className:"btn btn-dark",success:!0}]}}}])&&f(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(s.S);function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function w(){w=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,c=Object.create(i.prototype),a=new T(n||[]);return o(c,"_invoke",{value:j(t,r,a)}),c}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function O(){}var _={};s(_,c,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(N([])));k&&k!==r&&n.call(k,c)&&(_=k);var E=O.prototype=m.prototype=Object.create(_);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(o,i,c,a){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==b(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,c,a)}),(function(t){r("throw",t,c,a)})):e.resolve(l).then((function(t){s.value=t,c(s)}),(function(t){return r("throw",t,c,a)}))}a(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function j(e,r,n){var o=h;return function(i,c){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw c;return{value:t,done:!0}}for(n.method=i,n.arg=c;;){var a=n.delegate;if(a){var u=P(a,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function P(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,P(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var c=i.arg;return c?c.done?(r[e.resultName]=c.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):c:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function I(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(I,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(b(e)+" is not iterable")}return g.prototype=O,o(E,"constructor",{value:O,configurable:!0}),o(O,"constructor",{value:g,configurable:!0}),g.displayName=s(O,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,O):(t.__proto__=O,s(t,u,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},L(S.prototype),s(S.prototype,a,(function(){return this})),e.AsyncIterator=S,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var c=new S(l(t,r,n,o),i);return e.isGeneratorFunction(r)?c:c.next().then((function(t){return t.done?t.value:c.next()}))},L(E),s(E,u,"Generator"),s(E,c,(function(){return this})),s(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var c=this.tryEntries[i],a=c.completion;if("root"===c.tryLoc)return o("end");if(c.tryLoc<=this.prev){var u=n.call(c,"catchLoc"),s=n.call(c,"finallyLoc");if(u&&s){if(this.prev<c.catchLoc)return o(c.catchLoc,!0);if(this.prev<c.finallyLoc)return o(c.finallyLoc)}else if(u){if(this.prev<c.catchLoc)return o(c.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return o(c.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var c=i?i.completion:{};return c.type=t,c.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(c)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),C(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}var O="_cookieTest";function _(t,e,r){var n=window.open(t,"_blank",function(t){var e="sm"===t?550:screen.availWidth,r="sm"===t?750:screen.availWidth,n=parseInt(screen.availWidth/2-e/2+""),o=parseInt(screen.availHeight/2-r/2+"");return["width=".concat(e),"height=".concat(r),"status","resizable","left=".concat(n),"top=".concat(o),"screenX=".concat(n),"screenY=".concat(o),"scrollbars=yes"].join(",")}(r));if(n)return x(n,e),n;c.Q.Ry.throw(new g(o.Ab.GetCurrentOrigin()))}function x(t,e){setTimeout((function(){t&&(!1===t.closed?x(t,e):e())}),500)}function k(t){var e=function(t){var e=i._.safeUrlConcat(o.Ab.GetCurrentOrigin(),"/login");return i._.urlBuilder(e,{redirectUrl:t.redirectUrl,shareId:t.shareId,customerId:t.customerId,showSignUp:!0})}({redirectUrl:t.redirectUrl,shareId:t.shareId,customerId:t.customerId});if(t.consumerKey!==a.A.MicrosoftTeams){var c=_(e,(function(){return t.onComplete(u)}),t.size),u=null;new n.CVEventsApi(c).on(t.eventName,(function(t,e){return u=e}))}else!function(t,e){var n,o,i,c;n=this,o=void 0,i=void 0,c=w().mark((function n(){var o,i,c;return w().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,r.e(4777).then(r.t.bind(r,94777,23));case 2:return o=n.sent,n.prev=3,n.next=6,o.app.initialize();case 6:return n.next=8,o.authentication.authenticate({url:t,height:1e3,width:1e3});case 8:i=n.sent,c=JSON.parse(i),e(null==c?void 0:c.data),n.next=17;break;case 13:n.prev=13,n.t0=n.catch(3),console.log(n.t0),e();case 17:case"end":return n.stop()}}),n,null,[[3,13]])})),new(i||(i=Promise))((function(t,e){function r(t){try{u(c.next(t))}catch(t){e(t)}}function a(t){try{u(c.throw(t))}catch(t){e(t)}}function u(e){var n;e.done?t(e.value):(n=e.value,n instanceof i?n:new i((function(t){t(n)}))).then(r,a)}u((c=c.apply(n,o||[])).next())}))}(e,t.onComplete)}var E={renderSignInPopup:function(t){k({redirectUrl:i._.urlBuilder("/embed-login-success",{consumerKey:t.consumerKey}),customerId:t.customerId,consumerKey:t.consumerKey,shareId:t.shareId,onComplete:t.onComplete,eventName:"cv-token",size:"sm"})},renderSelectVideoPopup:function(t){k({redirectUrl:i._.urlBuilder("/plugin",o.Ab.GetQuery()),customerId:t.customerId,consumerKey:t.consumerKey,onComplete:function(t){var e={type:"cv-lms-addvideo",data:t};window.parent.postMessage(JSON.stringify(e),"*")},eventName:"cv-lms-addvideo",size:"lg"})},renderSignUpPopup:function(t){var e=t.onClose;_(i._.safeUrlConcat(o.Ab.GetCurrentOrigin(),"/sign-up"),e,"sm")},setPreloadCookie:function(){docCookies.setItem(O,"1",3600,null,null,!0,"none")},canUseCookies:function(){return docCookies.setItem(O,"1",10,null,null,!0,"none"),!!docCookies.getItem("_cookieTest")||(docCookies.setItem(O,"1",10),!!docCookies.getItem(O))}}}}]);
|
|
3
|
+
//# sourceMappingURL=6736-91b53b9d71-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6736-91b53b9d71-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/errors/protected-browser-settings-error/ProtectiveBrowserSettingsError.ts","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/utils/EmbedAuthHelper.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces';\r\n\r\nconst namespace = 'embed.protectiveBrowserSettingsError';\r\n\r\nexport class ProtectiveBrowserSettingsError extends DialogError {\r\n private url: string;\r\n\r\n constructor(url: string) {\r\n super(LanguageService.getPhrase(namespace, 'title'));\r\n\r\n this.url = url;\r\n }\r\n\r\n // @ts-ignore\r\n public get name(): string {\r\n return 'ProtectiveBrowserSettingsError';\r\n }\r\n\r\n // @ts-ignore\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(namespace, 'heading'),\r\n text: LanguageService.getPhrase(namespace, 'description', {\r\n url: this.url\r\n }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(namespace, 'okay'),\r\n className: 'btn btn-dark',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import { CVEventsApi } from 'CVEvents';\r\n\r\nimport { LocationUtils } from 'libs/common/backbone/core';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { PluginConsumers } from 'shared/hooks/use-plugin-helper/usePluginHelper';\r\n\r\nimport { ProtectiveBrowserSettingsError } from 'apps/embed/errors/protected-browser-settings-error/ProtectiveBrowserSettingsError';\r\n\r\nconst COOKIE_TEST = '_cookieTest';\r\n\r\ntype PopupSize = 'sm' | 'lg';\r\n\r\nfunction renderPopup(\r\n url: string,\r\n onClose: () => void,\r\n size: PopupSize\r\n): Window {\r\n const popup = window.open(url, '_blank', getPopupAttributes(size));\r\n\r\n if (popup) {\r\n pollWindow(popup, onClose);\r\n } else {\r\n Core.ErrorHelper.throw(new ProtectiveBrowserSettingsError(LocationUtils.GetCurrentOrigin()));\r\n return;\r\n }\r\n return popup;\r\n}\r\n\r\nfunction getPopupAttributes(size: PopupSize): string {\r\n const width = size === 'sm' ? 550 : screen.availWidth;\r\n const height = size === 'sm' ? 750 : screen.availWidth;\r\n const left = parseInt((screen.availWidth / 2) - (width / 2) + '');\r\n const top = parseInt((screen.availHeight / 2) - (height / 2) + '');\r\n\r\n return [\r\n `width=${width}`,\r\n `height=${height}`,\r\n 'status',\r\n 'resizable',\r\n `left=${left}`,\r\n `top=${top}`,\r\n `screenX=${left}`,\r\n `screenY=${top}`,\r\n `scrollbars=yes`\r\n ].join(',');\r\n}\r\n\r\nfunction getPopupUrl(options: {\r\n redirectUrl?: string;\r\n shareId?: string;\r\n customerId?: number;\r\n}): string {\r\n const baseUrl = UrlHelper.safeUrlConcat(LocationUtils.GetCurrentOrigin(), '/login');\r\n\r\n return UrlHelper.urlBuilder(baseUrl, {\r\n redirectUrl: options.redirectUrl,\r\n shareId: options.shareId,\r\n customerId: options.customerId,\r\n showSignUp: true\r\n });\r\n}\r\n\r\nfunction pollWindow(popup: Window, onClose: () => void): void {\r\n const pollTime = 500;\r\n\r\n setTimeout(() => {\r\n // If the popup is null, dont keep polling\r\n if (!popup)\r\n return;\r\n\r\n if (popup.closed !== false) {\r\n onClose();\r\n return;\r\n }\r\n\r\n pollWindow(popup, onClose);\r\n }, pollTime);\r\n}\r\n\r\nasync function microsoftTeamsOpenPopup(url: string, onComplete: (data?: HashObject) => void): Promise<void> {\r\n const microsoftTeams = await import('@microsoft/teams-js');\r\n\r\n try {\r\n await microsoftTeams.app.initialize();\r\n const resultString = await microsoftTeams.authentication.authenticate({\r\n url: url,\r\n height: 1000,\r\n width: 1000\r\n });\r\n \r\n const result = JSON.parse(resultString);\r\n onComplete(result?.data);\r\n } catch (err) {\r\n // Logging this to the console in case we ever need to debug. - Sha\r\n console.log(err);\r\n onComplete();\r\n }\r\n}\r\n\r\n/**\r\n * Renders a popup that relies on either @microsoft/teams-js\r\n * or CVEventsAPI to capture information from the opening screen\r\n * and pass it back to the onComplete handler - Sha\r\n */\r\nfunction renderCommsPopup(options: {\r\n redirectUrl: string;\r\n customerId: number;\r\n consumerKey: string;\r\n onComplete: (data?: HashObject) => void;\r\n eventName: string;\r\n shareId?: string;\r\n size: PopupSize;\r\n}): void {\r\n const url = getPopupUrl({\r\n redirectUrl: options.redirectUrl,\r\n shareId: options.shareId,\r\n customerId: options.customerId\r\n });\r\n\r\n if (options.consumerKey === PluginConsumers.MicrosoftTeams) {\r\n microsoftTeamsOpenPopup(url, options.onComplete);\r\n return;\r\n }\r\n\r\n const popup = renderPopup(url, () => options.onComplete(details), options.size);\r\n let details: HashObject = null;\r\n const cvEventsAPi = new CVEventsApi(popup);\r\n cvEventsAPi.on(options.eventName, (_: string, data: any) => details = data);\r\n}\r\n\r\nexport const EmbedAuthHelper = {\r\n renderSignInPopup(options: {\r\n customerId: number;\r\n consumerKey: string;\r\n shareId: string;\r\n onComplete: (data?: HashObject) => void;\r\n }): void {\r\n const redirectUrl = UrlHelper.urlBuilder('/embed-login-success', {\r\n consumerKey: options.consumerKey\r\n });\r\n\r\n renderCommsPopup({\r\n redirectUrl,\r\n customerId: options.customerId,\r\n consumerKey: options.consumerKey,\r\n shareId: options.shareId,\r\n onComplete: options.onComplete,\r\n eventName: 'cv-token',\r\n size: 'sm'\r\n });\r\n },\r\n\r\n renderSelectVideoPopup(options: {\r\n customerId: number;\r\n consumerKey: string;\r\n }): void {\r\n const redirectUrl = UrlHelper.urlBuilder(\r\n '/plugin',\r\n LocationUtils.GetQuery()\r\n );\r\n\r\n function onComplete(data?: HashObject) {\r\n const message = { type: 'cv-lms-addvideo', data };\r\n window.parent.postMessage(JSON.stringify(message), '*');\r\n }\r\n\r\n renderCommsPopup({\r\n redirectUrl,\r\n customerId: options.customerId,\r\n consumerKey: options.consumerKey,\r\n onComplete,\r\n eventName: 'cv-lms-addvideo',\r\n size: 'lg'\r\n });\r\n },\r\n\r\n renderSignUpPopup(options: {\r\n onClose: () => void;\r\n }): void {\r\n const { onClose } = options;\r\n const url = UrlHelper.safeUrlConcat(LocationUtils.GetCurrentOrigin(), '/sign-up');\r\n\r\n renderPopup(url, onClose, 'sm');\r\n },\r\n\r\n setPreloadCookie(): void {\r\n docCookies.setItem(COOKIE_TEST, '1', 3600, null, null, true, 'none');\r\n },\r\n\r\n canUseCookies(): boolean {\r\n docCookies.setItem(COOKIE_TEST, '1', 10, null, null, true, 'none');\r\n\r\n const cookie = docCookies.getItem('_cookieTest');\r\n \r\n if (cookie)\r\n return true;\r\n\r\n /**\r\n * If the above didn't work, perhaps this is an older browser that doesn't\r\n * support SameSite: None. So we try the legacy way.\r\n */\r\n docCookies.setItem(COOKIE_TEST, '1', 10);\r\n return !!docCookies.getItem(COOKIE_TEST);\r\n }\r\n};"],"names":["namespace","ProtectiveBrowserSettingsError","url","LanguageService","title","text","this","buttons","className","success","DialogError","COOKIE_TEST","renderPopup","onClose","size","popup","window","open","width","screen","availWidth","height","left","parseInt","top","availHeight","join","getPopupAttributes","pollWindow","setTimeout","closed","renderCommsPopup","options","baseUrl","UrlHelper","redirectUrl","shareId","customerId","showSignUp","getPopupUrl","consumerKey","onComplete","details","CVEventsApi","on","eventName","_","data","microsoftTeams","app","initialize","authentication","authenticate","resultString","result","JSON","parse","console","log","microsoftTeamsOpenPopup","EmbedAuthHelper","renderSignInPopup","renderSelectVideoPopup","message","type","parent","postMessage","stringify","renderSignUpPopup","setPreloadCookie","docCookies","setItem","canUseCookies","getItem"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6896],{36896:(e,n,t)=>{t.r(n),t.d(n,{PluginLoginView:()=>b});var r=t(32735),a=t(98269),i=t(60810),l=t(39202),c=t(97395),s=t(81886),o=t(20354),u=t(2786),m=t(83345),d=t(39151),p=t(62756),g=t(6736);const f={contentWidth:"Vm5ro"};var v="embed.pluginLogin";function b(e){var n=o.a.useBasicFetch(d.L.config()),t=function(e){var n=e.split("?");if(!n.length)return null;var t=n.slice(1).join("?");return l.Ab.DeserializeQueryParams(t)}(e.returnUrl),b=t.customerId,k=t.consumerKey,y=k===p.A.MicrosoftTeams,E=k===p.A.SmartEmbed;return r.createElement("div",{className:"d-flex justify-content-center align-items-center vh-100"},r.createElement("div",{className:"".concat(f.contentWidth," d-flex align-items-center flex-column justify-content-center p-4")},r.createElement("div",{className:"px-4"},r.createElement(u.$S,null)),r.createElement("p",{className:"my-3"},r.createElement(m.x,{namespace:v,phrase:"tagline"})),r.createElement(a.Z,{variant:"dark",className:"btn-lg w-100",onClick:function(){g.b.canUseCookies()||y?g.b.renderSignInPopup({targetUrl:n.data.primaryUrl,customerId:b,consumerKey:k,onClose:function(){s.Q.Ab.PageLoad(e.returnUrl)}}):function(){var e=g.b.renderSignInPopup({targetUrl:l.Ab.GetCurrentOrigin(),redirectUrl:c._.urlBuilder("/plugin",l.Ab.GetQuery()),customerId:b,onClose:function(){null==n||n.off("cv-lms-addvideo")},size:"lg"});if(e){var n=new i.CVEventsApi(e);n.on("cv-lms-addvideo",(function(e,n){var t={type:"cv-lms-addvideo",data:n};window.parent.postMessage(JSON.stringify(t),"*")}))}}()}},r.createElement(m.x,{namespace:v,phrase:"signIn"})),E&&r.createElement(a.Z,{variant:"link",className:"btn-lg w-100 info-link mt-2",onClick:function(){g.b.renderSignUpPopup({primaryUrl:n.data.primaryUrl,onClose:function(){s.Q.Ab.PageLoad(e.returnUrl)}})}},r.createElement(m.x,{namespace:v,phrase:"signUp"}))))}}}]);
|
|
2
|
+
//# sourceMappingURL=6896-2e0f1b3265-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6896-2e0f1b3265-lite.chunk.js","mappings":"+RACA,SAAgB,aAAe,SCoB/B,IAAMA,EAAY,oBAkBZ,SAAUC,EAAgBC,GAC9B,IAAMC,EAAS,kBAA6BC,EAAA,YAE5C,EAfF,SAAmBC,GACjB,IAAMC,EAAQD,EAAUE,MAAM,KAE9B,IAAKD,EAAME,OACT,OAAO,KAET,IAAMC,EAAcH,EAAMI,MAAM,GAAGC,KAAK,KAGxC,OAFe,4BAAqCF,EAGtD,CAKsCG,CAAUV,EAAMG,WAA5CQ,EAAU,EAAVA,WAAYC,EAAW,EAAXA,YACdC,EAAmBD,IAAgB,mBACnCE,EAAeF,IAAgB,eAuDrC,OACE,uBAAKG,UAAU,2DACb,uBAAKA,UAAS,UAAK,eAAmB,sEACpC,uBAAKA,UAAU,QACb,gBAACC,EAAA,GAAa,OAEhB,qBAAGD,UAAU,QAAO,gBAACE,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAO,aACvD,gBAACC,EAAA,EAAM,CAACC,QAAQ,OAAOL,UAAU,eAAeM,QA5DtD,WACOC,EAAA,mBAAoCT,EAKzCS,EAAA,oBAAkC,CAChCC,UAAWtB,EAAOuB,KAAKC,WACvBd,WAAAA,EACAC,YAAAA,EACAc,QAAS,WACP,gBAA4B1B,EAAMG,UACpC,IAaJ,WACE,IAAMwB,EAAQL,EAAA,oBAAkC,CAC9CC,UAAW,wBACXK,YAAaC,EAAA,aACX,UACA,iBAEFlB,WAAAA,EACAe,QAAS,WACPI,SAAAA,EAAaC,IAAI,kBACnB,EACAC,KAAM,OAGR,GAAKL,EAAL,CAGA,IAAMG,EAAc,IAAI,EAAAG,YAAYN,GAEpCG,EAAYI,GAAG,mBAAmB,SAACC,EAAeC,GAChD,IAAMC,EAAU,CACdC,KAAM,kBACNd,KAAMY,GAERG,OAAOC,OAAOC,YAAYC,KAAKC,UAAUN,GAAU,IACrD,GAVQ,CAWV,CAjDIO,EAYJ,GA+CQ,gBAAC3B,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAO,YAEpCJ,GACC,gBAACK,EAAA,EAAM,CAACC,QAAQ,OAAOL,UAAU,8BAA8BM,QAhDvE,WACEC,EAAA,oBAAkC,CAChCG,WAAYxB,EAAOuB,KAAKC,WACxBC,QAAS,WACP,gBAA4B1B,EAAMG,UACpC,GAEJ,GA0CU,gBAACc,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAO,aAM/C,C","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/plugin-login/plugin-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/plugin-login/PluginLoginView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"contentWidth\":\"Vm5ro\"};","import React from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { LocationUtils } from 'libs/common/backbone/core';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { Config } from 'libs/shared/interfaces';\r\n\r\nimport { PluginConsumers } from 'shared/hooks/use-plugin-helper/usePluginHelper';\r\n\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\n\r\nimport styles from './plugin-login.scss';\r\n\r\nconst namespace = 'embed.pluginLogin';\r\n\r\ninterface PluginLoginProps {\r\n returnUrl: string;\r\n}\r\n\r\nfunction getParams(returnUrl: string): HashObject {\r\n const parts = returnUrl.split('?');\r\n\r\n if (!parts.length)\r\n return null;\r\n\r\n const queryString = parts.slice(1).join('?');\r\n const params = LocationUtils.DeserializeQueryParams(queryString);\r\n\r\n return params;\r\n}\r\n\r\nexport function PluginLoginView(props: PluginLoginProps): React.ReactElement {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\r\n\r\n const { customerId, consumerKey } = getParams(props.returnUrl);\r\n const isMicrosoftTeams = consumerKey === PluginConsumers.MicrosoftTeams;\r\n const isSmartEmbed = consumerKey === PluginConsumers.SmartEmbed;\r\n\r\n function onClick(): void {\r\n if (!EmbedAuthHelper.canUseCookies() && !isMicrosoftTeams) {\r\n launchPluginPopup();\r\n return;\r\n }\r\n\r\n EmbedAuthHelper.renderSignInPopup({\r\n targetUrl: config.data.primaryUrl,\r\n customerId,\r\n consumerKey,\r\n onClose: () => {\r\n Core.LocationUtils.PageLoad(props.returnUrl);\r\n }\r\n });\r\n }\r\n \r\n function onClickSignUp(): void {\r\n EmbedAuthHelper.renderSignUpPopup({\r\n primaryUrl: config.data.primaryUrl,\r\n onClose: () => {\r\n Core.LocationUtils.PageLoad(props.returnUrl);\r\n }\r\n });\r\n }\r\n\r\n function launchPluginPopup(): void {\r\n const popup = EmbedAuthHelper.renderSignInPopup({\r\n targetUrl: LocationUtils.GetCurrentOrigin(),\r\n redirectUrl: UrlHelper.urlBuilder(\r\n '/plugin',\r\n LocationUtils.GetQuery()\r\n ),\r\n customerId,\r\n onClose: () => {\r\n cvEventsAPi?.off('cv-lms-addvideo');\r\n },\r\n size: 'lg'\r\n });\r\n\r\n if (!popup)\r\n return;\r\n\r\n const cvEventsAPi = new CVEventsApi(popup);\r\n\r\n cvEventsAPi.on('cv-lms-addvideo', (event: string, details: any) => {\r\n const message = {\r\n type: 'cv-lms-addvideo',\r\n data: details\r\n };\r\n window.parent.postMessage(JSON.stringify(message), '*');\r\n });\r\n }\r\n\r\n return (\r\n <div className='d-flex justify-content-center align-items-center vh-100'>\r\n <div className={`${styles.contentWidth} d-flex align-items-center flex-column justify-content-center p-4`}>\r\n <div className='px-4'>\r\n <ClickViewLogo />\r\n </div>\r\n <p className='my-3'><Text namespace={namespace} phrase='tagline' /></p>\r\n <Button variant='dark' className='btn-lg w-100' onClick={onClick}>\r\n <Text namespace={namespace} phrase='signIn' />\r\n </Button>\r\n {isSmartEmbed &&\r\n <Button variant='link' className='btn-lg w-100 info-link mt-2' onClick={onClickSignUp}>\r\n <Text namespace={namespace} phrase='signUp' />\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n );\r\n}"],"names":["namespace","PluginLoginView","props","config","ConfigRequests","returnUrl","parts","split","length","queryString","slice","join","getParams","customerId","consumerKey","isMicrosoftTeams","isSmartEmbed","className","ClickViewLogo","Text","phrase","Button","variant","onClick","EmbedAuthHelper","targetUrl","data","primaryUrl","onClose","popup","redirectUrl","UrlHelper","cvEventsAPi","off","size","CVEventsApi","on","event","details","message","type","window","parent","postMessage","JSON","stringify","launchPluginPopup"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6896],{36896:(e,n,t)=>{t.r(n),t.d(n,{PluginLoginView:()=>d});var r=t(32735),a=t(98269),c=t(39202),l=t(81886),i=t(2786),s=t(83345),o=t(62756),m=t(6736);const u={contentWidth:"Vm5ro"};var p="embed.pluginLogin";function d(e){var n=function(e){var n=e.split("?");if(!n.length)return null;var t=n.slice(1).join("?");return c.Ab.DeserializeQueryParams(t)}(e.returnUrl),t=n.customerId,d=n.consumerKey,f=d===o.A.MicrosoftTeams,g=d===o.A.SmartEmbed;return r.createElement("div",{className:"d-flex justify-content-center align-items-center vh-100"},r.createElement("div",{className:"".concat(u.contentWidth," d-flex align-items-center flex-column justify-content-center p-4")},r.createElement("div",{className:"px-4"},r.createElement(i.$S,null)),r.createElement("p",{className:"my-3"},r.createElement(s.x,{namespace:p,phrase:"tagline"})),r.createElement(a.Z,{variant:"dark",className:"btn-lg w-100",onClick:function(){m.b.canUseCookies()||f?m.b.renderSignInPopup({customerId:t,consumerKey:d,shareId:null,onComplete:function(){return c.Ab.PageLoad(e.returnUrl)}}):m.b.renderSelectVideoPopup({customerId:t,consumerKey:d})}},r.createElement(s.x,{namespace:p,phrase:"signIn"})),g&&r.createElement(a.Z,{variant:"link",className:"btn-lg w-100 info-link mt-2",onClick:function(){m.b.renderSignUpPopup({onClose:function(){return l.Q.Ab.PageLoad(e.returnUrl)}})}},r.createElement(s.x,{namespace:p,phrase:"signUp"}))))}}}]);
|
|
2
|
+
//# sourceMappingURL=6896-bede3d864e-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6896-bede3d864e-lite.chunk.js","mappings":"mPACA,SAAgB,aAAe,SCe/B,IAAMA,EAAY,oBAkBZ,SAAUC,EAAgBC,GAC9B,MAbF,SAAmBC,GACjB,IAAMC,EAAQD,EAAUE,MAAM,KAE9B,IAAKD,EAAME,OACT,OAAO,KAET,IAAMC,EAAcH,EAAMI,MAAM,GAAGC,KAAK,KAGxC,OAFe,4BAAqCF,EAGtD,CAGsCG,CAAUR,EAAMC,WAA5CQ,EAAU,EAAVA,WAAYC,EAAW,EAAXA,YACdC,EAAmBD,IAAgB,mBACnCE,EAAeF,IAAgB,eA0BrC,OACE,uBAAKG,UAAU,2DACb,uBAAKA,UAAS,UAAK,eAAmB,sEACpC,uBAAKA,UAAU,QACb,gBAACC,EAAA,GAAa,OAEhB,qBAAGD,UAAU,QAAO,gBAACE,EAAA,EAAI,CAACjB,UAAWA,EAAWkB,OAAO,aACvD,gBAACC,EAAA,EAAM,CAACC,QAAQ,OAAOL,UAAU,eAAeM,QA/BtD,WACOC,EAAA,mBAAoCT,EAKzCS,EAAA,oBAAkC,CAChCX,WAAAA,EACAC,YAAAA,EACAW,QAAS,KACTC,WAAY,kBAAM,cAAuBtB,EAAMC,UAAU,IAW3DmB,EAAA,yBAAuC,CAAEX,WAAAA,EAAYC,YAAAA,GATvD,GAoBQ,gBAACK,EAAA,EAAI,CAACjB,UAAWA,EAAWkB,OAAO,YAEpCJ,GACC,gBAACK,EAAA,EAAM,CAACC,QAAQ,OAAOL,UAAU,8BAA8BM,QArBvE,WACEC,EAAA,oBAAkC,CAChCG,QAAS,kBAAM,gBAA4BvB,EAAMC,UAAU,GAE/D,GAkBU,gBAACc,EAAA,EAAI,CAACjB,UAAWA,EAAWkB,OAAO,aAM/C,C","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/plugin-login/plugin-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/plugin-login/PluginLoginView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"contentWidth\":\"Vm5ro\"};","import React from 'react';\r\nimport { Button } from 'react-bootstrap';\r\n\r\nimport { LocationUtils } from 'libs/common/backbone/core';\r\nimport { Core } from 'libs/common/core';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { PluginConsumers } from 'shared/hooks/use-plugin-helper/usePluginHelper';\r\n\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\n\r\nimport styles from './plugin-login.scss';\r\n\r\nconst namespace = 'embed.pluginLogin';\r\n\r\ninterface PluginLoginProps {\r\n returnUrl: string;\r\n}\r\n\r\nfunction getParams(returnUrl: string): HashObject {\r\n const parts = returnUrl.split('?');\r\n\r\n if (!parts.length)\r\n return null;\r\n\r\n const queryString = parts.slice(1).join('?');\r\n const params = LocationUtils.DeserializeQueryParams(queryString);\r\n\r\n return params;\r\n}\r\n\r\nexport function PluginLoginView(props: PluginLoginProps): React.ReactElement {\r\n const { customerId, consumerKey } = getParams(props.returnUrl);\r\n const isMicrosoftTeams = consumerKey === PluginConsumers.MicrosoftTeams;\r\n const isSmartEmbed = consumerKey === PluginConsumers.SmartEmbed;\r\n\r\n function onClick(): void {\r\n if (!EmbedAuthHelper.canUseCookies() && !isMicrosoftTeams) {\r\n launchPluginPopup();\r\n return;\r\n }\r\n\r\n EmbedAuthHelper.renderSignInPopup({\r\n customerId,\r\n consumerKey,\r\n shareId: null,\r\n onComplete: () => LocationUtils.PageLoad(props.returnUrl)\r\n });\r\n }\r\n \r\n function onClickSignUp(): void {\r\n EmbedAuthHelper.renderSignUpPopup({\r\n onClose: () => Core.LocationUtils.PageLoad(props.returnUrl)\r\n });\r\n }\r\n\r\n function launchPluginPopup(): void {\r\n EmbedAuthHelper.renderSelectVideoPopup({ customerId, consumerKey });\r\n }\r\n\r\n return (\r\n <div className='d-flex justify-content-center align-items-center vh-100'>\r\n <div className={`${styles.contentWidth} d-flex align-items-center flex-column justify-content-center p-4`}>\r\n <div className='px-4'>\r\n <ClickViewLogo />\r\n </div>\r\n <p className='my-3'><Text namespace={namespace} phrase='tagline' /></p>\r\n <Button variant='dark' className='btn-lg w-100' onClick={onClick}>\r\n <Text namespace={namespace} phrase='signIn' />\r\n </Button>\r\n {isSmartEmbed &&\r\n <Button variant='link' className='btn-lg w-100 info-link mt-2' onClick={onClickSignUp}>\r\n <Text namespace={namespace} phrase='signUp' />\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n );\r\n}"],"names":["namespace","PluginLoginView","props","returnUrl","parts","split","length","queryString","slice","join","getParams","customerId","consumerKey","isMicrosoftTeams","isSmartEmbed","className","ClickViewLogo","Text","phrase","Button","variant","onClick","EmbedAuthHelper","shareId","onComplete","onClose"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 7017-579ccbf386-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7017],{17017:(t,e,r)=>{r.r(e),r.d(e,{EmbedLoginSuccessView:()=>d});var n=r(32735),o=r(20354),i=r(31949),a=r(62756),c=r(2786),u=r(83345),s=r(99742);const l={logo:"EtNtX"};var f="embed.embedLoginSuccess";function h(){return n.createElement("div",{className:"mt-5"},n.createElement("div",{className:"".concat(l.logo," mx-auto")},n.createElement(c.$S,null)),n.createElement("img",{className:"img-fluid mx-auto d-block mt-4",alt:"Success",src:s.W.SUCCESS,style:{maxWidth:"18rem"}}),n.createElement("p",{className:"text-center mb-4 mt-2"},n.createElement(u.x,{namespace:f,phrase:"success"})))}function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}function y(){y=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof w?e:w,a=Object.create(i.prototype),c=new P(n||[]);return o(a,"_invoke",{value:O(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",v="suspendedYield",d="executing",m="completed",g={};function w(){}function b(){}function x(){}var E={};s(E,a,(function(){return this}));var L=Object.getPrototypeOf,S=L&&L(L(F([])));S&&S!==r&&n.call(S,a)&&(E=S);var k=x.prototype=w.prototype=Object.create(E);function _(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function N(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==p(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function O(e,r,n){var o=h;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=j(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?m:v,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function j(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,j(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function G(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function F(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(p(e)+" is not iterable")}return b.prototype=x,o(k,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:b,configurable:!0}),b.displayName=s(x,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,u,"GeneratorFunction")),t.prototype=Object.create(k),t},e.awrap=function(t){return{__await:t}},_(N.prototype),s(N.prototype,c,(function(){return this})),e.AsyncIterator=N,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new N(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},_(k),s(k,u,"Generator"),s(k,a,(function(){return this})),s(k,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=F,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(G),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),g},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),G(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;G(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:F(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}var v=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function c(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,c)}u((n=n.apply(t,e||[])).next())}))};function d(t){var e=o.a.useBasicFetch(i.N.token());return n.useEffect((function(){if(e.data){var n={type:"cv-token",data:{embedToken:e.data}},o=JSON.stringify(n);if(t.consumerKey!==a.A.MicrosoftTeams){var i=window.parent!==window.opener?window.parent:window.opener;return null==i||i.postMessage(o,"*"),void window.setTimeout((function(){return window.close()}),1e3)}!function(){v(this,void 0,void 0,y().mark((function t(){var e;return y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,r.e(4777).then(r.t.bind(r,94777,23));case 3:return e=t.sent,t.next=6,e.app.initialize();case 6:e.authentication.notifySuccess(o);case 7:return t.prev=7,window.setTimeout((function(){return window.close()}),1e3),t.finish(7);case 10:case"end":return t.stop()}}),t,null,[[0,,7,10]])})))}()}}),[e.data]),n.createElement(h,null)}}}]);
|
|
3
|
+
//# sourceMappingURL=7017-579ccbf386-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/7017-579ccbf386-lite.chunk.js","mappings":";+OACA,SAAgB,KAAO,SCQvB,IAAMA,EAAY,0BAEZ,SAAUC,IACd,OACE,uBAAKC,UAAU,QACb,uBAAKA,UAAS,UAAK,OAAW,aAC5B,gBAACC,EAAA,GAAa,OAGhB,uBACED,UAAU,iCACVE,IAAI,UACJC,IAAKC,EAAA,UACLC,MAAO,CAAEC,SAAU,WAGrB,qBAAGN,UAAU,yBACX,gBAACO,EAAA,EAAI,CAACT,UAAWA,EAAWU,OAAO,aAI3C,+2NCfM,SAAUC,EAAsBC,GACpC,IAAMC,EAAQ,kBAAgCC,EAAA,WAmC9C,OAjCA,aAAgB,WACd,GAAKD,EAAME,KAAX,CAEA,IAAMC,EAAU,CACdC,KAAM,WACNF,KAAM,CAAEG,WAAYL,EAAME,OAEtBI,EAAOC,KAAKC,UAAUL,GAE5B,GAAIJ,EAAMU,cAAgB,mBAAgC,CACxD,IAAMC,EAAeC,OAAOC,SAAWD,OAAOE,OAC1CF,OAAOC,OACPD,OAAOE,OAKX,OAHAH,SAAAA,EAAcI,YAAYR,EAAM,UAEhCK,OAAOI,YAAW,kBAAMJ,OAAOK,OAAO,GAAE,IAEzC,EAED,8HAE2B,yBAAM,qCAA6B,OAC1D,OADMC,EAAiB,EAAH,cACdA,EAAeC,IAAIC,aAAY,OACrCF,EAAeG,eAAeC,cAAcf,GAAM,OAEJ,OAFI,SAElDK,OAAOI,YAAW,kBAAMJ,OAAOK,OAAO,GAAE,KAAM,wEAEjD,CAEDM,EA7BuB,CA8BzB,GAAG,CAACtB,EAAME,OAEH,gBAACd,EAAY,KACtB","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/login-success/login-success.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/login-success/LoginSuccess.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embed-login-success/EmbedLoginSuccessView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"EtNtX\"};","import React from 'react';\r\n\r\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { ImageUrls } from 'shared/constants/ImageUrls';\r\n\r\nimport styles from './login-success.scss';\r\n\r\nconst namespace = 'embed.embedLoginSuccess';\r\n\r\nexport function LoginSuccess(): React.ReactElement {\r\n return (\r\n <div className='mt-5'>\r\n <div className={`${styles.logo} mx-auto`}>\r\n <ClickViewLogo />\r\n </div>\r\n\r\n <img\r\n className='img-fluid mx-auto d-block mt-4'\r\n alt='Success'\r\n src={ImageUrls.SUCCESS}\r\n style={{ maxWidth: '18rem' }} /* Half the @2x image size */\r\n />\r\n\r\n <p className='text-center mb-4 mt-2'>\r\n <Text namespace={namespace} phrase='success' />\r\n </p>\r\n </div>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { Flight } from 'libs/common/react/index';\r\n\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\r\n\r\nimport { PluginConsumers } from 'shared/hooks/use-plugin-helper/usePluginHelper';\r\n\r\nimport { LoginSuccess } from 'apps/embed/components/login-success/LoginSuccess';\r\n\r\ninterface EmbedLoginSuccessProps {\r\n consumerKey: string;\r\n}\r\n\r\nexport function EmbedLoginSuccessView(props: EmbedLoginSuccessProps): JSX.Element {\r\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\r\n\r\n React.useEffect(() => {\r\n if (!token.data) return;\r\n \r\n const message = {\r\n type: 'cv-token',\r\n data: { embedToken: token.data }\r\n };\r\n const json = JSON.stringify(message);\r\n \r\n if (props.consumerKey !== PluginConsumers.MicrosoftTeams) {\r\n const parentWindow = window.parent !== window.opener\r\n ? window.parent\r\n : window.opener;\r\n\r\n parentWindow?.postMessage(json, '*');\r\n\r\n window.setTimeout(() => window.close(), 1000);\r\n return;\r\n }\r\n\r\n async function handleMsTeams() {\r\n try {\r\n const microsoftTeams = await import('@microsoft/teams-js');\r\n await microsoftTeams.app.initialize();\r\n microsoftTeams.authentication.notifySuccess(json);\r\n } finally {\r\n window.setTimeout(() => window.close(), 1000);\r\n }\r\n }\r\n \r\n handleMsTeams();\r\n }, [token.data]);\r\n\r\n return <LoginSuccess />;\r\n}"],"names":["namespace","LoginSuccess","className","ClickViewLogo","alt","src","ImageUrls","style","maxWidth","Text","phrase","EmbedLoginSuccessView","props","token","UserRequests","data","message","type","embedToken","json","JSON","stringify","consumerKey","parentWindow","window","parent","opener","postMessage","setTimeout","close","microsoftTeams","app","initialize","authentication","notifySuccess","handleMsTeams"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7017],{17017:(e,t,a)=>{a.r(t),a.d(t,{EmbedLoginSuccessView:()=>p});var c=a(32735),n=a(20354),s=a(31949),l=a(2786),o=a(83345),i=a(99742);const r={logo:"EtNtX"};var m="embed.embedLoginSuccess";function u(){return c.createElement("div",{className:"mt-5"},c.createElement("div",{className:"".concat(r.logo," mx-auto")},c.createElement(l.$S,null)),c.createElement("img",{className:"img-fluid mx-auto d-block mt-4",alt:"Success",src:i.W.SUCCESS,style:{maxWidth:"18rem"}}),c.createElement("p",{className:"text-center mb-4 mt-2"},c.createElement(o.x,{namespace:m,phrase:"success"})))}var d=a(6736);function p(e){var t=n.a.useBasicFetch(s.N.token());return c.useEffect((function(){var a,c;if(t.data){var n={type:"cv-token",data:{embedToken:t.data}},s=JSON.stringify(n);null===(a=window.parent)||void 0===a||a.postMessage(s,"*"),window.opener!==window.parent&&(null===(c=window.opener)||void 0===c||c.postMessage(s,"*")),d.b.closePopup(e.consumerKey)}}),[t.data]),c.createElement(u,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=7017-da16c91436-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/7017-da16c91436-lite.chunk.js","mappings":"oOACA,SAAgB,KAAO,SCQvB,IAAMA,EAAY,0BAEZ,SAAUC,IACd,OACE,uBAAKC,UAAU,QACb,uBAAKA,UAAS,UAAK,OAAW,aAC5B,gBAACC,EAAA,GAAa,OAGhB,uBACED,UAAU,iCACVE,IAAI,UACJC,IAAKC,EAAA,UACLC,MAAO,CAAEC,SAAU,WAGrB,qBAAGN,UAAU,yBACX,gBAACO,EAAA,EAAI,CAACT,UAAWA,EAAWU,OAAO,aAI3C,C,cChBM,SAAUC,EAAsBC,GACpC,IAAMC,EAAQ,kBAAgCC,EAAA,WAmB9C,OAjBA,aAAgB,W,QACd,GAAKD,EAAME,KAAX,CAEA,IAAMC,EAAU,CACdC,KAAM,WACNF,KAAM,CAAEG,WAAYL,EAAME,OAGtBI,EAAOC,KAAKC,UAAUL,GACf,QAAb,EAAAM,OAAOC,cAAM,SAAEC,YAAYL,EAAM,KAE7BG,OAAOG,SAAWH,OAAOC,SACd,QAAb,EAAAD,OAAOG,cAAM,SAAED,YAAYL,EAAM,MAEnCO,EAAA,aAA2Bd,EAAMe,YAbV,CAczB,GAAG,CAACd,EAAME,OAEH,gBAACd,EAAY,KACtB,C","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/login-success/login-success.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/login-success/LoginSuccess.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embed-login-success/EmbedLoginSuccessView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"EtNtX\"};","import React from 'react';\r\n\r\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { ImageUrls } from 'shared/constants/ImageUrls';\r\n\r\nimport styles from './login-success.scss';\r\n\r\nconst namespace = 'embed.embedLoginSuccess';\r\n\r\nexport function LoginSuccess(): React.ReactElement {\r\n return (\r\n <div className='mt-5'>\r\n <div className={`${styles.logo} mx-auto`}>\r\n <ClickViewLogo />\r\n </div>\r\n\r\n <img\r\n className='img-fluid mx-auto d-block mt-4'\r\n alt='Success'\r\n src={ImageUrls.SUCCESS}\r\n style={{ maxWidth: '18rem' }} /* Half the @2x image size */\r\n />\r\n\r\n <p className='text-center mb-4 mt-2'>\r\n <Text namespace={namespace} phrase='success' />\r\n </p>\r\n </div>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { Flight } from 'libs/common/react/index';\r\n\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\r\n\r\nimport { LoginSuccess } from 'apps/embed/components/login-success/LoginSuccess';\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\n\r\ninterface EmbedLoginSuccessProps {\r\n consumerKey: string;\r\n}\r\n\r\nexport function EmbedLoginSuccessView(props: EmbedLoginSuccessProps): JSX.Element {\r\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\r\n\r\n React.useEffect(() => {\r\n if (!token.data) return;\r\n \r\n const message = {\r\n type: 'cv-token',\r\n data: { embedToken: token.data }\r\n };\r\n \r\n const json = JSON.stringify(message);\r\n window.parent?.postMessage(json, '*');\r\n\r\n if (window.opener !== window.parent)\r\n window.opener?.postMessage(json, '*');\r\n\r\n EmbedAuthHelper.closePopup(props.consumerKey);\r\n }, [token.data]);\r\n\r\n return <LoginSuccess />;\r\n}"],"names":["namespace","LoginSuccess","className","ClickViewLogo","alt","src","ImageUrls","style","maxWidth","Text","phrase","EmbedLoginSuccessView","props","token","UserRequests","data","message","type","embedToken","json","JSON","stringify","window","parent","postMessage","opener","EmbedAuthHelper","consumerKey"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8772],{14919:(e,a,t)=>{t.d(a,{w:()=>m});var r=t(32735),n=t(64249),c=t(11607),i=t(2786),s=t(7733),l=t(9085),u=t(98084),o=t(87984);const d={playButtonCircle:"zima4"};function m(e){var a,t,m,v,p=e.onClick,E=e.video,b="rating"in E&&(null===(a=E.rating)||void 0===a?void 0:a.code),g="rating"in E&&(null===(t=E.rating)||void 0===t?void 0:t.value),h=(0,o.C)(g),I="series"in E&&(null===(m=E.series)||void 0===m?void 0:m.name),f="episodeNumber"in E&&E.episodeNumber,C="season"in E&&(null===(v=E.season)||void 0===v?void 0:v.number),k=n.I.getImageUrl(E),N="";k||(N=(0,l.x)(E.name,s.b));var w={backgroundImage:k?"url('".concat(k,"')"):"",backgroundColor:N};return r.createElement(c.L,{className:"cv-embed-splash ".concat(N||"cv-embed-splash-black"),style:w,onClick:p},!!k&&r.createElement("div",{className:"cv-splash-mask"}),r.createElement("div",{className:"cv-splash-metadata"},r.createElement("h1",null,r.createElement("div",{className:"cv-splash-series"},function(e,a,t){if(!e)return"";if(!t||!a)return e;var r=u.I.padNumber(t,2),n=u.I.padNumber(a,2);return"".concat(e," S").concat(r," • E").concat(n)}(I,f,C)),E.name),r.createElement("div",{className:"cv-splash-rating ".concat(h)},b)),r.createElement("div",{className:d.playButtonCircle},r.createElement("svg",{viewBox:"0 0 1800 1800"},r.createElement("path",{d:"M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z"}))),r.createElement("div",{className:"cv-splash-logo"},r.createElement(i.Yo,null)))}},58772:(e,a,t)=>{t.r(a),t.d(a,{EmbedLoginView:()=>E});var r=t(32735),n=t(81886),c=t(20354),i=t(30439),s=t(39151),l=t(71158),u=t(14070),o=t(97291),d=t(14919),m=t(6736),v=t(13746),p=t(75608);function E(e){var a=c.a.useBasicFetch(s.L.config()),t=c.a.useBasicFetch(i.o.getShareObject(e.shareId)),E=(0,p.a)(e.shareId);return r.useLayoutEffect((function(){v.R.remove()}),[]),a.data&&t.data&&E?r.createElement(d.w,{onClick:function(){if(t.data.isPasswordProtected)return a={application:o.O.EMBED,action:u.e.Embed.VIEW_EMBEDDED_RESOURCE,args:[e.shareId],params:n.Q.C$.getCurrentAppLink().params},void n.Q.C$.trigger({application:o.O.LAUNCHPAD,action:u.e.Launchpad.PASSWORD_PROTECTED_SHARE_LINK,args:[e.shareId],params:{appLink:a}});var a;m.b.renderSignInPopup({shareId:e.shareId,customerId:e.customerId,consumerKey:e.consumerKey,onComplete:function(e){return l.P.applyToken(null==e?void 0:e.embedToken)}})},video:E}):r.createElement(r.Fragment,null)}},75608:(e,a,t)=>{t.d(a,{a:()=>v});var r=t(20354),n=t(30439),c=t(4594),i=t(21750),s=t(43012),l=t(20768),u=t(5112),o=t(60011),d=t(31949),m=t(1575);function v(e){var a=r.a.useBasicFetch(d.N.currentUser()),t=r.a.useBasicFetch(n.o.getShareObject(e)),v=function(){if(!t.data||!a.data)return null;switch(t.data.objectTypeId){case c.E.Video:return m.R.publicVideo(t.data.objectId,e);case c.E.Clip:return s.e.publicClip(t.data.objectId,e);case c.E.Interactive:return l.b.publicInteractiveMetadata(t.data.objectId,e);case c.E.Playlist:return u.C.getSharedPlaylist(t.data.objectId,e);case c.E.Subject:return i.x.classification(t.data.objectId,a.data.id);case c.E.Series:return o.J.sharedSeries(t.data.objectId,e)}}();return r.a.useBasicFetch(v).data}},87984:(e,a,t)=>{function r(e){return e?function(e){switch(!0){case e<32:return"cv-rating-purple";case e<48:return"cv-rating-green";case e<80:return"cv-rating-blue";case e<96:return"cv-rating-red";case e<128:return"cv-rating-pink";case e>=128:return"cv-rating-yellow";default:return""}}(e):""}t.d(a,{C:()=>r})}}]);
|
|
2
|
+
//# sourceMappingURL=8772-3f2241fb6a-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8772-3f2241fb6a-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/embedded-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/EmbeddedLogin.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embed-login/EmbedLoginView.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/share/hooks/useFetchSharedResource.ts","file://C:/ClickView Projects/clickview/packages/projects/player/src/utils/PlayerRatingHelper.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"playButtonCircle\":\"zima4\"};","/**\r\n * IMPORTANT!\r\n * Please refer to projects\\player\\src\\components\\poster-image\\poster-image-details.md\r\n * before changing this file\r\n */\r\nimport React from 'react';\r\n\r\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { LOGO_SAFE_BG_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\r\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\r\n\r\nimport { mapRatingValueToColourClass } from 'projects/player/utils/PlayerRatingHelper';\r\n\r\nimport styles from './embedded-login.scss';\r\n\r\nfunction getSeries(seriesName: string, episodeNumber: number, seasonNumber: number): string {\r\n if (!seriesName)\r\n return '';\r\n\r\n if (!seasonNumber || !episodeNumber)\r\n return seriesName;\r\n\r\n const paddedSeason = NumberHelper.padNumber(seasonNumber, 2);\r\n const paddedEpisode = NumberHelper.padNumber(episodeNumber, 2);\r\n\r\n return `${seriesName} S${paddedSeason} • E${paddedEpisode}`;\r\n}\r\n\r\ninterface EmbeddedLoginProps {\r\n onClick: () => void;\r\n video: VideoTypes;\r\n}\r\n\r\nexport function EmbeddedLogin(props: EmbeddedLoginProps): React.ReactElement {\r\n const {\r\n onClick,\r\n video\r\n } = props;\r\n\r\n const ratingCode = 'rating' in video && video.rating?.code;\r\n const ratingValue = 'rating' in video && video.rating?.value;\r\n const ratingColour = mapRatingValueToColourClass(ratingValue);\r\n\r\n const seriesName = 'series' in video && video.series?.name;\r\n const episodeNumber = 'episodeNumber' in video && video.episodeNumber;\r\n const seasonNumber = 'season' in video && video.season?.number;\r\n\r\n const backgroundImage = ShareViewHelper.getImageUrl(video);\r\n let backgroundColor = '';\r\n\r\n if (!backgroundImage)\r\n backgroundColor = getBgColorClass(video.name, LOGO_SAFE_BG_CLASS_NAMES);\r\n\r\n const style: React.CSSProperties = {\r\n backgroundImage: backgroundImage ? `url('${backgroundImage}')` : '',\r\n backgroundColor\r\n };\r\n\r\n // Markup changes here should also be made to components in `landing-splash-plugin.ts`\r\n return (\r\n <DivButton\r\n className={`cv-embed-splash ${backgroundColor || 'cv-embed-splash-black'}`}\r\n style={style}\r\n onClick={onClick}\r\n >\r\n {!!backgroundImage && <div className='cv-splash-mask' />}\r\n\r\n <div className='cv-splash-metadata'>\r\n <h1>\r\n <div className='cv-splash-series'>\r\n {getSeries(seriesName, episodeNumber, seasonNumber)}\r\n </div>\r\n {video.name}\r\n </h1>\r\n\r\n <div className={`cv-splash-rating ${ratingColour}`}>\r\n {ratingCode}\r\n </div>\r\n </div>\r\n\r\n <div className={styles.playButtonCircle}>\r\n <svg viewBox='0 0 1800 1800'>\r\n <path d='M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z'></path>\r\n </svg>\r\n </div>\r\n\r\n <div className='cv-splash-logo'>\r\n <ClickViewLogoInverted />\r\n </div>\r\n </DivButton>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { Config, ShareLink, VideoTypes } from 'libs/shared/interfaces';\r\nimport { EmbedTokenHelper } from 'libs/shared/utils/EmbedTokenHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport { EmbeddedLogin } from 'apps/embed/components/embedded-login/EmbeddedLogin';\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\r\nimport { useFetchSharedResource } from 'apps/share/hooks/useFetchSharedResource';\r\n\r\ninterface EmbedLoginViewProps {\r\n shareId: string;\r\n consumerKey?: string;\r\n customerId?: number\r\n}\r\n\r\nexport function EmbedLoginView(props: EmbedLoginViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\r\n\r\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(props.shareId));\r\n const sharedResource = useFetchSharedResource<VideoTypes>(props.shareId);\r\n\r\n function handlePasswordProtected() {\r\n const appLink: Core.AppLink = {\r\n application: AppChannels.EMBED,\r\n action: Actions.Embed.VIEW_EMBEDDED_RESOURCE,\r\n args: [props.shareId],\r\n params: Core.AppLinkHelper.getCurrentAppLink().params\r\n };\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.LAUNCHPAD,\r\n action: Actions.Launchpad.PASSWORD_PROTECTED_SHARE_LINK,\r\n args: [props.shareId],\r\n params: { appLink }\r\n });\r\n }\r\n\r\n function onClick(): void {\r\n if (shareLink.data.isPasswordProtected) {\r\n handlePasswordProtected();\r\n return;\r\n }\r\n \r\n EmbedAuthHelper.renderSignInPopup({\r\n shareId: props.shareId,\r\n customerId: props.customerId,\r\n consumerKey: props.consumerKey,\r\n onComplete: (data: HashObject) => EmbedTokenHelper.applyToken(data?.embedToken)\r\n });\r\n }\r\n\r\n React.useLayoutEffect(() => {\r\n EmbedPlaceHolderHelper.remove();\r\n }, []);\r\n\r\n if (!config.data || !shareLink.data || !sharedResource)\r\n return <></>;\r\n \r\n return (\r\n <EmbeddedLogin\r\n onClick={onClick}\r\n video={sharedResource}\r\n />\r\n );\r\n}","import { Flight } from 'libs/common/flight';\r\n\r\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\r\nimport { MasterType } from 'libs/shared/enums/MasterType';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\r\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\r\nimport { CurrentUser, ShareLink } from 'libs/shared/interfaces';\r\n\r\nexport function useFetchSharedResource<T>(shareId: string): T {\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(shareId));\r\n\r\n function getResourceRequest(): Flight.Request {\r\n if (!shareLink.data || !currentUser.data)\r\n return null;\r\n\r\n switch (shareLink.data.objectTypeId) {\r\n case MasterType.Video:\r\n return VideoRequests.publicVideo(shareLink.data.objectId, shareId);\r\n case MasterType.Clip:\r\n return ClipRequests.publicClip(shareLink.data.objectId, shareId);\r\n case MasterType.Interactive:\r\n return InteractiveRequests.publicInteractiveMetadata(shareLink.data.objectId, shareId);\r\n case MasterType.Playlist:\r\n return PlaylistRequests.getSharedPlaylist(shareLink.data.objectId, shareId);\r\n case MasterType.Subject:\r\n return ClassificationRequests.classification(shareLink.data.objectId, currentUser.data.id);\r\n case MasterType.Series:\r\n return SeriesRequests.sharedSeries(shareLink.data.objectId, shareId);\r\n }\r\n }\r\n\r\n const resourceRequest = getResourceRequest();\r\n const resource = Flight.useBasicFetch<T>(resourceRequest);\r\n\r\n return resource.data;\r\n}","export function mapRatingValueToColourClass(ratingValue: number): string {\r\n if (!ratingValue) return '';\r\n\r\n const ratings = (rating: number): string => {\r\n switch (true) {\r\n case (rating < 32):\r\n return 'cv-rating-purple';\r\n case (rating < 48):\r\n return 'cv-rating-green';\r\n case (rating < 80):\r\n return 'cv-rating-blue';\r\n case (rating < 96):\r\n return 'cv-rating-red';\r\n case (rating < 128):\r\n return 'cv-rating-pink';\r\n case (rating >= 128):\r\n return 'cv-rating-yellow';\r\n default:\r\n return ''; // Handles unrated\r\n }\r\n };\r\n\r\n return ratings(ratingValue);\r\n}"],"names":["EmbeddedLogin","props","onClick","video","ratingCode","rating","code","ratingValue","value","ratingColour","seriesName","series","name","episodeNumber","seasonNumber","season","number","backgroundImage","ShareViewHelper","backgroundColor","getBgColorClass","style","DivButton","className","paddedSeason","NumberHelper","paddedEpisode","getSeries","viewBox","d","ClickViewLogo","EmbedLoginView","config","shareLink","shareId","sharedResource","data","isPasswordProtected","appLink","application","action","args","params","customerId","consumerKey","onComplete","embedToken","useFetchSharedResource","currentUser","resourceRequest","objectTypeId","objectId","id","getResourceRequest","mapRatingValueToColourClass","ratings"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8772],{14919:(e,a,t)=>{t.d(a,{w:()=>v});var r=t(32735),n=t(64249),c=t(11607),i=t(2786),s=t(7733),l=t(9085),u=t(98084),o=t(87984);const d={playButtonCircle:"zima4"};function v(e){var a,t,v,m,p=e.onClick,E=e.video,b="rating"in E&&(null===(a=E.rating)||void 0===a?void 0:a.code),g="rating"in E&&(null===(t=E.rating)||void 0===t?void 0:t.value),h=(0,o.C)(g),I="series"in E&&(null===(v=E.series)||void 0===v?void 0:v.name),f="episodeNumber"in E&&E.episodeNumber,C="season"in E&&(null===(m=E.season)||void 0===m?void 0:m.number),k=n.I.getImageUrl(E),N="";k||(N=(0,l.x)(E.name,s.b));var w={backgroundImage:k?"url('".concat(k,"')"):"",backgroundColor:N};return r.createElement(c.L,{className:"cv-embed-splash ".concat(N||"cv-embed-splash-black"),style:w,onClick:p},!!k&&r.createElement("div",{className:"cv-splash-mask"}),r.createElement("div",{className:"cv-splash-metadata"},r.createElement("h1",null,r.createElement("div",{className:"cv-splash-series"},function(e,a,t){if(!e)return"";if(!t||!a)return e;var r=u.I.padNumber(t,2),n=u.I.padNumber(a,2);return"".concat(e," S").concat(r," • E").concat(n)}(I,f,C)),E.name),r.createElement("div",{className:"cv-splash-rating ".concat(h)},b)),r.createElement("div",{className:d.playButtonCircle},r.createElement("svg",{viewBox:"0 0 1800 1800"},r.createElement("path",{d:"M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z"}))),r.createElement("div",{className:"cv-splash-logo"},r.createElement(i.Yo,null)))}},58772:(e,a,t)=>{t.r(a),t.d(a,{EmbedLoginView:()=>g});var r=t(32735),n=t(60810),c=t(39202),i=t(81886),s=t(20354),l=t(30439),u=t(39151),o=t(71158),d=t(14070),v=t(97291),m=t(14919),p=t(6736),E=t(13746),b=t(75608);function g(e){var a=s.a.useBasicFetch(u.L.config()),t=s.a.useBasicFetch(l.o.getShareObject(e.shareId)),g=(0,b.a)(e.shareId);return r.useLayoutEffect((function(){E.R.remove()}),[]),a.data&&t.data&&g?r.createElement(m.w,{onClick:function(){if(t.data.isPasswordProtected)return a={application:v.O.EMBED,action:d.e.Embed.VIEW_EMBEDDED_RESOURCE,args:[e.shareId],params:i.Q.C$.getCurrentAppLink().params},void i.Q.C$.trigger({application:v.O.LAUNCHPAD,action:d.e.Launchpad.PASSWORD_PROTECTED_SHARE_LINK,args:[e.shareId],params:{appLink:a}});var a,r=null,s=p.b.renderSignInPopup({targetUrl:c.Ab.GetCurrentOrigin(),shareId:e.shareId,customerId:e.customerId,consumerKey:e.consumerKey,onClose:function(){return o.P.applyToken(r)}});s&&new n.CVEventsApi(s).on("cv-token",(function(e,a){return r=a.embedToken}))},video:g}):r.createElement(r.Fragment,null)}},75608:(e,a,t)=>{t.d(a,{a:()=>m});var r=t(20354),n=t(30439),c=t(4594),i=t(21750),s=t(43012),l=t(20768),u=t(5112),o=t(60011),d=t(31949),v=t(1575);function m(e){var a=r.a.useBasicFetch(d.N.currentUser()),t=r.a.useBasicFetch(n.o.getShareObject(e)),m=function(){if(!t.data||!a.data)return null;switch(t.data.objectTypeId){case c.E.Video:return v.R.publicVideo(t.data.objectId,e);case c.E.Clip:return s.e.publicClip(t.data.objectId,e);case c.E.Interactive:return l.b.publicInteractiveMetadata(t.data.objectId,e);case c.E.Playlist:return u.C.getSharedPlaylist(t.data.objectId,e);case c.E.Subject:return i.x.classification(t.data.objectId,a.data.id);case c.E.Series:return o.J.sharedSeries(t.data.objectId,e)}}();return r.a.useBasicFetch(m).data}},87984:(e,a,t)=>{function r(e){return e?function(e){switch(!0){case e<32:return"cv-rating-purple";case e<48:return"cv-rating-green";case e<80:return"cv-rating-blue";case e<96:return"cv-rating-red";case e<128:return"cv-rating-pink";case e>=128:return"cv-rating-yellow";default:return""}}(e):""}t.d(a,{C:()=>r})}}]);
|
|
2
|
+
//# sourceMappingURL=8772-8579470f46-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8772-8579470f46-lite.chunk.js","mappings":"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","sources":["file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/embedded-login.scss","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/components/embedded-login/EmbeddedLogin.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/embed/views/embed-login/EmbedLoginView.tsx","file://C:/ClickView Projects/clickview/packages/projects/lite/src/apps/share/hooks/useFetchSharedResource.ts","file://C:/ClickView Projects/clickview/packages/projects/player/src/utils/PlayerRatingHelper.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"playButtonCircle\":\"zima4\"};","/**\r\n * IMPORTANT!\r\n * Please refer to projects\\player\\src\\components\\poster-image\\poster-image-details.md\r\n * before changing this file\r\n */\r\nimport React from 'react';\r\n\r\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\r\nimport { LOGO_SAFE_BG_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\r\nimport { VideoTypes } from 'libs/shared/interfaces';\r\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\r\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\r\n\r\nimport { mapRatingValueToColourClass } from 'projects/player/utils/PlayerRatingHelper';\r\n\r\nimport styles from './embedded-login.scss';\r\n\r\nfunction getSeries(seriesName: string, episodeNumber: number, seasonNumber: number): string {\r\n if (!seriesName)\r\n return '';\r\n\r\n if (!seasonNumber || !episodeNumber)\r\n return seriesName;\r\n\r\n const paddedSeason = NumberHelper.padNumber(seasonNumber, 2);\r\n const paddedEpisode = NumberHelper.padNumber(episodeNumber, 2);\r\n\r\n return `${seriesName} S${paddedSeason} • E${paddedEpisode}`;\r\n}\r\n\r\ninterface EmbeddedLoginProps {\r\n onClick: () => void;\r\n video: VideoTypes;\r\n}\r\n\r\nexport function EmbeddedLogin(props: EmbeddedLoginProps): React.ReactElement {\r\n const {\r\n onClick,\r\n video\r\n } = props;\r\n\r\n const ratingCode = 'rating' in video && video.rating?.code;\r\n const ratingValue = 'rating' in video && video.rating?.value;\r\n const ratingColour = mapRatingValueToColourClass(ratingValue);\r\n\r\n const seriesName = 'series' in video && video.series?.name;\r\n const episodeNumber = 'episodeNumber' in video && video.episodeNumber;\r\n const seasonNumber = 'season' in video && video.season?.number;\r\n\r\n const backgroundImage = ShareViewHelper.getImageUrl(video);\r\n let backgroundColor = '';\r\n\r\n if (!backgroundImage)\r\n backgroundColor = getBgColorClass(video.name, LOGO_SAFE_BG_CLASS_NAMES);\r\n\r\n const style: React.CSSProperties = {\r\n backgroundImage: backgroundImage ? `url('${backgroundImage}')` : '',\r\n backgroundColor\r\n };\r\n\r\n // Markup changes here should also be made to components in `landing-splash-plugin.ts`\r\n return (\r\n <DivButton\r\n className={`cv-embed-splash ${backgroundColor || 'cv-embed-splash-black'}`}\r\n style={style}\r\n onClick={onClick}\r\n >\r\n {!!backgroundImage && <div className='cv-splash-mask' />}\r\n\r\n <div className='cv-splash-metadata'>\r\n <h1>\r\n <div className='cv-splash-series'>\r\n {getSeries(seriesName, episodeNumber, seasonNumber)}\r\n </div>\r\n {video.name}\r\n </h1>\r\n\r\n <div className={`cv-splash-rating ${ratingColour}`}>\r\n {ratingCode}\r\n </div>\r\n </div>\r\n\r\n <div className={styles.playButtonCircle}>\r\n <svg viewBox='0 0 1800 1800'>\r\n <path d='M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z'></path>\r\n </svg>\r\n </div>\r\n\r\n <div className='cv-splash-logo'>\r\n <ClickViewLogoInverted />\r\n </div>\r\n </DivButton>\r\n );\r\n}","import React from 'react';\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { LocationUtils } from 'libs/common/backbone/core';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { Config, ShareLink, VideoTypes } from 'libs/shared/interfaces';\r\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\r\nimport { EmbedTokenHelper } from 'libs/shared/utils/EmbedTokenHelper';\r\n\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\n\r\nimport { EmbeddedLogin } from 'apps/embed/components/embedded-login/EmbeddedLogin';\r\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\r\nimport { EmbedPlaceHolderHelper } from 'apps/embed/utils/EmbedPlaceholderHelper';\r\nimport { useFetchSharedResource } from 'apps/share/hooks/useFetchSharedResource';\r\n\r\ninterface EmbedLoginViewProps {\r\n shareId: string;\r\n consumerKey?: string;\r\n customerId?: number\r\n}\r\n\r\nexport function EmbedLoginView(props: EmbedLoginViewProps): JSX.Element {\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\r\n\r\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(props.shareId));\r\n const sharedResource = useFetchSharedResource<VideoTypes>(props.shareId);\r\n\r\n function handlePasswordProtected() {\r\n const appLink: Core.AppLink = {\r\n application: AppChannels.EMBED,\r\n action: Actions.Embed.VIEW_EMBEDDED_RESOURCE,\r\n args: [props.shareId],\r\n params: Core.AppLinkHelper.getCurrentAppLink().params\r\n };\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.LAUNCHPAD,\r\n action: Actions.Launchpad.PASSWORD_PROTECTED_SHARE_LINK,\r\n args: [props.shareId],\r\n params: { appLink }\r\n });\r\n }\r\n\r\n function onClick(): void {\r\n if (shareLink.data.isPasswordProtected) {\r\n handlePasswordProtected();\r\n return;\r\n }\r\n\r\n let embedToken: AuthToken = null;\r\n \r\n const popup = EmbedAuthHelper.renderSignInPopup({\r\n targetUrl: LocationUtils.GetCurrentOrigin(),\r\n shareId: props.shareId,\r\n customerId: props.customerId,\r\n consumerKey: props.consumerKey,\r\n onClose: () => EmbedTokenHelper.applyToken(embedToken)\r\n });\r\n\r\n if (popup) {\r\n const cvEventsAPi = new CVEventsApi(popup);\r\n cvEventsAPi.on('cv-token', (_: string, details: any) => embedToken = details.embedToken);\r\n }\r\n }\r\n\r\n React.useLayoutEffect(() => {\r\n EmbedPlaceHolderHelper.remove();\r\n }, []);\r\n\r\n if (!config.data || !shareLink.data || !sharedResource)\r\n return <></>;\r\n \r\n return (\r\n <EmbeddedLogin\r\n onClick={onClick}\r\n video={sharedResource}\r\n />\r\n );\r\n}","import { Flight } from 'libs/common/flight';\r\n\r\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\r\nimport { MasterType } from 'libs/shared/enums/MasterType';\r\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\r\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\r\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\r\nimport { CurrentUser, ShareLink } from 'libs/shared/interfaces';\r\n\r\nexport function useFetchSharedResource<T>(shareId: string): T {\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareObject(shareId));\r\n\r\n function getResourceRequest(): Flight.Request {\r\n if (!shareLink.data || !currentUser.data)\r\n return null;\r\n\r\n switch (shareLink.data.objectTypeId) {\r\n case MasterType.Video:\r\n return VideoRequests.publicVideo(shareLink.data.objectId, shareId);\r\n case MasterType.Clip:\r\n return ClipRequests.publicClip(shareLink.data.objectId, shareId);\r\n case MasterType.Interactive:\r\n return InteractiveRequests.publicInteractiveMetadata(shareLink.data.objectId, shareId);\r\n case MasterType.Playlist:\r\n return PlaylistRequests.getSharedPlaylist(shareLink.data.objectId, shareId);\r\n case MasterType.Subject:\r\n return ClassificationRequests.classification(shareLink.data.objectId, currentUser.data.id);\r\n case MasterType.Series:\r\n return SeriesRequests.sharedSeries(shareLink.data.objectId, shareId);\r\n }\r\n }\r\n\r\n const resourceRequest = getResourceRequest();\r\n const resource = Flight.useBasicFetch<T>(resourceRequest);\r\n\r\n return resource.data;\r\n}","export function mapRatingValueToColourClass(ratingValue: number): string {\r\n if (!ratingValue) return '';\r\n\r\n const ratings = (rating: number): string => {\r\n switch (true) {\r\n case (rating < 32):\r\n return 'cv-rating-purple';\r\n case (rating < 48):\r\n return 'cv-rating-green';\r\n case (rating < 80):\r\n return 'cv-rating-blue';\r\n case (rating < 96):\r\n return 'cv-rating-red';\r\n case (rating < 128):\r\n return 'cv-rating-pink';\r\n case (rating >= 128):\r\n return 'cv-rating-yellow';\r\n default:\r\n return ''; // Handles unrated\r\n }\r\n };\r\n\r\n return ratings(ratingValue);\r\n}"],"names":["EmbeddedLogin","props","onClick","video","ratingCode","rating","code","ratingValue","value","ratingColour","seriesName","series","name","episodeNumber","seasonNumber","season","number","backgroundImage","ShareViewHelper","backgroundColor","getBgColorClass","style","DivButton","className","paddedSeason","NumberHelper","paddedEpisode","getSeries","viewBox","d","ClickViewLogo","EmbedLoginView","config","shareLink","shareId","sharedResource","data","isPasswordProtected","appLink","application","action","args","params","embedToken","popup","targetUrl","customerId","consumerKey","onClose","CVEventsApi","on","_","details","useFetchSharedResource","currentUser","resourceRequest","objectTypeId","objectId","id","getResourceRequest","mapRatingValueToColourClass","ratings"],"sourceRoot":""}
|