@clickview/reports 0.90.0-rc.1 → 0.90.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 +200 -200
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{D_FEtk4z.chunk.js → 4ViYfbV7.chunk.js} +2 -2
- package/dist/scripts/{D_FEtk4z.chunk.js.map → 4ViYfbV7.chunk.js.map} +1 -1
- package/dist/scripts/{CkUPoXTo.chunk.js → 4gz8eG_F.chunk.js} +2 -2
- package/dist/scripts/{CkUPoXTo.chunk.js.map → 4gz8eG_F.chunk.js.map} +1 -1
- package/dist/scripts/{DNagXaPV2.chunk.js → 4mtEyuqT2.chunk.js} +2 -2
- package/dist/scripts/{DNagXaPV2.chunk.js.map → 4mtEyuqT2.chunk.js.map} +1 -1
- package/dist/scripts/{CPrWMnN-.chunk.js → 7M6FzdyD.chunk.js} +2 -2
- package/dist/scripts/{CPrWMnN-.chunk.js.map → 7M6FzdyD.chunk.js.map} +1 -1
- package/dist/scripts/{D3Pl0-fQ.chunk.js → BJOOjdj2.chunk.js} +2 -2
- package/dist/scripts/{D3Pl0-fQ.chunk.js.map → BJOOjdj2.chunk.js.map} +1 -1
- package/dist/scripts/{B9ojUSnp2.chunk.js → BL1X9vs52.chunk.js} +2 -2
- package/dist/scripts/{B9ojUSnp2.chunk.js.map → BL1X9vs52.chunk.js.map} +1 -1
- package/dist/scripts/{BN2Jc0_B.chunk.js → BLzRzOyq.chunk.js} +2 -2
- package/dist/scripts/{BN2Jc0_B.chunk.js.map → BLzRzOyq.chunk.js.map} +1 -1
- package/dist/scripts/{CNihWz772.chunk.js → BU8DxGLM2.chunk.js} +2 -2
- package/dist/scripts/{CNihWz772.chunk.js.map → BU8DxGLM2.chunk.js.map} +1 -1
- package/dist/scripts/{B-CXShcb2.chunk.js → BXWs2cI72.chunk.js} +2 -2
- package/dist/scripts/{B-CXShcb2.chunk.js.map → BXWs2cI72.chunk.js.map} +1 -1
- package/dist/scripts/{Re7SHmEB2.chunk.js → Bl13dT192.chunk.js} +2 -2
- package/dist/scripts/{Re7SHmEB2.chunk.js.map → Bl13dT192.chunk.js.map} +1 -1
- package/dist/scripts/{CBswLW82.chunk.js → Bzx4bLV8.chunk.js} +2 -2
- package/dist/scripts/{CBswLW82.chunk.js.map → Bzx4bLV8.chunk.js.map} +1 -1
- package/dist/scripts/{4QdmE5x_2.chunk.js → CKKR2-wU2.chunk.js} +2 -2
- package/dist/scripts/{4QdmE5x_2.chunk.js.map → CKKR2-wU2.chunk.js.map} +1 -1
- package/dist/scripts/{s20CYII_2.chunk.js → CcjJpEaF2.chunk.js} +2 -2
- package/dist/scripts/{s20CYII_2.chunk.js.map → CcjJpEaF2.chunk.js.map} +1 -1
- package/dist/scripts/{B-DINEq3.chunk.js → Ch4Y5yk4.chunk.js} +2 -2
- package/dist/scripts/{B-DINEq3.chunk.js.map → Ch4Y5yk4.chunk.js.map} +1 -1
- package/dist/scripts/{DqAzhF3o.chunk.js → CitsW6ql.chunk.js} +2 -2
- package/dist/scripts/{DqAzhF3o.chunk.js.map → CitsW6ql.chunk.js.map} +1 -1
- package/dist/scripts/{iTyahUCH2.chunk.js → CowQEpZQ2.chunk.js} +2 -2
- package/dist/scripts/{iTyahUCH2.chunk.js.map → CowQEpZQ2.chunk.js.map} +1 -1
- package/dist/scripts/{DxrgOF1-.chunk.js → D2gRMPGY.chunk.js} +2 -2
- package/dist/scripts/{DxrgOF1-.chunk.js.map → D2gRMPGY.chunk.js.map} +1 -1
- package/dist/scripts/{BabEuLsF2.chunk.js → DDS7ndOq2.chunk.js} +2 -2
- package/dist/scripts/{BabEuLsF2.chunk.js.map → DDS7ndOq2.chunk.js.map} +1 -1
- package/dist/scripts/{_gzWinH7.chunk.js → DE24b7R6.chunk.js} +2 -2
- package/dist/scripts/{_gzWinH7.chunk.js.map → DE24b7R6.chunk.js.map} +1 -1
- package/dist/scripts/{CYgv1ISo2.chunk.js → DNY9inGn2.chunk.js} +2 -2
- package/dist/scripts/{CYgv1ISo2.chunk.js.map → DNY9inGn2.chunk.js.map} +1 -1
- package/dist/scripts/{DQY7SaMp2.chunk.js → DPJbiCR02.chunk.js} +3 -3
- package/dist/scripts/{DQY7SaMp2.chunk.js.map → DPJbiCR02.chunk.js.map} +1 -1
- package/dist/scripts/{BuFRt1UM.chunk.js → DWQdiwUw.chunk.js} +2 -2
- package/dist/scripts/{BuFRt1UM.chunk.js.map → DWQdiwUw.chunk.js.map} +1 -1
- package/dist/scripts/{DzTraroE2.chunk.js → DbSzdDBS2.chunk.js} +2 -2
- package/dist/scripts/{DzTraroE2.chunk.js.map → DbSzdDBS2.chunk.js.map} +1 -1
- package/dist/scripts/{NiiRK9j-2.chunk.js → Dj87pb142.chunk.js} +2 -2
- package/dist/scripts/{NiiRK9j-2.chunk.js.map → Dj87pb142.chunk.js.map} +1 -1
- package/dist/scripts/{DSNTuwQi2.chunk.js → EvtCZWZL2.chunk.js} +2 -2
- package/dist/scripts/{DSNTuwQi2.chunk.js.map → EvtCZWZL2.chunk.js.map} +1 -1
- package/dist/scripts/{Cdbg16A92.chunk.js → PSwC3iEf2.chunk.js} +2 -2
- package/dist/scripts/{Cdbg16A92.chunk.js.map → PSwC3iEf2.chunk.js.map} +1 -1
- package/dist/scripts/{B3UVC04b.chunk.js → TzLygaBE.chunk.js} +2 -2
- package/dist/scripts/{B3UVC04b.chunk.js.map → TzLygaBE.chunk.js.map} +1 -1
- package/dist/scripts/{app-jxJcaenU.js → app-B1NVV4PT.js} +3 -3
- package/dist/scripts/{app-jxJcaenU.js.map → app-B1NVV4PT.js.map} +1 -1
- package/dist/scripts/{CsoT7dzm.chunk.js → fh6sbun-.chunk.js} +2 -2
- package/dist/scripts/{CsoT7dzm.chunk.js.map → fh6sbun-.chunk.js.map} +1 -1
- package/dist/scripts/{s1EOR8_G2.chunk.js → kAYY_iVY2.chunk.js} +2 -2
- package/dist/scripts/{s1EOR8_G2.chunk.js.map → kAYY_iVY2.chunk.js.map} +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s1EOR8_G2.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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AAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,GACV,MAAO,EACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,CACF,CACF,EACA,KAAM,CACJ,QAAS,EACN,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,CACF,CACF,CACF,EACA,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,WAAY,CACV,QAAS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"}
|
|
1
|
+
{"version":3,"file":"kAYY_iVY2.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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AAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,GACV,MAAO,EACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,CACF,CACF,EACA,KAAM,CACJ,QAAS,EACN,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,WACV,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,GACC,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,QACT,CACF,CACF,CACF,EACA,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,QACT,CACF,EACA,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,GACC,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,QACT,CACF,CACF,EACA,WAAY,CACV,QAAS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"}
|