@clickview/reports 0.85.0-rc.0 → 0.85.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/.vite/manifest.json +265 -265
  2. package/dist/bundles.json +1 -1
  3. package/dist/css/B6REaZgP.chunk.css +8 -0
  4. package/dist/en.json +1 -1
  5. package/dist/scripts/{B8cDqk3r.chunk.js → 1pdbKMyH.chunk.js} +2 -2
  6. package/dist/scripts/{B8cDqk3r.chunk.js.map → 1pdbKMyH.chunk.js.map} +1 -1
  7. package/dist/scripts/{DK3tHqQv.chunk.js → 2MxiB_er.chunk.js} +2 -2
  8. package/dist/scripts/{DK3tHqQv.chunk.js.map → 2MxiB_er.chunk.js.map} +1 -1
  9. package/dist/scripts/{BPMB_v0s2.chunk.js → 3EzrYsbw2.chunk.js} +2 -2
  10. package/dist/scripts/{BPMB_v0s2.chunk.js.map → 3EzrYsbw2.chunk.js.map} +1 -1
  11. package/dist/scripts/{Kl4bbkgr2.chunk.js → 3q7nyVif2.chunk.js} +2 -2
  12. package/dist/scripts/{Kl4bbkgr2.chunk.js.map → 3q7nyVif2.chunk.js.map} +1 -1
  13. package/dist/scripts/{Bqyk3nb6.chunk.js → B9S_LeFP.chunk.js} +2 -2
  14. package/dist/scripts/{Bqyk3nb6.chunk.js.map → B9S_LeFP.chunk.js.map} +1 -1
  15. package/dist/scripts/{nCttr7GT.chunk.js → BKW2JeVr.chunk.js} +2 -2
  16. package/dist/scripts/{nCttr7GT.chunk.js.map → BKW2JeVr.chunk.js.map} +1 -1
  17. package/dist/scripts/{09UoyYDa2.chunk.js → BfhdSOSX2.chunk.js} +2 -2
  18. package/dist/scripts/{09UoyYDa2.chunk.js.map → BfhdSOSX2.chunk.js.map} +1 -1
  19. package/dist/scripts/{BxLSGp7E.chunk.js → BnfA2fln.chunk.js} +2 -2
  20. package/dist/scripts/{BxLSGp7E.chunk.js.map → BnfA2fln.chunk.js.map} +1 -1
  21. package/dist/scripts/{DcpG_Euo.chunk.js → BpzXy-5d.chunk.js} +2 -2
  22. package/dist/scripts/{DcpG_Euo.chunk.js.map → BpzXy-5d.chunk.js.map} +1 -1
  23. package/dist/scripts/Bs1YLdQb.chunk.js +1 -0
  24. package/dist/scripts/{CHNBnXs-2.chunk.js → Bua2prVk2.chunk.js} +2 -2
  25. package/dist/scripts/{CHNBnXs-2.chunk.js.map → Bua2prVk2.chunk.js.map} +1 -1
  26. package/dist/scripts/{Cf1whmy32.chunk.js → BvNaANAO2.chunk.js} +2 -2
  27. package/dist/scripts/{Cf1whmy32.chunk.js.map → BvNaANAO2.chunk.js.map} +1 -1
  28. package/dist/scripts/{Cn2w0OHm.chunk.js → Bx5qk-PZ.chunk.js} +3 -3
  29. package/dist/scripts/{Cn2w0OHm.chunk.js.map → Bx5qk-PZ.chunk.js.map} +1 -1
  30. package/dist/scripts/{DirX37xL2.chunk.js → CCLDpjnt2.chunk.js} +2 -2
  31. package/dist/scripts/{DirX37xL2.chunk.js.map → CCLDpjnt2.chunk.js.map} +1 -1
  32. package/dist/scripts/{Do88yXba.chunk.js → CJIwkABI.chunk.js} +2 -2
  33. package/dist/scripts/{Do88yXba.chunk.js.map → CJIwkABI.chunk.js.map} +1 -1
  34. package/dist/scripts/{ByFS52xu.chunk.js → CKRKdk5U.chunk.js} +2 -2
  35. package/dist/scripts/{ByFS52xu.chunk.js.map → CKRKdk5U.chunk.js.map} +1 -1
  36. package/dist/scripts/{Dh8AAJA8.chunk.js → CKVaLGJC.chunk.js} +2 -2
  37. package/dist/scripts/{Dh8AAJA8.chunk.js.map → CKVaLGJC.chunk.js.map} +1 -1
  38. package/dist/scripts/{BXoBk1VP2.chunk.js → CMKPCLR42.chunk.js} +2 -2
  39. package/dist/scripts/{BXoBk1VP2.chunk.js.map → CMKPCLR42.chunk.js.map} +1 -1
  40. package/dist/scripts/Cah5ISd-.chunk.js +1 -0
  41. package/dist/scripts/{CEteFkmm.chunk.js → ClOZ7MLV.chunk.js} +2 -2
  42. package/dist/scripts/{CEteFkmm.chunk.js.map → ClOZ7MLV.chunk.js.map} +1 -1
  43. package/dist/scripts/{P2dNpLmC2.chunk.js → CowZxgkl2.chunk.js} +2 -2
  44. package/dist/scripts/{P2dNpLmC2.chunk.js.map → CowZxgkl2.chunk.js.map} +1 -1
  45. package/dist/scripts/{BfahlE_H.chunk.js → Cpm-LpwK.chunk.js} +2 -2
  46. package/dist/scripts/{BfahlE_H.chunk.js.map → Cpm-LpwK.chunk.js.map} +1 -1
  47. package/dist/scripts/{C7odFv7G.chunk.js → CqCz1X85.chunk.js} +2 -2
  48. package/dist/scripts/{C7odFv7G.chunk.js.map → CqCz1X85.chunk.js.map} +1 -1
  49. package/dist/scripts/{adNSdUOa2.chunk.js → DMI-Lxl02.chunk.js} +2 -2
  50. package/dist/scripts/{adNSdUOa2.chunk.js.map → DMI-Lxl02.chunk.js.map} +1 -1
  51. package/dist/scripts/{CGjQxvvn2.chunk.js → DTy5e0Yv2.chunk.js} +2 -2
  52. package/dist/scripts/{CGjQxvvn2.chunk.js.map → DTy5e0Yv2.chunk.js.map} +1 -1
  53. package/dist/scripts/{B-Cpv5JW2.chunk.js → DgPadkLi2.chunk.js} +2 -2
  54. package/dist/scripts/{B-Cpv5JW2.chunk.js.map → DgPadkLi2.chunk.js.map} +1 -1
  55. package/dist/scripts/{CLXgS35R.chunk.js → Udxe63DQ.chunk.js} +2 -2
  56. package/dist/scripts/{CLXgS35R.chunk.js.map → Udxe63DQ.chunk.js.map} +1 -1
  57. package/dist/scripts/{app-eLOi12JS.js → app-BigOHyYp.js} +3 -3
  58. package/dist/scripts/{app-eLOi12JS.js.map → app-BigOHyYp.js.map} +1 -1
  59. package/dist/scripts/{BA2M0rUU.chunk.js → c7dUmf3R.chunk.js} +2 -2
  60. package/dist/scripts/{BA2M0rUU.chunk.js.map → c7dUmf3R.chunk.js.map} +1 -1
  61. package/dist/scripts/{Cu7qiGbY2.chunk.js → ktNy7dHM2.chunk.js} +2 -2
  62. package/dist/scripts/{Cu7qiGbY2.chunk.js.map → ktNy7dHM2.chunk.js.map} +1 -1
  63. package/dist/scripts/{BVgv-v1c.chunk.js → n2iCrpxU.chunk.js} +2 -2
  64. package/dist/scripts/{BVgv-v1c.chunk.js.map → n2iCrpxU.chunk.js.map} +1 -1
  65. package/dist/scripts/{BtwiC__j2.chunk.js → r-dVoZ7W2.chunk.js} +2 -2
  66. package/dist/scripts/{BtwiC__j2.chunk.js.map → r-dVoZ7W2.chunk.js.map} +1 -1
  67. package/package.json +1 -1
  68. package/dist/scripts/DcQNbWG1.chunk.js +0 -1
  69. package/dist/scripts/DxPCyajz.chunk.js +0 -1
