@clickview/lite 0.84.1-rc.0 → 0.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/4945-lite-72ae59fcab.chunk.css +2 -0
- package/dist/css/8852-lite-84d6357a79.chunk.css +1 -0
- package/dist/css/{lite-app-b4540a3be1.css → lite-app-084c45f90e.css} +2 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js → 1202-5473d9962d-lite.chunk.js} +2 -2
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js.map → 1202-5473d9962d-lite.chunk.js.map} +1 -1
- package/dist/scripts/171-4b1fe5952a-lite.chunk.js +2 -0
- package/dist/scripts/171-4b1fe5952a-lite.chunk.js.map +1 -0
- package/dist/scripts/1726-b8b386dbd5-lite.chunk.js +2 -0
- package/dist/scripts/1726-b8b386dbd5-lite.chunk.js.map +1 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js +2 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js.map +1 -0
- package/dist/scripts/{289-669c0c8222-lite.chunk.js → 289-190caa6455-lite.chunk.js} +2 -2
- package/dist/scripts/{289-669c0c8222-lite.chunk.js.map → 289-190caa6455-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3249-0b55dec380-lite.chunk.js → 3249-08a22f8aaf-lite.chunk.js} +2 -2
- package/dist/scripts/3249-08a22f8aaf-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js +2 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js.map +1 -0
- package/dist/scripts/4006-2b689bdde0-lite.chunk.js +3 -0
- package/dist/scripts/4006-2b689bdde0-lite.chunk.js.map +1 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js +2 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js.map +1 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js +2 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js.map +1 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js +2 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js.map +1 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js +2 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js.map +1 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js +2 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js.map +1 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js +2 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js.map +1 -0
- package/dist/scripts/5579-7d9081e134-lite.chunk.js +2 -0
- package/dist/scripts/{5579-a9c152057f-lite.chunk.js.map → 5579-7d9081e134-lite.chunk.js.map} +1 -1
- package/dist/scripts/5712-fd1a7d8d6a-lite.chunk.js +2 -0
- package/dist/scripts/5712-fd1a7d8d6a-lite.chunk.js.map +1 -0
- package/dist/scripts/639-df1607cbc8-lite.chunk.js +2 -0
- package/dist/scripts/639-df1607cbc8-lite.chunk.js.map +1 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js +2 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js.map +1 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js +3 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js.map +1 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js +3 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js.map +1 -0
- package/dist/scripts/{7617-9d34c841e6-lite.chunk.js → 7617-899a1d0cb1-lite.chunk.js} +2 -2
- package/dist/scripts/7617-899a1d0cb1-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js +2 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js.map +1 -0
- package/dist/scripts/{7843-f6033528ce-lite.chunk.js → 7843-fc9ddb3b52-lite.chunk.js} +2 -2
- package/dist/scripts/7843-fc9ddb3b52-lite.chunk.js.map +1 -0
- package/dist/scripts/{7867-14c692e69c-lite.chunk.js → 7867-589c7bd788-lite.chunk.js} +3 -3
- package/dist/scripts/7867-589c7bd788-lite.chunk.js.map +1 -0
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js → 787-5c7976e8cb-lite.chunk.js} +2 -2
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js.map → 787-5c7976e8cb-lite.chunk.js.map} +1 -1
- package/dist/scripts/8056-555482555f-lite.chunk.js +2 -0
- package/dist/scripts/8056-555482555f-lite.chunk.js.map +1 -0
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js → 8672-5637204ae3-lite.chunk.js} +2 -2
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js.map → 8672-5637204ae3-lite.chunk.js.map} +1 -1
- package/dist/scripts/8852-f4e4da0097-lite.chunk.js +2 -0
- package/dist/scripts/8852-f4e4da0097-lite.chunk.js.map +1 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js +2 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js.map +1 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js +2 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js.map +1 -0
- package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js → 9803-9a666cfdef-lite.chunk.js} +3 -3
- package/dist/scripts/9803-9a666cfdef-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-47bd8cc149.min.js +3 -0
- package/dist/scripts/{bundle-2bbba2aa8b.min.js.map → bundle-47bd8cc149.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/171-36c7520c9c-lite.chunk.js +0 -2
- package/dist/scripts/171-36c7520c9c-lite.chunk.js.map +0 -1
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js +0 -2
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js.map +0 -1
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js +0 -2
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js.map +0 -1
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js +0 -2
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js.map +0 -1
- package/dist/scripts/3249-0b55dec380-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js +0 -2
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js.map +0 -1
- package/dist/scripts/3893-2856933742-lite.chunk.js +0 -2
- package/dist/scripts/3893-2856933742-lite.chunk.js.map +0 -1
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js +0 -3
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js.map +0 -1
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js +0 -2
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js.map +0 -1
- package/dist/scripts/5002-7514146621-lite.chunk.js +0 -2
- package/dist/scripts/5002-7514146621-lite.chunk.js.map +0 -1
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js +0 -2
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js.map +0 -1
- package/dist/scripts/5579-a9c152057f-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js +0 -2
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js.map +0 -1
- package/dist/scripts/7401-833bc4a088-lite.chunk.js +0 -2
- package/dist/scripts/7401-833bc4a088-lite.chunk.js.map +0 -1
- package/dist/scripts/7604-f664281904-lite.chunk.js +0 -3
- package/dist/scripts/7604-f664281904-lite.chunk.js.map +0 -1
- package/dist/scripts/7617-9d34c841e6-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js +0 -2
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js.map +0 -1
- package/dist/scripts/7843-f6033528ce-lite.chunk.js.map +0 -1
- package/dist/scripts/7867-14c692e69c-lite.chunk.js.map +0 -1
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js +0 -2
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js.map +0 -1
- package/dist/scripts/8133-ffcff3b7fc-lite.chunk.js.map +0 -1
- package/dist/scripts/8364-ff63447d36-lite.chunk.js +0 -3
- package/dist/scripts/8364-ff63447d36-lite.chunk.js.map +0 -1
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js +0 -2
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js.map +0 -1
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js +0 -2
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-2bbba2aa8b.min.js +0 -3
- /package/dist/css/{2074-lite-ac8da6c78b.chunk.css → 4525-lite-ac8da6c78b.chunk.css} +0 -0
- /package/dist/css/{8364-lite-db31e36b79.chunk.css → 7459-lite-db31e36b79.chunk.css} +0 -0
- /package/dist/scripts/{4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt → 4006-2b689bdde0-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7604-f664281904-lite.chunk.js.LICENSE.txt → 7459-c1882c6f0d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7867-14c692e69c-lite.chunk.js.LICENSE.txt → 7604-5d2ba346e2-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js.LICENSE.txt → 7867-589c7bd788-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8364-ff63447d36-lite.chunk.js.LICENSE.txt → 9803-9a666cfdef-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-2bbba2aa8b.min.js.LICENSE.txt → bundle-47bd8cc149.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5712-fd1a7d8d6a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/playlists/utils/RecentPlaylistHelper.ts","file:///app/packages/libs/shared/src/components/premium-badge/PremiumBadge.tsx","file:///app/packages/projects/lite/src/apps/playlists/views/add-to-playlist/AddToPlaylistView.tsx","file:///app/packages/projects/lite/src/shared/components/hard-gate-popup/HardGatePopup.tsx"],"sourcesContent":["import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { RecentItemHelper } from 'libs/shared/utils/RecentItemHelper';\n\nconst getCacheKey = (userId: string) => `recent:playlists:added:to:${userId}`;\n\ninterface AddRecentPlaylistsOptions {\n id: string;\n limit?: number;\n}\n\nexport const RecentPlaylistHelper = {\n /**\n * Get a list of ids of playlists recently added to.\n */\n getRecentlyAddedTo(userId: string): string[] {\n return RecentItemHelper.getRecentItem(getCacheKey(userId), LocalStorageHelper);\n },\n\n addRecentlyAddedTo(userId: string, options: AddRecentPlaylistsOptions): string[] {\n return RecentItemHelper.addRecentItem(getCacheKey(userId), LocalStorageHelper, options);\n },\n\n removeRecentlyAddedTo(userId: string, id: string): void {\n RecentItemHelper.removeRecentItem(getCacheKey(userId), id, LocalStorageHelper);\n }\n};","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.premiumBadge';\n\ninterface PremiumBadgeProps {\n invert?: boolean;\n size: 'sm' | 'std';\n className?: string;\n}\n\nexport function PremiumBadge(props: PremiumBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex align-items-center justify-content-center',\n 'fw-medium text-indigo',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-indigo',\n props.className\n )}>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Medium} />\n <Text phrase='premium' namespace={namespace} />\n </span>\n );\n}","import * as React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { AlertType } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { PlaylistSortType } from 'libs/shared/apps/playlists/enums/PlaylistSortType';\nimport { PlaylistCollectionIdentifier } from 'libs/shared/apps/playlists/interfaces/identifiers/PlaylistCollectionIdentifier';\nimport { RecentPlaylistHelper } from 'libs/shared/apps/playlists/utils/RecentPlaylistHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PremiumBadge } from 'libs/shared/components/premium-badge/PremiumBadge';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { CurrentUser, Playlist, PopupViewProps, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { ObjectApiXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nimport { HardGatePopup } from 'shared/components/hard-gate-popup/HardGatePopup';\nimport { DefaultAlertHeading } from 'shared/constants/DefaultAlertHeading';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SelectPlaylist } from 'apps/playlists/components/select-playlist/SelectPlaylist';\nimport { PlaylistsEmptyState } from 'apps/playlists/views/playlists/empty-state/PlaylistsEmptyState';\n\nconst namespace = 'playlists.addToPlaylist';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getPlaylistsRequest = (cursor?: string) =>\n PlaylistRequests.getUserPlaylists(new PlaylistCollectionIdentifier(PlaylistSortType.AtoZ, cursor));\n\nconst getVideoPlaylistsRequest = (videoId: string, userId: string) => (cursor?: string) =>\n PlaylistRequests.getVideoPlaylists(videoId, userId, cursor);\n\ninterface AddToPlaylistViewProps {\n videoId?: string;\n}\n\nexport function AddToPlaylistView(props: AddToPlaylistViewProps & PopupViewProps): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<VideoTypes>(PlaylistRequests.getVideoCandidate(props.videoId));\n const playlists = useSelectAllPages<Playlist>((cursor?: string) => getPlaylistsRequest(cursor).key);\n const videoPlaylists = useSelectAllPages<Playlist>((cursor?: string) =>\n !!props.videoId && !!currentUser.data && getVideoPlaylistsRequest(props.videoId, currentUser.data.id)(cursor).key);\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n \n const { hasPermissions, getGatedPermission, isLoaded } = usePermissions();\n\n const isStudent = hasPermissions(PermissionName.StudentExperience);\n\n const videoPlaylistIds = !!videoPlaylists.items && videoPlaylists.items.map(p => p.id);\n\n const fetchNextPlaylists = (cursor?: string) => {\n Flight.getFetch(dispatch)(getPlaylistsRequest(cursor));\n };\n\n const fetchNextVideoPlaylists = (cursor?: string) => {\n Flight.getFetch(dispatch)(getVideoPlaylistsRequest(props.videoId, currentUser.data.id)(cursor));\n };\n\n useFetchAll(getPlaylistsRequest, fetchNextPlaylists);\n useFetchAll(\n !!currentUser.data && getVideoPlaylistsRequest(props.videoId, currentUser.data.id),\n !!currentUser.data && fetchNextVideoPlaylists\n );\n\n const addToPlaylist = (playlist: Playlist, isNew?: boolean) => {\n const onSuccess = () => {\n alerts.success({\n heading: DefaultAlertHeading.Success,\n type: AlertType.Success,\n message: getPhrase(isNew ? 'successNew' : 'success', { video: video.data.name, playlist: playlist.name, escapeText: true }),\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n },\n appLinkText: getPhrase('goToPlaylist', { playlist: playlist.name, escapeText: true }),\n appLinkClassName: 'info-link'\n });\n\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name,\n playlistId: playlist.id,\n playlistName: playlist.name\n }, {\n actionType: UserAction.Associate,\n entity: EntityType.Video,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n RecentPlaylistHelper.addRecentlyAddedTo(currentUser.data.id, { id: playlist.id });\n\n if (isNew)\n props.closePopup();\n };\n\n const onError = (xhr: ObjectApiXhr) => {\n if (xhr.responseJSON.type === 'playlist-limit-exceeded')\n alerts.error(getPhrase('playlistLimitExceeded'));\n else\n alerts.error(getPhrase('addError', { video: video.data.name, playlist: playlist.name, escapeText: true }));\n };\n\n Flight.fetch(dispatch, PlaylistRequests.addToPlaylist(playlist.id, [video.data], onSuccess, onError));\n };\n\n const removeFromPlaylist = (playlist: Playlist) => {\n const onSuccess = () => {\n alerts.success({\n heading: DefaultAlertHeading.Success,\n type: AlertType.Success,\n message: getPhrase('successRemove', { video: video.data.name, playlist: playlist.name, escapeText: true }),\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n },\n appLinkText: getPhrase('goToPlaylist', { playlist: playlist.name, escapeText: true }),\n appLinkClassName: 'info-link'\n });\n\n AnalyticsHelper.logUserAction({ id: video.data.id, playlistId: playlist.id }, {\n actionType: UserAction.Dissociate,\n entity: EntityType.Video,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n };\n\n const onError = () => {\n alerts.error(getPhrase('removeError', { video: video.data.name, playlist: playlist.name, escapeText: true }));\n props.closePopup();\n };\n\n Flight.fetch(dispatch, PlaylistRequests.removePlaylistVideo(\n playlist.id,\n video.data.id,\n video.data.typeId,\n onSuccess,\n onError\n ));\n };\n\n const createPlaylist = (name: string) => {\n Flight.fetch(dispatch, PlaylistRequests.createPlaylist(currentUser.data.id, { name }, (newPlaylist: Playlist) => {\n if (!newPlaylist || !newPlaylist.id)\n return;\n\n AnalyticsHelper.logUserAction({ id: newPlaylist.id }, {\n actionType: UserAction.Create,\n entity: EntityType.Playlist,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n addToPlaylist(newPlaylist, true);\n }, () => {\n alerts.error(getPhrase('createError', { video: video.data.name, playlist: name, escapeText: true }));\n props.closePopup();\n }));\n };\n\n const onSelectPlaylist = (playlist: Playlist) => {\n if (videoPlaylistIds.includes(playlist.id)) {\n removeFromPlaylist(playlist);\n return;\n }\n\n addToPlaylist(playlist);\n };\n\n const dataLoaded = !!video.data\n && !!playlists.items\n && !playlists.nextCursor\n && !!currentUser.data\n && !!videoPlaylists.items\n && !videoPlaylists.nextCursor\n && yearGroups.hasCompleted\n && isLoaded;\n\n if (getGatedPermission(PermissionName.CreatePlaylist) === 'hard-gate') {\n return (\n <HardGatePopup\n feature='playlists'\n animate={false}\n closePopup={props.closePopup}\n />\n );\n }\n\n return (\n <Popup\n title={getPhrase('heading')}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded || screen === null}\n hideTitle={getGatedPermission(PermissionName.CreatePlaylist) === 'soft-gate'}\n >\n {getGatedPermission(PermissionName.CreatePlaylist) === 'soft-gate' &&\n <Modal.Header className='d-flex align-items-center justify-content-between bg-white mx-n3 mt-n3 mb-3' closeButton>\n <Modal.Title as='h2' className='h4 flex-grow-1 d-flex justify-content-between align-items-center'>\n {getPhrase('heading')}\n <span className='d-inline-block me-2'><PremiumBadge size='std' /></span>\n </Modal.Title>\n </Modal.Header>\n }\n {(() => {\n if (!dataLoaded)\n return <></>;\n\n return (\n <>\n {playlists.items.length\n ? (\n <div className='mb-2'>\n <Text namespace={namespace} phrase='selectPlaylist' options={{ video: video.data.name }} />\n </div>\n )\n : (\n <PlaylistsEmptyState\n isStudent={isStudent}\n headingClassName='h4'\n imageSize='small'\n className='py-2'\n hideButton\n />\n )\n }\n <SelectPlaylist\n playlists={playlists.items}\n currentUserId={currentUser.data.id}\n onSelectPlaylist={onSelectPlaylist}\n isVideoInPlaylist={(playlist: Playlist) => (videoPlaylistIds.includes(playlist.id))}\n createPlaylist={createPlaylist}\n />\n </>\n );\n })()}\n </Popup>\n );\n}","import React from 'react';\nimport { Modal, Row } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PremiumBadge } from 'libs/shared/components/premium-badge/PremiumBadge';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.hardGatePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Feature = 'assign' | 'playlists' | 'interactive' | 'copy-interactives' | 'integrations';\n\ninterface FeatureConfig {\n titlePhrase: string;\n headingPhrase: string;\n imageUrl: string;\n}\n\nconst featureConfigMap: Record<Feature, FeatureConfig> = {\n 'assign': {\n titlePhrase: 'assignTitle',\n headingPhrase: 'assignHeading',\n imageUrl: ImageUrls.ReverseTrial.ASSIGN\n },\n 'playlists': {\n titlePhrase: 'playlistsTitle',\n headingPhrase: 'playlistsHeading',\n imageUrl: ImageUrls.ReverseTrial.PLAYLIST\n },\n 'interactive': {\n titlePhrase: 'interactiveTitle',\n headingPhrase: 'interactiveHeading',\n imageUrl: ImageUrls.ReverseTrial.INTERACTIVE\n },\n 'copy-interactives': {\n titlePhrase: 'copyInteractiveTitle',\n headingPhrase: 'copyInteractiveHeading',\n imageUrl: ImageUrls.ReverseTrial.INTERACTIVE\n },\n 'integrations': {\n titlePhrase: 'integrationsTitle',\n headingPhrase: 'integrationsHeading',\n imageUrl: ImageUrls.ReverseTrial.INTEGRATIONS\n }\n};\n\nexport interface HardGatePopupProps extends MultiStepPopupViewProps {\n feature: Feature;\n extraContent?: React.ReactNode;\n}\n\nexport function HardGatePopup(props: HardGatePopupProps): JSX.Element {\n const config = featureConfigMap[props.feature];\n\n return (\n <Popup\n size='lg'\n animation={props.animate}\n closePopup={props.closePopup}\n hideTitle\n >\n <Modal.Header className='d-flex align-items-center justify-content-between bg-white mx-n3 mt-n3' closeButton>\n <Modal.Title as='h2' className='h4 flex-grow-1 d-flex justify-content-between align-items-center'>\n {getPhrase(config.titlePhrase)}\n <span className='d-inline-block me-2'><PremiumBadge size='std' /></span>\n </Modal.Title>\n </Modal.Header>\n <Row className='mb-3'>\n <EmptyState className='pt-3'>\n <EmptyState.Image src={config.imageUrl} altText={getPhrase(config.titlePhrase)} />\n <EmptyState.Heading className='h6'>\n <Text namespace={namespace} phrase={config.headingPhrase} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='description' />\n </EmptyState.Info>\n <EmptyState.Cta\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n text={getPhrase('cta')}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.GatedPopup,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.PremiumFeatures\n }}\n />\n </EmptyState>\n </Row>\n \n {props.extraContent}\n </Popup>\n );\n}\n\n"],"names":["getCacheKey","userId","RecentPlaylistHelper","getRecentlyAddedTo","addRecentlyAddedTo","options","removeRecentlyAddedTo","id","namespace","PremiumBadge","props","className","size","invert","svgName","S","phrase","getPhrase","getPlaylistsRequest","cursor","getVideoPlaylistsRequest","videoId","AddToPlaylistView","dispatch","alerts","currentUser","video","playlists","key","videoPlaylists","data","yearGroups","isAuthenticated","customerId","hasPermissions","getGatedPermission","isLoaded","isStudent","videoPlaylistIds","items","map","p","addToPlaylist","playlist","isNew","success","heading","type","message","name","escapeText","appLink","application","action","args","appLinkText","appLinkClassName","playlistId","playlistName","actionType","entity","descriptor","workflowPhase","location","closePopup","xhr","responseJSON","error","dataLoaded","nextCursor","hasCompleted","feature","animate","title","showLoadingSpinner","screen","hideTitle","closeButton","as","length","headingClassName","imageSize","hideButton","currentUserId","onSelectPlaylist","includes","typeId","removeFromPlaylist","isVideoInPlaylist","createPlaylist","newPlaylist","featureConfigMap","titlePhrase","headingPhrase","imageUrl","HardGatePopup","config","animation","src","altText","text","analyticsData","analyticsOptions","extraContent"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[639],{53172:(e,t,a)=>{a.d(t,{l:()=>m});var i=a(32735),n=a(31453),r=a(83914),s=a(83345),l=a(35223),c="shared.premiumBadge";function m(e){return i.createElement("span",{className:(0,n.A)("badge badge-wrapper rounded-pill d-flex align-items-center justify-content-center","fw-medium text-indigo","sm"===e.size?"badge-sm":"badge-std",e.invert?"bg-white":"bg-light-indigo",e.className)},i.createElement(r.x,{svgName:l.vn.StarOutline,size:r.S.Medium}),i.createElement(s.x,{phrase:"premium",namespace:c}))}},64695:(e,t,a)=>{a.d(t,{q:()=>T});var i=a(32735),n=a(37241),r=a(68050),s=a(23481),l=a(65858),c=a(97958),m=a(9111),p=a(53172),g=a(83345),o=a(99742),d=a(14070),u=a(97291),h="shared.hardGatePopup",E=s.T.encloseNamespace(h),P={assign:{titlePhrase:"assignTitle",headingPhrase:"assignHeading",imageUrl:o.W.ReverseTrial.ASSIGN},playlists:{titlePhrase:"playlistsTitle",headingPhrase:"playlistsHeading",imageUrl:o.W.ReverseTrial.PLAYLIST},interactive:{titlePhrase:"interactiveTitle",headingPhrase:"interactiveHeading",imageUrl:o.W.ReverseTrial.INTERACTIVE},"copy-interactives":{titlePhrase:"copyInteractiveTitle",headingPhrase:"copyInteractiveHeading",imageUrl:o.W.ReverseTrial.INTERACTIVE},integrations:{titlePhrase:"integrationsTitle",headingPhrase:"integrationsHeading",imageUrl:o.W.ReverseTrial.INTEGRATIONS}};function T(e){var t=P[e.feature];return i.createElement(m.G,{size:"lg",animation:e.animate,closePopup:e.closePopup,hideTitle:!0},i.createElement(n.Z.Header,{className:"d-flex align-items-center justify-content-between bg-white mx-n3 mt-n3",closeButton:!0},i.createElement(n.Z.Title,{as:"h2",className:"h4 flex-grow-1 d-flex justify-content-between align-items-center"},E(t.titlePhrase),i.createElement("span",{className:"d-inline-block me-2"},i.createElement(p.l,{size:"std"})))),i.createElement(r.Z,{className:"mb-3"},i.createElement(c.u,{className:"pt-3"},i.createElement(c.u.Image,{src:t.imageUrl,altText:E(t.titlePhrase)}),i.createElement(c.u.Heading,{className:"h6"},i.createElement(g.x,{namespace:h,phrase:t.headingPhrase})),i.createElement(c.u.Info,null,i.createElement(g.x,{namespace:h,phrase:"description"})),i.createElement(c.u.Cta,{appLink:{application:u.O.SIGN_UP,action:d.e.SignUp.PREMIUM_FEATURES},text:E("cta"),analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.GatedPopup,entity:l.py.AppLink,descriptor:l.Yu.PremiumFeatures}}))),e.extraContent)}},639:(e,t,a)=>{a.r(t),a.d(t,{HardGateIntegrationsPopupView:()=>r});var i=a(32735),n=a(64695);function r(e){return i.createElement(n.q,{feature:"integrations",closePopup:e.closePopup})}}}]);
|
|
2
|
+
//# sourceMappingURL=639-df1607cbc8-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/639-df1607cbc8-lite.chunk.js","mappings":"8LAQMA,EAAY,sBAQZ,SAAUC,EAAaC,GAC3B,OACE,wBAAMC,WAAW,OACf,oFACA,wBACe,OAAfD,EAAME,KAAgB,WAAa,YACnCF,EAAMG,OAAS,WAAa,kBAC5BH,EAAMC,YAEN,gBAAC,IAAY,CAACG,QAAS,iBAA0BF,KAAM,EAAAG,EAAA,SACvD,gBAAC,IAAI,CAACC,OAAO,UAAUR,UAAWA,IAGxC,C,0KCZMA,EAAY,uBACZS,EAAY,qBAAiCT,GAU7CU,EAAmD,CACvD,OAAU,CACRC,YAAa,cACbC,cAAe,gBACfC,SAAU,yBAEZ,UAAa,CACXF,YAAa,iBACbC,cAAe,mBACfC,SAAU,2BAEZ,YAAe,CACbF,YAAa,mBACbC,cAAe,qBACfC,SAAU,8BAEZ,oBAAqB,CACnBF,YAAa,uBACbC,cAAe,yBACfC,SAAU,8BAEZ,aAAgB,CACdF,YAAa,oBACbC,cAAe,sBACfC,SAAU,gCASR,SAAUC,EAAcZ,GAC5B,IAAMa,EAASL,EAAiBR,EAAMc,SAEtC,OACE,gBAAC,IAAK,CACJZ,KAAK,KACLa,UAAWf,EAAMgB,QACjBC,WAAYjB,EAAMiB,WAClBC,WAAS,GAET,gBAAC,WAAY,CAACjB,UAAU,yEAAyEkB,aAAW,GAC1G,gBAAC,UAAW,CAACC,GAAG,KAAKnB,UAAU,oEAC5BM,EAAUM,EAAOJ,aAClB,wBAAMR,UAAU,uBAAsB,gBAAC,IAAY,CAACC,KAAK,WAG7D,gBAAC,IAAG,CAACD,UAAU,QACb,gBAAC,IAAU,CAACA,UAAU,QACpB,gBAAC,UAAgB,CAACoB,IAAKR,EAAOF,SAAUW,QAASf,EAAUM,EAAOJ,eAClE,gBAAC,YAAkB,CAACR,UAAU,MAC5B,gBAAC,IAAI,CAACH,UAAWA,EAAWQ,OAAQO,EAAOH,iBAE7C,gBAAC,SAAe,KACd,gBAAC,IAAI,CAACZ,UAAWA,EAAWQ,OAAO,iBAErC,gBAAC,QAAc,CACbiB,QAAS,CACPC,YAAa,YACbC,OAAQ,6BAEVC,KAAMnB,EAAU,OAChBoB,cAAe,CAAC,EAChBC,iBAAkB,CAChBC,WAAY,WACZC,SAAU,gBACVC,OAAQ,aACRC,WAAY,0BAMnBhC,EAAMiC,aAGb,C,8FChGM,SAAUC,EAA8BlC,GAC5C,OACE,gBAAC,IAAa,CACZc,QAAQ,eACRG,WAAYjB,EAAMiB,YAGxB,C","sources":["file:///app/packages/libs/shared/src/components/premium-badge/PremiumBadge.tsx","file:///app/packages/projects/lite/src/shared/components/hard-gate-popup/HardGatePopup.tsx","file:///app/packages/projects/lite/src/shared/views/hard-gate-integrations/HardGateIntegrationsPopupView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.premiumBadge';\n\ninterface PremiumBadgeProps {\n invert?: boolean;\n size: 'sm' | 'std';\n className?: string;\n}\n\nexport function PremiumBadge(props: PremiumBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex align-items-center justify-content-center',\n 'fw-medium text-indigo',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-indigo',\n props.className\n )}>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Medium} />\n <Text phrase='premium' namespace={namespace} />\n </span>\n );\n}","import React from 'react';\nimport { Modal, Row } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PremiumBadge } from 'libs/shared/components/premium-badge/PremiumBadge';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.hardGatePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Feature = 'assign' | 'playlists' | 'interactive' | 'copy-interactives' | 'integrations';\n\ninterface FeatureConfig {\n titlePhrase: string;\n headingPhrase: string;\n imageUrl: string;\n}\n\nconst featureConfigMap: Record<Feature, FeatureConfig> = {\n 'assign': {\n titlePhrase: 'assignTitle',\n headingPhrase: 'assignHeading',\n imageUrl: ImageUrls.ReverseTrial.ASSIGN\n },\n 'playlists': {\n titlePhrase: 'playlistsTitle',\n headingPhrase: 'playlistsHeading',\n imageUrl: ImageUrls.ReverseTrial.PLAYLIST\n },\n 'interactive': {\n titlePhrase: 'interactiveTitle',\n headingPhrase: 'interactiveHeading',\n imageUrl: ImageUrls.ReverseTrial.INTERACTIVE\n },\n 'copy-interactives': {\n titlePhrase: 'copyInteractiveTitle',\n headingPhrase: 'copyInteractiveHeading',\n imageUrl: ImageUrls.ReverseTrial.INTERACTIVE\n },\n 'integrations': {\n titlePhrase: 'integrationsTitle',\n headingPhrase: 'integrationsHeading',\n imageUrl: ImageUrls.ReverseTrial.INTEGRATIONS\n }\n};\n\nexport interface HardGatePopupProps extends MultiStepPopupViewProps {\n feature: Feature;\n extraContent?: React.ReactNode;\n}\n\nexport function HardGatePopup(props: HardGatePopupProps): JSX.Element {\n const config = featureConfigMap[props.feature];\n\n return (\n <Popup\n size='lg'\n animation={props.animate}\n closePopup={props.closePopup}\n hideTitle\n >\n <Modal.Header className='d-flex align-items-center justify-content-between bg-white mx-n3 mt-n3' closeButton>\n <Modal.Title as='h2' className='h4 flex-grow-1 d-flex justify-content-between align-items-center'>\n {getPhrase(config.titlePhrase)}\n <span className='d-inline-block me-2'><PremiumBadge size='std' /></span>\n </Modal.Title>\n </Modal.Header>\n <Row className='mb-3'>\n <EmptyState className='pt-3'>\n <EmptyState.Image src={config.imageUrl} altText={getPhrase(config.titlePhrase)} />\n <EmptyState.Heading className='h6'>\n <Text namespace={namespace} phrase={config.headingPhrase} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='description' />\n </EmptyState.Info>\n <EmptyState.Cta\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n text={getPhrase('cta')}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.GatedPopup,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.PremiumFeatures\n }}\n />\n </EmptyState>\n </Row>\n \n {props.extraContent}\n </Popup>\n );\n}\n\n","import React from 'react';\n\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { HardGatePopup } from 'shared/components/hard-gate-popup/HardGatePopup';\n\nexport interface HardGateInsightsPopupViewProps extends PopupViewProps {\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function HardGateIntegrationsPopupView(props: HardGateInsightsPopupViewProps): JSX.Element {\n return (\n <HardGatePopup\n feature='integrations'\n closePopup={props.closePopup}\n />\n );\n}\n\n"],"names":["namespace","PremiumBadge","props","className","size","invert","svgName","S","phrase","getPhrase","featureConfigMap","titlePhrase","headingPhrase","imageUrl","HardGatePopup","config","feature","animation","animate","closePopup","hideTitle","closeButton","as","src","altText","appLink","application","action","text","analyticsData","analyticsOptions","actionType","location","entity","descriptor","extraContent","HardGateIntegrationsPopupView"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6909],{22406:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),o=n(83914),i=n(36532),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(i.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},a.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},78408:(e,t,n)=>{n.d(t,{s:()=>i});var a=n(32735),r=n(15611);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function i(e){var t,n,i;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(o.dateItem)},a.createElement("div",{className:"".concat(null===(i=e.theme)||void 0===i?void 0:i.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},67814:(e,t,n)=>{n.d(t,{p:()=>A,v:()=>N});var a=n(32735),r=n(110),o=n(50690),i=n(22406),l=n(78408),c=n(83657),s=n(23481),u=n(15611),d=n(83914),m=n(35223),p="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(p,"backTo",{backToName:n}):s.T.getPhrase(p,"back"),f="black"===o?"":"text-white",v=l?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(f," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},c))}f.defaultProps={color:"black",extraClasses:""};var v=n(4527),g=n(83345),h=n(7733),y=n(10587),b=n(94232),E=n(54610),C=n(79967),S=n(9085),P=n(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var x="".concat(y.y[E.__.Banners].width,":").concat(y.y[E.__.Banners].height);function w(e){return e.length<160?"h1":k.headingLarge}var A=a.memo(function(e){var t,n,s,u,d=e.heading,m=e.banner,p=e.imageCdnUrl,y=e.actions,A=e.sortComponent,N=e.blockColourClass,I=e.specialEvent,L=a.useContext(b.n),F=(0,C.k)().xxl?1920:1200,O=a.useMemo(function(){if(!I||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return I.endDate?I.startDate<=t&&I.endDate>=t:I.startDate===t},[I]),T=e.imageOptions||{width:F,ratio:x,resizeType:E.Nq.Cover},M=!!m&&!!p&&P.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:d,type:E.__.Banners},T),D={className:"banner banner-header ".concat(e.bannerClassName),style:M?{backgroundImage:"url('".concat(M,"')")}:{}};!m&&N&&(delete D.style,D.className+=" ".concat(N));var j=e.detailsComponent,U=(0,S.x)(e.heading,h.o);return o.b.renderInPortalIfExists(a.createElement("header",Object.assign({},D),a.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!I&&a.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},a.createElement(l.s,{body:{type:I.endDate?"range":"day",text:I.endDate?"".concat(r.O.format(I.startDate,"DD"),"-").concat(r.O.format(I.endDate,"DD")):r.O.format(I.startDate,"DD")},month:function(e){return e.endDate?r.O.isSame(e.startDate,e.endDate,"month")?r.O.format(e.startDate,"MMMM"):"".concat(r.O.format(e.startDate,"MMM")," - ").concat(r.O.format(e.endDate,"MMM")):r.O.format(e.startDate,"MMMM")}(I),theme:e.calendarTheme})),a.createElement("div",null,O&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(g.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(U)},a.createElement(v.w,{src:P.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:E.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(w(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,j&&a.createElement(j,null)))),!!y&&a.createElement("div",{className:k.actionsContainer},a.createElement(c.e,{actions:y,sortComponent:A,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:k.logoContainer},a.createElement("img",{src:P.j.createUrl(e.logo.url,{size:E.h2.Medium}),className:"rounded-circle"})))),null==L?void 0:L.container)},function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)});function N(){var e=a.useContext(b.n);return o.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._,internalServerError:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==a.o.InternalServer?o!==a.o.NotFound?o!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new i.badRequest):n.forbidden||r.Q.Ry.throw(new i.forbidden.privacy):n.notFound||r.Q.Ry.throw(new i.notFound):n.internalServerError||r.Q.Ry.throw(new c._))}}},39902:(e,t,n)=>{n.d(t,{FN:()=>f,SW:()=>v,fh:()=>p});var a=n(32735),r=n(20354),o=n(75896);function i(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}function c(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 s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},m=50;function p(e,t){var n=o.m.chunk(e,m).map(function(e){return t(o.m.uniq(e))}),a=r.a.useBasicFetchAll(n),i=o.m.flatten(a.data),l=a.data.length?i.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))},{}):null;return{itemsArr:i,items:l,isFetching:a.isFetching,hasCompleted:a.hasCompleted}}function f(e,t,n){var r=null!=n?n:function(e){return"object"===s(e)?e.id:e},o=v({getRequest:t,_getKey:n}),i=o.fetchItems,l=d(o,["fetchItems"]);return a.useEffect(function(){(null==e?void 0:e.length)&&i(e)},[null==e?void 0:e.map(r).join(",")]),l}function v(e){var t,n,c,d,p,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},v=a.useRef(new Set),g=(d=a.useState([]),p=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(d,p)||l(d,p)||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.")}()),h=g[0],y=g[1],b=r.a.useBasicFetchAll(h),E=o.m.flatten(b.data),C=b.data.length?E.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},f(t),t))},{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:C,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach(function(e){var t=f(e);v.current.has(t)||(n.push(e),v.current.add(t))}),n.length&&y(function(t){return[].concat(i(t),i(o.m.chunk(n,m).map(e.getRequest)))})}}}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var a=n(32735),r=n(50242),o=n(91967),i=400,l=n(45719);function c(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 s(e,t,n,s,u,d){var m,p,f,v,g=(m=(0,a.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(m,p)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(m,p)||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.")}()),h=g[0],y=g[1],b=t,E=(0,l.P)(function(t){if(!e)return null;var n=e(t);return n?n.key:null},s,u);return f={fetchNextPage:function(){if(t&&e&&E)return y(function(e){return e+1}),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},v=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-i)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-i)return;f.fetchNextPage()}},(0,a.useEffect)(function(){var e=o.q.throttle(v,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,a.useEffect)(function(){E&&E.shouldInitialFetch&&t&&(b(),y(function(e){return e+1}))},[null==E?void 0:E.shouldInitialFetch,t]),(0,a.useEffect)(function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var a=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(h,E.statusCode)}},[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var a=n(32735),r=n(77316);function o(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}}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(e){var t,n,l=(t=a.useMemo(function(){return r.p.getBuilder()},[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(t,n)||o(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=l[0],s=(0,l[1])(c);return s&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}},55796:(e,t,n)=>{n.d(t,{Z:()=>m});var a=n(32735),r=n(65858),o=n(15611),i=n(83914),l=n(83345),c=n(35223),s=n(14070),u=n(97291),d="signUp.gateBanner";function m(){return a.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},a.createElement(i.x,{svgName:c.vn.StarOutline,size:i.S.Large}),a.createElement(l.x,{namespace:d,phrase:"softGate"})," ",a.createElement(o.F,{appLink:{application:u.O.SIGN_UP,action:s.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline",analyticsData:{},analyticsOptions:{actionType:r.Vw.Click,location:r.LZ.GatedBanner,entity:r.py.AppLink,descriptor:r.Yu.PremiumFeatures}},a.createElement(l.x,{namespace:d,phrase:"learnMore"})))}},47430:(e,t,n)=>{n.d(t,{f:()=>f});var a=n(32735),r=n(23481),o=n(65858),i=n(97958),l=n(83345),c=n(99742),s=n(14070),u=n(97291),d="shared.hardGateEmptyState",m=r.T.encloseNamespace(d),p={insights:{headingPhrase:"insightsHeading",descriptionPhrase:"insightsDescription",ctaPhrase:"insightsCta",imageUrl:c.W.ReverseTrial.INTERACTIVE},"my-videos":{headingPhrase:"myVideosHeading",descriptionPhrase:"myVideosDescription",ctaPhrase:"myVideosCta",imageUrl:c.W.EmptyStates.MY_VIDEOS_PUBLIC},playlists:{headingPhrase:"playlistsHeading",descriptionPhrase:"playlistsDescription",ctaPhrase:"playlistsCta",imageUrl:c.W.EmptyStates.Playlists.PLAYLISTS_PUBLIC},clip:{headingPhrase:"clipHeading",descriptionPhrase:"clipDescription",ctaPhrase:"clipCta",imageUrl:c.W.ReverseTrial.CLIP}};function f(e){var t=p[e.feature];return a.createElement(i.u,null,a.createElement(i.u.Image,{src:t.imageUrl}),a.createElement(i.u.Heading,null,a.createElement(l.x,{namespace:d,phrase:t.headingPhrase})),a.createElement(i.u.Info,{className:"w-75"},a.createElement(l.x,{namespace:d,phrase:t.descriptionPhrase})," "),a.createElement(i.u.Cta,{text:m(t.ctaPhrase),appLink:{application:u.O.SIGN_UP,action:s.e.SignUp.PREMIUM_FEATURES},analyticsData:{},analyticsOptions:{actionType:o.Vw.Click,location:o.LZ.GatedEmptyState,entity:o.py.AppLink,descriptor:o.Yu.PremiumFeatures},className:"btn btn-dark mb-3"}),e.extraCta)}},58321:(e,t,n)=>{n.d(t,{U:()=>f});var a=n(20354),r=n(16714),o=n(39151),i=n(1666),l=n(31949),c=n(22902),s=n(37802),u=n(22490),d=n(82431),m=n(46390),p=n(27638);function f(e){var t,n,f,v=e||{},g=v.locationContext,h=v.mtv,y=v.flightNamespace,b=v.sharedPlaylist,E=(0,m.G)(),C=E.isPlugin,S=E.params,P=(0,p.u)(g,y),k=P.setFavourite,x=P.canFavourite,w=(0,s.r)(null),A=w.hasTopicDirectories,N=w.isLoadingSettings,I=(0,c.T)(),L=I.hasPermissions,F=I.isLoaded,O=L(r.C.StudentExperience),T=L(r.C.GuestExperience),M=a.a.useBasicFetch(o.L.config()),D=a.a.useBasicFetch(l.N.currentUser()),j=a.a.useBasicFetch((null===(t=D.data)||void 0===t?void 0:t.isAuthenticated)&&i.h.yearGroups(D.data.customerId));return{hasCommonVideoPropsCompleted:!N&&F&&M.hasCompleted&&D.hasCompleted&&(!(null===(n=D.data)||void 0===n?void 0:n.isAuthenticated)||j.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?b&&!(null===(t=D.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:h}):null},isPlugin:C,isPluginPopup:!!(null==S?void 0:S.popup),canFavourite:x,setFavourite:k,imageCdnUrl:null===(f=M.data)||void 0===f?void 0:f.imageCdnUrl,yearGroups:j.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:A,companyLogoFallbackUrl:null,hasStudentExperience:O,hasGuestExperience:T}}}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var a=n(20354),r=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return a.a.useBasicFetch(!!i&&r.O.presentationAudiences(i.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>c});var a=n(1575),r=n(39902),o=n(31908);function i(e){return e?Array.isArray(e)?e.filter(function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))}):"data"in e?e.data.filter(function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))}):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i(e).map(function(e){return e.id});(0,r.FN)(n,function(e){return a.R.videoMixinAssocs(e,t.flightNamespace)},null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,r.SW)({getRequest:function(t){return a.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(i(e).map(function(e){return e.id}))}}}},96909:(e,t,n)=>{n.r(t),n.d(t,{FavouritesView:()=>z});var a=n(32735),r=n(70680),o=n(23481),i=n(20354),l=n(65858),c=n(67814),s=n(49935),u=n(87801),d=n(83345),m=n(1860),p=n(3534),f=n(51365),v=n(16714),g=n(94644),h=n(39151),y=n(63419),b=n(31949),E=n(69883),C=n(63719),S=n(60115),P=n(22902),k=n(79612),x=n(47430),w=n(99742),A=n(58321),N=n(44110),I=n(97816),L=n(10741),F=n(22490),O=n(55796),T=n(97958),M=n(14070),D=n(97291);const j={image:"ZfpQv"};var U="shared.favouritesEmptyState",B=o.T.encloseNamespace(U);function V(){return a.createElement(d.D.Provider,{value:U},a.createElement(T.u,null,a.createElement(T.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS,altText:B("info"),className:j.image}),a.createElement(T.u.Heading,{className:"h3"},a.createElement(d.x,{phrase:"heading"})),a.createElement(T.u.Info,null,a.createElement(d.x,{phrase:"info"})),a.createElement(T.u.Cta,{text:o.T.getPhrase(U,"cta"),appLink:{application:D.O.DASHBOARD,action:M.e.Dashboard.HOME}})))}function R(){return a.createElement(d.D.Provider,{value:U},a.createElement(T.u,null,a.createElement(T.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS_PUBLIC,altText:B("publicInfo")}),a.createElement(T.u.Heading,null,a.createElement(d.x,{phrase:"publicHeading"})),a.createElement(T.u.Info,null,a.createElement(d.x,{phrase:"publicInfo"})),a.createElement(T.u.Cta,{text:o.T.getPhrase(U,"publicCta"),appLink:{application:D.O.SIGN_UP,action:M.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.MyFavouritesLanding,entity:l.py.AppLink,workflowPhase:l.eu.Start,descriptor:l.Yu.SignUp}})))}var _=n(26323),G=n(35223),H=n(31908),W=n(10671),q=n(27638),Y="shared.favourites";const Z={banner:"FEWd3"};var Q="shared.favourites";function z(){var e,t,n=(0,r.I0)(),T=(0,E.Z)(),M=(0,A.U)({locationContext:l.LZ.VideoThumbnail}).commonVideoProps,D=function(){var e=(0,W._)({location:W.i.VideoItem}),t=(0,q.u)(l.LZ.VideoThumbnail).setFavourite;return Object.assign(Object.assign({},e),{getVideoActions:function(n){return H.M.getCanBeConsumed(n).canConsume?e.getVideoActions(n):[{label:o.T.getPhrase(Y,"removeFromFavourites"),svgName:G.vn.Delete,button:!1,className:"btn btn-link text-danger",onClick:function(){return t(n,!1)}}]}})}();(0,k.M)({title:o.T.getPhrase(Q,"pageTitle")});var j=(0,P.T)(),U=j.hasLocalPermissions,B=j.hasPermissions,z=j.getGatedPermission,K=i.a.useBasicFetch(b.N.currentUser()),X=i.a.useBasicFetch(h.L.config()),$=function(e){return y.P.getFavourites(K.data.id,e)},J=function(e){return i.a.getFetch(n)($(e))},ee=!U(v.E.ViewMyFavouritesLanding)&&K.hasCompleted,te=(0,S.K)(!!ee&&$,J,function(e,t){if(1===e)return(0,g.r)(t);T.error(o.T.getPhrase(Q,"error"))}),ne=te.items,ae=te.hasMore,re=te.isFetching;(0,I.V)(ne);var oe=(0,N.i)(),ie=(0,C.h)({name:o.T.getPhrase(Q,"header")}),le=(0,_.B)(null===(e=K.data)||void 0===e?void 0:e.id),ce=le.count;return le.isLoading?a.createElement(a.Fragment,null):U(v.E.ViewMyFavouritesLanding)?a.createElement(R,null):"hard-gate"===z(v.C.FavouriteVideo)?a.createElement("div",{className:"bg-white px-3"},a.createElement(x.f,{feature:"playlists"})):a.createElement(f.M.Provider,{value:D},a.createElement("div",{className:"p-3"},a.createElement(c.p,{heading:o.T.getPhrase(Q,"header"),banner:{url:w.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER},bannerClassName:"".concat(Z.banner," bg-pink"),imageCdnUrl:null===(t=X.data)||void 0===t?void 0:t.imageCdnUrl,detailsComponent:function(){return a.createElement("div",{className:"mb-n1 font-size-normal fw-normal mt-1"},a.createElement(d.x,{namespace:Q,phrase:"videos",options:{smartCount:ce}}))}}),"soft-gate"===z(v.C.FavouriteVideo)&&a.createElement(O.Z,null),(null==ie?void 0:ie.length)&&a.createElement("div",{className:"border-bottom pb-3"},a.createElement(s.Oo,{breadcrumbs:ie})),ne?ne.length?a.createElement("div",{className:"mt-2"},a.createElement(p.E4,{videos:ne,getVideoAppLink:F.W.getAppLink,hasPermissions:B,presentationAudiences:oe.data,getPreviewQuestionsAppLink:function(e){return L.j.getPreviewQuestionsAppLink(e)},commonVideoProps:M}),(ae||re)&&a.createElement(u._,{isFetching:re,fetchNext:J})):a.createElement(V,null):a.createElement(m.S,null)))}},26323:(e,t,n)=>{n.d(t,{B:()=>l});var a=n(20354),r=n(63419);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||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)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}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(e){var t,n,i,l,c,s,u,d,m,p=a.a.useBasicFetch(e&&r.P.getFavouritesVideosCount(e)),f=a.a.useBasicFetch(e&&r.P.getFavouritesClipsCount(e)),v=a.a.useBasicFetch(e&&r.P.getFavouritesInteractivesCount(e));return{count:(null===(t=p.data)||void 0===t?void 0:t.count)+(null===(n=v.data)||void 0===n?void 0:n.count)+(null===(i=f.data)||void 0===i?void 0:i.count),favourites:[].concat(o((null===(l=p.data)||void 0===l?void 0:l.data)||[]),o((null===(c=f.data)||void 0===c?void 0:c.data)||[]),o((null===(s=v.data)||void 0===s?void 0:s.data)||[])),isLoading:!(null===(u=p.data)||void 0===u?void 0:u.data)||!(null===(d=f.data)||void 0===d?void 0:d.data)||!(null===(m=v.data)||void 0===m?void 0:m.data)}}}}]);
|
|
2
|
+
//# sourceMappingURL=6909-b5717e92e8-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6909-b5717e92e8-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/sign-up/components/soft-gate-banner/GateBanner.tsx","file:///app/packages/projects/lite/src/shared/components/hard-gate-empty-state/HardGateEmptyState.tsx","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/favourites/empty-state/favourites-empty-state.scss","file:///app/packages/projects/lite/src/shared/views/favourites/empty-state/FavouritesEmptyState.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesViewUtils.ts","file:///app/packages/projects/lite/src/shared/views/favourites/favourites-view.scss","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesView.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/hooks/useFavouritesCount.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n logoBgColour?: string;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n const logoFallbackBgClassName = getBgColorClass(props.heading, BG_COLOUR_CLASS_NAMES);\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft && props.logo?.url &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${logoFallbackBgClassName}`}>\n <LazyImage\n src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })}\n style={{ backgroundColor: props.logoBgColour }}\n />\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Medium })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import React from 'react';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.gateBanner';\n\nexport function GateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Large} />\n <Text namespace={namespace} phrase='softGate' /> \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.GatedBanner,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.PremiumFeatures\n }}\n >\n <Text namespace={namespace} phrase='learnMore' />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.hardGateEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Feature = 'insights' | 'my-videos' | 'playlists' | 'clip';\n\ninterface FeatureConfig {\n headingPhrase: string;\n descriptionPhrase: string;\n ctaPhrase: string;\n imageUrl: string;\n}\n\nconst featureConfigMap: Record<Feature, FeatureConfig> = {\n 'insights': {\n headingPhrase: 'insightsHeading',\n descriptionPhrase: 'insightsDescription',\n ctaPhrase: 'insightsCta',\n imageUrl: ImageUrls.ReverseTrial.INTERACTIVE\n },\n 'my-videos': {\n headingPhrase: 'myVideosHeading',\n descriptionPhrase: 'myVideosDescription',\n ctaPhrase: 'myVideosCta',\n imageUrl: ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC\n },\n 'playlists': {\n headingPhrase: 'playlistsHeading',\n descriptionPhrase: 'playlistsDescription',\n ctaPhrase: 'playlistsCta',\n imageUrl: ImageUrls.EmptyStates.Playlists.PLAYLISTS_PUBLIC\n },\n 'clip': {\n headingPhrase: 'clipHeading',\n descriptionPhrase: 'clipDescription',\n ctaPhrase: 'clipCta',\n imageUrl: ImageUrls.ReverseTrial.CLIP\n }\n};\n\ninterface HardGateEmptyStateProps {\n feature: Feature;\n extraCta?: React.ReactNode;\n}\n\nexport function HardGateEmptyState(props: HardGateEmptyStateProps) {\n const config = featureConfigMap[props.feature];\n\n return (\n <EmptyState>\n <EmptyState.Image src={config.imageUrl} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase={config.headingPhrase} />\n </EmptyState.Heading>\n <EmptyState.Info className='w-75'>\n <Text namespace={namespace} phrase={config.descriptionPhrase} /> \n </EmptyState.Info>\n <EmptyState.Cta\n text={getPhrase(config.ctaPhrase)}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.GatedEmptyState,\n entity: EntityType.AppLink,\n descriptor: SignUpDescriptors.PremiumFeatures\n }}\n className='btn btn-dark mb-3'\n />\n {props.extraCta}\n </EmptyState>\n );\n}\n\n","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n const hasGuestExperience = hasPermissions(PermissionName.GuestExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience,\n hasGuestExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"ZfpQv\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport styles from './favourites-empty-state.scss';\n\nconst namespace = 'shared.favouritesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function FavouritesEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS}\n altText={getPhrase('info')}\n className={styles.image}\n />\n\n <EmptyState.Heading className='h3'>\n <Text phrase='heading' />\n </EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n\nexport function FavouritesPublicEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS_PUBLIC} altText={getPhrase('publicInfo')} />\n <EmptyState.Heading><Text phrase='publicHeading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='publicInfo' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'publicCta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MyFavouritesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\n\nconst namespace = 'shared.favourites';\n\nexport function useFavouritesVideoActions() {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { setFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n\n const getVideoActions = (video: VideoTypes) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume) {\n return [{\n label: LanguageService.getPhrase(namespace, 'removeFromFavourites'),\n svgName: cvSvgLibrary.Delete,\n button: false,\n className: 'btn btn-link text-danger',\n onClick: () => setFavourite(video, false)\n }];\n }\n\n return videoActions.getVideoActions(video);\n };\n\n return {\n ...videoActions,\n getVideoActions\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"FEWd3\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\nimport { HardGateEmptyState } from 'shared/components/hard-gate-empty-state/HardGateEmptyState';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { GateBanner } from 'apps/sign-up/components/soft-gate-banner/GateBanner';\n\nimport { FavouritesEmptyState, FavouritesPublicEmptyState } from './empty-state/FavouritesEmptyState';\nimport { useFavouritesCount } from './hooks/useFavouritesCount';\nimport { useFavouritesVideoActions } from './FavouritesViewUtils';\n\nimport styles from './favourites-view.scss';\n\nconst namespace = 'shared.favourites';\n\nexport function FavouritesView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const videoActions = useFavouritesVideoActions();\n\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n const { hasLocalPermissions, hasPermissions, getGatedPermission } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const getRequest = (cursor?: string) => {\n return FavouriteRequests.getFavourites(currentUser.data.id, cursor);\n };\n\n const fetchNext = (cursor?: string) => {\n return Flight.getFetch(dispatch)(getRequest(cursor));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding) && currentUser.hasCompleted;\n\n const {\n items,\n hasMore,\n isFetching\n } = useInfiniteList<VideoTypes>(shouldFetch ? getRequest : false, fetchNext, onError);\n\n useVideoMixin(items);\n \n const audiences = usePresentationAudiences();\n\n const breadcrumbs = useBreadcrumbs({ name: LanguageService.getPhrase(namespace, 'header') });\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const { count, isLoading } = useFavouritesCount(currentUser.data?.id);\n if (isLoading)\n return <></>;\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding))\n return <FavouritesPublicEmptyState />;\n\n if (getGatedPermission(PermissionName.FavouriteVideo) === 'hard-gate') {\n return (\n <div className='bg-white px-3'>\n <HardGateEmptyState feature='playlists' />\n </div>\n );\n }\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='p-3'>\n <BannerHeader\n heading={LanguageService.getPhrase(namespace, 'header')}\n banner={{ url: ImageUrls.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER }}\n bannerClassName={`${styles.banner} bg-pink`}\n imageCdnUrl={config.data?.imageCdnUrl}\n detailsComponent={() => (\n <div className='mb-n1 font-size-normal fw-normal mt-1'>\n <Text namespace={namespace} phrase='videos' options={{ smartCount: count }} />\n </div>\n )}\n />\n {getGatedPermission(PermissionName.FavouriteVideo) === 'soft-gate' && <GateBanner />}\n {breadcrumbs?.length &&\n <div className='border-bottom pb-3'>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </div>\n }\n \n {(() => {\n if (!items)\n return <PartialVideoList />;\n\n if (!items.length)\n return <FavouritesEmptyState />;\n\n return (\n <div className='mt-2'>\n <VideoList\n videos={items}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n hasPermissions={hasPermissions}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={commonVideoProps}\n />\n {(hasMore || isFetching) && <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />}\n </div>\n );\n })()}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Flight } from 'libs/common/flight';\n\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { FavouritesCountResponse } from 'libs/shared/interfaces';\n\nexport function useFavouritesCount(userId?: string) {\n// todo there is a beckend bug that we cannot group fetch these three number\n const favouriteVideosCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesVideosCount(userId));\n const favouriteClipsCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesClipsCount(userId));\n const favouriteInteractivesCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesInteractivesCount(userId));\n \n const totalCount = favouriteVideosCount.data?.count\n + favouriteInteractivesCount.data?.count\n + favouriteClipsCount.data?.count;\n\n const favourites = [\n ...(favouriteVideosCount.data?.data || []),\n ...(favouriteClipsCount.data?.data || []),\n ...(favouriteInteractivesCount.data?.data || [])\n ];\n\n return {\n count: totalCount,\n favourites,\n isLoading: !favouriteVideosCount.data?.data\n || !favouriteClipsCount.data?.data\n || !favouriteInteractivesCount.data?.data\n };\n}"],"names":["namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","logoFallbackBgClassName","getBgColorClass","PortalHelper","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","getSpecialEventMonthText","calendarTheme","Text","phrase","LazyImage","src","backgroundColor","logoBgColour","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","reduce","acc","item","id","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","join","options","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","key","current","has","push","add","r","SCROLL_TOLERANCE","useInfiniteList","fetchNext","onError","getItems","getCursor","scrollContainer","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","nextCursor","hasMore","getBoundingClientRect","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","toString","substr","HttpStatus","totalItems","hasFirstPageCompleted","useBreadcrumbs","match","breadcrumbs","useBuilder","active","GateBanner","role","application","action","actionType","location","entity","descriptor","getPhrase","featureConfigMap","headingPhrase","descriptionPhrase","ctaPhrase","imageUrl","HardGateEmptyState","config","feature","extraCta","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","params","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","hasGuestExperience","currentUser","yearGroups","isAuthenticated","customerId","hasCommonVideoPropsCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","getValidObjects","objects","Array","isArray","filter","o","useVideoMixin","videoIds","v","ids","useVideoMixinFunc","fetchObjects","FavouritesEmptyState","value","EmptyState","ImageUrls","altText","FavouritesPublicEmptyState","workflowPhase","SignUp","FavouritesView","dispatch","alerts","videoActions","useVideoActions","useLiteFavourites","getVideoActions","VideoHelper","canConsume","button","onClick","useFavouritesVideoActions","useSetPageMetadata","usePermissions","hasLocalPermissions","getGatedPermission","UserRequests","ConfigRequests","FavouriteRequests","shouldFetch","pageNumber","httpStatus","error","audiences","name","useFavouritesCount","count","isLoading","PermissionName","VideoActionsContext","smartCount","Breadcrumbs","VideoList","videos","getVideoAppLink","VideoAppLinkHelper","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","InfiniteScrollFooter","PartialVideoList","userId","favouriteVideosCount","favouriteClipsCount","favouriteInteractivesCount","favourites"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 7459-c1882c6f0d-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7459],{86974:(e,t,n)=>{"use strict";n.d(t,{w:()=>i});var r=n(32735);function a(){return r.createElement("svg",{viewBox:"0 0 24 24"},r.createElement("path",{d:"M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z"}))}var i=r.forwardRef(function(e,t){var n=e.onClickClear,i=e.showClearButton,o=e.clearClassName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["onClickClear","showClearButton","clearClassName"]);return r.createElement("div",{className:"position-relative"},r.createElement("input",Object.assign({},l,{ref:t,className:"".concat(e.className," ").concat("aYpO7")})),(!!e.value||i)&&r.createElement("span",{className:"".concat("ygMgF"," position-absolute cursor-pointer text-secondary ").concat(o||""),role:"button",onClick:n,onKeyDown:function(e){return"Enter"===e.key&&n()},tabIndex:0},r.createElement("div",{className:"d-inline-block svg-container md"},r.createElement(a,null))))})},66257:(e,t,n)=>{"use strict";n.d(t,{k:()=>f});var r=n(32735),a=n(80130),i=n(59087),o=n(23481),l=n(31453),c=n(35223),s=n(91693);const u={normal:"Q1UGv",copyBtn:"J3fBx",embedHtmlInput:"RcwAD"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d=o.T.encloseNamespace("shared.copyInput");function f(e){var t,n,o=(t=r.useState(e.showCopiedText||!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(t,n)||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.")}()),f=o[0],p=o[1];function v(){setTimeout(function(){return p(!1)},2e3)}function y(){e.onCopy&&e.onCopy(),f||(p(!0),v())}r.useEffect(function(){e.showCopiedText&&v()},[e.showCopiedText]);var b=r.createElement("div",{className:"normal-v2"===e.styling?"d-flex flex-row gap-2 position-relative w-100":"input-group"},e.textarea?r.createElement("textarea",{className:(0,l.A)("form-control rounded w-100 h-100",!e.hasInputBg&&u.embedHtmlInput,e.textAreaClassName),spellCheck:!1,value:e.value,rows:e.rows||7,readOnly:!0}):r.createElement("input",{type:"text",autoComplete:"off",className:(0,l.A)("form-control","normal"===e.styling&&e.styling),spellCheck:!1,value:e.value,readOnly:!0}),r.createElement(function(){return"normal-v2"===e.styling?r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement(s.h,{role:f?"status":"",svgName:f?c.vn.Check:c.vn.Copy,className:(0,l.A)(u.copyBtn,"btn py-0 text-nowrap",f?"btn-success text-white":"btn-outline-dark border-secondary",e.extraButtonClassNames)},f?e.copiedText||d("copiedLink"):e.copyText||d("copy"))):r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement("button",{role:f?"status":"",className:(0,l.A)("btn btn-outline-dark border border-secondary py-0 text-nowrap",e.extraButtonClassNames)},f?e.copiedText||d("copied"):e.copyText||d("copy")))},null));return e.label?r.createElement(a.Z.Group,{className:"form-group"},r.createElement(a.Z.Label,null,e.label),b):b}f.defaultProps={styling:"normal"}},38502:(e,t,n)=>{"use strict";n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),l=n(11607),c=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},72183:(e,t,n)=>{"use strict";n.d(t,{P:()=>a});var r=n(99940),a={invite:function(e){return{url:"{gateway}/v1/users/invites",key:"invites:colleague",normalize:!1,type:r.k.POST,data:e,invalidationKeys:["invites"]}},inviteByType:function(){return{key:"invites",url:"{gateway}/v1/users/invites?type=link&type=direct",normalize:!1}},deleteInvite:function(e){return{key:"invites:delete",url:"{gateway}/v1/users/invites/".concat(e),type:r.k.DELETE,normalize:!1,invalidationKeys:["invites"]}},resendInvite:function(e){return{key:"invites:".concat(e,":resend"),url:"{gateway}/v1/users/invites/email?id=".concat(e),type:r.k.POST,normalize:!1}},createInviteLink:function(){return{key:"invites:create",url:"{gateway}/v1/users/invites/links",type:r.k.POST,normalize:!1,invalidationKeys:["invites"]}}}},17459:(e,t,n)=>{"use strict";n.r(t),n.d(t,{InviteColleagueView:()=>Ue});var r=n(32735),a=n(23481),i=n(20354),o=n(49985),l=n(65858),c=n(9111),s=n(13876),u=n(39151),m=n(31949),d=n(25882),f=n(69883),p=n(37802),v=n(59934),y=n(23923),b=n(72183);function g(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return h(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)?h(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var E={"email-in-use":"emailInUse","invalid-email":"invalidEmail"},x=a.T.encloseNamespace("signUp.helpers"),N={recalculateFields:function(e,t,n,r){var a=this.cleanFields(t);if(!a.length)return this.removeField(e,t,n);var i=a[a.length-1],o=!(e!==a.length-1||!a[e].data.firstName.length&&!a[e].data.email.length),l=!!(a.length<r&&(i.data.firstName.length||i.data.email.length));return o||l?this.addField(a,r):void 0},getValidFieldsData:function(e){return e.reduce(function(e,t){return t.data.email.length?[].concat(g(e),[t.data]):e},[])},getInputWithErrors:function(e,t){var n,r=g(e),a=null===(n=t.responseJSON)||void 0===n?void 0:n.problems;return r.forEach(function(e,t){var n=a.find(function(t){return t.email===e.data.email});n&&(r[t]=Object.assign(Object.assign({},e),{error:{email:x(E[n.errorCode])}}))}),r},cleanFields:function(e){return e.filter(function(e){return e.data.firstName.length||e.data.email.length})},removeField:function(e,t,n){return t.length!==n&&t[e]?t.filter(function(t,n){return n!==e}):t},addField:function(e,t){return e.length>=t?e:[].concat(g(e),[this.getNewEmptyField()])},getNewEmptyField:function(){return{data:{firstName:"",email:""}}}};function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var C=a.T.encloseNamespace("signUp.helpers"),k=new RegExp(/^[^\s@]+@[^\s@]+\.[^\s@]+$/),S=/^[\w0-9'\-,.():;&][^_!¡?÷¿/\\+=@#$%ˆ*{}|~<>[\]]{0,}$/,I={validate:function(e){var t,n=this,r=function(e){if(Array.isArray(e))return w(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return w(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)?w(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=!1;return r.forEach(function(e,t){if(t!==r.length-1||0===t||e.data.email.length||e.data.firstName.length){var i={firstName:n.validateFirstName(e.data.firstName),email:n.validateEmail(e.data.email)};(i.firstName||i.email)&&(e.error=i,a||(a=!0))}}),{fieldsWithErrors:r,hasErrors:a}},validateEmail:function(e){return e.length?k.test(e)?void 0:C("validSchoolEmail"):C("enterValidEmail")},validateFirstName:function(e){if(e.length)return S.test(e)?void 0:C("invalidFirstname")}},O=a.T.encloseNamespace("signUp.hardGateInviteBanner");function T(e){var t=e.accessPolicy,n=e.reverseTrialReferralCount;return r.createElement("div",{className:"px-3"},r.createElement("div",{role:"alert",className:"bg-light-indigo rounded p-2 mb-4 text-indigo text-center"},O("titlePrefix")," ",r.createElement("strong",null,O("titleEmphasis")),t.metadata.maxReferrals&&r.createElement("div",{className:"text-center"},O("extensionsRedeemed",{count:null!=n?n:0,max:t.metadata.maxReferrals}))))}var j=n(97958),A=n(2102),P=n(83345),F=n(99742),U=n(86974);function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}var R=a.T.encloseNamespace("signUp.invite.inviteFormInputGroup");function L(e){var t=e.input,n=t.data,a=t.error;function i(t,r){var a,i,o,l=Object.assign(Object.assign({},n),(a={},o=r,(i=function(e){var t=function(e){if("object"!=D(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==D(t)?t:t+""}(i=t))in a?Object.defineProperty(a,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[i]=o,a));e.onChange(t,l)}return r.createElement("div",{className:"row mb-2"},r.createElement("div",{className:"col-4"},r.createElement("input",{type:"text",name:"firstName".concat(e.index),className:"form-control form-control-lg",placeholder:R("firstName"),value:n.firstName,onChange:function(e){e.preventDefault(),i("firstName",e.target.value)},autoComplete:"off"}),a&&(null==a?void 0:a.firstName)&&r.createElement("p",{className:"mb-0 text-danger"},a.firstName)),r.createElement("div",{className:"col-8 ps-0"},r.createElement(U.w,{type:"text",name:"electronicMail".concat(e.index),className:"form-control form-control-lg",placeholder:R("emailAddress",{count:e.index+1}),value:n.email,onChange:function(e){e.preventDefault(),i("email",e.target.value)},onClickClear:e.clearInputs,autoComplete:"off",showClearButton:!(!n.firstName&&!n.email)}),a&&(null==a?void 0:a.email)&&r.createElement("p",{className:"mb-0 text-danger",dangerouslySetInnerHTML:{__html:a.email}})))}function M(e){return function(e){if(Array.isArray(e))return _(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return _(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)?_(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var B="signUp.invite.inviteFormInputGroup";function G(e){var t=e.fields,n=e.setFields,a=e.minFields,i=e.maxFields,o=e.isTertiary,l=r.useMemo(function(){return t.filter(function(e){return!!e.data.email}).length},[t]);return r.createElement("div",{className:"px-3"},r.createElement(j.u.Image,{src:F.W.SignUp.INVITE_COLLEAGUE,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 text-center"},r.createElement(P.x,{namespace:B,phrase:o?"inviteHeadingTertiary":"inviteHeading"})),r.createElement("p",{className:"text-center"},r.createElement(P.x,{namespace:B,phrase:"inviteSubheading"})),r.createElement("div",{className:"row fw-bold mb-2"},r.createElement("div",{className:"col-4"},r.createElement(P.x,{namespace:B,phrase:"firstName"})),r.createElement("div",{className:"col-8 ps-0"},r.createElement(P.x,{namespace:B,phrase:"workEmailAddress"}),r.createElement("span",{className:"text-danger"},"*"))),t.map(function(e,o){return r.createElement(L,{input:e,key:o,index:o,onChange:function(e,r){return function(e,r,o){e>t.length||n(function(t){var n,l,c=M(t);return c[e].data=o,(null===(n=c[e])||void 0===n?void 0:n.error)&&(null===(l=c[e])||void 0===l?void 0:l.error[r])&&delete c[e].error[r],N.recalculateFields(e,c,a,i)||c})}(o,e,r)},clearInputs:function(){return function(e){e>t.length||n(function(t){var n=M(t);return n[e].data.firstName="",n[e].data.email="",N.recalculateFields(e,n,a,i)||n})}(o)}})}),r.createElement("div",{className:"pt-2 pb-3"},r.createElement(A.m,{showSpinner:e.showSpinner,variant:"dark",className:"btn-lg w-100",onClick:e.onSubmit},r.createElement(P.x,{namespace:B,phrase:"btnInvite",options:{smartCount:l||1}}))))}var z="signUp.invite.inviteFormSuccess";function Z(e){var t;if(null===(t=e.fields)||void 0===t?void 0:t.length)return r.createElement("div",{className:"text-center px-3"},r.createElement(j.u.Image,{src:F.W.SignUp.INVITE_COLLEAGUE_SUCCESS,className:"d-block mx-auto"}),r.createElement("h2",{className:"h4"},r.createElement(P.x,{namespace:z,phrase:"inviteSent"})),r.createElement("p",{className:"mb-0"},r.createElement(P.x,{namespace:z,phrase:"emailSentTo"})),r.createElement("div",{className:"mb-3"},e.fields.map(function(e,t){var n=e.data,a=n.firstName,i=n.email;if(i)return r.createElement("p",{className:"mb-0",key:t},!!a.length&&r.createElement("strong",null,a)," (",i,")")})),r.createElement("p",null,r.createElement(P.x,{namespace:z,phrase:"moreInvite"})," ",r.createElement("a",{onClick:e.onInviteMore,className:"info-link p-0"},r.createElement(P.x,{namespace:z,phrase:"inviteMore"}))))}function H(e){var t=e.fields,n=e.setFields,a=e.showSpinner,i=e.onSubmit;return t.length?e.completed?r.createElement(Z,{fields:t,onInviteMore:function(t){t.preventDefault(),e.onInviteMore()}}):r.createElement(G,{fields:t,setFields:n,showSpinner:a,onSubmit:i,maxFields:e.maxFields,minFields:e.minFields,isTertiary:e.isTertiary}):r.createElement(r.Fragment,null)}var V=n(38502),W=a.T.encloseNamespace("signUp.invite.inviteTabs");function $(e){var t=[{name:W("invite"),onSelect:function(){return e.onChangeTab("inviteForm")},active:"inviteForm"===e.activeTab,analyticsData:{name:W("invite")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}},{name:W("pending"),onSelect:function(){return e.onChangeTab("pendingInvites")},active:"pendingInvites"===e.activeTab,analyticsData:{name:W("pending")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}}];return r.createElement(V.r,{className:"d-flex justify-content-center mb-3",tabs:t})}var J=n(42648),K="signUp.invite.pendingInvites";function Y(e){return r.createElement("div",{className:"text-center py-4 px-3"},r.createElement(j.u.Image,{src:F.W.SignUp.EMPTY_PENDING_INVITES,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 mb-0"},r.createElement(P.x,{namespace:K,phrase:"emptyTitle"})),r.createElement("p",null,r.createElement(P.x,{namespace:K,phrase:"emptyDescription"})," ",r.createElement("a",{onClick:function(t){t.preventDefault(),e.onInviteMore()},className:"info-link"},r.createElement(P.x,{namespace:K,phrase:"emptyAction"}))))}const Q={avatar:"cin_G",oneLine:"FrlTw",twoLine:"rBQWR",minPendingHeight:"LMnOk"};function q(){return r.createElement("div",{className:"d-flex mb-2 justify-content-between"},r.createElement("div",{className:"col-8 d-flex align-items-center"},r.createElement("div",{className:"partial-loading-background rounded-circle ".concat(Q.avatar)}),r.createElement("div",{className:"ms-2 w-100"},r.createElement("div",{className:"partial-loading-background mb-1 w-50 ".concat(Q.oneLine)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(Q.oneLine)}))),r.createElement("div",{className:"col d-flex align-items-center justify-content-end"},r.createElement("div",{className:"partial-loading-background w-100 ".concat(Q.twoLine)})))}function X(){return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"partial-loading-background w-25 m-2 ".concat(Q.oneLine)}),Array(6).fill(null).map(function(e,t){return r.createElement(q,{key:t})}))}var ee,te=n(76306),ne=n(97408),re=n(83914),ae=n(35223);!function(e){e.Active="Active",e.Accepted="Accepted",e.Expired="Expired"}(ee||(ee={}));var ie=a.T.encloseNamespace("signUp.helpers"),oe={getItemActions:function(e){var t=e.status,n=e.resendInvite,r=e.removeInvite;return t===ee.Accepted?[]:[{label:ie("resendInvite"),onClick:n},{label:ie("removeInvite"),onClick:r,className:"text-danger"}]}},le=a.T.encloseNamespace("signUp.invite.inviteStatusInfo");function ce(e){return e.status===ee.Accepted?r.createElement(se,{extraContainerClass:"text-success",renderSvg:function(){return r.createElement(re.x,{size:re.S.Small,svgName:ae.vn.Check})},text:le("accepted")}):e.status===ee.Active?r.createElement(se,{renderSvg:function(){return r.createElement(re.x,{size:re.S.Small,svgName:ae.vn.PendingCircle,className:"d-inline-block svg-container text-info"})},extraTextClass:"text-secondary",text:le("active")}):e.status===ee.Expired?r.createElement(se,{extraContainerClass:"text-danger",renderSvg:function(){return r.createElement(re.x,{size:re.S.Small,svgName:ae.vn.Close,className:"d-inline-block svg-container"})},text:le("expired")}):r.createElement(r.Fragment,null)}function se(e){function t(e,t){return t?"".concat(e," ").concat(t):e}var n=t("d-flex align-items-center",e.extraContainerClass),a=t("ps-1",e.extraTextClass);return r.createElement("div",{className:n},e.renderSvg&&e.renderSvg(),r.createElement("small",{className:a},e.text))}const ue={avatar:"VsdKR",email:"L65Cs"};function me(e){return e.initial?r.createElement(ne.q,{imageCdnUrl:e.imageCdnUrl,initials:e.initial}):r.createElement("div",{className:"d-flex align-items-center justify-content-center rounded-circle bg-dark text-white w-100 h-100"},r.createElement(re.x,{svgName:ae.vn.Email,size:re.S.Large}))}function de(e){var t,n,a=e.invite,i=a.invitee,o=a.status,l=null!==(t=null==i?void 0:i.email)&&void 0!==t?t:e.invite.metadata.email,c=oe.getItemActions({status:o,resendInvite:function(){return e.resendInvite(e.invite.id)},removeInvite:function(){return e.removeInvite(e.invite.id)}}),s=null===(n=e.invite.metadata)||void 0===n?void 0:n.firstName,u=null==s?void 0:s.substr(0,1);return r.createElement("div",{className:"d-flex mb-2 justify-content-between px-3"},r.createElement("div",{className:"d-flex align-items-center ps-0"},r.createElement("div",{className:ue.avatar},r.createElement(me,{initial:u,userId:null==i?void 0:i.userId,imageCdnUrl:e.imageCdnUrl})),r.createElement("div",{className:"ms-2"},!!s&&r.createElement("h3",{className:"h6 mb-0"},s),r.createElement("p",{className:"mb-0 text-secondary w-100 text-truncate ".concat(ue.email),title:l},l))),r.createElement("div",{className:"d-flex align-items-center justify-content-between pe-0"},r.createElement(ce,{status:o}),!!c.length&&r.createElement(te.m,{dropdownToggleClassName:"btn btn-link ms-1",actions:c})))}var fe="signUp.invite.pendingInvites";function pe(e){var t;return e.isLoading?r.createElement(X,null):(null===(t=null==e?void 0:e.invites)||void 0===t?void 0:t.length)?r.createElement("div",{className:"px-1"},r.createElement("h3",{className:"h6 px-3"},r.createElement(P.x,{namespace:fe,phrase:"heading"})),r.createElement(J.$B,{className:"".concat(Q.minPendingHeight)},e.invites.map(function(t,n){return r.createElement(de,{key:n,invite:t,imageCdnUrl:e.imageCdnUrl,removeInvite:e.removeInvite,resendInvite:e.resendInvite})}))):r.createElement(Y,{onInviteMore:e.onInviteMore})}var ve=n(80247),ye=n(66257),be="signUp.invite.shareInviteLink";function ge(e){return e.showSpinner?r.createElement("div",{className:"text-center w-100"},r.createElement(ve.Z,{as:"div",animation:"border",role:"status"})):r.createElement("div",{className:"w-100"},r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("h2",{className:"h6"},r.createElement(P.x,{namespace:be,phrase:"title"})),e.link&&r.createElement("button",{className:"btn btn-link info-link p-0 mb-2",onClick:e.onClickDelete},r.createElement(P.x,{namespace:be,phrase:"delete"}))),e.link?r.createElement(ye.k,{value:e.link}):r.createElement("div",{className:"d-flex w-100 justify-content-between"},r.createElement("div",null,r.createElement(re.x,{svgName:ae.vn.Link,className:"me-2 d-inline-block svg-container"}),r.createElement(P.x,{namespace:be,phrase:"generate"})),r.createElement("button",{className:"btn info-link p-0",onClick:e.onClickCreate},r.createElement(P.x,{namespace:be,phrase:"create"}))))}var he=n(15611),Ee=n(14070),xe=n(97291),Ne=a.T.encloseNamespace("signUp.softGateInviteBanner");function we(e){var t=e.accessPolicy,n=e.reverseTrialReferralCount;return r.createElement("div",{className:"px-3"},r.createElement("div",{role:"alert",className:"bg-light-indigo rounded p-2 mb-4 text-indigo text-center"},r.createElement("div",{className:"d-flex align-items-center justify-content-center"},r.createElement(re.x,{svgName:ae.vn.StarOutline,size:re.S.Medium}),r.createElement("div",null,Ne("titlePrefix")," ",r.createElement(he.F,{appLink:{application:xe.O.SIGN_UP,action:Ee.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},r.createElement("strong",null,Ne("titleEmphasis",{bonusDays:t.metadata.referralBonusTime.split(".")[0]}))))),t.metadata.maxReferrals&&r.createElement("div",null,Ne("extensionsRedeemed",{count:null!=n?n:0,max:t.metadata.maxReferrals}))))}var Ce=n(43391);const ke={minHeight:"tWSzO"};function Se(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return Ie(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function f(n,r){for(l=n,c=r,t=0;!m&&s&&!a&&t<u.length;t++){var a,i=u[t],f=d.p,p=i[2];n>3?(a=p===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=f&&((a=n<2&&f<i[1])?(l=0,d.v=r,d.n=i[1]):f<p&&(a=n<3||i[0]>r||r>p)&&(i[4]=n,i[5]=r,d.n=p,l=0))}if(a||n>1)return o;throw m=!0,r}return function(a,u,p){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,p),l=u,c=p;(t=l<2?e:c)||!m;){i||(l?l<3?(l>1&&(d.n=-1),f(l,c)):d.n=c:d.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,l<2&&(l=0)}else 1===l&&(t=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(m=d.n<0)?c:n.call(r,d))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:m}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(Ie(t={},r,function(){return this}),t),m=s.prototype=l.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Ie(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=s,Ie(m,"constructor",s),Ie(s,"constructor",c),c.displayName="GeneratorFunction",Ie(s,a,"GeneratorFunction"),Ie(m),Ie(m,a,"Generator"),Ie(m,r,function(){return this}),Ie(m,"toString",function(){return"[object Generator]"}),(Se=function(){return{w:i,m:d}})()}function Ie(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}Ie=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){Ie(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},Ie(e,t,n,r)}function Oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Te(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)?Te(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 Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var je=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}c((r=r.apply(e,t||[])).next())})},Ae=a.T.encloseNamespace("signUp.inviteColleage"),Pe=1,Fe=5;function Ue(e){var t,n,a,g,h=Oe(r.useState(e.tab),2),E=h[0],x=h[1],w=Oe(r.useState(!1),2),C=w[0],k=w[1],S=Oe(r.useState(!1),2),O=S[0],j=S[1],A=Oe(r.useState(!1),2),P=A[0],F=A[1],U=Oe(r.useState(function(){return[N.getNewEmptyField()]}),2),D=U[0],R=U[1],L=(0,d.vb)().accessPolicy,M=(0,p.r)(null).reverseTrialReferralCount,_=i.a.useGetFetchAsync(),B=(0,f.Z)(),G=(0,y.B)(),z=i.a.useBasicFetch(m.N.currentUser()),Z=i.a.useBasicFetch(u.L.config()),V=i.a.useBasicFetch(b.P.inviteByType()),W=(0,Ce.C)(V.data),J=W.directInvites,K=W.links,Y=null==K?void 0:K[0];function Q(e){o.k.logUserAction({emailCount:e},{actionType:l.Vw.SendEmail,location:l.LZ.TrialBanner,entity:l.py.User,descriptor:l.Yu.InviteColleague,workflowPhase:l.eu.Complete})}function q(){j(!1),R([N.getNewEmptyField()]),"inviteForm"!==E&&(x("inviteForm"),F(!1))}var X=z.hasCompleted&&Z.hasCompleted&&V.hasCompleted,ee=M>(null===(t=null==L?void 0:L.metadata)||void 0===t?void 0:t.maxReferrals)?null===(n=null==L?void 0:L.metadata)||void 0===n?void 0:n.maxReferrals:M;return r.createElement(c.G,{title:Ae("title"),closePopup:e.closePopup,bodyClassName:"modal-body px-0",showLoadingSpinner:!X},X&&r.createElement(r.Fragment,null,r.createElement("div",{className:ke.minHeight},(null===(a=null==L?void 0:L.metadata)||void 0===a?void 0:a.referralBonusTime)&&r.createElement(we,{accessPolicy:L,reverseTrialReferralCount:ee}),(null===(g=null==L?void 0:L.metadata)||void 0===g?void 0:g.referralReactivationPolicy)&&r.createElement(T,{accessPolicy:L,reverseTrialReferralCount:ee}),!O&&r.createElement($,{activeTab:E,onChangeTab:function(e){return x(e)}}),"pendingInvites"===E?r.createElement(pe,{imageCdnUrl:Z.data.imageCdnUrl,invites:J,onInviteMore:q,removeInvite:function(e){return je(this,void 0,void 0,Se().m(function t(){var n;return Se().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,_(b.P.deleteInvite(e));case 1:B.success(Ae("removeSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,B.error(v.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},resendInvite:function(e){return je(this,void 0,void 0,Se().m(function t(){var n;return Se().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,_(b.P.resendInvite(e));case 1:B.success(Ae("resendSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,B.error(v.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},isLoading:!V.hasCompleted}):r.createElement(H,{fields:D,setFields:R,showSpinner:P,completed:O,onSubmit:function(){var e;return je(this,void 0,void 0,Se().m(function t(){var n,r,a,i,o,l;return Se().w(function(t){for(;;)switch(t.n){case 0:if(!P){t.n=1;break}return t.a(2);case 1:if(n=I.validate(D),r=n.fieldsWithErrors,!n.hasErrors){t.n=2;break}return R(r),t.a(2);case 2:return t.p=2,F(!0),a=N.getValidFieldsData(D),t.n=3,_(b.P.invite(a));case 3:return j(!0),Q(a.length),t.a(2);case 4:if(t.p=4,l=t.v,"create-invitation-failed"===(null===(e=(i=l).responseJSON)||void 0===e?void 0:e.type)){t.n=5;break}return B.error(v.M.inviteColleagueError(i)),t.a(2);case 5:o=N.getInputWithErrors(D,i),R(o);case 6:return t.p=6,F(!1),t.f(6);case 7:return t.a(2)}},t,null,[[2,4,6,7]])}))},onInviteMore:q,maxFields:Fe,minFields:Pe,isTertiary:G})),!O&&r.createElement("div",{className:"px-3"},r.createElement(s.u,null,r.createElement(ge,{onClickCreate:function(){return je(this,void 0,void 0,Se().m(function e(){return Se().w(function(e){for(;;)switch(e.n){case 0:return k(!0),e.p=1,e.n=2,_(b.P.createInviteLink());case 2:e.n=4;break;case 3:e.p=3,e.v,B.error(Ae("error"));case 4:return e.p=4,k(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))},onClickDelete:function(){return je(this,void 0,void 0,Se().m(function e(){var t;return Se().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,_(b.P.deleteInvite(Y.id));case 1:B.success(Ae("deleteLinkSuccess")),e.n=3;break;case 2:e.p=2,t=e.v,B.error(v.M.inviteColleagueError(t));case 3:return e.a(2)}},e,null,[[0,2]])}))},link:null==Y?void 0:Y.inviteUrl,showSpinner:C})))))}},43391:(e,t,n)=>{"use strict";n.d(t,{C:()=>i});var r,a=n(32735);function i(e){return a.useMemo(function(){return e?e.reduce(function(e,t){return t.type===r.Direct?(e.directInvites.push(t),e):(e.links.push(t),e)},{directInvites:[],links:[]}):{directInvites:null,links:null}},[e])}!function(e){e.Link="link",e.Direct="direct"}(r||(r={}))},91969:(e,t,n)=>{"use strict";var r=n(47033),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,o,l,c,s,u=!1;t||(t={}),n=t.debug||!1;try{if(o=r(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=a[t.format]||a.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))}),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},22771:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},44818:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var a=l(n(32735)),i=l(n(91969)),o=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(y,e);var t,n,l,c,v=(l=y,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,t=f(l);if(c){var n=f(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}(this,e)});function y(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return p(d(e=v.call.apply(v,[this].concat(n))),"onClick",function(t){var n=e.props,r=n.text,o=n.onCopy,l=n.children,c=n.options,s=a.default.Children.only(l),u=(0,i.default)(r,c);o&&o(r,u),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)}),e}return t=y,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,o),r=a.default.Children.only(t);return a.default.cloneElement(r,s(s({},n),{},{onClick:this.onClick}))}}])&&u(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),y}(a.default.PureComponent);t.CopyToClipboard=v,p(v,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var r=n(44818).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach(function(t){e.addRange(t)}),t&&t.focus()}}}}]);
|
|
3
|
+
//# sourceMappingURL=7459-c1882c6f0d-lite.chunk.js.map
|