@clickview/lite 0.57.2-rc.2 → 0.57.3-rc.0
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/css/{3137-lite-7da84a8e68.chunk.css → 3137-lite-8afb370875.chunk.css} +1 -1
- package/dist/scripts/{1125-a24f83a3f3-lite.chunk.js → 1125-0e659106d9-lite.chunk.js} +2 -2
- package/dist/scripts/{1125-a24f83a3f3-lite.chunk.js.map → 1125-0e659106d9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1340-3f5e7d4623-lite.chunk.js → 1340-c78a7acd0d-lite.chunk.js} +2 -2
- package/dist/scripts/{1340-3f5e7d4623-lite.chunk.js.map → 1340-c78a7acd0d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{154-81a4eabaae-lite.chunk.js → 154-fa5b45d1bf-lite.chunk.js} +2 -2
- package/dist/scripts/{154-81a4eabaae-lite.chunk.js.map → 154-fa5b45d1bf-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1913-6a6bb3f16f-lite.chunk.js → 1913-6a7d99b96f-lite.chunk.js} +2 -2
- package/dist/scripts/{1913-6a6bb3f16f-lite.chunk.js.map → 1913-6a7d99b96f-lite.chunk.js.map} +1 -1
- package/dist/scripts/1958-cf5dd56576-lite.chunk.js +2 -0
- package/dist/scripts/{1958-31e6049ac7-lite.chunk.js.map → 1958-cf5dd56576-lite.chunk.js.map} +1 -1
- package/dist/scripts/{209-4a322eae44-lite.chunk.js → 209-396b9a7f13-lite.chunk.js} +2 -2
- package/dist/scripts/{209-4a322eae44-lite.chunk.js.map → 209-396b9a7f13-lite.chunk.js.map} +1 -1
- package/dist/scripts/2182-a5652609bb-lite.chunk.js +2 -0
- package/dist/scripts/2182-a5652609bb-lite.chunk.js.map +1 -0
- package/dist/scripts/{2208-a9d679d40c-lite.chunk.js → 2208-5fed507ca8-lite.chunk.js} +2 -2
- package/dist/scripts/{2208-a9d679d40c-lite.chunk.js.map → 2208-5fed507ca8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2402-2d435f7027-lite.chunk.js → 2402-300aa81eaf-lite.chunk.js} +2 -2
- package/dist/scripts/{2402-2d435f7027-lite.chunk.js.map → 2402-300aa81eaf-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3137-51febcedd6-lite.chunk.js → 3137-00d0d09d82-lite.chunk.js} +2 -2
- package/dist/scripts/{3137-51febcedd6-lite.chunk.js.map → 3137-00d0d09d82-lite.chunk.js.map} +1 -1
- package/dist/scripts/338-5c6ffa41bb-lite.chunk.js +3 -0
- package/dist/scripts/338-5c6ffa41bb-lite.chunk.js.map +1 -0
- package/dist/scripts/{3962-6bfcebace6-lite.chunk.js → 3962-eaa18d5ab6-lite.chunk.js} +2 -2
- package/dist/scripts/{3962-6bfcebace6-lite.chunk.js.map → 3962-eaa18d5ab6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4395-389855e87f-lite.chunk.js → 4395-9d987fe2e6-lite.chunk.js} +2 -2
- package/dist/scripts/{4395-389855e87f-lite.chunk.js.map → 4395-9d987fe2e6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4591-1e137b9a3f-lite.chunk.js → 4591-19ee265d34-lite.chunk.js} +2 -2
- package/dist/scripts/4591-19ee265d34-lite.chunk.js.map +1 -0
- package/dist/scripts/{467-baec908c73-lite.chunk.js → 467-1550deaaa1-lite.chunk.js} +2 -2
- package/dist/scripts/{467-baec908c73-lite.chunk.js.map → 467-1550deaaa1-lite.chunk.js.map} +1 -1
- package/dist/scripts/5157-9396b0580d-lite.chunk.js +2 -0
- package/dist/scripts/{5157-b1d38e123c-lite.chunk.js.map → 5157-9396b0580d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{528-0e18ce97a9-lite.chunk.js → 528-3120366abc-lite.chunk.js} +2 -2
- package/dist/scripts/{528-0e18ce97a9-lite.chunk.js.map → 528-3120366abc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5376-6e993d6097-lite.chunk.js → 5376-38456da0db-lite.chunk.js} +3 -3
- package/dist/scripts/{5376-6e993d6097-lite.chunk.js.map → 5376-38456da0db-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6263-c6ce662fc3-lite.chunk.js → 6263-c665ac8df6-lite.chunk.js} +2 -2
- package/dist/scripts/{6263-c6ce662fc3-lite.chunk.js.map → 6263-c665ac8df6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6290-dd18f6a50a-lite.chunk.js → 6290-a295d749c3-lite.chunk.js} +2 -2
- package/dist/scripts/{6290-dd18f6a50a-lite.chunk.js.map → 6290-a295d749c3-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6480-9f3dc79b38-lite.chunk.js → 6480-03513bbd54-lite.chunk.js} +2 -2
- package/dist/scripts/{6480-9f3dc79b38-lite.chunk.js.map → 6480-03513bbd54-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7112-ea440dfba0-lite.chunk.js → 7112-2e77a3e7af-lite.chunk.js} +3 -3
- package/dist/scripts/{7112-ea440dfba0-lite.chunk.js.map → 7112-2e77a3e7af-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7178-c592da7054-lite.chunk.js → 7178-f3794c1ee5-lite.chunk.js} +2 -2
- package/dist/scripts/{7178-c592da7054-lite.chunk.js.map → 7178-f3794c1ee5-lite.chunk.js.map} +1 -1
- package/dist/scripts/{775-b6cb8f1808-lite.chunk.js → 775-d6b0a7afbd-lite.chunk.js} +3 -3
- package/dist/scripts/{775-b6cb8f1808-lite.chunk.js.map → 775-d6b0a7afbd-lite.chunk.js.map} +1 -1
- package/dist/scripts/823-0a1356d38c-lite.chunk.js +2 -0
- package/dist/scripts/823-0a1356d38c-lite.chunk.js.map +1 -0
- package/dist/scripts/{8489-7779fd40b3-lite.chunk.js → 8489-88ab052e8c-lite.chunk.js} +3 -3
- package/dist/scripts/{8489-7779fd40b3-lite.chunk.js.map → 8489-88ab052e8c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8722-095bf62b96-lite.chunk.js → 8722-ed6103f3e4-lite.chunk.js} +2 -2
- package/dist/scripts/{8722-095bf62b96-lite.chunk.js.map → 8722-ed6103f3e4-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8905-46d89811eb-lite.chunk.js → 8905-799dc47805-lite.chunk.js} +2 -2
- package/dist/scripts/{8905-46d89811eb-lite.chunk.js.map → 8905-799dc47805-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8935-2bb61f918c-lite.chunk.js → 8935-38d780c423-lite.chunk.js} +3 -3
- package/dist/scripts/{8935-2bb61f918c-lite.chunk.js.map → 8935-38d780c423-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9118-20d1a60a52-lite.chunk.js → 9118-c769eeb11a-lite.chunk.js} +2 -2
- package/dist/scripts/{9118-20d1a60a52-lite.chunk.js.map → 9118-c769eeb11a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js → 9230-1ffbf1807e-lite.chunk.js} +3 -3
- package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js.map → 9230-1ffbf1807e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9614-2bca60768e-lite.chunk.js → 9614-6e5babb89a-lite.chunk.js} +2 -2
- package/dist/scripts/{9614-2bca60768e-lite.chunk.js.map → 9614-6e5babb89a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js → 9719-28c14a0783-lite.chunk.js} +3 -3
- package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js.map → 9719-28c14a0783-lite.chunk.js.map} +1 -1
- package/dist/scripts/{bundle-fb8200eefd.min.js → bundle-b25c09d3e8.min.js} +3 -3
- package/dist/scripts/{bundle-fb8200eefd.min.js.map → bundle-b25c09d3e8.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1958-31e6049ac7-lite.chunk.js +0 -2
- package/dist/scripts/2182-aa9aca3196-lite.chunk.js +0 -2
- package/dist/scripts/2182-aa9aca3196-lite.chunk.js.map +0 -1
- package/dist/scripts/338-8b4fba84c0-lite.chunk.js +0 -3
- package/dist/scripts/338-8b4fba84c0-lite.chunk.js.map +0 -1
- package/dist/scripts/4591-1e137b9a3f-lite.chunk.js.map +0 -1
- package/dist/scripts/5157-b1d38e123c-lite.chunk.js +0 -2
- package/dist/scripts/823-697bd66d4d-lite.chunk.js +0 -2
- package/dist/scripts/823-697bd66d4d-lite.chunk.js.map +0 -1
- /package/dist/scripts/{3137-51febcedd6-lite.chunk.js.LICENSE.txt → 3137-00d0d09d82-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{338-8b4fba84c0-lite.chunk.js.LICENSE.txt → 338-5c6ffa41bb-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5376-6e993d6097-lite.chunk.js.LICENSE.txt → 5376-38456da0db-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7112-ea440dfba0-lite.chunk.js.LICENSE.txt → 7112-2e77a3e7af-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{775-b6cb8f1808-lite.chunk.js.LICENSE.txt → 775-d6b0a7afbd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8489-7779fd40b3-lite.chunk.js.LICENSE.txt → 8489-88ab052e8c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8935-2bb61f918c-lite.chunk.js.LICENSE.txt → 8935-38d780c423-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-77ff8b16ac-lite.chunk.js.LICENSE.txt → 9230-1ffbf1807e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9719-0e59bf30a5-lite.chunk.js.LICENSE.txt → 9719-28c14a0783-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-fb8200eefd.min.js.LICENSE.txt → bundle-b25c09d3e8.min.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/775-b6cb8f1808-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/helpers/ExternalLinkHelper.ts","file:///app/packages/libs/shared/src/components/typeahead-error-state/typeahead-error-state.scss","file:///app/packages/libs/shared/src/components/typeahead-error-state/TypeaheadErrorState.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/projects/lite/src/apps/my-videos/flight-requests/MyVideosRequests.ts","file:///app/packages/projects/lite/src/apps/my-videos/hooks/useShapeTree.ts","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/add-to-exchange.scss","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-category/AddToExchangeCategory.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-channel/AddToExchangeChannel.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-details/AddToExchangeDetails.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-rating/AddtoExchangeRating.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-series/AddToExchangeSeries.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/AddToExchangeForm.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/AddToExchangeView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RatingRequests.ts"],"sourcesContent":["import { LocalityHelper } from 'libs/shared/apps/sign-up/helpers/LocalityHelper';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\ntype ExternalLinkType = {\n [key: string]: {\n [key in CountryCode]: string\n }\n}\n\nexport const ExternalLink: ExternalLinkType = {\n Marketing: {\n au: 'https://www.clickvieweducation.com/en-au',\n us: 'https://www.clickvieweducation.com',\n nz: 'https://www.clickview.co.nz',\n // @todo update after new UK website is released\n uk: 'https://www.clickview.co.uk'\n },\n Support: {\n au: 'https://www.clickviewsupport.com/hc/en-au',\n uk: 'https://www.clickviewsupport.com/hc/en-au#gb',\n nz: 'https://www.clickviewsupport.com/hc/en-au#nz',\n us: 'https://www.clickviewsupport.com/hc/en-au#us'\n }\n};\n\nconst marketingSalesPathname: {[key in CountryCode]: string} = {\n [CountryCode.AU]: '/contact-us/sales',\n [CountryCode.US]: '/contact-us/sales',\n [CountryCode.NZ]: '/contact-us/',\n // @todo update after new UK website is released\n [CountryCode.UK]: '/contact-us/trial'\n};\n\nconst marketingFreeResourcesPathname: {[key in CountryCode]: string} = {\n [CountryCode.AU]: '/resources/free-student-resources',\n [CountryCode.US]: '/resources/free-student-resources',\n [CountryCode.NZ]: '/free-student-resources/',\n // @todo update after new UK website is released\n [CountryCode.UK]: '/free-student-resources/'\n};\n\nexport const ExternalLinkHelper = {\n \n getMarketingUrlForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const url = ExternalLink.Marketing[countryCode];\n\n if (!url)\n return ExternalLink.Marketing.us;\n\n return url;\n },\n\n getMarketingSalesContactForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const baseUrl = ExternalLinkHelper.getMarketingUrlForGeoLocation(geoLocation);\n const pathname = marketingSalesPathname[countryCode];\n\n return `${baseUrl}${pathname}`;\n },\n\n getFreeResourcesForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n\n const baseUrl = this.getMarketingUrlForGeoLocation({ countryCode });\n const pathname = marketingFreeResourcesPathname[countryCode];\n\n return `${baseUrl}${pathname}`;\n },\n\n getTermsAndConditionsLink(): string {\n const baseUrl = this.getMarketingUrlForGeoLocation(CountryCode.US);\n return baseUrl + '/terms-and-conditions/';\n },\n\n getPrivacyPolicyLink(): string {\n const baseUrl = this.getMarketingUrlForGeoLocation(CountryCode.US);\n return baseUrl + '/privacy-policy/';\n },\n\n getSupportUrlForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const url = ExternalLink.Support[countryCode];\n\n if (!url)\n return ExternalLink.Support.us;\n\n return url;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"emptyState\":\"k5mEG\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './typeahead-error-state.scss';\n\nconst namespace = 'shared.typeaheadErrorState';\n\ninterface TypeaheadErrorStateProps {\n imageUrl: string;\n onClickTryAgain: () => void;\n}\n\nexport function TypeaheadErrorState(props: TypeaheadErrorStateProps): JSX.Element {\n function onClickComponent(e: React.MouseEvent<HTMLDivElement>): void {\n e.stopPropagation();\n }\n\n function onClickTryAgain(e: React.MouseEvent<HTMLDivElement>): void {\n e.stopPropagation();\n \n props.onClickTryAgain();\n }\n\n return (\n <div className='d-flex flex-column align-items-center text-center' onClick={onClickComponent}>\n <img\n alt=''\n role='presentation'\n src={props.imageUrl}\n className={`pb-2 ${styles.emptyState}`}\n />\n <h2 className='h6' role='alert'>\n <Text namespace={namespace} phrase='error' />\n </h2>\n <DivButton onClick={onClickTryAgain} className='btn btn-link info-link p-0'>\n <Text namespace={namespace} phrase='tryAgain' />\n </DivButton>\n </div>\n );\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\n\nimport { AddFolderRequest } from 'apps/my-videos/interfaces/requests/AddFolderRequest';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { MoveFolderRequest } from 'apps/my-videos/interfaces/requests/MoveFolderRequest';\nimport { MoveVideoRequest } from 'apps/my-videos/interfaces/requests/MoveVideoRequest';\n\nexport const MyVideosRequests = {\n videos(id: string, cursor?: string, typeFilter?: SearchIndices | SearchIndices[]): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]{status:${CurationStatus.Published}}`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const query = [];\n if (typeFilter?.length) {\n if (typeFilter.includes('video'))\n query.push(videoQuery);\n if (typeFilter.includes('clip'))\n query.push(clipQuery);\n if (typeFilter.includes('interactive'))\n query.push(interactiveQuery);\n } else {\n query.push(videoQuery, clipQuery, interactiveQuery);\n }\n\n const params: HashObject = {\n query: `(${query.join('|')}){orderbydesc:timestamp}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/members`, params),\n key: `my:videos:${id}:${cursor}${typeFilter ? `:${Array.isArray(typeFilter) ? typeFilter.join(':') : typeFilter}` : ''}`\n };\n },\n\n workspaceWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['workspace'],\n maxCategoryDepth: 6\n }),\n key: 'workspace:folders',\n normalize: false\n };\n },\n\n exchangeWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 5\n }),\n key: 'exchange:folders',\n normalize: false\n };\n },\n\n addFolder(data: AddFolderRequest): Flight.Request {\n // TODO: Need to stop using domain\n let url = `/api/domain/v2/collections/${data.collectionId}/categories`;\n\n if (data.parentCategoryId)\n url = UrlHelper.urlBuilder(url, { parentCategoryId: data.parentCategoryId });\n\n return {\n url,\n key: 'add:folder',\n type: HttpVerbs.POST,\n data: { name: data.name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n deleteFolder(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'delete:folder',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n moveFolder(data: MoveFolderRequest): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: '/api/domain/v2/objects/move',\n key: 'move:folder',\n type: HttpVerbs.POST,\n data: {\n assocType: 'has',\n newCollectionId: data.newFolderId,\n oldCollectionId: data.oldFolderId,\n objectIds: [data.moveFolderId]\n },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n updateFolder(id: string, name: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'rename:folder',\n type: HttpVerbs.PUT,\n data: { name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n videoFolders(videoId: string, libraryId: string): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: `/api/domain/v2/objects/${videoId}/categories?query=libraries{id:${libraryId}}`,\n key: `video:folders:${videoId}`\n };\n },\n\n moveVideo(request: MoveVideoRequest): Flight.Request {\n const data: HashObject = {\n newCollectionId: request.newFolderId,\n oldCollectionId: request.oldFolderId,\n objectIds: request.videoId\n };\n\n return {\n url: '/api/domain/v3/objects/move',\n key: `move:folder:${data.objectIds.join(',')}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['video']\n };\n },\n\n addToExchange(data: AddToExchangeRequest): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/videos/exchange',\n key: 'add:to:exchange',\n type: HttpVerbs.POST,\n data\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { BaseObject, BaseTree, MasterNestedObject } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nconst namespace = 'myVideos.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useShapeTree<T extends BaseObject>(\n trees: MasterNestedObject<T>[],\n rename: boolean = true\n): BaseTree<T> {\n return React.useMemo(() => {\n if (!trees?.length)\n return null;\n\n /**\n * Renaming \"<fullName>'s Workspace\"\n * to \"My Videos\"\n */\n const renamed = trees.map(t => ({\n ...t,\n data: {\n ...t.data,\n name: rename ? getPhrase('myVideos') : t.data.name\n }\n }));\n\n const rootBranches = renamed.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<T>;\n }, [trees]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"selectButton\":\"HWv2E\",\"suggestionsContainer\":\"m1Nm0\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder } from 'libs/shared/interfaces';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToExchangeCategoryProps {\n categories: BaseTree<Folder>;\n}\n\nexport function AddToExchangeCategory(props: AddToExchangeCategoryProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('category')}\n name='category'\n showRequiredStar\n >\n {() => (\n <div className='dropdown mb-2'>\n <button\n className={`dropdown-toggle form-control text-start position-relative ${styles.selectButton}`}\n type='button'\n id='select-folder'\n data-bs-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n >\n <div className='text-truncate'>\n {formikProps.values.category?.name ?? <Text namespace={namespace} phrase='categoryPlaceholder' />}\n </div>\n </button>\n <div className='dropdown-menu w-100' aria-labelledby='select-folder'>\n <Scrollbars autoHeight autoHeightMax={300} hideTracksWhenNotNeeded>\n <Tree\n tree={props.categories}\n onSelect={(folder: BaseTree<Folder>) => formikProps.setFieldValue('category', folder, true)}\n selectedIds={formikProps.values.category?.id ? [formikProps.values.category.id] : undefined}\n selectedLinkClassName='bg-light fw-semibold'\n isDropdown\n />\n </Scrollbars>\n </div>\n </div>\n )}\n </FormField>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { TypeaheadErrorState } from 'libs/shared/components/typeahead-error-state/TypeaheadErrorState';\nimport { Channel } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AddToExchangeChannel(): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('channel')}\n name='channel'\n id='channel'\n showRequiredStar\n >\n {() => (\n <>\n <SearchBar<Channel>\n theme={() => ({\n suggestionsContainer: styles.suggestionsContainer,\n suggestionsContainerOpen: 'pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100'\n })}\n activationLength={2}\n placeholder={getPhrase('channelPlaceholder')}\n clearQueryOnSelect={false}\n searchIconPlacement={false}\n debounceTime={300}\n allowableSuggestionFetchRequestedReasons={[ 'input-changed', 'input-focused' ]}\n getRemoteUrl={query => UrlHelper.urlBuilder('/api/domain/v1/search/channel/instant/raw', {\n q: query\n })}\n onSuggestionSelected={channel => formikProps.setFieldValue('channel', channel, true)}\n showClearInputIcon\n renderAsForm={false}\n onClickClearInput={() => formikProps.setFieldValue('channel', null, true)}\n initialQuery={formikProps.values.channel?.name ?? ''}\n getErrorStateComponent={onClickTryAgain =>\n <TypeaheadErrorState imageUrl={ImageUrls.TYPEAHEAD_ERROR} onClickTryAgain={onClickTryAgain} />\n }\n getEmptyStateComponent={query => (<div>{getPhrase('emptySearch', { query })}</div>)}\n />\n </>\n )}\n </FormField>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Video } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myVideos.addToExchange';\n\ninterface AddToExchangeDetailsProps {\n video: Video;\n onClickCancel: () => void;\n}\n\nexport function AddToExchangeDetails(props: AddToExchangeDetailsProps): JSX.Element {\n return (\n <>\n <p>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ contentGuidelines: ArticleHelper.getLiteArticle(LiteSupportArticle.ContentGuidelines) }}\n />\n </p>\n <div className='row form-group'>\n <div className='col-5'>\n <VideoThumbnail\n video={props.video}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-7'>\n <h2 className='h6'>{props.video.name}</h2>\n <AppLink\n appLink={{\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [props.video.id]\n }}\n className='info-link'\n onClick={props.onClickCancel}\n >\n <Text namespace={namespace} phrase='edit' />\n </AppLink>\n </div>\n </div>\n <p><Text namespace={namespace} phrase='prompt' /></p>\n </>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { Rating } from 'libs/shared/interfaces';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n/**\n * We want to hide inappropriate rating values that won't be used.\n */\nconst MAX_DISPLAYED_RATING_VALUE = 128;\n\ninterface AddToExchangeRatingProps {\n ratings: Rating[];\n}\n\nexport function AddToExchangeRating(props: AddToExchangeRatingProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n as='select'\n label={getPhrase('rating')}\n name='rating'\n showRequiredStar\n value={formikProps.values.rating?.id}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {\n const ratingId = e.target.value;\n\n if (!ratingId) {\n formikProps.setFieldValue('rating', null);\n return;\n }\n\n const rating = props.ratings.find(r => r.id.toString() === ratingId.toString());\n formikProps.setFieldValue('rating', rating);\n }}\n >\n <option value=''>{getPhrase('ratingPlaceholder')}</option>\n {props.ratings.map((rating, key) => {\n if (rating.value >= MAX_DISPLAYED_RATING_VALUE)\n return <React.Fragment key={key} />;\n \n return (\n <option key={key} value={rating.id}>\n {rating.code || rating.name}\n </option>\n );\n })}\n </FormField>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { TypeaheadErrorState } from 'libs/shared/components/typeahead-error-state/TypeaheadErrorState';\nimport { Series } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AddToExchangeSeries(): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('series')}\n name='series'\n id='series'\n >\n {() => (\n <>\n <SearchBar<Series>\n theme={() => ({\n suggestionsContainer: styles.suggestionsContainer,\n suggestionsContainerOpen: 'pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100'\n })}\n activationLength={2}\n placeholder={getPhrase('seriesPlaceholder')}\n clearQueryOnSelect={false}\n searchIconPlacement={false}\n debounceTime={300}\n allowableSuggestionFetchRequestedReasons={[ 'input-changed', 'input-focused' ]}\n getRemoteUrl={query => UrlHelper.urlBuilder('/api/domain/v1/search/series/instant/raw', {\n q: query,\n filterEmptySeries: false\n })}\n onSuggestionSelected={series => formikProps.setFieldValue('series', series, true)}\n showClearInputIcon\n renderAsForm={false}\n onClickClearInput={() => formikProps.setFieldValue('series', null, true)}\n initialQuery={formikProps.values.series?.name ?? ''}\n getErrorStateComponent={onClickTryAgain =>\n <TypeaheadErrorState imageUrl={ImageUrls.TYPEAHEAD_ERROR} onClickTryAgain={onClickTryAgain} />\n }\n getEmptyStateComponent={query => (<div>{getPhrase('emptySearch', { query })}</div>)}\n />\n </>\n )}\n </FormField>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ExternalLinkHelper } from 'libs/shared/apps/sign-up/helpers/ExternalLinkHelper';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseTree, Channel, Folder, Rating, Series, Video } from 'libs/shared/interfaces';\n\nimport { AddToExchangeCategory } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-category/AddToExchangeCategory';\nimport { AddToExchangeChannel } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-channel/AddToExchangeChannel';\nimport { AddToExchangeDetails } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-details/AddToExchangeDetails';\nimport { AddToExchangeRating } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-rating/AddtoExchangeRating';\nimport { AddToExchangeSeries } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-series/AddToExchangeSeries';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const AddToExchangeValidationSchema = Yup.object().shape({\n category: Yup.object().required(getPhrase('categoryRequired')),\n rating: Yup.object().nullable().required(getPhrase('ratingRequired')),\n channel: Yup.object().required(getPhrase('channelRequired')),\n dateBroadcast: Yup.string().required(getPhrase('dateBroadcastRequired')),\n series: Yup.object(),\n seasonNumber: Yup\n .number()\n .integer()\n .min(1, () => getPhrase('seasonNumberRange'))\n .max(3000, () => getPhrase('seasonNumberRange')),\n episodeNumber: Yup\n .number()\n .integer()\n .min(1, () => getPhrase('episodeNumberRange'))\n .max(2147483647, () => getPhrase('episodeNumberRange'))\n});\n\nexport interface AddToExchangeFormData {\n category: Folder;\n rating: Rating;\n channel: Channel;\n dateBroadcast: string;\n series: Series;\n seasonNumber: number;\n episodeNumber: number;\n}\n\ninterface AddToExchangeFormProps {\n onClickCancel: () => void;\n showSpinner: boolean;\n categories: BaseTree<Folder>;\n ratings: Rating[];\n video: Video;\n}\n\nexport function AddToExchangeForm(props: AddToExchangeFormProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <Form>\n <AddToExchangeDetails video={props.video} onClickCancel={props.onClickCancel} />\n <div className='container'>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeCategory categories={props.categories} />\n </div>\n <div className='col-lg-6 col-12'>\n <AddToExchangeRating ratings={props.ratings} />\n </div>\n </div>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeChannel />\n </div>\n <div className='col-lg-6 col-12'>\n <FormField\n type='date'\n name='dateBroadcast'\n label={getPhrase('dateBroadcast')}\n value={formikProps.values.dateBroadcast ?\n DateHelper.format(formikProps.values.dateBroadcast, 'YYYY-MM-DD') :\n ''}\n min='1927-09-07' // First ever TV broadcast\n max={DateHelper.format(new Date(), 'YYYY-MM-DD')}\n showRequiredStar\n />\n </div>\n </div>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeSeries />\n </div>\n <div className='col-lg-6 col-12'>\n <div className='row'>\n <div className='col-6'>\n <FormField\n label={getPhrase('seasonNumber')}\n type='number'\n name='seasonNumber'\n id='seasonNumber'\n placeholder={getPhrase('seasonNumber')}\n autoFocus\n value={formikProps.values.seasonNumber}\n disabled={!formikProps.values.series}\n />\n </div>\n <div className='col-6'>\n <FormField\n label={getPhrase('episodeNumber')}\n type='number'\n name='episodeNumber'\n id='episodeNumber'\n placeholder={getPhrase('episodeNumber')}\n autoFocus\n value={formikProps.values.episodeNumber}\n disabled={!formikProps.values.series}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <p><Text namespace={namespace} phrase='disclaimer' options={{ termsAndCondiditons: ExternalLinkHelper.getTermsAndConditionsLink() }} /></p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.onClickCancel} />\n <PopupButtons.Submit variant='dark' showSpinner={props.showSpinner} text={getPhrase('contribute')} />\n </PopupButtons>\n </Form>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AddToExchangeDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { LibraryTree, PopupViewProps, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RatingRequests } from 'shared/flight-requests/RatingRequests';\n\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useShapeTree } from 'apps/my-videos/hooks/useShapeTree';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { AddToExchangeForm, AddToExchangeFormData, AddToExchangeValidationSchema } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToExchangeViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function AddToExchangeView(props: AddToExchangeViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const exchangeCategories = Flight.useBasicFetch<LibraryTree[]>(MyVideosRequests.exchangeWithCategories());\n const categories = useShapeTree(exchangeCategories.data?.[0]?.children, false);\n const ratings = Flight.useBasicFetch<any>(RatingRequests.ratings());\n \n async function onSubmit(data: AddToExchangeFormData): Promise<void> {\n setShowSpinner(true);\n\n const requestData: AddToExchangeRequest = {\n videoId: video.data.id,\n categoryId: data.category.id,\n videoAttribute: {\n name: video.data.name,\n description: video.data.description,\n rating: data.rating.id,\n dateBroadcast: data.dateBroadcast,\n productionYear: video.data.productionYear,\n channel: data.channel.id,\n series: data.series?.id,\n seasonNumber: data.seasonNumber,\n episodeNumber: data.episodeNumber\n }\n };\n\n try {\n await fetchAsync(MyVideosRequests.addToExchange(requestData));\n\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name,\n isBroadcast: VideoHelper.isBroadcast(video.data)\n }, {\n actionType: UserAction.Create,\n entity: EntityType.Video,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AddToExchangeDescriptor.AddToExchange\n });\n\n alerts.success(getPhrase('success'));\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.ADD_TO_EXCHANGE_SUCCESS\n });\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n const hasLoaded = (\n video.hasCompleted &&\n exchangeCategories.hasCompleted &&\n ratings.hasCompleted\n );\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n >\n {hasLoaded &&\n <FormWrapper<AddToExchangeFormData>\n initialValues={{\n rating: video.data.rating,\n channel: video.data.channel,\n dateBroadcast: video.data.dateBroadcast,\n series: video.data.series,\n seasonNumber: video.data.season?.number,\n episodeNumber: video.data.episodeNumber\n }}\n validationSchema={AddToExchangeValidationSchema}\n onSubmit={onSubmit}\n validateOnMount\n >\n <AddToExchangeForm\n categories={categories}\n ratings={ratings.data}\n onClickCancel={props.closePopup}\n showSpinner={showSpinner}\n video={video.data}\n />\n </FormWrapper>\n }\n </Popup>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Rating } from 'libs/shared/interfaces';\n\nexport const RatingRequests = {\n ratings(countryCode?: string): Flight.PublicRequest {\n return {\n url: '/api/domain/v2/me/ratings',\n publicUrl: UrlHelper.urlBuilder('/api/domain/v2/me/ratings', { countryCode }),\n key: 'ratings',\n // v2/me/ratings doesn't support `query={orderby:value}`. Adding this due to time constraints\n formatData: (ratings: Rating[]) => {\n return ratings.sort((a, b) => a.value - b.value);\n }\n };\n }\n};"],"names":["ExternalLink","Marketing","au","us","nz","uk","Support","marketingSalesPathname","C","marketingFreeResourcesPathname","ExternalLinkHelper","getMarketingUrlForGeoLocation","geoLocation","countryCode","getMarketingSalesContactForGeoLocation","baseUrl","pathname","getFreeResourcesForGeoLocation","this","getTermsAndConditionsLink","getPrivacyPolicyLink","getSupportUrlForGeoLocation","namespace","TypeaheadErrorState","props","className","onClick","e","stopPropagation","alt","role","src","imageUrl","Text","phrase","DivButton","onClickTryAgain","OnlineSupportArticle","LiteSupportArticle","MyVideosRequests","videos","id","cursor","typeFilter","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","clipQuery","interactiveQuery","query","length","includes","push","params","join","permissionFilterOption","url","key","Array","isArray","workspaceWithCategories","type","maxCategoryDepth","normalize","exchangeWithCategories","addFolder","data","collectionId","parentCategoryId","name","invalidationKeys","deleteFolder","moveFolder","assocType","newCollectionId","newFolderId","oldCollectionId","oldFolderId","objectIds","moveFolderId","updateFolder","videoFolders","videoId","libraryId","moveVideo","request","addToExchange","getPhrase","useShapeTree","trees","rename","children","map","t","LanguageService","AddToExchangeCategory","formikProps","FormField","label","showRequiredStar","values","category","autoHeight","autoHeightMax","hideTracksWhenNotNeeded","Tree","tree","categories","onSelect","folder","setFieldValue","selectedIds","undefined","selectedLinkClassName","isDropdown","AddToExchangeChannel","SearchBar","theme","suggestionsContainer","suggestionsContainerOpen","activationLength","placeholder","clearQueryOnSelect","searchIconPlacement","debounceTime","allowableSuggestionFetchRequestedReasons","getRemoteUrl","UrlHelper","q","onSuggestionSelected","channel","showClearInputIcon","renderAsForm","onClickClearInput","initialQuery","getErrorStateComponent","ImageUrls","getEmptyStateComponent","AddToExchangeDetails","options","contentGuidelines","ArticleHelper","VideoThumbnail","video","imageOptions","size","textPosition","ThumbnailTextPosition","preload","AppLink","appLink","application","action","args","onClickCancel","MAX_DISPLAYED_RATING_VALUE","AddToExchangeRating","as","value","rating","onChange","ratingId","target","ratings","find","r","toString","code","AddToExchangeSeries","filterEmptySeries","series","AddToExchangeValidationSchema","shape","required","nullable","dateBroadcast","seasonNumber","integer","min","max","episodeNumber","AddToExchangeForm","DateHelper","Date","autoFocus","disabled","termsAndCondiditons","PopupButtons","variant","showSpinner","text","AddToExchangeView","setShowSpinner","fetchAsync","alerts","VideoRequests","exchangeCategories","RatingRequests","hasLoaded","hasCompleted","Popup","title","closePopup","showLoadingSpinner","FormWrapper","initialValues","season","number","validationSchema","onSubmit","requestData","categoryId","videoAttribute","description","productionYear","AnalyticsHelper","isBroadcast","VideoHelper","actionType","entity","location","workflowPhase","descriptor","AddToExchange","success","error","validateOnMount","publicUrl","formatData","sort","a","b"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/775-d6b0a7afbd-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/helpers/ExternalLinkHelper.ts","file:///app/packages/libs/shared/src/components/typeahead-error-state/typeahead-error-state.scss","file:///app/packages/libs/shared/src/components/typeahead-error-state/TypeaheadErrorState.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/projects/lite/src/apps/my-videos/flight-requests/MyVideosRequests.ts","file:///app/packages/projects/lite/src/apps/my-videos/hooks/useShapeTree.ts","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/add-to-exchange.scss","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-category/AddToExchangeCategory.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-channel/AddToExchangeChannel.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-details/AddToExchangeDetails.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-rating/AddtoExchangeRating.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/components/add-to-exchange-series/AddToExchangeSeries.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/AddToExchangeForm.tsx","file:///app/packages/projects/lite/src/apps/my-videos/views/add-to-exchange/AddToExchangeView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RatingRequests.ts"],"sourcesContent":["import { LocalityHelper } from 'libs/shared/apps/sign-up/helpers/LocalityHelper';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\ntype ExternalLinkType = {\n [key: string]: {\n [key in CountryCode]: string\n }\n}\n\nexport const ExternalLink: ExternalLinkType = {\n Marketing: {\n au: 'https://www.clickvieweducation.com/en-au',\n us: 'https://www.clickvieweducation.com',\n nz: 'https://www.clickview.co.nz',\n // @todo update after new UK website is released\n uk: 'https://www.clickview.co.uk'\n },\n Support: {\n au: 'https://www.clickviewsupport.com/hc/en-au',\n uk: 'https://www.clickviewsupport.com/hc/en-au#gb',\n nz: 'https://www.clickviewsupport.com/hc/en-au#nz',\n us: 'https://www.clickviewsupport.com/hc/en-au#us'\n }\n};\n\nconst marketingSalesPathname: {[key in CountryCode]: string} = {\n [CountryCode.AU]: '/contact-us/sales',\n [CountryCode.US]: '/contact-us/sales',\n [CountryCode.NZ]: '/contact-us/',\n // @todo update after new UK website is released\n [CountryCode.UK]: '/contact-us/trial'\n};\n\nconst marketingFreeResourcesPathname: {[key in CountryCode]: string} = {\n [CountryCode.AU]: '/resources/free-student-resources',\n [CountryCode.US]: '/resources/free-student-resources',\n [CountryCode.NZ]: '/free-student-resources/',\n // @todo update after new UK website is released\n [CountryCode.UK]: '/free-student-resources/'\n};\n\nexport const ExternalLinkHelper = {\n \n getMarketingUrlForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const url = ExternalLink.Marketing[countryCode];\n\n if (!url)\n return ExternalLink.Marketing.us;\n\n return url;\n },\n\n getMarketingSalesContactForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const baseUrl = ExternalLinkHelper.getMarketingUrlForGeoLocation(geoLocation);\n const pathname = marketingSalesPathname[countryCode];\n\n return `${baseUrl}${pathname}`;\n },\n\n getFreeResourcesForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n\n const baseUrl = this.getMarketingUrlForGeoLocation({ countryCode });\n const pathname = marketingFreeResourcesPathname[countryCode];\n\n return `${baseUrl}${pathname}`;\n },\n\n getTermsAndConditionsLink(): string {\n const baseUrl = this.getMarketingUrlForGeoLocation(CountryCode.US);\n return baseUrl + '/terms-and-conditions/';\n },\n\n getPrivacyPolicyLink(): string {\n const baseUrl = this.getMarketingUrlForGeoLocation(CountryCode.US);\n return baseUrl + '/privacy-policy/';\n },\n\n getSupportUrlForGeoLocation(geoLocation: GeoLocation): string {\n const countryCode = LocalityHelper.getCountryCode(geoLocation?.countryCode);\n const url = ExternalLink.Support[countryCode];\n\n if (!url)\n return ExternalLink.Support.us;\n\n return url;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"emptyState\":\"k5mEG\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './typeahead-error-state.scss';\n\nconst namespace = 'shared.typeaheadErrorState';\n\ninterface TypeaheadErrorStateProps {\n imageUrl: string;\n onClickTryAgain: () => void;\n}\n\nexport function TypeaheadErrorState(props: TypeaheadErrorStateProps): JSX.Element {\n function onClickComponent(e: React.MouseEvent<HTMLDivElement>): void {\n e.stopPropagation();\n }\n\n function onClickTryAgain(e: React.MouseEvent<HTMLDivElement>): void {\n e.stopPropagation();\n \n props.onClickTryAgain();\n }\n\n return (\n <div className='d-flex flex-column align-items-center text-center' onClick={onClickComponent}>\n <img\n alt=''\n role='presentation'\n src={props.imageUrl}\n className={`pb-2 ${styles.emptyState}`}\n />\n <h2 className='h6' role='alert'>\n <Text namespace={namespace} phrase='error' />\n </h2>\n <DivButton onClick={onClickTryAgain} className='btn btn-link info-link p-0'>\n <Text namespace={namespace} phrase='tryAgain' />\n </DivButton>\n </div>\n );\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\n\nimport { AddFolderRequest } from 'apps/my-videos/interfaces/requests/AddFolderRequest';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { MoveFolderRequest } from 'apps/my-videos/interfaces/requests/MoveFolderRequest';\nimport { MoveVideoRequest } from 'apps/my-videos/interfaces/requests/MoveVideoRequest';\n\nexport const MyVideosRequests = {\n videos(id: string, cursor?: string, typeFilter?: SearchIndices | SearchIndices[]): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]{status:${CurationStatus.Published}}`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const query = [];\n if (typeFilter?.length) {\n if (typeFilter.includes('video'))\n query.push(videoQuery);\n if (typeFilter.includes('clip'))\n query.push(clipQuery);\n if (typeFilter.includes('interactive'))\n query.push(interactiveQuery);\n } else {\n query.push(videoQuery, clipQuery, interactiveQuery);\n }\n\n const params: HashObject = {\n query: `(${query.join('|')}){orderbydesc:timestamp}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}/members`, params),\n key: `my:videos:${id}:${cursor}${typeFilter ? `:${Array.isArray(typeFilter) ? typeFilter.join(':') : typeFilter}` : ''}`\n };\n },\n\n workspaceWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['workspace'],\n maxCategoryDepth: 6\n }),\n key: 'workspace:folders',\n normalize: false\n };\n },\n\n exchangeWithCategories(): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: UrlHelper.urlBuilder('/api/domain/v2/me/libraries', {\n type: ['exchange'],\n maxCategoryDepth: 5\n }),\n key: 'exchange:folders',\n normalize: false\n };\n },\n\n addFolder(data: AddFolderRequest): Flight.Request {\n // TODO: Need to stop using domain\n let url = `/api/domain/v2/collections/${data.collectionId}/categories`;\n\n if (data.parentCategoryId)\n url = UrlHelper.urlBuilder(url, { parentCategoryId: data.parentCategoryId });\n\n return {\n url,\n key: 'add:folder',\n type: HttpVerbs.POST,\n data: { name: data.name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n deleteFolder(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'delete:folder',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n moveFolder(data: MoveFolderRequest): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: '/api/domain/v2/objects/move',\n key: 'move:folder',\n type: HttpVerbs.POST,\n data: {\n assocType: 'has',\n newCollectionId: data.newFolderId,\n oldCollectionId: data.oldFolderId,\n objectIds: [data.moveFolderId]\n },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n updateFolder(id: string, name: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'rename:folder',\n type: HttpVerbs.PUT,\n data: { name },\n invalidationKeys: [ 'workspace', 'folder' ]\n };\n },\n\n videoFolders(videoId: string, libraryId: string): Flight.Request {\n return {\n // TODO: Need to stop using domain\n url: `/api/domain/v2/objects/${videoId}/categories?query=libraries{id:${libraryId}}`,\n key: `video:folders:${videoId}`\n };\n },\n\n moveVideo(request: MoveVideoRequest): Flight.Request {\n const data: HashObject = {\n newCollectionId: request.newFolderId,\n oldCollectionId: request.oldFolderId,\n objectIds: request.videoId\n };\n\n return {\n url: '/api/domain/v3/objects/move',\n key: `move:folder:${data.objectIds.join(',')}`,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['video']\n };\n },\n\n addToExchange(data: AddToExchangeRequest): Flight.Request {\n return {\n url: '{gateway}/v1/users/me/videos/exchange',\n key: 'add:to:exchange',\n type: HttpVerbs.POST,\n data\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { BaseObject, BaseTree, MasterNestedObject } from 'libs/shared/interfaces';\nimport { TreeHelper } from 'libs/shared/utils/TreeHelper';\n\nconst namespace = 'myVideos.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useShapeTree<T extends BaseObject>(\n trees: MasterNestedObject<T>[],\n rename: boolean = true\n): BaseTree<T> {\n return React.useMemo(() => {\n if (!trees?.length)\n return null;\n\n /**\n * Renaming \"<fullName>'s Workspace\"\n * to \"My Videos\"\n */\n const renamed = trees.map(t => ({\n ...t,\n data: {\n ...t.data,\n name: rename ? getPhrase('myVideos') : t.data.name\n }\n }));\n\n const rootBranches = renamed.map(TreeHelper.convertNestedObjectToTree);\n\n return {\n children: rootBranches\n } as BaseTree<T>;\n }, [trees]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"selectButton\":\"HWv2E\",\"suggestionsContainer\":\"m1Nm0\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tree } from 'libs/shared/components/tree/Tree';\nimport { BaseTree, Folder } from 'libs/shared/interfaces';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToExchangeCategoryProps {\n categories: BaseTree<Folder>;\n}\n\nexport function AddToExchangeCategory(props: AddToExchangeCategoryProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('category')}\n name='category'\n showRequiredStar\n >\n {() => (\n <div className='dropdown mb-2'>\n <button\n className={`dropdown-toggle form-control text-start position-relative ${styles.selectButton}`}\n type='button'\n id='select-folder'\n data-bs-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n >\n <div className='text-truncate'>\n {formikProps.values.category?.name ?? <Text namespace={namespace} phrase='categoryPlaceholder' />}\n </div>\n </button>\n <div className='dropdown-menu w-100' aria-labelledby='select-folder'>\n <Scrollbars autoHeight autoHeightMax={300} hideTracksWhenNotNeeded>\n <Tree\n tree={props.categories}\n onSelect={(folder: BaseTree<Folder>) => formikProps.setFieldValue('category', folder, true)}\n selectedIds={formikProps.values.category?.id ? [formikProps.values.category.id] : undefined}\n selectedLinkClassName='bg-light fw-semibold'\n isDropdown\n />\n </Scrollbars>\n </div>\n </div>\n )}\n </FormField>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { TypeaheadErrorState } from 'libs/shared/components/typeahead-error-state/TypeaheadErrorState';\nimport { Channel } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AddToExchangeChannel(): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('channel')}\n name='channel'\n id='channel'\n showRequiredStar\n >\n {() => (\n <>\n <SearchBar<Channel>\n theme={() => ({\n suggestionsContainer: styles.suggestionsContainer,\n suggestionsContainerOpen: 'pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100'\n })}\n activationLength={2}\n placeholder={getPhrase('channelPlaceholder')}\n clearQueryOnSelect={false}\n searchIconPlacement={false}\n debounceTime={300}\n allowableSuggestionFetchRequestedReasons={[ 'input-changed', 'input-focused' ]}\n getRemoteUrl={query => UrlHelper.urlBuilder('/api/domain/v1/search/channel/instant/raw', {\n q: query\n })}\n onSuggestionSelected={channel => formikProps.setFieldValue('channel', channel, true)}\n showClearInputIcon\n renderAsForm={false}\n onClickClearInput={() => formikProps.setFieldValue('channel', null, true)}\n initialQuery={formikProps.values.channel?.name ?? ''}\n getErrorStateComponent={onClickTryAgain =>\n <TypeaheadErrorState imageUrl={ImageUrls.TYPEAHEAD_ERROR} onClickTryAgain={onClickTryAgain} />\n }\n getEmptyStateComponent={query => (<div>{getPhrase('emptySearch', { query })}</div>)}\n />\n </>\n )}\n </FormField>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Video } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myVideos.addToExchange';\n\ninterface AddToExchangeDetailsProps {\n video: Video;\n onClickCancel: () => void;\n}\n\nexport function AddToExchangeDetails(props: AddToExchangeDetailsProps): JSX.Element {\n return (\n <>\n <p>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ contentGuidelines: ArticleHelper.getLiteArticle(LiteSupportArticle.ContentGuidelines) }}\n />\n </p>\n <div className='row form-group'>\n <div className='col-5'>\n <VideoThumbnail\n video={props.video}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-7'>\n <h2 className='h6'>{props.video.name}</h2>\n <AppLink\n appLink={{\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [props.video.id]\n }}\n className='info-link'\n onClick={props.onClickCancel}\n >\n <Text namespace={namespace} phrase='edit' />\n </AppLink>\n </div>\n </div>\n <p><Text namespace={namespace} phrase='prompt' /></p>\n </>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { Rating } from 'libs/shared/interfaces';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n/**\n * We want to hide inappropriate rating values that won't be used.\n */\nconst MAX_DISPLAYED_RATING_VALUE = 128;\n\ninterface AddToExchangeRatingProps {\n ratings: Rating[];\n}\n\nexport function AddToExchangeRating(props: AddToExchangeRatingProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n as='select'\n label={getPhrase('rating')}\n name='rating'\n showRequiredStar\n value={formikProps.values.rating?.id}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => {\n const ratingId = e.target.value;\n\n if (!ratingId) {\n formikProps.setFieldValue('rating', null);\n return;\n }\n\n const rating = props.ratings.find(r => r.id.toString() === ratingId.toString());\n formikProps.setFieldValue('rating', rating);\n }}\n >\n <option value=''>{getPhrase('ratingPlaceholder')}</option>\n {props.ratings.map((rating, key) => {\n if (rating.value >= MAX_DISPLAYED_RATING_VALUE)\n return <React.Fragment key={key} />;\n \n return (\n <option key={key} value={rating.id}>\n {rating.code || rating.name}\n </option>\n );\n })}\n </FormField>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { TypeaheadErrorState } from 'libs/shared/components/typeahead-error-state/TypeaheadErrorState';\nimport { Series } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AddToExchangeFormData } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nimport styles from '../../add-to-exchange.scss';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AddToExchangeSeries(): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <FormField\n label={getPhrase('series')}\n name='series'\n id='series'\n >\n {() => (\n <>\n <SearchBar<Series>\n theme={() => ({\n suggestionsContainer: styles.suggestionsContainer,\n suggestionsContainerOpen: 'pb-0 pt-1 overflow-hidden bg-white border rounded position-absolute w-100'\n })}\n activationLength={2}\n placeholder={getPhrase('seriesPlaceholder')}\n clearQueryOnSelect={false}\n searchIconPlacement={false}\n debounceTime={300}\n allowableSuggestionFetchRequestedReasons={[ 'input-changed', 'input-focused' ]}\n getRemoteUrl={query => UrlHelper.urlBuilder('/api/domain/v1/search/series/instant/raw', {\n q: query,\n filterEmptySeries: false\n })}\n onSuggestionSelected={series => formikProps.setFieldValue('series', series, true)}\n showClearInputIcon\n renderAsForm={false}\n onClickClearInput={() => formikProps.setFieldValue('series', null, true)}\n initialQuery={formikProps.values.series?.name ?? ''}\n getErrorStateComponent={onClickTryAgain =>\n <TypeaheadErrorState imageUrl={ImageUrls.TYPEAHEAD_ERROR} onClickTryAgain={onClickTryAgain} />\n }\n getEmptyStateComponent={query => (<div>{getPhrase('emptySearch', { query })}</div>)}\n />\n </>\n )}\n </FormField>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ExternalLinkHelper } from 'libs/shared/apps/sign-up/helpers/ExternalLinkHelper';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseTree, Channel, Folder, Rating, Series, Video } from 'libs/shared/interfaces';\n\nimport { AddToExchangeCategory } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-category/AddToExchangeCategory';\nimport { AddToExchangeChannel } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-channel/AddToExchangeChannel';\nimport { AddToExchangeDetails } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-details/AddToExchangeDetails';\nimport { AddToExchangeRating } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-rating/AddtoExchangeRating';\nimport { AddToExchangeSeries } from 'apps/my-videos/views/add-to-exchange/components/add-to-exchange-series/AddToExchangeSeries';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const AddToExchangeValidationSchema = Yup.object().shape({\n category: Yup.object().required(getPhrase('categoryRequired')),\n rating: Yup.object().nullable().required(getPhrase('ratingRequired')),\n channel: Yup.object().required(getPhrase('channelRequired')),\n dateBroadcast: Yup.string().required(getPhrase('dateBroadcastRequired')),\n series: Yup.object(),\n seasonNumber: Yup\n .number()\n .integer()\n .min(1, () => getPhrase('seasonNumberRange'))\n .max(3000, () => getPhrase('seasonNumberRange')),\n episodeNumber: Yup\n .number()\n .integer()\n .min(1, () => getPhrase('episodeNumberRange'))\n .max(2147483647, () => getPhrase('episodeNumberRange'))\n});\n\nexport interface AddToExchangeFormData {\n category: Folder;\n rating: Rating;\n channel: Channel;\n dateBroadcast: string;\n series: Series;\n seasonNumber: number;\n episodeNumber: number;\n}\n\ninterface AddToExchangeFormProps {\n onClickCancel: () => void;\n showSpinner: boolean;\n categories: BaseTree<Folder>;\n ratings: Rating[];\n video: Video;\n}\n\nexport function AddToExchangeForm(props: AddToExchangeFormProps): JSX.Element {\n const formikProps = useFormikContext<AddToExchangeFormData>();\n\n return (\n <Form>\n <AddToExchangeDetails video={props.video} onClickCancel={props.onClickCancel} />\n <div className='container'>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeCategory categories={props.categories} />\n </div>\n <div className='col-lg-6 col-12'>\n <AddToExchangeRating ratings={props.ratings} />\n </div>\n </div>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeChannel />\n </div>\n <div className='col-lg-6 col-12'>\n <FormField\n type='date'\n name='dateBroadcast'\n label={getPhrase('dateBroadcast')}\n value={formikProps.values.dateBroadcast ?\n DateHelper.format(formikProps.values.dateBroadcast, 'YYYY-MM-DD') :\n ''}\n min='1927-09-07' // First ever TV broadcast\n max={DateHelper.format(new Date(), 'YYYY-MM-DD')}\n showRequiredStar\n />\n </div>\n </div>\n <div className='row'>\n <div className='col-lg-6 col-12'>\n <AddToExchangeSeries />\n </div>\n <div className='col-lg-6 col-12'>\n <div className='row'>\n <div className='col-6'>\n <FormField\n label={getPhrase('seasonNumber')}\n type='number'\n name='seasonNumber'\n id='seasonNumber'\n placeholder={getPhrase('seasonNumber')}\n autoFocus\n value={formikProps.values.seasonNumber}\n disabled={!formikProps.values.series}\n />\n </div>\n <div className='col-6'>\n <FormField\n label={getPhrase('episodeNumber')}\n type='number'\n name='episodeNumber'\n id='episodeNumber'\n placeholder={getPhrase('episodeNumber')}\n autoFocus\n value={formikProps.values.episodeNumber}\n disabled={!formikProps.values.series}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <p><Text namespace={namespace} phrase='disclaimer' options={{ termsAndCondiditons: ExternalLinkHelper.getTermsAndConditionsLink() }} /></p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.onClickCancel} />\n <PopupButtons.Submit variant='dark' showSpinner={props.showSpinner} text={getPhrase('contribute')} />\n </PopupButtons>\n </Form>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AddToExchangeDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { LibraryTree, PopupViewProps, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RatingRequests } from 'shared/flight-requests/RatingRequests';\n\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useShapeTree } from 'apps/my-videos/hooks/useShapeTree';\nimport { AddToExchangeRequest } from 'apps/my-videos/interfaces/requests/AddToExchangeRequest';\nimport { AddToExchangeForm, AddToExchangeFormData, AddToExchangeValidationSchema } from 'apps/my-videos/views/add-to-exchange/AddToExchangeForm';\n\nconst namespace = 'myVideos.addToExchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddToExchangeViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function AddToExchangeView(props: AddToExchangeViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const exchangeCategories = Flight.useBasicFetch<LibraryTree[]>(MyVideosRequests.exchangeWithCategories());\n const categories = useShapeTree(exchangeCategories.data?.[0]?.children, false);\n const ratings = Flight.useBasicFetch<any>(RatingRequests.ratings());\n \n async function onSubmit(data: AddToExchangeFormData): Promise<void> {\n setShowSpinner(true);\n\n const requestData: AddToExchangeRequest = {\n videoId: video.data.id,\n categoryId: data.category.id,\n videoAttribute: {\n name: video.data.name,\n description: video.data.description,\n rating: data.rating.id,\n dateBroadcast: data.dateBroadcast,\n productionYear: video.data.productionYear,\n channel: data.channel.id,\n series: data.series?.id,\n seasonNumber: data.seasonNumber,\n episodeNumber: data.episodeNumber\n }\n };\n\n try {\n await fetchAsync(MyVideosRequests.addToExchange(requestData));\n\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name,\n isBroadcast: VideoHelper.isBroadcast(video.data)\n }, {\n actionType: UserAction.Create,\n entity: EntityType.Video,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: AddToExchangeDescriptor.AddToExchange\n });\n\n alerts.success(getPhrase('success'));\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.ADD_TO_EXCHANGE_SUCCESS\n });\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n const hasLoaded = (\n video.hasCompleted &&\n exchangeCategories.hasCompleted &&\n ratings.hasCompleted\n );\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!hasLoaded}\n size='lg'\n >\n {hasLoaded &&\n <FormWrapper<AddToExchangeFormData>\n initialValues={{\n rating: video.data.rating,\n channel: video.data.channel,\n dateBroadcast: video.data.dateBroadcast,\n series: video.data.series,\n seasonNumber: video.data.season?.number,\n episodeNumber: video.data.episodeNumber\n }}\n validationSchema={AddToExchangeValidationSchema}\n onSubmit={onSubmit}\n validateOnMount\n >\n <AddToExchangeForm\n categories={categories}\n ratings={ratings.data}\n onClickCancel={props.closePopup}\n showSpinner={showSpinner}\n video={video.data}\n />\n </FormWrapper>\n }\n </Popup>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Rating } from 'libs/shared/interfaces';\n\nexport const RatingRequests = {\n ratings(countryCode?: string): Flight.PublicRequest {\n return {\n url: '/api/domain/v2/me/ratings',\n publicUrl: UrlHelper.urlBuilder('/api/domain/v2/me/ratings', { countryCode }),\n key: 'ratings',\n // v2/me/ratings doesn't support `query={orderby:value}`. Adding this due to time constraints\n formatData: (ratings: Rating[]) => {\n return ratings.sort((a, b) => a.value - b.value);\n }\n };\n }\n};"],"names":["ExternalLink","Marketing","au","us","nz","uk","Support","marketingSalesPathname","C","marketingFreeResourcesPathname","ExternalLinkHelper","getMarketingUrlForGeoLocation","geoLocation","countryCode","getMarketingSalesContactForGeoLocation","baseUrl","pathname","getFreeResourcesForGeoLocation","this","getTermsAndConditionsLink","getPrivacyPolicyLink","getSupportUrlForGeoLocation","namespace","TypeaheadErrorState","props","className","onClick","e","stopPropagation","alt","role","src","imageUrl","Text","phrase","DivButton","onClickTryAgain","OnlineSupportArticle","LiteSupportArticle","MyVideosRequests","videos","id","cursor","typeFilter","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","clipQuery","interactiveQuery","query","length","includes","push","params","join","permissionFilterOption","url","key","Array","isArray","workspaceWithCategories","type","maxCategoryDepth","normalize","exchangeWithCategories","addFolder","data","collectionId","parentCategoryId","name","invalidationKeys","deleteFolder","moveFolder","assocType","newCollectionId","newFolderId","oldCollectionId","oldFolderId","objectIds","moveFolderId","updateFolder","videoFolders","videoId","libraryId","moveVideo","request","addToExchange","getPhrase","useShapeTree","trees","rename","children","map","t","LanguageService","AddToExchangeCategory","formikProps","FormField","label","showRequiredStar","values","category","autoHeight","autoHeightMax","hideTracksWhenNotNeeded","Tree","tree","categories","onSelect","folder","setFieldValue","selectedIds","undefined","selectedLinkClassName","isDropdown","AddToExchangeChannel","SearchBar","theme","suggestionsContainer","suggestionsContainerOpen","activationLength","placeholder","clearQueryOnSelect","searchIconPlacement","debounceTime","allowableSuggestionFetchRequestedReasons","getRemoteUrl","UrlHelper","q","onSuggestionSelected","channel","showClearInputIcon","renderAsForm","onClickClearInput","initialQuery","getErrorStateComponent","ImageUrls","getEmptyStateComponent","AddToExchangeDetails","options","contentGuidelines","ArticleHelper","VideoThumbnail","video","imageOptions","size","textPosition","ThumbnailTextPosition","preload","AppLink","appLink","application","action","args","onClickCancel","MAX_DISPLAYED_RATING_VALUE","AddToExchangeRating","as","value","rating","onChange","ratingId","target","ratings","find","r","toString","code","AddToExchangeSeries","filterEmptySeries","series","AddToExchangeValidationSchema","shape","required","nullable","dateBroadcast","seasonNumber","integer","min","max","episodeNumber","AddToExchangeForm","DateHelper","Date","autoFocus","disabled","termsAndCondiditons","PopupButtons","variant","showSpinner","text","AddToExchangeView","setShowSpinner","fetchAsync","alerts","VideoRequests","exchangeCategories","RatingRequests","hasLoaded","hasCompleted","Popup","title","closePopup","showLoadingSpinner","FormWrapper","initialValues","season","number","validationSchema","onSubmit","requestData","categoryId","videoAttribute","description","productionYear","AnalyticsHelper","isBroadcast","VideoHelper","actionType","entity","location","workflowPhase","descriptor","AddToExchange","success","error","validateOnMount","publicUrl","formatData","sort","a","b"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[823],{53364:(e,t,n)=>{n.d(t,{b:()=>s});var a=n(32735),r=n(86664);const i={idpButton:"FDoJA",idpImage:"bjN_j",divider:"FfyN0"};var l=[{name:"ClassLink",logoUrl:"https://img.clickviewapp.com/v2/logos/ZA2ew5",url:"/challenge?idp=classlink"},{name:"Clever",logoUrl:"https://img.clickviewapp.com/v2/logos/LqlKgd",url:"/challenge?idp=clever"},{name:"Google",logoUrl:"https://img.clickviewapp.com/v2/logos/l5x0jL",url:"/challenge?idp=google"},{name:"Microsoft",logoUrl:"https://img.clickviewapp.com/v2/logos/xAxGPP",url:"/challenge?idp=microsoft"}],o=[];function c(e){var t=e.idp,n=e.last;return a.createElement("button",{className:"btn btn-lg btn-outline-dark w-100 ".concat(n?"":"mb-3"," ").concat(i.idpButton),onClick:function(){if(e.onClick)e.onClick(t);else{var n=window.location.pathname+window.location.search;window.location.href=t.url+"&redirectUrl="+encodeURIComponent(n)+"&attribution="+encodeURIComponent(e.attribution)}}},t.logoUrl&&a.createElement("img",{src:t.logoUrl,className:i.idpImage}),"Continue with ",t.name)}function s(e){var t,n,s="idps"in e?e.idps:null;return!(null==s?void 0:s.length)&&"geoLocation"in e&&(s=[].concat(o),r.I.isCountryCodeUS(null===(t=e.geoLocation)||void 0===t?void 0:t.countryCode)&&(n=s).unshift.apply(n,l)),s.length?a.createElement("div",{className:"".concat(e.className?e.className:"")},a.createElement("div",{className:"my-3 border-bottom position-relative ".concat(i.divider)}),s.map((function(t,n){return a.createElement(c,{key:n,idp:t,onClick:"onClick"in e?e.onClick:null,attribution:"attribution"in e?e.attribution:null})}))):a.createElement(a.Fragment,null)}},48015:(e,t,n)=>{n.d(t,{M:()=>o});var a=n(39202),r=n(20354),i=n(39151),l={countryCode:"us",isFallback:!0};function o(){var e,t,n=r.a.useBasicFetch(i.L.geoLocation()),o=null===(t=null===(e=a.Ab.GetQuery())||void 0===e?void 0:e.countryCode)||void 0===t?void 0:t.toLowerCase();return o?{countryCode:o}:n.hasCompleted&&!n.data?l:n.data}},19623:(e,t,n)=>{n.d(t,{P:()=>g});var a=n(32735),r=n(81886),i=n(23481),l=n(53364),o=n(98027),c=n(36848),s=n(83345),u=n(14070),m=n(97291),d="launchpad.signInButtons",p=i.T.encloseNamespace(d);function g(e){a.useEffect((function(){e.skipPrompt&&r.Q.Ab.PageLoad(r.Q.C$.getHref(t))}),[]);var t=function(){var t=r.Q.Ab.GetQuery(),n={};if(e.customerId&&(n.customerId=e.customerId,delete t.customerId),e.skipPrompt&&delete t.skipPrompt,e.redirectUrl)n.redirectUrl=e.redirectUrl;else{var a=r.Q.Ab.SerializeQueryParams(t);n.redirectUrl=r.Q.Ab.GetCurrentPath()+(a?"?"+a:"")}return e.showSignUp&&(n.showSignUp=!0),{application:m.O.DEFAULT,action:u.e.Default.CHALLENGE,params:n}}();return a.createElement(a.Fragment,null,a.createElement(c.F,{className:"btn btn-lg btn-dark w-100 mt-4",appLink:t},a.createElement(s.x,{namespace:d,phrase:e.pageAppLinkString?"signInToWatch":"signIn"})),e.showJoinCode?a.createElement(c.F,{className:"btn btn-link info-link btn-lg w-100 mt-2",appLink:{application:m.O.LAUNCHPAD,action:u.e.Launchpad.JOIN_CLASSROOM_PROMPT}},p("enterCode")):a.createElement(a.Fragment,null,a.createElement(c.F,{className:"btn btn-lg btn-outline-dark w-100 mt-3",appLink:{application:m.O.LAUNCHPAD,action:u.e.SignUp.SIGN_UP,params:{pageAppLinkString:e.pageAppLinkString}}},p("signUp")),a.createElement(l.b,{geoLocation:e.geoLocation,attribution:(0,o.w)()})))}},30823:(e,t,n)=>{n.r(t),n.d(t,{LoginLandingView:()=>E});var a=n(32735),r=n(23481),i=n(20354),l=n(65858),o=n(2786),c=n(11882),s=n(4594),u=n(43012),m=n(20768),d=n(1575),p=n(48015),g=n(31908),f=n(83421),v=n(7179),b=n(19623),h=n(408);const y={logo:"Je2Pi",formContainer:"MfLVl"};var k=r.T.encloseNamespace("classrooms.loginLanding");function E(e){var t,n,r,E,C,w,L=(0,p.M)(),U=(0,v.P)({id:e.objectId,app:(0,v.e)(e.objectType)},l.LZ.Launchpad),A=U.deepLink,I=U.showDeepLink,N=U.onClickDeepLink,S=(0,h.B)().trialAppLinkString,P=(C=e.objectId,w=e.objectType,i.a.useBasicFetch(function(){switch(w){case s.E.Video:return d.R.publicVideo(C);case s.E.Interactive:return m.b.publicInteractiveMetadata(C);case s.E.Clip:return u.e.publicClip(C);default:return null}}()));return e.skipPrompt||P.isFetching?a.createElement(a.Fragment,null):a.createElement(f.Z,{title:null===(t=P.data)||void 0===t?void 0:t.name,imageUrl:null===(n=g.M.getThumbnail(P.data))||void 0===n?void 0:n.url,objectType:e.objectType,links:[{text:k("openInApp"),url:A,hide:!I,onClick:N}]},a.createElement("div",{className:"".concat(y.formContainer," m-auto")},a.createElement("div",{className:"".concat(y.logo," mb-4 mx-auto")},a.createElement(o.$S,null)),!!(null===(r=P.data)||void 0===r?void 0:r.name)&&a.createElement("h1",{className:"h3"},g.M.isVideo(P.data)&&a.createElement(c.$,{type:"series",video:P.data,analyticsOptions:{},size:"sm"}),P.data.name),(null===(E=P.data)||void 0===E?void 0:E.description)&&a.createElement("p",{className:"mb-0 clamp-3"},P.data.description),a.createElement(b.P,{geoLocation:L,customerId:e.customerId,skipPrompt:e.skipPrompt,showJoinCode:e.showJoinCode,redirectUrl:null,pageAppLinkString:S,showSignUp:e.showSignUp})))}},408:(e,t,n)=>{n.d(t,{B:()=>l});var a=n(2948),r=n(86702);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(){var e,t,n=(e=(0,a.D)(r.y.OPEN_IN_APP_DATA),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return{trialAppLinkString:function(){if(n&&["videos","clips","series","playlists","topics","interactives"].includes(n.app)){var e=n.id;switch(n.app){case"videos":return"video:".concat(e);case"playlists":return"playlist:".concat(e);case"series":return"series:".concat(e);case"topics":return"topic:".concat(e);case"interactives":return"interactive:".concat(e);case"clips":return"clip:".concat(e)}}}()}}},83421:(e,t,n)=>{n.d(t,{H:()=>m,Z:()=>p});var a=n(32735),r=n(54610),i=n(4594),l=n(67453),o=n(99742);const c={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=[{bgUrl:o.W.LaunchPad.BG_1},{bgUrl:o.W.LaunchPad.BG_2},{bgUrl:o.W.LaunchPad.BG_3},{bgUrl:o.W.LaunchPad.BG_4},{bgUrl:o.W.LaunchPad.BG_5}];function d(e){switch(e){case i.E.Video:case i.E.Interactive:case i.E.Clip:return c.thumbnail;case i.E.Subject:case i.E.Playlist:return c.cover;case i.E.Series:return c.tallposter;default:return""}}function p(e){var t,n=s(a.useState(!1),2),i=n[0],o=n[1],u=s(a.useState(""),2),p=u[0],g=u[1],f=s(a.useState(""),2),v=f[0],b=f[1],h=l.j.createUrl(e.imageUrl,{size:r.h2.Large}),y=m;return a.useEffect((function(){if(!h&&y&&0!==y.length){var e,t=(e=y)[Math.floor(Math.random()*e.length)];t.bgUrl&&g(t.bgUrl),t.textUrl&&b(t.textUrl)}}),[]),a.useEffect((function(){if(h){var e=new Image;return e.onload=function(){return o(!0)},e.src=h,function(){return e.onload=null}}}),[]),a.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():a.createElement("div",{className:"".concat(c.left," bg-light"),style:{backgroundImage:"url('".concat(p,"')")}},v&&a.createElement("div",{className:c.leftTextImage,style:{backgroundImage:"url('".concat(v,"')")}}),i&&a.createElement(a.Fragment,null,a.createElement("div",{className:c.blur,style:{backgroundImage:"url('".concat(h,"')")}}),a.createElement("div",{className:"".concat(c.imageContainer," ").concat(d(e.objectType))},a.createElement("div",{className:c.imagePosition},a.createElement("img",{className:c.image,src:h,alt:e.title}))))),a.createElement("div",{className:"".concat(c.right," bg-white d-flex flex-column")},a.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(c.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?a.createElement(a.Fragment,{key:t}):a.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
|
|
2
|
+
//# sourceMappingURL=823-0a1356d38c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/823-0a1356d38c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/global-idps.scss","file:///app/packages/libs/shared/src/apps/sign-up/components/general/global-idps/GlobalIdps.tsx","file:///app/packages/libs/shared/src/hooks/useGeoLocation.ts","file:///app/packages/projects/lite/src/apps/launchpad/components/sign-in-buttons/SignInButtons.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/login-landing/login-landing.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/login-landing/LoginLandingView.tsx","file:///app/packages/projects/lite/src/apps/sign-up/hooks/useTrialAppLink.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"idpButton\":\"FDoJA\",\"idpImage\":\"bjN_j\",\"divider\":\"FfyN0\"};","import React from 'react';\n\nimport { LocalityHelper } from 'libs/shared/apps/sign-up/helpers/LocalityHelper';\nimport { IdentityProvider } from 'libs/shared/apps/sign-up/interfaces/IdentityProvider';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nimport styles from './global-idps.scss';\n\nconst US_ONLY_IDPS: IdentityProvider[] = [\n {\n name: 'ClassLink',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5',\n url: '/challenge?idp=classlink'\n },\n {\n name: 'Clever',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd',\n url: '/challenge?idp=clever'\n },\n {\n name: 'Google',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL',\n url: '/challenge?idp=google'\n },\n {\n name: 'Microsoft',\n logoUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP',\n url: '/challenge?idp=microsoft'\n }\n];\n\nconst GLOBAL_IDPS: IdentityProvider[] = [];\n\ninterface GlobalIdpButtonProps {\n idp: IdentityProvider;\n /**\n * Because rendering globalIdps is conditional. We have a \"Don't have an account\" link at the bottom\n * which uses margin top. So the last item in this view must not have a margin bottom. - Sha\n */\n last?: boolean;\n onClick?: (idp: IdentityProvider) => void;\n attribution: string;\n}\n\nfunction GlobalIdpButton(props: GlobalIdpButtonProps): React.ReactElement {\n const {\n idp,\n last\n } = props;\n\n function onClick(): void {\n if (props.onClick) {\n props.onClick(idp);\n return;\n }\n\n const currentPathAndQuery = window.location.pathname + window.location.search;\n\n /**\n * Intentionally not using LocationUtils as to not bring a large number of dependencies into Auth - Sha\n */\n window.location.href = idp.url\n + '&redirectUrl=' + encodeURIComponent(currentPathAndQuery)\n + '&attribution=' + encodeURIComponent(props.attribution);\n }\n\n return (\n <button\n className={`btn btn-lg btn-outline-dark w-100 ${last ? '' : 'mb-3'} ${styles.idpButton}`}\n onClick={onClick}\n >\n {idp.logoUrl && <img src={idp.logoUrl} className={styles.idpImage} />}\n Continue with {idp.name}\n </button>\n );\n}\n\ninterface AuthIdpProps {\n idps: IdentityProvider[];\n onClick: (idp: IdentityProvider) => void;\n className?: string;\n}\n\ninterface LiteIdpProps {\n geoLocation: GeoLocation;\n className?: string;\n attribution: string;\n}\n\ntype GlobalIdpsProps = AuthIdpProps | LiteIdpProps\n\nexport function GlobalIdps(props: GlobalIdpsProps): JSX.Element {\n let idps = 'idps' in props ? props.idps : null;\n\n if (!idps?.length && 'geoLocation' in props) {\n idps = [...GLOBAL_IDPS];\n\n if (LocalityHelper.isCountryCodeUS(props.geoLocation?.countryCode))\n idps.unshift(...US_ONLY_IDPS);\n }\n\n if (!idps.length)\n return <></>;\n\n return (\n <div className={`${props.className ? props.className : ''}`}>\n <div className={`my-3 border-bottom position-relative ${styles.divider}`}></div>\n {idps.map((p, i) => (\n <GlobalIdpButton\n key={i}\n idp={p}\n onClick={'onClick' in props ? props.onClick : null}\n attribution={'attribution' in props ? props.attribution : null}\n />\n ))}\n </div>\n );\n}","import { LocationUtils } from 'libs/common/backbone/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nconst FALLBACK_COUNTRY: GeoLocation = {\n countryCode: 'us',\n isFallback: true\n};\n\nexport function useGeoLocation(): GeoLocation {\n const geoLocation = Flight.useBasicFetch<GeoLocation>(ConfigRequests.geoLocation());\n\n const countryCode = LocationUtils.GetQuery()?.countryCode?.toLowerCase();\n \n if (countryCode)\n return { countryCode };\n\n if (geoLocation.hasCompleted && !geoLocation.data)\n return FALLBACK_COUNTRY;\n\n return geoLocation.data;\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { GlobalIdps } from 'libs/shared/apps/sign-up/components/general/global-idps/GlobalIdps';\nimport { getLiteAttributionForAuth } from 'libs/shared/apps/sign-up/utils/getLiteAttributionForAuth';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { GeoLocation } from 'libs/shared/interfaces/responses/GeoLocation';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'launchpad.signInButtons';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface SignInButtonsProps {\n geoLocation: GeoLocation;\n customerId: string;\n skipPrompt: boolean;\n showJoinCode: boolean;\n redirectUrl: string;\n pageAppLinkString: string;\n showSignUp: boolean;\n}\n\nexport function SignInButtons(props: SignInButtonsProps): JSX.Element {\n React.useEffect(() => {\n if (!props.skipPrompt)\n return;\n\n Core.LocationUtils.PageLoad(Core.AppLinkHelper.getHref(appLink));\n }, []);\n\n function getAppLink(): Core.AppLink {\n const currentQuery = Core.LocationUtils.GetQuery();\n const params: HashObject = {};\n\n /**\n * Add customerId to the login url and remove it from the redirect url\n */\n if (props.customerId) {\n params.customerId = props.customerId;\n delete currentQuery.customerId;\n }\n\n /**\n * Remove skip prompt from the return url\n */\n if (props.skipPrompt)\n delete currentQuery.skipPrompt;\n\n if (props.redirectUrl) {\n params.redirectUrl = props.redirectUrl;\n } else {\n const serializedQuery = Core.LocationUtils.SerializeQueryParams(currentQuery);\n params.redirectUrl = Core.LocationUtils.GetCurrentPath() + (serializedQuery ? ('?' + serializedQuery) : '');\n }\n\n if (props.showSignUp)\n params.showSignUp = true;\n\n return {\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params\n };\n }\n\n const appLink = getAppLink();\n\n return (\n <>\n <AppLink\n className='btn btn-lg btn-dark w-100 mt-4'\n appLink={appLink}\n >\n <Text namespace={namespace} phrase={props.pageAppLinkString ? 'signInToWatch' : 'signIn'} />\n </AppLink>\n {props.showJoinCode ?\n <AppLink\n className='btn btn-link info-link btn-lg w-100 mt-2'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.Launchpad.JOIN_CLASSROOM_PROMPT\n }}\n >\n {getPhrase('enterCode')}\n </AppLink> :\n <>\n <AppLink\n className='btn btn-lg btn-outline-dark w-100 mt-3'\n appLink={{\n application: AppChannels.LAUNCHPAD,\n action: Actions.SignUp.SIGN_UP,\n params: { pageAppLinkString: props.pageAppLinkString }\n }}\n >\n {getPhrase('signUp')}\n </AppLink>\n <GlobalIdps geoLocation={props.geoLocation} attribution={getLiteAttributionForAuth()} />\n </>\n }\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"Je2Pi\",\"formContainer\":\"MfLVl\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGeoLocation } from 'libs/shared/hooks/useGeoLocation';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { DeepLinkViewModel, mapMasterTypeToDeepLinkApp, useDeepLinks } from 'shared/hooks/useDeepLinks';\n\nimport { SignInButtons } from 'apps/launchpad/components/sign-in-buttons/SignInButtons';\nimport { useTrialAppLink } from 'apps/sign-up/hooks/useTrialAppLink';\n\nimport styles from './login-landing.scss';\n\nconst namespace = 'classrooms.loginLanding';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction useFetchObject(objectId: string, objectType: MasterType): Flight.Response<VideoTypes> {\n function getRequest(): Flight.Request {\n switch (objectType) {\n case MasterType.Video:\n return VideoRequests.publicVideo(objectId);\n case MasterType.Interactive:\n return InteractiveRequests.publicInteractiveMetadata(objectId);\n case MasterType.Clip:\n return ClipRequests.publicClip(objectId);\n default:\n return null;\n }\n }\n\n return Flight.useBasicFetch(getRequest());\n}\n\ninterface LoginLandingProps {\n skipPrompt: boolean;\n showJoinCode: boolean;\n customerId: string;\n showSignUp: boolean;\n\n objectType?: MasterType;\n objectId?: string;\n}\n\nexport function LoginLandingView(props: LoginLandingProps): React.ReactElement {\n function getInitialDeepLink(): DeepLinkViewModel {\n return {\n id: props.objectId,\n app: mapMasterTypeToDeepLinkApp(props.objectType)\n };\n }\n\n const geoLocation = useGeoLocation();\n\n const {\n deepLink,\n showDeepLink,\n onClickDeepLink\n } = useDeepLinks(getInitialDeepLink(), LocationContext.Launchpad);\n\n const { trialAppLinkString } = useTrialAppLink();\n\n const obj = useFetchObject(props.objectId, props.objectType);\n\n if (props.skipPrompt || obj.isFetching)\n return <></>;\n\n return (\n <Launchpad\n title={obj.data?.name}\n imageUrl={VideoHelper.getThumbnail(obj.data)?.url}\n objectType={props.objectType}\n links={[{\n text: getPhrase('openInApp'),\n url: deepLink,\n hide: !showDeepLink,\n onClick: onClickDeepLink\n }]}\n >\n <div className={`${styles.formContainer} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!!obj.data?.name &&\n <h1 className='h3'>\n {VideoHelper.isVideo(obj.data) &&\n <VideoSubText type='series' video={obj.data} analyticsOptions={{}} size='sm' />}\n {obj.data.name}\n </h1>\n }\n {obj.data?.description &&\n <p className='mb-0 clamp-3'>{obj.data.description}</p>\n }\n\n <SignInButtons\n geoLocation={geoLocation}\n customerId={props.customerId}\n skipPrompt={props.skipPrompt}\n showJoinCode={props.showJoinCode}\n redirectUrl={null}\n pageAppLinkString={trialAppLinkString}\n showSignUp={props.showSignUp}\n />\n </div>\n </Launchpad>\n );\n}","import { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { DeepLinkViewModel } from 'shared/hooks/useDeepLinks';\n\nexport function useTrialAppLink() {\n const [viewModel] = useViewModel<DeepLinkViewModel>(ViewModelKeys.OPEN_IN_APP_DATA);\n\n function getTrialAppLinkString() {\n if (!viewModel) {\n return;\n }\n const validApps = [ 'videos', 'clips', 'series', 'playlists', 'topics', 'interactives' ];\n if (!validApps.includes(viewModel.app)) {\n return;\n }\n\n const id = viewModel.id;\n switch (viewModel.app) {\n case 'videos':\n return `video:${id}`;\n case 'playlists':\n return `playlist:${id}`;\n case 'series':\n return `series:${id}`;\n case 'topics':\n return `topic:${id}`;\n case 'interactives':\n return `interactive:${id}`;\n case 'clips':\n return `clip:${id}`;\n }\n }\n\n return {\n trialAppLinkString: getTrialAppLinkString()\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n {\n bgUrl: ImageUrls.LaunchPad.BG_1\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_2\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_3\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_4\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_5\n }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n {\n bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png'\n }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n textUrl?: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n const [ textImage, setTextImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n\n if (image.textUrl) {\n setTextImage(image.textUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div className={`${styles.left} bg-light`} style={{ backgroundImage: `url('${image}')` }}>\n { textImage && (\n <div className={styles.leftTextImage} style={{ backgroundImage: `url('${textImage}')` }} />\n )}\n \n {showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["US_ONLY_IDPS","name","logoUrl","url","GLOBAL_IDPS","GlobalIdpButton","props","idp","last","className","onClick","currentPathAndQuery","window","location","pathname","search","href","encodeURIComponent","attribution","src","GlobalIdps","idps","length","LocalityHelper","geoLocation","countryCode","unshift","map","p","i","key","FALLBACK_COUNTRY","isFallback","useGeoLocation","toLowerCase","hasCompleted","data","namespace","getPhrase","SignInButtons","skipPrompt","appLink","currentQuery","params","customerId","redirectUrl","serializedQuery","showSignUp","application","action","getAppLink","phrase","pageAppLinkString","showJoinCode","LanguageService","LoginLandingView","objectId","objectType","useDeepLinks","id","app","deepLink","showDeepLink","onClickDeepLink","trialAppLinkString","useTrialAppLink","obj","MasterType","VideoRequests","InteractiveRequests","ClipRequests","getRequest","isFetching","Launchpad","title","imageUrl","VideoHelper","links","text","hide","ClickViewLogo","VideoSubText","type","video","analyticsOptions","size","description","viewModel","includes","getTrialAppLinkString","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","ImageUrls","mapObjectTypeToImageClass","showImage","setShowImage","image","setImage","textImage","setTextImage","ImageHelper","IMAGE_URLS","urlLists","Math","floor","random","textUrl","img","Image","onload","leftComponent","style","backgroundImage","alt","link","children"],"sourceRoot":""}
|