@clickview/reports 0.90.0-rc.2 → 0.90.0-rc.4

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 (65) hide show
  1. package/dist/.vite/manifest.json +210 -210
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{Bzx4bLV8.chunk.js → B9syewbL.chunk.js} +2 -2
  5. package/dist/scripts/{Bzx4bLV8.chunk.js.map → B9syewbL.chunk.js.map} +1 -1
  6. package/dist/scripts/{D2gRMPGY.chunk.js → BDLgF915.chunk.js} +2 -2
  7. package/dist/scripts/{D2gRMPGY.chunk.js.map → BDLgF915.chunk.js.map} +1 -1
  8. package/dist/scripts/{BJOOjdj2.chunk.js → BHwx99h9.chunk.js} +2 -2
  9. package/dist/scripts/{BJOOjdj2.chunk.js.map → BHwx99h9.chunk.js.map} +1 -1
  10. package/dist/scripts/{CowQEpZQ2.chunk.js → B_QHbZ3D2.chunk.js} +2 -2
  11. package/dist/scripts/{CowQEpZQ2.chunk.js.map → B_QHbZ3D2.chunk.js.map} +1 -1
  12. package/dist/scripts/{TzLygaBE.chunk.js → BcjF3S7y.chunk.js} +2 -2
  13. package/dist/scripts/{TzLygaBE.chunk.js.map → BcjF3S7y.chunk.js.map} +1 -1
  14. package/dist/scripts/{DbSzdDBS2.chunk.js → C5nG9HKq2.chunk.js} +2 -2
  15. package/dist/scripts/{DbSzdDBS2.chunk.js.map → C5nG9HKq2.chunk.js.map} +1 -1
  16. package/dist/scripts/{4ViYfbV7.chunk.js → CCdxPE8F.chunk.js} +2 -2
  17. package/dist/scripts/{4ViYfbV7.chunk.js.map → CCdxPE8F.chunk.js.map} +1 -1
  18. package/dist/scripts/{Dj87pb142.chunk.js → CDx9_B5h2.chunk.js} +2 -2
  19. package/dist/scripts/{Dj87pb142.chunk.js.map → CDx9_B5h2.chunk.js.map} +1 -1
  20. package/dist/scripts/{DDS7ndOq2.chunk.js → CEM-Xsc32.chunk.js} +2 -2
  21. package/dist/scripts/{DDS7ndOq2.chunk.js.map → CEM-Xsc32.chunk.js.map} +1 -1
  22. package/dist/scripts/{PSwC3iEf2.chunk.js → CGYMpd9x2.chunk.js} +2 -2
  23. package/dist/scripts/{PSwC3iEf2.chunk.js.map → CGYMpd9x2.chunk.js.map} +1 -1
  24. package/dist/scripts/{CitsW6ql.chunk.js → CLDXLTBe.chunk.js} +2 -2
  25. package/dist/scripts/{CitsW6ql.chunk.js.map → CLDXLTBe.chunk.js.map} +1 -1
  26. package/dist/scripts/{BL1X9vs52.chunk.js → CWVwHN-C2.chunk.js} +2 -2
  27. package/dist/scripts/{BL1X9vs52.chunk.js.map → CWVwHN-C2.chunk.js.map} +1 -1
  28. package/dist/scripts/{kAYY_iVY2.chunk.js → CXyHtApp2.chunk.js} +2 -2
  29. package/dist/scripts/{kAYY_iVY2.chunk.js.map → CXyHtApp2.chunk.js.map} +1 -1
  30. package/dist/scripts/{BU8DxGLM2.chunk.js → C_gBUP2y2.chunk.js} +2 -2
  31. package/dist/scripts/{BU8DxGLM2.chunk.js.map → C_gBUP2y2.chunk.js.map} +1 -1
  32. package/dist/scripts/{BXWs2cI72.chunk.js → C_nTmCTH2.chunk.js} +2 -2
  33. package/dist/scripts/{BXWs2cI72.chunk.js.map → C_nTmCTH2.chunk.js.map} +1 -1
  34. package/dist/scripts/{DPJbiCR02.chunk.js → CeSe3AP62.chunk.js} +18 -18
  35. package/dist/scripts/CeSe3AP62.chunk.js.map +1 -0
  36. package/dist/scripts/{fh6sbun-.chunk.js → Cv7tjWWS.chunk.js} +2 -2
  37. package/dist/scripts/{fh6sbun-.chunk.js.map → Cv7tjWWS.chunk.js.map} +1 -1
  38. package/dist/scripts/{BLzRzOyq.chunk.js → D63nJT6V.chunk.js} +2 -2
  39. package/dist/scripts/{BLzRzOyq.chunk.js.map → D63nJT6V.chunk.js.map} +1 -1
  40. package/dist/scripts/{Ch4Y5yk4.chunk.js → DATsYYMP.chunk.js} +2 -2
  41. package/dist/scripts/{Ch4Y5yk4.chunk.js.map → DATsYYMP.chunk.js.map} +1 -1
  42. package/dist/scripts/{DNY9inGn2.chunk.js → DBpZNnAI2.chunk.js} +2 -2
  43. package/dist/scripts/{DNY9inGn2.chunk.js.map → DBpZNnAI2.chunk.js.map} +1 -1
  44. package/dist/scripts/{CKKR2-wU2.chunk.js → DGuSwgQf2.chunk.js} +2 -2
  45. package/dist/scripts/{CKKR2-wU2.chunk.js.map → DGuSwgQf2.chunk.js.map} +1 -1
  46. package/dist/scripts/{DWQdiwUw.chunk.js → DHz5C_j8.chunk.js} +2 -2
  47. package/dist/scripts/{DWQdiwUw.chunk.js.map → DHz5C_j8.chunk.js.map} +1 -1
  48. package/dist/scripts/{4mtEyuqT2.chunk.js → DJpo4rMq2.chunk.js} +2 -2
  49. package/dist/scripts/{4mtEyuqT2.chunk.js.map → DJpo4rMq2.chunk.js.map} +1 -1
  50. package/dist/scripts/{EvtCZWZL2.chunk.js → DKgzSSZ12.chunk.js} +2 -2
  51. package/dist/scripts/{EvtCZWZL2.chunk.js.map → DKgzSSZ12.chunk.js.map} +1 -1
  52. package/dist/scripts/{Bl13dT192.chunk.js → DqX2L2fn2.chunk.js} +2 -2
  53. package/dist/scripts/{Bl13dT192.chunk.js.map → DqX2L2fn2.chunk.js.map} +1 -1
  54. package/dist/scripts/{7M6FzdyD.chunk.js → J0H9O8cX.chunk.js} +2 -2
  55. package/dist/scripts/{7M6FzdyD.chunk.js.map → J0H9O8cX.chunk.js.map} +1 -1
  56. package/dist/scripts/{app-B1NVV4PT.js → app-F8o5al1q.js} +3 -3
  57. package/dist/scripts/{app-B1NVV4PT.js.map → app-F8o5al1q.js.map} +1 -1
  58. package/dist/scripts/{CcjJpEaF2.chunk.js → med1nnv82.chunk.js} +2 -2
  59. package/dist/scripts/{CcjJpEaF2.chunk.js.map → med1nnv82.chunk.js.map} +1 -1
  60. package/dist/scripts/{DE24b7R6.chunk.js → q1iKm4P4.chunk.js} +2 -2
  61. package/dist/scripts/{DE24b7R6.chunk.js.map → q1iKm4P4.chunk.js.map} +1 -1
  62. package/dist/scripts/{4gz8eG_F.chunk.js → r68VJd6w.chunk.js} +2 -2
  63. package/dist/scripts/{4gz8eG_F.chunk.js.map → r68VJd6w.chunk.js.map} +1 -1
  64. package/package.json +1 -1
  65. package/dist/scripts/DPJbiCR02.chunk.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{N as e,at as t}from"./CrTgNROp.chunk.js";import{m as n,n as r}from"./Dwe-4MVf.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{t as a}from"./Dsv_eF8a.chunk.js";import{t as o}from"./2zJwW9wb.chunk.js";import{n as s}from"./28VvvkVW.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{S as l,a as u,n as d,r as f,xt as p}from"./app-B1NVV4PT.js";import{a as m,i as h,n as g,s as _,t as v}from"./Bzx4bLV8.chunk.js";import{n as y,t as b}from"./4gz8eG_F.chunk.js";import{i as x,t as S}from"./CowQEpZQ2.chunk.js";t();var C=o(),w={logins(e,t,n,r){return{url:s.urlBuilder(`{gateway}/v1/analytics/logins`,{...e,timeOffset:a.getTimezoneOffset()}),key:b(`logins`,e),normalize:!1,success:t,error:n,always:r}}},T=e(),E={image:`_image_zpxv9_1`},D=c.encloseNamespace(`reportsShared.schoolLoginsByGroupCardEmptyState`);function O(){return(0,T.jsxs)(f,{className:`flex-grow-1 justify-content-center`,children:[(0,T.jsx)(f.Image,{src:p.EmptyStates.Shared.School,className:E.image}),(0,T.jsx)(f.Heading,{className:`h6`,children:D(`heading`)}),(0,T.jsx)(f.Info,{className:`w-100`,children:D(`description`)})]})}var k=`logins.schoolLoginsByGroupCard`;function A(){let e=u(`logins`),t=n(w.logins(e)),i=l(),a=e=>e===`Unknown`||e===null?`Staff`:e,o=g(t.data?.yearGroupCount?.map(e=>({name:a(e.name),count:e.count}))),s=o?.reduce((e,t)=>e+t.y,0);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`h6 mb-1`,children:(0,T.jsx)(r,{namespace:k,phrase:i?`totalLoginsTertiary`:`totalLogins`,options:{logins:s}})}),o.length?(0,T.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,T.jsx)(`div`,{className:`position-absolute w-100`,children:(0,T.jsx)(_,{data:o})})}):(0,T.jsx)(O,{})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-50`,children:`\xA0`})})}var j={MONTH:35,YEAR:365},M={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},N={day:`D MMM`,month:`MMM`,year:`YYYY`};function P(e){let t=a.diffBetween(e.end,e.start,`day`);return t>j.YEAR?`year`:t>j.MONTH?`month`:`day`}function F(e,t){let n=[],r=a.convertUTCToLocal(e.start),i=a.convertUTCToLocal(e.end),o=a.format(r,M[t]);for(;!a.isAfter(o,i,t);)n.push(o),o=a.format(a.add(o,1,t),M[t]);return n}function I(e,t){if(!e)return null;let n=P(t),r=F(t,n),o={};e.forEach(e=>{if(!e.userType)return;let t=`groupedDateWatched`in e&&e.groupedDateWatched||`groupedLoggedOn`in e&&e.groupedLoggedOn,r=a.format(a.convertUTCToLocal(t),M[n]);o[e.userType]=o[e.userType]??{},o[e.userType][r]=o[e.userType][r]??0,o[e.userType][r]+=e.count});let s=Object.keys(o);return s.length?{categories:r.map(e=>a.format(e,N[n])),data:i.sortBy(s.map(e=>({name:m(e),type:`line`,data:r.map(t=>o[e][t]??0),color:h(e)})),`name`)}:{categories:r.map(e=>a.format(e,N[n])),data:[]}}var L=`logins.schoolLoginsByMonthCard`;function R(){let e=u(`logins`),t=I(n(w.logins(e)).data?.data,e);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:t?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,T.jsx)(r,{namespace:L,phrase:`loginActivity`})}),(0,T.jsx)(v,{categories:t.categories,data:t.data})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var z={column2:`_column2_1cfp0_1`,column1:`_column1_1cfp0_1`},B=c.encloseNamespace(`logins.schoolLoginOverview`);function V(){return d({title:B(`title`)}),y(B(`title`)),x(S()),(0,T.jsx)(`div`,{children:(0,T.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,T.jsx)(`div`,{className:`${z.column1}`,children:(0,T.jsx)(A,{})}),(0,T.jsx)(`div`,{className:`${z.column2}`,children:(0,T.jsx)(R,{})})]})})}export{V as SchoolLoginOverview};
2
- //# sourceMappingURL=PSwC3iEf2.chunk.js.map
1
+ import{N as e,at as t}from"./CrTgNROp.chunk.js";import{m as n,n as r}from"./Dwe-4MVf.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{t as a}from"./Dsv_eF8a.chunk.js";import{t as o}from"./2zJwW9wb.chunk.js";import{n as s}from"./28VvvkVW.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{S as l,a as u,n as d,r as f,xt as p}from"./app-F8o5al1q.js";import{a as m,i as h,n as g,s as _,t as v}from"./B9syewbL.chunk.js";import{n as y,t as b}from"./r68VJd6w.chunk.js";import{i as x,t as S}from"./B_QHbZ3D2.chunk.js";t();var C=o(),w={logins(e,t,n,r){return{url:s.urlBuilder(`{gateway}/v1/analytics/logins`,{...e,timeOffset:a.getTimezoneOffset()}),key:b(`logins`,e),normalize:!1,success:t,error:n,always:r}}},T=e(),E={image:`_image_zpxv9_1`},D=c.encloseNamespace(`reportsShared.schoolLoginsByGroupCardEmptyState`);function O(){return(0,T.jsxs)(f,{className:`flex-grow-1 justify-content-center`,children:[(0,T.jsx)(f.Image,{src:p.EmptyStates.Shared.School,className:E.image}),(0,T.jsx)(f.Heading,{className:`h6`,children:D(`heading`)}),(0,T.jsx)(f.Info,{className:`w-100`,children:D(`description`)})]})}var k=`logins.schoolLoginsByGroupCard`;function A(){let e=u(`logins`),t=n(w.logins(e)),i=l(),a=e=>e===`Unknown`||e===null?`Staff`:e,o=g(t.data?.yearGroupCount?.map(e=>({name:a(e.name),count:e.count}))),s=o?.reduce((e,t)=>e+t.y,0);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`h6 mb-1`,children:(0,T.jsx)(r,{namespace:k,phrase:i?`totalLoginsTertiary`:`totalLogins`,options:{logins:s}})}),o.length?(0,T.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,T.jsx)(`div`,{className:`position-absolute w-100`,children:(0,T.jsx)(_,{data:o})})}):(0,T.jsx)(O,{})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-50`,children:`\xA0`})})}var j={MONTH:35,YEAR:365},M={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},N={day:`D MMM`,month:`MMM`,year:`YYYY`};function P(e){let t=a.diffBetween(e.end,e.start,`day`);return t>j.YEAR?`year`:t>j.MONTH?`month`:`day`}function F(e,t){let n=[],r=a.convertUTCToLocal(e.start),i=a.convertUTCToLocal(e.end),o=a.format(r,M[t]);for(;!a.isAfter(o,i,t);)n.push(o),o=a.format(a.add(o,1,t),M[t]);return n}function I(e,t){if(!e)return null;let n=P(t),r=F(t,n),o={};e.forEach(e=>{if(!e.userType)return;let t=`groupedDateWatched`in e&&e.groupedDateWatched||`groupedLoggedOn`in e&&e.groupedLoggedOn,r=a.format(a.convertUTCToLocal(t),M[n]);o[e.userType]=o[e.userType]??{},o[e.userType][r]=o[e.userType][r]??0,o[e.userType][r]+=e.count});let s=Object.keys(o);return s.length?{categories:r.map(e=>a.format(e,N[n])),data:i.sortBy(s.map(e=>({name:m(e),type:`line`,data:r.map(t=>o[e][t]??0),color:h(e)})),`name`)}:{categories:r.map(e=>a.format(e,N[n])),data:[]}}var L=`logins.schoolLoginsByMonthCard`;function R(){let e=u(`logins`),t=I(n(w.logins(e)).data?.data,e);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:t?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,T.jsx)(r,{namespace:L,phrase:`loginActivity`})}),(0,T.jsx)(v,{categories:t.categories,data:t.data})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var z={column2:`_column2_1cfp0_1`,column1:`_column1_1cfp0_1`},B=c.encloseNamespace(`logins.schoolLoginOverview`);function V(){return d({title:B(`title`)}),y(B(`title`)),x(S()),(0,T.jsx)(`div`,{children:(0,T.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,T.jsx)(`div`,{className:`${z.column1}`,children:(0,T.jsx)(A,{})}),(0,T.jsx)(`div`,{className:`${z.column2}`,children:(0,T.jsx)(R,{})})]})})}export{V as SchoolLoginOverview};
2
+ //# sourceMappingURL=CGYMpd9x2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PSwC3iEf2.chunk.js","names":[],"sources":["../../src/shared/flight-requests/LoginRequests.ts","../../src/apps/logins/views/cards/school-logins-by-group-card/empty-state/school-logins-by-group-card-card-empty-state.module.scss","../../src/apps/logins/views/cards/school-logins-by-group-card/empty-state/SchoolLoginsByGroupCardEmptyState.tsx","../../src/apps/logins/views/cards/school-logins-by-group-card/SchoolLoginsByGroupCardView.tsx","../../src/shared/utils/LineChartByMonthUtils.ts","../../src/apps/logins/views/cards/school-logins-by-month-card/SchoolLoginsByMonthCardView.tsx","../../src/apps/logins/views/school-login-overview/school-login-overview.module.scss","../../src/apps/logins/views/school-login-overview/SchoolLoginOverview.tsx"],"sourcesContent":["import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nexport const LoginRequests = {\n logins(\n filter: AnalyticsRequestFilter,\n success?: (data: LoginEventResponse) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/logins', {\n ...filter,\n timeOffset: DateHelper.getTimezoneOffset()\n }),\n key: getAnalyticsRequestKey('logins', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .image {\n width: 200px;\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\nconst namespace = 'reportsShared.schoolLoginsByGroupCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport styles from './school-logins-by-group-card-card-empty-state.module.scss';\n\nexport function SchoolLoginsByGroupCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.School}\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';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { VerticalBarChart } from 'shared/components/vertical-bar-chart/VerticalBarChart';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { getCountByGroup } from 'shared/utils/BarChartByGroupUtils';\n\nimport { SchoolLoginsByGroupCardEmptyState } from './empty-state/SchoolLoginsByGroupCardEmptyState';\n\nconst namespace = 'logins.schoolLoginsByGroupCard';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SchoolLoginsByGroupCardView() {\n const requestFilter = useGetRequestFilter('logins');\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(LoginRequests.logins(requestFilter));\n \n const isTertiary = useIsTertiary();\n\n const mapNameToGroup = (name: string) => (name === 'Unknown' || name === null) ? 'Staff' : name;\n const totalLoginsByGroupData = getCountByGroup(\n logins.data?.yearGroupCount?.map(group => ({\n name: mapNameToGroup(group.name),\n count: group.count\n }))\n );\n const totalLoginsCount = totalLoginsByGroupData?.reduce((acc, group) => (acc + group.y), 0);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {totalLoginsByGroupData ?\n <>\n <h2 className='h6 mb-1'>\n <Text\n namespace={namespace}\n phrase={isTertiary ? 'totalLoginsTertiary' : 'totalLogins'}\n options={{ logins: totalLoginsCount }}\n />\n </h2>\n\n {totalLoginsByGroupData.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <VerticalBarChart data={totalLoginsByGroupData} />\n </div>\n </Scrollbars> :\n <SchoolLoginsByGroupCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-50'>&nbsp;</div>\n }\n </div>\n );\n}\n","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LoginEvent } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { VideoViewEvent } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nimport { mapUserTypeToChartColour, mapUserTypeToChartLabel } from 'shared/utils/UserUtils';\n\nconst GroupByThresholds = {\n MONTH: 35,\n YEAR: 365\n};\n\nconst DateFormats = {\n day: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n year: 'YYYY'\n};\n\nconst DisplayFormats = {\n day: 'D MMM',\n month: 'MMM',\n year: 'YYYY'\n};\n\ntype GroupedViewData = {\n [key in UserGroup]?: {\n [date: string]: number\n }\n};\n\ntype GroupBy = 'day' | 'month' | 'year';\n\ninterface ChartData {\n categories: string[];\n data: Highcharts.SeriesLineOptions[];\n}\n\nfunction getGroupBy(requestFilter: AnalyticsRequestFilter): GroupBy {\n const range = DateHelper.diffBetween(requestFilter.end, requestFilter.start, 'day');\n\n if (range > GroupByThresholds.YEAR)\n return 'year';\n\n if (range > GroupByThresholds.MONTH)\n return 'month';\n\n return 'day';\n}\n\nfunction getFullDateRange(requestFilter: AnalyticsRequestFilter, groupBy: GroupBy): string[] {\n const range: string[] = [];\n\n const localStart = DateHelper.convertUTCToLocal(requestFilter.start);\n const localEnd = DateHelper.convertUTCToLocal(requestFilter.end);\n\n let currentDate = DateHelper.format(localStart, DateFormats[groupBy]);\n\n while (!DateHelper.isAfter(currentDate, localEnd, groupBy)) {\n range.push(currentDate);\n currentDate = DateHelper.format(DateHelper.add(currentDate, 1, groupBy), DateFormats[groupBy]);\n }\n\n return range;\n}\n\nexport function getChartData(\n events: VideoViewEvent[] | LoginEvent[],\n requestFilter: AnalyticsRequestFilter\n): ChartData {\n if (!events) return null;\n\n const groupBy = getGroupBy(requestFilter);\n const fullDateRange = getFullDateRange(requestFilter, groupBy);\n \n const grouped: GroupedViewData = {};\n\n events.forEach(ev => {\n if (!ev.userType)\n return;\n\n const eventDate = 'groupedDateWatched' in ev && ev.groupedDateWatched || 'groupedLoggedOn' in ev && ev.groupedLoggedOn;\n const eventDateFormatted = DateHelper.format(DateHelper.convertUTCToLocal(eventDate), DateFormats[groupBy]);\n\n grouped[ev.userType] = grouped[ev.userType] ?? {};\n grouped[ev.userType][eventDateFormatted] = grouped[ev.userType][eventDateFormatted] ?? 0;\n grouped[ev.userType][eventDateFormatted] += ev.count;\n });\n\n const roles = Object.keys(grouped) as UserGroup[];\n\n if (!roles.length) return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data: []\n };\n\n return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data:\n ArrayHelper.sortBy(roles.map(r => ({\n name: mapUserTypeToChartLabel(r),\n type: 'line',\n data: fullDateRange.map(d => grouped[r][d] ?? 0),\n color: mapUserTypeToChartColour(r)\n })), 'name')\n };\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { LineChart } from 'shared/components/line-chart/LineChart';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { getChartData } from 'shared/utils/LineChartByMonthUtils';\n\nconst namespace = 'logins.schoolLoginsByMonthCard';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SchoolLoginsByMonthCardView() {\n const requestFilter = useGetRequestFilter('logins');\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(LoginRequests.logins(requestFilter));\n\n const chartData = getChartData(logins.data?.data, requestFilter);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3 position-relative'>\n {chartData ?\n <>\n <h2 className='position-absolute h6 mb-1'><Text namespace={namespace} phrase='loginActivity' /></h2>\n\n <LineChart categories={chartData.categories} data={chartData.data} />\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>}\n </div>\n );\n}\n",":local {\n %column {\n height: 30rem;\n }\n\n .column1 {\n @extend %column;\n flex: 3 0;\n }\n \n .column2 {\n @extend %column;\n flex: 4 0;\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 { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { getLoginHeaderActions } from 'shared/utils/HeaderActionUtils';\n\nimport { SchoolLoginsByGroupCardView } from 'apps/logins/views/cards/school-logins-by-group-card/SchoolLoginsByGroupCardView';\nimport { SchoolLoginsByMonthCardView } from 'apps/logins/views/cards/school-logins-by-month-card/SchoolLoginsByMonthCardView';\n\nimport styles from './school-login-overview.module.scss';\n\nconst namespace = 'logins.schoolLoginOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolLoginOverview() {\n useSetPageMetadata({ title: getPhrase('title') });\n useSetHeaderTitle(getPhrase('title'));\n useSetHeaderActions(getLoginHeaderActions());\n\n return (\n <div>\n <div className='d-flex gap-3'>\n <div className={`${styles.column1}`}>\n <SchoolLoginsByGroupCardView />\n </div>\n <div className={`${styles.column2}`}>\n <SchoolLoginsByMonthCardView />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CGYMpd9x2.chunk.js","names":[],"sources":["../../src/shared/flight-requests/LoginRequests.ts","../../src/apps/logins/views/cards/school-logins-by-group-card/empty-state/school-logins-by-group-card-card-empty-state.module.scss","../../src/apps/logins/views/cards/school-logins-by-group-card/empty-state/SchoolLoginsByGroupCardEmptyState.tsx","../../src/apps/logins/views/cards/school-logins-by-group-card/SchoolLoginsByGroupCardView.tsx","../../src/shared/utils/LineChartByMonthUtils.ts","../../src/apps/logins/views/cards/school-logins-by-month-card/SchoolLoginsByMonthCardView.tsx","../../src/apps/logins/views/school-login-overview/school-login-overview.module.scss","../../src/apps/logins/views/school-login-overview/SchoolLoginOverview.tsx"],"sourcesContent":["import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nexport const LoginRequests = {\n logins(\n filter: AnalyticsRequestFilter,\n success?: (data: LoginEventResponse) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/logins', {\n ...filter,\n timeOffset: DateHelper.getTimezoneOffset()\n }),\n key: getAnalyticsRequestKey('logins', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n",":local {\n .image {\n width: 200px;\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\nconst namespace = 'reportsShared.schoolLoginsByGroupCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport styles from './school-logins-by-group-card-card-empty-state.module.scss';\n\nexport function SchoolLoginsByGroupCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.School}\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';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { VerticalBarChart } from 'shared/components/vertical-bar-chart/VerticalBarChart';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { getCountByGroup } from 'shared/utils/BarChartByGroupUtils';\n\nimport { SchoolLoginsByGroupCardEmptyState } from './empty-state/SchoolLoginsByGroupCardEmptyState';\n\nconst namespace = 'logins.schoolLoginsByGroupCard';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SchoolLoginsByGroupCardView() {\n const requestFilter = useGetRequestFilter('logins');\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(LoginRequests.logins(requestFilter));\n \n const isTertiary = useIsTertiary();\n\n const mapNameToGroup = (name: string) => (name === 'Unknown' || name === null) ? 'Staff' : name;\n const totalLoginsByGroupData = getCountByGroup(\n logins.data?.yearGroupCount?.map(group => ({\n name: mapNameToGroup(group.name),\n count: group.count\n }))\n );\n const totalLoginsCount = totalLoginsByGroupData?.reduce((acc, group) => (acc + group.y), 0);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {totalLoginsByGroupData ?\n <>\n <h2 className='h6 mb-1'>\n <Text\n namespace={namespace}\n phrase={isTertiary ? 'totalLoginsTertiary' : 'totalLogins'}\n options={{ logins: totalLoginsCount }}\n />\n </h2>\n\n {totalLoginsByGroupData.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <VerticalBarChart data={totalLoginsByGroupData} />\n </div>\n </Scrollbars> :\n <SchoolLoginsByGroupCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-50'>&nbsp;</div>\n }\n </div>\n );\n}\n","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LoginEvent } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { VideoViewEvent } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nimport { mapUserTypeToChartColour, mapUserTypeToChartLabel } from 'shared/utils/UserUtils';\n\nconst GroupByThresholds = {\n MONTH: 35,\n YEAR: 365\n};\n\nconst DateFormats = {\n day: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n year: 'YYYY'\n};\n\nconst DisplayFormats = {\n day: 'D MMM',\n month: 'MMM',\n year: 'YYYY'\n};\n\ntype GroupedViewData = {\n [key in UserGroup]?: {\n [date: string]: number\n }\n};\n\ntype GroupBy = 'day' | 'month' | 'year';\n\ninterface ChartData {\n categories: string[];\n data: Highcharts.SeriesLineOptions[];\n}\n\nfunction getGroupBy(requestFilter: AnalyticsRequestFilter): GroupBy {\n const range = DateHelper.diffBetween(requestFilter.end, requestFilter.start, 'day');\n\n if (range > GroupByThresholds.YEAR)\n return 'year';\n\n if (range > GroupByThresholds.MONTH)\n return 'month';\n\n return 'day';\n}\n\nfunction getFullDateRange(requestFilter: AnalyticsRequestFilter, groupBy: GroupBy): string[] {\n const range: string[] = [];\n\n const localStart = DateHelper.convertUTCToLocal(requestFilter.start);\n const localEnd = DateHelper.convertUTCToLocal(requestFilter.end);\n\n let currentDate = DateHelper.format(localStart, DateFormats[groupBy]);\n\n while (!DateHelper.isAfter(currentDate, localEnd, groupBy)) {\n range.push(currentDate);\n currentDate = DateHelper.format(DateHelper.add(currentDate, 1, groupBy), DateFormats[groupBy]);\n }\n\n return range;\n}\n\nexport function getChartData(\n events: VideoViewEvent[] | LoginEvent[],\n requestFilter: AnalyticsRequestFilter\n): ChartData {\n if (!events) return null;\n\n const groupBy = getGroupBy(requestFilter);\n const fullDateRange = getFullDateRange(requestFilter, groupBy);\n \n const grouped: GroupedViewData = {};\n\n events.forEach(ev => {\n if (!ev.userType)\n return;\n\n const eventDate = 'groupedDateWatched' in ev && ev.groupedDateWatched || 'groupedLoggedOn' in ev && ev.groupedLoggedOn;\n const eventDateFormatted = DateHelper.format(DateHelper.convertUTCToLocal(eventDate), DateFormats[groupBy]);\n\n grouped[ev.userType] = grouped[ev.userType] ?? {};\n grouped[ev.userType][eventDateFormatted] = grouped[ev.userType][eventDateFormatted] ?? 0;\n grouped[ev.userType][eventDateFormatted] += ev.count;\n });\n\n const roles = Object.keys(grouped) as UserGroup[];\n\n if (!roles.length) return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data: []\n };\n\n return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data:\n ArrayHelper.sortBy(roles.map(r => ({\n name: mapUserTypeToChartLabel(r),\n type: 'line',\n data: fullDateRange.map(d => grouped[r][d] ?? 0),\n color: mapUserTypeToChartColour(r)\n })), 'name')\n };\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { LoginEventResponse } from 'libs/shared/apps/analytics/interfaces/LoginEvent';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { LineChart } from 'shared/components/line-chart/LineChart';\nimport { LoginRequests } from 'shared/flight-requests/LoginRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { getChartData } from 'shared/utils/LineChartByMonthUtils';\n\nconst namespace = 'logins.schoolLoginsByMonthCard';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SchoolLoginsByMonthCardView() {\n const requestFilter = useGetRequestFilter('logins');\n\n const logins = Flight.useBasicFetch<LoginEventResponse>(LoginRequests.logins(requestFilter));\n\n const chartData = getChartData(logins.data?.data, requestFilter);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3 position-relative'>\n {chartData ?\n <>\n <h2 className='position-absolute h6 mb-1'><Text namespace={namespace} phrase='loginActivity' /></h2>\n\n <LineChart categories={chartData.categories} data={chartData.data} />\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>}\n </div>\n );\n}\n",":local {\n %column {\n height: 30rem;\n }\n\n .column1 {\n @extend %column;\n flex: 3 0;\n }\n \n .column2 {\n @extend %column;\n flex: 4 0;\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 { useSetHeaderActions } from 'shared/hooks/UseSetHeaderActions';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { getLoginHeaderActions } from 'shared/utils/HeaderActionUtils';\n\nimport { SchoolLoginsByGroupCardView } from 'apps/logins/views/cards/school-logins-by-group-card/SchoolLoginsByGroupCardView';\nimport { SchoolLoginsByMonthCardView } from 'apps/logins/views/cards/school-logins-by-month-card/SchoolLoginsByMonthCardView';\n\nimport styles from './school-login-overview.module.scss';\n\nconst namespace = 'logins.schoolLoginOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolLoginOverview() {\n useSetPageMetadata({ title: getPhrase('title') });\n useSetHeaderTitle(getPhrase('title'));\n useSetHeaderActions(getLoginHeaderActions());\n\n return (\n <div>\n <div className='d-flex gap-3'>\n <div className={`${styles.column1}`}>\n <SchoolLoginsByGroupCardView />\n </div>\n <div className={`${styles.column2}`}>\n <SchoolLoginsByMonthCardView />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{N as e,Qt as t,at as n}from"./CrTgNROp.chunk.js";import{v as r}from"./CxNc1BDX.chunk.js";import{m as i,n as a}from"./Dwe-4MVf.chunk.js";import{t as o}from"./Dsv_eF8a.chunk.js";import{r as s,t as c}from"./2zJwW9wb.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{t as u}from"./7M6FzdyD.chunk.js";import{a as d,kt as f,r as p,wt as m,xt as h}from"./app-B1NVV4PT.js";import{i as g,n as _,o as v,r as y,s as b,t as x}from"./Bzx4bLV8.chunk.js";n();var S=e(),C=c(),w={image:`_image_1a110_1`},T=l.encloseNamespace(`shared.streamsBarChartCardEmptyState`);function E(){return(0,S.jsxs)(p,{className:`flex-grow-1 justify-content-center`,children:[(0,S.jsx)(p.Image,{src:h.EmptyStates.Shared.BagQuestionOrange,className:w.image}),(0,S.jsx)(p.Heading,{className:`h6`,children:T(`heading`)}),(0,S.jsx)(p.Info,{className:`w-100`,children:T(`description`)})]})}var D=`shared.streamsBarChartCard`,O=l.encloseNamespace(D);function k(e){let n=d(`video-views`),o=_(i(e.videoId?u.videoAggregation(e.videoId,e.type,n):u.aggregation(e.type,n)).data,y(e.type)),s=o?.reduce((e,t)=>e+t.y,0);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,S.jsx)(`h2`,{className:`h6 mb-1`,children:(0,S.jsx)(a,{namespace:D,phrase:`totalViews`,options:{views:s}})}),e.appLink&&e.appLinkText&&(0,S.jsx)(r,{appLink:e.appLink,className:`text-info`,children:e.appLinkText})]}),o.length?(0,S.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,S.jsx)(`div`,{className:`position-absolute w-100 pe-2`,children:(0,S.jsx)(b,{data:o,labelAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:f.DEFAULT,action:m.Default.CLASSROOM_VIEWS_POPUP})},tooltip:O(`classroomViewsSettings`)}}})})}):(0,S.jsx)(E,{})]}):(0,S.jsx)(`div`,{className:`partial-loading-background d-block w-50`,children:`\xA0`})})}var A={MONTH:35,YEAR:365},j={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},M={day:`D MMM`,month:`MMM`,year:`YYYY`};function N(e){let t=o.diffBetween(e.end,e.start,`day`);return t>A.YEAR?`year`:t>A.MONTH?`month`:`day`}function P(e,t){let n=[],r=o.convertUTCToLocal(e.start),i=o.convertUTCToLocal(e.end),a=o.format(r,j[t]);for(;!o.isAfter(a,i,t);)n.push(a),a=o.format(o.add(a,1,t),j[t]);return n}function F(e,t,n){if(!e)return null;let r=N(t),i=P(t,r),a=new Map;e.forEach(e=>{let t=o.format(o.convertUTCToLocal(e.dateStreamed),j[r]),n=[s.System,`255`].includes(e.name)?null:e.name,i=a.get(n);i||a.set(n,i=new Map);let c=i.get(t)??0;i.set(t,c+e.count)});let c=[...a.keys()];if(!c.length)return{categories:i.map(e=>o.format(e,M[r])),data:[]};let l=y(n);return{categories:i.map(e=>o.format(e,M[r])),data:c.map(e=>({name:l(e),type:`line`,data:i.map(t=>a.get(e).get(t)??0),color:g(e)})).sort((e,t)=>v(e.name,t.name))}}var I=`reportsShared.streamsChartCard`,L=l.encloseNamespace(I);function R(e){let n=d(`video-views`),r=F(i(e.videoId?u.videoAggregationChart(e.videoId,e.type,n):u.aggregationChart(e.type,n)).data,n,e.type);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:r?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,S.jsx)(a,{namespace:I,phrase:`videoViews`})}),(0,S.jsx)(x,{categories:r.categories,data:r.data,legendAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:f.DEFAULT,action:m.Default.CLASSROOM_VIEWS_POPUP})},tooltip:L(`classroomViewsSettings`)}}})]}):(0,S.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}export{k as n,R as t};
2
- //# sourceMappingURL=CitsW6ql.chunk.js.map
1
+ import{N as e,Qt as t,at as n}from"./CrTgNROp.chunk.js";import{v as r}from"./CxNc1BDX.chunk.js";import{m as i,n as a}from"./Dwe-4MVf.chunk.js";import{t as o}from"./Dsv_eF8a.chunk.js";import{r as s,t as c}from"./2zJwW9wb.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{t as u}from"./J0H9O8cX.chunk.js";import{a as d,kt as f,r as p,wt as m,xt as h}from"./app-F8o5al1q.js";import{i as g,n as _,o as v,r as y,s as b,t as x}from"./B9syewbL.chunk.js";n();var S=e(),C=c(),w={image:`_image_1a110_1`},T=l.encloseNamespace(`shared.streamsBarChartCardEmptyState`);function E(){return(0,S.jsxs)(p,{className:`flex-grow-1 justify-content-center`,children:[(0,S.jsx)(p.Image,{src:h.EmptyStates.Shared.BagQuestionOrange,className:w.image}),(0,S.jsx)(p.Heading,{className:`h6`,children:T(`heading`)}),(0,S.jsx)(p.Info,{className:`w-100`,children:T(`description`)})]})}var D=`shared.streamsBarChartCard`,O=l.encloseNamespace(D);function k(e){let n=d(`video-views`),o=_(i(e.videoId?u.videoAggregation(e.videoId,e.type,n):u.aggregation(e.type,n)).data,y(e.type)),s=o?.reduce((e,t)=>e+t.y,0);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,S.jsx)(`h2`,{className:`h6 mb-1`,children:(0,S.jsx)(a,{namespace:D,phrase:`totalViews`,options:{views:s}})}),e.appLink&&e.appLinkText&&(0,S.jsx)(r,{appLink:e.appLink,className:`text-info`,children:e.appLinkText})]}),o.length?(0,S.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,S.jsx)(`div`,{className:`position-absolute w-100 pe-2`,children:(0,S.jsx)(b,{data:o,labelAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:f.DEFAULT,action:m.Default.CLASSROOM_VIEWS_POPUP})},tooltip:O(`classroomViewsSettings`)}}})})}):(0,S.jsx)(E,{})]}):(0,S.jsx)(`div`,{className:`partial-loading-background d-block w-50`,children:`\xA0`})})}var A={MONTH:35,YEAR:365},j={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},M={day:`D MMM`,month:`MMM`,year:`YYYY`};function N(e){let t=o.diffBetween(e.end,e.start,`day`);return t>A.YEAR?`year`:t>A.MONTH?`month`:`day`}function P(e,t){let n=[],r=o.convertUTCToLocal(e.start),i=o.convertUTCToLocal(e.end),a=o.format(r,j[t]);for(;!o.isAfter(a,i,t);)n.push(a),a=o.format(o.add(a,1,t),j[t]);return n}function F(e,t,n){if(!e)return null;let r=N(t),i=P(t,r),a=new Map;e.forEach(e=>{let t=o.format(o.convertUTCToLocal(e.dateStreamed),j[r]),n=[s.System,`255`].includes(e.name)?null:e.name,i=a.get(n);i||a.set(n,i=new Map);let c=i.get(t)??0;i.set(t,c+e.count)});let c=[...a.keys()];if(!c.length)return{categories:i.map(e=>o.format(e,M[r])),data:[]};let l=y(n);return{categories:i.map(e=>o.format(e,M[r])),data:c.map(e=>({name:l(e),type:`line`,data:i.map(t=>a.get(e).get(t)??0),color:g(e)})).sort((e,t)=>v(e.name,t.name))}}var I=`reportsShared.streamsChartCard`,L=l.encloseNamespace(I);function R(e){let n=d(`video-views`),r=F(i(e.videoId?u.videoAggregationChart(e.videoId,e.type,n):u.aggregationChart(e.type,n)).data,n,e.type);return(0,S.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:r?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,S.jsx)(a,{namespace:I,phrase:`videoViews`})}),(0,S.jsx)(x,{categories:r.categories,data:r.data,legendAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:f.DEFAULT,action:m.Default.CLASSROOM_VIEWS_POPUP})},tooltip:L(`classroomViewsSettings`)}}})]}):(0,S.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}export{k as n,R as t};
2
+ //# sourceMappingURL=CLDXLTBe.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CitsW6ql.chunk.js","names":[],"sources":["../../src/shared/views/overview-cards/streams-bar-chart-card/empty-state/total-views-by-group-card-empty-state.module.scss","../../src/shared/views/overview-cards/streams-bar-chart-card/empty-state/StreamsBarChartCardEmptyState.tsx","../../src/shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView.tsx","../../src/shared/views/overview-cards/streams-chart-card/StreamsChartCardViewUtils.ts","../../src/shared/views/overview-cards/streams-chart-card/StreamsChartCardView.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\nconst namespace = 'shared.streamsBarChartCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport styles from './total-views-by-group-card-empty-state.module.scss';\n\nexport function StreamsBarChartCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.BagQuestionOrange}\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';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\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 { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { VerticalBarChart } from 'shared/components/vertical-bar-chart/VerticalBarChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { getCountByGroup } from 'shared/utils/BarChartByGroupUtils';\nimport { getLabelMapper } from 'shared/utils/UserUtils';\nimport { StreamsBarChartCardEmptyState } from 'shared/views/overview-cards/streams-bar-chart-card/empty-state/StreamsBarChartCardEmptyState';\n\nconst namespace = 'shared.streamsBarChartCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TotalViewsByGroupViewProps {\n type: StreamAggregationType;\n videoId?: string;\n appLink?: Core.AppLink;\n appLinkText?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function StreamsBarChartCardView(props: TotalViewsByGroupViewProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const chartData = Flight.useBasicFetch<GroupedAnalyticsCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregation(props.videoId, props.type, requestFilter) :\n VideoViewsV2Requests.aggregation(props.type, requestFilter));\n\n const grouped = getCountByGroup(\n chartData.data,\n getLabelMapper(props.type)\n );\n const total = grouped?.reduce((acc, group) => (acc + group.y), 0);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {grouped ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-1'><Text namespace={namespace} phrase='totalViews' options={{ views: total }} /></h2>\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n\n {grouped.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100 pe-2'>\n <VerticalBarChart data={grouped} labelAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }} />\n </div>\n </Scrollbars> :\n <StreamsBarChartCardEmptyState />\n }\n </> :\n <div className='partial-loading-background d-block w-50'>&nbsp;</div>\n }\n </div >\n );\n}\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { GroupedAnalyticsChartCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nimport { compareGroupNames } from 'shared/utils/GroupSortUtils';\nimport { getLabelMapper, mapUserTypeToChartColour } from 'shared/utils/UserUtils';\n\nconst GroupByThresholds = {\n MONTH: 35,\n YEAR: 365\n};\n\nconst DateFormats = {\n day: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n year: 'YYYY'\n};\n\nconst DisplayFormats = {\n day: 'D MMM',\n month: 'MMM',\n year: 'YYYY'\n};\n\ntype GroupBy = 'day' | 'month' | 'year';\n\ninterface ChartData {\n categories: string[];\n data: Highcharts.SeriesLineOptions[];\n}\n\nfunction getGroupBy(requestFilter: AnalyticsRequestFilter): GroupBy {\n const range = DateHelper.diffBetween(requestFilter.end, requestFilter.start, 'day');\n\n if (range > GroupByThresholds.YEAR)\n return 'year';\n\n if (range > GroupByThresholds.MONTH)\n return 'month';\n\n return 'day';\n}\n\nfunction getFullDateRange(requestFilter: AnalyticsRequestFilter, groupBy: GroupBy): string[] {\n const range: string[] = [];\n\n const localStart = DateHelper.convertUTCToLocal(requestFilter.start);\n const localEnd = DateHelper.convertUTCToLocal(requestFilter.end);\n\n let currentDate = DateHelper.format(localStart, DateFormats[groupBy]);\n\n while (!DateHelper.isAfter(currentDate, localEnd, groupBy)) {\n range.push(currentDate);\n currentDate = DateHelper.format(DateHelper.add(currentDate, 1, groupBy), DateFormats[groupBy]);\n }\n\n return range;\n}\n\nexport function getChartData(\n events: GroupedAnalyticsChartCount[],\n requestFilter: AnalyticsRequestFilter,\n type: StreamAggregationType\n): ChartData {\n if (!events) return null;\n\n const groupBy = getGroupBy(requestFilter);\n const fullDateRange = getFullDateRange(requestFilter, groupBy);\n \n const grouped = new Map<string, Map<string, number>>();\n \n events.forEach(ev => {\n const eventDate = DateHelper.format(DateHelper.convertUTCToLocal(ev.dateStreamed), DateFormats[groupBy]);\n \n // Bucketing System user data as Anonymous\n const name = [ UserGroup.System, '255' ].includes(ev.name) ? null : ev.name;\n\n let group = grouped.get(name);\n\n if (!group)\n grouped.set(name, group = new Map<string, number>);\n\n const oldCount = group.get(eventDate) ?? 0;\n group.set(eventDate, oldCount + ev.count);\n });\n\n const roles = [...grouped.keys()] as UserGroup[];\n\n if (!roles.length) return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data: []\n };\n\n const labelMapper = getLabelMapper(type);\n\n return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data:\n roles.map(r => ({\n name: labelMapper(r),\n type: 'line' as const,\n data: fullDateRange.map(d => grouped.get(r).get(d) ?? 0),\n color: mapUserTypeToChartColour(r)\n })).sort((a, b) => compareGroupNames(a.name, b.name))\n };\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsChartCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { LineChart } from 'shared/components/line-chart/LineChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\nimport { getChartData } from './StreamsChartCardViewUtils';\n\nconst namespace = 'reportsShared.streamsChartCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StreamsChartCardViewProps {\n type: StreamAggregationType;\n videoId?: string;\n className?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function StreamsChartCardView(props: StreamsChartCardViewProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const viewsByGroup = Flight.useBasicFetch<GroupedAnalyticsChartCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregationChart(props.videoId, props.type, requestFilter) :\n VideoViewsV2Requests.aggregationChart(props.type, requestFilter));\n\n const chartData = getChartData(viewsByGroup.data, requestFilter, props.type);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3 position-relative'>\n {chartData ?\n <>\n <h2 className='position-absolute h6 mb-1'><Text namespace={namespace} phrase='videoViews' /></h2>\n <LineChart\n categories={chartData.categories}\n data={chartData.data}\n legendAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }}\n />\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CLDXLTBe.chunk.js","names":[],"sources":["../../src/shared/views/overview-cards/streams-bar-chart-card/empty-state/total-views-by-group-card-empty-state.module.scss","../../src/shared/views/overview-cards/streams-bar-chart-card/empty-state/StreamsBarChartCardEmptyState.tsx","../../src/shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView.tsx","../../src/shared/views/overview-cards/streams-chart-card/StreamsChartCardViewUtils.ts","../../src/shared/views/overview-cards/streams-chart-card/StreamsChartCardView.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\nconst namespace = 'shared.streamsBarChartCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport styles from './total-views-by-group-card-empty-state.module.scss';\n\nexport function StreamsBarChartCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.BagQuestionOrange}\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';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\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 { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { VerticalBarChart } from 'shared/components/vertical-bar-chart/VerticalBarChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { getCountByGroup } from 'shared/utils/BarChartByGroupUtils';\nimport { getLabelMapper } from 'shared/utils/UserUtils';\nimport { StreamsBarChartCardEmptyState } from 'shared/views/overview-cards/streams-bar-chart-card/empty-state/StreamsBarChartCardEmptyState';\n\nconst namespace = 'shared.streamsBarChartCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TotalViewsByGroupViewProps {\n type: StreamAggregationType;\n videoId?: string;\n appLink?: Core.AppLink;\n appLinkText?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function StreamsBarChartCardView(props: TotalViewsByGroupViewProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const chartData = Flight.useBasicFetch<GroupedAnalyticsCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregation(props.videoId, props.type, requestFilter) :\n VideoViewsV2Requests.aggregation(props.type, requestFilter));\n\n const grouped = getCountByGroup(\n chartData.data,\n getLabelMapper(props.type)\n );\n const total = grouped?.reduce((acc, group) => (acc + group.y), 0);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {grouped ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-1'><Text namespace={namespace} phrase='totalViews' options={{ views: total }} /></h2>\n {props.appLink && props.appLinkText &&\n <AppLink\n appLink={props.appLink}\n className='text-info'\n >\n {props.appLinkText}\n </AppLink>\n }\n </div>\n\n {grouped.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100 pe-2'>\n <VerticalBarChart data={grouped} labelAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }} />\n </div>\n </Scrollbars> :\n <StreamsBarChartCardEmptyState />\n }\n </> :\n <div className='partial-loading-background d-block w-50'>&nbsp;</div>\n }\n </div >\n );\n}\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { GroupedAnalyticsChartCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nimport { compareGroupNames } from 'shared/utils/GroupSortUtils';\nimport { getLabelMapper, mapUserTypeToChartColour } from 'shared/utils/UserUtils';\n\nconst GroupByThresholds = {\n MONTH: 35,\n YEAR: 365\n};\n\nconst DateFormats = {\n day: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n year: 'YYYY'\n};\n\nconst DisplayFormats = {\n day: 'D MMM',\n month: 'MMM',\n year: 'YYYY'\n};\n\ntype GroupBy = 'day' | 'month' | 'year';\n\ninterface ChartData {\n categories: string[];\n data: Highcharts.SeriesLineOptions[];\n}\n\nfunction getGroupBy(requestFilter: AnalyticsRequestFilter): GroupBy {\n const range = DateHelper.diffBetween(requestFilter.end, requestFilter.start, 'day');\n\n if (range > GroupByThresholds.YEAR)\n return 'year';\n\n if (range > GroupByThresholds.MONTH)\n return 'month';\n\n return 'day';\n}\n\nfunction getFullDateRange(requestFilter: AnalyticsRequestFilter, groupBy: GroupBy): string[] {\n const range: string[] = [];\n\n const localStart = DateHelper.convertUTCToLocal(requestFilter.start);\n const localEnd = DateHelper.convertUTCToLocal(requestFilter.end);\n\n let currentDate = DateHelper.format(localStart, DateFormats[groupBy]);\n\n while (!DateHelper.isAfter(currentDate, localEnd, groupBy)) {\n range.push(currentDate);\n currentDate = DateHelper.format(DateHelper.add(currentDate, 1, groupBy), DateFormats[groupBy]);\n }\n\n return range;\n}\n\nexport function getChartData(\n events: GroupedAnalyticsChartCount[],\n requestFilter: AnalyticsRequestFilter,\n type: StreamAggregationType\n): ChartData {\n if (!events) return null;\n\n const groupBy = getGroupBy(requestFilter);\n const fullDateRange = getFullDateRange(requestFilter, groupBy);\n \n const grouped = new Map<string, Map<string, number>>();\n \n events.forEach(ev => {\n const eventDate = DateHelper.format(DateHelper.convertUTCToLocal(ev.dateStreamed), DateFormats[groupBy]);\n \n // Bucketing System user data as Anonymous\n const name = [ UserGroup.System, '255' ].includes(ev.name) ? null : ev.name;\n\n let group = grouped.get(name);\n\n if (!group)\n grouped.set(name, group = new Map<string, number>);\n\n const oldCount = group.get(eventDate) ?? 0;\n group.set(eventDate, oldCount + ev.count);\n });\n\n const roles = [...grouped.keys()] as UserGroup[];\n\n if (!roles.length) return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data: []\n };\n\n const labelMapper = getLabelMapper(type);\n\n return {\n categories: fullDateRange.map(d => DateHelper.format(d, DisplayFormats[groupBy])),\n data:\n roles.map(r => ({\n name: labelMapper(r),\n type: 'line' as const,\n data: fullDateRange.map(d => grouped.get(r).get(d) ?? 0),\n color: mapUserTypeToChartColour(r)\n })).sort((a, b) => compareGroupNames(a.name, b.name))\n };\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsChartCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { LineChart } from 'shared/components/line-chart/LineChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\n\nimport { getChartData } from './StreamsChartCardViewUtils';\n\nconst namespace = 'reportsShared.streamsChartCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StreamsChartCardViewProps {\n type: StreamAggregationType;\n videoId?: string;\n className?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function StreamsChartCardView(props: StreamsChartCardViewProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const viewsByGroup = Flight.useBasicFetch<GroupedAnalyticsChartCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregationChart(props.videoId, props.type, requestFilter) :\n VideoViewsV2Requests.aggregationChart(props.type, requestFilter));\n\n const chartData = getChartData(viewsByGroup.data, requestFilter, props.type);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3 position-relative'>\n {chartData ?\n <>\n <h2 className='position-absolute h6 mb-1'><Text namespace={namespace} phrase='videoViews' /></h2>\n <LineChart\n categories={chartData.categories}\n data={chartData.data}\n legendAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }}\n />\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Dr as e,H as t,M as n,N as r,Q as i,R as a,X as o,at as s}from"./CrTgNROp.chunk.js";import{g as c,n as l}from"./Dwe-4MVf.chunk.js";import{t as u}from"./BIVEB8w0.chunk.js";import{S as d,Z as f,at as p,u as m}from"./app-B1NVV4PT.js";import{t as h}from"./B0BRYUl5.chunk.js";var g=e(s()),_=r(),v=`reports.removeLogo`,y=u.encloseNamespace(v);function b(e){let[r,s]=g.useState(!1),u=c(),b=h(),x=d();async function S(){s(!0);try{await u(m.removeLogo(e.customerId,e.logoId)),b.success(y(x?`successTertiary`:`success`)),n.logUserAction({id:e.logoId},{actionType:o.Remove,entity:a.Logo,workflowPhase:i.Complete,location:t.Popup}),e.closePopup()}catch{b.success(y(x?`errorTertiary`:`error`)),s(!1)}}return(0,_.jsxs)(p,{closePopup:e.closePopup,title:y(x?`removeSchoolCrestTertiary`:`removeSchoolCrest`),children:[(0,_.jsx)(`p`,{children:(0,_.jsx)(l,{namespace:v,phrase:x?`areYouSureTertiary`:`areYouSure`})}),(0,_.jsxs)(f,{children:[(0,_.jsx)(f.Cancel,{onClick:e.closePopup}),(0,_.jsx)(f.Submit,{onClick:S,text:y(`remove`),showSpinner:r,variant:`danger`})]})]})}export{b as RemoveLogoView};
2
- //# sourceMappingURL=BL1X9vs52.chunk.js.map
1
+ import{Dr as e,H as t,M as n,N as r,Q as i,R as a,X as o,at as s}from"./CrTgNROp.chunk.js";import{g as c,n as l}from"./Dwe-4MVf.chunk.js";import{t as u}from"./BIVEB8w0.chunk.js";import{S as d,Z as f,at as p,u as m}from"./app-F8o5al1q.js";import{t as h}from"./B0BRYUl5.chunk.js";var g=e(s()),_=r(),v=`reports.removeLogo`,y=u.encloseNamespace(v);function b(e){let[r,s]=g.useState(!1),u=c(),b=h(),x=d();async function S(){s(!0);try{await u(m.removeLogo(e.customerId,e.logoId)),b.success(y(x?`successTertiary`:`success`)),n.logUserAction({id:e.logoId},{actionType:o.Remove,entity:a.Logo,workflowPhase:i.Complete,location:t.Popup}),e.closePopup()}catch{b.success(y(x?`errorTertiary`:`error`)),s(!1)}}return(0,_.jsxs)(p,{closePopup:e.closePopup,title:y(x?`removeSchoolCrestTertiary`:`removeSchoolCrest`),children:[(0,_.jsx)(`p`,{children:(0,_.jsx)(l,{namespace:v,phrase:x?`areYouSureTertiary`:`areYouSure`})}),(0,_.jsxs)(f,{children:[(0,_.jsx)(f.Cancel,{onClick:e.closePopup}),(0,_.jsx)(f.Submit,{onClick:S,text:y(`remove`),showSpinner:r,variant:`danger`})]})]})}export{b as RemoveLogoView};
2
+ //# sourceMappingURL=CWVwHN-C2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BL1X9vs52.chunk.js","names":[],"sources":["../../src/shared/views/remove-logo/RemoveLogoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { LogoRequests } from 'shared/flight-requests/LogoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\n\nconst namespace = 'reports.removeLogo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RemoveLogoViewProps extends PopupViewProps {\n logoId: string;\n customerId: string;\n}\n\nexport function RemoveLogoView(props: RemoveLogoViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n\n async function onClickRemove(): Promise<void> {\n setShowSpinner(true);\n\n try {\n await fetchAsync(LogoRequests.removeLogo(props.customerId, props.logoId));\n\n alerts.success(getPhrase(isTertiary ? 'successTertiary' : 'success'));\n\n AnalyticsHelper.logUserAction({\n id: props.logoId\n }, {\n actionType: UserAction.Remove,\n entity: EntityType.Logo,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n } catch {\n alerts.success(getPhrase(isTertiary ? 'errorTertiary' : 'error'));\n setShowSpinner(false);\n }\n }\n\n return (\n <Popup\n closePopup={props.closePopup}\n title={isTertiary ? getPhrase('removeSchoolCrestTertiary') : getPhrase('removeSchoolCrest')}\n >\n <p><Text namespace={namespace} phrase={isTertiary ? 'areYouSureTertiary' : 'areYouSure'} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={onClickRemove}\n text={getPhrase('remove')}\n showSpinner={showSpinner}\n variant='danger'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"ySAiBM,EAAY,qBACZ,EAAY,EAAgB,iBAAiB,CAAS,EAO5D,SAAgB,EAAe,EAAyC,CACtE,GAAM,CAAE,EAAa,GAAA,EAAyB,SAAS,EAAK,EAEtD,EAAa,EAAwB,EAErC,EAAS,EAAU,EACnB,EAAa,EAAc,EAEjC,eAAe,GAA+B,CAC5C,EAAe,EAAI,EAEnB,GAAI,CACF,MAAM,EAAW,EAAa,WAAW,EAAM,WAAY,EAAM,MAAM,CAAC,EAExE,EAAO,QAAQ,EAAU,EAAa,kBAAoB,SAAS,CAAC,EAEpE,EAAgB,cAAc,CAC5B,GAAI,EAAM,MACZ,EAAG,CACD,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,cAAe,EAAc,SAC7B,SAAU,EAAgB,KAC5B,CAAC,EAED,EAAM,WAAW,CACnB,MAAQ,CACN,EAAO,QAAQ,EAAU,EAAa,gBAAkB,OAAO,CAAC,EAChE,EAAe,EAAK,CACtB,CACF,CAEA,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,MAAoB,EAAb,EAAuB,4BAAyC,mBAAmB,WAF5F,EAIE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,UAAG,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAQ,EAAa,qBAAuB,YAAe,CAAA,CAAI,CAAA,GAE9F,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CAAqB,QAAS,EAAM,UAAa,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CACE,QAAS,EACT,KAAM,EAAU,QAAQ,EACX,cACb,QAAQ,QACT,CAAA,CACW,CAAA,CAAA,CACT,GAEX"}
1
+ {"version":3,"file":"CWVwHN-C2.chunk.js","names":[],"sources":["../../src/shared/views/remove-logo/RemoveLogoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { LogoRequests } from 'shared/flight-requests/LogoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\n\nconst namespace = 'reports.removeLogo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RemoveLogoViewProps extends PopupViewProps {\n logoId: string;\n customerId: string;\n}\n\nexport function RemoveLogoView(props: RemoveLogoViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n\n async function onClickRemove(): Promise<void> {\n setShowSpinner(true);\n\n try {\n await fetchAsync(LogoRequests.removeLogo(props.customerId, props.logoId));\n\n alerts.success(getPhrase(isTertiary ? 'successTertiary' : 'success'));\n\n AnalyticsHelper.logUserAction({\n id: props.logoId\n }, {\n actionType: UserAction.Remove,\n entity: EntityType.Logo,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n } catch {\n alerts.success(getPhrase(isTertiary ? 'errorTertiary' : 'error'));\n setShowSpinner(false);\n }\n }\n\n return (\n <Popup\n closePopup={props.closePopup}\n title={isTertiary ? getPhrase('removeSchoolCrestTertiary') : getPhrase('removeSchoolCrest')}\n >\n <p><Text namespace={namespace} phrase={isTertiary ? 'areYouSureTertiary' : 'areYouSure'} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={onClickRemove}\n text={getPhrase('remove')}\n showSpinner={showSpinner}\n variant='danger'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"ySAiBM,EAAY,qBACZ,EAAY,EAAgB,iBAAiB,CAAS,EAO5D,SAAgB,EAAe,EAAyC,CACtE,GAAM,CAAE,EAAa,GAAA,EAAyB,SAAS,EAAK,EAEtD,EAAa,EAAwB,EAErC,EAAS,EAAU,EACnB,EAAa,EAAc,EAEjC,eAAe,GAA+B,CAC5C,EAAe,EAAI,EAEnB,GAAI,CACF,MAAM,EAAW,EAAa,WAAW,EAAM,WAAY,EAAM,MAAM,CAAC,EAExE,EAAO,QAAQ,EAAU,EAAa,kBAAoB,SAAS,CAAC,EAEpE,EAAgB,cAAc,CAC5B,GAAI,EAAM,MACZ,EAAG,CACD,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,cAAe,EAAc,SAC7B,SAAU,EAAgB,KAC5B,CAAC,EAED,EAAM,WAAW,CACnB,MAAQ,CACN,EAAO,QAAQ,EAAU,EAAa,gBAAkB,OAAO,CAAC,EAChE,EAAe,EAAK,CACtB,CACF,CAEA,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,MAAoB,EAAb,EAAuB,4BAAyC,mBAAmB,WAF5F,EAIE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,UAAG,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAQ,EAAa,qBAAuB,YAAe,CAAA,CAAI,CAAA,GAE9F,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CAAqB,QAAS,EAAM,UAAa,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CACE,QAAS,EACT,KAAM,EAAU,QAAQ,EACX,cACb,QAAQ,QACT,CAAA,CACW,CAAA,CAAA,CACT,GAEX"}
@@ -1,2 +1,2 @@
1
- import{B as e,H as t,L as n,M as r,N as i,Q as a,Qt as o,R as s,U as c,X as l,Z as u,at as d,en as f}from"./CrTgNROp.chunk.js";import{i as p,r as ee,t as m,v as h}from"./CxNc1BDX.chunk.js";import{m as g,n as _}from"./Dwe-4MVf.chunk.js";import{t as te}from"./2zJwW9wb.chunk.js";import{n as v}from"./28VvvkVW.chunk.js";import{t as ne}from"./7dV7tXUX.chunk.js";import{t as y}from"./BIVEB8w0.chunk.js";import{t as b}from"./C4rkNAyl.chunk.js";import{t as re}from"./7M6FzdyD.chunk.js";import{B as ie,Ct as x,L as S,Mt as ae,Nt as C,Ot as oe,P as w,R as T,Rt as E,S as D,T as O,_ as k,a as A,f as se,i as ce,kt as j,n as le,p as ue,s as de,w as M,wt as N,z as fe}from"./app-B1NVV4PT.js";import{i as pe,n as me,r as he,t as P}from"./BLzRzOyq.chunk.js";import{t as F}from"./TzLygaBE.chunk.js";import{m as I}from"./Bzx4bLV8.chunk.js";import{n as L,t as R}from"./fh6sbun-.chunk.js";import{n as ge,t as _e}from"./4gz8eG_F.chunk.js";import{n as ve,t as ye}from"./CitsW6ql.chunk.js";import{t as be}from"./BXWs2cI72.chunk.js";import{t as xe}from"./DNY9inGn2.chunk.js";d();var z={video:`_video_x45yw_1`,button:`_button_x45yw_5`,content:`_content_x45yw_9`,partialHighlight:`_partialHighlight_x45yw_14`},B=i();function Se(){return(0,B.jsx)(`div`,{className:`w-100 ${z.partialHighlight}`,children:(0,B.jsxs)(`div`,{className:`row gx-3 h-100`,children:[(0,B.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,B.jsx)(`div`,{className:`rounded-3 ${z.video} partial-loading-background`})}),(0,B.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,B.jsx)(`div`,{className:`${z.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`${z.button} rounded-3 partial-loading-background me-2 d-inline-block`}),(0,B.jsx)(`div`,{className:`${z.button} rounded-3 partial-loading-background me-2 d-inline-block`})]})]})]})})}function Ce(e){return e.appLink?(0,B.jsx)(P,{video:e.video,commonVideoProps:e.commonVideoProps,appLink:e.appLink,analyticsOptions:{...e.analyticsOptions,location:e.locationContext},imageOptions:{size:b.Medium},type:`static`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0,alwaysShowIcon:!0}):(0,B.jsx)(`a`,{href:e.redirectUrl,target:`_blank`,onClick:()=>{r.logUserAction({videoId:e.video?.id},{...e.analyticsOptions,location:e.locationContext})},children:(0,B.jsx)(P,{video:e.video,imageOptions:{size:b.Medium},type:`cosmetic`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0})})}var V=`shared.videoHighlight`,we={actionType:l.Click,descriptor:c.DismissWidget,entity:s.Widget,eventVersion:e.V1,location:t.VideoHighlight,workflowPhase:a.Complete},H={actionType:l.Click,descriptor:u.ViewOriginalVideo,workflowPhase:a.Complete,entity:s.Thumbnail,location:t.VideoHighlight,eventVersion:e.V1},Te={actionType:l.Click,location:t.VideoHighlight,entity:s.AppLink,workflowPhase:a.Complete,descriptor:u.OpenInClickView,eventVersion:e.V1},Ee={actionType:l.Click,descriptor:n.SeeMore,workflowPhase:a.Complete,entity:s.AppLink,eventVersion:e.V1};function De(e){if(!e.video)return(0,B.jsx)(B.Fragment,{});function t(){r.logUserAction({videoId:e.video?.id},we),e.onDismiss()}function n(e,t,n={}){r.logUserAction(n,t),typeof e==`string`?f.PageLoad(e,!0):o.trigger(e)}return e.video?(0,B.jsxs)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:[(0,B.jsxs)(`div`,{className:`row gx-3`,children:[(0,B.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,B.jsx)(Ce,{video:e.video,analyticsOptions:H,appLink:e.appLink,redirectUrl:e.redirectUrl,commonVideoProps:e.commonVideoProps,locationContext:e.locationContext})}),(0,B.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,B.jsxs)(`div`,{className:`overflow-hidden mt-lg-0 mt-2`,children:[(0,B.jsx)(pe,{children:(0,B.jsx)(`span`,{onClick:()=>n(e.sharedPlaylistAppLink??e.redirectPlaylistUrl,Te),className:`cursor-pointer`,children:e.subtitle})}),(0,B.jsx)(`div`,{className:`h5 mb-0 clamp-1 d-block`,children:(0,B.jsx)(`span`,{onClick:()=>n(e.appLink??e.redirectUrl,H),className:`cursor-pointer`,children:e.video?.name})}),(0,B.jsx)(`div`,{className:`mt-1 mb-2`,children:e.video?.description??e.description})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`button`,{className:`btn btn-dark me-2`,onClick:()=>n(e.appLink??e.redirectUrl,H,{videoId:e.video?.id}),children:(0,B.jsx)(_,{namespace:V,phrase:`watch`})}),(0,B.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>n(e.supportArticle,{...Ee,location:e.locationContext},{url:e.supportArticle}),children:(0,B.jsx)(_,{namespace:V,phrase:`learnMore`})}),(0,B.jsx)(`div`,{className:`btn btn-outline-dark d-sm-none`,onClick:t,children:(0,B.jsx)(_,{namespace:V,phrase:`dismiss`})})]})]})]}),(0,B.jsx)(`div`,{className:`position-absolute top-0 end-0 p-2 d-sm-inline d-none`,children:(0,B.jsx)(m,{svg:w,onClick:t})})]}):(0,B.jsx)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:(0,B.jsx)(Se,{})})}var U=function(e){return e.SearchAndDiscover=`searchAndDiscover`,e.Analytics=`analytics`,e.OpenClassroom=`openClassroom`,e.CreateClassroom=`createClassroom`,e.UploadVideo=`uploadVideo`,e.Playlist=`playlist`,e.ShareVideo=`shareVideo`,e}({}),W={analytics:O.HasDismissedAnalyticsTutorial,openClassroom:O.HasDismissedOpenClassroomsTutorial,searchAndDiscover:O.HasDismissedSearchAndDiscoverTutorial,createClassroom:O.HasDismissedClassroomsTutorial,playlist:O.HasDismissedPlaylistsTutorial,shareVideo:O.HasDismissedMySharesTutorial,uploadVideo:O.HasDismissedMyVideosTutorial},G={OlympicsTopics:{18:{id:`Oq9WnjA`,name:`2026 Milano Cortina Winter Olympic Games`},9:{id:`EoAYjoR`,name:`2026 Milano Cortina Winter Olympic Games`}},CommonwealthGameTopics:{12:{id:`AO0j90j`,name:`Commonwealth Games Glasgow 2026`},24:{id:`ZJxKkg1`,name:`Commonwealth Games Glasgow 2026`},16:{id:`agD7d73`,name:`Commonwealth Games Glasgow 2026`},47:{id:`m6mpl27`,name:`Commonwealth Games Glasgow 2026`},18:{id:`3bRp6eA`,name:`Commonwealth Games Glasgow 2026`},9:{id:`7mjAxYR`,name:`Commonwealth Games Glasgow 2026`}},PublicTranscriptVideoIds:`78902422.8139055.32102562.36875667.3713657.9900524.48278572.39424302.3712691.54504550.23852726.3713563.3714027.51281358.58785149.7322586.3716774.36554689.54192890.6689791.10749459.3712691.81764158.43772092.43974358.48091365.6430651.3713735.54096131.57977558.78840166.57738254.51666370.49858722`.split(`.`),SpecialEvents:{dlL00b3:{id:`dlL00b3`,iconUrl:`https://img.clickviewapp.com/v2/covers/PGbNp0`}},Classifications:{Twig:{EnglandSecondary:{HUB:`yrg5vYN`},ScotlandSecondary:{HUB:`Y69j14M`},InternationalSecondary:{HUB:`MYM6GGM`},NewZealandSecondary:{HUB:`agNmRd9`},CanadaMiddle:{HUB:`3brl1mY`},CanadaHigh:{HUB:`kZJ9vkz`}},Tigtag:{EnglandPrimary:{HUB:`D1218zx`,TIGTAG_HUB:`odldxPJ`,TIGTAG_JUNIOR_HUB:`nENExnL`},ScotlandPrimary:{HUB:`JjAONbj`,TIGTAG_HUB:`3bNAGl1`,TIGTAG_JUNIOR_HUB:`K6GKp43`},InternationalPrimary:{HUB:`W1xqbk2`,TIGTAG_HUB:`ek3dJr8`,TIGTAG_JUNIOR_HUB:`PGyKzpn`},NewZealandPrimary:{HUB:`odnkREE`,TIGTAG_HUB:`kZJ4RPa`,TIGTAG_JUNIOR_HUB:`zMg80DR`},CanadaElementary:{HUB:`JjabmDE`,TIGTAG_HUB:`dq9Ewje`,TIGTAG_JUNIOR_HUB:`bmElWrb`},CanadaMiddle:{HUB:`dq9EwyZ`,TIGTAG_HUB:`K6abxjP`,TIGTAG_JUNIOR_HUB:`7mwxLdR`}}},PresentationIds:{DEFAULT:1,DEFAULT_CURRICULUM:10,AU_PRIMARY:18,AU_SECONDARY:9,AU_TERTIARY:81,US_ELEMENTARY:13,US_MIDDLE:14,US_HIGH:15,CA_ELEMENTARY:100,CA_MIDDLE:101,CA_HIGH:102,STREAMABLE_LEARNING:68,ENG_PRIMARY:16,ENG_SECONDARY:47,SCT_PRIMARY:12,SCT_SECONDARY:24,UK_TERTIARY:82,INT_PRIMARY:19,INT_SECONDARY:21,NZ_PRIMARY:96,NZ_SECONDARY:97},Libraries:{LICENCED_CONTENT_COLLECTION:`3700633`,AU_PRIMARY:`10066675`,AU_SECONDARY:`59401330`,AU_TERTIARY:`5836680`,US_ELEMENTARY:`38693445`,US_MIDDLE:`39642303`,US_HIGH:`38693435`,CA_ELEMENTARY:`92862332`,CA_MIDDLE:`92862334`,CA_HIGH:`92862344`,STREAMABLE_LEARNING:`78688869`,ENG_PRIMARY:`35340580`,ENG_SECONDARY:`59889793`,SCT_PRIMARY:`33386791`,SCT_SECONDARY:`59856733`,UK_TERTIARY:`5815036`,INT_PRIMARY:`3706428`,INT_SECONDARY:`3706459`,NZ_PRIMARY:`3705693`,NZ_SECONDARY:`3705710`,NZ_MTV:`26989676`,TWIG:`88117784`,TIGTAG:`80333935`},Rostering:{sources:{0:{name:`Unknown`,iconUrl:``},1:{name:`Clever`,iconUrl:`https://img.clickviewapp.com/v2/logos/LqlKgd`},2:{name:`ClassLink`,iconUrl:`https://img.clickviewapp.com/v2/logos/ZA2ew5`},3:{name:`Google`,iconUrl:`https://img.clickviewapp.com/v2/logos/l5x0jL`},4:{name:`Microsoft`,iconUrl:`https://img.clickviewapp.com/v2/logos/xAxGPP`},5:{name:`Schoology`,iconUrl:`https://img.clickviewapp.com/v2/logos/kZNEyz`},6:{name:`PowerSchool`,iconUrl:`https://img.clickviewapp.com/v2/logos/m6aDmR`}}},Images:{Level_1:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/dlM73E`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/WAe8MP`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/raRm7E`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/3kzeZ2`},Level_2:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/WAeKvP`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/9DAZJv`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/eKG2bq`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/xyn5eP`},Level_3:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/dl1d0g`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/R0Pz7A`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/8LYZ9R`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/nKDyRj`},Level_4:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/vYJPP5`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/PGPLLP`},TOPIC_DEFAULT_BANNER:`https://img.clickviewapp.com/v2/banners/yKvoG0`,STREAMABLE_TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/q6gnOn`,STREAMABLE_TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/age95g`},Onboarding:{Playlist:{COVER_FILE_ID:`G149g3`,BANNER_FILE_ID:`bmPLkn`},LOADING_THUMBNAILS:`https://img.clickviewapp.com/v2/thumbnails/7m34ne,https://img.clickviewapp.com/v2/thumbnails/W1bjqJ,https://img.clickviewapp.com/v2/thumbnails/G14M1e,https://img.clickviewapp.com/v2/thumbnails/2mnv5x,https://img.clickviewapp.com/v2/thumbnails/xAEG91,https://img.clickviewapp.com/v2/thumbnails/agnbyg,https://img.clickviewapp.com/v2/thumbnails/W13emP,https://img.clickviewapp.com/v2/thumbnails/Y6j2vy,https://img.clickviewapp.com/v2/thumbnails/W1MJGE,https://img.clickviewapp.com/v2/thumbnails/OqDJqG,https://img.clickviewapp.com/v2/thumbnails/1My9Wn,https://img.clickviewapp.com/v2/thumbnails/G14MRe,https://img.clickviewapp.com/v2/thumbnails/5bgKpl,https://img.clickviewapp.com/v2/thumbnails/agnbp9,https://img.clickviewapp.com/v2/thumbnails/G147R1,https://img.clickviewapp.com/v2/thumbnails/5bgMz5,https://img.clickviewapp.com/v2/thumbnails/G14Me5,https://img.clickviewapp.com/v2/thumbnails/5bEovE,https://img.clickviewapp.com/v2/thumbnails/odY4oZ,https://img.clickviewapp.com/v2/thumbnails/yrqwqD,https://img.clickviewapp.com/v2/thumbnails/K6pOmR,https://img.clickviewapp.com/v2/thumbnails/vYK3w4,https://img.clickviewapp.com/v2/thumbnails/agnD88,https://img.clickviewapp.com/v2/thumbnails/4rKmp7,https://img.clickviewapp.com/v2/thumbnails/0wM4r3,https://img.clickviewapp.com/v2/thumbnails/69A2jO,https://img.clickviewapp.com/v2/thumbnails/7m3Z3e,https://img.clickviewapp.com/v2/thumbnails/3bGL94,https://img.clickviewapp.com/v2/thumbnails/Y6jwLo,https://img.clickviewapp.com/v2/thumbnails/1MyPby`.split(`,`)},Tutorial:{cv:{staging:{[C.AU]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.NZ]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.UK]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.US]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`}},production:{[C.AU]:{PLAYLIST:`106743306`,SHARE:`DYXNQP`},[C.NZ]:{PLAYLIST:``,SHARE:``},[C.UK]:{PLAYLIST:`106743114`,SHARE:`DvwPAL`},[C.US]:{PLAYLIST:`106735465`,SHARE:`D6VOJX`}}},live:{staging:{[C.AU]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.NZ]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.UK]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.US]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`}},production:{[C.AU]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.NZ]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.UK]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.US]:{PLAYLIST:`107404226`,SHARE:`bnp6en`}}}},TutorialVideoHighlight:{analytics:{staging:{[C.US]:{VIDEO:`92095356`,SHARE:`DN8vMg`},[C.AU]:{VIDEO:`92095356`,SHARE:`DN8vMg`},[C.UK]:{VIDEO:`92095356`,SHARE:`DN8vMg`}},production:{[C.US]:{VIDEO:`107356113`,SHARE:`DNYxnm`},[C.AU]:{VIDEO:`107239339`,SHARE:`GmQgWQ`},[C.UK]:{VIDEO:`107324974`,SHARE:`bAKL6d`}}},searchAndDiscover:{staging:{[C.US]:{VIDEO:`92095348`,SHARE:`G2Ylra`},[C.AU]:{VIDEO:`92095348`,SHARE:`G2Ylra`},[C.UK]:{VIDEO:`92095348`,SHARE:`G2Ylra`}},production:{[C.US]:{VIDEO:`107310200`,SHARE:`Gp92A7`},[C.AU]:{VIDEO:`107219457`,SHARE:`GMY10v`},[C.UK]:{VIDEO:`107418074`,SHARE:`GgwWvY`}}},openClassroom:{staging:{[C.US]:{VIDEO:`92095362`,SHARE:`bwXY5w`},[C.AU]:{VIDEO:`92095362`,SHARE:`bwXY5w`},[C.UK]:{VIDEO:`92095362`,SHARE:`bwXY5w`}},production:{[C.US]:{VIDEO:`106302736`,SHARE:`Dkrvan`},[C.AU]:{VIDEO:`106898400`,SHARE:`Da9YRX`},[C.UK]:{VIDEO:`106898583`,SHARE:`G2Vxrk`}}},createClassroom:{staging:{[C.US]:{VIDEO:`92095338`,SHARE:`Gm0kXY`},[C.AU]:{VIDEO:`92095338`,SHARE:`Gm0kXY`},[C.UK]:{VIDEO:`92095338`,SHARE:`Gm0kXY`}},production:{[C.US]:{VIDEO:`102633076`,SHARE:`G2Vxvp`},[C.AU]:{VIDEO:`107239329`,SHARE:`b9dp00`},[C.UK]:{VIDEO:`107232174`,SHARE:`DYgRdV`}}},uploadVideo:{staging:{[C.US]:{VIDEO:`92095354`,SHARE:`Dk90O8`},[C.AU]:{VIDEO:`92095354`,SHARE:`Dk90O8`},[C.UK]:{VIDEO:`92095354`,SHARE:`Dk90O8`}},production:{[C.US]:{VIDEO:`106302713`,SHARE:`byNpd8`},[C.AU]:{VIDEO:`106826031`,SHARE:`GmQgXQ`},[C.UK]:{VIDEO:`106898590`,SHARE:`D6AgER`}}},playlist:{staging:{[C.US]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.AU]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.UK]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`107357318`,SHARE:`DKYdz7`},[C.AU]:{VIDEO:`107221344`,SHARE:`Gp92ay`},[C.UK]:{VIDEO:`107221972`,SHARE:`GR9RxO`}}},shareVideo:{staging:{[C.US]:{VIDEO:`92095350`,SHARE:`DN8v4g`},[C.AU]:{VIDEO:`92095350`,SHARE:`DN8v4g`},[C.UK]:{VIDEO:`92095350`,SHARE:`DN8v4g`}},production:{[C.US]:{VIDEO:`106302709`,SHARE:`bwgdNk`},[C.AU]:{VIDEO:`106826023`,SHARE:`DvwPYO`},[C.UK]:{VIDEO:`106898587`,SHARE:`bzr05K`}}},welcomeToClickView:{staging:{[C.US]:{VIDEO:`92095344`,SHARE:`DaalVQ`},[C.AU]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.UK]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`106302715`,SHARE:`DEleZo`},[C.AU]:{VIDEO:`107148652`,SHARE:`GR9RZL`},[C.UK]:{VIDEO:`107162361`,SHARE:`G084Qg`}}},welcomeToClickViewLive:{staging:{[C.US]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`107493452`,SHARE:`bnp63m`}}}},UpsellVideo:{CLICKVIEW:`https://static.clickview.com.au/video-banners/clickview-banner.mp4`}};function Oe(e,n=!0){let r=g(ne.currentUser()).data?.instanceRegion,i=g(E.config()),a=(i.data?.liteUrl.includes(`staging`)?G.TutorialVideoHighlight[e].staging:G.TutorialVideoHighlight[e].production)[r],o=(i.data?.liteUrl.includes(`staging`)?G.Tutorial.cv.staging[r]:G.Tutorial.cv.production[r])||{PLAYLIST:``,SHARE:``},{hasPermissions:s,isLoaded:c}=ie(),l=r&&a!==void 0&&c&&!s(ae.StudentExperience),u=g(l&&k.sharedVideo(a.VIDEO,a.SHARE)),d=M(t.VideoHighlight);if(!n||!Object.keys(W).includes(e))return{shouldShowVideo:l,tutorialVideo:u,videoIds:a,playlistIds:o};let f={[U.Analytics]:d.hasDismissedAnalyticsTutorial,[U.OpenClassroom]:d.hasDismissedOpenClassroomsTutorial,[U.SearchAndDiscover]:d.hasDismissedSearchAndDiscoverTutorial,[U.CreateClassroom]:d.hasDismissedClassroomsTutorial,[U.Playlist]:d.hasDismissedPlaylistsTutorial,[U.ShareVideo]:d.hasDismissedMySharesTutorial,[U.UploadVideo]:d.hasDismissedMyVideosTutorial},p=W[e];return{shouldShowVideo:l,tutorialVideo:u,videoIds:a,playlistIds:o,hasDismissedVideoHighlight:f[e]??null,dismissVideoHighlight:async()=>{!Object.keys(f).includes(e)||!p||await d.updateUserSettingAsync({name:p,value:!0,kind:de.Setting})}}}var ke={video(e,t){return{url:v.urlBuilder(`{gateway}/v1/objects/${e}`,{query:`thumbnail`,shareId:t}),key:`video:${e}`}}},K=te(),Ae={topSearches(e,t,n,r){return{url:v.urlBuilder(`{gateway}/v1/analytics/search/top`,e),key:_e(`top:searches`,e),normalize:!1,success:t,error:n,always:r}}},je=`reportsDashboard.topSearchesCardEmptyStateV2`;function Me(){return(0,B.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,B.jsx)(_,{namespace:je,phrase:`message`})})}function Ne(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-50`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-75`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`})]})}var Pe=`reportsDashboard.topSearchesCardV2`;function Fe(){let e=A(`search`),t=g(Ae.topSearches(e)),n=I(x.getPrimarySearchUrl);return(0,B.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:t.data?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`h2`,{className:`h6 mb-3`,children:(0,B.jsx)(_,{namespace:Pe,phrase:`topSearches`})}),t.data.length?(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(K.Scrollbars,{className:`position-relative`,children:(0,B.jsx)(`ol`,{className:`position-absolute w-100 ps-4`,children:t.data.map((e,t)=>(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsxs)(`a`,{href:n(e.query),target:`_blank`,className:`position-relative d-flex justify-content-between align-items-center pe-5`,children:[(0,B.jsx)(`span`,{children:e.query}),(0,B.jsx)(`div`,{className:`position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3`,children:(0,B.jsx)(ee,{svg:fe})})]})},t))})})}):(0,B.jsx)(Me,{})]}):(0,B.jsx)(Ne,{})})}var Ie=`reportsDashboard.topStreamsCardEmptyState`;function Le(){return(0,B.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,B.jsx)(_,{namespace:Ie,phrase:`message`})})}function Re(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`position-relative`,children:(0,B.jsx)(`ul`,{className:`list-unstyled position-absolute top-0 start-0 w-100 h-100`,children:Array(10).fill(null).map((e,t)=>(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsxs)(`div`,{className:`row g-0`,children:[(0,B.jsx)(`div`,{className:`col-5`,children:(0,B.jsx)(`div`,{className:`ratio ratio-16x9 rounded partial-loading-background`})}),(0,B.jsx)(`div`,{className:`col-7 d-flex align-items-center`,children:(0,B.jsxs)(`div`,{className:`mx-2 w-100`,children:[(0,B.jsx)(`div`,{className:`w-100 partial-loading-background mb-1`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`w-75 partial-loading-background`,children:`\xA0`})]})})]})},t))})})]})}var q=`reportsDashboard.topStreamsCard`,ze=y.encloseNamespace(q),J=10;function Be(){let e=ce(),t=A(`video-views`),n=g(re.topStreams(J,t)),r=F(n.data?.map(e=>e.objectId)??[],k.videos);return(0,B.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3`,children:n.hasCompleted&&!r.isFetching?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,B.jsx)(`h2`,{className:`h6 mb-3`,children:ze(`topVideos`)}),(0,B.jsx)(h,{appLink:{application:j.VIDEOS,action:N.Videos.TOP_VIDEOS},className:`text-info`,children:(0,B.jsx)(_,{namespace:q,phrase:`seeAll`})})]}),r.itemsArr?.length?(0,B.jsx)(K.Scrollbars,{className:`position-relative`,children:(0,B.jsx)(`div`,{className:`position-absolute w-100`,children:(0,B.jsx)(`ul`,{className:`list-unstyled`,children:n.data.map(t=>{let n=r.items[t.objectId];if(n)return(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsx)(h,{appLink:se(n,e),children:(0,B.jsxs)(`div`,{className:`row g-0`,children:[(0,B.jsx)(`div`,{className:`col-5`,children:(0,B.jsx)(P,{video:n,imageOptions:{size:b.Small},textPosition:me.Independent,type:`cosmetic`,hideMask:!0,size:`sm`})}),(0,B.jsx)(`div`,{className:`col-7`,children:(0,B.jsxs)(`div`,{className:`d-flex flex-column mx-2`,children:[ue.isVideoType(n)&&(0,B.jsx)(he,{type:`series`,video:n,analyticsOptions:null,className:`d-inline clamp-1`}),(0,B.jsx)(`span`,{className:`clamp-2 fw-medium`,children:n.name}),(0,B.jsx)(_,{namespace:q,phrase:`views`,options:{smartCount:t.combinedCount}})]})})]})})},n.id)})})})}):(0,B.jsx)(Le,{})]}):(0,B.jsx)(Re,{})})}var Ve={cogIcon:`_cogIcon_l8s08_1`},Y=`reportsDashboard.classroomViewsAlert`,X=y.encloseNamespace(Y);function He(e){let{alertVariant:t,dismissAlert:n}=xe(e.hasClassroomViews);return t===`none`?null:(0,B.jsxs)(`div`,{role:`alert`,className:`d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2`,children:[(0,B.jsx)(`div`,{className:`d-flex align-items-center gap-1 ms-1`,children:t===`info`?(0,B.jsx)(Ue,{}):(0,B.jsx)(We,{})}),(0,B.jsx)(m,{svg:w,className:`text-blue`,onClick:n})]})}function Z(){return(0,B.jsx)(m,{customSize:!0,svg:be,svgSize:p.Standard,appLink:{application:j.DEFAULT,action:N.Default.CLASSROOM_VIEWS_POPUP},className:Ve.cogIcon,tooltip:X(`settingsTitle`),tooltipTrigger:[`hover`],ariaLabel:X(`settingsTitle`)})}function Ue(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`fw-bold`,children:(0,B.jsx)(_,{namespace:Y,phrase:`leadIn`})}),(0,B.jsx)(Z,{}),(0,B.jsx)(_,{namespace:Y,phrase:`description`}),(0,B.jsx)(`a`,{className:`text-info`,href:S.getLiteArticle(T.ClassroomViews),target:`_blank`,rel:`noopener noreferrer`,children:(0,B.jsx)(_,{namespace:Y,phrase:`link`})})]})}function We(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`fw-bold`,children:(0,B.jsx)(_,{namespace:Y,phrase:`leadIn`})}),(0,B.jsx)(Z,{}),(0,B.jsx)(_,{namespace:Y,phrase:`reminderDescription`}),(0,B.jsx)(h,{appLink:{application:j.DEFAULT,action:N.Default.CLASSROOM_VIEWS_POPUP},className:`text-info hover-text-underline`,children:(0,B.jsx)(_,{namespace:Y,phrase:`reminderLink`})})]})}var Q={topRow:`_topRow_1oibi_1`,barChart:`_barChart_1oibi_4`,videoViews:`_videoViews_1oibi_8`,bottomRow:`_bottomRow_1oibi_12`,bottomColumn:`_bottomColumn_1oibi_15`},Ge=10,$=y.encloseNamespace(`reportsDashboard.schoolAnalyticsDashboard`);function Ke(){let e=D(),{hasStudentReach:n}=M(t.VideoHighlight),r=$(e?`tertiaryDashboard`:`dashboard`),{shouldShowVideo:i,videoIds:a,playlistIds:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=Oe(U.Analytics),l=g(i&&ke.video(a.VIDEO,a.SHARE)),u=I(x.getPrimaryObjectUrl),d=g(E.config()),f=x.getSharePlaylistUrl({id:oe.Primary,order:0,name:``,url:d.data?.liteUrl,imageUrl:``},o?.SHARE);return le({title:r}),ge(r),(0,B.jsxs)(`div`,{className:`d-flex flex-column gap-3`,children:[(0,B.jsx)(He,{hasClassroomViews:n}),l?.data&&!s&&(0,B.jsx)(De,{video:l?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-blue`,supportArticle:S.getLiteArticle(T.ClassroomAnalytics),onDismiss:c,redirectUrl:u(l?.data),redirectPlaylistUrl:f,locationContext:t.VideoHighlight}),(0,B.jsxs)(`div`,{className:`d-flex gap-3 ${Q.topRow}`,children:[(0,B.jsx)(`div`,{className:Q.barChart,children:(0,B.jsx)(ve,{type:`year_group`,appLink:{application:j.VIDEOS,action:N.Videos.HOME},appLinkText:$(`seeOverview`)})}),(0,B.jsx)(`div`,{className:Q.videoViews,children:(0,B.jsx)(ye,{type:`user_type`})})]}),(0,B.jsxs)(`div`,{className:`d-flex gap-3 ${Q.bottomRow}`,children:[(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(Be,{})}),(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(R,{type:L.RootTopic,heading:$(`subjects`),appLink:{application:j.VIDEOS,action:N.Videos.HOME},appLinkText:$(`seeOverview`),emptyStateText:$(`emptySubjects`),limit:Ge})}),(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(Fe,{})})]})]})}export{Ke as SchoolAnalyticsDashboardView};
2
- //# sourceMappingURL=kAYY_iVY2.chunk.js.map
1
+ import{B as e,H as t,L as n,M as r,N as i,Q as a,Qt as o,R as s,U as c,X as l,Z as u,at as d,en as f}from"./CrTgNROp.chunk.js";import{i as p,r as ee,t as m,v as h}from"./CxNc1BDX.chunk.js";import{m as g,n as _}from"./Dwe-4MVf.chunk.js";import{t as te}from"./2zJwW9wb.chunk.js";import{n as v}from"./28VvvkVW.chunk.js";import{t as ne}from"./7dV7tXUX.chunk.js";import{t as y}from"./BIVEB8w0.chunk.js";import{t as b}from"./C4rkNAyl.chunk.js";import{t as re}from"./J0H9O8cX.chunk.js";import{B as ie,Ct as x,L as S,Mt as ae,Nt as C,Ot as oe,P as w,R as T,Rt as E,S as D,T as O,_ as k,a as A,f as se,i as ce,kt as j,n as le,p as ue,s as de,w as M,wt as N,z as fe}from"./app-F8o5al1q.js";import{i as pe,n as me,r as he,t as P}from"./D63nJT6V.chunk.js";import{t as F}from"./BcjF3S7y.chunk.js";import{m as I}from"./B9syewbL.chunk.js";import{n as L,t as R}from"./Cv7tjWWS.chunk.js";import{n as ge,t as _e}from"./r68VJd6w.chunk.js";import{n as ve,t as ye}from"./CLDXLTBe.chunk.js";import{t as be}from"./C_nTmCTH2.chunk.js";import{t as xe}from"./DBpZNnAI2.chunk.js";d();var z={video:`_video_x45yw_1`,button:`_button_x45yw_5`,content:`_content_x45yw_9`,partialHighlight:`_partialHighlight_x45yw_14`},B=i();function Se(){return(0,B.jsx)(`div`,{className:`w-100 ${z.partialHighlight}`,children:(0,B.jsxs)(`div`,{className:`row gx-3 h-100`,children:[(0,B.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,B.jsx)(`div`,{className:`rounded-3 ${z.video} partial-loading-background`})}),(0,B.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,B.jsx)(`div`,{className:`${z.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`${z.button} rounded-3 partial-loading-background me-2 d-inline-block`}),(0,B.jsx)(`div`,{className:`${z.button} rounded-3 partial-loading-background me-2 d-inline-block`})]})]})]})})}function Ce(e){return e.appLink?(0,B.jsx)(P,{video:e.video,commonVideoProps:e.commonVideoProps,appLink:e.appLink,analyticsOptions:{...e.analyticsOptions,location:e.locationContext},imageOptions:{size:b.Medium},type:`static`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0,alwaysShowIcon:!0}):(0,B.jsx)(`a`,{href:e.redirectUrl,target:`_blank`,onClick:()=>{r.logUserAction({videoId:e.video?.id},{...e.analyticsOptions,location:e.locationContext})},children:(0,B.jsx)(P,{video:e.video,imageOptions:{size:b.Medium},type:`cosmetic`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0})})}var V=`shared.videoHighlight`,we={actionType:l.Click,descriptor:c.DismissWidget,entity:s.Widget,eventVersion:e.V1,location:t.VideoHighlight,workflowPhase:a.Complete},H={actionType:l.Click,descriptor:u.ViewOriginalVideo,workflowPhase:a.Complete,entity:s.Thumbnail,location:t.VideoHighlight,eventVersion:e.V1},Te={actionType:l.Click,location:t.VideoHighlight,entity:s.AppLink,workflowPhase:a.Complete,descriptor:u.OpenInClickView,eventVersion:e.V1},Ee={actionType:l.Click,descriptor:n.SeeMore,workflowPhase:a.Complete,entity:s.AppLink,eventVersion:e.V1};function De(e){if(!e.video)return(0,B.jsx)(B.Fragment,{});function t(){r.logUserAction({videoId:e.video?.id},we),e.onDismiss()}function n(e,t,n={}){r.logUserAction(n,t),typeof e==`string`?f.PageLoad(e,!0):o.trigger(e)}return e.video?(0,B.jsxs)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:[(0,B.jsxs)(`div`,{className:`row gx-3`,children:[(0,B.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,B.jsx)(Ce,{video:e.video,analyticsOptions:H,appLink:e.appLink,redirectUrl:e.redirectUrl,commonVideoProps:e.commonVideoProps,locationContext:e.locationContext})}),(0,B.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,B.jsxs)(`div`,{className:`overflow-hidden mt-lg-0 mt-2`,children:[(0,B.jsx)(pe,{children:(0,B.jsx)(`span`,{onClick:()=>n(e.sharedPlaylistAppLink??e.redirectPlaylistUrl,Te),className:`cursor-pointer`,children:e.subtitle})}),(0,B.jsx)(`div`,{className:`h5 mb-0 clamp-1 d-block`,children:(0,B.jsx)(`span`,{onClick:()=>n(e.appLink??e.redirectUrl,H),className:`cursor-pointer`,children:e.video?.name})}),(0,B.jsx)(`div`,{className:`mt-1 mb-2`,children:e.video?.description??e.description})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`button`,{className:`btn btn-dark me-2`,onClick:()=>n(e.appLink??e.redirectUrl,H,{videoId:e.video?.id}),children:(0,B.jsx)(_,{namespace:V,phrase:`watch`})}),(0,B.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>n(e.supportArticle,{...Ee,location:e.locationContext},{url:e.supportArticle}),children:(0,B.jsx)(_,{namespace:V,phrase:`learnMore`})}),(0,B.jsx)(`div`,{className:`btn btn-outline-dark d-sm-none`,onClick:t,children:(0,B.jsx)(_,{namespace:V,phrase:`dismiss`})})]})]})]}),(0,B.jsx)(`div`,{className:`position-absolute top-0 end-0 p-2 d-sm-inline d-none`,children:(0,B.jsx)(m,{svg:w,onClick:t})})]}):(0,B.jsx)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:(0,B.jsx)(Se,{})})}var U=function(e){return e.SearchAndDiscover=`searchAndDiscover`,e.Analytics=`analytics`,e.OpenClassroom=`openClassroom`,e.CreateClassroom=`createClassroom`,e.UploadVideo=`uploadVideo`,e.Playlist=`playlist`,e.ShareVideo=`shareVideo`,e}({}),W={analytics:O.HasDismissedAnalyticsTutorial,openClassroom:O.HasDismissedOpenClassroomsTutorial,searchAndDiscover:O.HasDismissedSearchAndDiscoverTutorial,createClassroom:O.HasDismissedClassroomsTutorial,playlist:O.HasDismissedPlaylistsTutorial,shareVideo:O.HasDismissedMySharesTutorial,uploadVideo:O.HasDismissedMyVideosTutorial},G={OlympicsTopics:{18:{id:`Oq9WnjA`,name:`2026 Milano Cortina Winter Olympic Games`},9:{id:`EoAYjoR`,name:`2026 Milano Cortina Winter Olympic Games`}},CommonwealthGameTopics:{12:{id:`AO0j90j`,name:`Commonwealth Games Glasgow 2026`},24:{id:`ZJxKkg1`,name:`Commonwealth Games Glasgow 2026`},16:{id:`agD7d73`,name:`Commonwealth Games Glasgow 2026`},47:{id:`m6mpl27`,name:`Commonwealth Games Glasgow 2026`},18:{id:`3bRp6eA`,name:`Commonwealth Games Glasgow 2026`},9:{id:`7mjAxYR`,name:`Commonwealth Games Glasgow 2026`}},PublicTranscriptVideoIds:`78902422.8139055.32102562.36875667.3713657.9900524.48278572.39424302.3712691.54504550.23852726.3713563.3714027.51281358.58785149.7322586.3716774.36554689.54192890.6689791.10749459.3712691.81764158.43772092.43974358.48091365.6430651.3713735.54096131.57977558.78840166.57738254.51666370.49858722`.split(`.`),SpecialEvents:{dlL00b3:{id:`dlL00b3`,iconUrl:`https://img.clickviewapp.com/v2/covers/PGbNp0`}},Classifications:{Twig:{EnglandSecondary:{HUB:`yrg5vYN`},ScotlandSecondary:{HUB:`Y69j14M`},InternationalSecondary:{HUB:`MYM6GGM`},NewZealandSecondary:{HUB:`agNmRd9`},CanadaMiddle:{HUB:`3brl1mY`},CanadaHigh:{HUB:`kZJ9vkz`}},Tigtag:{EnglandPrimary:{HUB:`D1218zx`,TIGTAG_HUB:`odldxPJ`,TIGTAG_JUNIOR_HUB:`nENExnL`},ScotlandPrimary:{HUB:`JjAONbj`,TIGTAG_HUB:`3bNAGl1`,TIGTAG_JUNIOR_HUB:`K6GKp43`},InternationalPrimary:{HUB:`W1xqbk2`,TIGTAG_HUB:`ek3dJr8`,TIGTAG_JUNIOR_HUB:`PGyKzpn`},NewZealandPrimary:{HUB:`odnkREE`,TIGTAG_HUB:`kZJ4RPa`,TIGTAG_JUNIOR_HUB:`zMg80DR`},CanadaElementary:{HUB:`JjabmDE`,TIGTAG_HUB:`dq9Ewje`,TIGTAG_JUNIOR_HUB:`bmElWrb`},CanadaMiddle:{HUB:`dq9EwyZ`,TIGTAG_HUB:`K6abxjP`,TIGTAG_JUNIOR_HUB:`7mwxLdR`}}},PresentationIds:{DEFAULT:1,DEFAULT_CURRICULUM:10,AU_PRIMARY:18,AU_SECONDARY:9,AU_TERTIARY:81,US_ELEMENTARY:13,US_MIDDLE:14,US_HIGH:15,CA_ELEMENTARY:100,CA_MIDDLE:101,CA_HIGH:102,STREAMABLE_LEARNING:68,ENG_PRIMARY:16,ENG_SECONDARY:47,SCT_PRIMARY:12,SCT_SECONDARY:24,UK_TERTIARY:82,INT_PRIMARY:19,INT_SECONDARY:21,NZ_PRIMARY:96,NZ_SECONDARY:97},Libraries:{LICENCED_CONTENT_COLLECTION:`3700633`,AU_PRIMARY:`10066675`,AU_SECONDARY:`59401330`,AU_TERTIARY:`5836680`,US_ELEMENTARY:`38693445`,US_MIDDLE:`39642303`,US_HIGH:`38693435`,CA_ELEMENTARY:`92862332`,CA_MIDDLE:`92862334`,CA_HIGH:`92862344`,STREAMABLE_LEARNING:`78688869`,ENG_PRIMARY:`35340580`,ENG_SECONDARY:`59889793`,SCT_PRIMARY:`33386791`,SCT_SECONDARY:`59856733`,UK_TERTIARY:`5815036`,INT_PRIMARY:`3706428`,INT_SECONDARY:`3706459`,NZ_PRIMARY:`3705693`,NZ_SECONDARY:`3705710`,NZ_MTV:`26989676`,TWIG:`88117784`,TIGTAG:`80333935`},Rostering:{sources:{0:{name:`Unknown`,iconUrl:``},1:{name:`Clever`,iconUrl:`https://img.clickviewapp.com/v2/logos/LqlKgd`},2:{name:`ClassLink`,iconUrl:`https://img.clickviewapp.com/v2/logos/ZA2ew5`},3:{name:`Google`,iconUrl:`https://img.clickviewapp.com/v2/logos/l5x0jL`},4:{name:`Microsoft`,iconUrl:`https://img.clickviewapp.com/v2/logos/xAxGPP`},5:{name:`Schoology`,iconUrl:`https://img.clickviewapp.com/v2/logos/kZNEyz`},6:{name:`PowerSchool`,iconUrl:`https://img.clickviewapp.com/v2/logos/m6aDmR`}}},Images:{Level_1:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/dlM73E`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/WAe8MP`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/raRm7E`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/3kzeZ2`},Level_2:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/WAeKvP`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/9DAZJv`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/eKG2bq`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/xyn5eP`},Level_3:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/dl1d0g`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/R0Pz7A`,TOPIC_TALL_POSTER:`https://img.clickviewapp.com/v2/tallposters/8LYZ9R`,NEW_RELEASES_BANNER:`https://img.clickviewapp.com/v2/banners/nKDyRj`},Level_4:{TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/vYJPP5`,TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/PGPLLP`},TOPIC_DEFAULT_BANNER:`https://img.clickviewapp.com/v2/banners/yKvoG0`,STREAMABLE_TOPIC_BANNER:`https://img.clickviewapp.com/v2/banners/q6gnOn`,STREAMABLE_TOPIC_COVER:`https://img.clickviewapp.com/v2/covers/age95g`},Onboarding:{Playlist:{COVER_FILE_ID:`G149g3`,BANNER_FILE_ID:`bmPLkn`},LOADING_THUMBNAILS:`https://img.clickviewapp.com/v2/thumbnails/7m34ne,https://img.clickviewapp.com/v2/thumbnails/W1bjqJ,https://img.clickviewapp.com/v2/thumbnails/G14M1e,https://img.clickviewapp.com/v2/thumbnails/2mnv5x,https://img.clickviewapp.com/v2/thumbnails/xAEG91,https://img.clickviewapp.com/v2/thumbnails/agnbyg,https://img.clickviewapp.com/v2/thumbnails/W13emP,https://img.clickviewapp.com/v2/thumbnails/Y6j2vy,https://img.clickviewapp.com/v2/thumbnails/W1MJGE,https://img.clickviewapp.com/v2/thumbnails/OqDJqG,https://img.clickviewapp.com/v2/thumbnails/1My9Wn,https://img.clickviewapp.com/v2/thumbnails/G14MRe,https://img.clickviewapp.com/v2/thumbnails/5bgKpl,https://img.clickviewapp.com/v2/thumbnails/agnbp9,https://img.clickviewapp.com/v2/thumbnails/G147R1,https://img.clickviewapp.com/v2/thumbnails/5bgMz5,https://img.clickviewapp.com/v2/thumbnails/G14Me5,https://img.clickviewapp.com/v2/thumbnails/5bEovE,https://img.clickviewapp.com/v2/thumbnails/odY4oZ,https://img.clickviewapp.com/v2/thumbnails/yrqwqD,https://img.clickviewapp.com/v2/thumbnails/K6pOmR,https://img.clickviewapp.com/v2/thumbnails/vYK3w4,https://img.clickviewapp.com/v2/thumbnails/agnD88,https://img.clickviewapp.com/v2/thumbnails/4rKmp7,https://img.clickviewapp.com/v2/thumbnails/0wM4r3,https://img.clickviewapp.com/v2/thumbnails/69A2jO,https://img.clickviewapp.com/v2/thumbnails/7m3Z3e,https://img.clickviewapp.com/v2/thumbnails/3bGL94,https://img.clickviewapp.com/v2/thumbnails/Y6jwLo,https://img.clickviewapp.com/v2/thumbnails/1MyPby`.split(`,`)},Tutorial:{cv:{staging:{[C.AU]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.NZ]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.UK]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[C.US]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`}},production:{[C.AU]:{PLAYLIST:`106743306`,SHARE:`DYXNQP`},[C.NZ]:{PLAYLIST:``,SHARE:``},[C.UK]:{PLAYLIST:`106743114`,SHARE:`DvwPAL`},[C.US]:{PLAYLIST:`106735465`,SHARE:`D6VOJX`}}},live:{staging:{[C.AU]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.NZ]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.UK]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`},[C.US]:{PLAYLIST:`92210048`,SHARE:`DXvWdB`}},production:{[C.AU]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.NZ]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.UK]:{PLAYLIST:`107404226`,SHARE:`bnp6en`},[C.US]:{PLAYLIST:`107404226`,SHARE:`bnp6en`}}}},TutorialVideoHighlight:{analytics:{staging:{[C.US]:{VIDEO:`92095356`,SHARE:`DN8vMg`},[C.AU]:{VIDEO:`92095356`,SHARE:`DN8vMg`},[C.UK]:{VIDEO:`92095356`,SHARE:`DN8vMg`}},production:{[C.US]:{VIDEO:`107356113`,SHARE:`DNYxnm`},[C.AU]:{VIDEO:`107239339`,SHARE:`GmQgWQ`},[C.UK]:{VIDEO:`107324974`,SHARE:`bAKL6d`}}},searchAndDiscover:{staging:{[C.US]:{VIDEO:`92095348`,SHARE:`G2Ylra`},[C.AU]:{VIDEO:`92095348`,SHARE:`G2Ylra`},[C.UK]:{VIDEO:`92095348`,SHARE:`G2Ylra`}},production:{[C.US]:{VIDEO:`107310200`,SHARE:`Gp92A7`},[C.AU]:{VIDEO:`107219457`,SHARE:`GMY10v`},[C.UK]:{VIDEO:`107418074`,SHARE:`GgwWvY`}}},openClassroom:{staging:{[C.US]:{VIDEO:`92095362`,SHARE:`bwXY5w`},[C.AU]:{VIDEO:`92095362`,SHARE:`bwXY5w`},[C.UK]:{VIDEO:`92095362`,SHARE:`bwXY5w`}},production:{[C.US]:{VIDEO:`106302736`,SHARE:`Dkrvan`},[C.AU]:{VIDEO:`106898400`,SHARE:`Da9YRX`},[C.UK]:{VIDEO:`106898583`,SHARE:`G2Vxrk`}}},createClassroom:{staging:{[C.US]:{VIDEO:`92095338`,SHARE:`Gm0kXY`},[C.AU]:{VIDEO:`92095338`,SHARE:`Gm0kXY`},[C.UK]:{VIDEO:`92095338`,SHARE:`Gm0kXY`}},production:{[C.US]:{VIDEO:`102633076`,SHARE:`G2Vxvp`},[C.AU]:{VIDEO:`107239329`,SHARE:`b9dp00`},[C.UK]:{VIDEO:`107232174`,SHARE:`DYgRdV`}}},uploadVideo:{staging:{[C.US]:{VIDEO:`92095354`,SHARE:`Dk90O8`},[C.AU]:{VIDEO:`92095354`,SHARE:`Dk90O8`},[C.UK]:{VIDEO:`92095354`,SHARE:`Dk90O8`}},production:{[C.US]:{VIDEO:`106302713`,SHARE:`byNpd8`},[C.AU]:{VIDEO:`106826031`,SHARE:`GmQgXQ`},[C.UK]:{VIDEO:`106898590`,SHARE:`D6AgER`}}},playlist:{staging:{[C.US]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.AU]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.UK]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`107357318`,SHARE:`DKYdz7`},[C.AU]:{VIDEO:`107221344`,SHARE:`Gp92ay`},[C.UK]:{VIDEO:`107221972`,SHARE:`GR9RxO`}}},shareVideo:{staging:{[C.US]:{VIDEO:`92095350`,SHARE:`DN8v4g`},[C.AU]:{VIDEO:`92095350`,SHARE:`DN8v4g`},[C.UK]:{VIDEO:`92095350`,SHARE:`DN8v4g`}},production:{[C.US]:{VIDEO:`106302709`,SHARE:`bwgdNk`},[C.AU]:{VIDEO:`106826023`,SHARE:`DvwPYO`},[C.UK]:{VIDEO:`106898587`,SHARE:`bzr05K`}}},welcomeToClickView:{staging:{[C.US]:{VIDEO:`92095344`,SHARE:`DaalVQ`},[C.AU]:{VIDEO:`92095342`,SHARE:`b9P51m`},[C.UK]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`106302715`,SHARE:`DEleZo`},[C.AU]:{VIDEO:`107148652`,SHARE:`GR9RZL`},[C.UK]:{VIDEO:`107162361`,SHARE:`G084Qg`}}},welcomeToClickViewLive:{staging:{[C.US]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[C.US]:{VIDEO:`107493452`,SHARE:`bnp63m`}}}},UpsellVideo:{CLICKVIEW:`https://static.clickview.com.au/video-banners/clickview-banner.mp4`}};function Oe(e,n=!0){let r=g(ne.currentUser()).data?.instanceRegion,i=g(E.config()),a=(i.data?.liteUrl.includes(`staging`)?G.TutorialVideoHighlight[e].staging:G.TutorialVideoHighlight[e].production)[r],o=(i.data?.liteUrl.includes(`staging`)?G.Tutorial.cv.staging[r]:G.Tutorial.cv.production[r])||{PLAYLIST:``,SHARE:``},{hasPermissions:s,isLoaded:c}=ie(),l=r&&a!==void 0&&c&&!s(ae.StudentExperience),u=g(l&&k.sharedVideo(a.VIDEO,a.SHARE)),d=M(t.VideoHighlight);if(!n||!Object.keys(W).includes(e))return{shouldShowVideo:l,tutorialVideo:u,videoIds:a,playlistIds:o};let f={[U.Analytics]:d.hasDismissedAnalyticsTutorial,[U.OpenClassroom]:d.hasDismissedOpenClassroomsTutorial,[U.SearchAndDiscover]:d.hasDismissedSearchAndDiscoverTutorial,[U.CreateClassroom]:d.hasDismissedClassroomsTutorial,[U.Playlist]:d.hasDismissedPlaylistsTutorial,[U.ShareVideo]:d.hasDismissedMySharesTutorial,[U.UploadVideo]:d.hasDismissedMyVideosTutorial},p=W[e];return{shouldShowVideo:l,tutorialVideo:u,videoIds:a,playlistIds:o,hasDismissedVideoHighlight:f[e]??null,dismissVideoHighlight:async()=>{!Object.keys(f).includes(e)||!p||await d.updateUserSettingAsync({name:p,value:!0,kind:de.Setting})}}}var ke={video(e,t){return{url:v.urlBuilder(`{gateway}/v1/objects/${e}`,{query:`thumbnail`,shareId:t}),key:`video:${e}`}}},K=te(),Ae={topSearches(e,t,n,r){return{url:v.urlBuilder(`{gateway}/v1/analytics/search/top`,e),key:_e(`top:searches`,e),normalize:!1,success:t,error:n,always:r}}},je=`reportsDashboard.topSearchesCardEmptyStateV2`;function Me(){return(0,B.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,B.jsx)(_,{namespace:je,phrase:`message`})})}function Ne(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-50`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-75`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`})]})}var Pe=`reportsDashboard.topSearchesCardV2`;function Fe(){let e=A(`search`),t=g(Ae.topSearches(e)),n=I(x.getPrimarySearchUrl);return(0,B.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:t.data?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`h2`,{className:`h6 mb-3`,children:(0,B.jsx)(_,{namespace:Pe,phrase:`topSearches`})}),t.data.length?(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(K.Scrollbars,{className:`position-relative`,children:(0,B.jsx)(`ol`,{className:`position-absolute w-100 ps-4`,children:t.data.map((e,t)=>(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsxs)(`a`,{href:n(e.query),target:`_blank`,className:`position-relative d-flex justify-content-between align-items-center pe-5`,children:[(0,B.jsx)(`span`,{children:e.query}),(0,B.jsx)(`div`,{className:`position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3`,children:(0,B.jsx)(ee,{svg:fe})})]})},t))})})}):(0,B.jsx)(Me,{})]}):(0,B.jsx)(Ne,{})})}var Ie=`reportsDashboard.topStreamsCardEmptyState`;function Le(){return(0,B.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,B.jsx)(_,{namespace:Ie,phrase:`message`})})}function Re(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`position-relative`,children:(0,B.jsx)(`ul`,{className:`list-unstyled position-absolute top-0 start-0 w-100 h-100`,children:Array(10).fill(null).map((e,t)=>(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsxs)(`div`,{className:`row g-0`,children:[(0,B.jsx)(`div`,{className:`col-5`,children:(0,B.jsx)(`div`,{className:`ratio ratio-16x9 rounded partial-loading-background`})}),(0,B.jsx)(`div`,{className:`col-7 d-flex align-items-center`,children:(0,B.jsxs)(`div`,{className:`mx-2 w-100`,children:[(0,B.jsx)(`div`,{className:`w-100 partial-loading-background mb-1`,children:`\xA0`}),(0,B.jsx)(`div`,{className:`w-75 partial-loading-background`,children:`\xA0`})]})})]})},t))})})]})}var q=`reportsDashboard.topStreamsCard`,ze=y.encloseNamespace(q),J=10;function Be(){let e=ce(),t=A(`video-views`),n=g(re.topStreams(J,t)),r=F(n.data?.map(e=>e.objectId)??[],k.videos);return(0,B.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3`,children:n.hasCompleted&&!r.isFetching?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,B.jsx)(`h2`,{className:`h6 mb-3`,children:ze(`topVideos`)}),(0,B.jsx)(h,{appLink:{application:j.VIDEOS,action:N.Videos.TOP_VIDEOS},className:`text-info`,children:(0,B.jsx)(_,{namespace:q,phrase:`seeAll`})})]}),r.itemsArr?.length?(0,B.jsx)(K.Scrollbars,{className:`position-relative`,children:(0,B.jsx)(`div`,{className:`position-absolute w-100`,children:(0,B.jsx)(`ul`,{className:`list-unstyled`,children:n.data.map(t=>{let n=r.items[t.objectId];if(n)return(0,B.jsx)(`li`,{className:`mb-3`,children:(0,B.jsx)(h,{appLink:se(n,e),children:(0,B.jsxs)(`div`,{className:`row g-0`,children:[(0,B.jsx)(`div`,{className:`col-5`,children:(0,B.jsx)(P,{video:n,imageOptions:{size:b.Small},textPosition:me.Independent,type:`cosmetic`,hideMask:!0,size:`sm`})}),(0,B.jsx)(`div`,{className:`col-7`,children:(0,B.jsxs)(`div`,{className:`d-flex flex-column mx-2`,children:[ue.isVideoType(n)&&(0,B.jsx)(he,{type:`series`,video:n,analyticsOptions:null,className:`d-inline clamp-1`}),(0,B.jsx)(`span`,{className:`clamp-2 fw-medium`,children:n.name}),(0,B.jsx)(_,{namespace:q,phrase:`views`,options:{smartCount:t.combinedCount}})]})})]})})},n.id)})})})}):(0,B.jsx)(Le,{})]}):(0,B.jsx)(Re,{})})}var Ve={cogIcon:`_cogIcon_l8s08_1`},Y=`reportsDashboard.classroomViewsAlert`,X=y.encloseNamespace(Y);function He(e){let{alertVariant:t,dismissAlert:n}=xe(e.hasClassroomViews);return t===`none`?null:(0,B.jsxs)(`div`,{role:`alert`,className:`d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2`,children:[(0,B.jsx)(`div`,{className:`d-flex align-items-center gap-1 ms-1`,children:t===`info`?(0,B.jsx)(Ue,{}):(0,B.jsx)(We,{})}),(0,B.jsx)(m,{svg:w,className:`text-blue`,onClick:n})]})}function Z(){return(0,B.jsx)(m,{customSize:!0,svg:be,svgSize:p.Standard,appLink:{application:j.DEFAULT,action:N.Default.CLASSROOM_VIEWS_POPUP},className:Ve.cogIcon,tooltip:X(`settingsTitle`),tooltipTrigger:[`hover`],ariaLabel:X(`settingsTitle`)})}function Ue(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`fw-bold`,children:(0,B.jsx)(_,{namespace:Y,phrase:`leadIn`})}),(0,B.jsx)(Z,{}),(0,B.jsx)(_,{namespace:Y,phrase:`description`}),(0,B.jsx)(`a`,{className:`text-info`,href:S.getLiteArticle(T.ClassroomViews),target:`_blank`,rel:`noopener noreferrer`,children:(0,B.jsx)(_,{namespace:Y,phrase:`link`})})]})}function We(){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`fw-bold`,children:(0,B.jsx)(_,{namespace:Y,phrase:`leadIn`})}),(0,B.jsx)(Z,{}),(0,B.jsx)(_,{namespace:Y,phrase:`reminderDescription`}),(0,B.jsx)(h,{appLink:{application:j.DEFAULT,action:N.Default.CLASSROOM_VIEWS_POPUP},className:`text-info hover-text-underline`,children:(0,B.jsx)(_,{namespace:Y,phrase:`reminderLink`})})]})}var Q={topRow:`_topRow_1oibi_1`,barChart:`_barChart_1oibi_4`,videoViews:`_videoViews_1oibi_8`,bottomRow:`_bottomRow_1oibi_12`,bottomColumn:`_bottomColumn_1oibi_15`},Ge=10,$=y.encloseNamespace(`reportsDashboard.schoolAnalyticsDashboard`);function Ke(){let e=D(),{hasStudentReach:n}=M(t.VideoHighlight),r=$(e?`tertiaryDashboard`:`dashboard`),{shouldShowVideo:i,videoIds:a,playlistIds:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=Oe(U.Analytics),l=g(i&&ke.video(a.VIDEO,a.SHARE)),u=I(x.getPrimaryObjectUrl),d=g(E.config()),f=x.getSharePlaylistUrl({id:oe.Primary,order:0,name:``,url:d.data?.liteUrl,imageUrl:``},o?.SHARE);return le({title:r}),ge(r),(0,B.jsxs)(`div`,{className:`d-flex flex-column gap-3`,children:[(0,B.jsx)(He,{hasClassroomViews:n}),l?.data&&!s&&(0,B.jsx)(De,{video:l?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-blue`,supportArticle:S.getLiteArticle(T.ClassroomAnalytics),onDismiss:c,redirectUrl:u(l?.data),redirectPlaylistUrl:f,locationContext:t.VideoHighlight}),(0,B.jsxs)(`div`,{className:`d-flex gap-3 ${Q.topRow}`,children:[(0,B.jsx)(`div`,{className:Q.barChart,children:(0,B.jsx)(ve,{type:`year_group`,appLink:{application:j.VIDEOS,action:N.Videos.HOME},appLinkText:$(`seeOverview`)})}),(0,B.jsx)(`div`,{className:Q.videoViews,children:(0,B.jsx)(ye,{type:`user_type`})})]}),(0,B.jsxs)(`div`,{className:`d-flex gap-3 ${Q.bottomRow}`,children:[(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(Be,{})}),(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(R,{type:L.RootTopic,heading:$(`subjects`),appLink:{application:j.VIDEOS,action:N.Videos.HOME},appLinkText:$(`seeOverview`),emptyStateText:$(`emptySubjects`),limit:Ge})}),(0,B.jsx)(`div`,{className:Q.bottomColumn,children:(0,B.jsx)(Fe,{})})]})]})}export{Ke as SchoolAnalyticsDashboardView};
2
+ //# sourceMappingURL=CXyHtApp2.chunk.js.map