@clickview/reports 0.89.0-rc.0 → 0.89.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +262 -262
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{B-Ygge5X2.chunk.js → 9w-0PYPT2.chunk.js} +2 -2
- package/dist/scripts/{B-Ygge5X2.chunk.js.map → 9w-0PYPT2.chunk.js.map} +1 -1
- package/dist/scripts/{B2vNpjBe2.chunk.js → B9pFKWJ02.chunk.js} +2 -2
- package/dist/scripts/{B2vNpjBe2.chunk.js.map → B9pFKWJ02.chunk.js.map} +1 -1
- package/dist/scripts/{CgRzcaPA2.chunk.js → BNN5pscb2.chunk.js} +2 -2
- package/dist/scripts/{CgRzcaPA2.chunk.js.map → BNN5pscb2.chunk.js.map} +1 -1
- package/dist/scripts/{CaEKrEVr.chunk.js → BnSjmWJq.chunk.js} +2 -2
- package/dist/scripts/{CaEKrEVr.chunk.js.map → BnSjmWJq.chunk.js.map} +1 -1
- package/dist/scripts/{DiGtRGOr.chunk.js → BnzWs-z6.chunk.js} +2 -2
- package/dist/scripts/{DiGtRGOr.chunk.js.map → BnzWs-z6.chunk.js.map} +1 -1
- package/dist/scripts/{Cn2gjFFW2.chunk.js → C2ypnyI02.chunk.js} +2 -2
- package/dist/scripts/{Cn2gjFFW2.chunk.js.map → C2ypnyI02.chunk.js.map} +1 -1
- package/dist/scripts/{DJcJp7v8.chunk.js → CLk46QjF.chunk.js} +2 -2
- package/dist/scripts/{DJcJp7v8.chunk.js.map → CLk46QjF.chunk.js.map} +1 -1
- package/dist/scripts/{CetIvuh92.chunk.js → CO_jJj0j2.chunk.js} +2 -2
- package/dist/scripts/{CetIvuh92.chunk.js.map → CO_jJj0j2.chunk.js.map} +1 -1
- package/dist/scripts/{BDvsE_VK2.chunk.js → CSucqxC_2.chunk.js} +2 -2
- package/dist/scripts/{BDvsE_VK2.chunk.js.map → CSucqxC_2.chunk.js.map} +1 -1
- package/dist/scripts/{CBsl5x752.chunk.js → CTdvdzIT2.chunk.js} +2 -2
- package/dist/scripts/{CBsl5x752.chunk.js.map → CTdvdzIT2.chunk.js.map} +1 -1
- package/dist/scripts/CcjaxIhQ.chunk.js +1 -0
- package/dist/scripts/{B1oWolq8.chunk.js → Ci_TQUTp.chunk.js} +2 -2
- package/dist/scripts/{B1oWolq8.chunk.js.map → Ci_TQUTp.chunk.js.map} +1 -1
- package/dist/scripts/{DeOoaF9L.chunk.js → CzyQ8kBM.chunk.js} +2 -2
- package/dist/scripts/{DeOoaF9L.chunk.js.map → CzyQ8kBM.chunk.js.map} +1 -1
- package/dist/scripts/{DStv8HCO.chunk.js → D09t8fP0.chunk.js} +2 -2
- package/dist/scripts/{DStv8HCO.chunk.js.map → D09t8fP0.chunk.js.map} +1 -1
- package/dist/scripts/{DW99FddT2.chunk.js → DD6DxO8_2.chunk.js} +2 -2
- package/dist/scripts/{DW99FddT2.chunk.js.map → DD6DxO8_2.chunk.js.map} +1 -1
- package/dist/scripts/{D9h-ARYb2.chunk.js → DFrb5tDP2.chunk.js} +2 -2
- package/dist/scripts/{D9h-ARYb2.chunk.js.map → DFrb5tDP2.chunk.js.map} +1 -1
- package/dist/scripts/{akSezG_a2.chunk.js → DMfhvxDs2.chunk.js} +2 -2
- package/dist/scripts/{akSezG_a2.chunk.js.map → DMfhvxDs2.chunk.js.map} +1 -1
- package/dist/scripts/{BJikOj1X.chunk.js → DNRNNhy3.chunk.js} +2 -2
- package/dist/scripts/{BJikOj1X.chunk.js.map → DNRNNhy3.chunk.js.map} +1 -1
- package/dist/scripts/{Dv0X7vtO.chunk.js → DRThGgko.chunk.js} +2 -2
- package/dist/scripts/{Dv0X7vtO.chunk.js.map → DRThGgko.chunk.js.map} +1 -1
- package/dist/scripts/{CiL7Usrw.chunk.js → DTga4UBD.chunk.js} +2 -2
- package/dist/scripts/{CiL7Usrw.chunk.js.map → DTga4UBD.chunk.js.map} +1 -1
- package/dist/scripts/DfzH_ahn.chunk.js +1 -0
- package/dist/scripts/{CXKHpDxD.chunk.js → DjoLfFO8.chunk.js} +2 -2
- package/dist/scripts/{CXKHpDxD.chunk.js.map → DjoLfFO8.chunk.js.map} +1 -1
- package/dist/scripts/{Bp2lnEra.chunk.js → DjtI-11t.chunk.js} +2 -2
- package/dist/scripts/{Bp2lnEra.chunk.js.map → DjtI-11t.chunk.js.map} +1 -1
- package/dist/scripts/{Du8vq00B.chunk.js → DnC9RoGV.chunk.js} +3 -3
- package/dist/scripts/{Du8vq00B.chunk.js.map → DnC9RoGV.chunk.js.map} +1 -1
- package/dist/scripts/{BSEHFBul.chunk.js → Pvqa-Uuo.chunk.js} +2 -2
- package/dist/scripts/{BSEHFBul.chunk.js.map → Pvqa-Uuo.chunk.js.map} +1 -1
- package/dist/scripts/{2K4rAC5A2.chunk.js → XIOc3Va_2.chunk.js} +2 -2
- package/dist/scripts/{2K4rAC5A2.chunk.js.map → XIOc3Va_2.chunk.js.map} +1 -1
- package/dist/scripts/{DzJf6gXa.chunk.js → ZeBQ-OW-.chunk.js} +2 -2
- package/dist/scripts/{DzJf6gXa.chunk.js.map → ZeBQ-OW-.chunk.js.map} +1 -1
- package/dist/scripts/{app-BBppvgGe.js → app-DomX9RS2.js} +3 -3
- package/dist/scripts/{app-BBppvgGe.js.map → app-DomX9RS2.js.map} +1 -1
- package/dist/scripts/{D4W-E97s2.chunk.js → hLeAzv3u2.chunk.js} +2 -2
- package/dist/scripts/{D4W-E97s2.chunk.js.map → hLeAzv3u2.chunk.js.map} +1 -1
- package/dist/scripts/{kFxyYsah.chunk.js → kAYaBqYw.chunk.js} +2 -2
- package/dist/scripts/{kFxyYsah.chunk.js.map → kAYaBqYw.chunk.js.map} +1 -1
- package/dist/scripts/{C-W6YIv-.chunk.js → kzm6epUV.chunk.js} +2 -2
- package/dist/scripts/{C-W6YIv-.chunk.js.map → kzm6epUV.chunk.js.map} +1 -1
- package/dist/scripts/{DVmy2mN0.chunk.js → vJbbo87R.chunk.js} +2 -2
- package/dist/scripts/{DVmy2mN0.chunk.js.map → vJbbo87R.chunk.js.map} +1 -1
- package/dist/scripts/{CMdB_3nq2.chunk.js → wJ4aGP5K2.chunk.js} +2 -2
- package/dist/scripts/{CMdB_3nq2.chunk.js.map → wJ4aGP5K2.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/CkdTzI6P.chunk.js +0 -1
- package/dist/scripts/DKeKn7Hr.chunk.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DJcJp7v8.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-highlight/partial-loading/partial-video-highlight.module.scss","../../../../libs/shared/src/components/video-highlight/partial-loading/PartialVideoHighlight.tsx","../../../../libs/shared/src/components/video-highlight/thumbnail/VideoHighlightThumbnail.tsx","../../../../libs/shared/src/components/video-highlight/VideoHighlight.tsx","../../../../libs/shared/src/enums/TutorialVideoType.ts","../../../../libs/shared/src/constants/HardCoded.ts","../../../../libs/shared/src/hooks/useTutorialVideoHighlight.ts","../../src/shared/flight-requests/VideoRequests.ts","../../src/shared/flight-requests/SearchRequests.ts","../../src/apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/classroom-views-alert.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/ClassroomViewsAlert.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/school-analytics-dashboard.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/SchoolAnalyticsDashboardView.tsx"],"sourcesContent":[":local {\n .video {\n width: auto;\n height: 9rem;\n }\n\n .button {\n width: 6.25rem;\n height: 2.5rem;\n }\n\n .content {\n overflow: hidden;\n width: 49rem;\n height: 5rem;\n }\n\n .partialHighlight {\n overflow: hidden;\n width: 68.25rem;\n height: 9.2rem;\n }\n\n @media screen and (width <= 992px) {\n .video {\n overflow: hidden;\n width: auto;\n height: 100%;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n\n @media screen and (width <= 576px) {\n .partialHighlight {\n width: 23.875rem;\n height: 25.625rem;\n }\n\n .video {\n overflow: hidden;\n width: 22rem;\n height: 12.375rem;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n}\n","import React from 'react';\n\nimport styles from './partial-video-highlight.module.scss';\n\nexport function PartialVideoThumbnail() {\n return (\n <div className={`w-100 ${styles.partialHighlight}`}>\n <div className='row gx-3 h-100'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <div className={`rounded-3 ${styles.video} partial-loading-background`}/>\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className={`${styles.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}></div>\n <div>\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightThumbnailProps {\n video?: VideoTypes;\n analyticsOptions?: AnalyticsOptions;\n appLink?: AppLink;\n redirectUrl?: string;\n commonVideoProps?: CommonVideoProps;\n locationContext?: LocationContext;\n}\n\nexport function VideoHighlightThumbnail(props: VideoHighlightThumbnailProps) {\n if (props.appLink) {\n return (\n <VideoThumbnail\n video={props.video}\n commonVideoProps={props.commonVideoProps}\n appLink={props.appLink}\n analyticsOptions={{\n ...props.analyticsOptions,\n location: props.locationContext\n }}\n imageOptions={{ size: ImageSize.Medium }}\n type='static'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n alwaysShowIcon\n />\n );\n }\n\n return (\n <a\n href={props.redirectUrl}\n target='_blank'\n onClick={() => {\n AnalyticsHelper.logUserAction(\n { videoId: props.video?.id },\n { ...props.analyticsOptions, location: props.locationContext }\n );\n }}\n >\n <VideoThumbnail\n video={props.video}\n imageOptions={{ size: ImageSize.Medium }}\n type='cosmetic'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n />\n </a>\n );\n}\n","import React from 'react';\nimport { ObjectHash } from 'backbone';\n\nimport { AppLinkHelper, LocationUtils } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, ClickDescriptor, EntityType, EventVersion, LocationContext, OnboardingDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { PartialVideoThumbnail } from 'libs/shared/components/video-highlight/partial-loading/PartialVideoHighlight';\nimport { VideoHighlightThumbnail } from 'libs/shared/components/video-highlight/thumbnail/VideoHighlightThumbnail';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightProps {\n video: VideoTypes;\n subtitle?: string;\n description?: string;\n supportArticle: string;\n appLink?: Core.AppLink;\n locationContext?: LocationContext;\n commonVideoProps?: CommonVideoProps;\n redirectUrl?: string;\n sharedPlaylistAppLink?: Core.AppLink;\n redirectPlaylistUrl?: string;\n bgColorClassName?: string;\n onDismiss?: () => void;\n}\n\nconst namespace = 'shared.videoHighlight';\n\nconst dismissAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: OnboardingDescriptor.DismissWidget,\n entity: EntityType.Widget,\n eventVersion: EventVersion.V1,\n location: LocationContext.VideoHighlight,\n workflowPhase: WorkflowPhase.Complete\n};\n\nconst videoAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Thumbnail,\n location: LocationContext.VideoHighlight,\n eventVersion: EventVersion.V1\n};\n\nconst subtitleAnalyticOptions = {\n actionType: UserAction.Click,\n location: LocationContext.VideoHighlight,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.OpenInClickView,\n eventVersion: EventVersion.V1\n};\n\nconst helpArticleAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.SeeMore,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.AppLink,\n eventVersion: EventVersion.V1\n};\n\nexport function VideoHighlight(props: VideoHighlightProps) {\n if (!props.video) return <></>;\n\n function onDismissWithAnalytics() {\n AnalyticsHelper.logUserAction({ videoId: props.video?.id }, dismissAnalyticsOptions);\n props.onDismiss();\n }\n\n function onClick(\n link: Core.AppLink | string,\n analyticsOptions: AnalyticsOptions,\n analyticsData: ObjectHash = {}\n ) {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n if (typeof link === 'string') {\n LocationUtils.PageLoad(link, true);\n } else {\n AppLinkHelper.trigger(link);\n }\n }\n\n if (!props.video) {\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <PartialVideoThumbnail/>\n </div>\n );\n }\n\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <div className='row gx-3'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <VideoHighlightThumbnail\n video={props.video}\n analyticsOptions={videoAnalyticsOptions}\n appLink={props.appLink}\n redirectUrl={props.redirectUrl}\n commonVideoProps={props.commonVideoProps}\n locationContext={props.locationContext}\n />\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className='overflow-hidden mt-lg-0 mt-2'>\n <TitleSubText>\n <span\n onClick={() =>\n onClick(props.sharedPlaylistAppLink ?? props.redirectPlaylistUrl, subtitleAnalyticOptions)\n }\n className='cursor-pointer'\n >{props.subtitle}</span>\n </TitleSubText>\n <div className='h5 mb-0 clamp-1 d-block'>\n <span\n onClick={() => onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions)}\n className='cursor-pointer'\n >\n {props.video?.name}\n </span>\n </div>\n <div className='mt-1 mb-2'>{props.video?.description ?? props.description}</div>\n </div>\n <div>\n <button\n className='btn btn-dark me-2'\n onClick={() =>\n onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions, { videoId: props.video?.id })}\n >\n <Text namespace={namespace} phrase='watch'/>\n </button>\n <button\n className='btn btn-outline-dark me-2'\n onClick={() => onClick(\n props.supportArticle,\n { ...helpArticleAnalyticsOptions, location: props.locationContext },\n { url: props.supportArticle }\n )}\n >\n <Text namespace={namespace} phrase='learnMore'/>\n </button>\n <div\n className='btn btn-outline-dark d-sm-none'\n onClick={onDismissWithAnalytics}\n >\n <Text namespace={namespace} phrase='dismiss'/>\n </div>\n </div>\n </div>\n </div>\n <div className='position-absolute top-0 end-0 p-2 d-sm-inline d-none'>\n <IconButton\n svg={CloseSvg}\n onClick={onDismissWithAnalytics}\n />\n </div>\n </div>\n );\n}\n","import { SettingName } from './SettingName';\n\nexport type TutorialVideosTarget = 'cv' | 'live';\n\n// tutorial videos should be added here if they are meant to be embedded into the product\nexport enum TutorialVideoType {\n SearchAndDiscover = 'searchAndDiscover',\n Analytics = 'analytics',\n OpenClassroom = 'openClassroom',\n CreateClassroom = 'createClassroom',\n UploadVideo = 'uploadVideo',\n Playlist = 'playlist',\n ShareVideo = 'shareVideo'\n}\n\n// link to the domain options that manage video highlight visibility\nexport const dismissibleTutorialVideoTypeSettingsMapping: {[key in TutorialVideoType]: SettingName } = {\n [TutorialVideoType.Analytics]: SettingName.HasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: SettingName.HasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: SettingName.HasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: SettingName.HasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: SettingName.HasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: SettingName.HasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: SettingName.HasDismissedMyVideosTutorial\n};\n","import { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nexport const HardCoded = {\n OlympicsTopics: {\n // AU_PRIMARY\n ['18']: {\n id: 'Oq9WnjA',\n name: '2026 Milano Cortina Winter Olympic Games'\n },\n // AU_SECONDARY\n ['9']: {\n id: 'EoAYjoR',\n name: '2026 Milano Cortina Winter Olympic Games'\n }\n },\n CommonwealthGameTopics: {\n // SCT_PRIMARY\n ['12']: {\n id: 'AO0j90j',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // SCT_SECONDARY\n ['24']: {\n id: 'ZJxKkg1',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_PRIMARY\n ['16']: {\n id: 'agD7d73',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_SECONDARY\n ['47']: {\n id: 'm6mpl27',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU_PRIMARY\n ['18']: {\n id: '3bRp6eA',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU SECONDARY\n ['9']: {\n id: '7mjAxYR',\n name: 'Commonwealth Games Glasgow 2026'\n }\n },\n PublicTranscriptVideoIds: [\n '78902422',\n '8139055',\n '32102562',\n '36875667',\n '3713657',\n '9900524',\n '48278572',\n '39424302',\n '3712691',\n '54504550',\n '23852726',\n '3713563',\n '3714027',\n '51281358',\n '58785149',\n '7322586',\n '3716774',\n '36554689',\n '54192890',\n '6689791',\n '10749459',\n '3712691',\n '81764158',\n '43772092',\n '43974358',\n '48091365',\n '6430651',\n '3713735',\n '54096131',\n '57977558',\n '78840166',\n '57738254',\n '51666370',\n '49858722'\n ],\n SpecialEvents: {\n dlL00b3: {\n id: 'dlL00b3',\n iconUrl: 'https://img.clickviewapp.com/v2/covers/PGbNp0'\n }\n },\n Classifications: {\n Twig: {\n EnglandSecondary: {\n HUB: 'yrg5vYN'\n },\n ScotlandSecondary: {\n HUB: 'Y69j14M'\n },\n InternationalSecondary: {\n HUB: 'MYM6GGM'\n },\n NewZealandSecondary: {\n HUB: 'agNmRd9'\n },\n CanadaMiddle: {\n HUB: '3brl1mY'\n },\n CanadaHigh: {\n HUB: 'kZJ9vkz'\n }\n },\n Tigtag: {\n EnglandPrimary: {\n HUB: 'D1218zx',\n TIGTAG_HUB: 'odldxPJ',\n TIGTAG_JUNIOR_HUB: 'nENExnL'\n },\n ScotlandPrimary: {\n HUB: 'JjAONbj',\n TIGTAG_HUB: '3bNAGl1',\n TIGTAG_JUNIOR_HUB: 'K6GKp43'\n },\n InternationalPrimary: {\n HUB: 'W1xqbk2',\n TIGTAG_HUB: 'ek3dJr8',\n TIGTAG_JUNIOR_HUB: 'PGyKzpn'\n },\n NewZealandPrimary: {\n HUB: 'odnkREE',\n TIGTAG_HUB: 'kZJ4RPa',\n TIGTAG_JUNIOR_HUB: 'zMg80DR'\n },\n CanadaElementary: {\n HUB: 'JjabmDE',\n TIGTAG_HUB: 'dq9Ewje',\n TIGTAG_JUNIOR_HUB: 'bmElWrb'\n },\n CanadaMiddle: {\n HUB: 'dq9EwyZ',\n TIGTAG_HUB: 'K6abxjP',\n TIGTAG_JUNIOR_HUB: '7mwxLdR'\n }\n }\n },\n // Production values. For testing in development, change these to staging preso values\n PresentationIds: {\n DEFAULT: 1,\n DEFAULT_CURRICULUM: 10,\n\n AU_PRIMARY: 18,\n AU_SECONDARY: 9,\n AU_TERTIARY: 81,\n US_ELEMENTARY: 13,\n US_MIDDLE: 14,\n US_HIGH: 15,\n CA_ELEMENTARY: 100,\n CA_MIDDLE: 101,\n CA_HIGH: 102,\n STREAMABLE_LEARNING: 68,\n ENG_PRIMARY: 16,\n ENG_SECONDARY: 47,\n SCT_PRIMARY: 12,\n SCT_SECONDARY: 24,\n UK_TERTIARY: 82,\n INT_PRIMARY: 19,\n INT_SECONDARY: 21,\n NZ_PRIMARY: 96,\n NZ_SECONDARY: 97\n },\n Libraries: {\n LICENCED_CONTENT_COLLECTION: '3700633',\n\n AU_PRIMARY: '10066675',\n AU_SECONDARY: '59401330',\n AU_TERTIARY: '5836680',\n US_ELEMENTARY: '38693445',\n US_MIDDLE: '39642303',\n US_HIGH: '38693435',\n CA_ELEMENTARY: '92862332',\n CA_MIDDLE: '92862334',\n CA_HIGH: '92862344',\n STREAMABLE_LEARNING: '78688869',\n ENG_PRIMARY: '35340580',\n ENG_SECONDARY: '59889793',\n SCT_PRIMARY: '33386791',\n SCT_SECONDARY: '59856733',\n UK_TERTIARY: '5815036',\n INT_PRIMARY: '3706428',\n INT_SECONDARY: '3706459',\n NZ_PRIMARY: '3705693',\n NZ_SECONDARY: '3705710',\n NZ_MTV: '26989676',\n\n TWIG: '88117784',\n TIGTAG: '80333935'\n },\n Rostering: {\n sources: {\n 0: { name: 'Unknown', iconUrl: '' },\n 1: { name: 'Clever', iconUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd' },\n 2: { name: 'ClassLink', iconUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5' },\n 3: { name: 'Google', iconUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL' },\n 4: { name: 'Microsoft', iconUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP' },\n 5: { name: 'Schoology', iconUrl: 'https://img.clickviewapp.com/v2/logos/kZNEyz' },\n 6: { name: 'PowerSchool', iconUrl: 'https://img.clickviewapp.com/v2/logos/m6aDmR' }\n }\n },\n Images: {\n Level_1: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dlM73E',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/WAe8MP',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/raRm7E',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/3kzeZ2'\n },\n Level_2: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/WAeKvP',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/9DAZJv',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/eKG2bq',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/xyn5eP'\n },\n Level_3: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dl1d0g',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/R0Pz7A',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/8LYZ9R',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/nKDyRj'\n },\n Level_4: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/vYJPP5',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/PGPLLP'\n },\n TOPIC_DEFAULT_BANNER: 'https://img.clickviewapp.com/v2/banners/yKvoG0',\n STREAMABLE_TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/q6gnOn',\n STREAMABLE_TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/age95g'\n },\n Onboarding: {\n Playlist: {\n COVER_FILE_ID: 'G149g3',\n BANNER_FILE_ID: 'bmPLkn'\n },\n LOADING_THUMBNAILS: [\n 'https://img.clickviewapp.com/v2/thumbnails/7m34ne',\n 'https://img.clickviewapp.com/v2/thumbnails/W1bjqJ',\n 'https://img.clickviewapp.com/v2/thumbnails/G14M1e',\n 'https://img.clickviewapp.com/v2/thumbnails/2mnv5x',\n 'https://img.clickviewapp.com/v2/thumbnails/xAEG91',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbyg',\n 'https://img.clickviewapp.com/v2/thumbnails/W13emP',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6j2vy',\n 'https://img.clickviewapp.com/v2/thumbnails/W1MJGE',\n 'https://img.clickviewapp.com/v2/thumbnails/OqDJqG',\n 'https://img.clickviewapp.com/v2/thumbnails/1My9Wn',\n 'https://img.clickviewapp.com/v2/thumbnails/G14MRe',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgKpl',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbp9',\n 'https://img.clickviewapp.com/v2/thumbnails/G147R1',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgMz5',\n 'https://img.clickviewapp.com/v2/thumbnails/G14Me5',\n 'https://img.clickviewapp.com/v2/thumbnails/5bEovE',\n 'https://img.clickviewapp.com/v2/thumbnails/odY4oZ',\n 'https://img.clickviewapp.com/v2/thumbnails/yrqwqD',\n 'https://img.clickviewapp.com/v2/thumbnails/K6pOmR',\n 'https://img.clickviewapp.com/v2/thumbnails/vYK3w4',\n 'https://img.clickviewapp.com/v2/thumbnails/agnD88',\n 'https://img.clickviewapp.com/v2/thumbnails/4rKmp7',\n 'https://img.clickviewapp.com/v2/thumbnails/0wM4r3',\n 'https://img.clickviewapp.com/v2/thumbnails/69A2jO',\n 'https://img.clickviewapp.com/v2/thumbnails/7m3Z3e',\n 'https://img.clickviewapp.com/v2/thumbnails/3bGL94',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6jwLo',\n 'https://img.clickviewapp.com/v2/thumbnails/1MyPby'\n ]\n },\n Tutorial: {\n cv: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '106743306',\n SHARE: 'DYXNQP'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '106743114',\n SHARE: 'DvwPAL'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '106735465',\n SHARE: 'D6VOJX'\n }\n }\n },\n live: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n }\n }\n }\n },\n TutorialVideoHighlight: {\n analytics: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107356113',\n SHARE: 'DNYxnm'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107239339',\n SHARE: 'GmQgWQ'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107324974',\n SHARE: 'bAKL6d'\n }\n }\n },\n searchAndDiscover: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107310200',\n SHARE: 'Gp92A7'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107219457',\n SHARE: 'GMY10v'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107418074',\n SHARE: 'GgwWvY'\n }\n }\n },\n openClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302736',\n SHARE: 'Dkrvan'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106898400',\n SHARE: 'Da9YRX'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898583',\n SHARE: 'G2Vxrk'\n }\n }\n },\n createClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633076',\n SHARE: 'G2Vxvp'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107239329',\n SHARE: 'b9dp00'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107232174',\n SHARE: 'DYgRdV'\n }\n }\n },\n uploadVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302713',\n SHARE: 'byNpd8'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106826031',\n SHARE: 'GmQgXQ'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898590',\n SHARE: 'D6AgER'\n }\n }\n },\n playlist: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107357318',\n SHARE: 'DKYdz7'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107221344',\n SHARE: 'Gp92ay'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107221972',\n SHARE: 'GR9RxO'\n }\n }\n },\n shareVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302709',\n SHARE: 'bwgdNk'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106826023',\n SHARE: 'DvwPYO'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898587',\n SHARE: 'bzr05K'\n }\n }\n },\n welcomeToClickView: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095344',\n SHARE: 'DaalVQ'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302715',\n SHARE: 'DEleZo'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107148652',\n SHARE: 'GR9RZL'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107162361',\n SHARE: 'G084Qg'\n }\n }\n },\n welcomeToClickViewLive: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107493452',\n SHARE: 'bnp63m'\n }\n }\n }\n },\n UpsellVideo: {\n CLICKVIEW: 'https://static.clickview.com.au/video-banners/clickview-banner.mp4'\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { dismissibleTutorialVideoTypeSettingsMapping, TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\ninterface PlaylistIdsProps {\n PLAYLIST: string;\n SHARE: string;\n}\n\ninterface VideoIdsProps {\n VIDEO: string;\n SHARE: string;\n}\n\nexport interface TutorialVideoHighlightContext {\n shouldShowVideo: boolean;\n tutorialVideo: Flight.Response<VideoTypes>;\n videoIds: VideoIdsProps;\n playlistIds: PlaylistIdsProps;\n hasDismissedVideoHighlight?: boolean;\n dismissVideoHighlight?: () => Promise<void>;\n}\n\nexport function useTutorialVideoHighlight(\n type: TutorialVideoType,\n requireDismissal: boolean = true\n): TutorialVideoHighlightContext {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const ids = config.data?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[type].staging :\n HardCoded.TutorialVideoHighlight[type].production;\n const videoIds = ids[instanceRegion as keyof typeof ids];\n\n const playlistIds = (config.data?.liteUrl.includes('staging') ?\n HardCoded.Tutorial.cv.staging[instanceRegion] :\n HardCoded.Tutorial.cv.production[instanceRegion]) || { PLAYLIST: '', SHARE: '' };\n\n const { hasPermissions, isLoaded: isPermissionLoaded } = usePermissions();\n\n // if the user is not signed in or not a student, this should fetch the video\n const shouldShowVideo =\n instanceRegion && videoIds !== undefined &&\n isPermissionLoaded &&\n !hasPermissions(PermissionName.StudentExperience);\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n shouldShowVideo &&\n VideoRequests.sharedVideo(videoIds.VIDEO, videoIds.SHARE)\n );\n\n const settings = useSettings(LocationContext.VideoHighlight);\n\n if (!requireDismissal || !Object.keys(dismissibleTutorialVideoTypeSettingsMapping).includes(type)) {\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds\n };\n }\n\n const tutorialSettingsMap = {\n [TutorialVideoType.Analytics]: settings.hasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: settings.hasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: settings.hasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: settings.hasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: settings.hasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: settings.hasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: settings.hasDismissedMyVideosTutorial\n };\n \n const settingName = dismissibleTutorialVideoTypeSettingsMapping[type as TutorialVideoType];\n\n const dismissVideoHighlight = async () => {\n if (!Object.keys(tutorialSettingsMap).includes(type) || !settingName) return;\n await settings.updateUserSettingAsync({\n name: settingName,\n value: true,\n kind: SettingKind.Setting\n });\n };\n\n const hasDismissedVideoHighlight = tutorialSettingsMap[type as keyof typeof tutorialSettingsMap] ?? null;\n\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds,\n hasDismissedVideoHighlight,\n dismissVideoHighlight\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nexport const VideoRequests = {\n video(\n id: string,\n shareId?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'thumbnail',\n shareId\n }),\n key: `video:${id}`\n };\n }\n};\n","import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopSearch } from 'shared/interfaces';\n\nexport const SearchRequests = {\n topSearches(\n filter: AnalyticsRequestFilter,\n success?: (data: TopSearch[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/search/top', filter),\n key: getAnalyticsRequestKey('top:searches', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topSearchesCardEmptyStateV2';\n\nexport function TopSearchesCardEmptyStateV2() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopSearchesCardV2() {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'> </div>\n\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-50'> </div>\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-100'> </div>\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-75'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-100'> </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\n\nimport { SearchRequests } from 'shared/flight-requests/SearchRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopSearch } from 'shared/interfaces';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\n\nimport { TopSearchesCardEmptyStateV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2';\nimport { PartialTopSearchesCardV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2';\n\nconst namespace = 'reportsDashboard.topSearchesCardV2';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopSearchesCardV2View() {\n const requestFilter = useGetRequestFilter('search');\n\n const searches = Flight.useBasicFetch<TopSearch[]>(SearchRequests.topSearches(requestFilter));\n\n const getSearchUrl = useGetExternalUrl(ExternalRouteHelper.getPrimarySearchUrl);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {searches.data ? (\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='topSearches' /></h2>\n\n {searches.data.length ?\n <>\n <Scrollbars className='position-relative'>\n <ol className='position-absolute w-100 ps-4'>\n {searches.data.map((s, idx) => {\n return (\n <li\n key={idx}\n className='mb-3'\n >\n <a\n href={getSearchUrl(s.query)}\n target='_blank'\n className='position-relative d-flex justify-content-between align-items-center pe-5'\n >\n <span>\n {s.query}\n </span>\n <div className='position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3'>\n <SvgContainer svg={NewWindowSvg} />\n </div>\n </a>\n </li>\n );\n })}\n </ol>\n </Scrollbars>\n </> :\n <TopSearchesCardEmptyStateV2 />\n }\n </>\n ) : <PartialTopSearchesCardV2 />}\n </div>\n );\n}\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topStreamsCardEmptyState';\n\nexport function TopStreamsCardEmptyState() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopStreamsCard(): JSX.Element {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'> </div>\n\n <div className='position-relative'>\n <ul className='list-unstyled position-absolute top-0 start-0 w-100 h-100'>\n {Array(10).fill(null).map((_, i) => (\n <li key={i} className='mb-3'>\n <div className='row g-0'>\n <div className='col-5'>\n <div className='ratio ratio-16x9 rounded partial-loading-background' />\n </div>\n <div className='col-7 d-flex align-items-center'>\n <div className='mx-2 w-100'>\n <div className='w-100 partial-loading-background mb-1'> </div>\n <div className='w-75 partial-loading-background'> </div>\n </div>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { TopStreamsCardEmptyState } from 'apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState';\nimport { PartialTopStreamsCard } from 'apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard';\n\nconst namespace = 'reportsDashboard.topStreamsCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 10;\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopStreamsCardView() {\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3'>\n {hasLoaded ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{getPhrase('topVideos')}</h2>\n <AppLink\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS }}\n className='text-info'\n >\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n </div>\n\n {videos.itemsArr?.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <ul className='list-unstyled'>\n {topStreams.data.map(stream => {\n const video = videos.items[stream.objectId];\n\n if (!video)\n return;\n\n return (\n <li key={video.id} className='mb-3'>\n <AppLink appLink={getSchoolVideoAppLink(video, filterQueryParams)}>\n <div className='row g-0'>\n <div className='col-5'>\n <VideoThumbnail\n video={video}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n size='sm'\n />\n </div>\n <div className='col-7'>\n <div className='d-flex flex-column mx-2'>\n {VideoHelper.isVideoType(video) && (\n <VideoSubText\n type='series'\n video={video}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='clamp-2 fw-medium'>\n {video.name}\n </span>\n <Text namespace={namespace} phrase='views' options={{ smartCount: stream.combinedCount }} />\n </div>\n </div>\n </div>\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n </Scrollbars> :\n <TopStreamsCardEmptyState />\n }\n </> :\n <PartialTopStreamsCard />\n }\n </div>\n );\n}\n",".cogIcon {\n cursor: pointer;\n color: $gray-900;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CogSvg } from 'libs/shared/images/svg/objects/CogSvg';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useClassroomViewsAlert } from 'shared/hooks/useClassroomViewsAlert';\n\nimport styles from './classroom-views-alert.module.scss';\n\nconst namespace = 'reportsDashboard.classroomViewsAlert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomViewsAlertProps {\n hasClassroomViews: boolean;\n}\n\nexport function ClassroomViewsAlert(props: ClassroomViewsAlertProps): JSX.Element | null {\n const { alertVariant, dismissAlert } = useClassroomViewsAlert(props.hasClassroomViews);\n\n if (alertVariant === 'none')\n return null;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2'>\n <div className='d-flex align-items-center gap-1 ms-1'>\n {alertVariant === 'info' ? <InfoBannerContent /> : <ReminderBannerContent />}\n </div>\n <IconButton svg={CloseSvg} className='text-blue' onClick={dismissAlert} />\n </div>\n );\n}\n\nfunction SettingsCog(): JSX.Element {\n return (\n <IconButton\n customSize\n svg={CogSvg}\n svgSize={SvgContainerSize.Standard}\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }}\n className={styles.cogIcon}\n tooltip={getPhrase('settingsTitle')}\n tooltipTrigger={['hover']}\n ariaLabel={getPhrase('settingsTitle')}\n />\n );\n}\n\nfunction InfoBannerContent(): JSX.Element {\n return (\n <>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <SettingsCog />\n <Text namespace={namespace} phrase='description' />\n <a className='text-info' href={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomViews)} target='_blank' rel='noopener noreferrer'>\n <Text namespace={namespace} phrase='link' />\n </a>\n </>\n );\n}\n\nfunction ReminderBannerContent(): JSX.Element {\n return (\n <>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <SettingsCog />\n <Text namespace={namespace} phrase='reminderDescription' />\n <AppLink appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }} className='text-info hover-text-underline'>\n <Text namespace={namespace} phrase='reminderLink' />\n </AppLink>\n </>\n );\n}\n",":local {\n .topRow {\n min-height: 25rem;\n }\n\n .barChart {\n flex: 1 0;\n min-width: 0;\n }\n\n .videoViews {\n flex: 2 0;\n min-width: 0;\n }\n\n .bottomRow {\n min-height: 27rem;\n }\n\n .bottomColumn {\n flex: 1 0;\n min-width: 0;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoHighlight } from 'libs/shared/components/video-highlight/VideoHighlight';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { useTutorialVideoHighlight } from 'libs/shared/hooks/useTutorialVideoHighlight';\nimport { Config } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\nimport { StreamsBarChartCardView } from 'shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView';\nimport { StreamsChartCardView } from 'shared/views/overview-cards/streams-chart-card/StreamsChartCardView';\nimport { TopClassificationsCardView } from 'shared/views/overview-cards/top-classifications-card/TopClassificationsCardView';\n\nimport { TopSearchesCardV2View } from 'apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View';\nimport { TopStreamsCardView } from 'apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView';\n\nimport { ClassroomViewsAlert } from './components/classroom-views-alert/ClassroomViewsAlert';\n\nimport styles from './school-analytics-dashboard.module.scss';\n\nconst TOP_CLASSIFICATIONS_LIMIT = 10;\n\nconst namespace = 'reportsDashboard.schoolAnalyticsDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolAnalyticsDashboardView(): JSX.Element {\n const isTertiary = useIsTertiary();\n const { hasStudentReach } =\n useSettings(LocationContext.VideoHighlight);\n\n const header = isTertiary ? getPhrase('tertiaryDashboard') : getPhrase('dashboard');\n const { shouldShowVideo, videoIds, playlistIds, hasDismissedVideoHighlight, dismissVideoHighlight } =\n useTutorialVideoHighlight(TutorialVideoType.Analytics);\n\n const tutorialVideo = Flight.useBasicFetch(\n shouldShowVideo &&\n VideoRequests.video(videoIds.VIDEO, videoIds.SHARE)\n );\n const getObjectUrl = useGetExternalUrl(ExternalRouteHelper.getPrimaryObjectUrl);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const playlistUrl = ExternalRouteHelper.getSharePlaylistUrl({\n id: ProductId.Primary,\n order: 0,\n name: '',\n url: config.data?.liteUrl,\n imageUrl: ''\n }, playlistIds?.SHARE);\n\n useSetPageMetadata({ title: header });\n useSetHeaderTitle(header);\n\n return (\n <div className='d-flex flex-column gap-3'>\n <ClassroomViewsAlert hasClassroomViews={hasStudentReach} />\n {tutorialVideo?.data && !hasDismissedVideoHighlight &&\n <VideoHighlight\n video={tutorialVideo?.data}\n subtitle={getPhrase('videoHighlightSubtitle')}\n description={getPhrase('videoHighlightDescription')}\n bgColorClassName='bg-light-blue'\n supportArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomAnalytics)}\n onDismiss={dismissVideoHighlight}\n redirectUrl={getObjectUrl(tutorialVideo?.data)}\n redirectPlaylistUrl={playlistUrl}\n locationContext={LocationContext.VideoHighlight}\n />\n }\n <div className={`d-flex gap-3 ${styles.topRow}`}>\n <div className={styles.barChart}>\n <StreamsBarChartCardView\n type='year_group'\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n />\n </div>\n <div className={styles.videoViews}>\n <StreamsChartCardView type='user_type' />\n </div>\n </div>\n <div className={`d-flex gap-3 ${styles.bottomRow}`}>\n <div className={styles.bottomColumn}>\n <TopStreamsCardView />\n </div>\n <div className={styles.bottomColumn}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('subjects')}\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.bottomColumn}>\n <TopSearchesCardV2View />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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ACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACD,KAAM,CACJ,QAAS,EACN,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACF,CACD,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,WAAY,CACV,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT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"}
|
|
1
|
+
{"version":3,"file":"CLk46QjF.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-highlight/partial-loading/partial-video-highlight.module.scss","../../../../libs/shared/src/components/video-highlight/partial-loading/PartialVideoHighlight.tsx","../../../../libs/shared/src/components/video-highlight/thumbnail/VideoHighlightThumbnail.tsx","../../../../libs/shared/src/components/video-highlight/VideoHighlight.tsx","../../../../libs/shared/src/enums/TutorialVideoType.ts","../../../../libs/shared/src/constants/HardCoded.ts","../../../../libs/shared/src/hooks/useTutorialVideoHighlight.ts","../../src/shared/flight-requests/VideoRequests.ts","../../src/shared/flight-requests/SearchRequests.ts","../../src/apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/classroom-views-alert.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/ClassroomViewsAlert.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/school-analytics-dashboard.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/SchoolAnalyticsDashboardView.tsx"],"sourcesContent":[":local {\n .video {\n width: auto;\n height: 9rem;\n }\n\n .button {\n width: 6.25rem;\n height: 2.5rem;\n }\n\n .content {\n overflow: hidden;\n width: 49rem;\n height: 5rem;\n }\n\n .partialHighlight {\n overflow: hidden;\n width: 68.25rem;\n height: 9.2rem;\n }\n\n @media screen and (width <= 992px) {\n .video {\n overflow: hidden;\n width: auto;\n height: 100%;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n\n @media screen and (width <= 576px) {\n .partialHighlight {\n width: 23.875rem;\n height: 25.625rem;\n }\n\n .video {\n overflow: hidden;\n width: 22rem;\n height: 12.375rem;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n}\n","import React from 'react';\n\nimport styles from './partial-video-highlight.module.scss';\n\nexport function PartialVideoThumbnail() {\n return (\n <div className={`w-100 ${styles.partialHighlight}`}>\n <div className='row gx-3 h-100'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <div className={`rounded-3 ${styles.video} partial-loading-background`}/>\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className={`${styles.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}></div>\n <div>\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightThumbnailProps {\n video?: VideoTypes;\n analyticsOptions?: AnalyticsOptions;\n appLink?: AppLink;\n redirectUrl?: string;\n commonVideoProps?: CommonVideoProps;\n locationContext?: LocationContext;\n}\n\nexport function VideoHighlightThumbnail(props: VideoHighlightThumbnailProps) {\n if (props.appLink) {\n return (\n <VideoThumbnail\n video={props.video}\n commonVideoProps={props.commonVideoProps}\n appLink={props.appLink}\n analyticsOptions={{\n ...props.analyticsOptions,\n location: props.locationContext\n }}\n imageOptions={{ size: ImageSize.Medium }}\n type='static'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n alwaysShowIcon\n />\n );\n }\n\n return (\n <a\n href={props.redirectUrl}\n target='_blank'\n onClick={() => {\n AnalyticsHelper.logUserAction(\n { videoId: props.video?.id },\n { ...props.analyticsOptions, location: props.locationContext }\n );\n }}\n >\n <VideoThumbnail\n video={props.video}\n imageOptions={{ size: ImageSize.Medium }}\n type='cosmetic'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n />\n </a>\n );\n}\n","import React from 'react';\nimport { ObjectHash } from 'backbone';\n\nimport { AppLinkHelper, LocationUtils } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, ClickDescriptor, EntityType, EventVersion, LocationContext, OnboardingDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { PartialVideoThumbnail } from 'libs/shared/components/video-highlight/partial-loading/PartialVideoHighlight';\nimport { VideoHighlightThumbnail } from 'libs/shared/components/video-highlight/thumbnail/VideoHighlightThumbnail';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightProps {\n video: VideoTypes;\n subtitle?: string;\n description?: string;\n supportArticle: string;\n appLink?: Core.AppLink;\n locationContext?: LocationContext;\n commonVideoProps?: CommonVideoProps;\n redirectUrl?: string;\n sharedPlaylistAppLink?: Core.AppLink;\n redirectPlaylistUrl?: string;\n bgColorClassName?: string;\n onDismiss?: () => void;\n}\n\nconst namespace = 'shared.videoHighlight';\n\nconst dismissAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: OnboardingDescriptor.DismissWidget,\n entity: EntityType.Widget,\n eventVersion: EventVersion.V1,\n location: LocationContext.VideoHighlight,\n workflowPhase: WorkflowPhase.Complete\n};\n\nconst videoAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Thumbnail,\n location: LocationContext.VideoHighlight,\n eventVersion: EventVersion.V1\n};\n\nconst subtitleAnalyticOptions = {\n actionType: UserAction.Click,\n location: LocationContext.VideoHighlight,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.OpenInClickView,\n eventVersion: EventVersion.V1\n};\n\nconst helpArticleAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.SeeMore,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.AppLink,\n eventVersion: EventVersion.V1\n};\n\nexport function VideoHighlight(props: VideoHighlightProps) {\n if (!props.video) return <></>;\n\n function onDismissWithAnalytics() {\n AnalyticsHelper.logUserAction({ videoId: props.video?.id }, dismissAnalyticsOptions);\n props.onDismiss();\n }\n\n function onClick(\n link: Core.AppLink | string,\n analyticsOptions: AnalyticsOptions,\n analyticsData: ObjectHash = {}\n ) {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n if (typeof link === 'string') {\n LocationUtils.PageLoad(link, true);\n } else {\n AppLinkHelper.trigger(link);\n }\n }\n\n if (!props.video) {\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <PartialVideoThumbnail/>\n </div>\n );\n }\n\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <div className='row gx-3'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <VideoHighlightThumbnail\n video={props.video}\n analyticsOptions={videoAnalyticsOptions}\n appLink={props.appLink}\n redirectUrl={props.redirectUrl}\n commonVideoProps={props.commonVideoProps}\n locationContext={props.locationContext}\n />\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className='overflow-hidden mt-lg-0 mt-2'>\n <TitleSubText>\n <span\n onClick={() =>\n onClick(props.sharedPlaylistAppLink ?? props.redirectPlaylistUrl, subtitleAnalyticOptions)\n }\n className='cursor-pointer'\n >{props.subtitle}</span>\n </TitleSubText>\n <div className='h5 mb-0 clamp-1 d-block'>\n <span\n onClick={() => onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions)}\n className='cursor-pointer'\n >\n {props.video?.name}\n </span>\n </div>\n <div className='mt-1 mb-2'>{props.video?.description ?? props.description}</div>\n </div>\n <div>\n <button\n className='btn btn-dark me-2'\n onClick={() =>\n onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions, { videoId: props.video?.id })}\n >\n <Text namespace={namespace} phrase='watch'/>\n </button>\n <button\n className='btn btn-outline-dark me-2'\n onClick={() => onClick(\n props.supportArticle,\n { ...helpArticleAnalyticsOptions, location: props.locationContext },\n { url: props.supportArticle }\n )}\n >\n <Text namespace={namespace} phrase='learnMore'/>\n </button>\n <div\n className='btn btn-outline-dark d-sm-none'\n onClick={onDismissWithAnalytics}\n >\n <Text namespace={namespace} phrase='dismiss'/>\n </div>\n </div>\n </div>\n </div>\n <div className='position-absolute top-0 end-0 p-2 d-sm-inline d-none'>\n <IconButton\n svg={CloseSvg}\n onClick={onDismissWithAnalytics}\n />\n </div>\n </div>\n );\n}\n","import { SettingName } from './SettingName';\n\nexport type TutorialVideosTarget = 'cv' | 'live';\n\n// tutorial videos should be added here if they are meant to be embedded into the product\nexport enum TutorialVideoType {\n SearchAndDiscover = 'searchAndDiscover',\n Analytics = 'analytics',\n OpenClassroom = 'openClassroom',\n CreateClassroom = 'createClassroom',\n UploadVideo = 'uploadVideo',\n Playlist = 'playlist',\n ShareVideo = 'shareVideo'\n}\n\n// link to the domain options that manage video highlight visibility\nexport const dismissibleTutorialVideoTypeSettingsMapping: {[key in TutorialVideoType]: SettingName } = {\n [TutorialVideoType.Analytics]: SettingName.HasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: SettingName.HasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: SettingName.HasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: SettingName.HasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: SettingName.HasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: SettingName.HasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: SettingName.HasDismissedMyVideosTutorial\n};\n","import { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nexport const HardCoded = {\n OlympicsTopics: {\n // AU_PRIMARY\n ['18']: {\n id: 'Oq9WnjA',\n name: '2026 Milano Cortina Winter Olympic Games'\n },\n // AU_SECONDARY\n ['9']: {\n id: 'EoAYjoR',\n name: '2026 Milano Cortina Winter Olympic Games'\n }\n },\n CommonwealthGameTopics: {\n // SCT_PRIMARY\n ['12']: {\n id: 'AO0j90j',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // SCT_SECONDARY\n ['24']: {\n id: 'ZJxKkg1',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_PRIMARY\n ['16']: {\n id: 'agD7d73',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_SECONDARY\n ['47']: {\n id: 'm6mpl27',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU_PRIMARY\n ['18']: {\n id: '3bRp6eA',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU SECONDARY\n ['9']: {\n id: '7mjAxYR',\n name: 'Commonwealth Games Glasgow 2026'\n }\n },\n PublicTranscriptVideoIds: [\n '78902422',\n '8139055',\n '32102562',\n '36875667',\n '3713657',\n '9900524',\n '48278572',\n '39424302',\n '3712691',\n '54504550',\n '23852726',\n '3713563',\n '3714027',\n '51281358',\n '58785149',\n '7322586',\n '3716774',\n '36554689',\n '54192890',\n '6689791',\n '10749459',\n '3712691',\n '81764158',\n '43772092',\n '43974358',\n '48091365',\n '6430651',\n '3713735',\n '54096131',\n '57977558',\n '78840166',\n '57738254',\n '51666370',\n '49858722'\n ],\n SpecialEvents: {\n dlL00b3: {\n id: 'dlL00b3',\n iconUrl: 'https://img.clickviewapp.com/v2/covers/PGbNp0'\n }\n },\n Classifications: {\n Twig: {\n EnglandSecondary: {\n HUB: 'yrg5vYN'\n },\n ScotlandSecondary: {\n HUB: 'Y69j14M'\n },\n InternationalSecondary: {\n HUB: 'MYM6GGM'\n },\n NewZealandSecondary: {\n HUB: 'agNmRd9'\n },\n CanadaMiddle: {\n HUB: '3brl1mY'\n },\n CanadaHigh: {\n HUB: 'kZJ9vkz'\n }\n },\n Tigtag: {\n EnglandPrimary: {\n HUB: 'D1218zx',\n TIGTAG_HUB: 'odldxPJ',\n TIGTAG_JUNIOR_HUB: 'nENExnL'\n },\n ScotlandPrimary: {\n HUB: 'JjAONbj',\n TIGTAG_HUB: '3bNAGl1',\n TIGTAG_JUNIOR_HUB: 'K6GKp43'\n },\n InternationalPrimary: {\n HUB: 'W1xqbk2',\n TIGTAG_HUB: 'ek3dJr8',\n TIGTAG_JUNIOR_HUB: 'PGyKzpn'\n },\n NewZealandPrimary: {\n HUB: 'odnkREE',\n TIGTAG_HUB: 'kZJ4RPa',\n TIGTAG_JUNIOR_HUB: 'zMg80DR'\n },\n CanadaElementary: {\n HUB: 'JjabmDE',\n TIGTAG_HUB: 'dq9Ewje',\n TIGTAG_JUNIOR_HUB: 'bmElWrb'\n },\n CanadaMiddle: {\n HUB: 'dq9EwyZ',\n TIGTAG_HUB: 'K6abxjP',\n TIGTAG_JUNIOR_HUB: '7mwxLdR'\n }\n }\n },\n // Production values. For testing in development, change these to staging preso values\n PresentationIds: {\n DEFAULT: 1,\n DEFAULT_CURRICULUM: 10,\n\n AU_PRIMARY: 18,\n AU_SECONDARY: 9,\n AU_TERTIARY: 81,\n US_ELEMENTARY: 13,\n US_MIDDLE: 14,\n US_HIGH: 15,\n CA_ELEMENTARY: 100,\n CA_MIDDLE: 101,\n CA_HIGH: 102,\n STREAMABLE_LEARNING: 68,\n ENG_PRIMARY: 16,\n ENG_SECONDARY: 47,\n SCT_PRIMARY: 12,\n SCT_SECONDARY: 24,\n UK_TERTIARY: 82,\n INT_PRIMARY: 19,\n INT_SECONDARY: 21,\n NZ_PRIMARY: 96,\n NZ_SECONDARY: 97\n },\n Libraries: {\n LICENCED_CONTENT_COLLECTION: '3700633',\n\n AU_PRIMARY: '10066675',\n AU_SECONDARY: '59401330',\n AU_TERTIARY: '5836680',\n US_ELEMENTARY: '38693445',\n US_MIDDLE: '39642303',\n US_HIGH: '38693435',\n CA_ELEMENTARY: '92862332',\n CA_MIDDLE: '92862334',\n CA_HIGH: '92862344',\n STREAMABLE_LEARNING: '78688869',\n ENG_PRIMARY: '35340580',\n ENG_SECONDARY: '59889793',\n SCT_PRIMARY: '33386791',\n SCT_SECONDARY: '59856733',\n UK_TERTIARY: '5815036',\n INT_PRIMARY: '3706428',\n INT_SECONDARY: '3706459',\n NZ_PRIMARY: '3705693',\n NZ_SECONDARY: '3705710',\n NZ_MTV: '26989676',\n\n TWIG: '88117784',\n TIGTAG: '80333935'\n },\n Rostering: {\n sources: {\n 0: { name: 'Unknown', iconUrl: '' },\n 1: { name: 'Clever', iconUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd' },\n 2: { name: 'ClassLink', iconUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5' },\n 3: { name: 'Google', iconUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL' },\n 4: { name: 'Microsoft', iconUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP' },\n 5: { name: 'Schoology', iconUrl: 'https://img.clickviewapp.com/v2/logos/kZNEyz' },\n 6: { name: 'PowerSchool', iconUrl: 'https://img.clickviewapp.com/v2/logos/m6aDmR' }\n }\n },\n Images: {\n Level_1: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dlM73E',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/WAe8MP',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/raRm7E',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/3kzeZ2'\n },\n Level_2: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/WAeKvP',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/9DAZJv',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/eKG2bq',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/xyn5eP'\n },\n Level_3: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dl1d0g',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/R0Pz7A',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/8LYZ9R',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/nKDyRj'\n },\n Level_4: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/vYJPP5',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/PGPLLP'\n },\n TOPIC_DEFAULT_BANNER: 'https://img.clickviewapp.com/v2/banners/yKvoG0',\n STREAMABLE_TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/q6gnOn',\n STREAMABLE_TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/age95g'\n },\n Onboarding: {\n Playlist: {\n COVER_FILE_ID: 'G149g3',\n BANNER_FILE_ID: 'bmPLkn'\n },\n LOADING_THUMBNAILS: [\n 'https://img.clickviewapp.com/v2/thumbnails/7m34ne',\n 'https://img.clickviewapp.com/v2/thumbnails/W1bjqJ',\n 'https://img.clickviewapp.com/v2/thumbnails/G14M1e',\n 'https://img.clickviewapp.com/v2/thumbnails/2mnv5x',\n 'https://img.clickviewapp.com/v2/thumbnails/xAEG91',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbyg',\n 'https://img.clickviewapp.com/v2/thumbnails/W13emP',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6j2vy',\n 'https://img.clickviewapp.com/v2/thumbnails/W1MJGE',\n 'https://img.clickviewapp.com/v2/thumbnails/OqDJqG',\n 'https://img.clickviewapp.com/v2/thumbnails/1My9Wn',\n 'https://img.clickviewapp.com/v2/thumbnails/G14MRe',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgKpl',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbp9',\n 'https://img.clickviewapp.com/v2/thumbnails/G147R1',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgMz5',\n 'https://img.clickviewapp.com/v2/thumbnails/G14Me5',\n 'https://img.clickviewapp.com/v2/thumbnails/5bEovE',\n 'https://img.clickviewapp.com/v2/thumbnails/odY4oZ',\n 'https://img.clickviewapp.com/v2/thumbnails/yrqwqD',\n 'https://img.clickviewapp.com/v2/thumbnails/K6pOmR',\n 'https://img.clickviewapp.com/v2/thumbnails/vYK3w4',\n 'https://img.clickviewapp.com/v2/thumbnails/agnD88',\n 'https://img.clickviewapp.com/v2/thumbnails/4rKmp7',\n 'https://img.clickviewapp.com/v2/thumbnails/0wM4r3',\n 'https://img.clickviewapp.com/v2/thumbnails/69A2jO',\n 'https://img.clickviewapp.com/v2/thumbnails/7m3Z3e',\n 'https://img.clickviewapp.com/v2/thumbnails/3bGL94',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6jwLo',\n 'https://img.clickviewapp.com/v2/thumbnails/1MyPby'\n ]\n },\n Tutorial: {\n cv: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '106743306',\n SHARE: 'DYXNQP'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '106743114',\n SHARE: 'DvwPAL'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '106735465',\n SHARE: 'D6VOJX'\n }\n }\n },\n live: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92210048',\n SHARE: 'DXvWdB'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '107404226',\n SHARE: 'bnp6en'\n }\n }\n }\n },\n TutorialVideoHighlight: {\n analytics: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107356113',\n SHARE: 'DNYxnm'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107239339',\n SHARE: 'GmQgWQ'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107324974',\n SHARE: 'bAKL6d'\n }\n }\n },\n searchAndDiscover: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107310200',\n SHARE: 'Gp92A7'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107219457',\n SHARE: 'GMY10v'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107418074',\n SHARE: 'GgwWvY'\n }\n }\n },\n openClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302736',\n SHARE: 'Dkrvan'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106898400',\n SHARE: 'Da9YRX'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898583',\n SHARE: 'G2Vxrk'\n }\n }\n },\n createClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633076',\n SHARE: 'G2Vxvp'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107239329',\n SHARE: 'b9dp00'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107232174',\n SHARE: 'DYgRdV'\n }\n }\n },\n uploadVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302713',\n SHARE: 'byNpd8'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106826031',\n SHARE: 'GmQgXQ'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898590',\n SHARE: 'D6AgER'\n }\n }\n },\n playlist: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107357318',\n SHARE: 'DKYdz7'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107221344',\n SHARE: 'Gp92ay'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107221972',\n SHARE: 'GR9RxO'\n }\n }\n },\n shareVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302709',\n SHARE: 'bwgdNk'\n },\n [InstanceRegion.AU]: {\n VIDEO: '106826023',\n SHARE: 'DvwPYO'\n },\n [InstanceRegion.UK]: {\n VIDEO: '106898587',\n SHARE: 'bzr05K'\n }\n }\n },\n welcomeToClickView: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095344',\n SHARE: 'DaalVQ'\n },\n [InstanceRegion.AU]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n },\n [InstanceRegion.UK]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '106302715',\n SHARE: 'DEleZo'\n },\n [InstanceRegion.AU]: {\n VIDEO: '107148652',\n SHARE: 'GR9RZL'\n },\n [InstanceRegion.UK]: {\n VIDEO: '107162361',\n SHARE: 'G084Qg'\n }\n }\n },\n welcomeToClickViewLive: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '107493452',\n SHARE: 'bnp63m'\n }\n }\n }\n },\n UpsellVideo: {\n CLICKVIEW: 'https://static.clickview.com.au/video-banners/clickview-banner.mp4'\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { dismissibleTutorialVideoTypeSettingsMapping, TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\ninterface PlaylistIdsProps {\n PLAYLIST: string;\n SHARE: string;\n}\n\ninterface VideoIdsProps {\n VIDEO: string;\n SHARE: string;\n}\n\nexport interface TutorialVideoHighlightContext {\n shouldShowVideo: boolean;\n tutorialVideo: Flight.Response<VideoTypes>;\n videoIds: VideoIdsProps;\n playlistIds: PlaylistIdsProps;\n hasDismissedVideoHighlight?: boolean;\n dismissVideoHighlight?: () => Promise<void>;\n}\n\nexport function useTutorialVideoHighlight(\n type: TutorialVideoType,\n requireDismissal: boolean = true\n): TutorialVideoHighlightContext {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const ids = config.data?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[type].staging :\n HardCoded.TutorialVideoHighlight[type].production;\n const videoIds = ids[instanceRegion as keyof typeof ids];\n\n const playlistIds = (config.data?.liteUrl.includes('staging') ?\n HardCoded.Tutorial.cv.staging[instanceRegion] :\n HardCoded.Tutorial.cv.production[instanceRegion]) || { PLAYLIST: '', SHARE: '' };\n\n const { hasPermissions, isLoaded: isPermissionLoaded } = usePermissions();\n\n // if the user is not signed in or not a student, this should fetch the video\n const shouldShowVideo =\n instanceRegion && videoIds !== undefined &&\n isPermissionLoaded &&\n !hasPermissions(PermissionName.StudentExperience);\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n shouldShowVideo &&\n VideoRequests.sharedVideo(videoIds.VIDEO, videoIds.SHARE)\n );\n\n const settings = useSettings(LocationContext.VideoHighlight);\n\n if (!requireDismissal || !Object.keys(dismissibleTutorialVideoTypeSettingsMapping).includes(type)) {\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds\n };\n }\n\n const tutorialSettingsMap = {\n [TutorialVideoType.Analytics]: settings.hasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: settings.hasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: settings.hasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: settings.hasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: settings.hasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: settings.hasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: settings.hasDismissedMyVideosTutorial\n };\n \n const settingName = dismissibleTutorialVideoTypeSettingsMapping[type as TutorialVideoType];\n\n const dismissVideoHighlight = async () => {\n if (!Object.keys(tutorialSettingsMap).includes(type) || !settingName) return;\n await settings.updateUserSettingAsync({\n name: settingName,\n value: true,\n kind: SettingKind.Setting\n });\n };\n\n const hasDismissedVideoHighlight = tutorialSettingsMap[type as keyof typeof tutorialSettingsMap] ?? null;\n\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds,\n hasDismissedVideoHighlight,\n dismissVideoHighlight\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nexport const VideoRequests = {\n video(\n id: string,\n shareId?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'thumbnail',\n shareId\n }),\n key: `video:${id}`\n };\n }\n};\n","import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopSearch } from 'shared/interfaces';\n\nexport const SearchRequests = {\n topSearches(\n filter: AnalyticsRequestFilter,\n success?: (data: TopSearch[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/search/top', filter),\n key: getAnalyticsRequestKey('top:searches', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topSearchesCardEmptyStateV2';\n\nexport function TopSearchesCardEmptyStateV2() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopSearchesCardV2() {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'> </div>\n\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-50'> </div>\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-100'> </div>\n <div className='partial-loading-background mb-3 w-25'> </div>\n <div className='partial-loading-background mb-3 w-75'> </div>\n <div className='partial-loading-background mb-3 w-33'> </div>\n <div className='partial-loading-background mb-3 w-100'> </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\n\nimport { SearchRequests } from 'shared/flight-requests/SearchRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopSearch } from 'shared/interfaces';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\n\nimport { TopSearchesCardEmptyStateV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2';\nimport { PartialTopSearchesCardV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2';\n\nconst namespace = 'reportsDashboard.topSearchesCardV2';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopSearchesCardV2View() {\n const requestFilter = useGetRequestFilter('search');\n\n const searches = Flight.useBasicFetch<TopSearch[]>(SearchRequests.topSearches(requestFilter));\n\n const getSearchUrl = useGetExternalUrl(ExternalRouteHelper.getPrimarySearchUrl);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {searches.data ? (\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='topSearches' /></h2>\n\n {searches.data.length ?\n <>\n <Scrollbars className='position-relative'>\n <ol className='position-absolute w-100 ps-4'>\n {searches.data.map((s, idx) => {\n return (\n <li\n key={idx}\n className='mb-3'\n >\n <a\n href={getSearchUrl(s.query)}\n target='_blank'\n className='position-relative d-flex justify-content-between align-items-center pe-5'\n >\n <span>\n {s.query}\n </span>\n <div className='position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3'>\n <SvgContainer svg={NewWindowSvg} />\n </div>\n </a>\n </li>\n );\n })}\n </ol>\n </Scrollbars>\n </> :\n <TopSearchesCardEmptyStateV2 />\n }\n </>\n ) : <PartialTopSearchesCardV2 />}\n </div>\n );\n}\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topStreamsCardEmptyState';\n\nexport function TopStreamsCardEmptyState() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopStreamsCard(): JSX.Element {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'> </div>\n\n <div className='position-relative'>\n <ul className='list-unstyled position-absolute top-0 start-0 w-100 h-100'>\n {Array(10).fill(null).map((_, i) => (\n <li key={i} className='mb-3'>\n <div className='row g-0'>\n <div className='col-5'>\n <div className='ratio ratio-16x9 rounded partial-loading-background' />\n </div>\n <div className='col-7 d-flex align-items-center'>\n <div className='mx-2 w-100'>\n <div className='w-100 partial-loading-background mb-1'> </div>\n <div className='w-75 partial-loading-background'> </div>\n </div>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { TopStreamsCardEmptyState } from 'apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState';\nimport { PartialTopStreamsCard } from 'apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard';\n\nconst namespace = 'reportsDashboard.topStreamsCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 10;\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopStreamsCardView() {\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3'>\n {hasLoaded ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{getPhrase('topVideos')}</h2>\n <AppLink\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS }}\n className='text-info'\n >\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n </div>\n\n {videos.itemsArr?.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <ul className='list-unstyled'>\n {topStreams.data.map(stream => {\n const video = videos.items[stream.objectId];\n\n if (!video)\n return;\n\n return (\n <li key={video.id} className='mb-3'>\n <AppLink appLink={getSchoolVideoAppLink(video, filterQueryParams)}>\n <div className='row g-0'>\n <div className='col-5'>\n <VideoThumbnail\n video={video}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n size='sm'\n />\n </div>\n <div className='col-7'>\n <div className='d-flex flex-column mx-2'>\n {VideoHelper.isVideoType(video) && (\n <VideoSubText\n type='series'\n video={video}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='clamp-2 fw-medium'>\n {video.name}\n </span>\n <Text namespace={namespace} phrase='views' options={{ smartCount: stream.combinedCount }} />\n </div>\n </div>\n </div>\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n </Scrollbars> :\n <TopStreamsCardEmptyState />\n }\n </> :\n <PartialTopStreamsCard />\n }\n </div>\n );\n}\n",".cogIcon {\n cursor: pointer;\n color: $gray-900;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CogSvg } from 'libs/shared/images/svg/objects/CogSvg';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { useClassroomViewsAlert } from 'shared/hooks/useClassroomViewsAlert';\n\nimport styles from './classroom-views-alert.module.scss';\n\nconst namespace = 'reportsDashboard.classroomViewsAlert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomViewsAlertProps {\n hasClassroomViews: boolean;\n}\n\nexport function ClassroomViewsAlert(props: ClassroomViewsAlertProps): JSX.Element | null {\n const { alertVariant, dismissAlert } = useClassroomViewsAlert(props.hasClassroomViews);\n\n if (alertVariant === 'none')\n return null;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2'>\n <div className='d-flex align-items-center gap-1 ms-1'>\n {alertVariant === 'info' ? <InfoBannerContent /> : <ReminderBannerContent />}\n </div>\n <IconButton svg={CloseSvg} className='text-blue' onClick={dismissAlert} />\n </div>\n );\n}\n\nfunction SettingsCog(): JSX.Element {\n return (\n <IconButton\n customSize\n svg={CogSvg}\n svgSize={SvgContainerSize.Standard}\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }}\n className={styles.cogIcon}\n tooltip={getPhrase('settingsTitle')}\n tooltipTrigger={['hover']}\n ariaLabel={getPhrase('settingsTitle')}\n />\n );\n}\n\nfunction InfoBannerContent(): JSX.Element {\n return (\n <>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <SettingsCog />\n <Text namespace={namespace} phrase='description' />\n <a className='text-info' href={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomViews)} target='_blank' rel='noopener noreferrer'>\n <Text namespace={namespace} phrase='link' />\n </a>\n </>\n );\n}\n\nfunction ReminderBannerContent(): JSX.Element {\n return (\n <>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <SettingsCog />\n <Text namespace={namespace} phrase='reminderDescription' />\n <AppLink appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }} className='text-info hover-text-underline'>\n <Text namespace={namespace} phrase='reminderLink' />\n </AppLink>\n </>\n );\n}\n",":local {\n .topRow {\n min-height: 25rem;\n }\n\n .barChart {\n flex: 1 0;\n min-width: 0;\n }\n\n .videoViews {\n flex: 2 0;\n min-width: 0;\n }\n\n .bottomRow {\n min-height: 27rem;\n }\n\n .bottomColumn {\n flex: 1 0;\n min-width: 0;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoHighlight } from 'libs/shared/components/video-highlight/VideoHighlight';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { useTutorialVideoHighlight } from 'libs/shared/hooks/useTutorialVideoHighlight';\nimport { Config } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\nimport { StreamsBarChartCardView } from 'shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView';\nimport { StreamsChartCardView } from 'shared/views/overview-cards/streams-chart-card/StreamsChartCardView';\nimport { TopClassificationsCardView } from 'shared/views/overview-cards/top-classifications-card/TopClassificationsCardView';\n\nimport { TopSearchesCardV2View } from 'apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View';\nimport { TopStreamsCardView } from 'apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView';\n\nimport { ClassroomViewsAlert } from './components/classroom-views-alert/ClassroomViewsAlert';\n\nimport styles from './school-analytics-dashboard.module.scss';\n\nconst TOP_CLASSIFICATIONS_LIMIT = 10;\n\nconst namespace = 'reportsDashboard.schoolAnalyticsDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolAnalyticsDashboardView(): JSX.Element {\n const isTertiary = useIsTertiary();\n const { hasStudentReach } =\n useSettings(LocationContext.VideoHighlight);\n\n const header = isTertiary ? getPhrase('tertiaryDashboard') : getPhrase('dashboard');\n const { shouldShowVideo, videoIds, playlistIds, hasDismissedVideoHighlight, dismissVideoHighlight } =\n useTutorialVideoHighlight(TutorialVideoType.Analytics);\n\n const tutorialVideo = Flight.useBasicFetch(\n shouldShowVideo &&\n VideoRequests.video(videoIds.VIDEO, videoIds.SHARE)\n );\n const getObjectUrl = useGetExternalUrl(ExternalRouteHelper.getPrimaryObjectUrl);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const playlistUrl = ExternalRouteHelper.getSharePlaylistUrl({\n id: ProductId.Primary,\n order: 0,\n name: '',\n url: config.data?.liteUrl,\n imageUrl: ''\n }, playlistIds?.SHARE);\n\n useSetPageMetadata({ title: header });\n useSetHeaderTitle(header);\n\n return (\n <div className='d-flex flex-column gap-3'>\n <ClassroomViewsAlert hasClassroomViews={hasStudentReach} />\n {tutorialVideo?.data && !hasDismissedVideoHighlight &&\n <VideoHighlight\n video={tutorialVideo?.data}\n subtitle={getPhrase('videoHighlightSubtitle')}\n description={getPhrase('videoHighlightDescription')}\n bgColorClassName='bg-light-blue'\n supportArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomAnalytics)}\n onDismiss={dismissVideoHighlight}\n redirectUrl={getObjectUrl(tutorialVideo?.data)}\n redirectPlaylistUrl={playlistUrl}\n locationContext={LocationContext.VideoHighlight}\n />\n }\n <div className={`d-flex gap-3 ${styles.topRow}`}>\n <div className={styles.barChart}>\n <StreamsBarChartCardView\n type='year_group'\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n />\n </div>\n <div className={styles.videoViews}>\n <StreamsChartCardView type='user_type' />\n </div>\n </div>\n <div className={`d-flex gap-3 ${styles.bottomRow}`}>\n <div className={styles.bottomColumn}>\n <TopStreamsCardView />\n </div>\n <div className={styles.bottomColumn}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('subjects')}\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.bottomColumn}>\n <TopSearchesCardV2View />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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ACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACD,KAAM,CACJ,QAAS,EACN,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACF,CACD,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,WAAY,CACV,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,EACA,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{P as e,qn as t,st as n}from"./Db8SRTe2.chunk.js";import{v as r}from"./B4CGL9yn.chunk.js";import{m as i,n as a}from"./ClFr_vFf.chunk.js";import{t as o}from"./r5AG2PFt.chunk.js";import{n as s}from"./DZAzLV_d.chunk.js";import{t as c}from"./C9VmjKe5.chunk.js";import{r as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{P as e,qn as t,st as n}from"./Db8SRTe2.chunk.js";import{v as r}from"./B4CGL9yn.chunk.js";import{m as i,n as a}from"./ClFr_vFf.chunk.js";import{t as o}from"./r5AG2PFt.chunk.js";import{n as s}from"./DZAzLV_d.chunk.js";import{t as c}from"./C9VmjKe5.chunk.js";import{r as l}from"./app-DomX9RS2.js";import{a as u,n as d,t as f}from"./DD6DxO8_2.chunk.js";import{t as p}from"./C2ypnyI02.chunk.js";var m=function(e){return e[e.RootTopic=1]=`RootTopic`,e[e.ChildTopic=2]=`ChildTopic`,e}({});function h(e,t,n){return{...e,topicAnalyticsType:t,query:`cover`,limit:n}}var g={topTopics(e,t,n,r,i){return{url:s.urlBuilder(`{gateway}/v1/analytics/topics/top`,h(e,t)),key:p(`top:topics:${t}`,e),success:n,error:r,always:i}},topTopicsV2(e,t,n,r,i,a){return{url:s.urlBuilder(`{gateway}/v2/analytics/streams/topics/top`,h(e,t,n)),key:p(`top:topics:${t}:v2:${n}`,e),formatData:e=>(Array.isArray(e)?e:[e]).map(e=>({collectionId:e.topicId,count:e.combinedCount,collection:e.topic})),success:r,error:i,always:a}},viewsByTopic(e,t,n,r,i){return{url:s.urlBuilder(`{gateway}/v1/analytics/topics/count`,h(e,t)),key:p(`views:topics:${t}`,e),normalize:!1,success:n,error:r,always:i}}},_={cover:`_cover_ggfj4_1`,fallbackImage:`_fallbackImage_ggfj4_5`},v=t(n()),y=e();function b(e){return(0,y.jsxs)(`div`,{className:`d-flex position-relative mb-3`,children:[(0,y.jsx)(`div`,{className:`${_.fallbackImage} me-2`,children:(0,y.jsx)(f,{type:d.Subject,extraClasses:`border rounded`})}),(0,y.jsx)(`div`,{className:`w-100`,children:(0,y.jsx)(`div`,{className:`partial-loading-background ${e.className}`,children:`\xA0`})})]})}function x(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`div`,{className:`partial-loading-background w-25 mb-3`,children:`\xA0`}),(0,y.jsx)(b,{className:`w-25`}),(0,y.jsx)(b,{className:`w-50`}),(0,y.jsx)(b,{className:`w-33`}),(0,y.jsx)(b,{className:`w-25`})]})}var S=o(),C=`reportsShared.topClassificationsCard`;function w(e){let[t,n]=v.useState(!1);return(0,y.jsxs)(`div`,{className:`d-flex position-relative`,children:[!t&&(0,y.jsx)(f,{type:d.Subject,extraClasses:`${_.fallbackImage} border rounded`}),(0,y.jsx)(`div`,{className:`${_.cover} flex-shrink-0 me-2 rounded overflow-hidden`,children:(0,y.jsx)(u,{data:e.topClassification.collection.cover,imageOptions:{size:c.Medium},onLoad:()=>n(!0)})}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`h3`,{className:`h6 mb-0 clamp-2 mt-1`,children:e.topClassification.collection.name}),(0,y.jsx)(`p`,{children:(0,y.jsx)(a,{namespace:C,phrase:`views`,options:{smartCount:e.topClassification.count}})})]})]})}function T(e){let t=l(`video-views`),n=i(!!t&&g.topTopicsV2(t,e.type,e.limit)),a=n.data?.sort((e,t)=>t.count-e.count);return(0,y.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:n.data?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,y.jsx)(`h2`,{className:`h6 mb-3`,children:e.heading}),e.appLink&&e.appLinkText&&(0,y.jsx)(r,{appLink:e.appLink,className:`text-info`,children:e.appLinkText})]}),n.data.length?(0,y.jsx)(S.Scrollbars,{className:`pb-3`,children:(0,y.jsx)(`ul`,{className:`list-unstyled m-0 pe-3`,children:a.map((e,t)=>(0,y.jsx)(`li`,{className:`pb-3`,children:(0,y.jsx)(w,{topClassification:e})},t))})}):(0,y.jsx)(`div`,{className:`d-flex align-items-center justify-content-center h-100`,children:e.emptyStateText})]}):(0,y.jsx)(x,{})})}export{m as n,T as t};
|
|
2
|
+
//# sourceMappingURL=CO_jJj0j2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CetIvuh92.chunk.js","names":[],"sources":["../../src/shared/enums/TopicAnalyticsType.ts","../../src/shared/flight-requests/TopicRequests.ts","../../src/shared/views/overview-cards/top-classifications-card/top-classification-card.module.scss","../../src/shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard.tsx","../../src/shared/views/overview-cards/top-classifications-card/TopClassificationsCardView.tsx"],"sourcesContent":["export enum TopicAnalyticsType {\n RootTopic = 1,\n ChildTopic = 2\n}\n","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsRequestFilter, Classification } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\n\nfunction getTopicRequestParams(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit?: number\n): HashObject {\n return {\n ...filter,\n topicAnalyticsType,\n query: 'cover',\n limit\n };\n}\n\nexport const TopicRequests = {\n topTopics(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}`, filter),\n success,\n error,\n always\n };\n },\n\n topTopicsV2(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit: number,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v2/analytics/streams/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType, limit)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}:v2:${limit}`, filter),\n formatData: data => {\n const items = Array.isArray(data) ? data : [data];\n\n return items.map(item => ({\n collectionId: item.topicId,\n count: item.combinedCount,\n collection: item.topic\n }));\n },\n success,\n error,\n always\n };\n },\n\n viewsByTopic(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/count',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`views:topics:${topicAnalyticsType}`, filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .cover {\n height: 5rem;\n width: 5rem;\n }\n\n .fallbackImage {\n height: 5rem;\n min-width: 5rem;\n border: none;\n }\n}","import React from 'react';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from '../top-classification-card.module.scss';\n\ninterface PartialClassificationItemProps {\n className?: string;\n}\n\nfunction PartialClassificationItem(props: PartialClassificationItemProps) {\n return (\n <div className='d-flex position-relative mb-3'>\n <div className={`${styles.fallbackImage} me-2`}>\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='border rounded'\n />\n </div>\n\n <div className='w-100'>\n <div className={`partial-loading-background ${props.className}`}> </div>\n </div>\n </div>\n );\n}\n\nexport function PartialTopClassificationsCard() {\n return (\n <>\n <div className='partial-loading-background w-25 mb-3'> </div>\n\n <PartialClassificationItem className='w-25' />\n <PartialClassificationItem className='w-50' />\n <PartialClassificationItem className='w-33'/>\n <PartialClassificationItem className='w-25'/>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport { PartialTopClassificationsCard } from 'shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard';\n\nimport styles from './top-classification-card.module.scss';\n\nconst namespace = 'reportsShared.topClassificationsCard';\n\ninterface ClassificationListItemProps {\n topClassification: CollectionViewEvent<Classification>;\n}\n\nfunction ClassificationListItem(props: ClassificationListItemProps) {\n const [ hasLoadedImage, setHasLoadedImage ] = React.useState(false);\n\n return (\n <div className='d-flex position-relative'>\n {!hasLoadedImage && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={`${styles.fallbackImage} border rounded`}\n />\n )}\n <div className={`${styles.cover} flex-shrink-0 me-2 rounded overflow-hidden`}>\n <BaseImage\n data={props.topClassification.collection.cover}\n imageOptions={{ size: ImageSize.Medium }}\n onLoad={() => setHasLoadedImage(true)}\n />\n </div>\n <div>\n <h3 className='h6 mb-0 clamp-2 mt-1'>\n {props.topClassification.collection.name}\n </h3>\n <p><Text namespace={namespace} phrase='views' options={{ smartCount: props.topClassification.count }} /></p>\n </div>\n </div>\n );\n}\n\ninterface TopClassificationsCardProps {\n heading: string;\n type: TopicAnalyticsType;\n appLink?: Core.AppLink;\n appLinkText?: string;\n emptyStateText: string;\n limit: number;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopClassificationsCardView(props: TopClassificationsCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n \n const topClassifications = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.topTopicsV2(requestFilter, props.type, props.limit));\n\n const sortedTopClassifications = topClassifications.data?.sort((a, b) => b.count - a.count);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {topClassifications.data ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{props.heading}</h2>\n\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n {topClassifications.data.length ?\n <Scrollbars className='pb-3'>\n <ul className='list-unstyled m-0 pe-3'>\n {sortedTopClassifications.map((t, idx) => (\n <li key={idx} className='pb-3'>\n <ClassificationListItem topClassification={t} />\n </li>\n ))}\n </ul>\n </Scrollbars> :\n <div className='d-flex align-items-center justify-content-center h-100'>{props.emptyStateText}</div>\n }\n </> : <PartialTopClassificationsCard />\n }\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CO_jJj0j2.chunk.js","names":[],"sources":["../../src/shared/enums/TopicAnalyticsType.ts","../../src/shared/flight-requests/TopicRequests.ts","../../src/shared/views/overview-cards/top-classifications-card/top-classification-card.module.scss","../../src/shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard.tsx","../../src/shared/views/overview-cards/top-classifications-card/TopClassificationsCardView.tsx"],"sourcesContent":["export enum TopicAnalyticsType {\n RootTopic = 1,\n ChildTopic = 2\n}\n","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsRequestFilter, Classification } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\n\nfunction getTopicRequestParams(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit?: number\n): HashObject {\n return {\n ...filter,\n topicAnalyticsType,\n query: 'cover',\n limit\n };\n}\n\nexport const TopicRequests = {\n topTopics(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}`, filter),\n success,\n error,\n always\n };\n },\n\n topTopicsV2(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n limit: number,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v2/analytics/streams/topics/top',\n getTopicRequestParams(filter, topicAnalyticsType, limit)\n ),\n key: getAnalyticsRequestKey(`top:topics:${topicAnalyticsType}:v2:${limit}`, filter),\n formatData: data => {\n const items = Array.isArray(data) ? data : [data];\n\n return items.map(item => ({\n collectionId: item.topicId,\n count: item.combinedCount,\n collection: item.topic\n }));\n },\n success,\n error,\n always\n };\n },\n\n viewsByTopic(\n filter: AnalyticsRequestFilter,\n topicAnalyticsType: TopicAnalyticsType,\n success?: (data: Classification[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(\n '{gateway}/v1/analytics/topics/count',\n getTopicRequestParams(filter, topicAnalyticsType)\n ),\n key: getAnalyticsRequestKey(`views:topics:${topicAnalyticsType}`, filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .cover {\n height: 5rem;\n width: 5rem;\n }\n\n .fallbackImage {\n height: 5rem;\n min-width: 5rem;\n border: none;\n }\n}","import React from 'react';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from '../top-classification-card.module.scss';\n\ninterface PartialClassificationItemProps {\n className?: string;\n}\n\nfunction PartialClassificationItem(props: PartialClassificationItemProps) {\n return (\n <div className='d-flex position-relative mb-3'>\n <div className={`${styles.fallbackImage} me-2`}>\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='border rounded'\n />\n </div>\n\n <div className='w-100'>\n <div className={`partial-loading-background ${props.className}`}> </div>\n </div>\n </div>\n );\n}\n\nexport function PartialTopClassificationsCard() {\n return (\n <>\n <div className='partial-loading-background w-25 mb-3'> </div>\n\n <PartialClassificationItem className='w-25' />\n <PartialClassificationItem className='w-50' />\n <PartialClassificationItem className='w-33'/>\n <PartialClassificationItem className='w-25'/>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification } from 'libs/shared/interfaces';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { TopicRequests } from 'shared/flight-requests/TopicRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { CollectionViewEvent } from 'shared/interfaces';\nimport { PartialTopClassificationsCard } from 'shared/views/overview-cards/top-classifications-card/partial-loading/PartialTopClassificationsCard';\n\nimport styles from './top-classification-card.module.scss';\n\nconst namespace = 'reportsShared.topClassificationsCard';\n\ninterface ClassificationListItemProps {\n topClassification: CollectionViewEvent<Classification>;\n}\n\nfunction ClassificationListItem(props: ClassificationListItemProps) {\n const [ hasLoadedImage, setHasLoadedImage ] = React.useState(false);\n\n return (\n <div className='d-flex position-relative'>\n {!hasLoadedImage && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={`${styles.fallbackImage} border rounded`}\n />\n )}\n <div className={`${styles.cover} flex-shrink-0 me-2 rounded overflow-hidden`}>\n <BaseImage\n data={props.topClassification.collection.cover}\n imageOptions={{ size: ImageSize.Medium }}\n onLoad={() => setHasLoadedImage(true)}\n />\n </div>\n <div>\n <h3 className='h6 mb-0 clamp-2 mt-1'>\n {props.topClassification.collection.name}\n </h3>\n <p><Text namespace={namespace} phrase='views' options={{ smartCount: props.topClassification.count }} /></p>\n </div>\n </div>\n );\n}\n\ninterface TopClassificationsCardProps {\n heading: string;\n type: TopicAnalyticsType;\n appLink?: Core.AppLink;\n appLinkText?: string;\n emptyStateText: string;\n limit: number;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopClassificationsCardView(props: TopClassificationsCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n \n const topClassifications = Flight.useBasicFetch<CollectionViewEvent<Classification>[]>(!!requestFilter &&\n TopicRequests.topTopicsV2(requestFilter, props.type, props.limit));\n\n const sortedTopClassifications = topClassifications.data?.sort((a, b) => b.count - a.count);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {topClassifications.data ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{props.heading}</h2>\n\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n {topClassifications.data.length ?\n <Scrollbars className='pb-3'>\n <ul className='list-unstyled m-0 pe-3'>\n {sortedTopClassifications.map((t, idx) => (\n <li key={idx} className='pb-3'>\n <ClassificationListItem topClassification={t} />\n </li>\n ))}\n </ul>\n </Scrollbars> :\n <div className='d-flex align-items-center justify-content-center h-100'>{props.emptyStateText}</div>\n }\n </> : <PartialTopClassificationsCard />\n }\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{F as e,N as t,P as n,Q as r,R as i,U as a,Wt as o,Yt as s,ct as c,qn as l,st as u,z as d}from"./Db8SRTe2.chunk.js";import{i as f,o as p,r as m,v as h,x as g,y as _}from"./B4CGL9yn.chunk.js";import{n as v}from"./ClFr_vFf.chunk.js";import{t as y}from"./W6_Zq9he.chunk.js";import{t as b}from"./DQnWJjP7.chunk.js";import{n as x}from"./r5AG2PFt.chunk.js";import{a as S,i as C,o as ee}from"./vy77iKWZ.chunk.js";import{t as w}from"./BpIQdoUJ.chunk.js";import{n as te,t as ne}from"./C9VmjKe5.chunk.js";import{t as re}from"./BXDAsWZv.chunk.js";import{b as ie,d as T,f as ae,m as oe,s as se,st as ce}from"./app-
|
|
1
|
+
import{F as e,N as t,P as n,Q as r,R as i,U as a,Wt as o,Yt as s,ct as c,qn as l,st as u,z as d}from"./Db8SRTe2.chunk.js";import{i as f,o as p,r as m,v as h,x as g,y as _}from"./B4CGL9yn.chunk.js";import{n as v}from"./ClFr_vFf.chunk.js";import{t as y}from"./W6_Zq9he.chunk.js";import{t as b}from"./DQnWJjP7.chunk.js";import{n as x}from"./r5AG2PFt.chunk.js";import{a as S,i as C,o as ee}from"./vy77iKWZ.chunk.js";import{t as w}from"./BpIQdoUJ.chunk.js";import{n as te,t as ne}from"./C9VmjKe5.chunk.js";import{t as re}from"./BXDAsWZv.chunk.js";import{b as ie,d as T,f as ae,m as oe,s as se,st as ce}from"./app-DomX9RS2.js";import{t as le}from"./ZeBQ-OW-.chunk.js";import{n as E,r as ue,t as D}from"./CTdvdzIT2.chunk.js";import{t as de}from"./C2smR6gI2.chunk.js";import{n as fe,t as pe}from"./C8AYehpj2.chunk.js";import{a as O,i as me,n as he,r as ge,t as _e}from"./DD6DxO8_2.chunk.js";import{a as ve,i as ye,o as be,r as xe}from"./BBRRG8Mn2.chunk.js";var Se={subText:`_subText_5u663_1`,sm:`_sm_5u663_4`},k=l(u()),A=n();function Ce(e){let t=`text-uppercase text-truncate mb-0 ${Se.subText} ${e.className}`;return e.appLink?(0,A.jsx)(h,{className:t,appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,title:e.title,ariaLabel:e.ariaLabel,children:e.children}):(0,A.jsx)(`div`,{className:t,title:e.title,"aria-label":e.ariaLabel,children:e.children})}function we(e){return(0,A.jsx)(`svg`,{...e,children:(0,A.jsx)(`path`,{fill:`currentColor`,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0`})})}function Te(e){return(0,A.jsx)(`svg`,{...e,children:(0,A.jsx)(`path`,{fill:`currentColor`,fillOpacity:.9,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805`})})}var j={isFavouritedByCurrentUser(e){return e?.favouritedBy?.data.length===1},isFavouritedByUser(e,t){return!!y.findWhere(e?.favouritedBy?.data,{id:t?.id})},updateVideoState(e,t,n){return{id:e.id,favouritedBy:{data:n?[{id:t.id}]:[],pagination:{limit:25,cursors:{next:``,previous:``}}}}},showFavouriteButton(e,t){return T.getCanBeConsumed(e)?.canConsume?!!(t||ce.isTabletOrMobile()||j.isFavouritedByCurrentUser(e)):!1}},M={favourited:`_favourited_19h9u_1`,favouriteButton:`_favouriteButton_19h9u_1`,heart:`_heart_19h9u_5`,heartOutline:`_heartOutline_19h9u_16`},Ee=w.encloseNamespace(`shared.favouriteButton`);function De(e){let t=de(),n=j.isFavouritedByCurrentUser(e.video),[r,i]=k.useState(n);k.useEffect(()=>{i(n)},[n]);let a=`d-flex align-items-center justify-content-center cursor-pointer ${M.favouriteButton} ${r?M.favourited:``}`;e.className&&(a+=` ${e.className}`);function o(){let n=!r;function a(){function r(){return T.isClip(e.video)?n?`favouriteClipError`:`unfavouriteClipError`:T.isInteractive(e.video)?n?`favouriteInteractiveError`:`unfavouriteInteractiveError`:n?`favouriteVideoError`:`unfavouriteVideoError`}t.error(Ee(r())),i(!n)}i(n),e.setFavourite(e.video,n,null,a,e.analyticsData,e.analyticsOptions)}return!g.isFunction(e.setFavourite)||!g.isFunction(e.canFavourite)||!e.canFavourite(e.video)?(0,A.jsx)(A.Fragment,{}):(0,A.jsxs)(_,{className:a,onClick:o,tabIndex:e.preventFocus?-1:void 0,children:[(0,A.jsx)(m,{svg:Te,className:`svg-container ${M.heart}`}),(0,A.jsx)(m,{svg:we,className:`svg-container ${M.heartOutline}`})]})}function Oe(e){let t=T.getVideoProgress(e.video),n=t&&e.video.duration&&t/e.video.duration*1e5;return n?(0,A.jsx)(`div`,{className:`bg-primary h-100`,style:{width:`${n}%`}}):(0,A.jsx)(A.Fragment,{})}var ke={bottomBar:`_bottomBar_575p1_1`};function Ae(e){return T.isVideo(e.video)?(0,A.jsx)(`div`,{className:ke.bottomBar,children:(0,A.jsx)(Oe,{video:e.video})}):(0,A.jsx)(A.Fragment,{})}var je=`d-inline-block svg-container`,Me=`span`;function Ne(e){let{children:t,className:n=je,tagName:r=Me,size:i=f.Standard,onClick:a,title:o,tooltipPlacement:s=`right`}=e,c=r,l={className:`${n} svg-container ${i}`,onClick:g.isFunction(a)?a:null};return o?(0,A.jsx)(p,{title:o,placement:s,children:(0,A.jsx)(c,{...l,children:t})}):(0,A.jsx)(c,{...l,children:t})}var N={std:`_std_hibpg_1`,sm:`_sm_hibpg_5`,stdIcon:`_stdIcon_hibpg_10`,smIcon:`_smIcon_hibpg_21`};function P(e){return!T.isInteractive(e.video)&&!T.isClip(e.video)||!e.video._liteOwner&&!e.video._curationTags?.value?.isClickViewCurated?(0,A.jsx)(A.Fragment,{}):e.video._curationTags?.value?.isClickViewCurated?(0,A.jsx)(`div`,{className:`${e.size===`sm`?N.sm:N.std} me-1 rounded-circle position-relative bg-white`,children:(0,A.jsx)(Ne,{className:e.size===`sm`?N.smIcon:N.stdIcon,children:(0,A.jsx)(se,{})})}):(0,A.jsx)(`div`,{className:`${e.size===`sm`?N.sm:N.std} me-1`,children:(0,A.jsx)(S,{imageCdnUrl:e.imageCdnUrl,initials:ee.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:e.video._liteOwner.avatar?.url})})}var Pe={pluginHover:`_pluginHover_wpoz0_1`},Fe=`shared.pluginHover`;function F(e){return!e.isPlugin||e.isPluginPopup?(0,A.jsx)(A.Fragment,{}):(0,A.jsx)(h,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
|
|
2
2
|
position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer
|
|
3
3
|
${Pe.pluginHover}
|
|
4
4
|
${e.className?e.className:``}
|
|
@@ -7,4 +7,4 @@ import{F as e,N as t,P as n,Q as r,R as i,U as a,Wt as o,Yt as s,ct as c,qn as l
|
|
|
7
7
|
p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer
|
|
8
8
|
text-decoration-none ${e.theme?.container} ${G.tag} ${e.active?G.active:``}
|
|
9
9
|
`,children:(0,A.jsx)(St,{...e})}):(0,A.jsx)(`div`,{className:`p-1 pe-2 rounded-pill d-inline-flex align-items-center ${e.theme?.container} ${G.tag} ${G.disabled}`,children:(0,A.jsx)(St,{...e})})}function St(e){return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{className:`${G.icon} rounded-circle bg-${e.iconVariant} text-white`,svg:e.svg}),(0,A.jsx)(`span`,{className:`ps-1 text-nowrap user-select-none ${e.theme?.tabLabel}`,children:e.text})]})}function Ct(e){return(0,A.jsx)(`svg`,{...e,children:(0,A.jsx)(`path`,{fill:`currentColor`,d:`M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024`})})}var wt=`shared.classroomGuideTag`;function Tt(e){return!e.video||T.isInteractive(e.video)||T.isClip(e.video)||!e.video._hasCurriculumLinks?.value?(0,A.jsx)(A.Fragment,{}):(0,A.jsx)(xt,{theme:{container:`classroom-guide-tag`,tabLabel:`classroom-guide-tag-label`},svg:Ct,iconVariant:`navy`,text:w.getPhrase(wt,`curriculum`),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`curriculum`,...T.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:r.Click,entity:T.getAnalyticsEntity(e.video),...e.analyticsOptions}})}var Et=`shared.interactivesTag`;function Dt(e){if(!T.showInteractivesGuidance(e.video))return(0,A.jsx)(A.Fragment,{});let t=!T.isInteractive(e.video)&&(e.video.interactives?.data.length||0);return(0,A.jsx)(xt,{svg:qe,iconVariant:`green`,text:w.getPhrase(Et,`interactives`,{smartCount:t}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`interactive`,videoGuidanceTotalItems:t,...T.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:r.Click,entity:T.getAnalyticsEntity(e.video),...e.analyticsOptions}})}var Ot=`shared.resourcesTag`;function kt(e){return T.isInteractive(e)?0:(e.resources?.data.length||0)+(e.links?.data.length||0)}function At(e){if(!T.showResourcesGuidance(e.video))return(0,A.jsx)(A.Fragment,{});let t=kt(e.video);return(0,A.jsx)(xt,{svg:Je,iconVariant:`indigo`,text:w.getPhrase(Ot,`resources`,{smartCount:t}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`resource`,videoGuidanceTotalItems:t,...T.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:r.Click,entity:T.getAnalyticsEntity(e.video),...e.analyticsOptions}})}function jt(e){let t=T.showInteractivesGuidance(e.video)&&T.showResourcesGuidance(e.video),n=e.commonVideoProps.features.showClassroomGuide(e.video);return(0,A.jsxs)(`div`,{className:`${e.containerClassName} ${t?e.responsiveClassName:``}`,children:[n&&(0,A.jsx)(Tt,{appLink:e.commonVideoProps.getClassroomGuideAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),(0,A.jsx)(At,{appLink:e.commonVideoProps.getResourceGuidanceAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),(0,A.jsx)(Dt,{appLink:e.commonVideoProps.getInteractiveGuidanceAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions})]})}var Mt={button:`_button_tlbos_1`},Nt=`shared.removeVideoButton`;function Pt(e){return(0,A.jsx)(`div`,{className:`me-2`,children:(0,A.jsx)(p,{title:e.removeButtonTooltip||w.getPhrase(Nt,`removeFromRow`),spanHack:!0,children:(0,A.jsx)(_,{onClick:e.onClickRemove,className:`d-flex align-items-center justify-content-center ${Mt.button}`,tabIndex:e.preventFocus?-1:void 0,children:(0,A.jsx)(m,{svg:C,className:`svg-container ${Mt.heart}`})})})})}var K={topLeftContainer:`_topLeftContainer_1t9d5_1`,details:`_details_1t9d5_7`,isHovering:`_isHovering_1t9d5_11`,videoGuidanceTags:`_videoGuidanceTags_1t9d5_14`,responsiveGuidance:`_responsiveGuidance_1t9d5_21`,dropdown:`_dropdown_1t9d5_27`,show:`_show_1t9d5_31`,topRightContainer:`_topRightContainer_1t9d5_35`},Ft=e=>{let{video:t,appLink:n,imageOptions:a,preload:o,isHovering:s}=e,{hoverToPlay:l}=e.commonVideoProps,u=c.isObject(n?.params)?n?.params:{},{canNavigate:d,canConsume:f}=T.getCanBeConsumed(t);k.useEffect(()=>()=>{e.cleanPortalNode?.()},[]);function m(t){t.preventDefault(),e.onClickRemove?.()}let h=`position-relative bg-white`;e.extraClasses&&(h+=` ${e.extraClasses}`),s&&(h+=` rounded-3 shadow-lg`);let _={...e.analyticsOptions,entity:T.getAnalyticsEntity(t)},v=e.isHovering&&f&&l,y=j.showFavouriteButton(e.video,s);function b(){return g.isFunction(e.onClickRemove)?ce.isTabletOrMobile()?!0:s:!1}let x={...e.analyticsData,id:t.id,name:t.name},S={..._,actionType:r.Click,descriptor:i.Thumbnail};return(0,A.jsxs)(`div`,{className:h,children:[(0,A.jsxs)(`div`,{className:K.topRightContainer,children:[b()&&(0,A.jsx)(Pt,{onClickRemove:m,removeButtonTooltip:e.removeButtonTooltip,preventFocus:!0}),y&&(0,A.jsx)(De,{setFavourite:e.commonVideoProps.setFavourite,canFavourite:e.commonVideoProps.canFavourite,video:t,analyticsData:e.analyticsData,analyticsOptions:_,preventFocus:!0}),!d&&(0,A.jsx)(p,{title:T.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:``,children:(0,A.jsx)(Le,{})})]}),(0,A.jsxs)(`div`,{className:`position-relative`,children:[(0,A.jsx)(F,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:s?`rounded-top-3`:`rounded-3`,onClick:()=>e.cleanPortalNode?.(),appLink:d?n:null,analyticsData:x,analyticsOptions:S}),(0,A.jsxs)(O,{onClick:()=>e.cleanPortalNode?.(),data:T.getThumbnail(t),appLink:d?n:null,imageType:te.Thumbnails,imageOptions:a,preload:o,alt:(`series`in t&&t.series?.name?`${t.series.name}: `:``)+t.name,analyticsData:x,analyticsOptions:S,preventFocus:!e.hideTitle,appLinkClassName:`position-absolute top-0 start-0 h-100 w-100 overflow-hidden ${s?`rounded-top-3`:`rounded-3`}`,imageClassName:s?`rounded-top-3`:`rounded-3`,children:[(0,A.jsx)(_e,{type:he.Video}),(0,A.jsxs)(`div`,{className:`p-absolute w-100 h-100 text-white`,children:[(0,A.jsxs)(`div`,{className:`${K.topLeftContainer} d-flex flex-no-wrap`,children:[e.showOwner&&(0,A.jsx)(P,{video:t,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),(0,A.jsx)(B,{video:t}),(0,A.jsx)(I,{video:t,companyLogoFallbackUrl:e.commonVideoProps.getCompanyLogoFallbackUrl?.(t)})]}),(0,A.jsx)(pt,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration}),(0,A.jsx)(Ae,{video:e.video})]})]}),v&&(0,A.jsx)(tt,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:`hover`,shareId:e.shareId,context:u.context,contextId:u.contextId,moviesAndTv:u.mtv,location:`popout-video`,onRemoveVideo:e.onClickRemove,appLink:d?n:null},e.video.id)]}),!s&&!e.hideTitle&&(0,A.jsx)(bt,{...e}),(0,A.jsx)(`div`,{className:`${K.details} ${s?`${K.isHovering} box-shadow`:``}`,children:s&&(0,A.jsx)(A.Fragment,{children:(0,A.jsxs)(`div`,{className:`${s?K.videoGuidanceTags:``}`,children:[(0,A.jsx)(bt,{...e}),e.showVideoGuidance&&s&&(0,A.jsx)(jt,{commonVideoProps:e.commonVideoProps,video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,responsiveClassName:K.responsiveGuidance,containerClassName:`d-flex justify-content-start align-items-center pt-2`})]})})})]})};function It(e){return(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(ut,{hoverableComponent:Ft,componentProps:e,fixedHoverWidth:400,minHoverWidth:400,analyticsData:{...e.analyticsData,id:e.video.id,name:e.video.name},analyticsOptions:{...e.analyticsOptions,entity:T.getAnalyticsEntity(e.video)}})})}function Lt(e){return(0,A.jsx)(`svg`,{...e,children:(0,A.jsx)(`path`,{fillRule:`evenodd`,d:`M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12M9 7.498c0-.551.387-.756.847-.469l7.306 4.567c.468.292.46.77 0 1.058l-7.306 4.567c-.468.292-.847.074-.847-.47z`,fill:`currentColor`})})}var q={mask:`_mask_tn7nt_1`,small:`_small_tn7nt_10`,video:`_video_tn7nt_10`,playlist:`_playlist_tn7nt_18`,maskContainer:`_maskContainer_tn7nt_28`,constantIconMaskContainer:`_constantIconMaskContainer_tn7nt_35`},J=function(e){return e[e.Video=0]=`Video`,e[e.Playlist=1]=`Playlist`,e[e.Series=2]=`Series`,e}({});function Rt(e){return e===J.Video?q.video:e===J.Playlist?q.playlist:``}function zt(e,t=!1){return e===J.Video?t?Lt:nt:null}Bt.defaults={size:`md`};function Bt(e){let{type:t,size:n,alwaysShowIcon:r}=e,i=Rt(t),a=zt(t,r);return(0,A.jsxs)(`div`,{className:`${r?q.constantIconMaskContainer:q.maskContainer} ${n===`sm`?q.small:``}`,children:[(0,A.jsx)(`div`,{className:q.mask}),(0,A.jsx)(m,{svg:a,className:i})]})}function Vt(e){return(0,A.jsx)(`svg`,{...e,children:(0,A.jsx)(`path`,{d:`M18.783 5.192c.264.283.291.775.06 1.098l-8.91 12.444a.6.6 0 0 1-.457.266.58.58 0 0 1-.471-.228l-3.819-4.666a.905.905 0 0 1 0-1.1c.249-.304.652-.304.9 0l3.338 4.078 8.46-11.818c.232-.324.634-.356.899-.074`,fill:`currentColor`})})}var Y={unchecked:`_unchecked_1n862_1`,outline:`_outline_1n862_5`,checked:`_checked_1n862_20`,checkMark:`_checkMark_1n862_27`},X=function(e){return e.None=`None`,e.Complete=`Complete`,e.Incomplete=`Incomplete`,e}({});Ht.defaultProps={style:`filled`};function Ht(e){let[t,n]=k.useState(e.status===X.Complete);k.useEffect(()=>{n(e.status===X.Complete)},[e.status]);let r=`cursor-pointer rounded-circle ${t?Y.checked:Y.unchecked}`;e.className&&(r+=` ${e.className}`),e.style===`outline`&&(r+=` ${Y.outline}`);function i(){return!!e.status&&e.status!==X.None&&g.isFunction(e.setStatus)}function a(){let r=!t;n(r);let i=r?X.Complete:X.Incomplete;e.setStatus(i).catch(()=>{n(!r)})}return i()?(0,A.jsx)(_,{className:r,onClick:a,disabled:e.disabled,children:(0,A.jsx)(m,{svg:Vt,className:`svg-container ${Y.checkMark}`})}):(0,A.jsx)(A.Fragment,{})}var Z={container:`_container_mn7d4_1`,cvIcon:`_cvIcon_mn7d4_7`,action:`_action_mn7d4_10`};function Ut(e){return!!(!T.getCanBeConsumed(e.video)?.canConsume||g.isFunction(e.setFavourite)&&g.isFunction(e.canFavourite)||g.isFunction(e.setCheckMarkStatus))}function Wt(e){let{canNavigate:t}=T.getCanBeConsumed(e.video);return t?Ut(e)?(0,A.jsxs)(`div`,{className:`${Z.container} d-flex align-items-center`,children:[(0,A.jsx)(De,{setFavourite:e.setFavourite,canFavourite:e.canFavourite,video:e.video,className:Z.action,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,preventFocus:!0}),(0,A.jsx)(Ht,{status:e.checkMarkStatus,setStatus:e.setCheckMarkStatus,className:Z.action})]}):(0,A.jsx)(A.Fragment,{}):(0,A.jsx)(`div`,{className:Z.container,children:(0,A.jsx)(Le,{size:e.size})})}var Q=function(e){return e[e.Below=1]=`Below`,e[e.Overlay=2]=`Overlay`,e[e.Independent=3]=`Independent`,e}({}),$={titleOverlay:`_titleOverlay_f9p1o_1`,clip:`_clip_f9p1o_11`,large:`_large_f9p1o_15`,interactive:`_interactive_f9p1o_18`,titleBelow:`_titleBelow_f9p1o_25`,overlayContainer:`_overlayContainer_f9p1o_29`,topLeftContainer:`_topLeftContainer_f9p1o_36`,gradient:`_gradient_f9p1o_42`},Gt=`shared.staticVideoThumbnail`;function Kt(e){let{type:t,video:n,textPosition:r}=e,i=t===`static`,o=r===Q.Overlay,{canNavigate:s}=T.getCanBeConsumed(e.video),c=``;return o?(c=$.titleOverlay,s&&(T.isClip(n)&&(c+=` `+$.clip),T.isInteractive(n)&&(c+=` `+$.interactive))):c=$.titleBelow,(0,A.jsxs)(`div`,{className:c,children:[T.isVideo(n)&&(0,A.jsx)(R,{type:i?e.commonVideoProps.getSubTextType?.(e.video):`series`,className:o?`text-shadow clamp-1`:`clamp-2`,video:n,appLink:i&&!o?e.commonVideoProps.getSubTextAppLink?.(e.video):null,analyticsOptions:{location:a.VideoThumbnail}}),o||!s||!i?(0,A.jsx)(`span`,{className:`h6 text-reset clamp-1`,children:(0,A.jsx)(W,{video:n,title:n.name??w.getPhrase(Gt,`videoUnavailable`),showNewVideoIndicator:i&&e.commonVideoProps.showNewVideoIndicator,showPadlock:i&&!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})}):(0,A.jsx)(h,{className:`h6 text-reset clamp-2`,appLink:e.appLink,children:(0,A.jsx)(W,{video:n,showNewVideoIndicator:e.commonVideoProps.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})})]})}function qt(e){let{type:t,video:n,textPosition:a,imageOptions:o,preload:s,alwaysShowIcon:l}=e,u=`commonVideoProps`in e?e.commonVideoProps?.hoverToPlay:!1,d=t===`static`,f=d&&c.isObject(e.appLink?.params)?e.appLink?.params:{},[m,h]=pe(),[g,_]=fe({delay:100}),{canNavigate:v,canConsume:y}=T.getCanBeConsumed(n);function b(e){m.current=e,g.current=e}let x=d&&_&&y&&u;function S(){if(d)return!e.disableFavourite&&e.commonVideoProps.canFavourite?.(e.video)&&j.showFavouriteButton(n,h)}function C(){let t=`position-relative`;return t+=d&&e.appLink&&v?` cursor-pointer`:``,e.extraClasses&&(t+=` ${e.extraClasses}`),a===Q.Overlay&&(t+=` rounded overflow-hidden`),t}function ee(){let t=`overflow-hidden ${e.size===`sm`?`rounded`:`rounded-3`}`;return e.imageClassName&&(t+=` ${e.imageClassName}`),a===Q.Overlay&&(t+=` ${$.gradient}`),t}let w=d?{...e.analyticsOptions,entity:T.getAnalyticsEntity(n)}:{},ne=d&&!!e.appLink&&!e.hideMask&&v,re=d?T.getPrivacyReasoning(e.video,e.showSignIn):``,ie=d?{...e.analyticsData,id:n.id,name:n.name}:{},ae={...w,actionType:r.Click,descriptor:i.Thumbnail};return(0,A.jsxs)(p,{title:re,spanHack:!0,spanHackClassName:``,children:[(0,A.jsxs)(`div`,{className:C(),ref:b,children:[d&&(0,A.jsx)(F,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:e.size===`sm`?`rounded`:`rounded-3`,appLink:v?e.appLink:null,analyticsData:ie,analyticsOptions:ae}),(0,A.jsx)(Wt,{video:n,checkMarkStatus:!d&&e.checkMarkStatus,setCheckMarkStatus:!d&&e.setCheckMarkStatus,setFavourite:d&&e.commonVideoProps.setFavourite,canFavourite:S,analyticsData:d&&e.analyticsData,analyticsOptions:d&&w,size:e.size}),(0,A.jsxs)(O,{data:T.getThumbnail(n),appLink:d&&v?e.appLink:null,onClick:d&&v?e.onClick:void 0,imageType:te.Thumbnails,imageOptions:o,preload:s,className:ee(),alt:(`series`in n&&n.series?.name?`${n.series.name}: `:``)+n.name,analyticsData:ie,analyticsOptions:ae,preventFocus:!0,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[ne&&(0,A.jsx)(Bt,{type:J.Video,size:e.size,alwaysShowIcon:l}),(0,A.jsx)(_e,{type:he.Video}),(0,A.jsxs)(`div`,{className:$.overlayContainer,children:[a===Q.Overlay&&(0,A.jsx)(Kt,{...e}),(0,A.jsxs)(`div`,{className:`${$.topLeftContainer} d-flex flex-no-wrap`,children:[d&&e.showOwner&&(0,A.jsx)(P,{video:n,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),!e.hideVideoTypeBadge&&(0,A.jsx)(B,{video:n,size:e.size}),d&&(0,A.jsx)(I,{video:n,companyLogoFallbackUrl:e.commonVideoProps.getCompanyLogoFallbackUrl?.(n),size:e.size})]}),!e.hideBottomBar&&(0,A.jsx)(Ae,{video:n}),(0,A.jsx)(pt,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration,newDurationStyle:e.newDurationStyle,size:e.size})]})]}),x&&(0,A.jsx)(tt,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:`hover`,shareId:d&&e.shareId,context:f.context,contextId:f.contextId,moviesAndTv:f.mtv,appLink:d&&v?e.appLink:null},e.video.id)]}),a===Q.Below&&(0,A.jsx)(Kt,{...e})]})}Jt.defaultProps={hideRating:!0,size:`md`,showOwner:!0};function Jt(e){switch(e.type){case`static`:return(0,A.jsx)(qt,{...e});case`cosmetic`:return(0,A.jsx)(qt,{...e});case`expandable`:return(0,A.jsx)(it,{...e});case`popout`:return(0,A.jsx)(It,{...e});default:return}}export{Ce as i,Q as n,R as r,Jt as t};
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=CSucqxC_2.chunk.js.map
|