@clickview/reports 0.86.0-rc.0 → 0.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/.vite/manifest.json +252 -252
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{D4_Ou9e_.chunk.js → B3BAH-B8.chunk.js} +2 -2
  5. package/dist/scripts/{D4_Ou9e_.chunk.js.map → B3BAH-B8.chunk.js.map} +1 -1
  6. package/dist/scripts/{BWJBtdAK2.chunk.js → B9u-BJ_k2.chunk.js} +2 -2
  7. package/dist/scripts/{BWJBtdAK2.chunk.js.map → B9u-BJ_k2.chunk.js.map} +1 -1
  8. package/dist/scripts/BIvkuRmF.chunk.js +1 -0
  9. package/dist/scripts/{BLy0WwGy.chunk.js → BLILOa4O.chunk.js} +2 -2
  10. package/dist/scripts/{BLy0WwGy.chunk.js.map → BLILOa4O.chunk.js.map} +1 -1
  11. package/dist/scripts/{BVgajZti.chunk.js → BNQGo_Gd.chunk.js} +2 -2
  12. package/dist/scripts/{BVgajZti.chunk.js.map → BNQGo_Gd.chunk.js.map} +1 -1
  13. package/dist/scripts/{296Drw6z.chunk.js → BTLhY0Si.chunk.js} +2 -2
  14. package/dist/scripts/BTLhY0Si.chunk.js.map +1 -0
  15. package/dist/scripts/{BV2ee_KR.chunk.js → Bf4DlBxT.chunk.js} +2 -2
  16. package/dist/scripts/{BV2ee_KR.chunk.js.map → Bf4DlBxT.chunk.js.map} +1 -1
  17. package/dist/scripts/{DQamsoU_2.chunk.js → Bl6b6nAn2.chunk.js} +2 -2
  18. package/dist/scripts/{DQamsoU_2.chunk.js.map → Bl6b6nAn2.chunk.js.map} +1 -1
  19. package/dist/scripts/{DhJ5lhcc.chunk.js → Bv4pM4sp.chunk.js} +2 -2
  20. package/dist/scripts/{DhJ5lhcc.chunk.js.map → Bv4pM4sp.chunk.js.map} +1 -1
  21. package/dist/scripts/{CmiQpwgd2.chunk.js → C-4Pza2l2.chunk.js} +2 -2
  22. package/dist/scripts/{CmiQpwgd2.chunk.js.map → C-4Pza2l2.chunk.js.map} +1 -1
  23. package/dist/scripts/{CMQlrOon2.chunk.js → C21pODi22.chunk.js} +2 -2
  24. package/dist/scripts/{CMQlrOon2.chunk.js.map → C21pODi22.chunk.js.map} +1 -1
  25. package/dist/scripts/{PLyhtHwt2.chunk.js → C46TEWQx2.chunk.js} +2 -2
  26. package/dist/scripts/{PLyhtHwt2.chunk.js.map → C46TEWQx2.chunk.js.map} +1 -1
  27. package/dist/scripts/{DsnkNBu62.chunk.js → CMw7H8FK2.chunk.js} +2 -2
  28. package/dist/scripts/{DsnkNBu62.chunk.js.map → CMw7H8FK2.chunk.js.map} +1 -1
  29. package/dist/scripts/{cBssbttB.chunk.js → CQNeP_Yp.chunk.js} +2 -2
  30. package/dist/scripts/{cBssbttB.chunk.js.map → CQNeP_Yp.chunk.js.map} +1 -1
  31. package/dist/scripts/{Cv9H330A2.chunk.js → ClDdEKYV2.chunk.js} +2 -2
  32. package/dist/scripts/{Cv9H330A2.chunk.js.map → ClDdEKYV2.chunk.js.map} +1 -1
  33. package/dist/scripts/{CglHgfcX.chunk.js → Cu6M80aY.chunk.js} +2 -2
  34. package/dist/scripts/{CglHgfcX.chunk.js.map → Cu6M80aY.chunk.js.map} +1 -1
  35. package/dist/scripts/{dMt3Yeox.chunk.js → D0Iup4vX.chunk.js} +3 -3
  36. package/dist/scripts/{dMt3Yeox.chunk.js.map → D0Iup4vX.chunk.js.map} +1 -1
  37. package/dist/scripts/{BCPzswJq.chunk.js → D5SnHbk-.chunk.js} +2 -2
  38. package/dist/scripts/{BCPzswJq.chunk.js.map → D5SnHbk-.chunk.js.map} +1 -1
  39. package/dist/scripts/{CudCJxPc2.chunk.js → DHGyxAjV2.chunk.js} +2 -2
  40. package/dist/scripts/{CudCJxPc2.chunk.js.map → DHGyxAjV2.chunk.js.map} +1 -1
  41. package/dist/scripts/{B2L2H3g9.chunk.js → DMQIqlrn.chunk.js} +2 -2
  42. package/dist/scripts/{B2L2H3g9.chunk.js.map → DMQIqlrn.chunk.js.map} +1 -1
  43. package/dist/scripts/{CFA2yuiv.chunk.js → DSOStB3B.chunk.js} +2 -2
  44. package/dist/scripts/{CFA2yuiv.chunk.js.map → DSOStB3B.chunk.js.map} +1 -1
  45. package/dist/scripts/{CPw6bsFu2.chunk.js → DaN1d6Pn2.chunk.js} +2 -2
  46. package/dist/scripts/{CPw6bsFu2.chunk.js.map → DaN1d6Pn2.chunk.js.map} +1 -1
  47. package/dist/scripts/{D68hdbWD2.chunk.js → DeAZkXBA2.chunk.js} +2 -2
  48. package/dist/scripts/{D68hdbWD2.chunk.js.map → DeAZkXBA2.chunk.js.map} +1 -1
  49. package/dist/scripts/{BPVl1Je7.chunk.js → DeQ431eX.chunk.js} +2 -2
  50. package/dist/scripts/{BPVl1Je7.chunk.js.map → DeQ431eX.chunk.js.map} +1 -1
  51. package/dist/scripts/DuNznK6r.chunk.js +1 -0
  52. package/dist/scripts/{oPoOD_J-2.chunk.js → Duq0DLsG2.chunk.js} +2 -2
  53. package/dist/scripts/{oPoOD_J-2.chunk.js.map → Duq0DLsG2.chunk.js.map} +1 -1
  54. package/dist/scripts/{BHTp9hJG.chunk.js → Dxi0YECT.chunk.js} +2 -2
  55. package/dist/scripts/{BHTp9hJG.chunk.js.map → Dxi0YECT.chunk.js.map} +1 -1
  56. package/dist/scripts/{D3WnBGZG.chunk.js → KApJ0N8H.chunk.js} +2 -2
  57. package/dist/scripts/{D3WnBGZG.chunk.js.map → KApJ0N8H.chunk.js.map} +1 -1
  58. package/dist/scripts/{DcKDIHY92.chunk.js → LH8waKdJ2.chunk.js} +2 -2
  59. package/dist/scripts/{DcKDIHY92.chunk.js.map → LH8waKdJ2.chunk.js.map} +1 -1
  60. package/dist/scripts/{DNKj09Lh2.chunk.js → O4R5nbYC2.chunk.js} +2 -2
  61. package/dist/scripts/{DNKj09Lh2.chunk.js.map → O4R5nbYC2.chunk.js.map} +1 -1
  62. package/dist/scripts/{BQjyL0qS2.chunk.js → VhnfG4dU2.chunk.js} +2 -2
  63. package/dist/scripts/{BQjyL0qS2.chunk.js.map → VhnfG4dU2.chunk.js.map} +1 -1
  64. package/dist/scripts/{app-cakVQEAF.js → app-DLh9RnwX.js} +4 -4
  65. package/dist/scripts/{app-cakVQEAF.js.map → app-DLh9RnwX.js.map} +1 -1
  66. package/dist/scripts/{Dj68Q14w.chunk.js → e3pgZZ_n.chunk.js} +2 -2
  67. package/dist/scripts/{Dj68Q14w.chunk.js.map → e3pgZZ_n.chunk.js.map} +1 -1
  68. package/dist/scripts/{DrBRL2aF.chunk.js → mKkhzqL1.chunk.js} +2 -2
  69. package/dist/scripts/{DrBRL2aF.chunk.js.map → mKkhzqL1.chunk.js.map} +1 -1
  70. package/package.json +1 -1
  71. package/dist/scripts/296Drw6z.chunk.js.map +0 -1
  72. package/dist/scripts/CyRTALRJ.chunk.js +0 -1
  73. package/dist/scripts/Dm7M2BT8.chunk.js +0 -1