@@ -1,2 +1,2 @@
1
- import{$ as e,N as t,P as n,Q as r,R as i,U as a,V as o,W as s,et as c,in as l,nn as u,st as d,z as f}from"./CM0wW4AE.chunk.js";import{i as ee,r as te,t as p,v as m}from"./B01-hGyk.chunk.js";import{i as ne}from"./S6AM6CLE.chunk.js";import{d as h,n as g}from"./dUFTODMz.chunk.js";import{n as re,s as ie}from"./KyOyA3o8.chunk.js";import{t as ae}from"./NaTUzw6f.chunk.js";import{n as _}from"./CNQKHXPY.chunk.js";import{i as v,o as oe}from"./DYHGbCb9.chunk.js";import{t as y}from"./BXBnJv6U.chunk.js";import{t as b}from"./I5Dnl_eN.chunk.js";import{n as x,t as S}from"./C7JDFkYU.chunk.js";import{n as C,r as w}from"./H5KLIhR_.chunk.js";import{t as se}from"./CO7H3BC5.chunk.js";import{t as ce}from"./C7xZhn-Q.chunk.js";import{t as T}from"./DHk1ZJ0C.chunk.js";import{$ as E,F as le,I as D,M as ue,N as O,P as k,a as de,at as A,b as fe,h as j,l as pe,n as me,r as M,u as he}from"./app-eLOi12JS.js";import{i as N,n as P,r as F,t as I}from"./Kl4bbkgr2.chunk.js";import{t as L}from"./Cu7qiGbY2.chunk.js";import{t as R}from"./mApnhyGa2.chunk.js";import{m as z}from"./DirX37xL2.chunk.js";import{n as ge,t as _e}from"./P2dNpLmC2.chunk.js";import{n as ve,t as ye}from"./B-Cpv5JW2.chunk.js";import{n as be,t as xe}from"./BXoBk1VP2.chunk.js";import{t as Se}from"./CHNBnXs-2.chunk.js";d();var B={video:`_video_x45yw_1`,button:`_button_x45yw_5`,content:`_content_x45yw_9`,partialHighlight:`_partialHighlight_x45yw_14`},V=n();function Ce(){return(0,V.jsx)(`div`,{className:`w-100 ${B.partialHighlight}`,children:(0,V.jsxs)(`div`,{className:`row gx-3 h-100`,children:[(0,V.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,V.jsx)(`div`,{className:`rounded-3 ${B.video} partial-loading-background`})}),(0,V.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,V.jsx)(`div`,{className:`${B.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`${B.button} rounded-3 partial-loading-background me-2 d-inline-block`}),(0,V.jsx)(`div`,{className:`${B.button} rounded-3 partial-loading-background me-2 d-inline-block`})]})]})]})})}function we(e){return e.appLink?(0,V.jsx)(I,{video:e.video,commonVideoProps:e.commonVideoProps,appLink:e.appLink,analyticsOptions:{...e.analyticsOptions,location:e.locationContext},imageOptions:{size:T.Medium},type:`static`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0,alwaysShowIcon:!0}):(0,V.jsx)(`a`,{href:e.redirectUrl,target:`_blank`,onClick:()=>{t.logUserAction({videoId:e.video?.id},{...e.analyticsOptions,location:e.locationContext})},children:(0,V.jsx)(I,{video:e.video,imageOptions:{size:T.Medium},type:`cosmetic`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0})})}var H=`shared.videoHighlight`,Te={actionType:r.Click,descriptor:s.DismissWidget,entity:f.Widget,eventVersion:o.V1,location:a.VideoHighlight,workflowPhase:c.Complete},U={actionType:r.Click,descriptor:e.ViewOriginalVideo,workflowPhase:c.Complete,entity:f.Thumbnail,location:a.VideoHighlight,eventVersion:o.V1},Ee={actionType:r.Click,location:a.VideoHighlight,entity:f.AppLink,workflowPhase:c.Complete,descriptor:e.OpenInClickView,eventVersion:o.V1},De={actionType:r.Click,descriptor:i.SeeMore,workflowPhase:c.Complete,entity:f.AppLink,eventVersion:o.V1};function Oe(e){if(!e.video)return(0,V.jsx)(V.Fragment,{});function n(){t.logUserAction({videoId:e.video?.id},Te),e.onDismiss()}function r(e,n,r={}){t.logUserAction(r,n),typeof e==`string`?l.PageLoad(e,!0):u.trigger(e)}return e.video?(0,V.jsxs)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:[(0,V.jsxs)(`div`,{className:`row gx-3`,children:[(0,V.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,V.jsx)(we,{video:e.video,analyticsOptions:U,appLink:e.appLink,redirectUrl:e.redirectUrl,commonVideoProps:e.commonVideoProps,locationContext:e.locationContext})}),(0,V.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,V.jsxs)(`div`,{className:`overflow-hidden mt-lg-0 mt-2`,children:[(0,V.jsx)(N,{children:(0,V.jsx)(`span`,{onClick:()=>r(e.sharedPlaylistAppLink??e.redirectPlaylistUrl,Ee),className:`cursor-pointer`,children:e.subtitle})}),(0,V.jsx)(`div`,{className:`h5 mb-0 clamp-1 d-block`,children:(0,V.jsx)(`span`,{onClick:()=>r(e.appLink??e.redirectUrl,U),className:`cursor-pointer`,children:e.video?.name})}),(0,V.jsx)(`div`,{className:`mt-1 mb-2`,children:e.video?.description??e.description})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`button`,{className:`btn btn-dark me-2`,onClick:()=>r(e.appLink??e.redirectUrl,U,{videoId:e.video?.id}),children:(0,V.jsx)(g,{namespace:H,phrase:`watch`})}),(0,V.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>r(e.supportArticle,{...De,location:e.locationContext},{url:e.supportArticle}),children:(0,V.jsx)(g,{namespace:H,phrase:`learnMore`})}),(0,V.jsx)(`div`,{className:`btn btn-outline-dark d-sm-none`,onClick:n,children:(0,V.jsx)(g,{namespace:H,phrase:`dismiss`})})]})]})]}),(0,V.jsx)(`div`,{className:`position-absolute top-0 end-0 p-2 d-sm-inline d-none`,children:(0,V.jsx)(p,{svg:v,onClick:n})})]}):(0,V.jsx)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:(0,V.jsx)(Ce,{})})}var W=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}({}),G={[W.Analytics]:x.HasDismissedAnalyticsTutorial,[W.OpenClassroom]:x.HasDismissedOpenClassroomsTutorial,[W.SearchAndDiscover]:x.HasDismissedSearchAndDiscoverTutorial,[W.CreateClassroom]:x.HasDismissedClassroomsTutorial,[W.Playlist]:x.HasDismissedPlaylistsTutorial,[W.ShareVideo]:x.HasDismissedMySharesTutorial,[W.UploadVideo]:x.HasDismissedMyVideosTutorial},K={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:{staging:{[y.AU]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.NZ]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.UK]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.US]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`}},production:{[y.AU]:{PLAYLIST:``,SHARE:``},[y.NZ]:{PLAYLIST:``,SHARE:``},[y.UK]:{PLAYLIST:``,SHARE:``},[y.US]:{PLAYLIST:`103312110`,SHARE:`jWy8VY`}}},TutorialVideoHighlight:{analytics:{staging:{[y.US]:{VIDEO:`92095356`,SHARE:`DN8vMg`}},production:{[y.US]:{VIDEO:`102633825`,SHARE:`Ggg8mp`}}},searchAndDiscover:{staging:{[y.US]:{VIDEO:`92095348`,SHARE:`G2Ylra`}},production:{[y.US]:{VIDEO:`102633632`,SHARE:`Dem5BK`}}},openClassroom:{staging:{[y.US]:{VIDEO:`92095362`,SHARE:`bwXY5w`}},production:{[y.US]:{VIDEO:`100539257`,SHARE:`Dv7nnq`}}},createClassroom:{staging:{[y.US]:{VIDEO:`92095338`,SHARE:`Gm0kXY`}},production:{[y.US]:{VIDEO:`102633076`,SHARE:`bZR5OR`}}},uploadVideo:{staging:{[y.US]:{VIDEO:`92095354`,SHARE:`Dk90O8`}},production:{[y.US]:{VIDEO:`102633711`,SHARE:`GpE0e7`}}},playlist:{staging:{[y.US]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[y.US]:{VIDEO:`102630572`,SHARE:`b994n0`}}},shareVideo:{staging:{[y.US]:{VIDEO:`92095350`,SHARE:`DN8v4g`}},production:{[y.US]:{VIDEO:`100539256`,SHARE:`Ggvddm`}}}}};function ke(e,t=!0){let n=h(ne.currentUser()).data?.instanceRegion,r=h(A.config()),i=(r.data?.liteUrl.includes(`staging`)?K.TutorialVideoHighlight[e].staging:K.TutorialVideoHighlight[e].production)[n],o=r.data?.liteUrl.includes(`staging`)?K.Tutorial.staging[n]:K.Tutorial.production[n],{hasPermissions:s}=D(),c=i!==void 0&&!s(oe.StudentExperience),l=h(c&&j.sharedVideo(i.VIDEO,i.SHARE)),u=S(a.VideoHighlight);if(!t||!Object.keys(G).includes(e))return{shouldShowVideo:c,tutorialVideo:l,videoIds:i,playlistIds:o};let d={[W.Analytics]:u.hasDismissedAnalyticsTutorial,[W.OpenClassroom]:u.hasDismissedOpenClassroomsTutorial,[W.SearchAndDiscover]:u.hasDismissedSearchAndDiscoverTutorial,[W.CreateClassroom]:u.hasDismissedClassroomsTutorial,[W.Playlist]:u.hasDismissedPlaylistsTutorial,[W.ShareVideo]:u.hasDismissedMySharesTutorial,[W.UploadVideo]:u.hasDismissedMyVideosTutorial},f=G[e];return{shouldShowVideo:c,tutorialVideo:l,videoIds:i,playlistIds:o,hasDismissedVideoHighlight:d[e]??null,dismissVideoHighlight:async()=>{!Object.keys(d).includes(e)||!f||await u.updateUserSettingAsync({name:f,value:!0,kind:de.Setting})}}}var Ae={video(e,t){return{url:_.urlBuilder(`{gateway}/v1/objects/${e}`,{query:`thumbnail`,shareId:t}),key:`video:${e}`}}},q=ae(),je={topSearches(e,t,n,r){return{url:_.urlBuilder(`{gateway}/v1/analytics/search/top`,e),key:ye(`top:searches`,e),normalize:!1,success:t,error:n,always:r}}},Me=`reportsDashboard.topSearchesCardEmptyStateV2`;function Ne(){return(0,V.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,V.jsx)(g,{namespace:Me,phrase:`message`})})}function Pe(){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-50`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-75`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`})]})}var Fe=`reportsDashboard.topSearchesCardV2`;function Ie(){let e=M(`search`),t=h(je.topSearches(e)),n=z(E.getPrimarySearchUrl);return(0,V.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:t.data?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`h6 mb-3`,children:(0,V.jsx)(g,{namespace:Fe,phrase:`topSearches`})}),t.data.length?(0,V.jsx)(V.Fragment,{children:(0,V.jsx)(q.Scrollbars,{className:`position-relative`,children:(0,V.jsx)(`ol`,{className:`position-absolute w-100 ps-4`,children:t.data.map((e,t)=>(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsxs)(`a`,{href:n(e.query),target:`_blank`,className:`position-relative d-flex justify-content-between align-items-center pe-5`,children:[(0,V.jsx)(`span`,{children:e.query}),(0,V.jsx)(`div`,{className:`position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3`,children:(0,V.jsx)(te,{svg:le})})]})},t))})})}):(0,V.jsx)(Ne,{})]}):(0,V.jsx)(Pe,{})})}var Le=`reportsDashboard.topStreamsCardEmptyState`;function Re(){return(0,V.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,V.jsx)(g,{namespace:Le,phrase:`message`})})}function ze(){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`position-relative`,children:(0,V.jsx)(`ul`,{className:`list-unstyled position-absolute top-0 start-0 w-100 h-100`,children:Array(10).fill(null).map((e,t)=>(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsxs)(`div`,{className:`row g-0`,children:[(0,V.jsx)(`div`,{className:`col-5`,children:(0,V.jsx)(`div`,{className:`ratio ratio-16x9 rounded partial-loading-background`})}),(0,V.jsx)(`div`,{className:`col-7 d-flex align-items-center`,children:(0,V.jsxs)(`div`,{className:`mx-2 w-100`,children:[(0,V.jsx)(`div`,{className:`w-100 partial-loading-background mb-1`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`w-75 partial-loading-background`,children:`\xA0`})]})})]})},t))})})]})}var J=`reportsDashboard.topStreamsCard`,Be=b.encloseNamespace(J),Ve=10;function He(){let e=me(),t=M(`video-views`),n=h(L.topStreams(Ve,t)),r=R(n.data?.map(e=>e.objectId)??[],j.videos);return(0,V.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3`,children:n.hasCompleted&&!r.isFetching?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,V.jsx)(`h2`,{className:`h6 mb-3`,children:Be(`topVideos`)}),(0,V.jsx)(m,{appLink:{application:w.VIDEOS,action:C.Videos.TOP_VIDEOS},className:`text-info`,children:(0,V.jsx)(g,{namespace:J,phrase:`seeAll`})})]}),r.itemsArr?.length?(0,V.jsx)(q.Scrollbars,{className:`position-relative`,children:(0,V.jsx)(`div`,{className:`position-absolute w-100`,children:(0,V.jsx)(`ul`,{className:`list-unstyled`,children:n.data.map(t=>{let n=r.items[t.objectId];if(n)return(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsx)(m,{appLink:pe(n,e),children:(0,V.jsxs)(`div`,{className:`row g-0`,children:[(0,V.jsx)(`div`,{className:`col-5`,children:(0,V.jsx)(I,{video:n,imageOptions:{size:T.Small},textPosition:P.Independent,type:`cosmetic`,hideMask:!0,size:`sm`})}),(0,V.jsx)(`div`,{className:`col-7`,children:(0,V.jsxs)(`div`,{className:`d-flex flex-column mx-2`,children:[he.isVideoType(n)&&(0,V.jsx)(F,{type:`series`,video:n,analyticsOptions:null,className:`d-inline clamp-1`}),(0,V.jsx)(`span`,{className:`clamp-2 fw-medium`,children:n.name}),(0,V.jsx)(g,{namespace:J,phrase:`views`,options:{smartCount:t.combinedCount}})]})})]})})},n.id)})})})}):(0,V.jsx)(Re,{})]}):(0,V.jsx)(ze,{})})}var Ue={cogIcon:`_cogIcon_l8s08_1`},Y=`reportsDashboard.classroomViewsAlert`,X=b.encloseNamespace(Y);function Z(e){let[t,n]=re(ue.CLASSROOM_VIEWS_ALERT,!0,{storage:ie.LocalStorage});return!e.hasClassroomViews||!t?null:(0,V.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,V.jsxs)(`div`,{className:`d-flex align-items-center gap-1 ms-1`,children:[(0,V.jsx)(`span`,{className:`fw-bold`,children:(0,V.jsx)(g,{namespace:Y,phrase:`leadIn`})}),(0,V.jsx)(p,{customSize:!0,svg:Se,svgSize:ee.Standard,appLink:{application:w.DEFAULT,action:C.Default.CLASSROOM_VIEWS_POPUP},className:Ue.cogIcon,tooltip:X(`settingsTitle`),tooltipTrigger:[`hover`],ariaLabel:X(`settingsTitle`)}),(0,V.jsx)(g,{namespace:Y,phrase:`description`}),(0,V.jsx)(`a`,{className:`text-info`,href:O.getLiteArticle(k.ClassroomViews),target:`_blank`,rel:`noopener noreferrer`,children:(0,V.jsx)(g,{namespace:Y,phrase:`link`})})]}),(0,V.jsx)(p,{svg:v,className:`text-blue`,onClick:()=>n(!1)})]})}var Q={topRow:`_topRow_1oibi_1`,barChart:`_barChart_1oibi_4`,videoViews:`_videoViews_1oibi_8`,bottomRow:`_bottomRow_1oibi_12`,bottomColumn:`_bottomColumn_1oibi_15`},We=10,$=b.encloseNamespace(`reportsDashboard.schoolAnalyticsDashboard`);function Ge(){let e=fe(),{hasStudentReach:t}=S(a.VideoHighlight),n=$(e?`tertiaryDashboard`:`dashboard`),{shouldShowVideo:r,videoIds:i,playlistIds:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=ke(W.Analytics),l=h(r&&Ae.video(i.VIDEO,i.SHARE)),u=z(E.getPrimaryObjectUrl),d=h(A.config()),f=E.getSharePlaylistUrl({id:se.Primary,order:0,name:``,url:d.data?.liteUrl,imageUrl:``},o?.SHARE);return ce({title:n}),ve(n),(0,V.jsxs)(`div`,{className:`d-flex flex-column gap-3`,children:[(0,V.jsx)(Z,{hasClassroomViews:t}),l?.data&&!s&&(0,V.jsx)(Oe,{video:l?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-blue`,supportArticle:O.getLiteArticle(k.ClassroomAnalytics),onDismiss:c,redirectUrl:u(l?.data),redirectPlaylistUrl:f,locationContext:a.VideoHighlight}),(0,V.jsxs)(`div`,{className:`d-flex gap-3 ${Q.topRow}`,children:[(0,V.jsx)(`div`,{className:Q.barChart,children:(0,V.jsx)(be,{type:`year_group`,appLink:{application:w.VIDEOS,action:C.Videos.HOME},appLinkText:$(`seeOverview`)})}),(0,V.jsx)(`div`,{className:Q.videoViews,children:(0,V.jsx)(xe,{type:`user_type`})})]}),(0,V.jsxs)(`div`,{className:`d-flex gap-3 ${Q.bottomRow}`,children:[(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(He,{})}),(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(_e,{type:ge.RootTopic,heading:$(`subjects`),appLink:{application:w.VIDEOS,action:C.Videos.HOME},appLinkText:$(`seeOverview`),emptyStateText:$(`emptySubjects`),limit:We})}),(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(Ie,{})})]})]})}export{Ge as SchoolAnalyticsDashboardView};
2
- //# sourceMappingURL=CGjQxvvn2.chunk.js.map
1
+ import{$ as e,N as t,P as n,Q as r,R as i,U as a,V as o,W as s,et as c,in as l,nn as u,st as d,z as f}from"./CM0wW4AE.chunk.js";import{i as ee,r as te,t as p,v as m}from"./B01-hGyk.chunk.js";import{i as ne}from"./S6AM6CLE.chunk.js";import{d as h,n as g}from"./dUFTODMz.chunk.js";import{n as re,s as ie}from"./KyOyA3o8.chunk.js";import{t as ae}from"./NaTUzw6f.chunk.js";import{n as _}from"./CNQKHXPY.chunk.js";import{i as v,o as oe}from"./DYHGbCb9.chunk.js";import{t as y}from"./BXBnJv6U.chunk.js";import{t as b}from"./I5Dnl_eN.chunk.js";import{n as x,t as S}from"./C7JDFkYU.chunk.js";import{n as C,r as w}from"./H5KLIhR_.chunk.js";import{t as se}from"./CO7H3BC5.chunk.js";import{t as ce}from"./C7xZhn-Q.chunk.js";import{t as T}from"./DHk1ZJ0C.chunk.js";import{$ as E,F as le,I as D,M as ue,N as O,P as k,a as de,at as A,b as fe,h as j,l as pe,n as me,r as M,u as he}from"./app-BigOHyYp.js";import{i as N,n as P,r as F,t as I}from"./3q7nyVif2.chunk.js";import{t as L}from"./ktNy7dHM2.chunk.js";import{t as R}from"./mApnhyGa2.chunk.js";import{m as z}from"./CCLDpjnt2.chunk.js";import{n as ge,t as _e}from"./CowZxgkl2.chunk.js";import{n as ve,t as ye}from"./DgPadkLi2.chunk.js";import{n as be,t as xe}from"./CMKPCLR42.chunk.js";import{t as Se}from"./Bua2prVk2.chunk.js";d();var B={video:`_video_x45yw_1`,button:`_button_x45yw_5`,content:`_content_x45yw_9`,partialHighlight:`_partialHighlight_x45yw_14`},V=n();function Ce(){return(0,V.jsx)(`div`,{className:`w-100 ${B.partialHighlight}`,children:(0,V.jsxs)(`div`,{className:`row gx-3 h-100`,children:[(0,V.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,V.jsx)(`div`,{className:`rounded-3 ${B.video} partial-loading-background`})}),(0,V.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,V.jsx)(`div`,{className:`${B.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`${B.button} rounded-3 partial-loading-background me-2 d-inline-block`}),(0,V.jsx)(`div`,{className:`${B.button} rounded-3 partial-loading-background me-2 d-inline-block`})]})]})]})})}function we(e){return e.appLink?(0,V.jsx)(I,{video:e.video,commonVideoProps:e.commonVideoProps,appLink:e.appLink,analyticsOptions:{...e.analyticsOptions,location:e.locationContext},imageOptions:{size:T.Medium},type:`static`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0,alwaysShowIcon:!0}):(0,V.jsx)(`a`,{href:e.redirectUrl,target:`_blank`,onClick:()=>{t.logUserAction({videoId:e.video?.id},{...e.analyticsOptions,location:e.locationContext})},children:(0,V.jsx)(I,{video:e.video,imageOptions:{size:T.Medium},type:`cosmetic`,size:`sm`,hideDuration:!0,hideRating:!0,hideBottomBar:!0})})}var H=`shared.videoHighlight`,Te={actionType:r.Click,descriptor:s.DismissWidget,entity:f.Widget,eventVersion:o.V1,location:a.VideoHighlight,workflowPhase:c.Complete},U={actionType:r.Click,descriptor:e.ViewOriginalVideo,workflowPhase:c.Complete,entity:f.Thumbnail,location:a.VideoHighlight,eventVersion:o.V1},Ee={actionType:r.Click,location:a.VideoHighlight,entity:f.AppLink,workflowPhase:c.Complete,descriptor:e.OpenInClickView,eventVersion:o.V1},De={actionType:r.Click,descriptor:i.SeeMore,workflowPhase:c.Complete,entity:f.AppLink,eventVersion:o.V1};function Oe(e){if(!e.video)return(0,V.jsx)(V.Fragment,{});function n(){t.logUserAction({videoId:e.video?.id},Te),e.onDismiss()}function r(e,n,r={}){t.logUserAction(r,n),typeof e==`string`?l.PageLoad(e,!0):u.trigger(e)}return e.video?(0,V.jsxs)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:[(0,V.jsxs)(`div`,{className:`row gx-3`,children:[(0,V.jsx)(`div`,{className:`col-lg-3 col-sm-5 col-12 align-self-start`,children:(0,V.jsx)(we,{video:e.video,analyticsOptions:U,appLink:e.appLink,redirectUrl:e.redirectUrl,commonVideoProps:e.commonVideoProps,locationContext:e.locationContext})}),(0,V.jsxs)(`div`,{className:`col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between`,children:[(0,V.jsxs)(`div`,{className:`overflow-hidden mt-lg-0 mt-2`,children:[(0,V.jsx)(N,{children:(0,V.jsx)(`span`,{onClick:()=>r(e.sharedPlaylistAppLink??e.redirectPlaylistUrl,Ee),className:`cursor-pointer`,children:e.subtitle})}),(0,V.jsx)(`div`,{className:`h5 mb-0 clamp-1 d-block`,children:(0,V.jsx)(`span`,{onClick:()=>r(e.appLink??e.redirectUrl,U),className:`cursor-pointer`,children:e.video?.name})}),(0,V.jsx)(`div`,{className:`mt-1 mb-2`,children:e.video?.description??e.description})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`button`,{className:`btn btn-dark me-2`,onClick:()=>r(e.appLink??e.redirectUrl,U,{videoId:e.video?.id}),children:(0,V.jsx)(g,{namespace:H,phrase:`watch`})}),(0,V.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>r(e.supportArticle,{...De,location:e.locationContext},{url:e.supportArticle}),children:(0,V.jsx)(g,{namespace:H,phrase:`learnMore`})}),(0,V.jsx)(`div`,{className:`btn btn-outline-dark d-sm-none`,onClick:n,children:(0,V.jsx)(g,{namespace:H,phrase:`dismiss`})})]})]})]}),(0,V.jsx)(`div`,{className:`position-absolute top-0 end-0 p-2 d-sm-inline d-none`,children:(0,V.jsx)(p,{svg:v,onClick:n})})]}):(0,V.jsx)(`div`,{className:`position-relative p-3 rounded-3 ${e.bgColorClassName??``}`,children:(0,V.jsx)(Ce,{})})}var W=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}({}),G={[W.Analytics]:x.HasDismissedAnalyticsTutorial,[W.OpenClassroom]:x.HasDismissedOpenClassroomsTutorial,[W.SearchAndDiscover]:x.HasDismissedSearchAndDiscoverTutorial,[W.CreateClassroom]:x.HasDismissedClassroomsTutorial,[W.Playlist]:x.HasDismissedPlaylistsTutorial,[W.ShareVideo]:x.HasDismissedMySharesTutorial,[W.UploadVideo]:x.HasDismissedMyVideosTutorial},K={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:{staging:{[y.AU]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.NZ]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.UK]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`},[y.US]:{PLAYLIST:`92095406`,SHARE:`bwXYNM`}},production:{[y.AU]:{PLAYLIST:``,SHARE:``},[y.NZ]:{PLAYLIST:``,SHARE:``},[y.UK]:{PLAYLIST:``,SHARE:``},[y.US]:{PLAYLIST:`103312110`,SHARE:`jWy8VY`}}},TutorialVideoHighlight:{analytics:{staging:{[y.US]:{VIDEO:`92095356`,SHARE:`DN8vMg`}},production:{[y.US]:{VIDEO:`102633825`,SHARE:`Ggg8mp`}}},searchAndDiscover:{staging:{[y.US]:{VIDEO:`92095348`,SHARE:`G2Ylra`}},production:{[y.US]:{VIDEO:`102633632`,SHARE:`Dem5BK`}}},openClassroom:{staging:{[y.US]:{VIDEO:`92095362`,SHARE:`bwXY5w`}},production:{[y.US]:{VIDEO:`100539257`,SHARE:`Dv7nnq`}}},createClassroom:{staging:{[y.US]:{VIDEO:`92095338`,SHARE:`Gm0kXY`}},production:{[y.US]:{VIDEO:`102633076`,SHARE:`bZR5OR`}}},uploadVideo:{staging:{[y.US]:{VIDEO:`92095354`,SHARE:`Dk90O8`}},production:{[y.US]:{VIDEO:`102633711`,SHARE:`GpE0e7`}}},playlist:{staging:{[y.US]:{VIDEO:`92095342`,SHARE:`b9P51m`}},production:{[y.US]:{VIDEO:`102630572`,SHARE:`b994n0`}}},shareVideo:{staging:{[y.US]:{VIDEO:`92095350`,SHARE:`DN8v4g`}},production:{[y.US]:{VIDEO:`100539256`,SHARE:`Ggvddm`}}}}};function ke(e,t=!0){let n=h(ne.currentUser()).data?.instanceRegion,r=h(A.config()),i=(r.data?.liteUrl.includes(`staging`)?K.TutorialVideoHighlight[e].staging:K.TutorialVideoHighlight[e].production)[n],o=r.data?.liteUrl.includes(`staging`)?K.Tutorial.staging[n]:K.Tutorial.production[n],{hasPermissions:s}=D(),c=i!==void 0&&!s(oe.StudentExperience),l=h(c&&j.sharedVideo(i.VIDEO,i.SHARE)),u=S(a.VideoHighlight);if(!t||!Object.keys(G).includes(e))return{shouldShowVideo:c,tutorialVideo:l,videoIds:i,playlistIds:o};let d={[W.Analytics]:u.hasDismissedAnalyticsTutorial,[W.OpenClassroom]:u.hasDismissedOpenClassroomsTutorial,[W.SearchAndDiscover]:u.hasDismissedSearchAndDiscoverTutorial,[W.CreateClassroom]:u.hasDismissedClassroomsTutorial,[W.Playlist]:u.hasDismissedPlaylistsTutorial,[W.ShareVideo]:u.hasDismissedMySharesTutorial,[W.UploadVideo]:u.hasDismissedMyVideosTutorial},f=G[e];return{shouldShowVideo:c,tutorialVideo:l,videoIds:i,playlistIds:o,hasDismissedVideoHighlight:d[e]??null,dismissVideoHighlight:async()=>{!Object.keys(d).includes(e)||!f||await u.updateUserSettingAsync({name:f,value:!0,kind:de.Setting})}}}var Ae={video(e,t){return{url:_.urlBuilder(`{gateway}/v1/objects/${e}`,{query:`thumbnail`,shareId:t}),key:`video:${e}`}}},q=ae(),je={topSearches(e,t,n,r){return{url:_.urlBuilder(`{gateway}/v1/analytics/search/top`,e),key:ye(`top:searches`,e),normalize:!1,success:t,error:n,always:r}}},Me=`reportsDashboard.topSearchesCardEmptyStateV2`;function Ne(){return(0,V.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,V.jsx)(g,{namespace:Me,phrase:`message`})})}function Pe(){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-50`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-25`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-75`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-33`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`partial-loading-background mb-3 w-100`,children:`\xA0`})]})}var Fe=`reportsDashboard.topSearchesCardV2`;function Ie(){let e=M(`search`),t=h(je.topSearches(e)),n=z(E.getPrimarySearchUrl);return(0,V.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:t.data?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`h6 mb-3`,children:(0,V.jsx)(g,{namespace:Fe,phrase:`topSearches`})}),t.data.length?(0,V.jsx)(V.Fragment,{children:(0,V.jsx)(q.Scrollbars,{className:`position-relative`,children:(0,V.jsx)(`ol`,{className:`position-absolute w-100 ps-4`,children:t.data.map((e,t)=>(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsxs)(`a`,{href:n(e.query),target:`_blank`,className:`position-relative d-flex justify-content-between align-items-center pe-5`,children:[(0,V.jsx)(`span`,{children:e.query}),(0,V.jsx)(`div`,{className:`position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3`,children:(0,V.jsx)(te,{svg:le})})]})},t))})})}):(0,V.jsx)(Ne,{})]}):(0,V.jsx)(Pe,{})})}var Le=`reportsDashboard.topStreamsCardEmptyState`;function Re(){return(0,V.jsx)(`div`,{className:`d-flex align-items-center justify-content-center text-center h-100`,children:(0,V.jsx)(g,{namespace:Le,phrase:`message`})})}function ze(){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`partial-loading-background w-50 mb-3`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`position-relative`,children:(0,V.jsx)(`ul`,{className:`list-unstyled position-absolute top-0 start-0 w-100 h-100`,children:Array(10).fill(null).map((e,t)=>(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsxs)(`div`,{className:`row g-0`,children:[(0,V.jsx)(`div`,{className:`col-5`,children:(0,V.jsx)(`div`,{className:`ratio ratio-16x9 rounded partial-loading-background`})}),(0,V.jsx)(`div`,{className:`col-7 d-flex align-items-center`,children:(0,V.jsxs)(`div`,{className:`mx-2 w-100`,children:[(0,V.jsx)(`div`,{className:`w-100 partial-loading-background mb-1`,children:`\xA0`}),(0,V.jsx)(`div`,{className:`w-75 partial-loading-background`,children:`\xA0`})]})})]})},t))})})]})}var J=`reportsDashboard.topStreamsCard`,Be=b.encloseNamespace(J),Ve=10;function He(){let e=me(),t=M(`video-views`),n=h(L.topStreams(Ve,t)),r=R(n.data?.map(e=>e.objectId)??[],j.videos);return(0,V.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3`,children:n.hasCompleted&&!r.isFetching?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[(0,V.jsx)(`h2`,{className:`h6 mb-3`,children:Be(`topVideos`)}),(0,V.jsx)(m,{appLink:{application:w.VIDEOS,action:C.Videos.TOP_VIDEOS},className:`text-info`,children:(0,V.jsx)(g,{namespace:J,phrase:`seeAll`})})]}),r.itemsArr?.length?(0,V.jsx)(q.Scrollbars,{className:`position-relative`,children:(0,V.jsx)(`div`,{className:`position-absolute w-100`,children:(0,V.jsx)(`ul`,{className:`list-unstyled`,children:n.data.map(t=>{let n=r.items[t.objectId];if(n)return(0,V.jsx)(`li`,{className:`mb-3`,children:(0,V.jsx)(m,{appLink:pe(n,e),children:(0,V.jsxs)(`div`,{className:`row g-0`,children:[(0,V.jsx)(`div`,{className:`col-5`,children:(0,V.jsx)(I,{video:n,imageOptions:{size:T.Small},textPosition:P.Independent,type:`cosmetic`,hideMask:!0,size:`sm`})}),(0,V.jsx)(`div`,{className:`col-7`,children:(0,V.jsxs)(`div`,{className:`d-flex flex-column mx-2`,children:[he.isVideoType(n)&&(0,V.jsx)(F,{type:`series`,video:n,analyticsOptions:null,className:`d-inline clamp-1`}),(0,V.jsx)(`span`,{className:`clamp-2 fw-medium`,children:n.name}),(0,V.jsx)(g,{namespace:J,phrase:`views`,options:{smartCount:t.combinedCount}})]})})]})})},n.id)})})})}):(0,V.jsx)(Re,{})]}):(0,V.jsx)(ze,{})})}var Ue={cogIcon:`_cogIcon_l8s08_1`},Y=`reportsDashboard.classroomViewsAlert`,X=b.encloseNamespace(Y);function Z(e){let[t,n]=re(ue.CLASSROOM_VIEWS_ALERT,!0,{storage:ie.LocalStorage});return!e.hasClassroomViews||!t?null:(0,V.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,V.jsxs)(`div`,{className:`d-flex align-items-center gap-1 ms-1`,children:[(0,V.jsx)(`span`,{className:`fw-bold`,children:(0,V.jsx)(g,{namespace:Y,phrase:`leadIn`})}),(0,V.jsx)(p,{customSize:!0,svg:Se,svgSize:ee.Standard,appLink:{application:w.DEFAULT,action:C.Default.CLASSROOM_VIEWS_POPUP},className:Ue.cogIcon,tooltip:X(`settingsTitle`),tooltipTrigger:[`hover`],ariaLabel:X(`settingsTitle`)}),(0,V.jsx)(g,{namespace:Y,phrase:`description`}),(0,V.jsx)(`a`,{className:`text-info`,href:O.getLiteArticle(k.ClassroomViews),target:`_blank`,rel:`noopener noreferrer`,children:(0,V.jsx)(g,{namespace:Y,phrase:`link`})})]}),(0,V.jsx)(p,{svg:v,className:`text-blue`,onClick:()=>n(!1)})]})}var Q={topRow:`_topRow_1oibi_1`,barChart:`_barChart_1oibi_4`,videoViews:`_videoViews_1oibi_8`,bottomRow:`_bottomRow_1oibi_12`,bottomColumn:`_bottomColumn_1oibi_15`},We=10,$=b.encloseNamespace(`reportsDashboard.schoolAnalyticsDashboard`);function Ge(){let e=fe(),{hasStudentReach:t}=S(a.VideoHighlight),n=$(e?`tertiaryDashboard`:`dashboard`),{shouldShowVideo:r,videoIds:i,playlistIds:o,hasDismissedVideoHighlight:s,dismissVideoHighlight:c}=ke(W.Analytics),l=h(r&&Ae.video(i.VIDEO,i.SHARE)),u=z(E.getPrimaryObjectUrl),d=h(A.config()),f=E.getSharePlaylistUrl({id:se.Primary,order:0,name:``,url:d.data?.liteUrl,imageUrl:``},o?.SHARE);return ce({title:n}),ve(n),(0,V.jsxs)(`div`,{className:`d-flex flex-column gap-3`,children:[(0,V.jsx)(Z,{hasClassroomViews:t}),l?.data&&!s&&(0,V.jsx)(Oe,{video:l?.data,subtitle:$(`videoHighlightSubtitle`),description:$(`videoHighlightDescription`),bgColorClassName:`bg-light-blue`,supportArticle:O.getLiteArticle(k.ClassroomAnalytics),onDismiss:c,redirectUrl:u(l?.data),redirectPlaylistUrl:f,locationContext:a.VideoHighlight}),(0,V.jsxs)(`div`,{className:`d-flex gap-3 ${Q.topRow}`,children:[(0,V.jsx)(`div`,{className:Q.barChart,children:(0,V.jsx)(be,{type:`year_group`,appLink:{application:w.VIDEOS,action:C.Videos.HOME},appLinkText:$(`seeOverview`)})}),(0,V.jsx)(`div`,{className:Q.videoViews,children:(0,V.jsx)(xe,{type:`user_type`})})]}),(0,V.jsxs)(`div`,{className:`d-flex gap-3 ${Q.bottomRow}`,children:[(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(He,{})}),(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(_e,{type:ge.RootTopic,heading:$(`subjects`),appLink:{application:w.VIDEOS,action:C.Videos.HOME},appLinkText:$(`seeOverview`),emptyStateText:$(`emptySubjects`),limit:We})}),(0,V.jsx)(`div`,{className:Q.bottomColumn,children:(0,V.jsx)(Ie,{})})]})]})}export{Ge as SchoolAnalyticsDashboardView};
2
+ //# sourceMappingURL=DTy5e0Yv2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CGjQxvvn2.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-highlight/partial-loading/partial-video-highlight.module.scss","../../../../libs/shared/src/components/video-highlight/partial-loading/PartialVideoHighlight.tsx","../../../../libs/shared/src/components/video-highlight/thumbnail/VideoHighlightThumbnail.tsx","../../../../libs/shared/src/components/video-highlight/VideoHighlight.tsx","../../../../libs/shared/src/enums/TutorialVideoType.ts","../../../../libs/shared/src/constants/HardCoded.ts","../../../../libs/shared/src/hooks/useTutorialVideoHighlight.ts","../../src/shared/flight-requests/VideoRequests.ts","../../src/shared/flight-requests/SearchRequests.ts","../../src/apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/classroom-views-alert.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/ClassroomViewsAlert.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/school-analytics-dashboard.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/SchoolAnalyticsDashboardView.tsx"],"sourcesContent":[":local {\n .video {\n width: auto;\n height: 9rem;\n }\n\n .button {\n width: 6.25rem;\n height: 2.5rem;\n }\n\n .content {\n overflow: hidden;\n width: 49rem;\n height: 5rem;\n }\n\n .partialHighlight {\n overflow: hidden;\n width: 68.25rem;\n height: 9.2rem;\n }\n\n @media screen and (width <= 992px) {\n .video {\n overflow: hidden;\n width: auto;\n height: 100%;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n\n @media screen and (width <= 576px) {\n .partialHighlight {\n width: 23.875rem;\n height: 25.625rem;\n }\n\n .video {\n overflow: hidden;\n width: 22rem;\n height: 12.375rem;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n}\n","import React from 'react';\n\nimport styles from './partial-video-highlight.module.scss';\n\nexport function PartialVideoThumbnail() {\n return (\n <div className={`w-100 ${styles.partialHighlight}`}>\n <div className='row gx-3 h-100'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <div className={`rounded-3 ${styles.video} partial-loading-background`}/>\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className={`${styles.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}></div>\n <div>\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightThumbnailProps {\n video?: VideoTypes;\n analyticsOptions?: AnalyticsOptions;\n appLink?: AppLink;\n redirectUrl?: string;\n commonVideoProps?: CommonVideoProps;\n locationContext?: LocationContext;\n}\n\nexport function VideoHighlightThumbnail(props: VideoHighlightThumbnailProps) {\n if (props.appLink) {\n return (\n <VideoThumbnail\n video={props.video}\n commonVideoProps={props.commonVideoProps}\n appLink={props.appLink}\n analyticsOptions={{\n ...props.analyticsOptions,\n location: props.locationContext\n }}\n imageOptions={{ size: ImageSize.Medium }}\n type='static'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n alwaysShowIcon\n />\n );\n }\n\n return (\n <a\n href={props.redirectUrl}\n target='_blank'\n onClick={() => {\n AnalyticsHelper.logUserAction(\n { videoId: props.video?.id },\n { ...props.analyticsOptions, location: props.locationContext }\n );\n }}\n >\n <VideoThumbnail\n video={props.video}\n imageOptions={{ size: ImageSize.Medium }}\n type='cosmetic'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n />\n </a>\n );\n}\n","import React from 'react';\nimport { ObjectHash } from 'backbone';\n\nimport { AppLinkHelper, LocationUtils } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, ClickDescriptor, EntityType, EventVersion, LocationContext, OnboardingDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { PartialVideoThumbnail } from 'libs/shared/components/video-highlight/partial-loading/PartialVideoHighlight';\nimport { VideoHighlightThumbnail } from 'libs/shared/components/video-highlight/thumbnail/VideoHighlightThumbnail';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightProps {\n video: VideoTypes;\n subtitle?: string;\n description?: string;\n supportArticle: string;\n appLink?: Core.AppLink;\n locationContext?: LocationContext;\n commonVideoProps?: CommonVideoProps;\n redirectUrl?: string;\n sharedPlaylistAppLink?: Core.AppLink;\n redirectPlaylistUrl?: string;\n bgColorClassName?: string;\n onDismiss?: () => void;\n}\n\nconst namespace = 'shared.videoHighlight';\n\nconst dismissAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: OnboardingDescriptor.DismissWidget,\n entity: EntityType.Widget,\n eventVersion: EventVersion.V1,\n location: LocationContext.VideoHighlight,\n workflowPhase: WorkflowPhase.Complete\n};\n\nconst videoAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Thumbnail,\n location: LocationContext.VideoHighlight,\n eventVersion: EventVersion.V1\n};\n\nconst subtitleAnalyticOptions = {\n actionType: UserAction.Click,\n location: LocationContext.VideoHighlight,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.OpenInClickView,\n eventVersion: EventVersion.V1\n};\n\nconst helpArticleAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.SeeMore,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.AppLink,\n eventVersion: EventVersion.V1\n};\n\nexport function VideoHighlight(props: VideoHighlightProps) {\n if (!props.video) return <></>;\n\n function onDismissWithAnalytics() {\n AnalyticsHelper.logUserAction({ videoId: props.video?.id }, dismissAnalyticsOptions);\n props.onDismiss();\n }\n\n function onClick(\n link: Core.AppLink | string,\n analyticsOptions: AnalyticsOptions,\n analyticsData: ObjectHash = {}\n ) {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n if (typeof link === 'string') {\n LocationUtils.PageLoad(link, true);\n } else {\n AppLinkHelper.trigger(link);\n }\n }\n\n if (!props.video) {\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <PartialVideoThumbnail/>\n </div>\n );\n }\n\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <div className='row gx-3'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <VideoHighlightThumbnail\n video={props.video}\n analyticsOptions={videoAnalyticsOptions}\n appLink={props.appLink}\n redirectUrl={props.redirectUrl}\n commonVideoProps={props.commonVideoProps}\n locationContext={props.locationContext}\n />\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className='overflow-hidden mt-lg-0 mt-2'>\n <TitleSubText>\n <span\n onClick={() =>\n onClick(props.sharedPlaylistAppLink ?? props.redirectPlaylistUrl, subtitleAnalyticOptions)\n }\n className='cursor-pointer'\n >{props.subtitle}</span>\n </TitleSubText>\n <div className='h5 mb-0 clamp-1 d-block'>\n <span\n onClick={() => onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions)}\n className='cursor-pointer'\n >\n {props.video?.name}\n </span>\n </div>\n <div className='mt-1 mb-2'>{props.video?.description ?? props.description}</div>\n </div>\n <div>\n <button\n className='btn btn-dark me-2'\n onClick={() =>\n onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions, { videoId: props.video?.id })}\n >\n <Text namespace={namespace} phrase='watch'/>\n </button>\n <button\n className='btn btn-outline-dark me-2'\n onClick={() => onClick(\n props.supportArticle,\n { ...helpArticleAnalyticsOptions, location: props.locationContext },\n { url: props.supportArticle }\n )}\n >\n <Text namespace={namespace} phrase='learnMore'/>\n </button>\n <div\n className='btn btn-outline-dark d-sm-none'\n onClick={onDismissWithAnalytics}\n >\n <Text namespace={namespace} phrase='dismiss'/>\n </div>\n </div>\n </div>\n </div>\n <div className='position-absolute top-0 end-0 p-2 d-sm-inline d-none'>\n <IconButton\n svg={CloseSvg}\n onClick={onDismissWithAnalytics}\n />\n </div>\n </div>\n );\n}\n","import { SettingName } from './SettingName';\n\n// tutorial videos should be added here if they are meant to be embedded into the product\nexport enum TutorialVideoType {\n SearchAndDiscover = 'searchAndDiscover',\n Analytics = 'analytics',\n OpenClassroom = 'openClassroom',\n CreateClassroom = 'createClassroom',\n UploadVideo = 'uploadVideo',\n Playlist = 'playlist',\n ShareVideo = 'shareVideo'\n}\n\n// link to the domain options that manage video highlight visibility\nexport const dismissibleTutorialVideoTypeSettingsMapping: {[key in TutorialVideoType]: SettingName } = {\n [TutorialVideoType.Analytics]: SettingName.HasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: SettingName.HasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: SettingName.HasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: SettingName.HasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: SettingName.HasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: SettingName.HasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: SettingName.HasDismissedMyVideosTutorial\n};\n","import { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nexport const HardCoded = {\n OlympicsTopics: {\n // AU_PRIMARY\n ['18']: {\n id: 'Oq9WnjA',\n name: '2026 Milano Cortina Winter Olympic Games'\n },\n // AU_SECONDARY\n ['9']: {\n id: 'EoAYjoR',\n name: '2026 Milano Cortina Winter Olympic Games'\n }\n },\n CommonwealthGameTopics: {\n // SCT_PRIMARY\n ['12']: {\n id: 'AO0j90j',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // SCT_SECONDARY\n ['24']: {\n id: 'ZJxKkg1',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_PRIMARY\n ['16']: {\n id: 'agD7d73',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_SECONDARY\n ['47']: {\n id: 'm6mpl27',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU_PRIMARY\n ['18']: {\n id: '3bRp6eA',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU SECONDARY\n ['9']: {\n id: '7mjAxYR',\n name: 'Commonwealth Games Glasgow 2026'\n }\n },\n PublicTranscriptVideoIds: [\n '78902422',\n '8139055',\n '32102562',\n '36875667',\n '3713657',\n '9900524',\n '48278572',\n '39424302',\n '3712691',\n '54504550',\n '23852726',\n '3713563',\n '3714027',\n '51281358',\n '58785149',\n '7322586',\n '3716774',\n '36554689',\n '54192890',\n '6689791',\n '10749459',\n '3712691',\n '81764158',\n '43772092',\n '43974358',\n '48091365',\n '6430651',\n '3713735',\n '54096131',\n '57977558',\n '78840166',\n '57738254',\n '51666370',\n '49858722'\n ],\n SpecialEvents: {\n dlL00b3: {\n id: 'dlL00b3',\n iconUrl: 'https://img.clickviewapp.com/v2/covers/PGbNp0'\n }\n },\n Classifications: {\n Twig: {\n EnglandSecondary: {\n HUB: 'yrg5vYN'\n },\n ScotlandSecondary: {\n HUB: 'Y69j14M'\n },\n InternationalSecondary: {\n HUB: 'MYM6GGM'\n },\n NewZealandSecondary: {\n HUB: 'agNmRd9'\n },\n CanadaMiddle: {\n HUB: '3brl1mY'\n },\n CanadaHigh: {\n HUB: 'kZJ9vkz'\n }\n },\n Tigtag: {\n EnglandPrimary: {\n HUB: 'D1218zx',\n TIGTAG_HUB: 'odldxPJ',\n TIGTAG_JUNIOR_HUB: 'nENExnL'\n },\n ScotlandPrimary: {\n HUB: 'JjAONbj',\n TIGTAG_HUB: '3bNAGl1',\n TIGTAG_JUNIOR_HUB: 'K6GKp43'\n },\n InternationalPrimary: {\n HUB: 'W1xqbk2',\n TIGTAG_HUB: 'ek3dJr8',\n TIGTAG_JUNIOR_HUB: 'PGyKzpn'\n },\n NewZealandPrimary: {\n HUB: 'odnkREE',\n TIGTAG_HUB: 'kZJ4RPa',\n TIGTAG_JUNIOR_HUB: 'zMg80DR'\n },\n CanadaElementary: {\n HUB: 'JjabmDE',\n TIGTAG_HUB: 'dq9Ewje',\n TIGTAG_JUNIOR_HUB: 'bmElWrb'\n },\n CanadaMiddle: {\n HUB: 'dq9EwyZ',\n TIGTAG_HUB: 'K6abxjP',\n TIGTAG_JUNIOR_HUB: '7mwxLdR'\n }\n }\n },\n // Production values. For testing in development, change these to staging preso values\n PresentationIds: {\n DEFAULT: 1,\n DEFAULT_CURRICULUM: 10,\n\n AU_PRIMARY: 18,\n AU_SECONDARY: 9,\n AU_TERTIARY: 81,\n US_ELEMENTARY: 13,\n US_MIDDLE: 14,\n US_HIGH: 15,\n CA_ELEMENTARY: 100,\n CA_MIDDLE: 101,\n CA_HIGH: 102,\n STREAMABLE_LEARNING: 68,\n ENG_PRIMARY: 16,\n ENG_SECONDARY: 47,\n SCT_PRIMARY: 12,\n SCT_SECONDARY: 24,\n UK_TERTIARY: 82,\n INT_PRIMARY: 19,\n INT_SECONDARY: 21,\n NZ_PRIMARY: 96,\n NZ_SECONDARY: 97\n },\n Libraries: {\n LICENCED_CONTENT_COLLECTION: '3700633',\n\n AU_PRIMARY: '10066675',\n AU_SECONDARY: '59401330',\n AU_TERTIARY: '5836680',\n US_ELEMENTARY: '38693445',\n US_MIDDLE: '39642303',\n US_HIGH: '38693435',\n CA_ELEMENTARY: '92862332',\n CA_MIDDLE: '92862334',\n CA_HIGH: '92862344',\n STREAMABLE_LEARNING: '78688869',\n ENG_PRIMARY: '35340580',\n ENG_SECONDARY: '59889793',\n SCT_PRIMARY: '33386791',\n SCT_SECONDARY: '59856733',\n UK_TERTIARY: '5815036',\n INT_PRIMARY: '3706428',\n INT_SECONDARY: '3706459',\n NZ_PRIMARY: '3705693',\n NZ_SECONDARY: '3705710',\n NZ_MTV: '26989676',\n\n TWIG: '88117784',\n TIGTAG: '80333935'\n },\n Rostering: {\n sources: {\n 0: { name: 'Unknown', iconUrl: '' },\n 1: { name: 'Clever', iconUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd' },\n 2: { name: 'ClassLink', iconUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5' },\n 3: { name: 'Google', iconUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL' },\n 4: { name: 'Microsoft', iconUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP' },\n 5: { name: 'Schoology', iconUrl: 'https://img.clickviewapp.com/v2/logos/kZNEyz' },\n 6: { name: 'PowerSchool', iconUrl: 'https://img.clickviewapp.com/v2/logos/m6aDmR' }\n }\n },\n Images: {\n Level_1: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dlM73E',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/WAe8MP',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/raRm7E',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/3kzeZ2'\n },\n Level_2: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/WAeKvP',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/9DAZJv',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/eKG2bq',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/xyn5eP'\n },\n Level_3: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dl1d0g',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/R0Pz7A',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/8LYZ9R',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/nKDyRj'\n },\n Level_4: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/vYJPP5',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/PGPLLP'\n },\n TOPIC_DEFAULT_BANNER: 'https://img.clickviewapp.com/v2/banners/yKvoG0',\n STREAMABLE_TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/q6gnOn',\n STREAMABLE_TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/age95g'\n },\n Onboarding: {\n Playlist: {\n COVER_FILE_ID: 'G149g3',\n BANNER_FILE_ID: 'bmPLkn'\n },\n LOADING_THUMBNAILS: [\n 'https://img.clickviewapp.com/v2/thumbnails/7m34ne',\n 'https://img.clickviewapp.com/v2/thumbnails/W1bjqJ',\n 'https://img.clickviewapp.com/v2/thumbnails/G14M1e',\n 'https://img.clickviewapp.com/v2/thumbnails/2mnv5x',\n 'https://img.clickviewapp.com/v2/thumbnails/xAEG91',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbyg',\n 'https://img.clickviewapp.com/v2/thumbnails/W13emP',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6j2vy',\n 'https://img.clickviewapp.com/v2/thumbnails/W1MJGE',\n 'https://img.clickviewapp.com/v2/thumbnails/OqDJqG',\n 'https://img.clickviewapp.com/v2/thumbnails/1My9Wn',\n 'https://img.clickviewapp.com/v2/thumbnails/G14MRe',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgKpl',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbp9',\n 'https://img.clickviewapp.com/v2/thumbnails/G147R1',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgMz5',\n 'https://img.clickviewapp.com/v2/thumbnails/G14Me5',\n 'https://img.clickviewapp.com/v2/thumbnails/5bEovE',\n 'https://img.clickviewapp.com/v2/thumbnails/odY4oZ',\n 'https://img.clickviewapp.com/v2/thumbnails/yrqwqD',\n 'https://img.clickviewapp.com/v2/thumbnails/K6pOmR',\n 'https://img.clickviewapp.com/v2/thumbnails/vYK3w4',\n 'https://img.clickviewapp.com/v2/thumbnails/agnD88',\n 'https://img.clickviewapp.com/v2/thumbnails/4rKmp7',\n 'https://img.clickviewapp.com/v2/thumbnails/0wM4r3',\n 'https://img.clickviewapp.com/v2/thumbnails/69A2jO',\n 'https://img.clickviewapp.com/v2/thumbnails/7m3Z3e',\n 'https://img.clickviewapp.com/v2/thumbnails/3bGL94',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6jwLo',\n 'https://img.clickviewapp.com/v2/thumbnails/1MyPby'\n ]\n },\n Tutorial: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.US]: {\n PLAYLIST: '103312110',\n SHARE: 'jWy8VY'\n }\n }\n },\n TutorialVideoHighlight: {\n analytics: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633825',\n SHARE: 'Ggg8mp'\n }\n }\n },\n searchAndDiscover: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633632',\n SHARE: 'Dem5BK'\n }\n }\n },\n openClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '100539257',\n SHARE: 'Dv7nnq'\n }\n }\n },\n createClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633076',\n SHARE: 'bZR5OR'\n }\n }\n },\n uploadVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633711',\n SHARE: 'GpE0e7'\n }\n }\n },\n playlist: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102630572',\n SHARE: 'b994n0'\n }\n }\n },\n shareVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '100539256',\n SHARE: 'Ggvddm'\n }\n }\n }\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { dismissibleTutorialVideoTypeSettingsMapping, TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\nexport function useTutorialVideoHighlight(\n type: TutorialVideoType,\n requireDismissal: boolean = true\n) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const ids = config.data?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[type].staging :\n HardCoded.TutorialVideoHighlight[type].production;\n const videoIds = ids[instanceRegion as keyof typeof ids];\n\n const playlistIds = config.data?.liteUrl.includes('staging') ?\n HardCoded.Tutorial.staging[instanceRegion] :\n HardCoded.Tutorial.production[instanceRegion];\n\n const { hasPermissions } = usePermissions();\n\n // if the user is not signed in or not a student, this should fetch the video\n const shouldShowVideo = videoIds !== undefined && !hasPermissions(PermissionName.StudentExperience);\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n shouldShowVideo &&\n VideoRequests.sharedVideo(videoIds.VIDEO, videoIds.SHARE)\n );\n\n const settings = useSettings(LocationContext.VideoHighlight);\n\n if (!requireDismissal || !Object.keys(dismissibleTutorialVideoTypeSettingsMapping).includes(type)) {\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds\n };\n }\n\n const tutorialSettingsMap = {\n [TutorialVideoType.Analytics]: settings.hasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: settings.hasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: settings.hasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: settings.hasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: settings.hasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: settings.hasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: settings.hasDismissedMyVideosTutorial\n };\n \n const settingName = dismissibleTutorialVideoTypeSettingsMapping[type as TutorialVideoType];\n\n const dismissVideoHighlight = async () => {\n if (!Object.keys(tutorialSettingsMap).includes(type) || !settingName) return;\n await settings.updateUserSettingAsync({\n name: settingName,\n value: true,\n kind: SettingKind.Setting\n });\n };\n\n const hasDismissedVideoHighlight = tutorialSettingsMap[type as keyof typeof tutorialSettingsMap] ?? null;\n\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds,\n hasDismissedVideoHighlight,\n dismissVideoHighlight\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nexport const VideoRequests = {\n video(\n id: string,\n shareId?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'thumbnail',\n shareId\n }),\n key: `video:${id}`\n };\n }\n};\n","import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopSearch } from 'shared/interfaces';\n\nexport const SearchRequests = {\n topSearches(\n filter: AnalyticsRequestFilter,\n success?: (data: TopSearch[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/search/top', filter),\n key: getAnalyticsRequestKey('top:searches', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topSearchesCardEmptyStateV2';\n\nexport function TopSearchesCardEmptyStateV2() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopSearchesCardV2() {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'>&nbsp;</div>\n\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-50'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-100'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-75'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-100'>&nbsp;</div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\n\nimport { SearchRequests } from 'shared/flight-requests/SearchRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopSearch } from 'shared/interfaces';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\n\nimport { TopSearchesCardEmptyStateV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2';\nimport { PartialTopSearchesCardV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2';\n\nconst namespace = 'reportsDashboard.topSearchesCardV2';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopSearchesCardV2View() {\n const requestFilter = useGetRequestFilter('search');\n\n const searches = Flight.useBasicFetch<TopSearch[]>(SearchRequests.topSearches(requestFilter));\n\n const getSearchUrl = useGetExternalUrl(ExternalRouteHelper.getPrimarySearchUrl);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {searches.data ? (\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='topSearches' /></h2>\n\n {searches.data.length ?\n <>\n <Scrollbars className='position-relative'>\n <ol className='position-absolute w-100 ps-4'>\n {searches.data.map((s, idx) => {\n return (\n <li\n key={idx}\n className='mb-3'\n >\n <a\n href={getSearchUrl(s.query)}\n target='_blank'\n className='position-relative d-flex justify-content-between align-items-center pe-5'\n >\n <span>\n {s.query}\n </span>\n <div className='position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3'>\n <SvgContainer svg={NewWindowSvg} />\n </div>\n </a>\n </li>\n );\n })}\n </ol>\n </Scrollbars>\n </> :\n <TopSearchesCardEmptyStateV2 />\n }\n </>\n ) : <PartialTopSearchesCardV2 />}\n </div>\n );\n}\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topStreamsCardEmptyState';\n\nexport function TopStreamsCardEmptyState() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopStreamsCard(): JSX.Element {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'>&nbsp;</div>\n\n <div className='position-relative'>\n <ul className='list-unstyled position-absolute top-0 start-0 w-100 h-100'>\n {Array(10).fill(null).map((_, i) => (\n <li key={i} className='mb-3'>\n <div className='row g-0'>\n <div className='col-5'>\n <div className='ratio ratio-16x9 rounded partial-loading-background' />\n </div>\n <div className='col-7 d-flex align-items-center'>\n <div className='mx-2 w-100'>\n <div className='w-100 partial-loading-background mb-1'>&nbsp;</div>\n <div className='w-75 partial-loading-background'>&nbsp;</div>\n </div>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { TopStreamsCardEmptyState } from 'apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState';\nimport { PartialTopStreamsCard } from 'apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard';\n\nconst namespace = 'reportsDashboard.topStreamsCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 10;\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopStreamsCardView() {\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3'>\n {hasLoaded ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{getPhrase('topVideos')}</h2>\n <AppLink\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS }}\n className='text-info'\n >\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n </div>\n\n {videos.itemsArr?.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <ul className='list-unstyled'>\n {topStreams.data.map(stream => {\n const video = videos.items[stream.objectId];\n\n if (!video)\n return;\n\n return (\n <li key={video.id} className='mb-3'>\n <AppLink appLink={getSchoolVideoAppLink(video, filterQueryParams)}>\n <div className='row g-0'>\n <div className='col-5'>\n <VideoThumbnail\n video={video}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n size='sm'\n />\n </div>\n <div className='col-7'>\n <div className='d-flex flex-column mx-2'>\n {VideoHelper.isVideoType(video) && (\n <VideoSubText\n type='series'\n video={video}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='clamp-2 fw-medium'>\n {video.name}\n </span>\n <Text namespace={namespace} phrase='views' options={{ smartCount: stream.combinedCount }} />\n </div>\n </div>\n </div>\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n </Scrollbars> :\n <TopStreamsCardEmptyState />\n }\n </> :\n <PartialTopStreamsCard />\n }\n </div>\n );\n}\n",".cogIcon {\n cursor: pointer;\n color: $gray-900;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CogSvg } from 'libs/shared/images/svg/objects/CogSvg';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nimport styles from './classroom-views-alert.module.scss';\n\nconst namespace = 'reportsDashboard.classroomViewsAlert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomViewsAlertProps {\n hasClassroomViews: boolean;\n}\n\nexport function ClassroomViewsAlert(props: ClassroomViewsAlertProps): JSX.Element | null {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.CLASSROOM_VIEWS_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n if (!props.hasClassroomViews || !show)\n return null;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2'>\n <div className='d-flex align-items-center gap-1 ms-1'>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <IconButton\n customSize\n svg={CogSvg}\n svgSize={SvgContainerSize.Standard}\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }}\n className={styles.cogIcon}\n tooltip={getPhrase('settingsTitle')}\n tooltipTrigger={['hover']}\n ariaLabel={getPhrase('settingsTitle')}\n />\n <Text namespace={namespace} phrase='description' />\n <a className='text-info' href={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomViews)} target='_blank' rel='noopener noreferrer'>\n <Text namespace={namespace} phrase='link' />\n </a>\n </div>\n <IconButton svg={CloseSvg} className='text-blue' onClick={() => setShow(false)} />\n </div>\n );\n}\n",":local {\n .topRow {\n min-height: 25rem;\n }\n\n .barChart {\n flex: 1 0;\n min-width: 0;\n }\n\n .videoViews {\n flex: 2 0;\n min-width: 0;\n }\n\n .bottomRow {\n min-height: 27rem;\n }\n\n .bottomColumn {\n flex: 1 0;\n min-width: 0;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoHighlight } from 'libs/shared/components/video-highlight/VideoHighlight';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { useTutorialVideoHighlight } from 'libs/shared/hooks/useTutorialVideoHighlight';\nimport { Config } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\nimport { StreamsBarChartCardView } from 'shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView';\nimport { StreamsChartCardView } from 'shared/views/overview-cards/streams-chart-card/StreamsChartCardView';\nimport { TopClassificationsCardView } from 'shared/views/overview-cards/top-classifications-card/TopClassificationsCardView';\n\nimport { TopSearchesCardV2View } from 'apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View';\nimport { TopStreamsCardView } from 'apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView';\n\nimport { ClassroomViewsAlert } from './components/classroom-views-alert/ClassroomViewsAlert';\n\nimport styles from './school-analytics-dashboard.module.scss';\n\nconst TOP_CLASSIFICATIONS_LIMIT = 10;\n\nconst namespace = 'reportsDashboard.schoolAnalyticsDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolAnalyticsDashboardView(): JSX.Element {\n const isTertiary = useIsTertiary();\n const { hasStudentReach } =\n useSettings(LocationContext.VideoHighlight);\n\n const header = isTertiary ? getPhrase('tertiaryDashboard') : getPhrase('dashboard');\n const { shouldShowVideo, videoIds, playlistIds, hasDismissedVideoHighlight, dismissVideoHighlight } =\n useTutorialVideoHighlight(TutorialVideoType.Analytics);\n\n const tutorialVideo = Flight.useBasicFetch(\n shouldShowVideo &&\n VideoRequests.video(videoIds.VIDEO, videoIds.SHARE)\n );\n const getObjectUrl = useGetExternalUrl(ExternalRouteHelper.getPrimaryObjectUrl);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const playlistUrl = ExternalRouteHelper.getSharePlaylistUrl({\n id: ProductId.Primary,\n order: 0,\n name: '',\n url: config.data?.liteUrl,\n imageUrl: ''\n }, playlistIds?.SHARE);\n\n useSetPageMetadata({ title: header });\n useSetHeaderTitle(header);\n\n return (\n <div className='d-flex flex-column gap-3'>\n <ClassroomViewsAlert hasClassroomViews={hasStudentReach} />\n {tutorialVideo?.data && !hasDismissedVideoHighlight &&\n <VideoHighlight\n video={tutorialVideo?.data}\n subtitle={getPhrase('videoHighlightSubtitle')}\n description={getPhrase('videoHighlightDescription')}\n bgColorClassName='bg-light-blue'\n supportArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomAnalytics)}\n onDismiss={dismissVideoHighlight}\n redirectUrl={getObjectUrl(tutorialVideo?.data)}\n redirectPlaylistUrl={playlistUrl}\n locationContext={LocationContext.VideoHighlight}\n />\n }\n <div className={`d-flex gap-3 ${styles.topRow}`}>\n <div className={styles.barChart}>\n <StreamsBarChartCardView\n type='year_group'\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n />\n </div>\n <div className={styles.videoViews}>\n <StreamsChartCardView type='user_type' />\n </div>\n </div>\n <div className={`d-flex gap-3 ${styles.bottomRow}`}>\n <div className={styles.bottomColumn}>\n <TopStreamsCardView />\n </div>\n <div className={styles.bottomColumn}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('subjects')}\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.bottomColumn}>\n <TopSearchesCardV2View />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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AAe,IAAK,CACnB,SAAU,GACV,MAAO,GACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACD,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,WAAY,CACV,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACF,CACF,CC1YD,SAAgB,GACd,EACA,EAA4B,GAC5B,CAEA,IAAM,EADc,EAAkC,GAAa,aAAa,CAAC,CAC9C,MAAM,eACnC,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAK9D,GAHM,EAAO,MAAM,QAAQ,SAAS,UAAU,CAClD,EAAU,uBAAuB,GAAM,QACvC,EAAU,uBAAuB,GAAM,YA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"}
1
+ {"version":3,"file":"DTy5e0Yv2.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/video-highlight/partial-loading/partial-video-highlight.module.scss","../../../../libs/shared/src/components/video-highlight/partial-loading/PartialVideoHighlight.tsx","../../../../libs/shared/src/components/video-highlight/thumbnail/VideoHighlightThumbnail.tsx","../../../../libs/shared/src/components/video-highlight/VideoHighlight.tsx","../../../../libs/shared/src/enums/TutorialVideoType.ts","../../../../libs/shared/src/constants/HardCoded.ts","../../../../libs/shared/src/hooks/useTutorialVideoHighlight.ts","../../src/shared/flight-requests/VideoRequests.ts","../../src/shared/flight-requests/SearchRequests.ts","../../src/apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2.tsx","../../src/apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard.tsx","../../src/apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/classroom-views-alert.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/components/classroom-views-alert/ClassroomViewsAlert.tsx","../../src/apps/dashboard/views/school-analytics-dashboard/school-analytics-dashboard.module.scss","../../src/apps/dashboard/views/school-analytics-dashboard/SchoolAnalyticsDashboardView.tsx"],"sourcesContent":[":local {\n .video {\n width: auto;\n height: 9rem;\n }\n\n .button {\n width: 6.25rem;\n height: 2.5rem;\n }\n\n .content {\n overflow: hidden;\n width: 49rem;\n height: 5rem;\n }\n\n .partialHighlight {\n overflow: hidden;\n width: 68.25rem;\n height: 9.2rem;\n }\n\n @media screen and (width <= 992px) {\n .video {\n overflow: hidden;\n width: auto;\n height: 100%;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n\n @media screen and (width <= 576px) {\n .partialHighlight {\n width: 23.875rem;\n height: 25.625rem;\n }\n\n .video {\n overflow: hidden;\n width: 22rem;\n height: 12.375rem;\n }\n\n .content {\n overflow: hidden;\n width: 20rem;\n height: 5rem;\n }\n }\n}\n","import React from 'react';\n\nimport styles from './partial-video-highlight.module.scss';\n\nexport function PartialVideoThumbnail() {\n return (\n <div className={`w-100 ${styles.partialHighlight}`}>\n <div className='row gx-3 h-100'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <div className={`rounded-3 ${styles.video} partial-loading-background`}/>\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className={`${styles.content} rounded-3 overflow-hidden mt-lg-0 mt-2 partial-loading-background`}></div>\n <div>\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n <div className={`${styles.button} rounded-3 partial-loading-background me-2 d-inline-block`} />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightThumbnailProps {\n video?: VideoTypes;\n analyticsOptions?: AnalyticsOptions;\n appLink?: AppLink;\n redirectUrl?: string;\n commonVideoProps?: CommonVideoProps;\n locationContext?: LocationContext;\n}\n\nexport function VideoHighlightThumbnail(props: VideoHighlightThumbnailProps) {\n if (props.appLink) {\n return (\n <VideoThumbnail\n video={props.video}\n commonVideoProps={props.commonVideoProps}\n appLink={props.appLink}\n analyticsOptions={{\n ...props.analyticsOptions,\n location: props.locationContext\n }}\n imageOptions={{ size: ImageSize.Medium }}\n type='static'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n alwaysShowIcon\n />\n );\n }\n\n return (\n <a\n href={props.redirectUrl}\n target='_blank'\n onClick={() => {\n AnalyticsHelper.logUserAction(\n { videoId: props.video?.id },\n { ...props.analyticsOptions, location: props.locationContext }\n );\n }}\n >\n <VideoThumbnail\n video={props.video}\n imageOptions={{ size: ImageSize.Medium }}\n type='cosmetic'\n size='sm'\n hideDuration\n hideRating\n hideBottomBar\n />\n </a>\n );\n}\n","import React from 'react';\nimport { ObjectHash } from 'backbone';\n\nimport { AppLinkHelper, LocationUtils } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, ClickDescriptor, EntityType, EventVersion, LocationContext, OnboardingDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { PartialVideoThumbnail } from 'libs/shared/components/video-highlight/partial-loading/PartialVideoHighlight';\nimport { VideoHighlightThumbnail } from 'libs/shared/components/video-highlight/thumbnail/VideoHighlightThumbnail';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\ninterface VideoHighlightProps {\n video: VideoTypes;\n subtitle?: string;\n description?: string;\n supportArticle: string;\n appLink?: Core.AppLink;\n locationContext?: LocationContext;\n commonVideoProps?: CommonVideoProps;\n redirectUrl?: string;\n sharedPlaylistAppLink?: Core.AppLink;\n redirectPlaylistUrl?: string;\n bgColorClassName?: string;\n onDismiss?: () => void;\n}\n\nconst namespace = 'shared.videoHighlight';\n\nconst dismissAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: OnboardingDescriptor.DismissWidget,\n entity: EntityType.Widget,\n eventVersion: EventVersion.V1,\n location: LocationContext.VideoHighlight,\n workflowPhase: WorkflowPhase.Complete\n};\n\nconst videoAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.Thumbnail,\n location: LocationContext.VideoHighlight,\n eventVersion: EventVersion.V1\n};\n\nconst subtitleAnalyticOptions = {\n actionType: UserAction.Click,\n location: LocationContext.VideoHighlight,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.OpenInClickView,\n eventVersion: EventVersion.V1\n};\n\nconst helpArticleAnalyticsOptions = {\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.SeeMore,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.AppLink,\n eventVersion: EventVersion.V1\n};\n\nexport function VideoHighlight(props: VideoHighlightProps) {\n if (!props.video) return <></>;\n\n function onDismissWithAnalytics() {\n AnalyticsHelper.logUserAction({ videoId: props.video?.id }, dismissAnalyticsOptions);\n props.onDismiss();\n }\n\n function onClick(\n link: Core.AppLink | string,\n analyticsOptions: AnalyticsOptions,\n analyticsData: ObjectHash = {}\n ) {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n if (typeof link === 'string') {\n LocationUtils.PageLoad(link, true);\n } else {\n AppLinkHelper.trigger(link);\n }\n }\n\n if (!props.video) {\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <PartialVideoThumbnail/>\n </div>\n );\n }\n\n return (\n <div className={`position-relative p-3 rounded-3 ${props.bgColorClassName ?? ''}`}>\n <div className='row gx-3'>\n <div className='col-lg-3 col-sm-5 col-12 align-self-start'>\n <VideoHighlightThumbnail\n video={props.video}\n analyticsOptions={videoAnalyticsOptions}\n appLink={props.appLink}\n redirectUrl={props.redirectUrl}\n commonVideoProps={props.commonVideoProps}\n locationContext={props.locationContext}\n />\n </div>\n <div className='col-lg-9 col-sm-7 col-12 d-flex flex-column justify-content-between'>\n <div className='overflow-hidden mt-lg-0 mt-2'>\n <TitleSubText>\n <span\n onClick={() =>\n onClick(props.sharedPlaylistAppLink ?? props.redirectPlaylistUrl, subtitleAnalyticOptions)\n }\n className='cursor-pointer'\n >{props.subtitle}</span>\n </TitleSubText>\n <div className='h5 mb-0 clamp-1 d-block'>\n <span\n onClick={() => onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions)}\n className='cursor-pointer'\n >\n {props.video?.name}\n </span>\n </div>\n <div className='mt-1 mb-2'>{props.video?.description ?? props.description}</div>\n </div>\n <div>\n <button\n className='btn btn-dark me-2'\n onClick={() =>\n onClick(props.appLink ?? props.redirectUrl, videoAnalyticsOptions, { videoId: props.video?.id })}\n >\n <Text namespace={namespace} phrase='watch'/>\n </button>\n <button\n className='btn btn-outline-dark me-2'\n onClick={() => onClick(\n props.supportArticle,\n { ...helpArticleAnalyticsOptions, location: props.locationContext },\n { url: props.supportArticle }\n )}\n >\n <Text namespace={namespace} phrase='learnMore'/>\n </button>\n <div\n className='btn btn-outline-dark d-sm-none'\n onClick={onDismissWithAnalytics}\n >\n <Text namespace={namespace} phrase='dismiss'/>\n </div>\n </div>\n </div>\n </div>\n <div className='position-absolute top-0 end-0 p-2 d-sm-inline d-none'>\n <IconButton\n svg={CloseSvg}\n onClick={onDismissWithAnalytics}\n />\n </div>\n </div>\n );\n}\n","import { SettingName } from './SettingName';\n\n// tutorial videos should be added here if they are meant to be embedded into the product\nexport enum TutorialVideoType {\n SearchAndDiscover = 'searchAndDiscover',\n Analytics = 'analytics',\n OpenClassroom = 'openClassroom',\n CreateClassroom = 'createClassroom',\n UploadVideo = 'uploadVideo',\n Playlist = 'playlist',\n ShareVideo = 'shareVideo'\n}\n\n// link to the domain options that manage video highlight visibility\nexport const dismissibleTutorialVideoTypeSettingsMapping: {[key in TutorialVideoType]: SettingName } = {\n [TutorialVideoType.Analytics]: SettingName.HasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: SettingName.HasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: SettingName.HasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: SettingName.HasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: SettingName.HasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: SettingName.HasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: SettingName.HasDismissedMyVideosTutorial\n};\n","import { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nexport const HardCoded = {\n OlympicsTopics: {\n // AU_PRIMARY\n ['18']: {\n id: 'Oq9WnjA',\n name: '2026 Milano Cortina Winter Olympic Games'\n },\n // AU_SECONDARY\n ['9']: {\n id: 'EoAYjoR',\n name: '2026 Milano Cortina Winter Olympic Games'\n }\n },\n CommonwealthGameTopics: {\n // SCT_PRIMARY\n ['12']: {\n id: 'AO0j90j',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // SCT_SECONDARY\n ['24']: {\n id: 'ZJxKkg1',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_PRIMARY\n ['16']: {\n id: 'agD7d73',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // ENG_SECONDARY\n ['47']: {\n id: 'm6mpl27',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU_PRIMARY\n ['18']: {\n id: '3bRp6eA',\n name: 'Commonwealth Games Glasgow 2026'\n },\n // AU SECONDARY\n ['9']: {\n id: '7mjAxYR',\n name: 'Commonwealth Games Glasgow 2026'\n }\n },\n PublicTranscriptVideoIds: [\n '78902422',\n '8139055',\n '32102562',\n '36875667',\n '3713657',\n '9900524',\n '48278572',\n '39424302',\n '3712691',\n '54504550',\n '23852726',\n '3713563',\n '3714027',\n '51281358',\n '58785149',\n '7322586',\n '3716774',\n '36554689',\n '54192890',\n '6689791',\n '10749459',\n '3712691',\n '81764158',\n '43772092',\n '43974358',\n '48091365',\n '6430651',\n '3713735',\n '54096131',\n '57977558',\n '78840166',\n '57738254',\n '51666370',\n '49858722'\n ],\n SpecialEvents: {\n dlL00b3: {\n id: 'dlL00b3',\n iconUrl: 'https://img.clickviewapp.com/v2/covers/PGbNp0'\n }\n },\n Classifications: {\n Twig: {\n EnglandSecondary: {\n HUB: 'yrg5vYN'\n },\n ScotlandSecondary: {\n HUB: 'Y69j14M'\n },\n InternationalSecondary: {\n HUB: 'MYM6GGM'\n },\n NewZealandSecondary: {\n HUB: 'agNmRd9'\n },\n CanadaMiddle: {\n HUB: '3brl1mY'\n },\n CanadaHigh: {\n HUB: 'kZJ9vkz'\n }\n },\n Tigtag: {\n EnglandPrimary: {\n HUB: 'D1218zx',\n TIGTAG_HUB: 'odldxPJ',\n TIGTAG_JUNIOR_HUB: 'nENExnL'\n },\n ScotlandPrimary: {\n HUB: 'JjAONbj',\n TIGTAG_HUB: '3bNAGl1',\n TIGTAG_JUNIOR_HUB: 'K6GKp43'\n },\n InternationalPrimary: {\n HUB: 'W1xqbk2',\n TIGTAG_HUB: 'ek3dJr8',\n TIGTAG_JUNIOR_HUB: 'PGyKzpn'\n },\n NewZealandPrimary: {\n HUB: 'odnkREE',\n TIGTAG_HUB: 'kZJ4RPa',\n TIGTAG_JUNIOR_HUB: 'zMg80DR'\n },\n CanadaElementary: {\n HUB: 'JjabmDE',\n TIGTAG_HUB: 'dq9Ewje',\n TIGTAG_JUNIOR_HUB: 'bmElWrb'\n },\n CanadaMiddle: {\n HUB: 'dq9EwyZ',\n TIGTAG_HUB: 'K6abxjP',\n TIGTAG_JUNIOR_HUB: '7mwxLdR'\n }\n }\n },\n // Production values. For testing in development, change these to staging preso values\n PresentationIds: {\n DEFAULT: 1,\n DEFAULT_CURRICULUM: 10,\n\n AU_PRIMARY: 18,\n AU_SECONDARY: 9,\n AU_TERTIARY: 81,\n US_ELEMENTARY: 13,\n US_MIDDLE: 14,\n US_HIGH: 15,\n CA_ELEMENTARY: 100,\n CA_MIDDLE: 101,\n CA_HIGH: 102,\n STREAMABLE_LEARNING: 68,\n ENG_PRIMARY: 16,\n ENG_SECONDARY: 47,\n SCT_PRIMARY: 12,\n SCT_SECONDARY: 24,\n UK_TERTIARY: 82,\n INT_PRIMARY: 19,\n INT_SECONDARY: 21,\n NZ_PRIMARY: 96,\n NZ_SECONDARY: 97\n },\n Libraries: {\n LICENCED_CONTENT_COLLECTION: '3700633',\n\n AU_PRIMARY: '10066675',\n AU_SECONDARY: '59401330',\n AU_TERTIARY: '5836680',\n US_ELEMENTARY: '38693445',\n US_MIDDLE: '39642303',\n US_HIGH: '38693435',\n CA_ELEMENTARY: '92862332',\n CA_MIDDLE: '92862334',\n CA_HIGH: '92862344',\n STREAMABLE_LEARNING: '78688869',\n ENG_PRIMARY: '35340580',\n ENG_SECONDARY: '59889793',\n SCT_PRIMARY: '33386791',\n SCT_SECONDARY: '59856733',\n UK_TERTIARY: '5815036',\n INT_PRIMARY: '3706428',\n INT_SECONDARY: '3706459',\n NZ_PRIMARY: '3705693',\n NZ_SECONDARY: '3705710',\n NZ_MTV: '26989676',\n\n TWIG: '88117784',\n TIGTAG: '80333935'\n },\n Rostering: {\n sources: {\n 0: { name: 'Unknown', iconUrl: '' },\n 1: { name: 'Clever', iconUrl: 'https://img.clickviewapp.com/v2/logos/LqlKgd' },\n 2: { name: 'ClassLink', iconUrl: 'https://img.clickviewapp.com/v2/logos/ZA2ew5' },\n 3: { name: 'Google', iconUrl: 'https://img.clickviewapp.com/v2/logos/l5x0jL' },\n 4: { name: 'Microsoft', iconUrl: 'https://img.clickviewapp.com/v2/logos/xAxGPP' },\n 5: { name: 'Schoology', iconUrl: 'https://img.clickviewapp.com/v2/logos/kZNEyz' },\n 6: { name: 'PowerSchool', iconUrl: 'https://img.clickviewapp.com/v2/logos/m6aDmR' }\n }\n },\n Images: {\n Level_1: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dlM73E',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/WAe8MP',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/raRm7E',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/3kzeZ2'\n },\n Level_2: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/WAeKvP',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/9DAZJv',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/eKG2bq',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/xyn5eP'\n },\n Level_3: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/dl1d0g',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/R0Pz7A',\n TOPIC_TALL_POSTER: 'https://img.clickviewapp.com/v2/tallposters/8LYZ9R',\n NEW_RELEASES_BANNER: 'https://img.clickviewapp.com/v2/banners/nKDyRj'\n },\n Level_4: {\n TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/vYJPP5',\n TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/PGPLLP'\n },\n TOPIC_DEFAULT_BANNER: 'https://img.clickviewapp.com/v2/banners/yKvoG0',\n STREAMABLE_TOPIC_BANNER: 'https://img.clickviewapp.com/v2/banners/q6gnOn',\n STREAMABLE_TOPIC_COVER: 'https://img.clickviewapp.com/v2/covers/age95g'\n },\n Onboarding: {\n Playlist: {\n COVER_FILE_ID: 'G149g3',\n BANNER_FILE_ID: 'bmPLkn'\n },\n LOADING_THUMBNAILS: [\n 'https://img.clickviewapp.com/v2/thumbnails/7m34ne',\n 'https://img.clickviewapp.com/v2/thumbnails/W1bjqJ',\n 'https://img.clickviewapp.com/v2/thumbnails/G14M1e',\n 'https://img.clickviewapp.com/v2/thumbnails/2mnv5x',\n 'https://img.clickviewapp.com/v2/thumbnails/xAEG91',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbyg',\n 'https://img.clickviewapp.com/v2/thumbnails/W13emP',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6j2vy',\n 'https://img.clickviewapp.com/v2/thumbnails/W1MJGE',\n 'https://img.clickviewapp.com/v2/thumbnails/OqDJqG',\n 'https://img.clickviewapp.com/v2/thumbnails/1My9Wn',\n 'https://img.clickviewapp.com/v2/thumbnails/G14MRe',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgKpl',\n 'https://img.clickviewapp.com/v2/thumbnails/agnbp9',\n 'https://img.clickviewapp.com/v2/thumbnails/G147R1',\n 'https://img.clickviewapp.com/v2/thumbnails/5bgMz5',\n 'https://img.clickviewapp.com/v2/thumbnails/G14Me5',\n 'https://img.clickviewapp.com/v2/thumbnails/5bEovE',\n 'https://img.clickviewapp.com/v2/thumbnails/odY4oZ',\n 'https://img.clickviewapp.com/v2/thumbnails/yrqwqD',\n 'https://img.clickviewapp.com/v2/thumbnails/K6pOmR',\n 'https://img.clickviewapp.com/v2/thumbnails/vYK3w4',\n 'https://img.clickviewapp.com/v2/thumbnails/agnD88',\n 'https://img.clickviewapp.com/v2/thumbnails/4rKmp7',\n 'https://img.clickviewapp.com/v2/thumbnails/0wM4r3',\n 'https://img.clickviewapp.com/v2/thumbnails/69A2jO',\n 'https://img.clickviewapp.com/v2/thumbnails/7m3Z3e',\n 'https://img.clickviewapp.com/v2/thumbnails/3bGL94',\n 'https://img.clickviewapp.com/v2/thumbnails/Y6jwLo',\n 'https://img.clickviewapp.com/v2/thumbnails/1MyPby'\n ]\n },\n Tutorial: {\n staging: {\n [InstanceRegion.AU]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n },\n [InstanceRegion.US]: {\n PLAYLIST: '92095406',\n SHARE: 'bwXYNM'\n }\n },\n production: {\n [InstanceRegion.AU]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.NZ]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.UK]: {\n PLAYLIST: '',\n SHARE: ''\n },\n [InstanceRegion.US]: {\n PLAYLIST: '103312110',\n SHARE: 'jWy8VY'\n }\n }\n },\n TutorialVideoHighlight: {\n analytics: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095356',\n SHARE: 'DN8vMg'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633825',\n SHARE: 'Ggg8mp'\n }\n }\n },\n searchAndDiscover: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095348',\n SHARE: 'G2Ylra'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633632',\n SHARE: 'Dem5BK'\n }\n }\n },\n openClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095362',\n SHARE: 'bwXY5w'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '100539257',\n SHARE: 'Dv7nnq'\n }\n }\n },\n createClassroom: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095338',\n SHARE: 'Gm0kXY'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633076',\n SHARE: 'bZR5OR'\n }\n }\n },\n uploadVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095354',\n SHARE: 'Dk90O8'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102633711',\n SHARE: 'GpE0e7'\n }\n }\n },\n playlist: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095342',\n SHARE: 'b9P51m'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '102630572',\n SHARE: 'b994n0'\n }\n }\n },\n shareVideo: {\n staging: {\n [InstanceRegion.US]: {\n VIDEO: '92095350',\n SHARE: 'DN8v4g'\n }\n },\n production: {\n [InstanceRegion.US]: {\n VIDEO: '100539256',\n SHARE: 'Ggvddm'\n }\n }\n }\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { dismissibleTutorialVideoTypeSettingsMapping, TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\nexport function useTutorialVideoHighlight(\n type: TutorialVideoType,\n requireDismissal: boolean = true\n) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const ids = config.data?.liteUrl.includes('staging') ?\n HardCoded.TutorialVideoHighlight[type].staging :\n HardCoded.TutorialVideoHighlight[type].production;\n const videoIds = ids[instanceRegion as keyof typeof ids];\n\n const playlistIds = config.data?.liteUrl.includes('staging') ?\n HardCoded.Tutorial.staging[instanceRegion] :\n HardCoded.Tutorial.production[instanceRegion];\n\n const { hasPermissions } = usePermissions();\n\n // if the user is not signed in or not a student, this should fetch the video\n const shouldShowVideo = videoIds !== undefined && !hasPermissions(PermissionName.StudentExperience);\n\n const tutorialVideo = Flight.useBasicFetch<VideoTypes>(\n shouldShowVideo &&\n VideoRequests.sharedVideo(videoIds.VIDEO, videoIds.SHARE)\n );\n\n const settings = useSettings(LocationContext.VideoHighlight);\n\n if (!requireDismissal || !Object.keys(dismissibleTutorialVideoTypeSettingsMapping).includes(type)) {\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds\n };\n }\n\n const tutorialSettingsMap = {\n [TutorialVideoType.Analytics]: settings.hasDismissedAnalyticsTutorial,\n [TutorialVideoType.OpenClassroom]: settings.hasDismissedOpenClassroomsTutorial,\n [TutorialVideoType.SearchAndDiscover]: settings.hasDismissedSearchAndDiscoverTutorial,\n [TutorialVideoType.CreateClassroom]: settings.hasDismissedClassroomsTutorial,\n [TutorialVideoType.Playlist]: settings.hasDismissedPlaylistsTutorial,\n [TutorialVideoType.ShareVideo]: settings.hasDismissedMySharesTutorial,\n [TutorialVideoType.UploadVideo]: settings.hasDismissedMyVideosTutorial\n };\n \n const settingName = dismissibleTutorialVideoTypeSettingsMapping[type as TutorialVideoType];\n\n const dismissVideoHighlight = async () => {\n if (!Object.keys(tutorialSettingsMap).includes(type) || !settingName) return;\n await settings.updateUserSettingAsync({\n name: settingName,\n value: true,\n kind: SettingKind.Setting\n });\n };\n\n const hasDismissedVideoHighlight = tutorialSettingsMap[type as keyof typeof tutorialSettingsMap] ?? null;\n\n return {\n shouldShowVideo,\n tutorialVideo,\n videoIds,\n playlistIds,\n hasDismissedVideoHighlight,\n dismissVideoHighlight\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nexport const VideoRequests = {\n video(\n id: string,\n shareId?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: 'thumbnail',\n shareId\n }),\n key: `video:${id}`\n };\n }\n};\n","import { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopSearch } from 'shared/interfaces';\n\nexport const SearchRequests = {\n topSearches(\n filter: AnalyticsRequestFilter,\n success?: (data: TopSearch[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/search/top', filter),\n key: getAnalyticsRequestKey('top:searches', filter),\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topSearchesCardEmptyStateV2';\n\nexport function TopSearchesCardEmptyStateV2() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopSearchesCardV2() {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'>&nbsp;</div>\n\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-50'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-100'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-25'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-75'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-33'>&nbsp;</div>\n <div className='partial-loading-background mb-3 w-100'>&nbsp;</div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\n\nimport { SearchRequests } from 'shared/flight-requests/SearchRequests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopSearch } from 'shared/interfaces';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\n\nimport { TopSearchesCardEmptyStateV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/empty-state/TopSearchesCardEmptyStateV2';\nimport { PartialTopSearchesCardV2 } from 'apps/dashboard/views/overview-cards/top-searches-v2/partial-loading/PartialTopSearchesCardV2';\n\nconst namespace = 'reportsDashboard.topSearchesCardV2';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopSearchesCardV2View() {\n const requestFilter = useGetRequestFilter('search');\n\n const searches = Flight.useBasicFetch<TopSearch[]>(SearchRequests.topSearches(requestFilter));\n\n const getSearchUrl = useGetExternalUrl(ExternalRouteHelper.getPrimarySearchUrl);\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3'>\n {searches.data ? (\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='topSearches' /></h2>\n\n {searches.data.length ?\n <>\n <Scrollbars className='position-relative'>\n <ol className='position-absolute w-100 ps-4'>\n {searches.data.map((s, idx) => {\n return (\n <li\n key={idx}\n className='mb-3'\n >\n <a\n href={getSearchUrl(s.query)}\n target='_blank'\n className='position-relative d-flex justify-content-between align-items-center pe-5'\n >\n <span>\n {s.query}\n </span>\n <div className='position-absolute w-100 text-end opacity-0 opacity-100-hover pe-3'>\n <SvgContainer svg={NewWindowSvg} />\n </div>\n </a>\n </li>\n );\n })}\n </ol>\n </Scrollbars>\n </> :\n <TopSearchesCardEmptyStateV2 />\n }\n </>\n ) : <PartialTopSearchesCardV2 />}\n </div>\n );\n}\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'reportsDashboard.topStreamsCardEmptyState';\n\nexport function TopStreamsCardEmptyState() {\n return (\n <div className='d-flex align-items-center justify-content-center text-center h-100'>\n <Text namespace={namespace} phrase='message' />\n </div>\n );\n}\n","import React from 'react';\n\nexport function PartialTopStreamsCard(): JSX.Element {\n return (\n <>\n <div className='partial-loading-background w-50 mb-3'>&nbsp;</div>\n\n <div className='position-relative'>\n <ul className='list-unstyled position-absolute top-0 start-0 w-100 h-100'>\n {Array(10).fill(null).map((_, i) => (\n <li key={i} className='mb-3'>\n <div className='row g-0'>\n <div className='col-5'>\n <div className='ratio ratio-16x9 rounded partial-loading-background' />\n </div>\n <div className='col-7 d-flex align-items-center'>\n <div className='mx-2 w-100'>\n <div className='w-100 partial-loading-background mb-1'>&nbsp;</div>\n <div className='w-75 partial-loading-background'>&nbsp;</div>\n </div>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </div>\n </>\n );\n}\n","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetAppLinkFilterParams, useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { TopStreamsCardEmptyState } from 'apps/dashboard/views/overview-cards/top-streams/empty-state/TopStreamsCardEmptyState';\nimport { PartialTopStreamsCard } from 'apps/dashboard/views/overview-cards/top-streams/partial-loading/PartialTopStreamsCard';\n\nconst namespace = 'reportsDashboard.topStreamsCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 10;\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function TopStreamsCardView() {\n const filterQueryParams = useGetAppLinkFilterParams();\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n return (\n <div className='d-flex flex-column h-100 bg-white overflow-hidden px-3 rounded pt-3'>\n {hasLoaded ?\n <>\n <div className='d-flex justify-content-between'>\n <h2 className='h6 mb-3'>{getPhrase('topVideos')}</h2>\n <AppLink\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.TOP_VIDEOS }}\n className='text-info'\n >\n <Text namespace={namespace} phrase='seeAll' />\n </AppLink>\n </div>\n\n {videos.itemsArr?.length ?\n <Scrollbars className='position-relative'>\n <div className='position-absolute w-100'>\n <ul className='list-unstyled'>\n {topStreams.data.map(stream => {\n const video = videos.items[stream.objectId];\n\n if (!video)\n return;\n\n return (\n <li key={video.id} className='mb-3'>\n <AppLink appLink={getSchoolVideoAppLink(video, filterQueryParams)}>\n <div className='row g-0'>\n <div className='col-5'>\n <VideoThumbnail\n video={video}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n size='sm'\n />\n </div>\n <div className='col-7'>\n <div className='d-flex flex-column mx-2'>\n {VideoHelper.isVideoType(video) && (\n <VideoSubText\n type='series'\n video={video}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='clamp-2 fw-medium'>\n {video.name}\n </span>\n <Text namespace={namespace} phrase='views' options={{ smartCount: stream.combinedCount }} />\n </div>\n </div>\n </div>\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n </Scrollbars> :\n <TopStreamsCardEmptyState />\n }\n </> :\n <PartialTopStreamsCard />\n }\n </div>\n );\n}\n",".cogIcon {\n cursor: pointer;\n color: $gray-900;\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { CogSvg } from 'libs/shared/images/svg/objects/CogSvg';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nimport styles from './classroom-views-alert.module.scss';\n\nconst namespace = 'reportsDashboard.classroomViewsAlert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomViewsAlertProps {\n hasClassroomViews: boolean;\n}\n\nexport function ClassroomViewsAlert(props: ClassroomViewsAlertProps): JSX.Element | null {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.CLASSROOM_VIEWS_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n if (!props.hasClassroomViews || !show)\n return null;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue border border-info rounded p-2 mb-2'>\n <div className='d-flex align-items-center gap-1 ms-1'>\n <span className='fw-bold'>\n <Text namespace={namespace} phrase='leadIn' />\n </span>\n <IconButton\n customSize\n svg={CogSvg}\n svgSize={SvgContainerSize.Standard}\n appLink={{ application: AppChannels.DEFAULT, action: Actions.Default.CLASSROOM_VIEWS_POPUP }}\n className={styles.cogIcon}\n tooltip={getPhrase('settingsTitle')}\n tooltipTrigger={['hover']}\n ariaLabel={getPhrase('settingsTitle')}\n />\n <Text namespace={namespace} phrase='description' />\n <a className='text-info' href={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomViews)} target='_blank' rel='noopener noreferrer'>\n <Text namespace={namespace} phrase='link' />\n </a>\n </div>\n <IconButton svg={CloseSvg} className='text-blue' onClick={() => setShow(false)} />\n </div>\n );\n}\n",":local {\n .topRow {\n min-height: 25rem;\n }\n\n .barChart {\n flex: 1 0;\n min-width: 0;\n }\n\n .videoViews {\n flex: 2 0;\n min-width: 0;\n }\n\n .bottomRow {\n min-height: 27rem;\n }\n\n .bottomColumn {\n flex: 1 0;\n min-width: 0;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoHighlight } from 'libs/shared/components/video-highlight/VideoHighlight';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { TutorialVideoType } from 'libs/shared/enums/TutorialVideoType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useGetExternalUrl } from 'libs/shared/hooks/UseGetExternalUrl';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { useTutorialVideoHighlight } from 'libs/shared/hooks/useTutorialVideoHighlight';\nimport { Config } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { TopicAnalyticsType } from 'shared/enums/TopicAnalyticsType';\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { ExternalRouteHelper } from 'shared/utils/ExternalRouteHelper';\nimport { StreamsBarChartCardView } from 'shared/views/overview-cards/streams-bar-chart-card/StreamsBarChartCardView';\nimport { StreamsChartCardView } from 'shared/views/overview-cards/streams-chart-card/StreamsChartCardView';\nimport { TopClassificationsCardView } from 'shared/views/overview-cards/top-classifications-card/TopClassificationsCardView';\n\nimport { TopSearchesCardV2View } from 'apps/dashboard/views/overview-cards/top-searches-v2/TopSearchesCardV2View';\nimport { TopStreamsCardView } from 'apps/dashboard/views/overview-cards/top-streams/TopStreamsCardView';\n\nimport { ClassroomViewsAlert } from './components/classroom-views-alert/ClassroomViewsAlert';\n\nimport styles from './school-analytics-dashboard.module.scss';\n\nconst TOP_CLASSIFICATIONS_LIMIT = 10;\n\nconst namespace = 'reportsDashboard.schoolAnalyticsDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SchoolAnalyticsDashboardView(): JSX.Element {\n const isTertiary = useIsTertiary();\n const { hasStudentReach } =\n useSettings(LocationContext.VideoHighlight);\n\n const header = isTertiary ? getPhrase('tertiaryDashboard') : getPhrase('dashboard');\n const { shouldShowVideo, videoIds, playlistIds, hasDismissedVideoHighlight, dismissVideoHighlight } =\n useTutorialVideoHighlight(TutorialVideoType.Analytics);\n\n const tutorialVideo = Flight.useBasicFetch(\n shouldShowVideo &&\n VideoRequests.video(videoIds.VIDEO, videoIds.SHARE)\n );\n const getObjectUrl = useGetExternalUrl(ExternalRouteHelper.getPrimaryObjectUrl);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const playlistUrl = ExternalRouteHelper.getSharePlaylistUrl({\n id: ProductId.Primary,\n order: 0,\n name: '',\n url: config.data?.liteUrl,\n imageUrl: ''\n }, playlistIds?.SHARE);\n\n useSetPageMetadata({ title: header });\n useSetHeaderTitle(header);\n\n return (\n <div className='d-flex flex-column gap-3'>\n <ClassroomViewsAlert hasClassroomViews={hasStudentReach} />\n {tutorialVideo?.data && !hasDismissedVideoHighlight &&\n <VideoHighlight\n video={tutorialVideo?.data}\n subtitle={getPhrase('videoHighlightSubtitle')}\n description={getPhrase('videoHighlightDescription')}\n bgColorClassName='bg-light-blue'\n supportArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.ClassroomAnalytics)}\n onDismiss={dismissVideoHighlight}\n redirectUrl={getObjectUrl(tutorialVideo?.data)}\n redirectPlaylistUrl={playlistUrl}\n locationContext={LocationContext.VideoHighlight}\n />\n }\n <div className={`d-flex gap-3 ${styles.topRow}`}>\n <div className={styles.barChart}>\n <StreamsBarChartCardView\n type='year_group'\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n />\n </div>\n <div className={styles.videoViews}>\n <StreamsChartCardView type='user_type' />\n </div>\n </div>\n <div className={`d-flex gap-3 ${styles.bottomRow}`}>\n <div className={styles.bottomColumn}>\n <TopStreamsCardView />\n </div>\n <div className={styles.bottomColumn}>\n <TopClassificationsCardView\n type={TopicAnalyticsType.RootTopic}\n heading={getPhrase('subjects')}\n appLink={{ application: AppChannels.VIDEOS, action: Actions.Videos.HOME }}\n appLinkText={getPhrase('seeOverview')}\n emptyStateText={getPhrase('emptySubjects')}\n limit={TOP_CLASSIFICATIONS_LIMIT}\n />\n </div>\n <div className={styles.bottomColumn}>\n <TopSearchesCardV2View />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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AAe,IAAK,CACnB,SAAU,GACV,MAAO,GACR,EACA,EAAe,IAAK,CACnB,SAAU,YACV,MAAO,SACR,CACF,CACF,CACD,uBAAwB,CACtB,UAAW,CACT,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,kBAAmB,CACjB,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,cAAe,CACb,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,gBAAiB,CACf,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,YAAa,CACX,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,SAAU,CACR,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACD,WAAY,CACV,QAAS,EACN,EAAe,IAAK,CACnB,MAAO,WACP,MAAO,SACR,CACF,CACD,WAAY,EACT,EAAe,IAAK,CACnB,MAAO,YACP,MAAO,SACR,CACF,CACF,CACF,CACF,CC1YD,SAAgB,GACd,EACA,EAA4B,GAC5B,CAEA,IAAM,EADc,EAAkC,GAAa,aAAa,CAAC,CAC9C,MAAM,eACnC,EAAS,EAA6B,EAAe,QAAQ,CAAC,CAK9D,GAHM,EAAO,MAAM,QAAQ,SAAS,UAAU,CAClD,EAAU,uBAAuB,GAAM,QACvC,EAAU,uBAAuB,GAAM,YA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"}
@@ -1,2 +1,2 @@
1
- import{Jn as e,st as t}from"./CM0wW4AE.chunk.js";import{n}from"./KyOyA3o8.chunk.js";import{M as r}from"./app-eLOi12JS.js";var i=e(t());function a(e){let[,t]=n(r.HEADER_TITLE);(0,i.useEffect)(()=>(t(e),()=>{t(null)}),[e])}function o(e,t,n){if(!t)return e;let r=`${e}:${t.start}:${t.end}`,i=Array.isArray(t.userId)?t.userId.sort().join(`:`):t.userId,a=Array.isArray(t.groupId)?t.groupId.sort().join(`:`):t.groupId,o=Array.isArray(t.customerId)?t.customerId.sort().join(`:`):t.customerId;return i&&(r+=`:${i}`),a&&(r+=`:${a}`),o&&(r+=`:${o}`),t.classroomSize&&(r+=`:cs${t.classroomSize}`),t.schoolStartTime&&(r+=`:ss${t.schoolStartTime}`),t.schoolEndTime&&(r+=`:se${t.schoolEndTime}`),t.timezone&&(r+=`:tz${t.timezone}`),n&&(r+=`:${n}`),r}export{a as n,o as t};
2
- //# sourceMappingURL=B-Cpv5JW2.chunk.js.map
1
+ import{Jn as e,st as t}from"./CM0wW4AE.chunk.js";import{n}from"./KyOyA3o8.chunk.js";import{M as r}from"./app-BigOHyYp.js";var i=e(t());function a(e){let[,t]=n(r.HEADER_TITLE);(0,i.useEffect)(()=>(t(e),()=>{t(null)}),[e])}function o(e,t,n){if(!t)return e;let r=`${e}:${t.start}:${t.end}`,i=Array.isArray(t.userId)?t.userId.sort().join(`:`):t.userId,a=Array.isArray(t.groupId)?t.groupId.sort().join(`:`):t.groupId,o=Array.isArray(t.customerId)?t.customerId.sort().join(`:`):t.customerId;return i&&(r+=`:${i}`),a&&(r+=`:${a}`),o&&(r+=`:${o}`),t.classroomSize&&(r+=`:cs${t.classroomSize}`),t.schoolStartTime&&(r+=`:ss${t.schoolStartTime}`),t.schoolEndTime&&(r+=`:se${t.schoolEndTime}`),t.timezone&&(r+=`:tz${t.timezone}`),n&&(r+=`:${n}`),r}export{a as n,o as t};
2
+ //# sourceMappingURL=DgPadkLi2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B-Cpv5JW2.chunk.js","names":[],"sources":["../../src/shared/hooks/UseSetHeaderTitle.ts","../../../../libs/shared/src/utils/AnalyticsRequestUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport function useSetHeaderTitle(title?: string): void {\n const [ , setTitle ] = useViewModel<string>(ViewModelKeys.HEADER_TITLE);\n\n useEffect(() => {\n setTitle(title);\n\n return () => {\n setTitle(null);\n };\n }, [title]);\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (filter.classroomSize)\n key += `:cs${filter.classroomSize}`;\n\n if (filter.schoolStartTime)\n key += `:ss${filter.schoolStartTime}`;\n\n if (filter.schoolEndTime)\n key += `:se${filter.schoolEndTime}`;\n\n if (filter.timezone)\n key += `:tz${filter.timezone}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}\n"],"mappings":"uIAMA,SAAgB,EAAkB,EAAsB,CACtD,GAAM,EAAI,GAAa,EAAqB,EAAc,aAAa,EAEvE,EAAA,EAAA,gBACE,EAAS,EAAM,KAEF,CACX,EAAS,KAAK,GAEf,CAAC,EAAM,CAAC,CCbb,SAAgB,EAAuB,EAAiB,EAAgC,EAAwB,CAC9G,GAAI,CAAC,EACH,OAAO,EAET,IAAI,EAAM,GAAG,EAAQ,GAAG,EAAO,MAAM,GAAG,EAAO,MAEzC,EAAY,MAAM,QAAQ,EAAO,OAAO,CAAG,EAAO,OAAO,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,OACnF,EAAa,MAAM,QAAQ,EAAO,QAAQ,CAAG,EAAO,QAAQ,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,QACtF,EAAgB,MAAM,QAAQ,EAAO,WAAW,CAAG,EAAO,WAAW,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,WA0BrG,OAxBI,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,kBACT,GAAO,MAAM,EAAO,mBAElB,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,WACT,GAAO,MAAM,EAAO,YAElB,IACF,GAAO,IAAI,KAEN"}
1
+ {"version":3,"file":"DgPadkLi2.chunk.js","names":[],"sources":["../../src/shared/hooks/UseSetHeaderTitle.ts","../../../../libs/shared/src/utils/AnalyticsRequestUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport function useSetHeaderTitle(title?: string): void {\n const [ , setTitle ] = useViewModel<string>(ViewModelKeys.HEADER_TITLE);\n\n useEffect(() => {\n setTitle(title);\n\n return () => {\n setTitle(null);\n };\n }, [title]);\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (filter.classroomSize)\n key += `:cs${filter.classroomSize}`;\n\n if (filter.schoolStartTime)\n key += `:ss${filter.schoolStartTime}`;\n\n if (filter.schoolEndTime)\n key += `:se${filter.schoolEndTime}`;\n\n if (filter.timezone)\n key += `:tz${filter.timezone}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}\n"],"mappings":"uIAMA,SAAgB,EAAkB,EAAsB,CACtD,GAAM,EAAI,GAAa,EAAqB,EAAc,aAAa,EAEvE,EAAA,EAAA,gBACE,EAAS,EAAM,KAEF,CACX,EAAS,KAAK,GAEf,CAAC,EAAM,CAAC,CCbb,SAAgB,EAAuB,EAAiB,EAAgC,EAAwB,CAC9G,GAAI,CAAC,EACH,OAAO,EAET,IAAI,EAAM,GAAG,EAAQ,GAAG,EAAO,MAAM,GAAG,EAAO,MAEzC,EAAY,MAAM,QAAQ,EAAO,OAAO,CAAG,EAAO,OAAO,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,OACnF,EAAa,MAAM,QAAQ,EAAO,QAAQ,CAAG,EAAO,QAAQ,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,QACtF,EAAgB,MAAM,QAAQ,EAAO,WAAW,CAAG,EAAO,WAAW,MAAM,CAAC,KAAK,IAAI,CAAG,EAAO,WA0BrG,OAxBI,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,kBACT,GAAO,MAAM,EAAO,mBAElB,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,WACT,GAAO,MAAM,EAAO,YAElB,IACF,GAAO,IAAI,KAEN"}
@@ -1,2 +1,2 @@
1
- import{Kn as e,P as t,st as n}from"./CM0wW4AE.chunk.js";import{i as r,r as i}from"./B01-hGyk.chunk.js";import{n as a}from"./NaTUzw6f.chunk.js";import{a as o,s}from"./DYHGbCb9.chunk.js";import{t as c}from"./I5Dnl_eN.chunk.js";import{D as l}from"./app-eLOi12JS.js";var u={isType(e,t){return e?.typeId?e.typeId===t:e?.type?.toLowerCase()===a[t].toLowerCase()},isResource(e){return u.isType(e,a.Resource)},isClassification(e){return e.type===`Subject`}},d={colours:`amber.apricot.aqua.azure.black.blue.bronze.brown.chocolate.copper.coral.cream.crimson.cyan.emerald.gold.green.grey.indigo.ivory.jade.lavender.lime.maroon.mint.navy.olive.orange.peach.pink.plum.purple.red.rose.ruby.sage.salmon.sapphire.scarlet.silver.sky.teal.turquoise.violet.white.yellow`.split(`.`),animals:`aardvark.albatross.alligator.alpaca.ant.anteater.antelope.ape.armadillo.baboon.badger.bat.bear.beaver.bee.beetle.bison.blackbird.boar.bobcat.bonobo.buffalo.butterfly.camel.canary.capybara.caribou.cat.caterpillar.chameleon.cheetah.chimpanzee.chinchilla.chipmunk.clownfish.cockatoo.cougar.cow.coyote.crab.crane.crocodile.crow.deer.dingo.dog.dolphin.donkey.dove.dragonfly.duck.eagle.elephant.elk.emu.falcon.ferret.finch.firefly.fish.flamingo.fox.frog.gazelle.gecko.gerbil.giraffe.goat.goldfish.goose.gorilla.grasshopper.gull.hamster.hare.hawk.hedgehog.heron.hippopotamus.horse.hummingbird.iguana.impala.jaguar.jellyfish.kangaroo.kingfisher.kiwi.koala.koi.ladybug.lemur.leopard.lion.lizard.llama.lobster.lynx.macaw.magpie.manatee.mandrill.marlin.meerkat.mole.mongoose.monkey.moose.mouse.mule.narwhal.newt.nightingale.ocelot.octopus.orangutan.orca.ostrich.otter.owl.ox.panda.panther.parakeet.parrot.peacock.pelican.penguin.pheasant.pigeon.platypus.pony.porcupine.possum.pufferfish.puffin.puma.quail.rabbit.raccoon.raven.reindeer.rhinoceros.roadrunner.robin.rooster.salamander.salmon.seahorse.seal.shark.sheep.sloth.snail.snake.sparrow.squid.squirrel.starfish.stingray.stork.swallow.swan.swordfish.tapir.tiger.toad.tortoise.toucan.trout.tuna.turtle.wallaby.walrus.weasel.whale.wildebeest.wolf.wolverine.woodpecker.yak.zebra`.split(`.`)},f=c.encloseNamespace(`shared.analyticsUtils`);function p(e){return e.charAt(0).toUpperCase()+e.slice(1)}function m(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return Math.abs(t)}function h(e,t){let n=Math.floor(new Date().getMinutes()/5),r=m(`${e||t}-${n}`),i=d.colours[r%d.colours.length],a=d.animals[Math.floor(r/d.colours.length)%d.animals.length];return`${p(i)} ${p(a)}`}function g(e,t){return e?t?h(e.id,e.sessionId):e.deleted?f(`deleted`):s.getFullName(e)||f(`anonUser`):f(`anonUser`)}n();var _=t();function v(e){return(0,_.jsx)(`svg`,{...e,children:(0,_.jsx)(`path`,{d:`m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056`,fill:`currentColor`})})}var y={iconCircle:`_iconCircle_186sk_1`,dot:`_dot_186sk_8`};function b(e){let t=e.type===`anon`;return e.type===`student-reach`?(0,_.jsx)(`div`,{className:`position-relative h-100 w-100`,children:(0,_.jsx)(`div`,{className:`${y.iconCircle} bg-orange text-light ${e.extraClasses||``}`,children:(0,_.jsx)(i,{svg:l,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})})}):t?(0,_.jsxs)(`div`,{className:`position-relative h-100 w-100`,children:[(0,_.jsx)(`div`,{className:`${y.iconCircle} bg-gray-700 text-light ${e.extraClasses||``}`,children:(0,_.jsx)(i,{svg:v,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})}),e.showDot&&(0,_.jsx)(`div`,{className:`${y.dot} rounded-circle bg-danger`})]}):(0,_.jsx)(o,{imageCdnUrl:e.imageCdnUrl,initials:e.initials,imageUrl:e.imageUrl,extraClasses:e.extraClasses,showDot:e.showDot,anonymiseUsers:e.anonymiseUsers})}var x=e(((e,t)=>{function n(){return t.exports=n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.exports.__esModule=!0,t.exports.default=t.exports,n.apply(null,arguments)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}));export{u as i,b as n,g as r,x as t};
2
- //# sourceMappingURL=CLXgS35R.chunk.js.map
1
+ import{Kn as e,P as t,st as n}from"./CM0wW4AE.chunk.js";import{i as r,r as i}from"./B01-hGyk.chunk.js";import{n as a}from"./NaTUzw6f.chunk.js";import{a as o,s}from"./DYHGbCb9.chunk.js";import{t as c}from"./I5Dnl_eN.chunk.js";import{D as l}from"./app-BigOHyYp.js";var u={isType(e,t){return e?.typeId?e.typeId===t:e?.type?.toLowerCase()===a[t].toLowerCase()},isResource(e){return u.isType(e,a.Resource)},isClassification(e){return e.type===`Subject`}},d={colours:`amber.apricot.aqua.azure.black.blue.bronze.brown.chocolate.copper.coral.cream.crimson.cyan.emerald.gold.green.grey.indigo.ivory.jade.lavender.lime.maroon.mint.navy.olive.orange.peach.pink.plum.purple.red.rose.ruby.sage.salmon.sapphire.scarlet.silver.sky.teal.turquoise.violet.white.yellow`.split(`.`),animals:`aardvark.albatross.alligator.alpaca.ant.anteater.antelope.ape.armadillo.baboon.badger.bat.bear.beaver.bee.beetle.bison.blackbird.boar.bobcat.bonobo.buffalo.butterfly.camel.canary.capybara.caribou.cat.caterpillar.chameleon.cheetah.chimpanzee.chinchilla.chipmunk.clownfish.cockatoo.cougar.cow.coyote.crab.crane.crocodile.crow.deer.dingo.dog.dolphin.donkey.dove.dragonfly.duck.eagle.elephant.elk.emu.falcon.ferret.finch.firefly.fish.flamingo.fox.frog.gazelle.gecko.gerbil.giraffe.goat.goldfish.goose.gorilla.grasshopper.gull.hamster.hare.hawk.hedgehog.heron.hippopotamus.horse.hummingbird.iguana.impala.jaguar.jellyfish.kangaroo.kingfisher.kiwi.koala.koi.ladybug.lemur.leopard.lion.lizard.llama.lobster.lynx.macaw.magpie.manatee.mandrill.marlin.meerkat.mole.mongoose.monkey.moose.mouse.mule.narwhal.newt.nightingale.ocelot.octopus.orangutan.orca.ostrich.otter.owl.ox.panda.panther.parakeet.parrot.peacock.pelican.penguin.pheasant.pigeon.platypus.pony.porcupine.possum.pufferfish.puffin.puma.quail.rabbit.raccoon.raven.reindeer.rhinoceros.roadrunner.robin.rooster.salamander.salmon.seahorse.seal.shark.sheep.sloth.snail.snake.sparrow.squid.squirrel.starfish.stingray.stork.swallow.swan.swordfish.tapir.tiger.toad.tortoise.toucan.trout.tuna.turtle.wallaby.walrus.weasel.whale.wildebeest.wolf.wolverine.woodpecker.yak.zebra`.split(`.`)},f=c.encloseNamespace(`shared.analyticsUtils`);function p(e){return e.charAt(0).toUpperCase()+e.slice(1)}function m(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return Math.abs(t)}function h(e,t){let n=Math.floor(new Date().getMinutes()/5),r=m(`${e||t}-${n}`),i=d.colours[r%d.colours.length],a=d.animals[Math.floor(r/d.colours.length)%d.animals.length];return`${p(i)} ${p(a)}`}function g(e,t){return e?t?h(e.id,e.sessionId):e.deleted?f(`deleted`):s.getFullName(e)||f(`anonUser`):f(`anonUser`)}n();var _=t();function v(e){return(0,_.jsx)(`svg`,{...e,children:(0,_.jsx)(`path`,{d:`m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056`,fill:`currentColor`})})}var y={iconCircle:`_iconCircle_186sk_1`,dot:`_dot_186sk_8`};function b(e){let t=e.type===`anon`;return e.type===`student-reach`?(0,_.jsx)(`div`,{className:`position-relative h-100 w-100`,children:(0,_.jsx)(`div`,{className:`${y.iconCircle} bg-orange text-light ${e.extraClasses||``}`,children:(0,_.jsx)(i,{svg:l,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})})}):t?(0,_.jsxs)(`div`,{className:`position-relative h-100 w-100`,children:[(0,_.jsx)(`div`,{className:`${y.iconCircle} bg-gray-700 text-light ${e.extraClasses||``}`,children:(0,_.jsx)(i,{svg:v,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})}),e.showDot&&(0,_.jsx)(`div`,{className:`${y.dot} rounded-circle bg-danger`})]}):(0,_.jsx)(o,{imageCdnUrl:e.imageCdnUrl,initials:e.initials,imageUrl:e.imageUrl,extraClasses:e.extraClasses,showDot:e.showDot,anonymiseUsers:e.anonymiseUsers})}var x=e(((e,t)=>{function n(){return t.exports=n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.exports.__esModule=!0,t.exports.default=t.exports,n.apply(null,arguments)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}));export{u as i,b as n,g as r,x as t};
2
+ //# sourceMappingURL=Udxe63DQ.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CLXgS35R.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts","../../../../libs/shared/src/apps/analytics/utils/anon-name-dictionaries.json","../../../../libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","../../../../libs/shared/src/images/svg/objects/AnonymousSvg.tsx","../../../../libs/shared/src/components/engagement-avatar/engagement-avatar.module.scss","../../../../libs/shared/src/components/engagement-avatar/EngagementAvatar.tsx","../../../../../node_modules/@babel/runtime/helpers/extends.js"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};\n","{\n \"colours\": [\n \"amber\",\n \"apricot\",\n \"aqua\",\n \"azure\",\n \"black\",\n \"blue\",\n \"bronze\",\n \"brown\",\n \"chocolate\",\n \"copper\",\n \"coral\",\n \"cream\",\n \"crimson\",\n \"cyan\",\n \"emerald\",\n \"gold\",\n \"green\",\n \"grey\",\n \"indigo\",\n \"ivory\",\n \"jade\",\n \"lavender\",\n \"lime\",\n \"maroon\",\n \"mint\",\n \"navy\",\n \"olive\",\n \"orange\",\n \"peach\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"red\",\n \"rose\",\n \"ruby\",\n \"sage\",\n \"salmon\",\n \"sapphire\",\n \"scarlet\",\n \"silver\",\n \"sky\",\n \"teal\",\n \"turquoise\",\n \"violet\",\n \"white\",\n \"yellow\"\n ],\n \"animals\": [\n \"aardvark\", \"albatross\", \"alligator\", \"alpaca\", \"ant\", \"anteater\", \"antelope\", \"ape\", \"armadillo\",\n \"baboon\", \"badger\", \"bat\", \"bear\", \"beaver\", \"bee\", \"beetle\", \"bison\", \"blackbird\", \"boar\", \"bobcat\", \"bonobo\", \"buffalo\", \"butterfly\",\n \"camel\", \"canary\", \"capybara\", \"caribou\", \"cat\", \"caterpillar\", \"chameleon\",\n \"cheetah\", \"chimpanzee\", \"chinchilla\", \"chipmunk\", \"clownfish\", \"cockatoo\", \"cougar\", \"cow\", \"coyote\",\n \"crab\", \"crane\", \"crocodile\", \"crow\",\n \"deer\", \"dingo\", \"dog\", \"dolphin\", \"donkey\", \"dove\", \"dragonfly\", \"duck\",\n \"eagle\", \"elephant\", \"elk\", \"emu\",\n \"falcon\", \"ferret\", \"finch\", \"firefly\", \"fish\", \"flamingo\", \"fox\", \"frog\",\n \"gazelle\", \"gecko\", \"gerbil\", \"giraffe\", \"goat\", \"goldfish\", \"goose\", \"gorilla\", \"grasshopper\", \"gull\",\n \"hamster\", \"hare\", \"hawk\", \"hedgehog\", \"heron\", \"hippopotamus\", \"horse\", \"hummingbird\",\n \"iguana\", \"impala\",\n \"jaguar\", \"jellyfish\",\n \"kangaroo\", \"kingfisher\", \"kiwi\", \"koala\", \"koi\",\n \"ladybug\", \"lemur\", \"leopard\", \"lion\", \"lizard\", \"llama\", \"lobster\", \"lynx\",\n \"macaw\", \"magpie\", \"manatee\", \"mandrill\", \"marlin\", \"meerkat\", \"mole\", \"mongoose\", \"monkey\", \"moose\", \"mouse\", \"mule\",\n \"narwhal\", \"newt\", \"nightingale\",\n \"ocelot\", \"octopus\", \"orangutan\", \"orca\", \"ostrich\", \"otter\", \"owl\", \"ox\",\n \"panda\", \"panther\", \"parakeet\", \"parrot\", \"peacock\", \"pelican\", \"penguin\", \"pheasant\", \"pigeon\", \"platypus\",\n \"pony\", \"porcupine\", \"possum\", \"pufferfish\", \"puffin\", \"puma\",\n \"quail\",\n \"rabbit\", \"raccoon\", \"raven\", \"reindeer\", \"rhinoceros\", \"roadrunner\", \"robin\", \"rooster\",\n \"salamander\", \"salmon\", \"seahorse\", \"seal\", \"shark\", \"sheep\", \"sloth\", \"snail\", \"snake\", \"sparrow\",\n \"squid\", \"squirrel\", \"starfish\", \"stingray\", \"stork\", \"swallow\", \"swan\", \"swordfish\",\n \"tapir\", \"tiger\", \"toad\", \"tortoise\", \"toucan\", \"trout\", \"tuna\", \"turtle\",\n \"wallaby\", \"walrus\", \"weasel\", \"whale\", \"wildebeest\", \"wolf\", \"wolverine\", \"woodpecker\",\n \"yak\",\n \"zebra\"\n ]\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport dictionaries from './anon-name-dictionaries.json';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction capitalize(word: string): string {\n return word.charAt(0).toUpperCase() + word.slice(1);\n}\n\nfunction stringToSeed(input: string): number {\n if (!input)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction generateAnonName(userId: string, sessionId: string): string {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n *\n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n *\n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const bucket = Math.floor((new Date()).getMinutes() / 5);\n const seed = stringToSeed(`${userId || sessionId}-${bucket}`);\n // Treat the seed as a mixed-radix number: the low \"digit\" (mod) picks the colour, the next\n // \"digit\" (quotient) picks the animal. This decorrelates the two indices so every pair is\n // reachable and consecutive seeds cycle through all colours before the animal advances.\n const colour = dictionaries.colours[seed % dictionaries.colours.length];\n const animal = dictionaries.animals[Math.floor(seed / dictionaries.colours.length) % dictionaries.animals.length];\n return `${capitalize(colour)} ${capitalize(animal)}`;\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise) {\n if (user.deleted)\n return getPhrase('deleted');\n\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n }\n\n return generateAnonName(user.id, user.sessionId);\n}\n","import React from 'react';\n\nexport function AnonymousSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}\n >\n <path\n d='m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056'\n fill='currentColor'\n />\n </svg>\n );\n}\n",":local {\n .iconCircle {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 100%;\n }\n\n .dot {\n position: absolute;\n top: -0.1rem;\n right: -0.1rem;\n width: 0.8rem;\n height: 0.8rem;\n }\n}\n","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { AnonymousSvg } from 'libs/shared/images/svg/objects/AnonymousSvg';\nimport { GroupSvg } from 'libs/shared/images/svg/objects/GroupSvg';\nimport { EngagementType } from 'libs/shared/interfaces';\n\nimport styles from './engagement-avatar.module.scss';\n\ninterface EngagementAvatarProps {\n imageCdnUrl: string;\n initials: string;\n imageUrl?: string;\n extraClasses?: string;\n showDot?: boolean;\n anonymiseUsers?: boolean;\n /** When set, determines the avatar icon based on engagement type. */\n type?: EngagementType;\n anonymousSvgSize?: SvgContainerSize;\n}\n\nexport function EngagementAvatar(props: EngagementAvatarProps): JSX.Element {\n const isAnonymous = props.type === 'anon';\n const isClassroomViews = props.type === 'student-reach';\n\n if (isClassroomViews) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-orange text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={GroupSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n </div>\n );\n }\n\n if (isAnonymous) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-gray-700 text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={AnonymousSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n {props.showDot && <div className={`${styles.dot} rounded-circle bg-danger`} />}\n </div>\n );\n }\n\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initials}\n imageUrl={props.imageUrl}\n extraClasses={props.extraClasses}\n showDot={props.showDot}\n anonymiseUsers={props.anonymiseUsers}\n />\n );\n}\n","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"x_google_ignoreList":[6],"mappings":"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"}
1
+ {"version":3,"file":"Udxe63DQ.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts","../../../../libs/shared/src/apps/analytics/utils/anon-name-dictionaries.json","../../../../libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","../../../../libs/shared/src/images/svg/objects/AnonymousSvg.tsx","../../../../libs/shared/src/components/engagement-avatar/engagement-avatar.module.scss","../../../../libs/shared/src/components/engagement-avatar/EngagementAvatar.tsx","../../../../../node_modules/@babel/runtime/helpers/extends.js"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};\n","{\n \"colours\": [\n \"amber\",\n \"apricot\",\n \"aqua\",\n \"azure\",\n \"black\",\n \"blue\",\n \"bronze\",\n \"brown\",\n \"chocolate\",\n \"copper\",\n \"coral\",\n \"cream\",\n \"crimson\",\n \"cyan\",\n \"emerald\",\n \"gold\",\n \"green\",\n \"grey\",\n \"indigo\",\n \"ivory\",\n \"jade\",\n \"lavender\",\n \"lime\",\n \"maroon\",\n \"mint\",\n \"navy\",\n \"olive\",\n \"orange\",\n \"peach\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"red\",\n \"rose\",\n \"ruby\",\n \"sage\",\n \"salmon\",\n \"sapphire\",\n \"scarlet\",\n \"silver\",\n \"sky\",\n \"teal\",\n \"turquoise\",\n \"violet\",\n \"white\",\n \"yellow\"\n ],\n \"animals\": [\n \"aardvark\", \"albatross\", \"alligator\", \"alpaca\", \"ant\", \"anteater\", \"antelope\", \"ape\", \"armadillo\",\n \"baboon\", \"badger\", \"bat\", \"bear\", \"beaver\", \"bee\", \"beetle\", \"bison\", \"blackbird\", \"boar\", \"bobcat\", \"bonobo\", \"buffalo\", \"butterfly\",\n \"camel\", \"canary\", \"capybara\", \"caribou\", \"cat\", \"caterpillar\", \"chameleon\",\n \"cheetah\", \"chimpanzee\", \"chinchilla\", \"chipmunk\", \"clownfish\", \"cockatoo\", \"cougar\", \"cow\", \"coyote\",\n \"crab\", \"crane\", \"crocodile\", \"crow\",\n \"deer\", \"dingo\", \"dog\", \"dolphin\", \"donkey\", \"dove\", \"dragonfly\", \"duck\",\n \"eagle\", \"elephant\", \"elk\", \"emu\",\n \"falcon\", \"ferret\", \"finch\", \"firefly\", \"fish\", \"flamingo\", \"fox\", \"frog\",\n \"gazelle\", \"gecko\", \"gerbil\", \"giraffe\", \"goat\", \"goldfish\", \"goose\", \"gorilla\", \"grasshopper\", \"gull\",\n \"hamster\", \"hare\", \"hawk\", \"hedgehog\", \"heron\", \"hippopotamus\", \"horse\", \"hummingbird\",\n \"iguana\", \"impala\",\n \"jaguar\", \"jellyfish\",\n \"kangaroo\", \"kingfisher\", \"kiwi\", \"koala\", \"koi\",\n \"ladybug\", \"lemur\", \"leopard\", \"lion\", \"lizard\", \"llama\", \"lobster\", \"lynx\",\n \"macaw\", \"magpie\", \"manatee\", \"mandrill\", \"marlin\", \"meerkat\", \"mole\", \"mongoose\", \"monkey\", \"moose\", \"mouse\", \"mule\",\n \"narwhal\", \"newt\", \"nightingale\",\n \"ocelot\", \"octopus\", \"orangutan\", \"orca\", \"ostrich\", \"otter\", \"owl\", \"ox\",\n \"panda\", \"panther\", \"parakeet\", \"parrot\", \"peacock\", \"pelican\", \"penguin\", \"pheasant\", \"pigeon\", \"platypus\",\n \"pony\", \"porcupine\", \"possum\", \"pufferfish\", \"puffin\", \"puma\",\n \"quail\",\n \"rabbit\", \"raccoon\", \"raven\", \"reindeer\", \"rhinoceros\", \"roadrunner\", \"robin\", \"rooster\",\n \"salamander\", \"salmon\", \"seahorse\", \"seal\", \"shark\", \"sheep\", \"sloth\", \"snail\", \"snake\", \"sparrow\",\n \"squid\", \"squirrel\", \"starfish\", \"stingray\", \"stork\", \"swallow\", \"swan\", \"swordfish\",\n \"tapir\", \"tiger\", \"toad\", \"tortoise\", \"toucan\", \"trout\", \"tuna\", \"turtle\",\n \"wallaby\", \"walrus\", \"weasel\", \"whale\", \"wildebeest\", \"wolf\", \"wolverine\", \"woodpecker\",\n \"yak\",\n \"zebra\"\n ]\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport dictionaries from './anon-name-dictionaries.json';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction capitalize(word: string): string {\n return word.charAt(0).toUpperCase() + word.slice(1);\n}\n\nfunction stringToSeed(input: string): number {\n if (!input)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction generateAnonName(userId: string, sessionId: string): string {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n *\n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n *\n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const bucket = Math.floor((new Date()).getMinutes() / 5);\n const seed = stringToSeed(`${userId || sessionId}-${bucket}`);\n // Treat the seed as a mixed-radix number: the low \"digit\" (mod) picks the colour, the next\n // \"digit\" (quotient) picks the animal. This decorrelates the two indices so every pair is\n // reachable and consecutive seeds cycle through all colours before the animal advances.\n const colour = dictionaries.colours[seed % dictionaries.colours.length];\n const animal = dictionaries.animals[Math.floor(seed / dictionaries.colours.length) % dictionaries.animals.length];\n return `${capitalize(colour)} ${capitalize(animal)}`;\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise) {\n if (user.deleted)\n return getPhrase('deleted');\n\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n }\n\n return generateAnonName(user.id, user.sessionId);\n}\n","import React from 'react';\n\nexport function AnonymousSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}\n >\n <path\n d='m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056'\n fill='currentColor'\n />\n </svg>\n );\n}\n",":local {\n .iconCircle {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 100%;\n }\n\n .dot {\n position: absolute;\n top: -0.1rem;\n right: -0.1rem;\n width: 0.8rem;\n height: 0.8rem;\n }\n}\n","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { AnonymousSvg } from 'libs/shared/images/svg/objects/AnonymousSvg';\nimport { GroupSvg } from 'libs/shared/images/svg/objects/GroupSvg';\nimport { EngagementType } from 'libs/shared/interfaces';\n\nimport styles from './engagement-avatar.module.scss';\n\ninterface EngagementAvatarProps {\n imageCdnUrl: string;\n initials: string;\n imageUrl?: string;\n extraClasses?: string;\n showDot?: boolean;\n anonymiseUsers?: boolean;\n /** When set, determines the avatar icon based on engagement type. */\n type?: EngagementType;\n anonymousSvgSize?: SvgContainerSize;\n}\n\nexport function EngagementAvatar(props: EngagementAvatarProps): JSX.Element {\n const isAnonymous = props.type === 'anon';\n const isClassroomViews = props.type === 'student-reach';\n\n if (isClassroomViews) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-orange text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={GroupSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n </div>\n );\n }\n\n if (isAnonymous) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-gray-700 text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={AnonymousSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n {props.showDot && <div className={`${styles.dot} rounded-circle bg-danger`} />}\n </div>\n );\n }\n\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initials}\n imageUrl={props.imageUrl}\n extraClasses={props.extraClasses}\n showDot={props.showDot}\n anonymiseUsers={props.anonymiseUsers}\n />\n );\n}\n","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"x_google_ignoreList":[6],"mappings":"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"}