@@ -1,2 +1,2 @@
1
- import{P as e,st as t}from"./BSV_W0cK.chunk.js";import{d as n,n as r}from"./DLiesDxa.chunk.js";import{t as i}from"./Bqlm3yF_.chunk.js";import{t as a}from"./H5KLIhR_.chunk.js";import{t as o}from"./DmGbjBUG.chunk.js";import{t as s}from"./Du_kaCuU.chunk.js";import{r as c}from"./app-cakVQEAF.js";import{t as l}from"./PLyhtHwt2.chunk.js";import{c as u}from"./DcKDIHY92.chunk.js";import{n as d,t as f}from"./oPoOD_J-2.chunk.js";import{n as p}from"./BWJBtdAK2.chunk.js";import{n as m,t as h}from"./CMQlrOon2.chunk.js";import{i as g,n as _}from"./BCPzswJq.chunk.js";import{t as v}from"./D3WnBGZG.chunk.js";import{n as y,t as b}from"./CFA2yuiv.chunk.js";t();var x={image:`_image_1a110_1`},S=e(),C=i.encloseNamespace(`reportsShared.totalViewsByContentCardEmptyState`);function w(){return(0,S.jsxs)(s,{className:`flex-grow-1 justify-content-center`,children:[(0,S.jsx)(s.Image,{src:a.EmptyStates.Shared.PuzzleGroup,className:x.image}),(0,S.jsx)(s.Heading,{className:`h6`,children:C(`heading`)}),(0,S.jsx)(s.Info,{className:`w-100`,children:C(`description`)})]})}var T=`reportsShared.videoViewsByContentCard`,E=i.encloseNamespace(T),D=function(e){return e.ClickView=`ClickView content`,e.TV=`TV content`,e.UserGenerated=`User generated content`,e}(D||{});function O(){let e=c(`video-views`),t=n(l.aggregation(`content_type`,e));function i(e){switch(e){case D.ClickView:return u.YELLOW;case D.TV:return u.PURPLE;case D.UserGenerated:return u.GREEN}}function a(e){switch(e){case D.ClickView:return E(`clickview`);case D.TV:return E(`tv`);case D.UserGenerated:return E(`userGenerated`)}}function o(e){return e?e.filter(e=>e.name===D.ClickView||e.name===D.TV||e.name===D.UserGenerated).map(e=>({name:a(e.name),y:e.count,color:i(e.name)})):null}let s=o(t.data);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3`,children:s?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h2`,{className:`h6 mb-3`,children:(0,S.jsx)(r,{namespace:T,phrase:`videoViews`})}),s.length?(0,S.jsx)(y,{data:s}):(0,S.jsx)(w,{})]}):(0,S.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var k={column1:`_column1_1s749_1`,column2:`_column2_1s749_4`,videoViewsCard:`_videoViewsCard_1s749_7`},A=i.encloseNamespace(`videos.schoolVideoOverview`),j=50;function M(){return o({title:A(`videos`)}),p(A(`videos`)),g(_()),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(v,{}),(0,S.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,S.jsxs)(`div`,{className:`d-flex flex-column gap-3 ${k.column1}`,children:[(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(m,{type:`year_group`})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(b,{})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(O,{})})]}),(0,S.jsxs)(`div`,{className:`d-flex flex-column gap-3 ${k.column2}`,children:[(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(h,{type:`user_type`})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(f,{type:d.RootTopic,heading:A(`totalViewsSubject`),emptyStateText:A(`emptySubjects`),limit:j})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(f,{type:d.ChildTopic,heading:A(`totalViewsTopic`),emptyStateText:A(`emptyTopics`),limit:j})})]})]})]})}export{M as SchoolVideoOverviewView};
2
- //# sourceMappingURL=Dj68Q14w.chunk.js.map
1
+ import{P as e,st as t}from"./BSV_W0cK.chunk.js";import{d as n,n as r}from"./DLiesDxa.chunk.js";import{t as i}from"./Bqlm3yF_.chunk.js";import{t as a}from"./H5KLIhR_.chunk.js";import{t as o}from"./DmGbjBUG.chunk.js";import{t as s}from"./Du_kaCuU.chunk.js";import{r as c}from"./app-DLh9RnwX.js";import{t as l}from"./C46TEWQx2.chunk.js";import{c as u}from"./LH8waKdJ2.chunk.js";import{n as d,t as f}from"./Duq0DLsG2.chunk.js";import{n as p}from"./B9u-BJ_k2.chunk.js";import{n as m,t as h}from"./C21pODi22.chunk.js";import{i as g,n as _}from"./D5SnHbk-.chunk.js";import{t as v}from"./KApJ0N8H.chunk.js";import{n as y,t as b}from"./DSOStB3B.chunk.js";t();var x={image:`_image_1a110_1`},S=e(),C=i.encloseNamespace(`reportsShared.totalViewsByContentCardEmptyState`);function w(){return(0,S.jsxs)(s,{className:`flex-grow-1 justify-content-center`,children:[(0,S.jsx)(s.Image,{src:a.EmptyStates.Shared.PuzzleGroup,className:x.image}),(0,S.jsx)(s.Heading,{className:`h6`,children:C(`heading`)}),(0,S.jsx)(s.Info,{className:`w-100`,children:C(`description`)})]})}var T=`reportsShared.videoViewsByContentCard`,E=i.encloseNamespace(T),D=function(e){return e.ClickView=`ClickView content`,e.TV=`TV content`,e.UserGenerated=`User generated content`,e}(D||{});function O(){let e=c(`video-views`),t=n(l.aggregation(`content_type`,e));function i(e){switch(e){case D.ClickView:return u.YELLOW;case D.TV:return u.PURPLE;case D.UserGenerated:return u.GREEN}}function a(e){switch(e){case D.ClickView:return E(`clickview`);case D.TV:return E(`tv`);case D.UserGenerated:return E(`userGenerated`)}}function o(e){return e?e.filter(e=>e.name===D.ClickView||e.name===D.TV||e.name===D.UserGenerated).map(e=>({name:a(e.name),y:e.count,color:i(e.name)})):null}let s=o(t.data);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3`,children:s?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h2`,{className:`h6 mb-3`,children:(0,S.jsx)(r,{namespace:T,phrase:`videoViews`})}),s.length?(0,S.jsx)(y,{data:s}):(0,S.jsx)(w,{})]}):(0,S.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var k={column1:`_column1_1s749_1`,column2:`_column2_1s749_4`,videoViewsCard:`_videoViewsCard_1s749_7`},A=i.encloseNamespace(`videos.schoolVideoOverview`),j=50;function M(){return o({title:A(`videos`)}),p(A(`videos`)),g(_()),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(v,{}),(0,S.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,S.jsxs)(`div`,{className:`d-flex flex-column gap-3 ${k.column1}`,children:[(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(m,{type:`year_group`})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(b,{})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(O,{})})]}),(0,S.jsxs)(`div`,{className:`d-flex flex-column gap-3 ${k.column2}`,children:[(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(h,{type:`user_type`})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(f,{type:d.RootTopic,heading:A(`totalViewsSubject`),emptyStateText:A(`emptySubjects`),limit:j})}),(0,S.jsx)(`div`,{className:k.videoViewsCard,children:(0,S.jsx)(f,{type:d.ChildTopic,heading:A(`totalViewsTopic`),emptyStateText:A(`emptyTopics`),limit:j})})]})]})]})}export{M as SchoolVideoOverviewView};
2
+ //# sourceMappingURL=e3pgZZ_n.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dj68Q14w.chunk.js","names":[],"sources":["../../src/shared/views/overview-cards/video-views-by-content-card/empty-state/total-views-by-content-card-empty-state.module.scss","../../src/shared/views/overview-cards/video-views-by-content-card/empty-state/TotalViewsByContentCardEmptyState.tsx","../../src/shared/views/overview-cards/video-views-by-content-card/VideoViewsByContentCard.tsx","../../src/apps/videos/views/school-video-overview/school-video-overview.module.scss","../../src/apps/videos/views/school-video-overview/SchoolVideoOverviewView.tsx"],"sourcesContent":[":local {\n .image {\n width: 12.5rem;\n height: auto;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nimport styles from './total-views-by-content-card-empty-state.module.scss';\n\nconst namespace = 'reportsShared.totalViewsByContentCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TotalViewsByContentCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.PuzzleGroup}\n className={styles.image}\n />\n <EmptyState.Heading className='h6'>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ColumnChart } from 'shared/components/column-chart/ColumnChart';\nimport { CHART_COLOUR } from 'shared/constants/ChartStyles';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TotalViewsByContentCardEmptyState } from 'shared/views/overview-cards/video-views-by-content-card/empty-state/TotalViewsByContentCardEmptyState';\n\nconst namespace = 'reportsShared.videoViewsByContentCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nenum ContentType {\n ClickView = 'ClickView content',\n TV = 'TV content',\n UserGenerated = 'User generated content'\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoViewsByContentCardView() {\n const requestFilter = useGetRequestFilter('video-views');\n\n const contentTypeCount = Flight.useBasicFetch<GroupedAnalyticsCount[]>(\n VideoViewsV2Requests.aggregation('content_type', requestFilter)\n );\n\n function mapContentTypeToChartColour(contentType: string) {\n switch (contentType) {\n case ContentType.ClickView: return CHART_COLOUR.YELLOW;\n case ContentType.TV: return CHART_COLOUR.PURPLE;\n case ContentType.UserGenerated: return CHART_COLOUR.GREEN;\n }\n }\n\n function mapContentTypeToLabel(contentType: string) {\n switch (contentType) {\n case ContentType.ClickView: return getPhrase('clickview');\n case ContentType.TV: return getPhrase('tv');\n case ContentType.UserGenerated: return getPhrase('userGenerated');\n }\n }\n\n function getChartData(contentTypeCount: GroupedAnalyticsCount[]) {\n if (!contentTypeCount) return null;\n\n const mappedGroups = contentTypeCount.filter(group => (\n group.name === ContentType.ClickView ||\n group.name === ContentType.TV ||\n group.name === ContentType.UserGenerated\n )).map(group => ({\n name: mapContentTypeToLabel(group.name),\n y: group.count,\n color: mapContentTypeToChartColour(group.name)\n }));\n\n return mappedGroups;\n }\n\n const chartData = getChartData(contentTypeCount.data);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3'>\n {chartData ?\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='videoViews' /></h2>\n\n {chartData.length ?\n <ColumnChart data={chartData} /> :\n <TotalViewsByContentCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n",":local {\n .column1 {\n flex: 3 0;\n }\n \n .column2 {\n flex: 4 0;\n }\n\n .videoViewsCard {\n height: 20rem;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { getVideoHeaderActions } from 'shared/utils/HeaderActionUtils';\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';\nimport { VideoViewsByContentCardView } from 'shared/views/overview-cards/video-views-by-content-card/VideoViewsByContentCard';\nimport { VideoViewsByRoleCardView } from 'shared/views/overview-cards/video-views-by-role-card/VideoViewsByRoleCardView';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\n\nimport styles from './school-video-overview.module.scss';\n\nconst namespace = 'videos.schoolVideoOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst TOP_CLASSIFICATIONS_LIMIT = 50;\n\nexport function SchoolVideoOverviewView(): JSX.Element {\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n useSetHeaderActions(getVideoHeaderActions());\n\n return (\n <div>\n <SchoolVideosNav />\n <div className='d-flex gap-3'>\n <div className={`d-flex flex-column gap-3 ${styles.column1}`}>\n <div className={styles.videoViewsCard}>\n <StreamsBarChartCardView type='year_group' />\n </div>\n <div className={styles.videoViewsCard}>\n <VideoViewsByRoleCardView />\n </div>\n <div className={styles.videoViewsCard}>\n <VideoViewsByContentCardView />\n </div>\n </div>\n <div className={`d-flex flex-column gap-3 ${styles.column2}`}>\n <div className={styles.videoViewsCard}>\n <StreamsChartCardView type='user_type' />\n </div>\n <div className={styles.videoViewsCard}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('totalViewsSubject')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.videoViewsCard}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.ChildTopic}\n heading={getPhrase('totalViewsTopic')}\n emptyStateText={getPhrase('emptyTopics')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"e3pgZZ_n.chunk.js","names":[],"sources":["../../src/shared/views/overview-cards/video-views-by-content-card/empty-state/total-views-by-content-card-empty-state.module.scss","../../src/shared/views/overview-cards/video-views-by-content-card/empty-state/TotalViewsByContentCardEmptyState.tsx","../../src/shared/views/overview-cards/video-views-by-content-card/VideoViewsByContentCard.tsx","../../src/apps/videos/views/school-video-overview/school-video-overview.module.scss","../../src/apps/videos/views/school-video-overview/SchoolVideoOverviewView.tsx"],"sourcesContent":[":local {\n .image {\n width: 12.5rem;\n height: auto;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nimport styles from './total-views-by-content-card-empty-state.module.scss';\n\nconst namespace = 'reportsShared.totalViewsByContentCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TotalViewsByContentCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.PuzzleGroup}\n className={styles.image}\n />\n <EmptyState.Heading className='h6'>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ColumnChart } from 'shared/components/column-chart/ColumnChart';\nimport { CHART_COLOUR } from 'shared/constants/ChartStyles';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TotalViewsByContentCardEmptyState } from 'shared/views/overview-cards/video-views-by-content-card/empty-state/TotalViewsByContentCardEmptyState';\n\nconst namespace = 'reportsShared.videoViewsByContentCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nenum ContentType {\n ClickView = 'ClickView content',\n TV = 'TV content',\n UserGenerated = 'User generated content'\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoViewsByContentCardView() {\n const requestFilter = useGetRequestFilter('video-views');\n\n const contentTypeCount = Flight.useBasicFetch<GroupedAnalyticsCount[]>(\n VideoViewsV2Requests.aggregation('content_type', requestFilter)\n );\n\n function mapContentTypeToChartColour(contentType: string) {\n switch (contentType) {\n case ContentType.ClickView: return CHART_COLOUR.YELLOW;\n case ContentType.TV: return CHART_COLOUR.PURPLE;\n case ContentType.UserGenerated: return CHART_COLOUR.GREEN;\n }\n }\n\n function mapContentTypeToLabel(contentType: string) {\n switch (contentType) {\n case ContentType.ClickView: return getPhrase('clickview');\n case ContentType.TV: return getPhrase('tv');\n case ContentType.UserGenerated: return getPhrase('userGenerated');\n }\n }\n\n function getChartData(contentTypeCount: GroupedAnalyticsCount[]) {\n if (!contentTypeCount) return null;\n\n const mappedGroups = contentTypeCount.filter(group => (\n group.name === ContentType.ClickView ||\n group.name === ContentType.TV ||\n group.name === ContentType.UserGenerated\n )).map(group => ({\n name: mapContentTypeToLabel(group.name),\n y: group.count,\n color: mapContentTypeToChartColour(group.name)\n }));\n\n return mappedGroups;\n }\n\n const chartData = getChartData(contentTypeCount.data);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3'>\n {chartData ?\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='videoViews' /></h2>\n\n {chartData.length ?\n <ColumnChart data={chartData} /> :\n <TotalViewsByContentCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n",":local {\n .column1 {\n flex: 3 0;\n }\n \n .column2 {\n flex: 4 0;\n }\n\n .videoViewsCard {\n height: 20rem;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { getVideoHeaderActions } from 'shared/utils/HeaderActionUtils';\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';\nimport { VideoViewsByContentCardView } from 'shared/views/overview-cards/video-views-by-content-card/VideoViewsByContentCard';\nimport { VideoViewsByRoleCardView } from 'shared/views/overview-cards/video-views-by-role-card/VideoViewsByRoleCardView';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\n\nimport styles from './school-video-overview.module.scss';\n\nconst namespace = 'videos.schoolVideoOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst TOP_CLASSIFICATIONS_LIMIT = 50;\n\nexport function SchoolVideoOverviewView(): JSX.Element {\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n useSetHeaderActions(getVideoHeaderActions());\n\n return (\n <div>\n <SchoolVideosNav />\n <div className='d-flex gap-3'>\n <div className={`d-flex flex-column gap-3 ${styles.column1}`}>\n <div className={styles.videoViewsCard}>\n <StreamsBarChartCardView type='year_group' />\n </div>\n <div className={styles.videoViewsCard}>\n <VideoViewsByRoleCardView />\n </div>\n <div className={styles.videoViewsCard}>\n <VideoViewsByContentCardView />\n </div>\n </div>\n <div className={`d-flex flex-column gap-3 ${styles.column2}`}>\n <div className={styles.videoViewsCard}>\n <StreamsChartCardView type='user_type' />\n </div>\n <div className={styles.videoViewsCard}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('totalViewsSubject')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.videoViewsCard}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.ChildTopic}\n heading={getPhrase('totalViewsTopic')}\n emptyStateText={getPhrase('emptyTopics')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{E as e,Kn as t,P as n,b as r,st as i,x as a,y as o}from"./BSV_W0cK.chunk.js";import{d as s}from"./DLiesDxa.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./07ZZlAWY.chunk.js";import{t as d}from"./DmGbjBUG.chunk.js";import{t as f}from"./DHk1ZJ0C.chunk.js";import{t as p}from"./Du_kaCuU.chunk.js";import{h as m,l as h,n as g,r as _,u as v}from"./app-cakVQEAF.js";import{n as y,r as b,t as x}from"./CmiQpwgd2.chunk.js";import{t as S}from"./PLyhtHwt2.chunk.js";import{t as C}from"./Cv9H330A2.chunk.js";import{n as w}from"./BWJBtdAK2.chunk.js";import{r as T,t as E}from"./BVgajZti.chunk.js";import{t as D}from"./D3WnBGZG.chunk.js";var O=t(e()),k=t(i()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...i},s)=>{let c=a(e,`row`),l=o(),u=r(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=i[e];delete i[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let r=e===u?``:`-${e}`;n!=null&&f.push(`${d}${r}-${n}`)}),(0,A.jsx)(n,{ref:s,...i,className:(0,O.default)(t,c,...f)})});j.displayName=`Row`;var M={videoTable:`_videoTable_14eqw_1`,interactiveTable:`_interactiveTable_14eqw_4`,userTable:`_userTable_14eqw_7`,header:`_header_14eqw_10`,itemHeader:`_itemHeader_14eqw_13`,videoItemContainer:`_videoItemContainer_14eqw_16`,interactiveItemContainer:`_interactiveItemContainer_14eqw_19`,userItemContainer:`_userItemContainer_14eqw_22`,heatMapItemContainer:`_heatMapItemContainer_14eqw_25`,partialAvatar:`_partialAvatar_14eqw_28`,partialNumber:`_partialNumber_14eqw_33`,partialLongText:`_partialLongText_14eqw_37`,partialMediumText:`_partialMediumText_14eqw_41`,partialShortText:`_partialShortText_14eqw_45`,partialThumbnail:`_partialThumbnail_14eqw_49`,partialHeatMap:`_partialHeatMap_14eqw_53`},N=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),P=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),F=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.heatMapItemContainer} ${M.partialShortText}`})})]});function I(e){switch(e){case`video-views`:return{headerComponent:N,tableStyle:M.videoTable};case`interactives`:return{headerComponent:P,tableStyle:M.interactiveTable};case`engagement-users`:return{headerComponent:F,tableStyle:M.userTable};default:return{headerComponent:(0,A.jsx)(A.Fragment,{}),tableStyle:``}}}function L(e){let{headerComponent:t,tableStyle:n}=I(e.variant);return(0,A.jsxs)(`div`,{className:`bg-white rounded ${n} ${e.className??``}`,children:[(0,A.jsx)(`div`,{className:`border-bottom ${M.header} ${e.headerClassName??``}`,children:t}),e.children]})}function R(){return(0,A.jsxs)(j,{className:`py-1 ${M.videoItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function z(){return(0,A.jsxs)(j,{className:`py-1 ${M.interactiveItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialAvatar}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function B(){return(0,A.jsxs)(j,{className:`my-2 ${M.userItemContainer}`,children:[(0,A.jsxs)(u,{xs:2,className:`d-flex align-items-center `,children:[(0,A.jsx)(`div`,{className:`partial-loading-background ms-3 ${M.partialAvatar}`}),(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})]}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.heatMapItemContainer} ${M.partialHeatMap}`})})]})}function V(e,t){switch(e){case`video-views`:return(0,A.jsx)(R,{},t);case`interactives`:return(0,A.jsx)(z,{},t);case`engagement-users`:return(0,A.jsx)(B,{},t);default:return(0,A.jsx)(A.Fragment,{})}}H.defaultProps={itemCount:7};function H(e){return(0,A.jsx)(`div`,{className:`my-1`,children:Array(e.itemCount).fill(null).map((t,n)=>V(e.variant,n))})}var U=c.encloseNamespace(`reportsVideos.videoViewsTableEmptyState`);function W(){return(0,A.jsxs)(p,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(p.Image,{src:l.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(p.Heading,{children:U(`heading`)}),(0,A.jsx)(p.Info,{children:U(`description`)})]})}var G={title:`_title_3yzlb_1`,thumbnail:`_thumbnail_3yzlb_2`,seeOverview:`_seeOverview_3yzlb_8`,row:`_row_3yzlb_11`},K=c.encloseNamespace(`reportsVideos.videoViewsTable`),q={table:`bg-white rounded`,header:`border-bottom`,headerCell:`p-3`,row:G.row,cell:`p-3`},J=[{Header:()=>(0,A.jsx)(`div`,{className:`d-flex justify-content-end`,children:`#`}),accessor:`object`,id:`index`,Cell:({row:{index:e}})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center justify-content-end h-100`,children:e+1}),width:5,disableSortBy:!0},{Header:e=>(0,A.jsx)(`div`,{className:G.title,children:(0,A.jsxs)(A.Fragment,{children:[K(`title`),` `,e.renderSortIndicator()]})}),accessor:`object`,id:`image`,Cell:({value:e})=>(0,A.jsx)(x,{video:e,imageOptions:{size:f.Small},textPosition:y.Independent,type:`cosmetic`,hideMask:!0,extraClasses:G.thumbnail,newDurationStyle:!0,size:`sm`}),width:30,hideSortIndicator:!0,sortType:(e,t)=>e.original.object.name?.toLowerCase()>t.original.object.name?.toLowerCase()?1:-1},{accessor:`object`,id:`name`,Cell:({value:e})=>(0,A.jsxs)(`div`,{className:`d-flex flex-column justify-content-center h-100`,children:[v.isVideoType(e)&&(0,A.jsx)(b,{type:`series`,video:e,analyticsOptions:null,className:`d-inline clamp-1`}),(0,A.jsx)(`span`,{className:`text-truncate`,children:e.name})]}),width:60,disableSortBy:!0},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`contentType`)}),accessor:`contentType`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`views`)}),accessor:`combinedCount`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{accessor:`object`,id:`see-overview`,Cell:()=>(0,A.jsx)(`div`,{className:`${G.seeOverview} align-items-center h-100 text-info`,children:K(`seeAnalytics`)}),width:25,disableSortBy:!0}];function Y(e){let t=g();function n(n){return e.getVideoAppLink(n.original.object,t)}return(0,A.jsx)(E,{columns:J,data:e.videos,theme:q,getRowAppLink:n,enableSort:!0})}var X=c.encloseNamespace(`reportsVideos.schoolTopVideosView`),Z=100;function Q(){let e=_(`video-views`),t=s(S.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],m.videos);T(t),d({title:X(`videos`)}),w(X(`videos`));let r=t.hasCompleted&&!n.isFetching,i=!!n.itemsArr?.length,a=t.data?.map(e=>{let t=n.items?.[e?.objectId];return t?{count:e.count,object:t,contentType:e.contentType,combinedCount:e.combinedCount}:null}).filter(e=>!!e);return(0,A.jsxs)(`div`,{className:`pb-3`,children:[(0,A.jsx)(D,{}),!r&&(0,A.jsx)(L,{variant:`video-views`,children:(0,A.jsx)(H,{variant:`video-views`})}),r&&i&&(0,A.jsx)(Y,{videos:a,getVideoAppLink:h}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
- //# sourceMappingURL=DrBRL2aF.chunk.js.map
1
+ import{E as e,Kn as t,P as n,b as r,st as i,x as a,y as o}from"./BSV_W0cK.chunk.js";import{d as s}from"./DLiesDxa.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./07ZZlAWY.chunk.js";import{t as d}from"./DmGbjBUG.chunk.js";import{t as f}from"./DHk1ZJ0C.chunk.js";import{t as p}from"./Du_kaCuU.chunk.js";import{h as m,l as h,n as g,r as _,u as v}from"./app-DLh9RnwX.js";import{n as y,r as b,t as x}from"./C-4Pza2l2.chunk.js";import{t as S}from"./C46TEWQx2.chunk.js";import{t as C}from"./ClDdEKYV2.chunk.js";import{n as w}from"./B9u-BJ_k2.chunk.js";import{r as T,t as E}from"./BNQGo_Gd.chunk.js";import{t as D}from"./KApJ0N8H.chunk.js";var O=t(e()),k=t(i()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...i},s)=>{let c=a(e,`row`),l=o(),u=r(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=i[e];delete i[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let r=e===u?``:`-${e}`;n!=null&&f.push(`${d}${r}-${n}`)}),(0,A.jsx)(n,{ref:s,...i,className:(0,O.default)(t,c,...f)})});j.displayName=`Row`;var M={videoTable:`_videoTable_14eqw_1`,interactiveTable:`_interactiveTable_14eqw_4`,userTable:`_userTable_14eqw_7`,header:`_header_14eqw_10`,itemHeader:`_itemHeader_14eqw_13`,videoItemContainer:`_videoItemContainer_14eqw_16`,interactiveItemContainer:`_interactiveItemContainer_14eqw_19`,userItemContainer:`_userItemContainer_14eqw_22`,heatMapItemContainer:`_heatMapItemContainer_14eqw_25`,partialAvatar:`_partialAvatar_14eqw_28`,partialNumber:`_partialNumber_14eqw_33`,partialLongText:`_partialLongText_14eqw_37`,partialMediumText:`_partialMediumText_14eqw_41`,partialShortText:`_partialShortText_14eqw_45`,partialThumbnail:`_partialThumbnail_14eqw_49`,partialHeatMap:`_partialHeatMap_14eqw_53`},N=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),P=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),F=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.heatMapItemContainer} ${M.partialShortText}`})})]});function I(e){switch(e){case`video-views`:return{headerComponent:N,tableStyle:M.videoTable};case`interactives`:return{headerComponent:P,tableStyle:M.interactiveTable};case`engagement-users`:return{headerComponent:F,tableStyle:M.userTable};default:return{headerComponent:(0,A.jsx)(A.Fragment,{}),tableStyle:``}}}function L(e){let{headerComponent:t,tableStyle:n}=I(e.variant);return(0,A.jsxs)(`div`,{className:`bg-white rounded ${n} ${e.className??``}`,children:[(0,A.jsx)(`div`,{className:`border-bottom ${M.header} ${e.headerClassName??``}`,children:t}),e.children]})}function R(){return(0,A.jsxs)(j,{className:`py-1 ${M.videoItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function z(){return(0,A.jsxs)(j,{className:`py-1 ${M.interactiveItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialAvatar}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function B(){return(0,A.jsxs)(j,{className:`my-2 ${M.userItemContainer}`,children:[(0,A.jsxs)(u,{xs:2,className:`d-flex align-items-center `,children:[(0,A.jsx)(`div`,{className:`partial-loading-background ms-3 ${M.partialAvatar}`}),(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})]}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.heatMapItemContainer} ${M.partialHeatMap}`})})]})}function V(e,t){switch(e){case`video-views`:return(0,A.jsx)(R,{},t);case`interactives`:return(0,A.jsx)(z,{},t);case`engagement-users`:return(0,A.jsx)(B,{},t);default:return(0,A.jsx)(A.Fragment,{})}}H.defaultProps={itemCount:7};function H(e){return(0,A.jsx)(`div`,{className:`my-1`,children:Array(e.itemCount).fill(null).map((t,n)=>V(e.variant,n))})}var U=c.encloseNamespace(`reportsVideos.videoViewsTableEmptyState`);function W(){return(0,A.jsxs)(p,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(p.Image,{src:l.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(p.Heading,{children:U(`heading`)}),(0,A.jsx)(p.Info,{children:U(`description`)})]})}var G={title:`_title_3yzlb_1`,thumbnail:`_thumbnail_3yzlb_2`,seeOverview:`_seeOverview_3yzlb_8`,row:`_row_3yzlb_11`},K=c.encloseNamespace(`reportsVideos.videoViewsTable`),q={table:`bg-white rounded`,header:`border-bottom`,headerCell:`p-3`,row:G.row,cell:`p-3`},J=[{Header:()=>(0,A.jsx)(`div`,{className:`d-flex justify-content-end`,children:`#`}),accessor:`object`,id:`index`,Cell:({row:{index:e}})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center justify-content-end h-100`,children:e+1}),width:5,disableSortBy:!0},{Header:e=>(0,A.jsx)(`div`,{className:G.title,children:(0,A.jsxs)(A.Fragment,{children:[K(`title`),` `,e.renderSortIndicator()]})}),accessor:`object`,id:`image`,Cell:({value:e})=>(0,A.jsx)(x,{video:e,imageOptions:{size:f.Small},textPosition:y.Independent,type:`cosmetic`,hideMask:!0,extraClasses:G.thumbnail,newDurationStyle:!0,size:`sm`}),width:30,hideSortIndicator:!0,sortType:(e,t)=>e.original.object.name?.toLowerCase()>t.original.object.name?.toLowerCase()?1:-1},{accessor:`object`,id:`name`,Cell:({value:e})=>(0,A.jsxs)(`div`,{className:`d-flex flex-column justify-content-center h-100`,children:[v.isVideoType(e)&&(0,A.jsx)(b,{type:`series`,video:e,analyticsOptions:null,className:`d-inline clamp-1`}),(0,A.jsx)(`span`,{className:`text-truncate`,children:e.name})]}),width:60,disableSortBy:!0},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`contentType`)}),accessor:`contentType`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`views`)}),accessor:`combinedCount`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{accessor:`object`,id:`see-overview`,Cell:()=>(0,A.jsx)(`div`,{className:`${G.seeOverview} align-items-center h-100 text-info`,children:K(`seeAnalytics`)}),width:25,disableSortBy:!0}];function Y(e){let t=g();function n(n){return e.getVideoAppLink(n.original.object,t)}return(0,A.jsx)(E,{columns:J,data:e.videos,theme:q,getRowAppLink:n,enableSort:!0})}var X=c.encloseNamespace(`reportsVideos.schoolTopVideosView`),Z=100;function Q(){let e=_(`video-views`),t=s(S.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],m.videos);T(t),d({title:X(`videos`)}),w(X(`videos`));let r=t.hasCompleted&&!n.isFetching,i=!!n.itemsArr?.length,a=t.data?.map(e=>{let t=n.items?.[e?.objectId];return t?{count:e.count,object:t,contentType:e.contentType,combinedCount:e.combinedCount}:null}).filter(e=>!!e);return(0,A.jsxs)(`div`,{className:`pb-3`,children:[(0,A.jsx)(D,{}),!r&&(0,A.jsx)(L,{variant:`video-views`,children:(0,A.jsx)(H,{variant:`video-views`})}),r&&i&&(0,A.jsx)(Y,{videos:a,getVideoAppLink:h}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
+ //# sourceMappingURL=mKkhzqL1.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrBRL2aF.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../src/shared/components/partial-loading/partial-loading.module.scss","../../src/shared/components/partial-loading/PartialTable.tsx","../../src/shared/components/partial-loading/PartialTableContent.tsx","../../src/apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState.tsx","../../src/apps/videos/components/video-views-table/video-views-table.module.scss","../../src/apps/videos/components/video-views-table/VideoViewsTable.tsx","../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;",":local {\n // Table styles\n\n .videoTable {\n height: 62rem;\n }\n\n .interactiveTable {\n height: 57rem;\n }\n\n .userTable {\n height: 14rem;\n }\n\n .header {\n height: 3.825rem\n }\n\n .itemHeader {\n height: 3.825rem\n }\n\n // Item styles\n\n .videoItemContainer {\n height: 8.125rem;\n }\n\n .interactiveItemContainer {\n height: 7.375rem;\n }\n\n .userItemContainer {\n height: 2.5625rem;\n }\n\n .heatMapItemContainer {\n margin-left: 6rem;\n }\n\n .partialAvatar {\n width: $avatar-width;\n height: $avatar-width;\n border-radius: 50%;\n }\n\n .partialNumber {\n width: 2rem;\n height: 1.1rem;\n }\n\n .partialLongText {\n width: 16rem;\n height: 1.1rem;\n }\n\n .partialMediumText {\n width: 10rem;\n height: 1.1rem;\n }\n\n .partialShortText {\n width: 5rem;\n height: 1.1rem;\n }\n\n .partialThumbnail {\n width: 10rem;\n padding-bottom: 56.25%;\n }\n\n .partialHeatMap {\n width: 34rem;\n height: 1.1rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './partial-loading.module.scss';\n\nconst VideoViewsHeader = (\n <Row className='py-3'>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst InteractivesHeader = (\n <Row className='py-3'>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst EngagementUsersHeader = (\n <Row className='py-3'>\n <Col xs={2} className='d-flex'>\n <div className={`partial-loading-background mx-3 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between'>\n <div className={`d-block partial-loading-background ${styles.heatMapItemContainer} ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nfunction getTableVariant(type: TableVariant) {\n switch (type) {\n case 'video-views':\n return {\n headerComponent: VideoViewsHeader,\n tableStyle: styles.videoTable\n };\n\n case 'interactives':\n return {\n headerComponent: InteractivesHeader,\n tableStyle: styles.interactiveTable\n };\n\n case 'engagement-users':\n return {\n headerComponent: EngagementUsersHeader,\n tableStyle: styles.userTable\n };\n\n default:\n return {\n headerComponent: <></>,\n tableStyle: ''\n };\n }\n}\n\nexport type TableVariant = 'video-views' | 'interactives' | 'engagement-users';\n\ninterface PartialTableProps {\n variant?: TableVariant;\n className?: string;\n headerClassName?: string;\n}\n\nexport function PartialTable(props: React.PropsWithChildren<PartialTableProps>): JSX.Element {\n const { headerComponent, tableStyle } = getTableVariant(props.variant);\n\n return (\n <div className={`bg-white rounded ${tableStyle} ${props.className ?? ''}`}>\n <div className={`border-bottom ${styles.header} ${props.headerClassName ?? ''}`}>\n {headerComponent}\n </div>\n {props.children}\n </div>\n );\n}\n","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsVideos.videoViewsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoViewsTableEmptyState(): JSX.Element {\n return (\n <EmptyState className='bg-white rounded justify-content-center py-5'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-25 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n",":local {\n .title,\n .thumbnail {\n min-width: 8rem;\n max-width: 10rem;\n margin-left: auto; \n margin-right: 0;\n }\n\n .seeOverview {\n display: none;\n }\n\n .row:hover {\n background-color: $light-blue;\n text-decoration: none;\n\n .seeOverview {\n display: flex;\n }\n }\n}","import React from 'react';\nimport { Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { Column, HeaderProps, Table, TableTheme } from 'libs/shared/components/table/Table';\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 { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideo } from 'shared/interfaces';\n\nimport styles from './video-views-table.module.scss';\n\nconst namespace = 'reportsVideos.videoViewsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst theme: TableTheme = {\n table: 'bg-white rounded',\n header: 'border-bottom',\n headerCell: 'p-3',\n row: styles.row,\n cell: 'p-3'\n};\n\nexport const COLUMNS: Column<TopVideo>[] = [\n {\n Header: () => (\n <div className='d-flex justify-content-end'>\n #\n </div>\n ),\n accessor: 'object',\n id: 'index',\n Cell: ({ row: { index } }) => (\n <div className='d-flex align-items-center justify-content-end h-100'>\n {index + 1}\n </div>\n ),\n width: 5,\n disableSortBy: true\n },\n {\n Header: (props: HeaderProps<TopVideo>) => (\n <div className={styles.title}>\n <>{getPhrase('title')} {props.renderSortIndicator()}</>\n </div>\n ),\n accessor: 'object',\n id: 'image',\n Cell: ({ value }) => (\n <VideoThumbnail\n video={value}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n extraClasses={styles.thumbnail}\n newDurationStyle\n size='sm'\n />\n ),\n width: 30,\n hideSortIndicator: true,\n sortType: (rowA: Row<TopVideo>, rowB: Row<TopVideo>) => {\n return rowA.original.object.name?.toLowerCase() > rowB.original.object.name?.toLowerCase() ? 1 : -1;\n }\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ value }) => (\n <div className='d-flex flex-column justify-content-center h-100'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='text-truncate'>{value.name}</span>\n </div>\n ),\n width: 60,\n disableSortBy: true\n },\n {\n Header: () => <>{getPhrase('contentType')}</>,\n accessor: 'contentType',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n Header: () => <>{getPhrase('views')}</>,\n accessor: 'combinedCount',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n accessor: 'object',\n id: 'see-overview',\n Cell: () => (\n <div className={`${styles.seeOverview} align-items-center h-100 text-info`}>\n {getPhrase('seeAnalytics')}\n </div>\n ),\n width: 25,\n disableSortBy: true\n }\n];\n\ninterface VideoViewsByVideoTableProps {\n videos: TopVideo[];\n getVideoAppLink: (object: VideoTypes, filterQueryParams: FilterQueryParams) => Core.AppLink;\n}\n\nexport function VideoViewsTable(props: VideoViewsByVideoTableProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n function getRowAppLink(row: Row<TopVideo>): Core.AppLink {\n return props.getVideoAppLink(row.original.object, filterQueryParams);\n }\n\n return (\n <Table\n columns={COLUMNS}\n data={props.videos}\n theme={theme}\n getRowAppLink={getRowAppLink}\n enableSort\n />\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\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 useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType,\n combinedCount: topStream.combinedCount\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"mKkhzqL1.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../src/shared/components/partial-loading/partial-loading.module.scss","../../src/shared/components/partial-loading/PartialTable.tsx","../../src/shared/components/partial-loading/PartialTableContent.tsx","../../src/apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState.tsx","../../src/apps/videos/components/video-views-table/video-views-table.module.scss","../../src/apps/videos/components/video-views-table/VideoViewsTable.tsx","../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;",":local {\n // Table styles\n\n .videoTable {\n height: 62rem;\n }\n\n .interactiveTable {\n height: 57rem;\n }\n\n .userTable {\n height: 14rem;\n }\n\n .header {\n height: 3.825rem\n }\n\n .itemHeader {\n height: 3.825rem\n }\n\n // Item styles\n\n .videoItemContainer {\n height: 8.125rem;\n }\n\n .interactiveItemContainer {\n height: 7.375rem;\n }\n\n .userItemContainer {\n height: 2.5625rem;\n }\n\n .heatMapItemContainer {\n margin-left: 6rem;\n }\n\n .partialAvatar {\n width: $avatar-width;\n height: $avatar-width;\n border-radius: 50%;\n }\n\n .partialNumber {\n width: 2rem;\n height: 1.1rem;\n }\n\n .partialLongText {\n width: 16rem;\n height: 1.1rem;\n }\n\n .partialMediumText {\n width: 10rem;\n height: 1.1rem;\n }\n\n .partialShortText {\n width: 5rem;\n height: 1.1rem;\n }\n\n .partialThumbnail {\n width: 10rem;\n padding-bottom: 56.25%;\n }\n\n .partialHeatMap {\n width: 34rem;\n height: 1.1rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './partial-loading.module.scss';\n\nconst VideoViewsHeader = (\n <Row className='py-3'>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst InteractivesHeader = (\n <Row className='py-3'>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst EngagementUsersHeader = (\n <Row className='py-3'>\n <Col xs={2} className='d-flex'>\n <div className={`partial-loading-background mx-3 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between'>\n <div className={`d-block partial-loading-background ${styles.heatMapItemContainer} ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nfunction getTableVariant(type: TableVariant) {\n switch (type) {\n case 'video-views':\n return {\n headerComponent: VideoViewsHeader,\n tableStyle: styles.videoTable\n };\n\n case 'interactives':\n return {\n headerComponent: InteractivesHeader,\n tableStyle: styles.interactiveTable\n };\n\n case 'engagement-users':\n return {\n headerComponent: EngagementUsersHeader,\n tableStyle: styles.userTable\n };\n\n default:\n return {\n headerComponent: <></>,\n tableStyle: ''\n };\n }\n}\n\nexport type TableVariant = 'video-views' | 'interactives' | 'engagement-users';\n\ninterface PartialTableProps {\n variant?: TableVariant;\n className?: string;\n headerClassName?: string;\n}\n\nexport function PartialTable(props: React.PropsWithChildren<PartialTableProps>): JSX.Element {\n const { headerComponent, tableStyle } = getTableVariant(props.variant);\n\n return (\n <div className={`bg-white rounded ${tableStyle} ${props.className ?? ''}`}>\n <div className={`border-bottom ${styles.header} ${props.headerClassName ?? ''}`}>\n {headerComponent}\n </div>\n {props.children}\n </div>\n );\n}\n","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsVideos.videoViewsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoViewsTableEmptyState(): JSX.Element {\n return (\n <EmptyState className='bg-white rounded justify-content-center py-5'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-25 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n",":local {\n .title,\n .thumbnail {\n min-width: 8rem;\n max-width: 10rem;\n margin-left: auto; \n margin-right: 0;\n }\n\n .seeOverview {\n display: none;\n }\n\n .row:hover {\n background-color: $light-blue;\n text-decoration: none;\n\n .seeOverview {\n display: flex;\n }\n }\n}","import React from 'react';\nimport { Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { Column, HeaderProps, Table, TableTheme } from 'libs/shared/components/table/Table';\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 { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideo } from 'shared/interfaces';\n\nimport styles from './video-views-table.module.scss';\n\nconst namespace = 'reportsVideos.videoViewsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst theme: TableTheme = {\n table: 'bg-white rounded',\n header: 'border-bottom',\n headerCell: 'p-3',\n row: styles.row,\n cell: 'p-3'\n};\n\nexport const COLUMNS: Column<TopVideo>[] = [\n {\n Header: () => (\n <div className='d-flex justify-content-end'>\n #\n </div>\n ),\n accessor: 'object',\n id: 'index',\n Cell: ({ row: { index } }) => (\n <div className='d-flex align-items-center justify-content-end h-100'>\n {index + 1}\n </div>\n ),\n width: 5,\n disableSortBy: true\n },\n {\n Header: (props: HeaderProps<TopVideo>) => (\n <div className={styles.title}>\n <>{getPhrase('title')} {props.renderSortIndicator()}</>\n </div>\n ),\n accessor: 'object',\n id: 'image',\n Cell: ({ value }) => (\n <VideoThumbnail\n video={value}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n extraClasses={styles.thumbnail}\n newDurationStyle\n size='sm'\n />\n ),\n width: 30,\n hideSortIndicator: true,\n sortType: (rowA: Row<TopVideo>, rowB: Row<TopVideo>) => {\n return rowA.original.object.name?.toLowerCase() > rowB.original.object.name?.toLowerCase() ? 1 : -1;\n }\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ value }) => (\n <div className='d-flex flex-column justify-content-center h-100'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='text-truncate'>{value.name}</span>\n </div>\n ),\n width: 60,\n disableSortBy: true\n },\n {\n Header: () => <>{getPhrase('contentType')}</>,\n accessor: 'contentType',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n Header: () => <>{getPhrase('views')}</>,\n accessor: 'combinedCount',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n accessor: 'object',\n id: 'see-overview',\n Cell: () => (\n <div className={`${styles.seeOverview} align-items-center h-100 text-info`}>\n {getPhrase('seeAnalytics')}\n </div>\n ),\n width: 25,\n disableSortBy: true\n }\n];\n\ninterface VideoViewsByVideoTableProps {\n videos: TopVideo[];\n getVideoAppLink: (object: VideoTypes, filterQueryParams: FilterQueryParams) => Core.AppLink;\n}\n\nexport function VideoViewsTable(props: VideoViewsByVideoTableProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n function getRowAppLink(row: Row<TopVideo>): Core.AppLink {\n return props.getVideoAppLink(row.original.object, filterQueryParams);\n }\n\n return (\n <Table\n columns={COLUMNS}\n data={props.videos}\n theme={theme}\n getRowAppLink={getRowAppLink}\n enableSort\n />\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\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 useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType,\n combinedCount: topStream.combinedCount\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/reports",
3
- "version": "0.86.0-rc.0",
3
+ "version": "0.86.0",
4
4
  "description": "ClickView Reports",
5
5
  "main": "dist/reports-app.js",
6
6
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"296Drw6z.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/SettingsHelper.ts","../../../../libs/shared/src/flight-requests/simulated/PublicSettingResponse.json","../../../../libs/shared/src/flight-requests/SettingRequests.ts","../../../../libs/shared/src/enums/SettingName.ts","../../../../libs/shared/src/hooks/useSettings.ts"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\n\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\n\nimport { SettingRequests } from '../flight-requests/SettingRequests';\nimport { CurrentUser, EntitySetting } from '../interfaces';\n\ninterface GetCustomerRequestOptions {\n success?: (data: SettingsLookup) => void;\n error?: () => void;\n}\n\nexport const SettingsHelper = {\n get<TValue = any>(settings: SettingsLookup, name: SettingName): TValue {\n return settings?.[name]?.value;\n },\n\n /**\n * Used to get public or authenticated customer request\n */\n getCustomerSettingsRequest(\n currentUser: CurrentUser,\n options?: GetCustomerRequestOptions\n ): Flight.Request | Flight.SimulatedRequest {\n if (currentUser?.isAuthenticated)\n return SettingRequests.customerSettings(options?.success, options?.error);\n\n return SettingRequests._publicCustomerSettings(options?.success, options?.error);\n },\n\n /**\n * Used to get public or authenticated user request\n */\n getUserSettingsRequest(\n currentUser: CurrentUser,\n options?: GetCustomerRequestOptions\n ): Flight.Request | Flight.SimulatedRequest {\n if (currentUser?.isAuthenticated)\n return SettingRequests.userSettings(options?.success, options?.error);\n\n return SettingRequests._publicUserSettings(options?.success, options?.error);\n },\n\n formatSettings(settings: Array<EntitySetting<any>>): SettingsLookup {\n return settings.reduce((acc: SettingsLookup, setting) => {\n acc[setting.name] = setting;\n return acc;\n }, {} as SettingsLookup);\n }\n};\n","[\n {\n \"name\": \"new_classification_view\",\n \"value\": true\n },\n {\n \"name\": \"must_complete_onboarding\",\n \"value\": false\n },\n {\n \"name\": \"has_completed_onboarding\",\n \"value\": true\n },\n {\n \"name\": \"has_displayed_presentation_switcher_spotlight\",\n \"value\": true\n },\n {\n \"name\": \"has_curated_discover_dashboards\",\n \"value\": true\n },\n {\n \"name\": \"has_special_event_calendar\",\n \"value\": true\n },\n {\n \"name\": \"new_movies_and_tv\",\n \"value\": true\n },\n {\n \"name\": \"has_partner_profiles\",\n \"value\": true\n }\n]","import { ErrorHelper } from 'libs/common/backbone/core';\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\nimport { EntitySetting } from 'libs/shared/interfaces';\n\nimport { SettingsHelper } from '../utils/SettingsHelper';\n\nimport PublicSettingResponse from './simulated/PublicSettingResponse.json';\n\ntype FormatSettingsFunc = (settings: Array<EntitySetting<any>>) => SettingsLookup | [];\n\n/**\n * This function is used to format settings data for public settings requests.\n * It allows us to control if we want to filter out any settings before using the default\n * `PublicSettingResponse` data in each public facing projects like Lite and Streamable Learning.\n */\nlet formatPublicSettings: any = (): any => {\n ErrorHelper.throw(\n new DevError('SettingRequests.setPublicFormatSettings must be called before using public requests in SettingRequests')\n );\n\n return null;\n};\n \nexport interface UpdateSettingRequest<TValue = any> {\n displayName?: string;\n name: SettingName;\n value: TValue;\n kind: SettingKind;\n}\n\nexport const SettingRequests = {\n setPublicFormatSettings(func: FormatSettingsFunc): void {\n if (!func)\n return;\n\n formatPublicSettings = func;\n },\n\n organisationSettings(\n id: string,\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:organisation:${id}`,\n url: `{gateway}/v1/organisations/${id}/settings`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n customerSetting(\n name: SettingName,\n success?: (data: EntitySetting<any>) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:customer:${name}`,\n url: `{gateway}/v1/customers/me/settings?type=${name}`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: (data: EntitySetting[]) => {\n return ArrayHelper.first(data);\n },\n success,\n error\n };\n },\n \n customerSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `customer:settings`,\n url: `{gateway}/v1/customers/me/settings?(customerSettings)`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n /**\n * This is only used to fetch hardcoded public settings for the customer \n */\n _publicCustomerSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.SimulatedRequest {\n return {\n key: `customer:settings`,\n url: `simulated:/api/domain/v3/settings/public`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: formatPublicSettings,\n success,\n error,\n successResponse: () => PublicSettingResponse\n };\n },\n\n /**\n * This is only used to fetch hardcoded public settings for the user \n */\n _publicUserSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.SimulatedRequest {\n return {\n key: `user:settings`,\n url: `simulated:/api/domain/v3/settings/public`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: formatPublicSettings,\n success,\n error,\n successResponse: () => PublicSettingResponse\n };\n },\n\n userSetting(\n name: SettingName,\n success?: (data: EntitySetting<any>) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:user:${name}`,\n url: `{gateway}/v1/customers/me/settings?type=${name}`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: (data: EntitySetting[]) => {\n return ArrayHelper.first(data);\n },\n success,\n error\n };\n },\n\n userSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `user:settings`,\n url: `{gateway}/v1/users/me/settings?(userSettings)`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n updateUserSetting<TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:user:setting:${data.name}`,\n url: `{gateway}/v1/users/me/settings`,\n data,\n type: HttpVerbs.PUT,\n formatData: () => data,\n normalizeOptions: {\n idAttribute: 'name'\n },\n success,\n error,\n always\n };\n },\n\n updateCustomerSetting<TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:customer:setting:${data.name}`,\n url: `{gateway}/v1/customers/me/settings`,\n data,\n type: HttpVerbs.PUT,\n formatData: () => data,\n normalizeOptions: {\n idAttribute: 'name'\n },\n success,\n error,\n always\n };\n }\n};\n","import { EntitySetting } from 'libs/shared/interfaces';\n\nexport type SettingsLookup = {\n [key in SettingName]: EntitySetting<any>;\n};\n\nexport enum SettingName {\n // Customer settings\n MustCompleteOnboarding = 'must_complete_onboarding',\n StudentWorkspaceSharing = 'student_ws_sharing',\n StudentToStudentMessaging = 'student_to_student_messaging',\n HideResourcesForStudents = 'hide_resources_for_students',\n LibraryReview = 'library_review',\n SchoolMessaging = 'school_messaging',\n LegacyTvNaming = 'legacy_tv_naming',\n HideHostedLibraries = 'hide_hosted_libraries',\n MaxCustomLibraries = 'max_custom_libraries',\n AutoCaptioning = 'auto_captioning',\n Topics = 'subjects',\n NewDashboards = 'new_dashboards',\n ShareToGoogleClassroom = 'share_to_google_classroom',\n ShareToMicrosoftTeams = 'share_to_microsoft_teams',\n DefaultPlaybackQuality = 'playback_quality_default',\n DefaultLocalCachePlaybackQuality = 'playback_quality_local_cache_default',\n EnableSubtitlesDefault = 'playback_subtitles_enabled_default',\n LTI = 'lti',\n HasNewClassificationView = 'new_classification_view',\n HasCuratedDiscoverDashboards = 'has_curated_discover_dashboards',\n HasLiteSearchDropdown = 'has_lite_search_dropdown',\n HasSpecialEventCalendar = 'has_special_event_calendar',\n PreviewVideos = 'preview_videos',\n DomainSettings = 'domain_settings',\n InviteColleague = 'invite_colleague',\n ExchangeTvProductOption = 'exchange_tv_product_option',\n MyVideosFolders = 'my_videos_folders',\n TvRegion = 'tv_region',\n ShareOverrideRestrictions = 'share_override_restrictions',\n HasTopicDirectories = 'has_topic_directories',\n MessageFrequencyOption = 'message_frequency',\n HasTopicVideoListFeature = 'has_topic_video_list_feature',\n HasManageGrouPermissions = 'has_manage_group_permissions',\n ExperimentalInteractiveQuestions = 'experimental_interactive_questions',\n PublicInteractiveAttempts = 'public_interactive_attempts',\n HasClassrooms = 'has_classrooms',\n HasNewSearch = 'has_new_search',\n HasPlayPageTranscript = 'has_play_page_transcript',\n HasShareFlowV2 = 'has_share_flow_v2',\n HasPartnerProfiles = 'has_partner_profiles',\n PreferredTheme = 'preferred_theme',\n HasHubEntry = 'has_hub_entry',\n\n // Devices\n HasEnabledViviPlayback = 'has_enabled_vivi_playback',\n HasEnabledViviStudentCasting = 'has_enabled_vivi_student_casting',\n HasEnabledAppleTvPlayback = 'has_enabled_apple_tv_playback',\n\n // Product tips\n HasDisplayedTutorialVideosProductTip = 'has_displayed_tutorial_videos_spotlight',\n\n // Tutorial Video Highlight\n HasDismissedAnalyticsTutorial = 'has_dismissed_analytics_tutorial',\n HasDismissedOpenClassroomsTutorial = 'has_dismissed_open_classrooms_tutorial',\n HasDismissedSearchAndDiscoverTutorial = 'has_dismissed_search_and_discover_tutorial',\n HasDismissedClassroomsTutorial = 'has_dismissed_classrooms_tutorial',\n HasDismissedMySharesTutorial = 'has_dismissed_my_shares_tutorial',\n HasDismissedMyVideosTutorial = 'has_dismissed_my_videos_tutorial',\n HasDismissedPlaylistsTutorial = 'has_dismissed_playlists_tutorial',\n\n // User settings\n ShowExchangeSearchResultsUser = 'show_exchange_search_results_user',\n UserEnabledPreviewVideos = 'user_enabled_preview_videos',\n\n // Lite Upgrade - We keep this setting around to know if a customer went through the list upgrade\n LiteUpgradeTypeCustomer = 'lite_upgrade_type_customer',\n\n // Trials\n PolicyEndTime = 'policy_end_time',\n ReferralCount = 'referral_count',\n\n // Onboarding - V1\n HasCompletedOnboardingV1 = 'has_completed_onboarding', // This is deprecated for the new product\n BulkOnboardingPreferencesState = 'bulk_onboarding_preferences_state',\n\n // Onboarding - V2\n HasCompletedOnboardingV2 = 'has_completed_onboarding_v2',\n HasExitedOnboarding = 'has_exited_onboarding',\n HasCompletedOnboardingStepSelectRole = 'has_completed_onboarding_step_select_role',\n HasCompletedOnboardingStepSchoolLevel = 'has_completed_onboarding_step_school_level',\n HasCompletedOnboardingStepAudiencePreferences = 'has_completed_onboarding_step_audience_preferences',\n HasCompletedOnboardingStepSelectCurriculum = 'has_completed_onboarding_step_select_curriculum',\n HasCompletedOnboardingStepSubjects = 'has_completed_onboarding_step_subjects',\n\n StudentInteractives = 'student_interactives',\n ExpandSchoolLibrary = 'expand_school_library',\n PrimaryProduct = 'primary_product',\n ImmediateFeedbackInteractives = 'immediate_feedback_interactives',\n LiteStudentCustomLibraries = 'lite_student_custom_libraries',\n\n // Organisation level\n HasEnabledRostering = 'has_enabled_rostering',\n\n // Citations\n DefaultCitationStyle = 'default_citation_style',\n\n // Reports\n HasStudentReach = 'has_student_reach',\n StudentReachClassroomSize = 'student_reach_classroom_size',\n SchoolStartTime = 'school_start_time',\n SchoolEndTime = 'school_end_time',\n Timezone = 'timezone_iana',\n\n ClickViewLive = 'clickview_live',\n HasStudentLowerPresentations = 'students_lower_presentations'\n}\n","import { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\nimport { SettingRequests, UpdateSettingRequest } from 'libs/shared/flight-requests/SettingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, DefaultPlaybackQuality, EntitySetting } from 'libs/shared/interfaces';\nimport { ExchangeTvProductOption } from 'libs/shared/interfaces/ExchangeTvProductOption';\nimport { MessageFrequencyOption } from 'libs/shared/interfaces/models/MessageFrequencyOption';\nimport { PreferredTheme } from 'libs/shared/interfaces/PreferredTheme';\n\nimport { SettingsHelper } from '../utils/SettingsHelper';\n\ntype SettingType = 'user' | 'customer';\n\n/**\n * Location context is only required if you're using updateSetting() or you need log analytics;\n */\nexport const useSettings = (locationContext: LocationContext | null) => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const customerSettings = Flight.useBasicFetch<SettingsLookup>(\n currentUser.hasCompleted &&\n SettingsHelper.getCustomerSettingsRequest(currentUser.data)\n );\n\n const userSettings = Flight.useBasicFetch<SettingsLookup>(\n currentUser.hasCompleted &&\n SettingsHelper.getUserSettingsRequest(currentUser.data)\n );\n\n const dispatch = useDispatch();\n\n const hasLoaded = !!customerSettings.hasCompleted && !!userSettings.hasCompleted;\n\n const getSetting = <TValue = any>(name: SettingName): TValue | null => {\n if (!hasLoaded)\n return null;\n\n if (customerSettings.hasError || userSettings.hasError)\n return null;\n\n const customerSetting = customerSettings.data?.[name] as EntitySetting<TValue>;\n\n if (customerSetting)\n return customerSetting?.value;\n\n const userSetting = userSettings.data?.[name] as EntitySetting<TValue>;\n\n if (userSetting)\n return userSetting?.value;\n\n return null;\n };\n\n function _getRequest<TValue>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n if (type === 'user')\n return SettingRequests.updateUserSetting(data, success, error, always);\n\n return SettingRequests.updateCustomerSetting(data, success, error, always);\n }\n\n const _updateSetting = <TValue = any>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => {\n function onSuccess(): void {\n AnalyticsHelper.logUserAction({\n name: data.name,\n value: data.value\n }, {\n location: locationContext,\n entity: EntityType.UserSetting,\n actionType: UserAction.Edit\n });\n\n success?.();\n }\n\n Flight.fetch(dispatch, _getRequest(type, data, onSuccess, error, always));\n };\n\n const _updateSettingAsync = <TValue = any>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => {\n return new Promise((resolve, reject) => {\n _updateSetting(\n type,\n data,\n resolve,\n reject\n );\n });\n };\n\n const updateUserSetting = <TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => _updateSetting('user', data, success, error, always);\n\n const updateCustomerSetting = <TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => _updateSetting('customer', data, success, error, always);\n\n const updateUserSettingAsync = <TValue = any>(\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => _updateSettingAsync('user', data);\n \n const updateCustomerSettingAsync = <TValue = any>(\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => _updateSettingAsync('customer', data);\n \n /**\n * AU, US, and UK have access to this, but international doesn't.\n * This means anon users also have access, which is why this custom\n * function is needed.\n */\n function hasTopicDirectories(): boolean {\n if (currentUser.data?.isAuthenticated)\n return getSetting<boolean>(SettingName.HasTopicDirectories);\n\n return true;\n }\n\n return {\n isLoadingSettings: !hasLoaded,\n updateUserSetting,\n updateUserSettingAsync,\n updateCustomerSetting,\n updateCustomerSettingAsync,\n userSettings,\n shareToGoogleClassroom: getSetting<boolean>(SettingName.ShareToGoogleClassroom),\n shareToMicrosoftTeams: getSetting<boolean>(SettingName.ShareToMicrosoftTeams),\n hasLti: getSetting<boolean>(SettingName.LTI),\n defaultPlaybackQuality: getSetting<DefaultPlaybackQuality>(SettingName.DefaultPlaybackQuality),\n defaultLocalCachePlaybackQuality: getSetting<DefaultPlaybackQuality>(SettingName.DefaultLocalCachePlaybackQuality),\n enableSubtitlesDefault: getSetting<boolean>(SettingName.EnableSubtitlesDefault),\n hasCompletedOnboardingV1: getSetting<boolean>(SettingName.HasCompletedOnboardingV1),\n hasCompletedOnboardingV2: getSetting<boolean>(SettingName.HasCompletedOnboardingV2),\n\n liteUpgradeTypeCustomer: getSetting<string>(SettingName.LiteUpgradeTypeCustomer),\n\n hasNewClassificationView: getSetting<boolean>(SettingName.HasNewClassificationView),\n hasCuratedDiscoverDashboards: getSetting<boolean>(SettingName.HasCuratedDiscoverDashboards),\n hasSpecialEventCalendar: getSetting<boolean>(SettingName.HasSpecialEventCalendar),\n hasLiteSearchDropdown: getSetting<boolean>(SettingName.HasLiteSearchDropdown),\n policyEndTime: getSetting<string>(SettingName.PolicyEndTime),\n bulkOnboardingPreferencesState: (\n getSetting<BulkOnboardingPreferencesState>(SettingName.BulkOnboardingPreferencesState)\n ),\n hasOnlineTopics: getSetting<boolean>(SettingName.Topics),\n hasPreviewVideos: getSetting<boolean>(SettingName.PreviewVideos),\n hasUserEnabledPreviewVideos: getSetting<boolean>(SettingName.UserEnabledPreviewVideos),\n domainSettings: getSetting<boolean>(SettingName.DomainSettings),\n inviteColleague: getSetting<boolean>(SettingName.InviteColleague),\n myVideosFolders: getSetting<boolean>(SettingName.MyVideosFolders),\n exchangeTvProductOption: getSetting<ExchangeTvProductOption>(SettingName.ExchangeTvProductOption),\n messageFrequencyOption: getSetting<MessageFrequencyOption>(SettingName.MessageFrequencyOption),\n tvRegion: getSetting<string>(SettingName.TvRegion),\n preferredTheme: getSetting<PreferredTheme>(SettingName.PreferredTheme),\n hasHubEntry: getSetting<boolean>(SettingName.HasHubEntry),\n\n // Devices\n hasEnabledViviStudentCasting: getSetting<boolean>(SettingName.HasEnabledViviStudentCasting),\n hasEnabledViviPlayback: getSetting<boolean>(SettingName.HasEnabledViviPlayback),\n hasEnabledAppleTvPlayback: getSetting<boolean>(SettingName.HasEnabledAppleTvPlayback),\n\n // Product tips\n hasDisplayedTutorialVideosProductTip: getSetting<boolean>(SettingName.HasDisplayedTutorialVideosProductTip),\n\n // Tutorial video highlight\n hasDismissedAnalyticsTutorial: getSetting<boolean>(SettingName.HasDismissedAnalyticsTutorial),\n hasDismissedOpenClassroomsTutorial: getSetting<boolean>(SettingName.HasDismissedOpenClassroomsTutorial),\n hasDismissedSearchAndDiscoverTutorial: getSetting<boolean>(SettingName.HasDismissedSearchAndDiscoverTutorial),\n hasDismissedClassroomsTutorial: getSetting<boolean>(SettingName.HasDismissedClassroomsTutorial),\n hasDismissedMySharesTutorial: getSetting<boolean>(SettingName.HasDismissedMySharesTutorial),\n hasDismissedMyVideosTutorial: getSetting<boolean>(SettingName.HasDismissedMyVideosTutorial),\n hasDismissedPlaylistsTutorial: getSetting<boolean>(SettingName.HasDismissedPlaylistsTutorial),\n\n // This has to be enabled both on the customer and user level for exchange results to show\n showExchangeSearchResults: getSetting<boolean>(SettingName.ShowExchangeSearchResultsUser),\n shareOverrideRestrictions:\n getSetting<boolean>(SettingName.ShareOverrideRestrictions),\n hasTopicDirectories: hasTopicDirectories(),\n hasTopicVideoListFeature: getSetting<boolean>(SettingName.HasTopicVideoListFeature),\n hasManageGroupPermissions: getSetting<boolean>(SettingName.HasManageGrouPermissions),\n experimentalInteractiveQuestions:\n getSetting<boolean>(SettingName.ExperimentalInteractiveQuestions),\n hasClassrooms: getSetting<boolean>(SettingName.HasClassrooms),\n hasNewSearch: getSetting<boolean>(SettingName.HasNewSearch),\n hasPlayPageTranscript: getSetting<boolean>(SettingName.HasPlayPageTranscript),\n hasShareFlowV2: getSetting<boolean>(SettingName.HasShareFlowV2),\n referralCount: getSetting<number>(SettingName.ReferralCount),\n hasPartnerProfiles: getSetting<boolean>(SettingName.HasPartnerProfiles),\n\n defaultCitationStyle: getSetting<string>(SettingName.DefaultCitationStyle),\n\n hasStudentReach: getSetting<boolean>(SettingName.HasStudentReach),\n studentReachClassroomSize: getSetting<number>(SettingName.StudentReachClassroomSize),\n schoolStartTime: getSetting<string>(SettingName.SchoolStartTime),\n schoolEndTime: getSetting<string>(SettingName.SchoolEndTime),\n timezone: getSetting<string>(SettingName.Timezone),\n clickViewLive: getSetting<boolean>(SettingName.ClickViewLive),\n hasStudentLowerPresentations: getSetting<boolean>(SettingName.HasStudentLowerPresentations)\n };\n};\n\nexport type SettingsHash = Partial<ReturnType<typeof useSettings>>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{n as e}from"./B2L2H3g9.chunk.js";export{e as GenerateReportView};
@@ -1 +0,0 @@
1
- import{t as e}from"./app-cakVQEAF.js";export{e as ErrorView};